Decision layer for AI coding agents
[ Report.v1 // Contexer Benchmark ]ID: 540_SESS_CTX_01

Context recall dynamics.

Two models. Six memory conditions. The same AI agent runs the same tasks on the same codebase — no memory, hand-written CLAUDE.md, AGENTS.md, both files, Contexer, and Contexer layered on CLAUDE.md. Accuracy, tokens, cost, turns, and rule compliance are measured with code. Every number is re-derivable from raw JSONL.

Sessions
540
Models
Sonnet / Opus
Variables
06 conditions
LLM judges used
0

01 // Key findings

Finding_01 // RecallPrimary

Recorded decisions turn unanswerable questions into one-turn answers.

Asked "why did we choose Postgres over MySQL?" when the decision existed only in memory. Same pattern on both models, 16 runs per condition, stable under three rewordings.

Turns
6
1
Tokens
165k
33k
Cost
$0.11
$0.04
No memory Contexer
Finding_02 // Compliance

Stored rules get followed.

Seeded rule "never log request data": respected 8/8 on both models with any memory. Bare Opus: 0/8. Contexer was also the cheapest way to comply — 68k vs 250k tokens for the same rule in CLAUDE.md.

8/8vs 0/8 (Opus bare)
Finding_04 // AGENTS.md

Honored — but at 2–4× the cost.

131k tokens vs 33k on the same question. Consistent with the file being found and read rather than auto-loaded. Directional result, one observation per cell.

2–4×cost multiplier
Finding_03 // ParityNull result · published anyway

A complete, hand-maintained CLAUDE.md ties Contexer on static recall.

Given the same knowledge, accuracy and compliance were identical — both models, 16 runs per cell. Contexer's value isn't out-recalling a perfect file. It's that the file never has to be written: bootstrap mines evidence-backed conventions from the repo in seconds, and mid-session decisions capture themselves. Layering Contexer on an existing CLAUDE.md caused no harm and no single-shot gain.

=
Accuracy
=
Compliance
0s
Docs

What we could not confirm.

Honest disclosure

Published because dropping failed claims is how benchmarks lie.

[L-01] Retracted

Cross-session compounding effect.

An early result showed Contexer getting cheaper across chained sessions. Disappeared at higher sample size with proper interleaving. Claim removed.

[L-02] Overhead

Median cost +12–17% higher.

Across all tasks. Injected context is overhead on tasks that never touch memory. Savings are task-shaped, not universal.

[L-03] Scope

Solo dev, synthetic repos only.

Team-mode benchmark (shared decisions via remote store) is designed but has not yet run. No claims about team mode.

02 // Methodology

01_ISOLATION

Throwaway HOME. Fresh fixture repo. Environment allowlist — never the developer's real env. Contexer installs via its real installer so real hooks fire.

02_NO_TRAINING_LEAK

Synthetic, seeded fixture codebase. Cannot exist in any model's training data.

03_NO_ORDERING_CONFOUNDS

Conditions alternate in time. Validator warns on contiguous blocks. Every row timestamped.

04_DETERMINISTIC_SCORING

Answers must contain facts from stored knowledge. Code checked by AST inspection. Tasks pass or fail by their own test commands. No LLM judge.

05_INDEPENDENT_VALIDATOR

Separate codebase recomputes every statistic and hunts anomalies. Failed sessions recorded, never silently zeroed.

06_ADVERSARIAL_REVIEW

Every claim must survive a review pass that actively tries to refute it. The CLAUDE.md arm exists because review demanded a fair competitor.

03 // Reproduce it

reproduce_benchmark.sh
# free end-to-end pipeline check (stub sessions, no tokens)
uv run pytest tests/test_bench_*.py -q --no-cov

# a live campaign (spends real API tokens — start small)
uv run python -m benchmarks.run --reps 1 \
  --tasks rat-storage,conv-endpoint \
  --model claude-sonnet-5 \
  --out benchmarks/artifacts/mine

uv run python -m benchmarks.report benchmarks/artifacts/mine/runs.jsonl
uv run python -m benchmarks.validate benchmarks/artifacts/mine

The harness lives in benchmarks/ — runner, scorers, validator, fixture generator, task definitions. Campaign artifacts (one JSONL row per session plus validator output) are in benchmarks/artifacts/.