بنقرة واحدة
sync-agent-docs
Claude CodeとGitHub Copilotのスキル・指示ファイルの差分を検出し、機械的な部分はスクリプトで、判断が必要な部分はここで同期する
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Claude CodeとGitHub Copilotのスキル・指示ファイルの差分を検出し、機械的な部分はスクリプトで、判断が必要な部分はここで同期する
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
分析を始める前に構造化された分析計画を作成する
現在の変更に対するプルリクエストのサマリーを作成する
SQLクエリの正確性と安全性をレビューする
データセットのEDAを実装・実行する。引数: <dataset_path> <topic>
予測モデリングのワークフローを実装・評価する。引数: <dataset_path> <target> <task>
分析結果を日本語でまとめる
| name | sync-agent-docs |
| description | Claude CodeとGitHub Copilotのスキル・指示ファイルの差分を検出し、機械的な部分はスクリプトで、判断が必要な部分はここで同期する |
| disable-model-invocation | true |
Claude Code (.claude/) と GitHub Copilot (.github/, AGENTS.md) は、共通スキルについて
「内部リンクの表記以外は同一内容」という設計になっている(README.md 参照)。
片方を編集した後にこのスキルを実行し、もう一方との差分を解消する。
まず機械的な同期を実行する。--check で差分を確認し、--from で方向を明示する。
uv run python scripts/sync_agent_docs.py --check # 差分検出のみ(書き込みなし)
uv run python scripts/sync_agent_docs.py --from claude # Claude側を正として同期
# または
uv run python scripts/sync_agent_docs.py --from github # GitHub/prompt側を正として同期
同期方向は 必ず --from で指定する(未指定はエラー)。ファイルの更新日時(mtime)は
git clone や一括生成で同一値になり信頼できないため、自動判定はしない。編集した側を
--from に渡すこと。
このスクリプトは2種類のペアを扱う。
.claude/skills/<name>/SKILL.md と .github/skills/<name>/SKILL.md。
内部リンクの相対パス表記だけを変換し、--from で指定した側の内容をもう一方へコピーする。
このドリフトは --check でCIブロッキング対象(終了コード1)。disable-model-invocation: true があるスキル):
.claude/skills/<name>/SKILL.md と .github/prompts/<name>.prompt.md。
frontmatterを変換(name/disable-model-invocation ⇔ agent: "agent")しつつ、
本文を同期する。このペアのドリフトはCIをブロックしない(報告のみ)。以下の
2点は機械同期でも安全に扱えるよう対応済み。
${input:...} プレースホルダ構文と、Claude側の
「引数の確認」箇条書き(frontmatter descriptionの 引数: <a> <b> で検出)は
「保護ゾーン」として扱われ、同期時に削除・上書きされず、既存の内容がそのまま
もう一方に引き継がれる。周辺の説明文だけが更新される。CLAUDE.md⇔AGENTS.md、.claude/skills/⇔.github/skills/ のような
本文中の相互参照は TASK_REFERENCE_MAP(scripts/sync_agent_docs.py)に従って
自動的に書き換わる。両陣営を意図的に併記するメタ文書(このスキル自身のように
「CLAUDE.md と AGENTS.md」を並べて説明するもの)は REFERENCE_REWRITE_EXEMPT
に登録して変換対象から除外する。新しい種類の相互参照を追加した場合は
TASK_REFERENCE_MAP に、併記メタ文書を追加した場合は REFERENCE_REWRITE_EXEMPT に
それぞれエントリを足すこと。" を含んでも壊れない)。Claude側は 引数: のような colon-space を含むときだけ
引用符を付ける。git diff で内容を確認すること。ロジックを変更した場合は
uv run pytest tests/test_sync_agent_docs.py で退行がないか確認する。スクリプトの出力にある WARNING(片側にのみ存在するスキル) を確認する。 これは新規スキルディレクトリの追加であり、単純コピーでは済まない(frontmatter形式や ディレクトリ構成が異なる場合がある)。以下を判断して実施する。
.claude/skills/ に作る場合: frontmatter は name / description の2キー。.github/skills/ に作る場合: 同じ frontmatter 形式でよいが、内部リンクは
../<name>/SKILL.md 形式にする。スクリプトの出力にある タスク実行スキルのDRIFT を確認する。
${input:...} / 引数箇条書きの保護と、既知の相互参照の書き換えは機械同期で
安全に扱える(上記1参照)ため、通常は編集した側を --from に渡して同期してよい。git diff で新種の差分の欠落が無いか確認する。${input:...} プレースホルダなど)に合わせる。CLAUDE.md と AGENTS.md / .github/copilot-instructions.md のハードルール・
ルーティングテーブルに差分がないか確認する。これらも意図的に構成が異なる
(CLAUDE.md はハードルール+ルーターを1ファイルに統合、Copilot側は
AGENTS.md とcopilot-instructions.mdに分割)ため、内容の一致(ルールの意味)を見るのであって
バイト単位の一致を求めない。
.github/instructions/*.instructions.md(パス別自動適用ルール)に対応する内容が
CLAUDE.md の「File-Specific Guidelines」セクションにも反映されているか確認する。
最後に検証する。
uv run python scripts/sync_agent_docs.py --check
uv run python scripts/validate_agent_docs.py