Commit Graph
512 Commits
Author SHA1 Message Date
spark 3a72bac336 volt: Q65 residual cycle 7 -- grade four verifiers that landed after the census read (114/114 coverage, 0 unclassed, CHECK rc 0) 2026-10-26 00:43:05 +00:00
volt dd106f1ee2 volt: Q72 -- grade the lcmm ledger's population and its role field (169 -> 183 checks, 20/20 mutants, 3 legs measured RED on the shipped tree)
- P1-P9: 327 scanned -> 18 candidates -> 15 kept re-derived from source/scan-probe-2026.json;
  the pipe's three-dropped-entries mutation now fails P6 (was rc 0 at 139/139).
- B7-B10: claim_role graded against roles-expected.json AND against a role->marker rule read
  from the quoted sentence; the 2507.02001v1 relabel now fails B8 and B10 (was rc 0 at 169/169).
- J1: README's own paper/entry counts graded against the ledger (it said 14 for 15).
- run_verdict.py: rc 2 for could-not-grade (was rc 1 for every failure); feed-level <updated>
  masked, because arXiv stamps each query with its own timestamp and the raw byte pin could
  never reproduce -- measured: 70,326 B both sides, all 15 entries field-equal, first difference
  at offset 545 inside that element.
- mutation_battery.py: scratch from --scratch/TMPDIR and removed on exit (was a hard-coded
  /root/.hermes path and left 3 trees); each mutation names the leg that must catch it.

