mcpField
C
config-export

config-export

github.com/fearovex-labsAgent workflows52 installs
Repository

About config-export

config-export is an agent skill that converts CLAUDE.md and ai-context/ configuration into instruction files for Copilot, Gemini, Codex, and Cursor. It previews generated files and requires confirmation before writing, while leaving source files unchanged.

Key features

  1. 01Exports instructions for four targets
  2. 02Supports core and project source modes
  3. 03Shows a dry-run preview
  4. 04Requires confirmation before writing
  5. 05Keeps source files unchanged

Use cases

  1. 01Porting project guidance to Copilot
  2. 02Preparing configuration for Gemini or Codex
  3. 03Splitting project guidance into Cursor rules

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/fearovex-labs/agent-config --skill config-export

After installing, type/config-exportin Claude Code to confirm it loaded.

Bundled filescommand-mode.mdtransformation-prompts.md

Details

From the project README

config-export

Exports CLAUDE.md and ai-context/ to tool-native instruction files for GitHub Copilot, Google Gemini, and Cursor.

Triggers: /config-export, export config, copilot instructions, gemini config, cursor rules


Purpose

config-export reads a source configuration bundle, lets the user select one or more target AI assistants, generates tool-specific instruction files via LLM transformation, shows a dry-run preview, and writes the confirmed files to their canonical locations. It never modifies source files and never writes without explicit user confirmation.

Two source modes:

  • Core mode (preferred when core/ exists): the agent-config repo's tool-neutral core/ directory (persona, protocols, methodology, format-types) is the single source of truth. Because core/ is already strip-free (no ~/.claude/ paths, no slash commands), the heavy STRIP preamble collapses to a thin guard — see "STRIP in core mode" below. Detect by the presence of core/PORTABILITY.md at the repo root.
  • Project mode (fallback): the consumer project's CLAUDE.md + ai-context/ files, as described in Step 1. Used when no core/ is present (a downstream consumer project, not the agent-config repo itself).

Process

Step 1 — Source collection

