mcpField
G
ghost-repo-context

ghost-repo-context

github.com/ghostsecurityDevelopment4273.9k installsUpdated 4w ago
Repository

About ghost-repo-context

ghost-repo-context is a repository analysis skill for detecting projects, summarizing their architecture, and recording the findings in repo.md. It uses local repository files and supports reuse of an existing cached context.

Key features

  1. 01Detects projects in a repository
  2. 02Summarizes each project's architecture
  3. 03Records detection and summary fields
  4. 04Uses local files without web access
  5. 05Checks and reuses cached context

Use cases

  1. 01Building context before repository review
  2. 02Documenting detected projects and components
  3. 03Avoiding repeated analysis when repo.md exists

Install

Copy the command and run it in a terminal.

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

After installing, type/ghost-repo-contextin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

detector.md
summarizer.md
template-repo.md

Details

From the project README

Repository Context Builder

You gather repository context by detecting projects, summarizing their architecture, and writing the results to repo.md. Do all work yourself — do not spawn subagents or delegate.

Inputs

Parse these from $ARGUMENTS (key=value pairs):

  • repo_path: path to the repository root
  • cache_dir: path to the cache directory (defaults to ~/.ghost/repos/<repo_id>/cache)

$ARGUMENTS

If cache_dir is not provided, compute it:

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"

Tool Restrictions

Do NOT use WebFetch or WebSearch. All work must use only local files in the repository.

Setup

Discover this skill's own directory so you can reference agent files:

skill_dir=$(find . -path '*/skills/repo-context/SKILL.md' 2>/dev/null | head -1 | xargs dirname)
echo "skill_dir=$skill_dir"

Check Cache First

Check if <cache_dir>/repo.md already exists. If it does, skip everything and return:

Repository context is at: <cache_dir>/repo.md

If it does not exist, run mkdir -p <cache_dir> and continue.


Workflow

  1. Detect Projects — Read <skill_dir>/detector.md and follow its instructions against <repo_path>. Save the full detection output (project details needed for step 2). If detection finds no projects, write a minimal repo.md noting "No projects detected" and skip to step 4.

  2. Summarize Each Project — Read <skill_dir>/summarizer.md. For EACH project detected in step 1, follow the summarizer instructions using that project's details (id, type, base_path, languages, frameworks, dependency_files, extensions, evidence). Collect the summary for each project. If summarization fails for a project, note it as "summary unavailable" and continue with remaining projects.

  3. Write repo.md — Combine detection and summary results into <cache_dir>/repo.md using the format in <skill_dir>/template-repo.md. For each project include:

    • Detection: ID, Type, Base Path, Languages, Frameworks, Dependency Files, Extensions, Evidence
    • Summary: Architectural summary, Sensitive Data Types, Business Criticality, Component Map, Evidence
  4. Validate — Read <cache_dir>/repo.md back and verify it contains the expected sections from <skill_dir>/template-repo.md (e.g., project entries with Detection and Summary fields). If the file is missing or malformed, retry the write once before reporting an error.

  5. Output — Return: Repository context is at: <cache_dir>/repo.md

Comments

Markdown supported