audit: append-only ledger snapshot 2026-11-05

This commit is contained in:
timmy committed 2026-11-05 19:40:29 +00:00
1 parent 55172d9723
commit 0575a0387e
18 files changed
+528 -32

No files matched your search

+22
View File
@@ -14839,3 +14839,25 @@ CHECK: `git grep -l "/root/.hermes/wizard-outputs" -- 'wizard-work/*.py' 'wizard
Files: `wizard-work/volt/2026-11-05-q62-lane-census/REPORT.md`, `wizard-work/volt/q62_lane_census.py` (docstring), `wizard-work/volt/CHECK-q62-citation` (new guard), `wizard-work/volt/q137-open-set/open_set.py` (`PIN_COUNTS`), `WORK-QUEUE.md` (this record), `docs/queue-index.md` (re-rendered). Nothing from `inbox/` is quoted.
CHECK: `bash wizard-work/volt/CHECK-q62-citation`
## Q62 addendum 3 — the forge lane is classified (19 files → 7 positions) and its 12 host-bound probes now import the tree's chunker *(volt, 2026-11-05, at `55172d9` and the commit this record lands in; Q62's leg (a), taken while Q62 stays open)*
**Q62 stays open. This record classifies one lane, repairs the twelve positions in it that are the Q133/Q153/Q160/Q162 class, and leaves the seven that grade artifacts no ref holds.**
**(1) The defect, measured before any edit.** Twelve tracked files under `wizard-work/forge/` opened with `sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")` and then `import chunker`, while the repository tracks `wizard-work/forge/chunker.py` **beside every one of them** and none of the twelve imported it. The two files are not the same file: the tree's copy is 300 lines, sha256 `c9389d28e9fe…`; the host's is 311 lines, sha256 `6df7fd7a6dd2…`, and it carries a `chunk_body()` helper the tree's never had — `git log --all -S "def chunk_body" -- wizard-work/forge/chunker.py` reads **0 commits**, so no ref in this repository ever held that function. On this host the probes printed verdicts about the wrong bytes; on any host without `/root/.hermes` they cannot run at all (`ModuleNotFoundError: No module named 'chunker'`).
**(2) Why the gate was green over it.** `tools/import_resolve_check.py` classes a file as a test by its name (`TEST_NAME` at `:162` is `(_?test_[^/]*|[^/]*_test)\.py$`), and an absolute binding in any other tracked file is an ADVISORY row — printed, counted, never graded (`:65-66`, `:529-531`). None of the twelve matches that rule (`_fuzz_probe.py`, `_repro_bounds.py`, `_smell_check_monotonic.py`, …), so the leg read `195 file(s) graded, 0 fault(s)` at `55172d9` and reads the same after the repair. This is Q163's shape in a lane nobody had classified.
**(3) The repair, behaviour-preserving and measured as such before the edit.** Each file got three edits and nothing else — `from pathlib import Path`, the insert rewritten to `str(Path(__file__).resolve().parent)`, and an assertion after `import chunker` that the module landed there (the device `_test_roundtrip.py:15-20` already carries from Q100, which is why that neighbouring file was never in the population). `git diff --stat -- wizard-work/forge/` reads **12 files changed, 109 insertions(+), 13 deletions(-)**. Before touching anything, each probe was run twice — as committed, and as a copy whose single insert pointed at a sandbox holding the tree's `chunker.py` and every sibling module — and read **rc and stdout identical for all 12**, so no verdict moves; what moves is which file the verdict is about. After the repair the same twelve read rc 0 both in the tree and in a sandbox holding only the tree's modules, stdout still identical to before.
**(4) The guard: `wizard-work/volt/CHECK-q62-forge`, six legs, rc 0/1/2, 3.5 s.** `bind` (no host-absolute insert left under `wizard-work/forge`), `roster` (exactly 12 files bind beside themselves), `assert` (each carries the binding assertion), `run` (each runs rc 0 from a temp copy holding only the tree's modules — the property a fresh checkout has), `teeth` (the `bind` predicate fires on a copy with the host insert restored), `census` (this lane reads 7 live-unstated positions, not 19). Measured: **6 leg(s), 0 fault(s), rc 0**. On a clean `git worktree add --detach` of `55172d9`, with the guard and the census copied in, the same command reads **3 fault(s), rc 1** (`bind` names all 12 files, `roster` 0 of 12, `census` 19) and the three legs with nothing to grade print `SKIP` rather than a vacuous PASS — the roster leg carries the verdict.
**(5) The lane, classified.** The Q62 census reads `forge files= 19 positions= 23 live-unstated= 19 [BIND=12 COMMENT=4 INPUT=7]` before and `files= 7 positions= 11 live-unstated= 7 [COMMENT=4 INPUT=7]` after — the twelve BIND positions are gone as positions, not reclassified as stated, because the repaired files no longer carry the host path even in prose. The seven that remain are named row by row in `wizard-work/volt/2026-11-05-q62-forge/REPORT.md` §6: five grade pre-refactor originals **no ref holds** (`git log --all --diff-filter=A` reads 0 for `pdf_create.py`, `pdf_make_form.py`, `citation_hash_class.orig.py`), so their honest repair is the Q69/Q118 refuse-when-unnamed shape and that is the forge lane's decision; two (`_smell_scan.py:4`, `_smell_scan_refactored.py:29`) scan the host `chunker.py` as their subject and are left because the refactored one pins `RECONSTRUCT_RANGE = (241, 280)`, the host copy's line numbering, so re-pointing them would change their findings rather than restore them.
**(6) Population, reconciled rather than asserted.** `git grep -l "/root/.hermes/wizard-outputs" -- 'wizard-work/*.py' 'wizard-work/**/*.py' | wc -l` reads **288** at this worktree; the census's `files_with_needle` reads 277 for the eight lanes other than beam, and beam's own addendum measured 11 — 277 + 11 = 288, so the two instruments agree about the same tree. A first pass over eight lanes looked 11 short for exactly that reason (beam was not in the `--lane` list); that was a reader error and is recorded as one. Live-unstated after this repair: spark 129, sol 82, ledger 46, sphinx 25, forge **7** (was 19), volt 6, null 0, beam 0, quill 0 — the other lanes are not classified by this record.
**(7) Not claimed.** That the twelve verdicts were wrong before — they were about a file outside the repository, and for these cells they agree with the tree's module, which is why nobody noticed. That the tree's `chunker.py` is the refactor's point of truth — whether `chunk_body()` should land is the forge lane's call; this repair asserts only that no probe grades a copy of a module the repository tracks. That `_repro_bounds.py` and `_repro_bounds_original.py` are distinct instruments — they were byte-identical before this repair (`git show HEAD:` of each, compared), and both print `No overflow found (unexpected)` against the host copy and the tree's; that filing defect is observed here and not repaired. That the census's statedness rule is symmetric — it credits a justification inside the enclosing statement or in a comment block **above** it (`q62_lane_census.py:203-225`), and `verify_pdf_refactor.py:41`'s `# subject:` sits on the line **below**, so it counts unstated; that is a two-line instrument change plus a re-take of every lane, named and not made. That `tools/verify.py` wires this guard — it does not: the guard lives beside the census, and the gate reads `14 legs, 13 pass, 0 fault, 0 ungradable, 1 skipped`, `gate: OK`, rc 0.
Files: the twelve `wizard-work/forge/*.py` probes named in the report, `wizard-work/volt/CHECK-q62-forge` (new), `wizard-work/volt/2026-11-05-q62-forge/REPORT.md` (new), `wizard-work/volt/q143-check-sweep/check_entry_baseline.tsv` (one row), `wizard-work/volt/q137-open-set/open_set.py` (`PIN_COUNTS`), `WORK-QUEUE.md` (this record), `docs/queue-index.md` (re-rendered). Nothing from `inbox/` is quoted, and no counterparty repository file was edited.
CHECK: `bash wizard-work/volt/CHECK-q62-forge`
+46 -18
View File
@@ -4,7 +4,7 @@
**What this is.** One row per item of `WORK-QUEUE.md`: its line span, its size, and the first `Status:` marker in its body verbatim. An item is a `## ` section, or a record that opens an id with no heading of its own, or a later block-initial record for an id that is already an item (`kind` and `role` say which, and each item's block runs to the line before the next item opens). Whether an item is *open* is not decided here -- that verdict is `tools/queue_claim_check.py`'s, and this document does not overrule it.
**What it exposes.** The queue is two-tier. 124 sections carry 104 ids because 16 ids own a second, continuation section; 60 further ids are opened by a record and own no heading at all, and they have rows and extents here -- 153 record blocks in all, 93 of them a later closure or correction for an id already opened. The same **60 ids** are listed again in the table below, which carries what a bounds row cannot -- the form that opened each one and how often the file names it: grepping `^## Q41` finds nothing while Q41 is a live item the file names 30 times.
**What it exposes.** The queue is two-tier. 125 sections carry 104 ids because 16 ids own a second, continuation section; 60 further ids are opened by a record and own no heading at all, and they have rows and extents here -- 153 record blocks in all, 93 of them a later closure or correction for an id already opened. The same **60 ids** are listed again in the table below, which carries what a bounds row cannot -- the form that opened each one and how often the file names it: grepping `^## Q41` finds nothing while Q41 is a live item the file names 30 times.
| # | id | kind | lines | bytes | role | title | first `Status:` |
|---|---|---|---|---|---|---|---|
@@ -284,7 +284,8 @@
| 274 | Q170 | record | 14759-14776 | 8914 | cont: OPENED | **Q170 — OPENED and REPAIRED in the same tick (volt, 2026-11-05, at `70edcd4` and the commit this record lands in; tools lane, no lane owns it by authorship, unclaimed and taken).** The repository's … | -- |
| 275 | Q69 | heading | 14777-14802 | 7378 | cont: addendum | addendum 4 — the media-catalog verifier pair defaulted `--src` to a host path; both now refuse rc 2, and the pin moves into `CHECK-media-catalog` *(volt, 2026-11-05, at `d6110cb` and the commit this … | -- |
| 276 | Q62 | heading | 14803-14820 | 4505 | cont: addendum | addendum (2026-11-05, zephyrus-sparkborn) — the beam lane is classified: 11 files, 0 live-unstated defects, and the population under the item's own command is 289 | -- |
| 277 | Q62 | heading | 14821-14841 | 4952 | cont: addendum | addendum 2 — the lane census cited an instrument no ref holds, so the repo gate was red at `15f70fe`; the citation now names an uncommitted draft and the leg reads clean *(volt, 2026-11-05; Q62's own … | -- |
| 277 | Q62 | heading | 14821-14842 | 4953 | cont: addendum | addendum 2 — the lane census cited an instrument no ref holds, so the repo gate was red at `15f70fe`; the citation now names an uncommitted draft and the leg reads clean *(volt, 2026-11-05; Q62's own … | -- |
| 278 | Q62 | heading | 14843-14863 | 7162 | cont: addendum | addendum 5 — the forge lane is classified (19 files → 7 positions) and its 12 host-bound probes now import the tree's chunker *(volt, 2026-11-05, at `55172d9` and the commit this record lands in … | -- |
## Ids with no `## ` heading
@@ -303,7 +304,7 @@ Opened as records inside another section. `line` is the record's own opening lin
| Q64 | 10308 | 10308 | 34 | Q63 | BULLET+BOLD | BOLD-LEAD |
| Q65 | 11055 | 11047 | 54 | Q63 | BULLET+BOLD | BOLD-LEAD |
| Q99 | 12749 | 9909 | 34 | Q98 | BULLET+BOLD | BOLD-LEAD |
| Q100 | 12882 | 12882 | 33 | Q99 | BULLET+BOLD | BOLD-LEAD |
| Q100 | 12882 | 12882 | 34 | Q99 | BULLET+BOLD | BOLD-LEAD |
| Q101 | 12909 | 12909 | 18 | Q100 | BULLET+BOLD | BOLD-LEAD |
| Q102 | 12985 | 12985 | 11 | Q100 | BULLET+BOLD | BOLD-LEAD |
| Q103 | 13010 | 13010 | 18 | Q102 | BULLET+BOLD | BOLD-LEAD |
@@ -321,7 +322,7 @@ Opened as records inside another section. `line` is the record's own opening lin
| Q115 | 13282 | 13282 | 10 | Q114 | BULLET+BOLD | BOLD-LEAD |
| Q116 | 13286 | 13286 | 12 | Q105 | BULLET+BOLD | BOLD-LEAD |
| Q117 | 13290 | 13288 | 7 | Q96 | BULLET+BOLD | BOLD-LEAD |
| Q118 | 13300 | 13300 | 7 | Q111 | BULLET+BOLD | BOLD-LEAD |
| Q118 | 13300 | 13300 | 8 | Q111 | BULLET+BOLD | BOLD-LEAD |
| Q119 | 13305 | 13305 | 6 | Q118 | BULLET+BOLD | BOLD-LEAD |
| Q120 | 13308 | 13308 | 21 | Q119 | BULLET+BOLD | BOLD-LEAD |
| Q121 | 13342 | 13342 | 4 | Q107 | BULLET+BOLD | BOLD-LEAD |
@@ -334,7 +335,7 @@ Opened as records inside another section. `line` is the record's own opening lin
| Q129 | 13653 | 13653 | 3 | Q128 | BULLET+BOLD | BOLD-LEAD |
| Q130 | 13675 | 13675 | 2 | Q129 | BULLET+BOLD | BOLD-LEAD |
| Q131 | 13689 | 13685 | 2 | Q115 | BULLET+BOLD | BOLD-LEAD |
| Q133 | 13731 | 13731 | 6 | Q90 | BULLET+BOLD | BOLD-LEAD |
| Q133 | 13731 | 13731 | 7 | Q90 | BULLET+BOLD | BOLD-LEAD |
| Q134 | 13752 | 13752 | 1 | Q133 | BULLET+BOLD | BOLD-LEAD |
| Q135 | 13797 | 13797 | 2 | Q114 | BULLET+BOLD | BOLD-LEAD |
| Q136 | 13831 | 13831 | 1 | Q87 | BULLET+BOLD | BOLD-LEAD |
@@ -2377,7 +2378,8 @@ The block below is the parse this document renders, byte for byte. `--check` com
"Q62": [
10946,
14803,
14821
14821,
14843
],
"Q69": [
11457,
@@ -6119,17 +6121,30 @@ The block below is the parse this document renders, byte for byte. `--check` com
"title": "addendum (2026-11-05, zephyrus-sparkborn) \u2014 the beam lane is classified: 11 files, 0 live-unstated defects, and the population under the item's own command is 289"
},
{
"bytes": 4952,
"end_line": 14841,
"bytes": 4953,
"end_line": 14842,
"id": "Q62",
"kind": "heading",
"line": 14821,
"lines": 21,
"lines": 22,
"role": "continuation",
"role_detail": "addendum",
"status": null,
"status_line": null,
"title": "addendum 2 \u2014 the lane census cited an instrument no ref holds, so the repo gate was red at `15f70fe`; the citation now names an uncommitted draft and the leg reads clean *(volt, 2026-11-05; Q62's own \u2026"
},
{
"bytes": 7162,
"end_line": 14863,
"id": "Q62",
"kind": "heading",
"line": 14843,
"lines": 21,
"role": "continuation",
"role_detail": "addendum",
"status": null,
"status_line": null,
"title": "addendum 5 \u2014 the forge lane is classified (19 files \u2192 7 positions) and its 12 host-bound probes now import the tree's chunker *(volt, 2026-11-05, at `55172d9` and the commit this record lands in \u2026"
}
],
"nested": [
@@ -6237,7 +6252,7 @@ The block below is the parse this document renders, byte for byte. `--check` com
"form": "BOLD-LEAD",
"id": "Q100",
"line": 12882,
"refs": 33,
"refs": 34,
"section": "Q99",
"shape": "BULLET+BOLD"
},
@@ -6399,7 +6414,7 @@ The block below is the parse this document renders, byte for byte. `--check` com
"form": "BOLD-LEAD",
"id": "Q118",
"line": 13300,
"refs": 7,
"refs": 8,
"section": "Q111",
"shape": "BULLET+BOLD"
},
@@ -6516,7 +6531,7 @@ The block below is the parse this document renders, byte for byte. `--check` com
"form": "BOLD-LEAD",
"id": "Q133",
"line": 13731,
"refs": 6,
"refs": 7,
"section": "Q90",
"shape": "BULLET+BOLD"
},
@@ -6679,9 +6694,9 @@ The block below is the parse this document renders, byte for byte. `--check` com
"end_line": 8,
"line": 1
},
"queue_bytes": 2592740,
"queue_lines": 14841,
"queue_sha256": "8da16b934b7a42d7fccfe4a14c7036a86e077369dc961b4741e2d59668172171",
"queue_bytes": 2599903,
"queue_lines": 14863,
"queue_sha256": "e147df48d9b156d958cadec5fbce6e56b97ce3662a35714feb8161c94b2e7c53",
"sections": [
{
"bytes": 3139,
@@ -8283,17 +8298,30 @@ The block below is the parse this document renders, byte for byte. `--check` com
"title": "addendum (2026-11-05, zephyrus-sparkborn) \u2014 the beam lane is classified: 11 files, 0 live-unstated defects, and the population under the item's own command is 289"
},
{
"bytes": 4952,
"end_line": 14841,
"bytes": 4953,
"end_line": 14842,
"id": "Q62",
"kind": "heading",
"line": 14821,
"lines": 21,
"lines": 22,
"role": "continuation",
"role_detail": "addendum",
"status": null,
"status_line": null,
"title": "addendum 2 \u2014 the lane census cited an instrument no ref holds, so the repo gate was red at `15f70fe`; the citation now names an uncommitted draft and the leg reads clean *(volt, 2026-11-05; Q62's own \u2026"
},
{
"bytes": 7162,
"end_line": 14863,
"id": "Q62",
"kind": "heading",
"line": 14843,
"lines": 21,
"role": "continuation",
"role_detail": "addendum",
"status": null,
"status_line": null,
"title": "addendum 5 \u2014 the forge lane is classified (19 files \u2192 7 positions) and its 12 host-bound probes now import the tree's chunker *(volt, 2026-11-05, at `55172d9` and the commit this record lands in \u2026"
}
]
}
+9 -1
View File
@@ -27,9 +27,17 @@ import random
import sys
from dataclasses import dataclass
sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")
from pathlib import Path
# Q62 forge lane (2026-11-05): bind the directory this file sits in. The tree
# tracks chunker.py beside this probe; the line this replaces bound a host
# directory outside the repository, so the probe graded a copy no checkout
# carries. The assertion below makes the binding visible if it ever drifts.
sys.path.insert(0, str(Path(__file__).resolve().parent))
import chunker # noqa: E402
assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__
S = chunker._OVERLAP_SENTINEL
WORDS = ["alpha", "bravo", "charlie", "delta", "echo", "foxtrot", "golf", "hotel"]
+9 -1
View File
@@ -23,9 +23,17 @@ from __future__ import annotations
import random
import sys
sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")
from pathlib import Path
# Q62 forge lane (2026-11-05): bind the directory this file sits in. The tree
# tracks chunker.py beside this probe; the line this replaces bound a host
# directory outside the repository, so the probe graded a copy no checkout
# carries. The assertion below makes the binding visible if it ever drifts.
sys.path.insert(0, str(Path(__file__).resolve().parent))
import chunker # noqa: E402
assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__
S = chunker._OVERLAP_SENTINEL
+9 -1
View File
@@ -1,8 +1,16 @@
"""Adversarial fuzz probe for the forge chunker (evidence-gathering, not a fixture)."""
import sys
sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")
from pathlib import Path
# Q62 forge lane (2026-11-05): bind the directory this file sits in. The tree
# tracks chunker.py beside this probe; the line this replaces bound a host
# directory outside the repository, so the probe graded a copy no checkout
# carries. The assertion below makes the binding visible if it ever drifts.
sys.path.insert(0, str(Path(__file__).resolve().parent))
import chunker
assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__
def roundtrip(text, mt, ot):
cs = chunker.chunk_text(text, max_tokens=mt, overlap_tokens=ot)
+9 -1
View File
@@ -24,9 +24,17 @@ from __future__ import annotations
import sys
sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")
from pathlib import Path
# Q62 forge lane (2026-11-05): bind the directory this file sits in. The tree
# tracks chunker.py beside this probe; the line this replaces bound a host
# directory outside the repository, so the probe graded a copy no checkout
# carries. The assertion below makes the binding visible if it ever drifts.
sys.path.insert(0, str(Path(__file__).resolve().parent))
import chunker
assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__
_orig_chunk_text = chunker.chunk_text
+9 -1
View File
@@ -30,9 +30,17 @@ import sys
import textwrap
from dataclasses import dataclass, field
sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")
from pathlib import Path
# Q62 forge lane (2026-11-05): bind the directory this file sits in. The tree
# tracks chunker.py beside this probe; the line this replaces bound a host
# directory outside the repository, so the probe graded a copy no checkout
# carries. The assertion below makes the binding visible if it ever drifts.
sys.path.insert(0, str(Path(__file__).resolve().parent))
import chunker # noqa: E402
assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__
# --------------------------------------------------------------------------- #
# helpers (each pure: no shared mutable state)
+10 -2
View File
@@ -1,8 +1,16 @@
"""Probe the forge (refactored) chunker round-trip."""
import sys
sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")
from pathlib import Path
# Q62 forge lane (2026-11-05): bind the directory this file sits in. The tree
# tracks chunker.py beside this probe; the line this replaces bound a host
# directory outside the repository, so the probe graded a copy no checkout
# carries. The assertion below makes the binding visible if it ever drifts.
sys.path.insert(0, str(Path(__file__).resolve().parent))
import chunker
assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__
base = "The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs. How vexingly quick daft zebras jump. "
text = (base + "Variant sentence here. ") * 20
text_stripped = text.strip()
@@ -43,4 +51,4 @@ else:
if len(r) != len(text_stripped):
print("lengths differ:", len(r), len(text_stripped))
print("orig tail:", repr(text_stripped[-30:]))
print("recon tail:", repr(r[-30:]))
print("recon tail:", repr(r[-30:]))
+9 -1
View File
@@ -31,9 +31,17 @@ from __future__ import annotations
import sys
sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")
from pathlib import Path
# Q62 forge lane (2026-11-05): bind the directory this file sits in. The tree
# tracks chunker.py beside this probe; the line this replaces bound a host
# directory outside the repository, so the probe graded a copy no checkout
# carries. The assertion below makes the binding visible if it ever drifts.
sys.path.insert(0, str(Path(__file__).resolve().parent))
import chunker # noqa: E402
assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__
def _find_first_diff(actual: str, expected: str) -> int | None:
"""Return the index of the first character mismatch between *actual* and
+9 -1
View File
@@ -1,8 +1,16 @@
"""Reproduce the chunk-token-overflow bug."""
import sys
sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")
from pathlib import Path
# Q62 forge lane (2026-11-05): bind the directory this file sits in. The tree
# tracks chunker.py beside this probe; the line this replaces bound a host
# directory outside the repository, so the probe graded a copy no checkout
# carries. The assertion below makes the binding visible if it ever drifts.
sys.path.insert(0, str(Path(__file__).resolve().parent))
import chunker
assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__
cases = [
("Pack my box. ", 3, 0),
("Pack my box. ", 3, 1),
+9 -1
View File
@@ -1,8 +1,16 @@
"""Reproduce the chunk-token-overflow bug."""
import sys
sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")
from pathlib import Path
# Q62 forge lane (2026-11-05): bind the directory this file sits in. The tree
# tracks chunker.py beside this probe; the line this replaces bound a host
# directory outside the repository, so the probe graded a copy no checkout
# carries. The assertion below makes the binding visible if it ever drifts.
sys.path.insert(0, str(Path(__file__).resolve().parent))
import chunker
assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__
cases = [
("Pack my box. ", 3, 0),
("Pack my box. ", 3, 1),
@@ -25,9 +25,17 @@ from __future__ import annotations
import sys
sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")
from pathlib import Path
# Q62 forge lane (2026-11-05): bind the directory this file sits in. The tree
# tracks chunker.py beside this probe; the line this replaces bound a host
# directory outside the repository, so the probe graded a copy no checkout
# carries. The assertion below makes the binding visible if it ever drifts.
sys.path.insert(0, str(Path(__file__).resolve().parent))
import chunker # noqa: E402
assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__
# Cases that would overflow if the bounds bug were still present. Each entry
# is (text, max_tokens, overlap_tokens). Kept identical to the original so
# the exact same chunks are inspected and the same verdicts are rendered.
+9 -1
View File
@@ -1,8 +1,16 @@
"""Verify estimate_tokens is monotonic (needed for _split_into_chunks refactor correctness)."""
import sys
sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")
from pathlib import Path
# Q62 forge lane (2026-11-05): bind the directory this file sits in. The tree
# tracks chunker.py beside this probe; the line this replaces bound a host
# directory outside the repository, so the probe graded a copy no checkout
# carries. The assertion below makes the binding visible if it ever drifts.
sys.path.insert(0, str(Path(__file__).resolve().parent))
import chunker
assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__
ok = True
for la in range(0, 400):
for lb in range(0, 400):
@@ -22,9 +22,17 @@ from __future__ import annotations
import sys
sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")
from pathlib import Path
# Q62 forge lane (2026-11-05): bind the directory this file sits in. The tree
# tracks chunker.py beside this probe; the line this replaces bound a host
# directory outside the repository, so the probe graded a copy no checkout
# carries. The assertion below makes the binding visible if it ever drifts.
sys.path.insert(0, str(Path(__file__).resolve().parent))
import chunker
assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__
# Upper bound (exclusive) of the string lengths sampled by the probe.
MAX_LEN = 400
@@ -0,0 +1,205 @@
# Q62 leg (a), forge lane — 19 files classified, and 12 probes that graded a file no checkout carries now import the tree's chunker
*volt, 2026-11-05. Measured at `55172d9` and re-measured in this worktree. Q62 stays open; this
report classifies one lane and repairs the class it found there.*
## 1. What was wrong
Twelve tracked files under `wizard-work/forge/` opened with
sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")
and then `import chunker`. The repository tracks `wizard-work/forge/chunker.py` **beside every one
of them**, and none of the twelve ever imported it. The two files are not the same file:
| | tree (`wizard-work/forge/chunker.py`) | host (`/root/.hermes/wizard-outputs/forge/chunker.py`) |
|---|---|---|
| lines | 300 | 311 |
| sha256 | `c9389d28e9fe16f8a75a86cfc890b8cba793baf20a424c49635494087f455491` | `6df7fd7a6dd2ea5ff1eed73b3d484c9413ba6697c8be0c86e242ee05bf5fedaa` |
| mtime | 2026-10-26 08:46:25 | 2026-10-26 08:47:52 |
The host copy carries a `chunk_body()` helper and an `__all__` that names it; the tree's copy has
neither. `git log --all -S "def chunk_body" -- wizard-work/forge/chunker.py` reads **0 commits** —
no ref in this repository ever held that function. The probes were therefore grading a draft the
tree does not have, from a directory no checkout carries.
Two consequences, both mechanical:
- **On this host** every probe printed a verdict about the wrong bytes. They happened to agree with
the tree's module for all twelve cells (measured below), which is exactly why nobody noticed.
- **On any other host** the twelve files cannot run at all: the insert points at a directory that
does not exist and `import chunker` raises `ModuleNotFoundError`.
## 2. Why the repo gate was green over it
`tools/import_resolve_check.py` classes a file as a test by its **name** — `TEST_NAME =
(^|/)(_?test_[^/]*|[^/]*_test)\.py$` (`tools/import_resolve_check.py:162`) — and an absolute binding
in any other tracked file is an ADVISORY row: printed, counted, never graded
(`tools/import_resolve_check.py:65-66`, `:529-531`). None of the twelve matches that name rule
(`_fuzz_probe.py`, `_repro_bounds.py`, `_smell_check_monotonic.py`, …), so the leg read
import_resolve_check: 195 file(s) graded, 0 fault(s)
at `55172d9` and reads the same after the repair. This is Q163's shape (`_smoke_intervals.py`), in a
lane that had not been classified.
## 3. The repair — one shape, twelve times
Per file, three edits and nothing else (`git diff --stat -- wizard-work/forge/`: **12 files changed,
109 insertions(+), 13 deletions(-)**):
+from pathlib import Path
+# Q62 forge lane (2026-11-05): bind the directory this file sits in. ...
+sys.path.insert(0, str(Path(__file__).resolve().parent))
import chunker
+
+assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__
The assertion is the part that makes the binding observable rather than decorative — it is the same
device `wizard-work/forge/_test_roundtrip.py:15-20` already carries (Q100), which is why that
neighbouring pair of files was never in this population.
The edit was applied by a refusing script, not by hand: it reads the twelve files, requires exactly
one host insert and exactly one `import chunker` per file, and exits 2 on any file that does not
match the shape (so a half-applied batch is impossible). It reported twelve lines, one per file,
line counts before → after.
## 4. Behaviour-preserving, measured before the edit
Before touching the files, each was run twice — as committed (host binding) and as a copy whose
single insert was rewritten to a sandbox holding the tree's `chunker.py` and every sibling module:
12 probe(s); 0 differ (rc and stdout identical for all twelve)
So the repair does not change a single verdict on this host; it changes which file the verdict is
about. Recorded in `forge-probe-baseline.json` (evidence bundle).
## 5. Measured after the repair
file in-tree clone-sandbox vs pre-repair
_edge_sweep_refactored.py rc=0 ok rc=0 ok identical
_fuzz_adversarial.py rc=0 ok rc=0 ok identical
_fuzz_probe.py rc=0 ok rc=0 ok identical
_fuzz_probe_negctrl.py rc=0 ok rc=0 ok identical
_fuzz_probe_refactored.py rc=0 ok rc=0 ok identical
_probe_forge.py rc=0 ok rc=0 ok identical
_probe_forge_refactored.py rc=0 ok rc=0 ok identical
_repro_bounds.py rc=0 ok rc=0 ok identical
_repro_bounds_original.py rc=0 ok rc=0 ok identical
_repro_bounds_refactored.py rc=0 ok rc=0 ok identical
_smell_check_monotonic.py rc=0 ok rc=0 ok identical
_smell_check_monotonic_refactored.py rc=0 ok rc=0 ok identical
12 file(s) graded, 0 fault(s)
"clone-sandbox" is a directory holding **only** the tree's forge modules — the property a fresh
checkout has and this host did not have before. Twelve files ran rc 0 there.
## 6. The lane, classified (19 files → 7)
The Q62 census (`wizard-work/volt/q62_lane_census.py`, AST-level, position by position):
before forge files= 19 positions= 23 live-unstated=19 [BIND=12 COMMENT=4 INPUT=7]
after forge files= 7 positions= 11 live-unstated= 7 [COMMENT=4 INPUT=7]
The 12 BIND positions are gone as positions, not reclassified: the repaired files no longer carry
the host path at all, and their comments name the defect in prose rather than restating the path
(which would have kept them in the population as mentions).
The 7 that remain, each read and placed:
| position | class | what it is |
|---|---|---|
| `_smell_scan.py:4` | INPUT/READ | opens the host `chunker.py` and scans **it** for smells |
| `_smell_scan_refactored.py:29` | INPUT/READ | same subject, as `CHUNKER_PATH`; also pins `RECONSTRUCT_RANGE = (241, 280)`, which is the **host** copy's line numbering |
| `verify_pdf_refactor.py:41` | INPUT/READ | `before/pdf_create.py` — pre-refactor original, 0 add-commits in any ref |
| `verify_pdf_refactor.py:44` | INPUT/READ | `before/pdf_make_form.py` — same, 0 add-commits |
| `verify_citation_hash_class_dry_refactor.py:18` | INPUT | `citation_hash_class.orig.py` — 0 add-commits in any ref |
| `refactored_cards/ops-pulse-card-r41_refactored.py:4` | INPUT | a card artifact naming its working directory |
| `verify_r41_pixel_diff.py:25` | INPUT | same class |
Five of the seven are **subject-outside-repo by construction**: the pre-refactor originals they
grade were never committed (`git log --all --diff-filter=A` reads 0 for `pdf_create.py`,
`pdf_make_form.py` and `citation_hash_class.orig.py`), so no repair can point them at the tree — the
honest fix for them is the Q69/Q118 shape (name the subject from argv or an environment variable and
refuse rc 2 when nothing names one), and that is a decision for the forge lane, not a side effect of
this classification. The two `_smell_scan*` files are the same defect class as §1 (their subject
*is* in the tree), but switching them changes their findings — the refactored one pins a line range
taken from the host copy — so they are named here and left, rather than silently re-pointed.
## 7. The guard
`bash wizard-work/volt/CHECK-q62-forge` — six legs, rc 0/1/2:
PASS bind: 0 file(s) under wizard-work/forge bind a host-absolute insert
PASS roster: 12 file(s) bind beside themselves, as expected
PASS assert: all 12 repaired file(s) assert the module landed beside them
PASS run: 12 file(s) run rc 0 from a copy with no host directory
PASS teeth: the bind predicate fires on a copy with the host insert restored (_edge_sweep_refactored.py)
PASS census: forge lane reads 7 live-unstated position(s), the 12 bindings are gone
q62-forge: 6 leg(s), 0 fault(s) rc 0, 3.5 s
`run` is the leg that matters: it copies the lane's modules to a temp directory and executes each
repaired file there, so a checkout without `/root/.hermes` still grades them. `teeth` restores the
host insert in one copy and requires the `bind` predicate to fire.
On a clean checkout of `55172d9` (`git worktree add --detach` at HEAD, with the guard and the census
copied in), the same command reads **3 fault(s), rc 1**: `bind` 12 files, `roster` 0 of 12, `census`
19. The three legs that have nothing to grade print `SKIP` rather than a vacuous `PASS`, and the
roster leg carries the verdict.
## 8. Gate, at this worktree
python3 tools/verify.py --fast
verify: 14 legs, 13 pass, 0 fault, 0 ungradable, 1 skipped
gate: OK -- 13 of 13 graded leg(s) passed (1 skipped: not a pass, not a fault) rc 0
`import-resolve` still reads 195 files / 0 faults (it grades tests by name; the twelve were advisory
before and after), and `compile-sweep`, `import-order` and `path-claims` are unchanged.
## 9. Population, reconciled
`git grep -l "/root/.hermes/wizard-outputs" -- 'wizard-work/*.py' 'wizard-work/**/*.py' | wc -l`
reads **288** at this worktree. The census's `files_with_needle` reads 277 when asked for the eight
lanes other than beam, and beam's own addendum measured 11 — 277 + 11 = 288, so the two instruments
agree about the same tree. (A first run of the census over eight lanes looked 11 short for exactly
that reason: beam was not in the `--lane` list. That is a reader error, not an instrument gap, and it
is recorded here because it was measured before it was believed.)
Live-unstated by lane after this repair: spark 129, sol 82, ledger 46, sphinx 25, forge **7**
(was 19), volt 6, null 0, beam 0, quill 0.
## 10. Not claimed
- That the 12 repaired files' verdicts were *wrong* before. They were about a file outside the
repository; for these twelve cells the readings agree with the tree's module (§4). What changed is
the subject, and that the files now run on a host without `/root/.hermes`.
- That the tree's `chunker.py` is the point of truth for the refactor. Whether `chunk_body()` should
land is the forge lane's decision; this repair asserts only that no probe grades a copy of a module
the repository tracks.
- That §6's seven are all defects. Five grade artifacts no ref holds — the repair for those is a
refusal-when-unnamed shape, not a re-point, and it is not made here.
- That `_repro_bounds.py` and `_repro_bounds_original.py` are distinct instruments. They were
**byte-identical** before this repair (`git show HEAD:` of each, compared) — a filing defect this
record observes and does not repair. Both print `No overflow found (unexpected)` against the host
copy and against the tree's: already stale, unchanged by the repair.
- That the census's statedness rule is symmetric. It credits a justification inside the enclosing
statement or in a comment block **above** it (`q62_lane_census.py:203-225`); `verify_pdf_refactor.py:41`
carries `# subject: ...` on the line **below**, so it counts unstated. That is a two-line change to
the instrument and a re-take of every lane's count — named here, not made here.
- That the other lanes are classified. spark, sol, ledger, sphinx and volt stand as §9 measures them.
## Files
`wizard-work/forge/{_edge_sweep_refactored,_fuzz_adversarial,_fuzz_probe,_fuzz_probe_negctrl,_fuzz_probe_refactored,_probe_forge,_probe_forge_refactored,_repro_bounds,_repro_bounds_original,_repro_bounds_refactored,_smell_check_monotonic,_smell_check_monotonic_refactored}.py`,
`wizard-work/volt/CHECK-q62-forge` (new), `wizard-work/volt/2026-11-05-q62-forge/REPORT.md` (this
file), `wizard-work/volt/q143-check-sweep/check_entry_baseline.tsv` (one row), `wizard-work/volt/q137-open-set/open_set.py`
(`PIN_COUNTS`), `WORK-QUEUE.md` (the record), `docs/queue-index.md` (re-rendered).
## Evidence bundle
`/root/.hermes/wizard-outputs/volt/volt-2026-11-05-q62-forge/` — `EVIDENCE.md`, `forge-probe-baseline.json`
(pre-repair, 12 rows), `forge-probe-bindings.json` (first sandbox run), `q62-all-lanes.json` (the
census over 8 lanes), `guard-green.txt`, `guard-head-red.txt`, `gate.txt`.
CHECK: `bash wizard-work/volt/CHECK-q62-forge`
+137
View File
@@ -0,0 +1,137 @@
#!/usr/bin/env bash
# Q62 forge lane, 2026-11-05 -- the 12 chunker probes must import the module this
# repository tracks, not a copy on the host.
#
# The defect this guards: every one of these files opened with
# sys.path.insert(0, "<host>/wizard-work-outputs/forge")
# and then `import chunker`. The tree tracks `wizard-work/forge/chunker.py`
# beside them (300 lines, sha256 c9389d28e9fe...), the host held a different file
# (311 lines, sha256 6df7fd7a6dd2...), and `tools/import_resolve_check.py` classes
# these names (`_fuzz_probe.py`, `_repro_bounds.py`, ...) as ADVISORY, so the repo
# gate read green over all twelve. On a checkout without the host directory they
# die on `ModuleNotFoundError: No module named 'chunker'`.
#
# Legs:
# bind no host-absolute insert is left in any `wizard-work/forge/*.py`
# assert each of the 12 carries the binding assertion
# run each of the 12 runs rc 0 in a copy that holds ONLY the tree's files
# teeth the `bind` predicate fires on a copy with the host insert restored
# census the Q62 census reads 7 live-unstated positions in this lane, not 19
#
# rc 0 every leg as expected / rc 1 a graded fault / rc 2 could not grade.
set -u
HERE="$(cd "$(dirname "$0")" && pwd)"
ROOT="$(cd "$HERE/../.." && pwd)"
FORGE="$ROOT/wizard-work/forge"
CENSUS="$HERE/q62_lane_census.py"
HOST_INSERT='sys.path.insert(0, "/root/.hermes/wizard-outputs/forge")'
TREE_INSERT='sys.path.insert(0, str(Path(__file__).resolve().parent))'
ASSERT='assert Path(chunker.__file__).resolve().parent == Path(__file__).resolve().parent, chunker.__file__'
WANT=12
legs=0; faults=0
fault() { legs=$((legs+1)); faults=$((faults+1)); echo "FAIL: $1 -- $2"; }
pass() { legs=$((legs+1)); echo "PASS $1: $2"; }
[ -d "$FORGE" ] || { echo "FAIL: could not grade -- no $FORGE" >&2; exit 2; }
[ -f "$CENSUS" ] || { echo "FAIL: could not grade -- no $CENSUS" >&2; exit 2; }
# ---- bind ------------------------------------------------------------------
hits="$(grep -rl --include='*.py' -F "$HOST_INSERT" "$FORGE" 2>/dev/null | wc -l)"
if [ "$hits" -eq 0 ]; then
pass bind "0 file(s) under wizard-work/forge bind a host-absolute insert"
else
fault bind "$hits file(s) still bind the host directory: $(grep -rl --include='*.py' -F "$HOST_INSERT" "$FORGE" | sed "s|$ROOT/||" | tr '\n' ' ')"
fi
# ---- the 12, discovered rather than listed ---------------------------------
bound="$(grep -rl --include='*.py' -F "$TREE_INSERT" "$FORGE" 2>/dev/null | sort)"
n_bound="$(printf '%s\n' "$bound" | grep -c . )"
roster_ok=1
if [ "$n_bound" -ne "$WANT" ]; then
fault roster "$n_bound file(s) bind beside themselves, expected $WANT"
roster_ok=0
else
pass roster "$n_bound file(s) bind beside themselves, as expected"
fi
# A leg that has nothing to grade says SKIP and is neither a pass nor a fault --
# the roster leg already carries the verdict for an empty or over-full set.
skip() { echo "SKIP $1: $2"; }
# ---- assert ----------------------------------------------------------------
if [ "$roster_ok" -eq 0 ]; then
skip assert "roster is $n_bound/$WANT, nothing to assert against"
else
missing=""
while IFS= read -r f; do
[ -n "$f" ] || continue
grep -qF "$ASSERT" "$f" || missing="$missing $(basename "$f")"
done <<< "$bound"
if [ -z "$missing" ]; then
pass assert "all $n_bound repaired file(s) assert the module landed beside them"
else
fault assert "binding assertion missing in:$missing"
fi
fi
# ---- run: a copy holding ONLY the tree's files ------------------------------
sb="$(mktemp -d "${TMPDIR:-/tmp}/q62-forge-XXXXXX")" || { echo "FAIL: could not grade -- no temp dir" >&2; exit 2; }
trap 'rm -rf "$sb"' EXIT
cp "$FORGE"/*.py "$sb"/ 2>/dev/null
[ -d "$FORGE/refactored_cards" ] && cp -r "$FORGE/refactored_cards" "$sb"/ 2>/dev/null
if [ "$roster_ok" -eq 0 ]; then
skip run "roster is $n_bound/$WANT, nothing to run"
else
run_bad=""
while IFS= read -r f; do
[ -n "$f" ] || continue
name="$(basename "$f")"
if ! out="$(cd "$sb" && timeout 300 python3 "$sb/$name" 2>&1)"; then
run_bad="$run_bad $name(rc!=0:$(printf '%s' "$out" | tail -1))"
fi
done <<< "$bound"
if [ -z "$run_bad" ]; then
pass run "$n_bound file(s) run rc 0 from a copy with no host directory"
else
fault run "did not run clean:$run_bad"
fi
fi
# ---- teeth -----------------------------------------------------------------
first="$(printf '%s\n' "$bound" | head -1)"
if [ -z "$first" ]; then
skip teeth "no repaired file to mutate (roster leg carries the verdict)"
else
teeth_dir="$sb/teeth"
mkdir -p "$teeth_dir"
sed "s|^$TREE_INSERT\$|$HOST_INSERT|" "$first" > "$teeth_dir/$(basename "$first")"
if grep -qF "$HOST_INSERT" "$teeth_dir/$(basename "$first")"; then
pass teeth "the bind predicate fires on a copy with the host insert restored ($(basename "$first"))"
else
fault teeth "the mutation did not restore the host insert -- the teeth leg proves nothing"
fi
fi
# ---- census ----------------------------------------------------------------
cout="$(cd "$ROOT" && python3 "$CENSUS" --repo . --lane forge 2>&1)"
crc=$?
if [ "$crc" -eq 2 ]; then
echo "FAIL: could not grade -- census rc 2: $(printf '%s' "$cout" | tail -1)" >&2
exit 2
fi
line="$(printf '%s\n' "$cout" | grep -E '^forge ' | head -1)"
if [ -z "$line" ]; then
echo "FAIL: could not grade -- census printed no forge row" >&2
exit 2
fi
n_live="$(printf '%s' "$line" | sed -n 's/.*live-unstated= *\([0-9][0-9]*\).*/\1/p')"
if [ "$n_live" = "7" ]; then
pass census "forge lane reads 7 live-unstated position(s), the 12 bindings are gone"
else
fault census "forge lane reads ${n_live:-?} live-unstated position(s), expected 7"
fi
echo "q62-forge: $legs leg(s), $faults fault(s)"
[ "$faults" -eq 0 ] && exit 0
exit 1
+8 -1
View File
@@ -682,7 +682,14 @@ PIN_OPENED = [51, 52, 53, 65, 100, 101, 102, 103, 104, 105, 106, 107, 109,
# unchanged: records 132, record_ids 98, ids 159, record_only 55, open 0,
# opened 26. Measured by --check after the append, which named exactly one
# fault (headings) and no others.
PIN_COUNTS = {"headings": 124, "heading_ids": 104, "records": 132,
# Q62 addendum 3 (2026-11-05, volt): the same shape again -- a section heading
# (## Q62 addendum 3 ...) over a lead that says Q62 stays open, so no record and
# no id is scored: headings 124 -> 125 with heading_ids staying 104 (Q62 already
# carries a heading), and every record counter, ids and record_only unchanged:
# records 132, record_ids 98, ids 159, record_only 55, open 0, opened 26.
# Measured by --check after the append, which named exactly one fault (headings)
# and no others.
PIN_COUNTS = {"headings": 125, "heading_ids": 104, "records": 132,
"record_ids": 98, "ids": 159, "open": 0, "opened": 26,
"record_only": 55}
@@ -281,3 +281,4 @@ CHECK-q69-census 0 q69-census: 5 leg(s), 0 fault(s), rc 0
# which is the defect it repairs), and 2 when the queue, the tool or HEAD is
# unreadable.
CHECK-q167 0 q167: 4 leg(s), 0 fault(s), rc 0
wizard-work/volt/CHECK-q62-forge 0 q62-forge: 6 leg(s), 0 fault(s), rc 0
Can't render this file because it contains an unexpected character in line 94 and column 87.