Skip to content
Agentmart
Submit a tool

codebase-recon

Produce a structured brief of an unfamiliar codebase covering layout, entry points, dependencies, config surface, test coverage, and areas of interest.

Skill by mini-agent

IndexedApache-2.0
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/michaellaret7-codebase-recon

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Produce a structured brief of an unfamiliar codebase covering layout, entry points, dependencies, config surface, test coverage, and areas of interest. Use when starting work on a repo for the first time, when asked to "review", "understand", "explore", or "get oriented in" a project, or before any non-trivial refactor.

Use cases: testing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/codebase-recon

What's inside

Skill name
codebase-recon
Description
Produce a structured brief of an unfamiliar codebase covering layout, entry points, dependencies, config surface, test coverage, and areas of interest. Use when starting work on a repo for the first time, when asked to "review", "understand", "explore", or "get oriented in" a project, or before any non-trivial refactor.
License
Apache-2.0
Metadata
author: mini-agent · version: 1.0
Instructions
167 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (6)

  • SKILL.md
  • checklist.md · references/
  • smells.md · references/
  • .gitkeep · scripts/
  • find_entrypoints.py · scripts/
  • recon.py · scripts/

SKILL.md (first lines)

# Codebase Recon

Produce a consistent, structured brief of an unfamiliar codebase before doing real work in it. Replaces ad-hoc `tree` + `grep` exploration with a repeatable checklist and a deterministic recon script.

## When to run

Trigger this skill when:
- Opening a repo for the first time in a session
- The user asks to "review", "understand", "explore", "get oriented in", or "audit" a codebase
- Before any refactor, migration, or architectural change
- Before answering a broad question like "how does X work in this project?"

Skip when the task is narrow and local (e.g., "fix this typo", "add a print statement here").

## Quick start

```bash
python scripts/recon.py <repo-path> --format brief
```

That single command produces the structured brief. Read it, then dive into specific files only as the task requires.

## The recon checklist

Always answer these questions, in order. The script answers most of them; fill gaps by reading files.

### 1. Project identity
- **Name + purpose** — from `README.md` first paragraph, `pyproject.toml` `[project]`, or `package.json`
- **Language + version** — `.python-version`, `pyproject.toml` `requires-python`, `package.json` `engines`
- **Framework / stack** — inferred from top dependencies

### 2. Layout
- Directory tree, depth ≤ 3, with annotations (what each top-level dir is for)
- Flag unusual structure: code in repo root, deeply nested packages, multiple unrelated projects in one repo

### 3. Entry points
- **CLI scripts** — `pyproject.toml` `[project.scripts]`, `package.json` `bin`, executables in `scripts/`
- **`__main__` blocks** — files with `if __name__ == "__main__"`
- **Web apps** — `FastAPI()`, `Flask(...)`, `app =` patterns
- **Libraries** — public surface from `__init__.py` `__all__` or top-level exports

### 4. Configuration surface
- Env vars referenced in code (`os.environ`, `os.getenv`, `process.env`)
- `.env.example` / `.env.template` keys
- Config files: `*.toml`, `*.yaml`, `*.ini`, `config/`
- Hardcoded paths or URLs (suspicious)

### 5. Dependencies
- Direct production deps with versions
- Direct dev deps
- Lockfile present? (`uv.lock`, `poetry.lock`, `package-lock.json`)
- Anything obviously outdated, deprecated, or pinned to an unsafe version

### 6. Tests
- Test directory location and framework (`pytest`, `unittest`, `vitest`, ...)
- Test file count vs source file count (rough ratio)
- CI config present? (`.github/workflows/`, `.gitlab-ci.yml`, ...)

### 7. Areas of interest
- Files >500 LOC (likely god objects or generated code)
- TODO/FIXME/XXX/HACK density
- `# type: ignore`, `@ts-ignore`, `eslint-disable` density
- Most-imported internal modules (the "hot" code)
- Recently modified files (where current work is happening) — `git log` if available

### 8. Risks / smells
- Missing `encoding="utf-8"` on file I/O (Python on Windows)
- Bare `except:` clauses
- `print` debugging left in non-CLI code
- Empty `__init__.py` where exports are expected
- Missing `py.typed` marker if package ships type hints

## Output format

Produce a single Markdown brief, ~80–150 lines. Use this skeleton:

```markdown
# <Project Name> — Codebase Brief

**Purpose:** <one sentence>
**Stack:** <language version> + <main framework(s)>
**Size:** <N> files, <M> LOC

## Layout
<annotated tree, depth ≤ 3>

## Entry points
- `<path>` — <what it does>

## Configuration
- Env vars: <list>
- Config files: <list>

## Dependencies
**Production:** <count>, notable: <list>
**Dev:** <count>, notable: <list>
**Lockfile:** <present | missing>

## Tests
<framework>, <count> test files, <ratio> vs source

## Areas of interest
- <file>: <reason>

## Risks
- <smell>: <count> occurrences (e.g., `bare except: 3 in agent/loop.py`)

## Suggested next reads
1. `<file>` — <why>
2. `<file>` — <why>
3. `<file>` — <why>
```

The "Suggested next reads" section is the payoff: 3 files that, if read, give the best ROI for understanding the project.

## Examples

### Example: small Python CLI repo

From michaellaret7/Agent-Harness-First-Principles, Apache-2.0.

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
May 8, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1.0
License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

codebase-recon skill. Agent Mart. https://agentmart.dev/skills/michaellaret7-codebase-recon (last updated 2026-10-24)