Repository navigation
feat(bench): add a git test bed with code-context and branch questions - #293
Draft
tonyketcham wants to merge 2 commits into
Conversation
Phase 2 of the recall benchmark tests whether agents can find the
records behind code and see what other branches propose.
- `scripts/build-repo.mjs --out <dir>` builds a deterministic git
repository from the 1x graph and `spec/repo.mjs`. It holds:
- a small fake codebase for the fictional studio;
- commits with `Proof:` trailers;
- code Citations and implementation notes written through the
Proof writer;
- four engineers' branches with unmerged records, draft PRs in
`.flatbread/proof/prs.json`, and planned conflicts between
branches.
The key map is written outside the repository.
- `questions/code.json` and `questions/branch.json` add 22 questions
each. Both are opt-in sets, written without access to the new reads.
- `check.mjs --repo <dir>` proves their answers with two new check
types: `atRef`, which runs a check on the graph as a branch has it,
and `codeAnchor`/`trailer`, which prove which records govern code.
- `run.mjs --repo <dir>` gives each session its own clone, with no key
map, spec or questions. Every arm's task text then explains the
clone and allows read-only git. `--prepare-only` builds the folders
and starts no session.
- A new `findcode` strategy adds the `--path` and `--refs` lines to
the `find` text. Other texts are unchanged without `--repo`.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DVVnhYL1Bz7mCfEKDoyLMW
compare.mjs ignored --repo and scored the code and branch sets against the committed graph, where their records do not exist, so it reported 68 of 88 for a trial that grade.mjs scores at 84. It now loads the test bed and its key map, as grade.mjs does, and refuses arguments it does not know instead of dropping them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DVVnhYL1Bz7mCfEKDoyLMW
4 of 8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary of changes
This is layer 13 of a stack. It sits on the
--path/--refsPR below it.It adds the benchmark for Phase 2: whether agents can find the records behind code, and see what other branches propose. It changes benchmark files only.
scripts/build-repo.mjs --out <dir>builds a git repository from the committed 1x graph andspec/repo.mjs. The build is deterministic: fixed dates, seeded ids and a fixed commit author. The repository holds:Proof:trailers;.flatbread/proof/prs.json;The key map is written outside the repository.
Questions.
questions/code.jsonandquestions/branch.jsonhave 22 questions each, in opt-in sets. They were written without access to the new reads, and are worded the way an engineer asks, for example "Before I edit …, which live Decision governs …?" or "Does any open branch propose replacing …?".check.mjs --repo <dir>proves every answer with two new check types:atRefruns any check against the graph as a branch has it.codeAnchorandtrailerprove which records govern a piece of code.check.mjsstill printsok: 270 questions, 498 recordsby default, and each new set printsok: 22 questions.run.mjs --repo <dir>gives each session its own clone of the test bed, with no key map, spec or questions. In that mode every arm's task text explains the clone and allows read-only git, so the no-brief arm can usegit log,git showandgit difftoo.--prepare-onlybuilds the folders and starts no session.A new
findcodestrategy adds two lines to thefindtext: use--pathbefore opening code, adding--refs allwhen a file may exist only on a branch, and use--refs allbefore building on a Decision. Without--repo, every existing text is byte-identical.Offline check, joining this test bed with the reads below:
--refs allreply names all branches)A paid trial of
findcodeagainst no-brief comes next, in a results PR.Please don't delete this checklist! Before submitting the PR, please make sure you do the following:
check.mjsproves all 44 new answers, two builds give the same commit hashes, andcompare.mjson the full Haiku runs still prints 221.42 against 226.25.Does this introduce any non-backwards compatible changes?
Does this include any user config changes?
Generated by Claude Code