agent-eval
colbymchenry/codegraph
Benchmark CodeGraph retrieval quality by comparing agent behavior with and without CodeGraph on real codebases.
What is agent-eval?
Measures how much CodeGraph improves agent performance versus plain grep/read on a chosen codebase. Run this skill when you need to test, audit, or validate a CodeGraph version (local dev build or published npm release) against a real-world repository to quantify retrieval gains.
- Compares agent tool usage and cost with CodeGraph enabled vs. disabled
- Runs headless (fast, token/cost metrics) or interactive (tmux, faithful subagent behavior) evaluation modes
- Reports tool call counts, file reads, grep/bash calls, CodeGraph tool invocations, duration, and total cost
- Generates side-by-side ARM COMPARISON tables and feedback metrics (residual context, explore sufficiency, allocation efficiency)
- Supports testing against multiple languages and repositories of varying sizes
- Automatically rebuilds the CodeGraph index per run to ensure version consistency
How to install agent-eval
npx skills add https://github.com/colbymchenry/codegraph --skill agent-eval- tmux 3+
- Logged-in claude CLI
- Node.js
- Git
- macOS or Linux
- Run from the codegraph repository root
How to use agent-eval
- 1.Select a CodeGraph version to test (local dev build, latest published, or specific version number)
- 2.Choose a programming language from the corpus
- 3.Select a repository by size and file count
- 4.Pick an evaluation harness: Headless (fast, token/cost metrics), Interactive/tmux (faithful behavior), or Both
- 5.Run audit.sh in the background with the selected parameters
- 6.Review the generated report: cost, tool call counts, ARM COMPARISON table, and feedback metrics
Use cases
- Validate that a new CodeGraph version reduces agent tool calls and cost on a production codebase
- Compare retrieval quality between local dev builds and published npm versions
- Audit CodeGraph performance on language-specific repositories (e.g., JavaScript, Python)
- Measure whether CodeGraph reduces file reads and grep calls compared to baseline agent behavior
- Benchmark cost savings and token efficiency gains from CodeGraph integration
- CodeGraph maintainers and contributors validating performance improvements
- Developers evaluating whether to adopt CodeGraph in their agent workflows
- Teams auditing code-retrieval tool effectiveness on real repositories
- Performance engineers measuring agent efficiency and cost reduction
agent-eval FAQ
Headless mode uses claude -p with stream-json for exact token/cost metrics and clean tool sequences (2 runs, fast, no TTY). Interactive mode drives the real Claude TUI in tmux for faithful Explore-subagent behavior with metrics from session logs (2 runs, slower).
Different CodeGraph versions extract code differently, so the index must be built and served by the same binary version to ensure consistency and avoid contamination.
Residual context occupancy measures unused context; explore sufficiency indicates whether CodeGraph provided enough information; allocation efficiency measures how well the agent used available tools. See docs/benchmarks/agent-eval-feedback-metrics.md for details.
Check the ARM COMPARISON table's contamination row first: if 'CLI calls that RETURNED output' > 0, the arm reached CodeGraph through Bash and its numbers are void. Lead with cost and tool/Read counts, which are the most reliable signals.
Yes, edit .claude/skills/agent-eval/corpus.json with fields: name, repo, size, files, and question.
Full instructions (SKILL.md)
Source of truth, from colbymchenry/codegraph.
name: agent-eval description: Benchmark CodeGraph retrieval quality on a real codebase by comparing agent behavior with vs without CodeGraph. Use when the user runs /agent-eval or asks to test, benchmark, audit, or validate a codegraph version (the local dev build or a published npm version) against a language's repo.
CodeGraph Quality Audit
Measures how much CodeGraph helps an agent versus plain grep/read, for a chosen
codegraph version on a chosen real-world repo. Drives the harness in
scripts/agent-eval/.
Prerequisites
tmux3+, a logged-inclaudeCLI,node,git(macOS/Linux).- Run from the codegraph repo root.
Workflow
Copy this checklist:
- [ ] 1. Pick version (local or npm)
- [ ] 2. Pick language
- [ ] 3. Pick repo by size
- [ ] 4. Pick harness (headless / tmux / both)
- [ ] 5. Run audit.sh in the background
- [ ] 6. Report results
Step 1 — version. Ask with AskUserQuestion: which codegraph version to test.
Offer "Local dev build" and "Latest published"; the free-text "Other" lets the
user type a specific version (e.g. 0.7.10). Map the answer to a VERSION token:
- "Local dev build" →
local - "Latest published" →
latest - a typed version → that string (e.g.
0.7.10)
Step 2 — language. Read .claude/skills/agent-eval/corpus.json. Ask with
AskUserQuestion which language to test, listing the languages that have entries.
Step 3 — repo. From the chosen language's entries, ask which repo. Label each
option with its size and file count, e.g. excalidraw — Medium (~600 files).
Each entry carries the repo URL and a representative question.
Step 4 — harness. Ask with AskUserQuestion which harness to run, and map
the answer to a MODE token:
- "Headless" →
headless—claude -pwith stream-json: exact tokens/cost and a clean tool sequence (2 runs, fast, no TTY). - "Interactive (tmux)" →
tmux— drives the real Claude TUI in tmux: faithful Explore-subagent behavior, metrics from session logs (2 runs, slower). - "Both" →
all— headless + interactive (4 runs).
Step 5 — run. Launch in the background (sets the version, clones if missing, wipes + re-indexes, runs the chosen arms — several minutes):
scripts/agent-eval/audit.sh <VERSION> <repo-name> <repo-url> "<question>" <MODE>
Step 6 — report. When the job finishes, read the log and report per arm:
- Headless (
parse-run.mjs): total tool calls, fileReads, Grep/Bash, codegraph-tool calls, duration, total cost. - Interactive (
parse-session.mjs): theVERDICT: codegraph_explore used Nx | Read N | Grep/Bash NandTOKENS:lines. - Both paths also print the three feedback metrics — residual context occupancy,
explore sufficiency, allocation efficiency — and a headless A/B ends with a
side-by-side
ARM COMPARISONtable. Report that table, and check its contamination row first:CLI calls that RETURNED output> 0 means the arm reached codegraph through Bash and its numbers are void. How to read the rest:docs/benchmarks/agent-eval-feedback-metrics.md.
Lead with cost + tool/Read counts — they are the reliable signals; raw token in/out are confounded by subagent delegation and prompt caching. State whether codegraph reduced effort and whether both arms reached a correct answer.
Notes
- The index is rebuilt every run (
audit.shwipes.codegraph) — different versions extract differently, so an index must be served by the same binary that built it. audit.shtemporarily mutates the globalcodegraphinstall for the test, then restores your dev link vialocal-install.sh.- Corpus repos are cloned to
/tmp/codegraph-corpus(reused if already present). - Add or edit repos in
corpus.json(fields:name,repo,size,files,question).
Related skills
More from colbymchenry/codegraph and the wider catalog.

add-lang
Add tree-sitter language support to codegraph end-to-end — wire the grammar + extractor, write tests, then benchmark extraction quality and retrieval value on 3 popular real-world repos. Use when the user runs /add-lang <language> or asks to add/support a new language (e.g. Lua, Elixir, Zig, OCaml) in codegraph.

pr-lens
Visualize code changes and architecture as animated diagrams in pull requests or standalone canvases.

excalidraw-diagram
Generate visual arguments as Excalidraw diagrams—show workflows, architectures, and concepts with concrete examples.

literature-review
Conduct a systematic literature review on an academic topic. Use when the user asks for a literature review, survey, or systematic overview of a research area.

colosseum-copilot
Research Solana/crypto startup opportunities using builder projects, archives, and market signals.

xhs-note-creator
小红书笔记素材创作技能。当用户需要创建小红书笔记素材时使用这个技能。技能包含:根据用户的需求和提供的资料,撰写小红书笔记内容(标题+正文),生成图片卡片(封面+正文卡片),以及发布小红书笔记。支持 8 种精美排版主题和 4 种智能分页模式。