ghost-repo-context について
ghost-repo-contextは、リポジトリ内のプロジェクトを検出し、アーキテクチャを要約してrepo.mdに記録する分析スキルです。ローカルファイルのみを使い、既存のキャッシュ済みコンテキストも再利用できます。
主な機能
- 01リポジトリ内のプロジェクトを検出
- 02各プロジェクトのアーキテクチャを要約
- 03検出情報と要約項目を記録
- 04Webアクセスなしでローカルファイルを利用
- 05既存コンテキストを確認して再利用
活用シーン
- 01リポジトリレビュー前のコンテキスト作成
- 02検出したプロジェクトとコンポーネントの記録
- 03repo.mdがある場合の分析の重複回避
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ghostsecurity/ skills --skill ghost-repo-contextインストール後、Claude Code で/ghost-repo-contextを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
detector.mdsummarizer.mdtemplate-repo.md詳細
リポジトリーコンテキストビルダー
プロジェクトを検出し、アーキテクチャを要約して、その結果を repo.md に書き込むことで、リポジトリーのコンテキストを収集します。すべての作業を自分で行ってください。サブエージェントを起動したり、作業を委任したりしないでください。
入力
$ARGUMENTS から次の項目を解析します(key=value 形式):
- repo_path:リポジトリーのルートへのパス
- cache_dir:キャッシュディレクトリーへのパス(デフォルトは
~/.ghost/repos/<repo_id>/cache)
$ARGUMENTS
cache_dir が指定されていない場合は、次の方法で計算します:
repo_name=$(basename "$(pwd)") && remote_url=$(git remote get-url origin 2>/dev/null || pwd) && short_hash=$(printf '%s' "$remote_url" | git hash-object --stdin | cut -c1-8) && repo_id="${repo_name}-${short_hash}" && cache_dir="$HOME/.ghost/repos/${repo_id}/cache" && echo "cache_dir=$cache_dir"
ツールの制限
WebFetch または WebSearch は使用しないでください。すべての作業はリポジトリー内のローカルファイルのみを使用して行ってください。
セットアップ
エージェントファイルを参照できるよう、このスキル自体のディレクトリーを特定します:
skill_dir=$(find . -path '*/skills/repo-context/SKILL.md' 2>/dev/null | head -1 | xargs dirname)
echo "skill_dir=$skill_dir"
まずキャッシュを確認する
<cache_dir>/repo.md がすでに存在するか確認します。存在する場合は、すべての作業をスキップして、次を返します:
Repository context is at: <cache_dir>/repo.md
存在しない場合は、mkdir -p <cache_dir> を実行して続行します。
ワークフロー
-
プロジェクトを検出する —
<skill_dir>/detector.mdを読み、指示に従って<repo_path>を調査します。検出結果全体(ステップ 2 に必要なプロジェクトの詳細)を保存します。プロジェクトが見つからなかった場合は、「No projects detected」と記した最小限のrepo.mdを書き込み、ステップ 4 に進みます。 -
各プロジェクトを要約する —
<skill_dir>/summarizer.mdを読みます。ステップ 1 で検出した各プロジェクトについて、そのプロジェクトの詳細(id、type、base_path、languages、frameworks、dependency_files、extensions、evidence)を使用し、summarizer の指示に従います。各プロジェクトの要約を収集します。プロジェクトの要約に失敗した場合は、「summary unavailable」と記し、残りのプロジェクトについて続行します。 -
repo.md を書き込む —
<skill_dir>/template-repo.mdの形式を使用して、検出結果と要約結果を<cache_dir>/repo.mdにまとめます。各プロジェクトについて、次の項目を含めます:- 検出:ID、タイプ、ベースパス、言語、フレームワーク、依存ファイル、拡張子、根拠
- 要約:アーキテクチャの概要、機密データの種類、ビジネス上の重要度、コンポーネントマップ、根拠
-
検証する —
<cache_dir>/repo.mdを読み戻し、<skill_dir>/template-repo.mdに記載された想定セクション(例:Detection フィールドと Summary フィールドがあるプロジェクトエントリー)が含まれていることを確認します。ファイルが存在しないか、形式が不正な場合は、エラーを報告する前に一度だけ書き込みを再試行します。 -
出力する — 次を返します:
Repository context is at: <cache_dir>/repo.md