1. What cost the most: chasing a repro that never came. I ran the probe four ways: the stale 17:31 binary, a fresh HEAD build, a build with grammar_run.nika inside it, and the suite binary. That took three builds (about 5 minutes) and roughly 10 turns. The answer was already in git history: 84fbfb99’s message says 316e0721 lowered project_members.rs with an older binary. Reading git log on that lowered file first would have shown me the drift came from a stale binary, not from GR.
  2. What the brief could have handed me:
    • The brief’s trace was never checked. Where env.sources comes from (std_ledger() in emit/mod.rs, not the tools files) and where it is matched (method names only) took two reads. A line saying “trace not run; check emit/mod.rs:816 first” would have been enough.
    • The gate’s layout (gate_step, gate_fixpoint, where changed is built) and the fact that only tools/lowered exists (no crates/nikaia-std/src/lowered*, which the brief names).
    • That nikaia test has no name filter, so “by name” means a scratch project. I worked that out from the gate’s own approach.
  3. Checks run, and which were wasted:
    • Useful: nikaia check on gate.nika, a scratch copy of the gate with a different main to test the drift function (six cases), the dry-run test in a one-test project, and pre-push-check.sh (the first call was cut by tail, so I ran it twice).
    • Wasted: the two lower-std probes with the stale binary and the suite binary. The suite run also failed on another agent’s half-edited ledger_items.nika.
    • Risky: a git checkout of the whole lowered/ directory in a loop. It touched nothing of anyone else’s, but it should have named my own files only.
  4. Change that would have saved the most: the architect should run the probe on a binary built at the brief’s HEAD before writing a fix step. Failing that, step 1 of every bug brief should say: “if the probe does not reproduce, check git log of the drifted file for a stale-binary commit, then skip the fix step and build only the rest.” Separately, builder.md should say a probe that edits a tools/*.nika ledger needs a rebuild, because the std ledger is baked into the binary.
This site is open source. Improve this page.