Mode detection (first): If core/PORTABILITY.md exists at the repo root, use core mode: bundle core/instructions/*.md, core/protocols/*.md, core/methodology/*.md, and core/format-types.md as the source. Skip the CLAUDE.md/ai-context guards below (they are project-mode only) and proceed to Step 2. Note "core mode — neutral source" in the transformation context. Otherwise, use project mode and apply the guards below.

Guard — no CLAUDE.md: If no CLAUDE.md exists in the current working directory, present the user with two paths:

No CLAUDE.md found in the current directory.

Choose an option:
  1. project-setup first  — run /project-setup to scaffold CLAUDE.md + ai-context/ in this project,
                            then re-run /config-export (recommended for new projects with SDD workflow)
  2. SDD bootstrap         — generate a minimal .github/copilot-instructions.md from the global SDD
                            template only (no project-specific stack or conventions)

Enter 1 or 2 (or press Enter to cancel):
  • If the user selects 1: emit Run /project-setup, then re-run /config-export and stop. No files are written.
  • If the user selects 2: proceed using the global SDD methodology as the sole source bundle (skip ai-context/ collection; note "No project CLAUDE.md — bootstrap mode" in transformation context).
  • If the user cancels: emit Export cancelled — no files written and stop.

Guard — no ai-context/: If no ai-context/ directory is present, emit:

WARNING: ai-context/ not found — export quality will be lower; only CLAUDE.md will be used as source

Continue; CLAUDE.md alone is sufficient.

Read and bundle source files in priority order:

#FileRequired?Behavior when absent
1CLAUDE.mdYesHalt (see guard above)
2ai-context/stack.mdNoSkip; note "stack.md not available" in transformation context
3ai-context/architecture.mdNoSkip; note "architecture.md not available" in transformation context
4ai-context/conventions.mdNoSkip; note "conventions.md not available" in transformation context
5ai-context/known-issues.mdNoSkip silently if absent

All present files are read into the in-context bundle before any transformation begins.


Step 2 — Target selection

If the user provided a target as a CLI argument (e.g., /config-export copilot), skip the interactive menu and proceed directly to Step 3 with that target.

Otherwise, present the target menu:

Available export targets:

  1. copilot  →  .github/copilot-instructions.md
  2. gemini   →  GEMINI.md
  3. codex    →  AGENTS.md
  4. cursor   →  .cursor/rules/conventions.mdc
               →  .cursor/rules/stack.mdc
               →  .cursor/rules/architecture.mdc
               (adapter spec: adapters/cursor/target.md)
  5. agents   →  per-tool custom-agent render (deterministic)
               →  copilot: .github/agents/<name>.agent.md
               →  cursor:  .cursor/rules/agent-<name>.mdc

Enter targets (comma-separated numbers or names, or "all"):

Deterministic delegation (agents + command mode): the agents target and command mode (Step 3-CMD) are deterministic envelope-wraps, single-sourced in the standalone splitter. When Bash is available, DELEGATE the render to core/scripts/config-export.sh <tool> <target-project-dir> --constructs=agents (or --constructs=commands) instead of re-implementing the wrap in-context — one implementation, zero divergence. Fall back to the in-context deterministic procedure (per adapters/<tool>/target.md envelope sections and command-mode.md) only when the script cannot run. Agent envelope specs: adapters/copilot/target.md § "Agent envelope", adapters/cursor/target.md § "Agent envelope (PROVISIONAL)".

Claude target rejection: If the user requests target claude or CLAUDE.md, respond with:

The Claude target is not supported in V1 — refresh CLAUDE.md manually

Do not write any files; re-present the menu or halt based on user choice.


Step 3 — Dry-run generation and confirmation

For each selected target, apply the corresponding transformation prompt (full prompts in transformation-prompts.md — see "Transformation prompts" below). Then:

  1. Display the full generated content for each file and its destination path.
  2. If a target output file already exists at its canonical path, emit a warning before the confirmation prompt:
    WARNING: Overwriting existing file: <path>
    
  3. Prompt the user:
    Write these files? [y/N]
    
    Default is N.
  4. If the user responds with anything other than y, exit cleanly:
    Export cancelled — no files written
    
    No files are written.
  5. If the user responds y, proceed to Step 4.
Transformation prompts (per target)

The full transformation contract — the Shared STRIP Preamble plus the four per-target STRIP/ADAPT/RETAIN/FORMAT prompts — lives in transformation-prompts.md to keep this SKILL.md within the 450-line budget (docs/config-guidelines.md Principle 4). READ that file before generating any target — the summary below is orientation, not the contract. The prompts are self-instructions applied via in-context LLM reasoning; no external API call or subprocess is involved.

TargetOutputTransformation core
copilot.github/copilot-instructions.md — single flat file, fixed H2 section orderSTRIP Claude Code machinery + Plan Mode; ADAPT SDD workflow to declarative prose + ## Active SDD Coaching Instructions; maximum-parity ## Rules (parity wins over brevity)
geminiGEMINI.md at project root — CLAUDE.md-like H2/H3 hierarchySTRIP SDD DAG + Claude-specific artifact storage; adapt command tables to prose, no slash commands
codexAGENTS.md at project root — flat, ~32 KiB budget, merged root→cwd by CodexSame content contract as Copilot; SDD workflow as declarative prose
cursor.cursor/rules/{conventions,stack,architecture}.mdc — exactly three domain filesSplit by domain; MDC frontmatter contract (description/globs/alwaysApply; globs: "" when no pattern can be inferred — never guess)

All targets: apply the Shared STRIP Preamble (thin guard in core mode), begin with the generated-file banner (see Step 4) dated today, UTF-8 no BOM.


Step 3-CMD — Command mode (invocable SDD commands)

Command mode renders the SDD pipeline skills as invocable commands for Copilot, Gemini, and Codex (selected via /config-export --commands). It is a deterministic envelope-wrap of the neutral logic (see ADR-006), gated by the BLOCKING STRIP guard, and injects the once-per-file memory-contract prelude after the guard passes.

The full command-mode contract — source scope, per-tool envelope table, STRIP guard, and memory-contract prelude injection — lives in command-mode.md to keep this SKILL.md within the 450-line budget (docs/config-guidelines.md Principle 4). Read it before running command mode.

Step 4 — File writing

For each confirmed target:

  1. Create required directories silently if they do not exist:

    • Copilot: .github/
    • Cursor: .cursor/rules/
    • Gemini: no directory required (file at project root)
    • Codex: no directory required (AGENTS.md at project root)
    • Do NOT emit any output for directory creation unless it fails.
  2. Write the generated file to its canonical path, prepending the generated-file banner:

    <!-- GENERATED BY config-export — DO NOT EDIT MANUALLY -->
    <!-- Source: CLAUDE.md + ai-context/ | Generated: YYYY-MM-DD -->
    <!-- Re-generate: run /config-export in your Claude Code session -->
    

    Replace YYYY-MM-DD with today's date.

  3. Overwrite any existing file at the canonical path — this is idempotent behavior. No error is raised when overwriting.


Step 5 — Summary

After all confirmed files have been written, print a summary table:

Export complete — files written:

  File                                  Status
  ──────────────────────────────────    ───────
  .github/copilot-instructions.md       written
  GEMINI.md                             written
  AGENTS.md                             written
  .cursor/rules/conventions.mdc         written
  .cursor/rules/stack.mdc               written
  .cursor/rules/architecture.mdc        written

(Only include rows for targets that were written in this run.)

Then append the snapshot reminder:

Exported files are snapshots. Re-run /config-export after significant changes to CLAUDE.md or ai-context/

Rules

  • If no CLAUDE.md is found in CWD, the skill MUST present the two-path menu (project-setup or bootstrap) before any file write; the hard ERROR path is NOT the default
  • Bootstrap mode (option 2) MUST produce a valid Copilot instructions file containing the full SDD workflow and coaching instructions even when no project CLAUDE.md exists
  • The Copilot transformation MUST NOT strip the SDD phase workflow or artifact paths — it MUST adapt them to prose and Copilot coaching instructions
  • The ## SDD Development Workflow and ## Active SDD Coaching Instructions sections MUST always be present in the Copilot output (whether from project mode or bootstrap mode)
  • Dry-run preview MUST precede any file write — there is no flag to skip dry-run
  • Overwrite warnings MUST appear in the dry-run step (before user confirmation), not after
  • The skill MUST NOT modify CLAUDE.md or any ai-context/ file — read-only with respect to all source files
  • Directory creation (.github/, .cursor/rules/) MUST be silent — no output for directory creation unless it fails
  • The Claude target (CLAUDE.md) is NOT supported in V1 — respond with the defined rejection message; do not write any files for that target
  • All generated files MUST be UTF-8, no BOM
  • Each Cursor .mdc file MUST have valid YAML frontmatter with description, globs, and alwaysApply fields
  • Cursor .mdc file names MUST be valid slugs: lowercase letters, digits, and hyphens only, with the .mdc extension
  • Copilot output MUST be a single file at .github/copilot-instructions.md — no splitting
  • Gemini output MUST be a single file at GEMINI.md at the project root — no subdirectories
  • The globs field in Cursor MDC files MUST use "" when no meaningful pattern can be inferred — never guess
  • All content in generated files MUST be free of Claude Code-specific execution syntax: no Task tool invocations, no sub-agent patterns, no ~/.claude/skills/ file paths
  • Copilot MUST adapt SDD content (workflow, phases, artifacts) — stripping rules apply only to execution-layer Claude Code syntax; SDD methodology is RETAINED and adapted for all targets
  • No target receives a verbatim copy of CLAUDE.md

Comments

Markdown supported