config-export について
config-export は、CLAUDE.md と ai-context/ の設定を Copilot、Gemini、Codex、Cursor 向けの指示ファイルに変換するエージェントスキルです。生成内容を事前表示し、確認後に書き込みます。元のファイルは変更しません。
主な機能
- 014つのツール向けに指示を出力
- 02core/project のソースモード
- 03ドライランで内容を表示
- 04書き込み前に確認
- 05元ファイルを維持
活用シーン
- 01プロジェクトの指針を Copilot に移行
- 02Gemini または Codex 用の設定を準備
- 03プロジェクトの指針を Cursor ルールに分割
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ fearovex-labs/ agent-config --skill config-exportインストール後、Claude Code で/config-exportを入力して読み込まれたか確認します。
同梱ファイルcommand-mode.mdtransformation-prompts.md
詳細
config-export
CLAUDE.md と ai-context/ を、GitHub Copilot、Google Gemini、Cursor 用のツール固有の指示ファイルにエクスポートします。
トリガー:/config-export、設定のエクスポート、Copilot の指示、Gemini の設定、Cursor のルール
目的
config-export はソース設定バンドルを読み込み、ユーザーが1つ以上の対象 AI アシスタントを選択できるようにし、LLM による変換でツール固有の指示ファイルを生成して、ドライランのプレビューを表示した後、確認済みのファイルを標準の保存先に書き込みます。ソースファイルを変更することはなく、ユーザーの明示的な確認なしにファイルを書き込むこともありません。
2つのソースモード:
- コアモード(
core/が存在する場合に優先): agent-config リポジトリのツールに依存しないcore/ディレクトリ(ペルソナ、プロトコル、方法論、フォーマットタイプ)を唯一の信頼できる情報源として使用します。core/には不要な要素がすでに含まれていないため(~/.claude/のパスやスラッシュコマンドがありません)、大がかりな STRIP プリアンブルは簡素なガードに置き換えられます。詳しくは、下記の「コアモードでの STRIP」を参照してください。リポジトリのルートにcore/PORTABILITY.mdがあるかどうかで判定します。 - プロジェクトモード(フォールバック): 手順1で説明する、利用側プロジェクトの
CLAUDE.mdとai-context/ファイルを使用します。core/が存在しない場合に使用します(agent-config リポジトリ自体ではなく、下流の利用側プロジェクトが対象です)。
プロセス
手順1 — ソースの収集
モードの判定(最初に実行):
リポジトリのルートに core/PORTABILITY.md が存在する場合は、コアモードを使用します。core/instructions/*.md、core/protocols/*.md、core/methodology/*.md、core/format-types.md をソースとしてまとめます。以下の CLAUDE.md/ai-context のガードはスキップします(これらはプロジェクトモード専用です)。その後、手順2に進みます。変換コンテキストには「コアモード — 中立的なソース」と記載します。
それ以外の場合は、プロジェクトモードを使用し、以下のガードを適用します。
ガード — CLAUDE.md がない場合:
現在の作業ディレクトリに CLAUDE.md が存在しない場合は、ユーザーに次の2つの選択肢を提示します。
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):
- ユーザーが 1 を選択した場合:
Run /project-setup, then re-run /config-exportを出力して停止します。ファイルは書き込みません。 - ユーザーが 2 を選択した場合:グローバルな SDD 方法論のみをソースバンドルとして使用して続行します(ai-context/ の収集はスキップし、変換コンテキストに「プロジェクトの CLAUDE.md がありません — ブートストラップモード」と記載します)。
- ユーザーがキャンセルした場合:
Export cancelled — no files writtenを出力して停止します。
ガード — ai-context/ がない場合:
ai-context/ ディレクトリが存在しない場合は、次を出力します。
WARNING: ai-context/ not found — export quality will be lower; only CLAUDE.md will be used as source
続行します。CLAUDE.md のみで十分です。
優先順位に従ってソースファイルを読み込み、バンドルにまとめます:
| # | ファイル | 必須? | 存在しない場合の動作 |
|---|---|---|---|
| 1 | CLAUDE.md | はい | 停止(上記のガードを参照) |
| 2 | ai-context/stack.md | いいえ | スキップし、変換コンテキストに「stack.md がありません」と記載 |
| 3 | ai-context/architecture.md | いいえ | スキップし、変換コンテキストに「architecture.md がありません」と記載 |
| 4 | ai-context/conventions.md | いいえ | スキップし、変換コンテキストに「conventions.md がありません」と記載 |
| 5 | ai-context/known-issues.md | いいえ | 存在しない場合は何もせずスキップ |
存在するファイルはすべて、変換を開始する前にコンテキスト内バンドルに読み込みます。
ステップ 2 — ターゲットの選択
ユーザーが CLI 引数でターゲットを指定した場合(例:/config-export copilot)、対話型メニューをスキップし、そのターゲットを指定してステップ 3 に直接進みます。
それ以外の場合は、ターゲットメニューを表示します:
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"):
決定論的な委譲(エージェント+コマンドモード): agents ターゲットとコマンドモード(ステップ 3-CMD)は、スタンドアロンのスプリッターに実装を一元化した、決定論的なエンベロープラップです。Bash が利用可能な場合は、コンテキスト内でラップを再実装せず、レンダリングを core/scripts/config-export.sh <tool> <target-project-dir> --constructs=agents(または --constructs=commands)に委譲してください。実装は 1 つに集約され、差異はゼロです。スクリプトを実行できない場合に限り、コンテキスト内の決定論的な手順(adapters/<tool>/target.md のエンベロープセクションと command-mode.md に準拠)にフォールバックします。エージェントのエンベロープ仕様:
adapters/copilot/target.md §「Agent envelope」、adapters/cursor/target.md
§「Agent envelope (PROVISIONAL)」。
Claude ターゲットの拒否:
ユーザーがターゲット claude または CLAUDE.md を指定した場合、次のように応答します:
The Claude target is not supported in V1 — refresh CLAUDE.md manually
ファイルは書き込まず、ユーザーの選択に応じてメニューを再表示するか、処理を終了します。
ステップ 3 — ドライラン生成と確認
選択された各ターゲットに対して、対応する変換プロンプトを適用します(完全なプロンプトは transformation-prompts.md にあります。下記の「変換プロンプト」を参照してください)。その後:
- 生成された各ファイルの内容全体と保存先パスを表示します。
- ターゲットの出力ファイルが正規のパスにすでに存在する場合は、確認プロンプトの前に警告を表示します:
WARNING: Overwriting existing file: <path> - ユーザーに確認します:
デフォルトは N です。Write these files? [y/N] - ユーザーが
y以外を入力した場合は、正常に終了します:
ファイルは書き込まれません。Export cancelled — no files written - ユーザーが
yを入力した場合は、ステップ 4 に進みます。
変換プロンプト(ターゲット別)
完全な変換仕様(Shared STRIP Preamble と、ターゲット別の 4 つの STRIP/ADAPT/RETAIN/FORMAT プロンプト)は、この SKILL.md を 450 行以内に収めるため(docs/config-guidelines.md Principle 4)、transformation-prompts.md に記載されています。いずれかのターゲットを生成する前に、このファイルを読んでください。以下の概要は参考情報であり、仕様そのものではありません。プロンプトは、コンテキスト内での LLM 推論を通じて適用する自己指示です。外部 API 呼び出しやサブプロセスは使用しません。
| ターゲット | 出力 | 変換の要点 |
|---|---|---|
| copilot | .github/copilot-instructions.md — 固定された H2 セクション順の単一フラットファイル | Claude Code の仕組みと Plan Mode を除去する。SDD ワークフローを宣言的な文章と ## Active SDD Coaching Instructions に適用する。最大限の同等性を備えた ## Rules(簡潔さより同等性を優先) |
| gemini | プロジェクトルートの GEMINI.md — CLAUDE.md に似た H2/H3 階層 | SDD DAG と Claude 固有のアーティファクト保存方法を除去する。コマンドテーブルを文章に変換し、スラッシュコマンドは使用しない |
| codex | プロジェクトルートの AGENTS.md — フラット形式、約 32 KiB の上限、Codex によってルートから cwd へマージ | Copilot と同じコンテンツ仕様。SDD ワークフローは宣言的な文章にする |
| cursor | .cursor/rules/{conventions,stack,architecture}.mdc — ドメイン別ファイルをちょうど 3 つ | ドメイン別に分割する。MDC フロントマター仕様(description/globs/alwaysApply。パターンを推測できない場合は globs: "" とする。決して推測しない) |
すべてのターゲットで、Shared STRIP Preamble を適用し(コアモードでは薄いガード)、生成ファイルのバナー(ステップ 4 を参照)を先頭に付け、今日の日付を記載し、BOM なしの UTF-8 を使用します。
Step 3-CMD — コマンドモード(呼び出し可能な SDD コマンド)
コマンドモードでは、SDD パイプラインのスキルを、Copilot、Gemini、Codex 用の呼び出し可能なコマンドとして出力します(/config-export --commands で選択)。これは、中立的なロジック(ADR-006 を参照)を決定的なエンベロープでラップし、BLOCKING STRIP ガードで制御したうえで、ガードを通過した後にファイルごとに一度だけメモリーコントラクトの前置文を挿入します。
コマンドモードの完全な仕様(ソースの範囲、ツールごとのエンベロープ表、STRIP ガード、メモリーコントラクトの前置文の挿入)は、この SKILL.md を 450 行以内に保つため(docs/config-guidelines.md の原則 4)、command-mode.md に記載されています。コマンドモードを実行する前にお読みください。
Step 4 — ファイルの書き込み
確認済みの各ターゲットについて、次の手順を行います。
-
存在しない場合は、必要なディレクトリを通知せずに作成します。
- Copilot:
.github/ - Cursor:
.cursor/rules/ - Gemini:ディレクトリは不要(プロジェクトルートにファイルを配置)
- Codex:ディレクトリは不要(プロジェクトルートに
AGENTS.mdを配置) - 作成に失敗した場合を除き、ディレクトリの作成について出力してはなりません。
- Copilot:
-
生成ファイルのバナーを先頭に付けて、生成したファイルを正規のパスに書き込みます。
YYYY-MM-DDを今日の日付に置き換えます。 -
正規のパスに既存のファイルがある場合は上書きします。これは冪等な動作です。上書きしてもエラーは発生しません。
Step 5 — サマリー
確認済みのファイルをすべて書き込んだ後、サマリー表を出力します。
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
(この実行で書き込んだターゲットの行のみを含めてください。)
続けて、スナップショットのリマインダーを出力します。
Exported files are snapshots. Re-run /config-export after significant changes to CLAUDE.md or ai-context/
ルール
- CWD に
CLAUDE.mdが見つからない場合、ファイルを書き込む前に、スキルは必ず 2 つの選択肢(project-setup または bootstrap)を提示します。ハード ERROR の経路をデフォルトにしてはなりません - bootstrap モード(オプション 2)では、プロジェクトに
CLAUDE.mdが存在しない場合でも、SDD ワークフローとコーチング指示を完全に含む有効な Copilot 指示ファイルを生成しなければなりません - Copilot 向けの変換では、SDD のフェーズワークフローやアーティファクトのパスを削除してはなりません。文章と Copilot のコーチング指示に適合させなければなりません
- Copilot の出力には、project モードか bootstrap モードかにかかわらず、
## SDD Development Workflowと## Active SDD Coaching Instructionsのセクションを常に含めなければなりません - ドライランのプレビューは、ファイルの書き込み前に必ず行わなければなりません。ドライランを省略するフラグはありません
- 上書きに関する警告は、ユーザーの確認後ではなく、ドライランのステップで(確認前に)表示しなければなりません
- スキルは
CLAUDE.mdまたはai-context/内のファイルを変更してはなりません。すべてのソースファイルは読み取り専用です - ディレクトリ(
.github/、.cursor/rules/)の作成は通知せずに行わなければなりません。作成に失敗した場合を除き、出力してはなりません - Claude ターゲット(
CLAUDE.md)は V1 ではサポートされません。定義済みの拒否メッセージを返し、そのターゲットのファイルは書き込まないでください - 生成するファイルはすべて BOM なしの UTF-8 でなければなりません
- 各 Cursor
.mdcファイルには、description、globs、alwaysApplyフィールドを含む有効な YAML フロントマターが必要です - Cursor
.mdcファイル名は、有効なスラッグでなければなりません。小文字の英字、数字、ハイフンのみを使用し、拡張子は.mdcとします - Copilot の出力は、
.github/copilot-instructions.mdに置く単一ファイルでなければなりません。分割してはなりません - Gemini の出力は、プロジェクトルートの
GEMINI.mdに置く単一ファイルでなければなりません。サブディレクトリには配置しません - 意味のあるパターンを推測できない場合、Cursor MDC ファイルの
globsフィールドには""を使用しなければなりません。決して推測してはなりません - 生成ファイルの内容には、Claude Code 固有の実行構文を含めてはなりません。Task ツールの呼び出し、サブエージェントのパターン、
~/.claude/skills/のファイルパスは禁止です - Copilot は SDD の内容(ワークフロー、フェーズ、アーティファクト)を適合させなければなりません。削除ルールの対象は Claude Code 固有の実行レイヤー構文のみであり、SDD の方法論はすべてのターゲット向けに保持して適合させます
- どのターゲットにも
CLAUDE.mdの内容をそのままコピーしてはなりません