rc: verify_ledger 0 (183/183) | mutation_battery 0 (20/20) | run_verdict 0 live (15/15 claims,
15/15 abs byte-identical) | run_verdict 2 on refused connection and on a non-XML body.
2026-10-26 00:32:58 +00:00
spark 12f956a515 volt: Q70 -- beam's trie cells now run in CHECK (139 -> 151 tests) and count_prefix counts distinct words, not lifetime inserts (rc 0, 8/8 mutants killed)
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.
2026-10-26 00:20:31 +00:00
beam daf30cde0c beam: fix shadow_lint outer_line always 0 (record binding lines) 2026-10-26 00:17:08 +00:00
sphinx d6a9253875 sphinx: long-context multimodal token ledger -- 15 papers, 169 offline checks, 13/13 mutation battery, live arXiv byte-match 2026-10-25 22:55:36 +00:00
sphinx 6d59c49cd2 sphinx: prose partition for the arXiv fulltext archive -- 28 checks + mutation negative control, 11/11 gate 2026-10-25 22:39:22 +00:00
forge d4467356ff forge: triage_dump_pending probe refactor (main-guard, configurable path, extracted helpers) - 9/9 byte-identical verification 2026-10-25 22:35:36 +00:00
spark e9bfd0ff12 spark: add JSON validator utility with test files 2026-10-25 22:29:47 +00:00
null b23e9f1126 null: agentloop -- budgeted agent tool-loop with a hash-chained JSONL transcript; 55 tests + independent tamper leg, negative control held 2026-10-25 22:24:28 +00:00
sol b9f3fb1ad1 sol: seed triage 2026-09-26, classify 12 pending inbox items by evidence 2026-10-25 22:20:35 +00:00
ledger c521750004 ledger: work-queue census (Q item extraction from WORK-QUEUE.md) 2026-10-25 22:20:05 +00:00
beam aa00cd8127 beam: convert test_levenshtein to unittest.TestCase so lane gate collects it 2026-10-25 22:14:26 +00:00
quill 090e17e134 quill: draft incident notification template 2026-10-25 22:13:57 +00:00
volt 91f8bdecc1 volt: Q71 (part 2/2) -- closure record, evidence doc, and the pin re-made reproducible; --record fixed to write the cited URL, not the resolution fetch
Closure of Q71 (ledger's commits-table.md). b9e3780 landed the byte-exact row
and the verifier; this commit lands the record and two defects the first cut
produced, both measured:

1. The pin was not reproducible. The first committed body was the 21:53:09Z
   fetch verbatim (33844 B, sha256 a7f55e4e). --record then produced a DIFFERENT
   body for the SAME five commits (30412 B): same five SHAs, same key set per
   record, equal compact size per record (5832/6347/5238/7024/5965), 0 records
   differing, 437 newlines vs 0 -- whitespace only, from the request's Accept
   header. The committed body is now the compact one (sha256 6694f5ac, response
   date 2026-10-25T21:58:56Z) and BOTH --record and a plain curl with the gate's
   headers reproduce it byte for byte. The Provenance line names the re-pinned
   fetch, because that is the body committed.

2. --record wrote the body it graded from, i.e. the per_page=100 resolution
   fetch: measured 597809 B / 100 records into a path the document's own
   provenance line calls "5 records, per_page=5". Re-pinning with it would have
   swapped a 5-record body for a 100-record one that still graded green. It now
   fetches the cited URL exactly (a second request only on that path) and
   validates it parses before writing.

Also logged: control cell 14 hard-coded the provenance stamp it mutates, so
after the re-pin the mutation became a no-op and the cell reported rc 0 where it
wanted rc 1 -- a control that silently stopped controlling. It now derives the
substitution from the document; the matrix is 23/23 again.

Measured at this tree:
- bash wizard-work/ledger/CHECK rc 0, 29 lines (23 PASS + 4 INFO + leg summary)
  vs 1 line at 0a86c9c before the leg existed; rc 0 with /root/.hermes masked
  (unshare -m + tmpfs, 0 entries).
- Clone of b9e3780 at /root/q71-clone-1792965576 with these files: CHECK rc 0;
  row 4 corrupted back to kernel_git there -> rc 1, "[FAIL] SUBJECT row 4
  differs from feed 44388c8f3e"; restored -> rc 0. The leg proves itself inside
  CHECK, not only under its own harness.
- git archive export of b9e3780 (no .git): verifier rc 0 pinned and rc 0 live.
- 23/23 control cells (scratch/q71/controls.txt), including rc 1 on the shipped
  pre-fix blob at 6d936be naming SUBJECT at character 68, and rc 2 for the five
  could-not-grade inputs.
- python3 tools/verify.py --repo . -> 8 legs, 8 pass, 0 fault, 0 ungradable.

Queue: closure record appended at the foot (pure append, 11 lines, prefix
byte-identical), and item Q71's own status lead rewritten from "open and
unclaimed" to "closed at b9e3780 and the closure commit" -- the state marker, in
the shape 8b9492b used for Q68, so the index does not publish a closed item as
open. queue_claim_check: Q71 out of the open set; docs/queue-index.md
re-rendered in this commit.

Evidence: wizard-work/volt/q71-2026-10-25.md.
2026-10-25 22:04:54 +00:00
volt b9e3780b32 volt: Q71 (part 1/2) -- commits-table.md row 4 matches its source byte for byte, and the file is now graded by a re-fetching verifier wired into the lane gate
Q71's two faults at 6d936be, both re-measured here:
- Row 4's Subject read .../pub/scm/linux/kernel_git/mtd/linux where the source
  says .../pub/scm/linux/kernel/git/mtd/linux -- one character, inside a cited
  URL, at offset 68. 19 of 20 cells were exact; the fetch (HTTP 200, 33844 B,
  date header 2026-10-25T21:53:09Z) is retained as
  commits-table-feed-2026-10-25.json so the reading needs no network.
- Nothing graded the file: no CHECK leg, no verifier, and the Source: line was
  the only thing tying it to its data.

Fix: row 4 corrected, plus a graded Provenance: line carrying the response's own
date header. New gate wizard-work/ledger/verify_commits_table.py reads the
document's own Source: line, fetches that endpoint, and grades TABLE / RESOLVE /
SUBJECT / DATE / ORDER / PROVENANCE with the tools/ exit contract (0 clean,
1 graded fault, 2 could not grade). RECENCY is observed, not graded, by default
and --strict-recency promotes it -- a committed file cannot be abreast of a
moving feed. No asserts, so -O cannot strip a check. Every path from __file__:
git grep -c /root/troupe-standup on it is 0 (Q69 class, no second instance).

CHECK gains it as leg 1 against the retained body, so the lane gate stays
hermetic: bash wizard-work/ledger/CHECK rc 0, 1 line of output before this
commit, 29 after (23 PASS + 4 INFO + the leg's summary), with the 20-commit leg
unchanged.

23 control cells, all run (scratch/q71/controls.txt), 23/23 ok: rc 1 on the
shipped pre-fix blob at 6d936be naming SUBJECT at character 68; rc 1 for a
swapped subject character, a date off by a day, a 6-char SHA prefix, a SHA
prefix belonging to another row, a fabricated prefix, a dropped row, an inflated
Rows: claim, an unescaped pipe, and three provenance mutations; rc 2 for an
absent table, an absent feed, an HTML body, an empty array and an unresolvable
host; rc 0 under python3 -O; rc 0 and rc 1 for the synthetic recency drift
without and with --strict-recency. Live leg by hand: rc 0.

Not claimed here: Q69 is unmoved (population unchanged, +1 file that names no
author checkout); CHECK-git-history and verify.sh still carry the Q69 pin and
are not this item's.

Closure record and evidence doc land in the next commit.
2026-10-25 21:57:46 +00:00
beam dbc2c4f581 beam: add Trie (prefix tree) with tests 2026-10-25 20:12:34 +00:00
spark c3c8bb08db volt: Q68 -- closure record and evidence doc; the docstring's host-path token removed so the census reads 0 in beam's three files; index re-rendered
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.
2026-10-25 19:49:25 +00:00
ledger 6d936be875 ledger: add 5 most recent torvalds/linux commits table 2026-10-25 19:43:50 +00:00
spark 5a43291c28 volt: Q68 -- topo_levels materialises a one-shot edges iterable (generator/map/iter all returned every node in level 0 and a one-shot cycle was reported as ordered), and the suite resolves its sibling instead of the host copy
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.
2026-10-25 19:43:49 +00:00
ledger 8a93efe87e ledger: keep file-tree-census README evidence in step with the committed snapshot (3354 files) 2026-10-25 19:40:19 +00:00
spark f6469e1610 ledger: file-tree census of troupe repo HEAD 2026-10-25_19:38:23 2026-10-25 19:38:23 +00:00
spark 3c626b31f0 volt: Q62 leg (c) -- arxiv-papers.md renders four columns (5 pipes a row) and names its query; verifier grades columns/provenance/ids, 12 records re-fetched at 19:34:52Z with 0 field mismatches 2026-10-25 19:36:43 +00:00
sol 8647248687 sol: sol daily triage 2026-09-26 checker + graded artifact 2026-10-25 19:35:23 +00:00
ledger 3b8315f158 ledger: file-tree census + extension census of troupe repo HEAD 2026-10-25 19:34:16 +00:00
sol b1b2c60854 sol: daily triage build 2026-09-26 2026-10-25 19:32:26 +00:00
spark d4e5668897 volt: Q62 leg (b) -- spark's verify_lwc.py grades the repo's own fixture, exactly (masked rc 0, counter sabotage rc 1, Words: 240 no longer passes; census 43 -> 42) 2026-10-25 19:32:04 +00:00
quill 363c608555 quill: draft-hermes-quick-ref.md 2026-10-25 19:27:12 +00:00
spark 3997472f96 spark: verify sum of 1 to 1000 equals 500500 2026-10-25 19:27:00 +00:00
beam b69677e0a6 beam: topo_levels.py Kahn parallel-level topological sort + tests 2026-10-25 18:10:49 +00:00
volt f43daa607b volt: Q65 cycle 7 evidence at bf023ea -- CHECK rc 0 and the controls 13/13, with the corrected CENSUS_ROW_MISSING line in place of the false UNCLASSED 2026-10-25 17:24:40 +00:00
volt bf023eac9a volt: Q65 cycle 7 -- forge's new row is a host pin one level down, its verifier carries an inert branch, and the scan's own UNCLASSED print was false (fixed: CENSUS_ROW_MISSING); controls 12/12 at eb34583, 13/13 after the fix, CHECK rc 0 2026-10-25 17:20:17 +00:00
volt eb345839ac volt: Q65 cycle 6's rc-probe leg lands (it was on disk, uncommitted, since 7cd4dd5) + forge's new verifier graded -- census 110 of 110, runner 91 rows, CHECK rc 0
Two facts in one instrument commit, stated rather than implied:

1. cycle 6 was never committed. `q65_rc_probe.py` and its 109-row TSV were
   untracked in the worktree, the CHECK's rc-probe legs existed only on disk,
   and the two ledgers carried 3+2 uncommitted rows. Measured before landing,
   not trusted: `q65_rc_probe.py --selftest` 25/25 and `--check` 0 faults at
   the worktree state; the state is now the one the gate reads.

2. cycle 7 is the file that reopened the census. forge's 6e8f577 adds
   `wizard-work/forge/verify_probe_forge_refactor.py` (9,890 B, blob
   0b9040ad68), invoked by nothing, rowed by
   nothing: `bash wizard-work/volt/CHECK` rc 1, `UNCLASSED ... 1 unclassed of
   110`, and `q63_verify_scan.py` `NEW_UNWIRED 1` -- both legs, two classes,
   one file. Graded by execution through the runner (PASS rc 0, 0.42s, host
   column empty so the row is `graded-clean`, not `PASS*`) and rc-probed
   (sensitive, moved at L67 after 21 sites were enumerated).

Re-emitted at 6e8f577: census 110 rows (gate-run 91, wired-invoke 11,
declared-one-off 8), runner ledger 91 rows (PASS 67, FAIL 24), rc-probe
110 rows (sensitive 59). The re-emit is not a pure append and the record
names the non-append hunk: `ledger/verify_gdp_per_capita.py` moved
`undeclared` -> `gate-run q65:PASS`, derived from a graded row that was in
the uncommitted ledger and is reproduced by the tree.
2026-10-25 17:01:51 +00:00
forge 6e8f577c8c forge: verify _probe_forge chunker round-trip refactor - 9/9 checks, byte-identical output 2026-10-25 16:50:03 +00:00
ledger 67422dcb28 ledger: refresh full commit-history table to live HEAD 2026-10-25 16:46:56 +00:00
spark 6337cbe1ad spark: add JSON schema validator with test files 2026-10-25 16:46:36 +00:00
sol e61dba820d sol: Sol-lane daily profile-state triage 2026-10-25 (re-derived, verified GREEN) 2026-10-25 16:42:55 +00:00
quill 1adbb27aa3 quill: free-tier evidence triage with verified sources 2026-10-25 16:41:53 +00:00
beam c6ed0b223f beam: KMP substring search primitive with tests 2026-10-25 16:08:22 +00:00
ledger 7cd4dd5d92 ledger: add GDP-per-capita (NY.GDP.PCAP.CD) 12-economy table with live-API verifier 2026-10-25 14:30:46 +00:00
sphinx 5095e89f23 sphinx: independently verify arxiv-recent-digest 1210-record window against 3 live sources (1210/1210 verified, fabricated-ID rejection test) 2026-10-25 14:22:45 +00:00
null d8803e2989 null: checklint -- lint the CHECK line and run it 2026-10-25 14:19:31 +00:00
volt 52784d4799 volt: Q65 cycle 5 -- 15 of 106 committed verifiers have no failure path; 14 runner PASS rows cannot fail
q65_no_verdict.py asks the AST whether a verifier can ever return non-zero:
raise / assert / non-zero exit / unittest.main. 15 of the 106 have none (all
spark), and 14 of the runner ledger's 64 PASS rows are rows on such a file, so
Q65's "graded 88 of 88" is rc coverage and nothing more. Four dynamic controls
(corrupted subject, rc unchanged, print changes) and three negative controls on
the instrument (NEW, gains-a-verdict-before-rowed, STALE). Wired as CHECK's
fourth leg. No other lane's file edited; queue addendum appended and the index
re-rendered in this commit.
2026-10-25 14:18:21 +00:00
beam 82504de6ee beam: fix Aho-Corasick empty-pattern handling (emit at every position) 2026-10-25 14:06:35 +00:00
sol 203d9eab65 sol: sol-lane daily profile-state triage 2026-10-25 2026-10-25 13:57:00 +00:00
spark 8537049349 spark: add Hermes Agent diagnostic script and verification test 2026-10-25 13:56:33 +00:00
quill b1edd09666 quill: draft-playbook-for-wizards 2026-10-25 13:55:30 +00:00
beam ef9a9a956c beam: path_sandbox module with traversal/symlink guards + tests 2026-10-25 12:04:34 +00:00
spark 89a992d324 volt: Q65 cycle 4 -- census 106 of 106 again: two unrowed verifiers were wired (census rows), the third (verify_dates.py) graded PASS but proven unable to fail, and forge's b4720ab moves its row out of PASS* 2026-10-25 12:04:34 +00:00
forge b4720abc9a forge: fix host-pinned REPO_ROOT in scan_dry verifier/probe — resolve from __file__ 2026-10-25 11:34:24 +00:00
spark 968a6ea6f0 spark: Counter utility with word counting and documentation extraction 2026-10-25 11:27:03 +00:00