| name | git-skill-manager |
| description | スキルのインストール(pull)・チーム公開(push)・品質評価・非推奨化・アーカイブなど、Gitリポジトリを介したエージェントスキルのライフサイクル管理を担う。「スキルをpullして」「スキルをpushして」「スキルをインストールして」「スキルを有効化して」「スキルを無効化して」「スキルを非推奨にして」「スキルをアーカイブして」「スキルを昇格して」などのリクエストで発動する。 |
| metadata | {"version":"1.2.2","tier":"core","category":"meta","tags":["skill-management","git","versioning"]} |
Git Skill Manager
Gitリポジトリ経由でエージェントスキルの取得(pull)と共有(push)を行う管理システム。
skill-creator との使い分け
外部URLからスキルを安全に取り込みたい場合は skill-creator(モードD)を使ってください。
skill-creator がライセンス・セキュリティ・ネットワーク通信を事前に検証し、
確認後にこのスキル(git-skill-manager)を自動で呼び出してインストールします。
このスキル(git-skill-manager)は以下の用途に特化しています:
| 操作 | 説明 |
|---|
repo add / pull | 登録済みリポジトリからスキルを取得・更新 |
push | ローカルスキルをチームリポジトリへ push(デフォルト: main 直接 / オプション: ブランチ作成 & PR/MR 促進) |
pin / lock | バージョン固定・スナップショット |
enable / disable / profile | スキルの有効化管理 |
feedback / promote / refine | 評価・昇格・改良フロー |
利用者
| 呼び出し元 | 操作 | 例 |
|---|
| ユーザー直接 | repo add / pull / push / search / list / enable / disable / profile / promote / evaluate / refine / discover | 「スキルをpullして」「リポジトリを登録して」「スキルを無効化して」「スキルを昇格して」「スキルを評価して」「スキル候補を発見して」 |
| scrum-master サブエージェント | push / promote / evaluate / discover | Phase 6 のスキル共有・昇格・評価・発見時にテンプレート経由で起動される |
- ユーザー直接呼び出しの場合、対話的に確認しながら進める
- サブエージェント経由の場合、プロンプトに必要な情報(対象スキル・リポジトリ名・操作)が含まれるため、確認なしで実行する
動作環境
- GitHub Copilot Chat(Windows / macOS / Linux)および Claude Code で動作する
- git はインストール・認証設定済み(SSH鍵 or credential manager)
- シェルは実行環境に依存する(PowerShell、bash、zsh など)
アーキテクチャ・パス定義
詳細 → references/architecture.md
レジストリ
パス: {agent_home}/skill-registry.json(agent_home は install.py 実行時のエージェント種別で決まる。実際のパスは skill-registry.json の skill_home フィールドで確認できる)
スキルの登録情報(リポジトリ・インストール済みスキル・プロファイル・フィードバック履歴)を管理するJSONファイル。初回操作時に自動作成する。
詳細なスキーマとフィールド説明 → references/registry-schema.md
スクリプトパス
{SCRIPTS_DIR} = <skill_home>/git-skill-manager/scripts(skill_home は skill-registry.json の skill_home フィールド)
操作一覧
| 操作 | トリガー例 |
|---|
| repo add | 「リポジトリを登録して」 |
| repo list | 「登録リポジトリ一覧」 |
| repo remove | 「リポジトリを削除して」 |
| pull | 「スキルをpullして」「スキルを取得」 |
| push | 「スキルをpushして」「スキルを共有」「ブランチを切ってpushして」「PRを作ってpushして」 |
| list | 「インストール済みスキル一覧」 |
| search | 「リポジトリにあるスキルを探して」 |
| search --refresh | 「最新のスキルを検索して」 |
| enable | 「スキルを有効化して」 |
| disable | 「スキルを無効化して」 |
| pin | 「スキルを固定して」「バージョンをpinして」 |
| unpin | 「スキルの固定を解除して」 |
| lock | 「全スキルをロックして」 |
| unlock | 「全スキルのロックを解除して」 |
| promote | 「このスキルを他でも使えるようにして」「スキルを昇格して」 |
| profile use | 「プロファイルを切り替えて」 |
| profile create | 「プロファイルを作成して」 |
| profile list | 「プロファイル一覧」 |
| profile delete | 「プロファイルを削除して」 |
| feedback | 「フィードバックを記録して」「良かった/改善したい/うまくいかなかった」 |
| refine | 「スキルを改良して」「フィードバックを反映して」「改善待ちを処理して」 |
| discover | 「スキル候補を探して」「履歴からスキルを発見して」「新しいスキルを見つけて」 |
| evaluate | 「スキルを評価して」「試用中スキルを確認して」「ワークスペーススキルを整理して」 |
| diff | 「スキルの差分を見せて」「リポジトリ間の違いを確認して」 |
| sync | 「マージしたスキルを全リポジトリに配信して」「スキルを同期して」 |
| merge | 「スキルをマージして」「リポジトリ間のスキルを統合して配信して」 |
| changelog | 「スキルの変更履歴を生成して」「CHANGELOGを作って」 |
repo add
git ls-remote $REPO_URL HEAD
cd {SKILL_HOME}/../..
python {SCRIPTS_DIR}/repo.py add <name> <url>
python {SCRIPTS_DIR}/repo.py add <name> <url> --readonly
python {SCRIPTS_DIR}/repo.py add <name> <url> --priority 1 --skill-root .github/skills
python {SCRIPTS_DIR}/repo.py list
python {SCRIPTS_DIR}/repo.py remove <name>
→ 実装: scripts/repo.py — add_repo(), list_repos(), remove_repo()
pull
python {SCRIPTS_DIR}/pull.py
python {SCRIPTS_DIR}/pull.py --skill <name>
python {SCRIPTS_DIR}/pull.py --repo <repo-name>
python {SCRIPTS_DIR}/pull.py --no-interactive
→ 実装: scripts/pull.py — pull_skills()
競合解決・ロジック詳細 → references/examples.md
push
python {SCRIPTS_DIR}/manage.py push
python {SCRIPTS_DIR}/manage.py push --skills skill-a,skill-b
python {SCRIPTS_DIR}/manage.py push --repos team-skills
python {SCRIPTS_DIR}/manage.py push --skills my-skill --msg "feat: ..."
→ 実装: scripts/push.py — push_skill(), push_all_skills()
→ scripts/manage.py — push_to_main()
デフォルトは main ブランチへの直接 push。ユーザーが「ブランチを切って」「PR を作って」と要求した場合のみ add-skill/<name> ブランチを作成して push し、PR/MR 作成を促す。
list
python {SCRIPTS_DIR}/manage.py list
→ 実装: scripts/manage.py — list_skills()
インストール済みスキルの一覧を表示。有効/無効、ソースリポジトリ、コミットハッシュ、pin状態、バージョンを表示する。
v1.2.3 — ローカルのバージョン
v1.2.3 ⬆️ — ローカルが中央より新しい(version_ahead)
v1.2.3 (central: v1.2.4) — 中央に新しいバージョンがある(pull 推奨)
search
python {SCRIPTS_DIR}/manage.py search
python {SCRIPTS_DIR}/manage.py search --keyword converter
python {SCRIPTS_DIR}/manage.py search --repo team-skills
python {SCRIPTS_DIR}/manage.py search --refresh
デフォルトではレジストリ内の remote_index を検索する(ネットワーク不要、即座に結果を返す)。
--refresh 指定時はリモートから最新情報を取得してインデックスを更新してから検索する。
インデックスが空の場合(初回)は自動的に --refresh と同様の動作をする。
→ 実装: scripts/manage.py — search_skills()
enable / disable
python {SCRIPTS_DIR}/manage.py enable <skill-name>
python {SCRIPTS_DIR}/manage.py disable <skill-name>
スキルの有効・無効を切り替える。無効化されたスキルはディスク上に残るが、discover_skills.py のメタデータ収集から除外される(コンテキストウィンドウを節約)。
→ 実装: scripts/manage.py — enable_skill(), disable_skill()
pin / unpin
python {SCRIPTS_DIR}/manage.py pin <skill-name>
python {SCRIPTS_DIR}/manage.py pin <skill-name> --commit abc1234
python {SCRIPTS_DIR}/manage.py unpin <skill-name>
スキルを特定のコミットハッシュに固定する。pin されたスキルは pull 時にそのコミットの内容を取得し、新しいバージョンには更新されない。
→ 実装: scripts/manage.py — pin_skill(), unpin_skill()
lock / unlock
python {SCRIPTS_DIR}/manage.py lock
python {SCRIPTS_DIR}/manage.py unlock
全インストール済みスキルのバージョンを一括で固定・解除する。チームで同じバージョンのスキルセットを共有するときに使う。
→ 実装: scripts/manage.py — lock_all(), unlock_all()
promote
python {SCRIPTS_DIR}/manage.py promote .github/skills
python {SCRIPTS_DIR}/manage.py promote <workspace-skill-dir>
ワークスペースのスキルディレクトリ(<workspace-skill-dir>)のスキルをユーザー領域(<AGENT_HOME>/skills/)にコピーし、リポジトリにも push する。プロジェクト固有でないスキルを他のプロジェクトでも再利用可能にする。
→ 実装: scripts/manage.py — promote_skills()
ワークスペーストライアルフロー
VSCode チャット経由で作成されたスキルはワークスペースのスキルディレクトリ(<workspace-skill-dir>)に置かれ、試用してから昇格する。
ライフサイクル・評価フロー詳細 → references/workspace-trial.md
feedback
python {SCRIPTS_DIR}/record_feedback.py <skill-name> ok
python {SCRIPTS_DIR}/record_feedback.py <skill-name> needs-improvement --note "改善点のメモ"
python {SCRIPTS_DIR}/record_feedback.py <skill-name> broken --note "エラー内容"
直前に実行したスキルの満足度をユーザーに確認し、レジストリに記録する。
スキル単体起動後に copilot-instructions.md の指示で自動的に呼ばれる。
→ 実装: scripts/record_feedback.py
フィードバック記録の詳細フロー・しきい値 → references/feedback-loop.md
evaluate
skill-evaluator スキルを呼び出してワークスペース・インストール済みスキルを評価する。評価フロー詳細 → references/feedback-loop.md
refine
python {SCRIPTS_DIR}/manage.py refine <skill-name>
python {SCRIPTS_DIR}/manage.py mark-refined <skill-name>
蓄積されたフィードバックをもとに、スキルの改良フローを開始する。ワークスペーススキルとインストール済みスキル(user-space / リポジトリ管理)の両方に対応する。
→ 実装: scripts/manage.py — refine_skill(), mark_refined()
スクリプト出力の REFINE_COMPLETE_CMD: 行に示されたコマンドを必ず実行する(pending_refinement フラグの解除)。
diff / sync / merge
python {SCRIPTS_DIR}/manage.py diff <skill-name>
python {SCRIPTS_DIR}/manage.py diff <skill-name> --repos team-skills,personal
python {SCRIPTS_DIR}/manage.py sync <skill-name>
python {SCRIPTS_DIR}/manage.py sync <skill-name> --repos team-skills,personal
python {SCRIPTS_DIR}/manage.py merge <skill-name>
複数リポジトリに分岐した同名スキルを比較・統合・配信するクロスリポジトリ操作。
| 操作 | 用途 |
|---|
diff | リポジトリ間の差分を表示(マージ前確認) |
sync | マージ済みスキルを複数リポジトリへ一括 push |
merge | diff → skill-creator → sync を一括実行 |
詳細な処理フローと出力例 → references/cross-repo-ops.md
changelog / bump
python {SCRIPTS_DIR}/manage.py changelog <skill-name>
python {SCRIPTS_DIR}/manage.py changelog <skill-name> --dry-run
python {SCRIPTS_DIR}/manage.py bump <skill-name>
python {SCRIPTS_DIR}/manage.py bump <skill-name> --type minor
python {SCRIPTS_DIR}/manage.py bump <skill-name> --type major
スキルのバージョン管理操作。
- changelog: コミット履歴とフロントマターのバージョン変更から
CHANGELOG.md を自動生成する
- bump: SKILL.md の
metadata.version をセマンティックバージョニングに従ってインクリメントする(X.Y.Z 形式)
コマンド例・バージョン指針・処理フロー・タイミング → references/version-management.md
discover
skill-creator(モードC)を起動し、直近のチャット履歴から新しいスキル候補を発見する。スクリプト呼び出しなし — エージェントが skill-creator を直接起動する。
処理フロー詳細 → references/version-management.md
metrics
python {SCRIPTS_DIR}/metrics_report.py
python {SCRIPTS_DIR}/metrics_report.py --skill <skill-name>
python {SCRIPTS_DIR}/metrics_report.py --co
python {SCRIPTS_DIR}/metrics_collector.py
→ 実装: scripts/metrics_report.py, scripts/metrics_collector.py | 詳細 → references/metrics.md
profile
python {SCRIPTS_DIR}/manage.py profile list
python {SCRIPTS_DIR}/manage.py profile create <name> <skill1,skill2,...>
python {SCRIPTS_DIR}/manage.py profile use <name>
python {SCRIPTS_DIR}/manage.py profile delete <name>
プロファイルはスキルの有効・無効を一括で切り替えるショートカット。プロファイルをアクティブにすると、そのプロファイルに含まれるスキルのみがコンテキストにロードされる。
→ 実装: scripts/manage.py — profile_create(), profile_use(), profile_list(), profile_delete()
auto-update
python {SCRIPTS_DIR}/auto_update.py check
python {SCRIPTS_DIR}/auto_update.py run
python {SCRIPTS_DIR}/auto_update.py configure
セッション開始時やユーザーの指示で、リポジトリの更新を自動チェックする機能。デフォルトは無効。
セッション開始時のトリガーは .github/copilot-instructions.md で定義されている。
→ 実装: scripts/auto_update.py
動作モード・設定操作・チェック操作の詳細 → references/auto-update.md
snapshot / rollback
python {SCRIPTS_DIR}/snapshot.py save
python {SCRIPTS_DIR}/snapshot.py save --label "リリース前"
python {SCRIPTS_DIR}/snapshot.py list
python {SCRIPTS_DIR}/snapshot.py restore --latest
python {SCRIPTS_DIR}/snapshot.py restore <snap-id>
python {SCRIPTS_DIR}/snapshot.py clean --keep 5
pull 実行時に自動でスナップショットを保存し、問題が発生した場合に元の状態へ復元する。「元に戻して」「pullを取り消して」でロールバックを発動する。
詳細 → references/snapshot-rollback.md
deps
python {SCRIPTS_DIR}/manage.py deps
python {SCRIPTS_DIR}/manage.py deps <skill-name>
python {SCRIPTS_DIR}/manage.py deps-graph
python {SCRIPTS_DIR}/manage.py deps-graph <skill-name>
スキルの depends_on(必須依存)・recommends(推奨依存)を SKILL.md フロントマターから解析し、充足状況の検証と Mermaid 依存グラフの出力を行う。
→ 実装: scripts/deps.py — check_deps(), show_graph()
フロントマタースキーマ・エージェントの動作・出力例 → references/deps.md
deprecate
スキルを非推奨化し、代替スキルへの移行を促す。
ライフサイクル: Active → Deprecated(2スプリント)→ Archived → Removed
SKILL.md フロントマターに tier: deprecated / deprecated_by: <代替> / deprecated_since: <ver> を追記し、skill-registry.json の deprecated_skills に登録する。
詳細 → references/deprecation.md
archive
Deprecated 期間(2スプリント)終了後にスキルを .github/skills/_archived/ へ移動し、レジストリの archived_skills へ移す。
詳細 → references/deprecation.md
エラーハンドリング
→ references/errors.md
使用例
操作ごとのエージェント対話例 → references/examples.md