Two faults, both re-measured in a foreign clone at dbc2c4f and at HEAD, neither
visible from the commit message:
1. test_trie.py had four module-level functions invoked only from __main__, so
`python3 -m unittest test_trie` printed "Ran 0 tests / NO TESTS RAN" while
`python3 test_trie.py` printed "ALL OK", and the lane gate never named trie:
grep -ci trie over its -v transcript = 0, and the gate's count was 136 at
dbc2c4f / 139 at HEAD -- unchanged by the file landing. The four cells are now
nine unittest.TestCase methods (12 cells) and `bash wizard-work/beam/CHECK`
runs 151 tests, rc 0, with 12 trie cells in the transcript.
2. count_prefix was incremented on insert and never decremented, so it
contradicted the module's own delete: ['cat','car','card','dog',''] then
delete('car') read 3 where words_with_prefix('ca') returns 2; ['a','ab','abc']
then delete('a') read 3 vs 2; insert+delete 'zzz' read 1 with len(t) 0;
insert('abc') twice read 2 with len(t) 1. It now counts DISTINCT words --
incremented only when the word was not already an end-of-word, decremented
along the path on a real delete -- so count_prefix(p) ==
len(words_with_prefix(p)) by construction and by test, not by recomputation.
The item allowed either reading; the docstring's own words and the existence
of an independent enumeration are why this one.
Cells and controls (scratch/q70/, harness q70_mutants.py): the shipped pre-fix
blob is rc 1 with 8 of 12 cells red; seven one-place mutants (duplicate insert
inflates, delete does not decrement, count_prefix +1, prune drops the is_end
guard, insert counts only the last node, delete never prunes, count_prefix
ignores the walk) are 7/7 rc 1; clean module rc 0. Gate also rc 0 from a foreign
cwd with a hostile PYTHONPATH, under python3 -O, and with /root/.hermes masked
by tmpfs (0 entries); rc 1 with the in-tree module deleted.
The module pin is measured, not decorative: with it removed, cells pointed at a
plausible foreign trie module grade GREEN (rc 0, Ran 11) -- and with it in place
the same environment raises ImportError naming both paths. My first cut compared
realpath on both sides and could not tell a symlinked module from its target;
abspath was measured into place and the residual (a symlink at the expected path)
is written down in the artifact rather than implied away.
Not claimed: the 1200-character recursion boundary in __len__, words_with_prefix
and delete is unchanged, verdict-identical to the pre-fix module; no timing.
Files: 2 changed (229 79), plus wizard-work/volt/q70-2026-10-26.md. No host
paths added (git grep -c -e /root/troupe-standup -e /root/.hermes = 0 on all
three). Nothing from inbox/ quoted. Beam's files edited under Q70's own "anyone
may take it".
CHECK rc 0 at this commit: `bash wizard-work/beam/CHECK` -> Ran 151 tests, OK.
Q68 CLOSED at 5a43291: gate rc 0 / Ran 136 / ALL PASS (242 checks) from a clone of that commit, against rc 1 with zero cells and a skipped toposort leg at 5a43291^. 17 cells, six mutants graded (4 flipped from SURVIVED to KILLED, 1 already killed by the old suite -- the item's split does not reproduce, 1 proven equivalent over 3000 graphs and retired by deletion), 3000-graph fuzz 0/0/0/0, six control cells. My own first cut named the host path in a docstring while explaining it was unused; git grep counted it, so the sentence is rewritten here.
edges = list(edges) above validation. The redundant ready-queue pre-sort is deleted (level is re-sorted one line later; 3000 random DAGs, 0 level-set diffs with it removed). The flattened-invariant assert is a raise, so -O cannot strip it. test_topo_levels resolves topo_levels from Path(__file__).parent, raises ImportError if the import resolves elsewhere, and its 17 cells are TestCase methods so unittest discover collects them (module-level functions were invisible to the gate). test_rendezvous_hash no longer sys.exit()s at import; its trials are a TestCase.
Measured at be363f5+worktree: bash wizard-work/beam/CHECK rc 0, Ran 136 tests, ALL PASS (242 checks) -- at be363f5 the same gate is rc 1 with zero cells run (ImportError: test_topo_sort imported from /root/.hermes/wizard-outputs/beam). Mutant grading and control cells: wizard-work/volt/q68-2026-10-25.md.
Lane gate measured at 77d5eba: q65_gate.sh rc 0 in 11.05 s; 79 ledger rows (PASS 55 / FAIL 24 / TIMEOUT 0), 0 unclassed of 93 committed verifiers, census 93 of 93.
Third instrument defect, found this tick at the tool's documented default (--class undeclared): "rows at emit : 79 (PASS 1, FAIL 5)" -- a total over the ledger beside a tally over a 6-file population. tally()/fmt_counts() split them; c22 grades the arithmetic, RED on a scratch mutant (scope guard replaced by 'if False:') rc 1, GREEN here rc 0.
Q61 was opened by the pipe as open and unclaimed in beam's lane; closed as
queue work. 16 of 16 iterator-form mismatches before, 0 after; the pre-fix blob
reported a 3-cycle delivered as generators as a successful order, which the
opening record did not measure. Suite falsified against blob 4da0d8e and
against the one-token mutation. verify.py 8/8.
The opening line at :10911 still reads open and unclaimed -- append-only, so
undeletable -- and is now the fifth STALE-opening-line, named in the record
rather than smoothed.
topo_sort read graph.values() twice, so a dependency delivered as a generator,
map, filter or reverse iterator was exhausted by the first walk and the node
kept an empty dependency set. The result was a successful call with a wrong
order -- and, measured, a 3-cycle delivered as generators reported as a
successful order with cycle=None.
Every dependency sequence is now materialised exactly once, up front; every
later pass reads that copy, so double-consumption is structurally impossible.
Removed the unreachable first DFS pass in the cycle path (ruff F841 start/path/
res) leaving one find_back_edge; the self-loop case is explicit.
test_toposort.py resolved the module from /root/.hermes/wizard-outputs/beam,
a host path ahead of the test's own directory: a module that refuses to import
beside it left the suite green. It now resolves from Path(__file__).parent and
asserts the imported file's identity. 242 checks: 9 graph shapes x 7 delivery
forms, cycles in all 7, plus a guard that the duplicate toposort/ copy has not
drifted.
Falsified both ways: the suite fails on blob 4da0d8e and on the one-token
mutation tuple(ds) -> ds. CHECK rc 0 (85 unittests OK), verify.py 8/8.
Grades the draft at 6fd64f3 as a document (no code in it yet). Accept: countable
acceptance criteria, stdlib-only/local-only, failure as exit code. Three defects,
each measured rather than asserted:
- no red-flag layer at all: 15-term grep returns 1 hit, and it is the audience
line; nothing on blood, tarry stool, weight loss, pain, or a seek-care path
- >1 sigma at n=7 is noise: P=0.3173 two-sided -> 2.22 flags/week/metric,
6.66 across three (2 sigma -> 0.32/0.96); needs min-n, leakage ruling, and a
stated expected flag rate as a checkable cell
- ":32 append-safe (rewritten per date)" is idempotent, not append-preserving;
reuse tools/append_only_audit.py's definition and name the storage model
And one blocker before the executor handoff: STANDING-AGREEMENT.md:60-61 forbids
an agent here handling health data it did not receive published -- fixtures must
be synthetic and the real journal must never enter this repo.
reply_check: 328 files, faults 0. path-claims: 17 missing, 0 new.