review-repo
Adversarial review of an entire repository, run inline in a single process: propose → kill → judge, one lens per run.
Skill by gbencke
Chalk Labs
Need help deploying review-repo?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
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/gbencke-review-repo
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.
About
Use cases: documents
Reviews
Write a reviewNo 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 and code. Checked Nov 1, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/review-repo
What's inside
- Skill name
review-repo- Description
- Adversarial review of an entire repository, run inline in a single process: propose → kill → judge, one lens per run. Writes a report plus findings.json under .gbencke/adversarial-review/reports/. Spawns no subagents. Trigger: /review-repo <path> [--lenses a,b,c], "adversarial review of this repo".
- License
- MIT
- Instructions
- 149 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# review-repo — adversarial whole-repository review
Run the adversarial loop yourself, in this process (see `BASE_DIR/CONTEXT.md`
for the glossary). You are the **reviewer, the challenger,
and the judge, in that order** — three roles, one process, strict phase
separation.
**No subagents.** Never use the `Agent` tool in this skill. Parallelism is the
caller's job: batch runners launch one process per (repo × lens) — see
ADR 0004. Spawning agents here would multiply concurrency by the number of
lenses and chunks.
**Shared assets base dir** (`BASE_DIR` below) —
`~/.claude/skills/adversarial-review/`: `CONTEXT.md` (glossary), `agents/`
(reviewer, challenger, judge role packs), `lenses/` (15 lenses), `bin/run-matrix.sh`
(the matrix launcher).
## Phase 0 — Target and scope
1. **The repo path is required.** Take it from the argument. If the argument is
empty (or contains only flags like `--lenses …`), stop immediately with:
> review-repo needs a repository path: `/review-repo <path> [--lenses a,b,c]`
Never fall back to the current working directory — batch runners invoke this
from an unrelated cwd, and reviewing the wrong repo silently is worse than
failing.
2. Resolve the path to absolute (`TARGET_DIR`). Confirm it exists and is a repo
(has `.git` or source files). If not, stop and say which check failed.
3. Read `BASE_DIR/agents/reviewer.md`, `BASE_DIR/agents/challenger.md`, and
`BASE_DIR/agents/judge.md`. These are **role packs**: the stance, contract, and
output schema you adopt for each phase below. Fill their slots mentally; you
are the audience now, not a subagent.
## Phase 1 — Lens selection (never ask)
1. List `BASE_DIR/lenses/`. For each lens read `lens.md`
(name, apply-when signals).
2. Also check `<TARGET_DIR>/.gbencke/adversarial-review/lenses/` (project
overlay). New names are added; same-named lenses MERGE (project `rules.md`
appended after the global `rules.md`).
3. A lens applies when its signals match the repo (globs, dependency names,
file types). `test-surface` and `blast-radius` are change-only — skip them
for repo reviews.
4. **Run every matched lens. Never prompt.** There is no lens picker: the
matched set is the selection. State the selected lens names in chat and go
straight to Phase 2. A prompt would deadlock non-interactive callers
(`claude -p`), which is how batch runs drive this skill.
5. **`--lenses` arg**: if the argument contains `--lenses a,b,c`, use exactly
those lenses instead of the matched set. That is the only way to narrow the
selection. One lens per run is the batch case and the cheapest per-process
context.
6. Per-chunk matching: language lenses (signals are file globs like `*.go`,
`*.ts`) review ONLY the chunks whose files match — a Go-only chunk does not
get the typescript lens. `always` lenses review every chunk.
7. Compute `LENS_SLUG` for the report basename: the lens name when exactly one
lens is selected, otherwise `multi`. This is what keeps concurrent runs from
overwriting each other (Phase 4).
## Phase 2 — Chunking (exhaustive)
1. Walk the repo. ALWAYS skip: `.git`, `node_modules`, `vendor`, `dist`,
`build`, `target`, lock files, generated code, minified assets, binary
files, the `.gbencke/adversarial-review` dir itself.
2. Chunk along top-level module/directory boundaries. Split a directory that is
too large for one reading pass (~>40 source files or ~>30k tokens)
mechanically into sub-chunks.
3. Produce the chunk list `[{id, paths[]}]` and state the count.
## Phase 3 — The loop, one chunk at a time
Process chunks **sequentially**. For each chunk, for each lens that matches it:
1. **Propose** — adopt `BASE_DIR/agents/reviewer.md` for that lens: read the chunk's
files under the lens's merged `rules.md` and produce findings as the JSON in
that role pack. Every finding needs `file:line`, a failure condition, and
evidence. Run the role pack's adversarial self-check and drop what dies.
2. **Kill** — switch to `BASE_DIR/agents/challenger.md` for the same findings: try to
disprove each one against the actual code (callers, middleware, framework
defaults, parent config). Emit `VALID` / `INVALID` / `AMBIGUOUS` with the
kill attempts you actually made. Do not raise new findings while wearing
this hat; note them and propose them in the next chunk that owns the code.
3. **Discard the file contents.** Keep ONLY the challenger JSON for this chunk.
Your own context is the budget now that there are no subagents to absorb it
— carrying source across chunks is what makes a large repo run out of room.
If context is still tight, append each chunk's challenger JSON to a scratch
file in the system temp dir and re-read it in Phase 4.
Never batch all chunks into one reading pass: one chunk in context at a time is
what keeps findings specific instead of vague.
If a chunk cannot be read or blows the budget, record it as skipped with the
reason and carry on. Partial coverage beats aborting — the report says what was
skipped.
## Phase 4 — Judge
Now adopt `BASE_DIR/agents/judge.md` with:
- `{{MODE}}`: `repo`
- `{{FINDINGS}}`: every chunk's challenger JSON from Phase 3
- `{{CONTEXT}}`: repo name, selected lenses, chunk count, skipped chunks
Rule on challenger output only — do not re-read code to invent new findings.
Drop `INVALID`, dedup across chunks and lenses, audit severity, then write BOTH
artifacts into `<TARGET_DIR>/.gbencke/adversarial-review/reports/`:
- `<yyyymmdd-hhmmss>-repo-<LENS_SLUG>.md` — the report
- `<yyyymmdd-hhmmss>-repo-<LENS_SLUG>.findings.json` — the sidecar (same basename)
The lens slug is required, not cosmetic: reviews of one repo run concurrently
(one process per repo × lens), so a lens-less basename collides whenever two
runs finish in the same second.
### Concurrency safety
Other reviews of this same repo are probably running right now in other
processes, under other lenses. Therefore:
- `mkdir -p` the reports dir; never clear, prune, or rotate it.From gbencke/dotfiles, MIT.
More from gbencke/dotfiles
- 0.622score
token-diagnostics
gbencke
Diagnose where an AI coding agent's tokens go over the last 7 days and produce a standard summary with ranked optimisation findings.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
review-change
gbencke
Evidence-backed PR, branch, or patch review with cumulative finding reconciliation, invariant coverage, and sequential propose → challenge → judge phases.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
review-consolidate
gbencke
Run repository/lens reviews in separate processes, then consolidate validated, scope-aware full reports.
SkillAFreshness: A★ 6Claude Code +9 - 0.618score
action-items
gbencke
Manage Guilherme Bencke's personal action-item log at 00.Tasks/ACTION_ITEMS.guilherme_bencke.md.
SkillAFreshness: A★ 6Claude Code +9 - 0.618score
daily-workstream-update
gbencke
Run the daily workstream update workflow for the Obsidian vault.
SkillAFreshness: A★ 6Claude Code +9 - 0.582score
review-change
gbencke
Adversarial review of a change: a PR, a branch diff, or a patch file.
SkillBFreshness: B★ 6Claude Code +9 - 0.582score
review-consolidate
gbencke
Review many repos under every lens — one OS process per (repo × lens), all in parallel — then consolidate every findings.json into ONE cross-repo document…
SkillBFreshness: B★ 6Claude Code +9 - 0.582score
spotify
gbencke
Query the Spotify Web API (search tracks/artists/albums, fetch artist, album, playlist, audio features, recommendations) using SPOTIFY_CLIENT_ID /…
SkillBFreshness: B★ 6Claude Code +9 - 0.582score
book-digest
gbencke
Research and write a 90-day digest of software-development and technology books released by O'Reilly Media, Manning, Pragmatic Bookshelf, Packt…
SkillBFreshness: B★ 6Claude Code +9 - 0.582score
daily-digest
gbencke
Generate The Architect's Digest — a daily curated briefing of the most relevant stories in architecture, distributed systems, cloud, languages, tooling, AI…
SkillBFreshness: B★ 6Claude Code +9 - 0.532score
article-reorganization
gbencke
Reorganize a long, scattered Markdown article into a clean hierarchy of Parts and Chapters, then regenerate its PDF with Pandoc (--top-level-division=part).
SkillCFreshness: C★ 6Claude Code +9 - 0.532score
zinsser
gbencke
Rewrites text using William Zinsser's "On Writing Well" method.
SkillCFreshness: C★ 6Claude Code +9
Signals
- Stars
- 6
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 4, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/gbencke/dotfiles
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from gbencke
- 0.622score
token-diagnostics
gbencke
Diagnose where an AI coding agent's tokens go over the last 7 days and produce a standard summary with ranked optimisation findings.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
review-change
gbencke
Evidence-backed PR, branch, or patch review with cumulative finding reconciliation, invariant coverage, and sequential propose → challenge → judge phases.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
review-consolidate
gbencke
Run repository/lens reviews in separate processes, then consolidate validated, scope-aware full reports.
SkillAFreshness: A★ 6Claude Code +9 - 0.618score
daily-workstream-update
gbencke
Run the daily workstream update workflow for the Obsidian vault.
SkillAFreshness: A★ 6Claude Code +9 - 0.618score
action-items
gbencke
Manage Guilherme Bencke's personal action-item log at 00.Tasks/ACTION_ITEMS.guilherme_bencke.md.
SkillAFreshness: A★ 6Claude Code +9 - 0.582score
spotify
gbencke
Query the Spotify Web API (search tracks/artists/albums, fetch artist, album, playlist, audio features, recommendations) using SPOTIFY_CLIENT_ID /…
SkillBFreshness: B★ 6Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get review-repo running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
review-repo skill. Agent Mart. https://agentmart.dev/skills/gbencke-review-repo (last updated 2026-10-24)