PluginBench
Skill
Review
Audit score 70

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
Prerequisites
  • tmux 3+
  • Logged-in claude CLI
  • Node.js
  • Git
  • macOS or Linux
  • Run from the codegraph repository root
Claude Code
Cursor
Windsurf
Cline

How to use agent-eval

  1. 1.Select a CodeGraph version to test (local dev build, latest published, or specific version number)
  2. 2.Choose a programming language from the corpus
  3. 3.Select a repository by size and file count
  4. 4.Pick an evaluation harness: Headless (fast, token/cost metrics), Interactive/tmux (faithful behavior), or Both
  5. 5.Run audit.sh in the background with the selected parameters
  6. 6.Review the generated report: cost, tool call counts, ARM COMPARISON table, and feedback metrics

Use cases

Good for
  • 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
Who it's for
  • 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

What is the difference between Headless and Interactive (tmux) modes?

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).

Why is the CodeGraph index rebuilt on every run?

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.

What do the feedback metrics mean?

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.

How do I know if the benchmark results are valid?

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.

Can I add new repositories to the benchmark corpus?

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

  • tmux 3+, a logged-in claude CLI, 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 -p with 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, file Reads, Grep/Bash, codegraph-tool calls, duration, total cost.
  • Interactive (parse-session.mjs): the VERDICT: codegraph_explore used Nx | Read N | Grep/Bash N and TOKENS: 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 COMPARISON table. 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.sh wipes .codegraph) — different versions extract differently, so an index must be served by the same binary that built it.
  • audit.sh temporarily mutates the global codegraph install for the test, then restores your dev link via local-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.