add-bench-scenario
Add a benchmark scenario
internal/bench/ is remindb's external-facing benchmark — it compares "how many tokens does an agent consume to do X via remindb tools" against "how many would they consume doing X with grep / cat / find". The output is a token-savings table rendered via text/tabwriter. It's invoked from the remindb bench CLI subcommand and exercised end-to-end by scripts/bench-agents.sh.
This is not the Go testing.B benchmark surface — those live as Benchmark* functions inside pkg/*/bench_test.go and have their own discipline.
Where it lands
Two files for a typical scenario, three if it needs CLI flag plumbing.
| File | What changes |
|---|---|
internal/bench/scenarios.go |
New benchXxx(ctx, session, srcDir, ...) (scenarioResult, error) function |
internal/bench/bench.go |
Wire the new scenario into Run, append to results |
cmd/remindb/... (only if new flag needed) |
Surface a new flag on the bench subcommand and pass it into bench.Config |
The scenario function shape
Every scenario implements the same contract: produce one (or more) scenarioResult{name, naiveTok, remindbTok} by measuring two paths to the same answer — the naive path (token count of what an agent would have to read using shell tools) and the remindb path (token count of the tool's response).