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