Skip to main content
skill CX Codex

ghost-repo-context — Claude Code skill: repository context

Scans a codebase, finds projects, and writes an architecture map to repo.md. Use it before security analysis or when you need to orient yourself in a repository.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add ghostsecurity/skills --skill ghost-repo-context -a claude-code
npx skills add ghostsecurity/skills --skill repo-context -a claude-code
Open on GitHub

What ghost-repo-context does

The skill inspects the directory tree, detects projects, and records languages, frameworks, and dependency files. It writes project entries to repo.md with an architecture summary, sensitive data types, business criticality, and a component map.

Pass repo_path and, when needed, cache_dir as arguments. Without a cache directory, the skill builds a path under ~/.ghost/repos/<repo_id>/cache. It works from local repository files using Read, Write, Edit, Glob, Grep, and Bash, with no web search.

When <cache_dir>/repo.md already exists, the skill skips the scan and returns that file path. That means you should check whether cached context is still current before running a new analysis.

What it helps with

  • map a repository’s directory structure
  • detect projects within a codebase
  • record dependencies and frameworks in repo.md
  • prepare repository context before security analysis

Example prompts for the agent

  • Run ghost-repo-context with repo_path=..
  • Use ghost-repo-context with repo_path=./service cache_dir=/tmp/repo-cache.
  • Build repository context before security analysis with ghost-repo-context for repo_path=..

How to install ghost-repo-context

1Skills CLI (Vercel)

npx skills add ghostsecurity/skills --skill ghost-repo-context -a claude-code
npx skills add ghostsecurity/skills --skill repo-context -a claude-code

2Manually: put the files in place

~/.claude/skills/repo-context/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/repo-context/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about ghost-repo-context

How do I install ghost-repo-context in Claude Code?

Run npx skills add ghostsecurity/skills --skill ghost-repo-context -a claude-code. The skill is placed at ~/.claude/skills/repo-context/SKILL.md.

What does ghost-repo-context do?

It examines a local repository, detects projects, and creates repo.md with dependency details, architecture summaries, and component maps.

What happens if repo.md is already in the cache?

The skill skips the repository scan and returns the existing <cache_dir>/repo.md path.

Source text

SKILL.md · Apache-2.0
---
name: "ghost-repo-context"
description: "Scans directory structure, detects projects, maps dependencies, and documents code organization into a repo.md file. Use when the user needs a codebase overview, project structure map, or repository context before security analysis."
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
license: apache-2.0
metadata:
  version: 1.1.0
---

# 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:
```bash
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:
```bash
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`

© ghostsecurity · Apache-2.0 · ghostsecurity/skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set7

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor