mcpField
G
ghost-repo-context

ghost-repo-context

github.com/ghostsecurity開発4273.9k 回インストール4 週間前に更新
リポジトリ

ghost-repo-context について

ghost-repo-contextは、リポジトリ内のプロジェクトを検出し、アーキテクチャを要約してrepo.mdに記録する分析スキルです。ローカルファイルのみを使い、既存のキャッシュ済みコンテキストも再利用できます。

主な機能

  1. 01リポジトリ内のプロジェクトを検出
  2. 02各プロジェクトのアーキテクチャを要約
  3. 03検出情報と要約項目を記録
  4. 04Webアクセスなしでローカルファイルを利用
  5. 05既存コンテキストを確認して再利用

活用シーン

  1. 01リポジトリレビュー前のコンテキスト作成
  2. 02検出したプロジェクトとコンポーネントの記録
  3. 03repo.mdがある場合の分析の重複回避

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ghostsecurity/skills --skill ghost-repo-context

インストール後、Claude Code で/ghost-repo-contextを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

detector.md
summarizer.md
template-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> を実行して続行します。


ワークフロー

  1. プロジェクトを検出する — <skill_dir>/detector.md を読み、指示に従って <repo_path> を調査します。検出結果全体(ステップ 2 に必要なプロジェクトの詳細)を保存します。プロジェクトが見つからなかった場合は、「No projects detected」と記した最小限の repo.md を書き込み、ステップ 4 に進みます。

  2. 各プロジェクトを要約する — <skill_dir>/summarizer.md を読みます。ステップ 1 で検出した各プロジェクトについて、そのプロジェクトの詳細(id、type、base_path、languages、frameworks、dependency_files、extensions、evidence)を使用し、summarizer の指示に従います。各プロジェクトの要約を収集します。プロジェクトの要約に失敗した場合は、「summary unavailable」と記し、残りのプロジェクトについて続行します。

  3. repo.md を書き込む — <skill_dir>/template-repo.md の形式を使用して、検出結果と要約結果を <cache_dir>/repo.md にまとめます。各プロジェクトについて、次の項目を含めます:

    • 検出:ID、タイプ、ベースパス、言語、フレームワーク、依存ファイル、拡張子、根拠
    • 要約:アーキテクチャの概要、機密データの種類、ビジネス上の重要度、コンポーネントマップ、根拠
  4. 検証する — <cache_dir>/repo.md を読み戻し、<skill_dir>/template-repo.md に記載された想定セクション(例:Detection フィールドと Summary フィールドがあるプロジェクトエントリー)が含まれていることを確認します。ファイルが存在しないか、形式が不正な場合は、エラーを報告する前に一度だけ書き込みを再試行します。

  5. 出力する — 次を返します:Repository context is at: <cache_dir>/repo.md

コメント