diff --git a/wizard-work/ledger/_probe_checkin.py b/wizard-work/ledger/_probe_checkin.py new file mode 100644 index 0000000..76eeadf --- /dev/null +++ b/wizard-work/ledger/_probe_checkin.py @@ -0,0 +1,8 @@ +import os, re +pat = re.compile(r'^\d{4}-\d{2}-\d{2}') +files = sorted(f for f in os.listdir('.') if f.endswith('.md')) +non = [f for f in files if not pat.match(f)] +print("total md:", len(files)) +print("matching:", len([f for f in files if pat.match(f)])) +for f in non: + print("NONMATCH:", repr(f)) diff --git a/wizard-work/ledger/census.py b/wizard-work/ledger/census.py new file mode 100755 index 0000000..441c788 --- /dev/null +++ b/wizard-work/ledger/census.py @@ -0,0 +1,58 @@ + +#!/usr/bin/env python3 +"""ext-census: extension census of the Troupe standup repo. + +Reads the curated file census `repo_files.tsv` (3,344 data rows) in the +troupe repo, applies a stated rule, and emits an ordered table of +extension -> file_count. + +Rule +---- +basename = final path component. + . dotfile (leading dot, e.g. .gitignore) -> "(none)" + . no dot in basename -> "(none)" + . otherwise -> substring after LAST dot, lowercased +""" +import collections +import os +import sys + +SRC = "/root/troupe-standup/repo_files.tsv" +OUT = "/root/.hermes/wizard-outputs/ledger/ext-census.tsv" + +def ext_of(basename): + if basename.startswith(".") or "." not in basename: + return "(none)" + return basename.rsplit(".", 1)[1].lower() + +def parse_census(path): + rows = [] + with open(path) as fh: + for line in fh: + line = line.rstrip(" +") + if not line.strip(): + continue + if line.startswith("rank path"): + continue + key, _, val = line.partition(" ") + rows.append((key.strip(), val.strip())) + return rows + +def main(): + rows = parse_census(SRC) + cnt = collections.Counter(ext_of(os.path.basename(p)) for _, p in rows) + total = sum(cnt.values()) + if total != len(rows): + sys.stderr.write("WARNING: parsed rows=%d counts=%d +" % (len(rows), total)) + with open(OUT, "w") as fh: + fh.write("rank extension file_count +") + for i, (ext, n) in enumerate(cnt.most_common(), 1): + fh.write("%d %s %d +" % (i, ext, n)) + print("rows=%d total=%d -> %s" % (len(rows), total, OUT)) + +if __name__ == "__main__": + main() diff --git a/wizard-work/ledger/ext-census.md b/wizard-work/ledger/ext-census.md new file mode 100644 index 0000000..c03c109 --- /dev/null +++ b/wizard-work/ledger/ext-census.md @@ -0,0 +1,54 @@ +# Extension Census — ledger + +Extracted from `repo_files.tsv` (curated 3,344-row file census) in `/root/troupe-standup`. + +Rule: basename = final path component; extension = substring after the LAST dot, lowercased; +dotfiles (leading dot, e.g. `.gitignore`, `.hermes-tmp.GOYIwZ`) and files with no dot are +grouped as `(none)`. + +| rank | extension | file_count | +|---|---|---| +| 1 | md | 829 | +| 2 | png | 803 | +| 3 | py | 653 | +| 4 | txt | 551 | +| 5 | json | 230 | +| 6 | sh | 56 | +| 7 | html | 55 | +| 8 | csv | 43 | +| 9 | svg | 31 | +| 10 | (none) | 18 | +| 11 | age | 16 | +| 12 | tsv | 15 | +| 13 | xml | 12 | +| 14 | log | 5 | +| 15 | sha256 | 4 | +| 16 | pdf | 4 | +| 17 | jsonl | 3 | +| 18 | mp3 | 3 | +| 19 | c | 2 | +| 20 | jpg | 2 | +| 21 | diff | 2 | +| 22 | py""" | 1 | +| 23 | check | 1 | +| 24 | md5 | 1 | +| 25 | dl | 1 | +| 26 | rc | 1 | +| 27 | yaml | 1 | +| 28 | gz | 1 | + +*Total files: **3344** (matches the 3344 data rows in repo_files.tsv).* + +## Verification notes + +- `repo_exts.tsv` (the existing table) lists 29 rows but carries a duplicated header line + and two spurious rows — `goyiwz` (a parse artifact of the dotfile `.hermes-tmp.GOYIwZ`) + and `py""""` (a parse artifact of the escaped `wizard-work/beam/CHECK` row). +- Existing `json` (231) vs this table (230): existing classified the dotfile `.chk.json` + as json; under the dotfile rule shown above it is `(none)`. +- Existing `(none)` (16) vs this table (18): two dotfiles (`.chk.json`, `.hermes-tmp.GOYIwZ`) + are counted as `(none)` here. +- `py""""` appears in both tables at count 1, so it is a shared value, not a discrepancy; + its source row is the escaped beam CHECK row. +- `repo_files.tsv` records the beam CHECK script twice (rank 1 is an escaped duplicate of + rank 620); both rows are included as-is. diff --git a/wizard-work/ledger/ext-census.tsv b/wizard-work/ledger/ext-census.tsv new file mode 100644 index 0000000..6687364 --- /dev/null +++ b/wizard-work/ledger/ext-census.tsv @@ -0,0 +1,29 @@ +rank extension file_count +1 md 829 +2 png 803 +3 py 653 +4 txt 551 +5 json 230 +6 sh 56 +7 html 55 +8 csv 43 +9 svg 31 +10 (none) 18 +11 age 16 +12 tsv 15 +13 xml 12 +14 log 5 +15 sha256 4 +16 pdf 4 +17 jsonl 3 +18 mp3 3 +19 c 2 +20 jpg 2 +21 diff 2 +22 py""" 1 +23 check 1 +24 md5 1 +25 dl 1 +26 rc 1 +27 yaml 1 +28 gz 1 diff --git a/wizard-work/ledger/queue-extract.csv b/wizard-work/ledger/queue-extract.csv new file mode 100644 index 0000000..67c94de --- /dev/null +++ b/wizard-work/ledger/queue-extract.csv @@ -0,0 +1,84 @@ +id,title,status_evidence,done_means +Q1,Recover the fifteen silent rooms *(highest value; no dependencies)*,"CLOSED — 0/15 recovered, and every public avenue is now exhausted with receipts.","** one row per space in `recoveries/silent-rooms.md` — id, date, what was found, exact URL, retrieval" +Q2,Chase the one dead link,"DONE — recovered.** `recoveries/dead-link.md` (`3ca3d3c`, zephyrus-sparkborn) found the `x.com` snapshot","** either an archived copy (Wayback, archive.today, a quote-post screenshot) recorded with its URL and" +Q3,Independent audit of the published ledger,"DONE — both passes complete (`2ebcbe7` pass 1, `6f31cde` pass 2, zephyrus-sparkborn; material `2118b3e`).","** a table of findings with severity, or an explicit clean bill of health per area checked." +Q4,Falsification pass,"DONE — `recoveries/falsification-pass.md` (`f50f052`, zephyrus-sparkborn), all three verdicts re-verified","** three claims, three attempts, three verdicts." +Q8,Summary fidelity: does each entry's machine-written summary overstate its article?,"pilot CLOSED at `dcf91a1` (zephyrus-sparkborn), corrected at `9cc6879`; the full sweep is CLOSED at `f1fe38d` (2026-10-06) — 91/91, 1,101 rows, verified independently from the published file. The one contested grade was ruled and applied by zephyrus at `f122f8e` (`082` clause 3 → `contradicted`) and both batch-8 one-liners landed in the same commit, so the item owes nothing further from him on","** a table of per-clause verdicts for the sample, with the count of each verdict and the named entries" +Q5,Issue triage in the organisation's public repos,"re-scoped 2026-09-26 (reply 08 §5) after a census, because as written it invites busywork.** Measured over",** every open issue either carrying a reproduction comment or an explicit cannot-reproduce note. +Q6,A public guide to checking this archive,"DONE at `8bd0b09` (Merlin, 2026-10-08T17:28:47Z) — verified from this host figure by figure;",** somebody with no context can follow it and get a yes/no on a real claim. +Q7,Propose the next items,satisfied for the 2026-09-25 cycle.** Zeph's three proposals (`2a0cb01`) are now queue items: the Q8, +Q9,"Independent QC of the sovereign music candidates *(second opinion, no listening required)*",unclaimed. Pre-verified by Timmy against the delivered files — record `recoveries/music-master-verification.md`,** a table of claim-vs-measurement per candidate plus the transcription window. +Q10,Summary fidelity for the non-magazine entries,"COMPLETE 2026-10-10 (verified from raw sources; closure record below). Originally claimed by zephyrus-sparkborn at `3c9ad5b` (2026-10-07, `checkins/2026-10-07-zephyrus.md` §3).","** a table in `recoveries/summary-fidelity-nonmagazine.md` — per-entry verdict counts, the named entries" +Q11,Close the eight pass-2 date mismatches,"DONE — `recoveries/ledger-date-closure.md`, Merlin, 2026-10-09. 8 / 8 resolved, all","** a closure table, one line per entry, added to a new `recoveries/ledger-date-closure.md` (not edited" +Q12,Are the evidence tiers earned?,"DONE — `recoveries/evidence-tier-audit.md`, Merlin, 2026-10-10. 18/18 `justified`, 0 `too","** `recoveries/evidence-tier-audit.md` — the sample rule, one row per entry, the count of each" +Q13,"Publish the archive-side wording fixes, one at a time","** 1 of 8 has a decision and staged correction (`magazine-091`; reply 09 §3), but its decided note carries","** for every clause that has a decision, a published page whose hash is read back over HTTPS, plus a" +Q14,Put the Inbox on `alexanderwhitestone.com` behind a gate,"DONE — finished by `616794c` (2026-09-26), then re-measured by a later run the same day instead of being",** the queue page is live at a gated URL and re-verified against that live URL by a mobile-width +Q15,Stop the monitor from waking on the pipe's own writes *(pipe; no dependencies)*,DONE — 2026-09-26 ≈19:05 UTC.** Fixed in `/root/.hermes/scripts/troupe_pipe_monitor.py` (outside this,** a tick wakes only on counterparty content; Timmy's own commits leave the signature unchanged. +Q16,"Per-platform ATS gate census *(career lane; opened 2026-10-01 by reply 21 §3, drafted by zephyrus)*","draft v0.1 landed `f29425a` (`career-lane/ats-gate-census-draft.md`, 2026-10-01; check-in `2f83e08`);","** one row per platform in `career-lane/ats-gate-census.md` with the fetched form URL, the field" +Q17,"Employer-side AI-authorship refusal gates *(career lane; opened 2026-10-03 by reply 26, per Q7)*",,"** a dated, append-only subsection in `career-lane/ats-gate-census.md` with one row per observed" +Q18,"Employer-side lead intake must be deduped against the prepared index *(career lane; opened 2026-10-04 by reply 28, per the G2i miss)*",,"** a fixed, published **intake rule** for every employer-side lead — before a lead is called" +Q19,"Three proposed members (local Mac wizard, Grok, Mistral) *(wizard onboarding; opened 2026-10-06 by zephyrus-sparkborn, `checkins/2026-10-06-zephyrus-wizards*.md` + `JOIN-THE-TROUPE.md`)*",RESOLVED — provisional (2026-10-06)., +Q20,"Excerpt fidelity and placement for the 91 magazine entries *(archive verification; opened 2026-10-08 by the pipe, per Q7's never-dry obligation)*","DONE — `recoveries/excerpt-placement-audit.md` (12,914 B) and `recoveries/excerpt-placement-rows.md`","** `recoveries/excerpt-placement-audit.md` — the sample rule, the per-excerpt rows as a data file" +Q21,Does every quoted excerpt resolve at the URL it is printed against?,open and unclaimed. Opened by the pipe 2026-10-10** because Q12 closed at `67b892d` and the unclaimed,"** `recoveries/excerpt-binding-audit.md` — the reading rule in the header, one row per excerpt with" +Q22,"Do the named-but-unlinked sources resolve? *(proposed 2026-10-10 by Merlin, per Q7; not yet opened)*","DONE — `recoveries/named-source-liveness.md`, Merlin, 2026-10-10. 28 fetches → 27 distinct","** a table in `recoveries/named-source-liveness.md` — source, entry/entries naming it, verdict," +Q23,"The prose-named sources the `@` token rule cannot see *(archive verification; opened 2026-10-10 by the pipe, per Q7's never-dry obligation)*","DONE 2026-10-10 — `recoveries/named-source-liveness-unlinked.md` (Merlin), verified from the published file this tick (control plane).","** a table in `recoveries/named-source-liveness-unlinked.md` — source, entry/entries naming it, kind" +Q24,"The Q13 fix pack: stage every verified live-page fix as one reviewable approval *(archive-side; opened 2026-10-10 by the pipe, per Q7's never-dry obligation)*",open and unclaimed. Opened by the pipe 2026-10-10** because Q23 closed at `8b56abe` and the unclaimed,** `docs/q13-fix-pack.md` — one row per clause in the fixed column order `entry | live page | panel | +Q25,"A prose-anchor convention for the ledger build *(archive-side; proposed 2026-10-10 by Merlin, per Q7's never-dry obligation — Q24 closed and the unclaimed executable set fell to zero)*","DONE — `recoveries/prose-anchor-convention.md`, Merlin, 2026-10-10. Designed, prototyped and","** a record naming the convention's exact syntax, the `render_entry` change as a diff against" +Q26,"Make the silent token classes loud, and measure the fifth slot *(archive-side; opened 2026-10-10 by the pipe, per Q7's never-dry obligation — Q25 closed at `a9f23a6` and the unclaimed executable set fell to zero)*","DONE — `recoveries/prose-anchor-hardening.md`, Merlin, 2026-10-10→11 (~00:20–00:24 UTC).","** the hardened prototype as a diff against `97fedb5d…`, the five Q25 legs re-run and green, the" +Q27,"A fixture at every render site: make the token sentinel's coverage total *(archive-side; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q26 closed at `f05179e`)*","DONE 2026-10-11 — `recoveries/render-site-coverage.md` (Merlin). 32 sites: 28 covered by fixture, 4 structural exclusions; 35 fixtures, every negative writes 0 files; the scope clause closed with option (a), all four token classes now pre-write; no-token build still byte-identical at `91ecf6bf`.", +Q28,"The channels the entry walk cannot see: state the guarantee, then cover what it cannot reach","DONE 2026-10-11 — `recoveries/render-site-channels.md` (Merlin), scratch tree",** a recovery file (e.g. `recoveries/render-site-channels.md`) with a row per non-entry +Q29,The guards that are not the walk: what protects a page when the value is not a token,"DONE 2026-10-11 — `recoveries/render-site-guards.md` (Merlin), scratch tree `/root/crucible/q29/`. 22 fixtures plus the control, every negative or escape claim measured against the emitted byte; the second guarantee stated in one sentence; one finding: an unguarded `int(sats)` can still leave a partial tree (2 files).","** a recovery file (e.g. `recoveries/render-site-guards.md`) with one row per mechanism, the" +Q30,The renderer's entry point: the one path no gate executes,,** the fixed renderer with its sha256; a CLI transcript showing exit 0 and the byte count at a +Q31,The collector's entry point: the sibling path no gate has executed either,"DONE at Merlin's Run 6 (2026-10-11 ≈13:19–13:35Z) — deliverable `recoveries/helm-collector-run.md`; the collector's entry point is executed, its destination is gated, and G8 asserts it.** The item's four steps: (1) the two safe legs run — `--dry-run --skip-tests` exit 0 / 15,187 B pure-JSON stdout and `--out ` exit 0 / 15,187 B, both with the live snapshot unchanged (`aa842b0f…`); the two bodies are the same measurement (only `observed_at` clocks and one `rtt_seconds` differ, `q31-compare.py`). (2) **The destination rule: `SNAPSHOT_PATH` is gated behind an explicit `--deploy`** — the same shape as the renderer's `OUT_DEFAULT` gate, so both entry points now behave alike; `--dry-run` is never gated (it writes nothing), a scratch `--out` is the default expectation, and the live path (bare default *or* explicit `--out`, matched by `.resolve()`) is refused at exit 2 **before any collector runs** (0.13 s refusal vs ~1.9 s collect). Gated collector `60229227216fb4ab…` (701 lines / 28,808 B). (3) **Gate G8 — the collector's CLI in a subprocess, 18 assertions** → `helm-selftest: 137 passed, 0 failed`, VERDICT: ALL GATES PASS; the gate discriminates (pre-gate `ee0b36a8…` with `SNAPSHOT_PATH` patched to scratch writes its default bare; gated refuses). (4) **`email` UNREACHABLE is correct** — `himalaya` is ABSENT on PATH and both config paths are absent, so `collect_email()` fails closed with `himalaya unavailable: command not found: himalaya` and lands in `red_sources`, never `green`. **An incident, logged first in the deliverable §6:** the first negative control ran the pre-gate revision bare against the live default and overwrote the live snapshot; restored byte-exact from a pre-run `snap-before.json` (`aa842b0f…`, 14,039 B, mtime back to `2026-10-08T17:12:59.475780303Z`), and the control now patches `SNAPSHOT_PATH` before any run. **Nothing deployed** — the gated collector and G8 selftest are scratch-local in `/root/crucible/q31/`; the deployed `helm-collect.py` is unchanged at `ee0b36a8…` and `helm-selftest.py` at `7ed1bca8…` (still 119 passed). Adoption is a §4 deploy decision, Alexander's, the same gate Q26–Q30 state. Mercury's day-3 unit is Q31's first slice (the two safe legs); this run executed them first and Mercury's `/tmp/mercury-q31/` was empty at 13:29Z, so no duplication occurred — the unit is satisfied here and stays open for Mercury to land his own artifact.","** `recoveries/helm-collector-run.md` — the transcripts, the digests, the destination" +Q32,"The G8 two-run agreement check is nondeterministic: `age_seconds` is not scrubbed *(Helm lane; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q31's adoption is blocked behind it)*","OPEN — named to the Helm lane**, ahead of the Q31 `cp` decision so that the gate that ships is the one that",** the scrub covers every clock-derived field the collector emits (or `age_seconds` is asserted within +Q33,"Split the newest-file pointer out of `evidence.source_path` *(collector-side; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q32 closed at `7e12c82`)*",OPEN — named to the Helm lane.** A snapshot key rename touches every consumer of `evidence.source_path`,"** the collector emits the pointer as its own named field (e.g. `latest_active_path`, or" +Q34,"Gate the pointer's null case *(collector-side gate; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q33 closed at `8bb88da`)*","DONE 2026-10-12 — `recoveries/helm-null-gate.md` (Merlin), scratch tree `/root/crucible/q34/`.","** the gate plants, in its own scratch tree between two collects, a profile with a `sessions/` directory" +Q35,"The gate must refuse a subject collector that carries no destination rule *(Helm lane; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q34 verified and closed at `ac98bfb`)*","DONE — `recoveries/helm-precondition-gate.md` (8,261 B / sha256",** the destination-rule guard is a **precondition** — a collector that lacks the refusal is refused by +Q36,"The monitor cannot see a counterparty write that carries this pipe's identity *(pipe tooling; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q20 verified and closed at `9a1de9a` and the pre-existing executable set fell to empty)*","DONE — the rule holds, and the predicted transition arrived exactly as stated.** Measured at the first",** an own-attributed commit that touches another wizard's check-in is read as counterparty content +Q37,"The identity rule closes one class, not the class *(pipe tooling; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q36 closed at `9584984` and the unclaimed executable set fell to empty)*",,"** a stated answer, with the fields measured, to *can this pipe distinguish its own commits from the" +Q38,"The behavioural destination guard *(Helm lane; opened 2026-10-12 by Merlin — Q36's candidate 2, on Alexander's direction to continue the Helm lane)*","DONE — `recoveries/helm-behavioural-guard.md` (10,232 B), Merlin, 2026-10-12T06:5x–07:1xZ, this host.","** `recoveries/helm-behavioural-guard.md` — the guard's code path with line numbers, the diff, the" +Q38,"The behavioural destination guard *(Helm lane; opened 2026-10-12 by Merlin — Q36's candidate 2, on Alexander's direction to continue the Helm lane; **direction unrecorded in this repo — Testimony only**)*","the deliverable is verified and the item is DONE, and its protective claim is FALSIFIED. It is not adoptable as it stands.** Finished by `0776480` (guard + queue block + Run 4 check-in) and `4ed1da9` (landing evidence); verified from this host by reply 21, `replies/2026-10-12-to-merlin-21.md`.", +Q39,"The Q38 guard's admission admits a writer, and its legs run the unrewritten subject *(Helm lane; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q38 is closed and verified and its protective claim is falsified, so the executable set is not empty)*","DONE — `recoveries/helm-destination-guard-fix.md` (12,253 B), Merlin, 2026-10-12, scratch tree `/root/crucible/q39/`. Fixed gate `9b09f328…` (1,412 lines / 77,704 B, +309/−38 against Q38's `74aba348…`); subject collector byte-identical at `4e45021d…`; nothing deployed, no `cp` into `/root/.helm/bin/`, live snapshot `aa842b0f…` delta 0 across every run.","** `recoveries/` carries the fixed guard with its own negative-control suite, and the pair refuses **all four** of: (1) a subject that writes its destination at import and dies on the probe's injected line (the incident's shape), (2) a subject whose first `SNAPSHOT_PATH =` is a decoy and whose real destination is assigned later, (3) a subject that documents the source markers without implementing the rule, and (4) the pair itself, green, with live bytes **and** mtime asserted after **every leg** — not once at the end." +Q40,"the deployed gate admits all five negatives, and has no admission path at all *(Helm lane; opened 2026-10-12 by Merlin, discharging the Q39 closure's C26)*","DONE — `recoveries/helm-deployed-gate-admission.md` (5,633 B / sha256",** the deployed gate's behaviour on all five fixtures measured from +Q37,claimed by this pipe; first increment landed (the v1.3 census),"OPEN and claimed by the pipe (Merlin's §Next 2 read it correctly; it is this lane's tooling). Landed this tick:** the `branch-head` census line in `troupe_pipe_monitor.py` v1.3, sha256 `bb532da8c4f01b98eab4034ce74dc76b0e3939508bfd6cadd5d3d650020449f8`; v1.2 preserved at `/root/troupe-verify/q37/troupe_pipe_monitor.py.v1.2.bak` (`ce3950b5…`), reversible with one `cp`; record `recoveries/monitor-identity-census.md`.", +Q43,"The legs run the rewritten subject: prevention, not detect-and-restore *(Helm lane; opened 2026-10-12 by Merlin, per the Q39 closure's own recommendation — ""open the stronger form (the legs against a rewritten copy) as the Helm lane's next item"")*","DONE — `recoveries/helm-leg-sandbox.md` (13,561 B), Merlin, 2026-10-12. Scratch tree `/root/crucible/q43/`; nothing deployed, no `cp` into `/root/.helm/bin/`, `decisions/` and `inbox/` untouched.",** the pair green on repeated runs with the same count plus the new +Q44,"The pin class: redirect every constant composed from the live data root, not only `SNAPSHOT_PATH` *(Helm lane; opened 2026-10-12 by the pipe, per Q43's own closing sentence — ""extend the redirect beyond `SNAPSHOT_PATH` to every constant composed from the live data root, which is what would close the `--pin` class structurally instead of by argv rule"")*","DONE 2026-10-12 — `recoveries/helm-root-redirect.md` (Merlin, Helm lane); the closure block is at the foot",** the pair green on repeated runs with the same count plus the new checks; the five Q39 negatives still +Q48,The runtime-resolution redirect: close the class Q45's literals cannot see,"DONE 2026-10-13 — `recoveries/helm-runtime-redirect.md` (Merlin, Helm lane), scratch tree", +Q49,"The runtime-resolved root's live write path: name it, reproduce it, then close it","open and unclaimed. Opened by the pipe 2026-10-13**, because the Helm lane's executable set is empty",** the configuration is in the record with both live objects' sha / size / `mtime_ns` before and +Q57,"Bind a standup entry to the bytes it grades *(Codeforge lane; opened 2026-10-24 by the pipe, per reply 05's corrections 1 and 2)*",open and unclaimed. Opened by the pipe 2026-10-24; null's lane.,"** `check.py` exits 1 and names the differing line when the working-tree `wizard.log.md` differs by one byte from the blob of the commit it names, and exits 0 only when that comparison holds *and* a fresh `render()` with the log's own stamp reproduces it byte-for-byte; `craft()` takes its stamp as a parameter so replay is reproducible; and `base commit` holds a SHA that `git cat-file -t` resolves, or the field is removed." +Q58,"The lane-activity instrument reads a surface that was retired on 2026-10-16 *(Sol lane; opened 2026-10-24 by the pipe, per reply 12 to sol)*","closed at `809466f` (2026-10-26, spark in sol's lane); the closure record sits at the foot of this file.** Opened by the pipe 2026-10-24.","** the triage reads **both** surfaces (legacy flat files and `BASE//`)," +Q59,"beam's jump hash matches the C reference, and not one test would notice if it stopped *(beam lane; opened 2026-10-24 by the pipe, per reply 84 to zephyrus)*",open and unclaimed. Beam's lane.,"** at least one golden-vector cell, taken from the reference and committed with the" +Q60,"Every truncated identifier in the archive: which ones can still be checked *(pipe tooling; opened 2026-10-24 by the pipe, per reply 86 §6 and reply 87 §1)*",open and unclaimed.** Opened by the pipe 2026-10-24. Anyone's lane; zephyrus has first,"** one row per token — **file:line**, the token as written, and either **""full value" +Q61,"beam's `topo_sort` drops generator dependencies, and its gate imports a copy outside the repo *(beam lane; opened 2026-10-24 by the pipe, per reply 88 to zephyrus)*",open and unclaimed.** Opened by the pipe 2026-10-24. beam's lane by authorship; anyone may take it.,** (a) a dependency passed as any iterator produces the same order as the same dependency passed as a +Q62,"147 committed gates read `/root/.hermes/wizard-outputs`; two of them cannot pass from a clone *(no lane owns it; opened 2026-10-24 by the pipe, per reply 89 to zephyrus)*","open and unclaimed.** No lane owns it by authorship; anyone may take it, one file per commit.",** (a) every committed verifier either reads its input from the repo (`Path(__file__)`-relative) or +Q63,"Six committed verifiers print PASS while asserting nothing, and eight are run by no gate *(no lane; opened 2026-10-24 by the pipe, per reply 90 to zephyrus)*","open and unclaimed.** No lane owns it; anyone may take it, one file per commit.",** (a) each of the six either exits non-zero explicitly on failure (`sys.exit(1)` / `raise`) or states +Q66,"beam's `search_count` advertises overlapping occurrences and no test would notice if it stopped *(beam lane; opened 2026-10-25 by the pipe, per reply 27 to beam)*","closed at `2d6cf69` (2026-10-26, beam); the closure record sits at the foot of this file.** Beam's lane by authorship; the remedy was one assertion,", +Q67,"forge's probe-refactor verifier certifies a refactor that restores the defect it removes *(forge lane; opened 2026-10-25 by the pipe, per reply 20 to forge)*",open and unclaimed.** Forge's lane by authorship; the remedy is four small edits, +Q68,"beam's `topo_levels` drops a one-shot `edges` iterable, silently, and its new suite both certifies a host copy and takes the lane's gate down *(beam lane; opened 2026-10-25 by the pipe, per reply 28 to beam)*","closed at `5a43291` (volt, 2026-10-25); the closure record sits at the foot of this file.** Beam's lane by authorship; anyone may take it. Done means: `edges`", +Q69,"116 committed files under `wizard-work/` name the absolute path `/root/troupe-standup`, so 64 gates grade the author's working tree instead of the checkout they were asked about *(no lane owns it; opened 2026-10-25 by the pipe, per reply 101 to zephyrus)*","open and unclaimed.** One file per commit, each needing the repo-relative-or-stated decision; `wizard-work/ledger` is the entry to take first because its artifact is otherwise correct and its gate is the one measured green-on-wrong.","** the population is zero, or each surviving file states in one line that it deliberately grades the live tree and why; a gate in this class is run from a `git archive` export of its own commit (no `/root/troupe-standup` present) and produces the same verdict it produces in the shared tree; and the ledger census in particular passes at the sha carrying it, with `git ls-tree -r -z` enumeration so the full-path listing round-trips to a path that exists (`os.path.exists(field)` is `False` for the one 218-char newline-bearing entry today, 16 characters short of the real name)." +Q70,"beam's `test_trie.py` is invisible to the lane gate (73 new lines, 0 cells collected), and `count_prefix` is a lifetime insert counter that survives `delete` *(beam lane; opened 2026-10-25 by the pipe, per reply 102 to zephyrus)*","closed at `12f956a` (volt, 2026-10-26) — closure record at the foot of this file.** Beam's lane by authorship; anyone may take it. Evidence: `replies/2026-10-25-to-zephyrus-102.md` §2; probes `/root/.hermes/cache/scratch/trie_probe.py`; clone `/root/tcheck-q68` at `dbc2c4f`. Nothing from `inbox/` is quoted. No other lane's file was edited.","** the four cells are `unittest.TestCase` methods so `discover` collects them (Q68's own remedy), and `Ran 136` moves; `count_prefix` either counts distinct words (and is decremented or recomputed on `delete`) or is renamed to what it measures and its docstring says ""insertions, lifetime"" — one of the two, not both readings left standing; a cell fails when `count_prefix` disagrees with `len(self.words_with_prefix(prefix))` after deletes; and `bash wizard-work/beam/CHECK` rc 0 at the head carrying the change, with the rc stated in that commit." +Q71,"ledger's `commits-table.md` has no verifier, and row 4 writes `kernel_git` where the source URL has `kernel/git` *(ledger lane; opened 2026-10-25 by the pipe, per reply 102 to zephyrus)*","closed at `b9e3780` and the closure commit (volt, 2026-10-25); the closure record sits at the foot of this file.** Ledger's lane by authorship; anyone may take it. Evidence: `replies/2026-10-25-to-zephyrus-102.md` §3; response body retained at `/tmp/torvalds.json` on this host (re-fetchable, one request). Nothing from `inbox/` is quoted. No other lane's file was edited.","** the row-4 subject matches the source byte for byte; a verifier re-fetches the cited endpoint and fails on any row whose SHA prefix, date or subject differs (the shape ledger already uses for its ArXiv and GDP artifacts), with its rc stated in the commit that lands it; and the verifier is runnable from a clone of its own commit, not only from the author's tree (Q69's class — ledger's `verify.sh` already carries that defect, so a new verifier must not add a second instance)." +Q72,"sphinx's lcmm ledger gates its quotations but not its population or its interpretations: two mutations of mine pass the verifier at 169/169 and 139/139 *(sphinx lane; opened 2026-10-26 by the pipe, per reply 104 to zephyrus)*","open and unclaimed.** Sphinx's lane by authorship; anyone may take it. Evidence: `replies/2026-10-26-to-zephyrus-104.md` §2–§3; clone `/root/.hermes/cache/scratch/lcmm-v2` at `d6a9253`; mutation harness `/root/.hermes/cache/scratch/lcmm_mut.py` with trees `lcmm-mut/{A_drop3,B_swap,C_role,D_fig}`; independent claim/byte check `lcmm_indep.py`; verifier log `lc-verify.log` (169 lines), battery log `lc-mut.log`; error bodies `atom-live.xml` (14 B), `atom-full-live.xml` (126 B). Nothing from `inbox/` is quoted. No other lane's file was edited.","** a leg that reconciles `ledger.json` against `scan-candidates.json` — every `included` candidate present, every `excluded` one carrying a non-empty reason — which alone turns the dropped-entries mutation red; a leg that gates `claim_role` against the quoted sentence rather than against the allowed set (a per-role attribution rule, or at minimum a committed expected-role table so that a relabel has to edit a second file the diff makes visible), with the relabelled-`2507.02001v1` mutation as its own negative cell; `README.md` agreeing with `ledger.json` on 15; the mutation battery taking a relative or CLI-supplied scratch directory and cleaning up after itself; `run_verdict.py` distinguishing rc 2 (could not grade, endpoint down) from rc 1 (bytes differ); and every rc above stated in the commit that lands the change, with each gate runnable from a clone of that commit." +Q72,"verified from this host by the pipe (2026-10-26, reply 105)",, +Q73,"sphinx's longctx archive gates its numbers and its claim-scoped quotations, but not its prose numbers, its claim sentences, its README, or the quotations that carry no claim id *(sphinx lane; opened 2026-10-26 by the pipe, per reply 105 to zephyrus)*","open and unclaimed.** Sphinx's lane by authorship; anyone may take it. Evidence: `replies/2026-10-26-to-zephyrus-105.md` §2–§3; export `/root/.hermes/cache/scratch/lcx1/cloneA`; verify log `lcx1/verify_full.txt`; live re-fetch `lcx1/live_ids.xml` (403,802 B); harness `lcx1/mut.py`, trees `lcx1/mut/{A_prose_number,B_claim_prose,C_readme,D_quote_unclaimed,E_drop_papers,F_swap_quotes,H_fabricated}`, log `lcx1/mut_log.txt`. Nothing from `inbox/` is quoted. No other lane's file was edited.","** a leg that reads the two prose counts sphinx advertises word-for-word (`README.md`'s check count against the verifier's own check total, the paper count in `README.md`/`ANALYSIS.md` title against `len(papers)`) so mutation C fails; a per-claim rule sentence that must recompute from the same fields as the number (or a committed `rule` field the verifier reads) so mutation B fails; a quote-coverage leg that walks every blockquote in `ANALYSIS.md`, strips its `— [Cnn]` attribution and requires a matching `quote` claim, so mutation D fails; `ANALYSIS.md:3` either enforced at that scope or narrowed in the text; and the §3 ""27 of those"" sentence given its tokenizer in the sentence or the number corrected to the plural reading. Each fix carries its mutation as a negative cell, and every rc is stated in the commit that lands it, runnable from a clone or `git archive` export with no `.git`." +Q74,"sol's triage CHECK certifies the host `_triage` copy and asserts today's freshness, so it cannot gate the committed artifact *(sol lane; opened 2026-10-26 by the pipe, per the Q58 closure record above)*","open and unclaimed.** Sol's lane by authorship; anyone may take it. Evidence: export `/root/.hermes/cache/scratch/q58x` (`git archive 809466f`, no `.git`), fixtures `q58x/fix`, transcripts of the four runs in the Q58 closure record above. Nothing from `inbox/` is quoted. No other lane's file was edited.","** the CHECK reads the artifact from the tree it runs in (a repo-relative path, with `SOL_BASE` an override rather than the default), so a doctored committed artifact fails and a clean export passes with no host state involved; the freshness assertions become claims about the *artifact's* consistency with its own recorded mtimes rather than about the host's clock, so a faithful 30 h-old capture passes and a status that disagrees with its own row fails; both mutants above are carried as negative cells; and the rc is stated in the commit that lands it, runnable from a clone or `git archive` export with no `.git`." +Q75,"ledger's two census TSVs carry seven lines that are not rows and one path no file on disk has, and no gate in the lane can see either *(ledger lane; opened 2026-10-26 by the pipe, at `b82b023`)*","open and unclaimed.** Ledger's lane by authorship; anyone may take it. Evidence: readback of both files in Python against an `os.walk` of `/root/troupe-standup/wizard-work` at 2026-10-26 ≈09:30Z, `check_ledger_extract.py` rc 0, `grep -rn CHECK-wizardwork-census` (one hit, the docstring). Ledger's files by authorship; read, not edited. Nothing from `inbox/` is quoted. No other lane's file was edited.","** both TSVs regenerate from the tree through committed code and round-trip — every line has the declared field count, every path exists on disk, no duplicates, and the md summary totals equal the TSV's own row census for the same run; one verifier in the lane is red on a line whose path is absent from disk and on a line with the wrong field count, carried as two negative cells (the injected `beam/CHECK` body, and a deleted row); and the promised `CHECK-wizardwork-census` either exists and runs, or the docstring stops promising it. The rc is stated in the commit that lands it, runnable from `git archive` with no `.git`." +Q76,"beam's new median tests reach no gate, and the lane gate that would run them is red for a host path older than the commit *(beam lane; opened 2026-10-26 by the pipe, at `c3ce8dd`)*","open and unclaimed.** Beam's lane by authorship; anyone may take it. Evidence: reply 110 §1–§3; export `/root/.hermes/cache/scratch/t110/export` (`c3ce8dd`) and `…/t110/pre` (`c3ce8dd^`); transcripts `/tmp/t110_check_masked_after.txt` and `…_masked_pre.txt` (rc 0, `Ran 151 tests`, both), `/tmp/t110_check_after.txt` and `…_pre.txt` (rc 1, ImportError at line 29); mutant battery `t110/mut.py` → `t110mut/` (8 trees, 8 killed); oracles `t110/fuzz.py`, `t110/fuzz2.py`. Nothing from `inbox/` is quoted. No other lane's file was edited.","** the seven cells are `unittest.TestCase` methods so `discover` collects them and `Ran 151` moves (new count stated); `test_robin_hood_hash.py` imports `robin_hood_hash` from the tree it runs in, with no `sys.path.insert` naming a host directory, so `bash wizard-work/beam/CHECK` is **rc 0 unmasked** and in a `git archive` export with no `.git`; two negative cells carried — a cell deleted from `test_sliding_window_median.py`, and `sliding_window_median.py` sabotaged, each turning the gate red; and the rc stated in the commit that lands the change." +Q77,"beam's segment tree lands 100 lines and the lane's count does not move, its failure path reports as an import `SystemExit` rather than a cell, and out-of-range indices are silently clamped *(beam lane; opened 2026-10-26 by the pipe, per reply 112 to zephyrus)*",open and unclaimed.** Beam's lane by authorship; anyone may take it. Evidence: reply 112 §1; lane,** the file's cells are `unittest.TestCase` methods so `discover` collects them and `Ran N` moves +Q78,"spark's `3d72f9d` deletes the Q63 `_check()` failure path from four verifiers and drifts five ledger rows, and the new email-validator suite imports a host path *(spark lane; opened 2026-10-26 by the pipe, at `6cb3d7a`)*",, +Q79,"beam's `manifest.py` lands 107 lines with no cell in any gate, cannot see a directory symlink, reads its own output as a tamper, and prints a green empty manifest for a root that does not exist *(beam lane; opened 2026-10-26 by the pipe, at `edac5cf`)*",open and unclaimed.** Beam's lane by authorship; anyone may take it. Evidence: reply 116 §2–§4;,** `test_manifest.py` lands as `unittest.TestCase` cells that `discover` collects (the lane's +Q80,"spark's `json_sha256_validator.py` prints a hash of bytes it never validated, admits `NaN`/`Infinity` as valid, and reports an unreadable input in the same code as a bad document *(spark lane; opened 2026-10-26 by the pipe, at `3081128`)*","open and unclaimed.** Spark's lane by authorship; anyone may take it. Evidence: reply 118 §1–§3,","** one read serves both — `data = path.read_bytes()`, `json.loads(data, parse_constant=…)`," +Q81,"spark's `hermes_profile_health.py` grades a profile by the existence of names, hardcodes the one host path it can check, and carries a branch that cannot fire *(spark lane; opened 2026-10-26 by the pipe, at `3081128`)*",open and unclaimed.** Spark's lane by authorship. Evidence: reply 118 §4; probes,** `--profile` (or `HERMES_HOME`) and no absolute module constant; `is_dir()` for the four +Q82,"beam's `test_json_canonical.py` prints `ALL PASS` without running a single assertion, and the lane's count does not move at the head that lands it *(beam lane; opened 2026-10-26 by the pipe, at `3081128`)*",open and unclaimed.** Beam's lane by authorship; anyone may take it. Evidence: measured at,"** the seven cells become `unittest.TestCase` methods that `discover` collects, and the lane's" +Q83,"five branches `hermes_profile_health.py` names are pinned by no cell, and one of them is the branch that produces the sweep's only red *(spark lane; opened 2026-10-26 by the pipe, at `829268f`)*","open and unclaimed.** Spark's lane by authorship. Evidence: reply 119 §2; mutants and behaviour probes `/root/.hermes/wizard-outputs/ledger/q81_mutants_mine.py` (13 trees, incl. the M0–M8 reproduction) and `/root/.hermes/wizard-outputs/ledger/q81_survivor_probe.py` (the five rows, baseline rc vs mutant rc vs suite rc), results `/root/.hermes/wizard-outputs/ledger/q81-mutant-battery-mine.json`. Nothing from `inbox/` is quoted; no file another party authored was edited.","** five `unittest.TestCase` cells in `wizard-work/spark/test_hermes_profile_health.py`, one per row, each asserting the exact string *and* the exact rc; `bash wizard-work/spark/CHECK` → `Ran 14 tests` (nine today, five new); and every patch in the table above shown killing **at least one** cell, with the dead-cell names printed. The five fixtures are one line each — `_fixture()` already builds a home and writes `config` bytes. One concern per commit. If any row is deliberately out of scope — ""a config that is a directory is ungradable, not a fault"" is defensible — say so in the docstring and drop that row; the other four stand." +Q84,"`interval_overlap.py` lands 87 lines with no cell, and the lane gate reads `Ran 202` before and after *(beam lane; opened 2026-10-26 by the pipe, at `517362f`)*",open and unclaimed.** Beam's lane by authorship; anyone may take it. Evidence: reply 120 §1–§3;,** a `test_interval_overlap.py` in `wizard-work/beam` made of `unittest.TestCase` cells that +Q85,"`beam/CHECK` collects only `test_*.py`, so a module no cell imports lands invisible: four are in that state today, and the newest added 38 lines with the gate reading `Ran 214` before and after *(beam lane; opened 2026-10-27 by the pipe, at `083981e`)*",open and unclaimed.** Beam's lane by authorship. Evidence: reply 121 §3–§4; independent checks `/root/.hermes/cache/scratch/q83m9/` (the Q83 M9 mutant tree) and the reply-121 scripts in this repo's history. Nothing from `inbox/` is quoted; no file another party authored was edited.,"** one leg in `bash wizard-work/beam/CHECK` that fails (rc non-zero, and the names printed) when a lane module is imported or run by none of the collected tests, plus a `zeller_dow` cell set. The leg must be falsifiable today: on this tree it goes red naming exactly those four, and it goes green only when each is either covered by a cell or excluded in writing beside the leg with the reason (`verify_toposort_none.py` is plausibly a one-shot probe; say so, do not skip it silently). The `zeller_dow` cells must pin what the docstring claims and the code does not do: the ten dates `1582-10-05`..`1582-10-14` must either refuse or have the docstring corrected to say they grade as Julian; `2026-02-31`, `2026-04-31`, `2026-02-29` and `1900-02-29` must either refuse or be documented as aliasing onto the next real day (measured: each returns the same JDN and the same weekday as its real successor — `2026-02-31` = `2026-03-03` Tuesday, `1900-02-29` = `1900-03-01` Thursday). One concern per commit; the leg and the cells may be two." +Q86,"the refactor-lane harness proves silence, not absence of I/O, and its seed path is host-absolute, so a second checkout cannot re-verify the refactor *(forge lane; opened 2026-10-27 by the pipe, at `431bca1`)*","DONE at `802a1ae`; this line and the two items appended at the end of this file (Q89, Q90) land in the commits above it.** The opening `Status: open and unclaimed.` line and reply 124's ""four of six files remain"" are left standing, append-only; both are stale as of `802a1ae` and this line supersedes them. Re-measured by the pipe at `6e9aeee`, not read off volt's transcript: probe pair **14/14**, dump pair **14/14**, pending pair **13/13**, all rc 0; `grep -c '/root/troupe-standup/inbox'` across the six files **`0, 0, 0, 1, 1, 1`**, the three survivors being the harnesses' `HOST_SEED_LITERAL` (used only to assert the *original* keeps the smell); my own M6 on `_triage_probe_refactored.py` in a scratch clone → **13/14, rc 1**, `FAIL: static io-call(s) at module scope: [(57, 'json.load'), (57, 'open')]`. **The residual is not closed and is not a re-opening of this item:** the detector is a static name list (`verify_triage_probe_refactor.py:404-407`) plus a `builtins.open` spy, so a module-scope `Path(...).read_text()` appended to the refactored module still returns **14/14, rc 0** with `OK: no import-time I/O` — filed as Q89, because this item's own done-means (builtins.open wrapper *or* AST walk of the module body) is met by `802a1ae` and moving its goalposts now would be a different item wearing the old number.","** (1) one check that fails an import-time read — wrap a trial import in a `builtins.open` that raises on first call and require zero calls, or AST-walk the refactored module body for `Call` nodes resolving to `open` / `json.load`; the current file passes it, so it costs nothing today. (2) Both probes and both harnesses derive the seed from the tree (walk up from `os.path.dirname(__file__)`) and assert the resolved path is inside the tree; then check 2 must still read 11/11 on this host **and** M6 must still die. Minimum two files; the sibling harness is the same fix and may be its own commit if it needs its own mutants." +Q87,"the forge lane holds 34 `verify_*.py` and no `CHECK`; `tools/verify.py`'s eight legs reach none of them *(forge lane; opened 2026-10-27 by the pipe, at `431bca1`)*","open and unclaimed.** Forge's lane by authorship; anyone may take it. Evidence: reply 21 §4; `ls wizard-work/forge/verify_*.py | wc -l` = 34, `ls wizard-work/forge/CHECK` = absent, at `431bca1`. Nothing from `inbox/` is quoted.","** one row per verifier with the invocation that runs it (gate leg, script, or `none`) and one command that re-derives the table; plus either a `wizard-work/forge/CHECK` leg or a written exclusion list with a reason per file, and the skip list printed rather than implied. A file must not be dropped because it looks like a one-shot probe — say so in writing, beside the leg, the way Q85 requires." +Q88,"the census `CHECK` verifies the live `checkins/` directory and the TSV only, so a dated artifact goes red on the next check-in and stays green under a hand-edited per-wizard table *(ledger lane; opened 2026-10-27 by the pipe, at `b0a2886`)*","open and unclaimed.** Ledger's lane by authorship; anyone may take it. Evidence: reply 122 §2; scratch tree `/tmp/censusbomb` (copy, CHECK re-run at `b0a2886`, both measurements above). Nothing from `inbox/` is quoted; no file another party authored was edited.","** the CHECK grades the artifact against the tree its numbers describe — `git show :checkins` (the sha recorded in the MD's provenance) or a pinned sorted file list committed beside the TSV — and it fails if the recompute's *scope* cannot be established, rather than silently grading today. Plus one leg that re-derives the per-wizard table and the total from the same recompute and diffs them against the MD (or the MD stops publishing unverified numbers). Two concerns, two commits; the artifact's own numbers need no restating." +Q89,"the import-time-I/O detector in the three forge harnesses is a name list, so a `pathlib` read at module scope passes every check green *(forge lane; opened 2026-10-27 by the pipe, at `6e9aeee`)*","open and unclaimed.** Forge's lane by authorship; anyone may take it. Evidence: reply 125 §0 and §1; scratch clone `/tmp/q86evade` (both evasions above, run from a copy, no repo file edited). Nothing from `inbox/` is quoted.","** a detector that fails an import-time read whatever its spelling — an audit hook on the `open` audit event (fires for `open`, `io.open`, `os.open`, `pathlib`), or an AST that resolves `Path(...).read_text`/`.read_bytes`, `os.open` and `io.open` — plus one non-vacuity mutant per spelling that the detector must kill, and a docstring that names the set it models instead of claiming ""no I/O"". The clean modules must stay green and M6 must still die: three harnesses, three mutants each." +Q90,"beam's `find_tree_root` accepts any ancestor marker as the repo root, `portable_seed` never checks the seed exists, and the six cells that would notice reach no gate *(beam lane; opened 2026-10-27 by the pipe, at `6e9aeee`)*",open and unclaimed.** Beam's lane by authorship; anyone may take it. Evidence: reply 125 §1; scratch dirs `/root/.hermes/cache/scratch/beamguard/` (the five variant table) and the `/tmp/tmp*` decoy/symlink constructions in that reply; gate counts measured at `6e9aeee` in the worktree. Nothing from `inbox/` is quoted; no file another party authored was edited.,"** (1) a bounded root — an explicit `root=` argument, a pinned depth, or marker **and** `.git` — so a foreign marker cannot win, with the decoy case above as a cell; (2) `portable_seed` raises when the seed is absent (or is renamed to say it returns a path); (3) the cells are collected by `beam/CHECK` — as `unittest.TestCase`, or via a pytest leg that prints its count — and the gate's printed total moves; (4) the guard names the read paths it models, or is dropped in favour of one shared detector for Q89. Four concerns, up to four commits." +Q91,"forge's r41 pixel-diff verifier prints PASS when neither card writes anything, and it writes the delivery artifact *(forge lane; opened 2026-10-27 by the pipe, at `d56105a`)*",,"** both renders go to `tempfile` paths (or a `refs/` file inside the lane) and the shared artifact is never opened; the baseline's freshness is asserted — the pre-run `(mtime_ns, sha256)` must differ afterwards, so a no-write run is a FAIL — with the two no-write scripts above carried as negative cells; the three mutants carried as cells; and the output path an option rather than a constant. One concern, one file, forge's lane." +Q92,"spark's two new scripts grade the caller's working directory, and one carries dead code after `sys.exit` *(spark lane; opened 2026-10-27 by the pipe, at `d56105a`)*",,"** paths resolved from `__file__` or taken as an argument, so the verdict is independent of the caller's cwd; the profile to grade an argument defaulting to the *active* profile; the config parsed, not merely stat-ed; the unreachable block deleted; one cell that goes red when a required input is removed (non-vacuity, not ""passes on this box""); and both files collected by `wizard-work/spark/CHECK` with its printed count moving. Spark's lane by authorship; anyone may take it." +Q93,"the sweep's malformed-input probe grades a phrase, so two correctly-refusing tools keep it red, and the leg's summary line says ""0 fatal"" while returning 1 *(no lane owns it; opened 2026-10-27 by the pipe, at `d56105a`)*",,"** the malformed-input probe asserts the *contract* (exit 2, empty stdout, non-empty stderr) rather than a sentence, or carries one expected-reason token per tool that the tool itself owns; `UNEXPLAINED` never appears in a summary without the probe and tool named on the same line; the leg's summary line and its rc cannot disagree (a red axis prints `fault` in the summary); and one negative cell per shape — a tool that refuses with unexpected prose, and a tool that exits 0 on a malformed input — so the axis is shown to be able to fail for the right reason." +Q94,"`dsu_rollback.py`'s headline mechanism is graded by no cell, its compression cell does not grade compression, and `find`/`union` accept negative indices silently *(beam lane; opened 2026-10-27 by the pipe, at `1e79fc8`)*",,"** a cell that pins shape — after `union(0,1); union(2,3); union(4,5); union(6,7); union(1,2); union(4,0)` assert `parent[4] == 0` and deepest depth 2 (measured: attach-under-first-root gives `parent[4] == 4`, deepest depth 3), which kills `M-SIZE`; `test_no_path_compression_find_stable` rebuilt on 4 nodes so the node it asks about sits two levels down (size-based `union(0,1); union(2,3); union(1,2)` leaves node 3 at depth 2 under node 2) and asserting `find(3)` leaves `parent[3]` unchanged, which kills a plain compressing `find` on the claim's own cell instead of incidentally; and refusal cells for `find(-1)`, `find(n)` and `union(-1,0)` with a bounds check that raises rather than aliasing. Three concerns, up to three commits. Beam's lane by authorship; anyone may take it." diff --git a/wizard-work/ledger/queue-extract.md b/wizard-work/ledger/queue-extract.md new file mode 100644 index 0000000..e5613d1 --- /dev/null +++ b/wizard-work/ledger/queue-extract.md @@ -0,0 +1,93 @@ +# Queue extraction -- WORK-QUEUE.md + +Lane: Extract -- data extraction and tables. + +Source: `/root/troupe-standup/WORK-QUEUE.md`. + +Columns: ID | Title | Status evidence (verbatim lead, truncated) | Done means (truncated). Full verbatim values are in the companion CSV; 'no … line' marks items that carry no such bold lead. Rows are ordered as in the source. + +| ID | Title | Status evidence | Done means (close) | +|---|---|---|---| +| Q1 | Recover the fifteen silent rooms *(highest value; no dependencies)* | CLOSED — 0/15 recovered, and every public avenue is now exhausted with receipts. | ** one row per space in `recoveries/silent-rooms.md` — id, date, what was found, exact URL, retrieval | +| Q2 | Chase the one dead link | DONE — recovered.** `recoveries/dead-link.md` (`3ca3d3c`, zephyrus-sparkborn) found the `x.com` snapshot | ** either an archived copy (Wayback, archive.today, a quote-post screenshot) recorded with its URL and | +| Q3 | Independent audit of the published ledger | DONE — both passes complete (`2ebcbe7` pass 1, `6f31cde` pass 2, zephyrus-sparkborn; material `2118b3e`). | ** a table of findings with severity, or an explicit clean bill of health per area checked. | +| Q4 | Falsification pass | DONE — `recoveries/falsification-pass.md` (`f50f052`, zephyrus-sparkborn), all three verdicts re-verified | ** three claims, three attempts, three verdicts. | +| Q8 | Summary fidelity: does each entry's machine-written summary overstate its article? | pilot CLOSED at `dcf91a1` (zephyrus-sparkborn), corrected at `9cc6879`; the full sweep is CLOSED at `f1fe38d` (2026-10-06) — 91/91, 1,101 rows, verified independently from the published file. The one… | ** a table of per-clause verdicts for the sample, with the count of each verdict and the named entries | +| Q5 | Issue triage in the organisation's public repos | re-scoped 2026-09-26 (reply 08 §5) after a census, because as written it invites busywork.** Measured over | ** every open issue either carrying a reproduction comment or an explicit cannot-reproduce note. | +| Q6 | A public guide to checking this archive | DONE at `8bd0b09` (Merlin, 2026-10-08T17:28:47Z) — verified from this host figure by figure; | ** somebody with no context can follow it and get a yes/no on a real claim. | +| Q7 | Propose the next items | satisfied for the 2026-09-25 cycle.** Zeph's three proposals (`2a0cb01`) are now queue items: the Q8 | no Done means line | +| Q9 | Independent QC of the sovereign music candidates *(second opinion, no listening required)* | unclaimed. Pre-verified by Timmy against the delivered files — record `recoveries/music-master-verification.md` | ** a table of claim-vs-measurement per candidate plus the transcription window. | +| Q10 | Summary fidelity for the non-magazine entries | COMPLETE 2026-10-10 (verified from raw sources; closure record below). Originally claimed by zephyrus-sparkborn at `3c9ad5b` (2026-10-07, `checkins/2026-10-07-zephyrus.md` §3). | ** a table in `recoveries/summary-fidelity-nonmagazine.md` — per-entry verdict counts, the named entries | +| Q11 | Close the eight pass-2 date mismatches | DONE — `recoveries/ledger-date-closure.md`, Merlin, 2026-10-09. 8 / 8 resolved, all | ** a closure table, one line per entry, added to a new `recoveries/ledger-date-closure.md` (not edited | +| Q12 | Are the evidence tiers earned? | DONE — `recoveries/evidence-tier-audit.md`, Merlin, 2026-10-10. 18/18 `justified`, 0 `too | ** `recoveries/evidence-tier-audit.md` — the sample rule, one row per entry, the count of each | +| Q13 | Publish the archive-side wording fixes, one at a time | ** 1 of 8 has a decision and staged correction (`magazine-091`; reply 09 §3), but its decided note carries | ** for every clause that has a decision, a published page whose hash is read back over HTTPS, plus a | +| Q14 | Put the Inbox on `alexanderwhitestone.com` behind a gate | DONE — finished by `616794c` (2026-09-26), then re-measured by a later run the same day instead of being | ** the queue page is live at a gated URL and re-verified against that live URL by a mobile-width | +| Q15 | Stop the monitor from waking on the pipe's own writes *(pipe; no dependencies)* | DONE — 2026-09-26 ≈19:05 UTC.** Fixed in `/root/.hermes/scripts/troupe_pipe_monitor.py` (outside this | ** a tick wakes only on counterparty content; Timmy's own commits leave the signature unchanged. | +| Q16 | Per-platform ATS gate census *(career lane; opened 2026-10-01 by reply 21 §3, drafted by zephyrus)* | draft v0.1 landed `f29425a` (`career-lane/ats-gate-census-draft.md`, 2026-10-01; check-in `2f83e08`); | ** one row per platform in `career-lane/ats-gate-census.md` with the fetched form URL, the field | +| Q17 | Employer-side AI-authorship refusal gates *(career lane; opened 2026-10-03 by reply 26, per Q7)* | no Status line | ** a dated, append-only subsection in `career-lane/ats-gate-census.md` with one row per observed | +| Q18 | Employer-side lead intake must be deduped against the prepared index *(career lane; opened 2026-10-04 by reply 28, per the G2i miss)* | no Status line | ** a fixed, published **intake rule** for every employer-side lead — before a lead is called | +| Q19 | Three proposed members (local Mac wizard, Grok, Mistral) *(wizard onboarding; opened 2026-10-06 by zephyrus-sparkborn, `checkins/2026-10-06-zephyrus-wizards*.md… | RESOLVED — provisional (2026-10-06). | no Done means line | +| Q20 | Excerpt fidelity and placement for the 91 magazine entries *(archive verification; opened 2026-10-08 by the pipe, per Q7's never-dry obligation)* | DONE — `recoveries/excerpt-placement-audit.md` (12,914 B) and `recoveries/excerpt-placement-rows.md` | ** `recoveries/excerpt-placement-audit.md` — the sample rule, the per-excerpt rows as a data file | +| Q21 | Does every quoted excerpt resolve at the URL it is printed against? | open and unclaimed. Opened by the pipe 2026-10-10** because Q12 closed at `67b892d` and the unclaimed | ** `recoveries/excerpt-binding-audit.md` — the reading rule in the header, one row per excerpt with | +| Q22 | Do the named-but-unlinked sources resolve? *(proposed 2026-10-10 by Merlin, per Q7; not yet opened)* | DONE — `recoveries/named-source-liveness.md`, Merlin, 2026-10-10. 28 fetches → 27 distinct | ** a table in `recoveries/named-source-liveness.md` — source, entry/entries naming it, verdict, | +| Q23 | The prose-named sources the `@` token rule cannot see *(archive verification; opened 2026-10-10 by the pipe, per Q7's never-dry obligation)* | DONE 2026-10-10 — `recoveries/named-source-liveness-unlinked.md` (Merlin), verified from the published file this tick (control plane). | ** a table in `recoveries/named-source-liveness-unlinked.md` — source, entry/entries naming it, kind | +| Q24 | The Q13 fix pack: stage every verified live-page fix as one reviewable approval *(archive-side; opened 2026-10-10 by the pipe, per Q7's never-dry obligation)* | open and unclaimed. Opened by the pipe 2026-10-10** because Q23 closed at `8b56abe` and the unclaimed | ** `docs/q13-fix-pack.md` — one row per clause in the fixed column order `entry \| live page \| panel \| | +| Q25 | A prose-anchor convention for the ledger build *(archive-side; proposed 2026-10-10 by Merlin, per Q7's never-dry obligation — Q24 closed and the unclaimed execu… | DONE — `recoveries/prose-anchor-convention.md`, Merlin, 2026-10-10. Designed, prototyped and | ** a record naming the convention's exact syntax, the `render_entry` change as a diff against | +| Q26 | Make the silent token classes loud, and measure the fifth slot *(archive-side; opened 2026-10-10 by the pipe, per Q7's never-dry obligation — Q25 closed at `a9f… | DONE — `recoveries/prose-anchor-hardening.md`, Merlin, 2026-10-10→11 (~00:20–00:24 UTC). | ** the hardened prototype as a diff against `97fedb5d…`, the five Q25 legs re-run and green, the | +| Q27 | A fixture at every render site: make the token sentinel's coverage total *(archive-side; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q26 clos… | DONE 2026-10-11 — `recoveries/render-site-coverage.md` (Merlin). 32 sites: 28 covered by fixture, 4 structural exclusions; 35 fixtures, every negative writes 0 files; the scope clause closed with opti… | no Done means line | +| Q28 | The channels the entry walk cannot see: state the guarantee, then cover what it cannot reach | DONE 2026-10-11 — `recoveries/render-site-channels.md` (Merlin), scratch tree | ** a recovery file (e.g. `recoveries/render-site-channels.md`) with a row per non-entry | +| Q29 | The guards that are not the walk: what protects a page when the value is not a token | DONE 2026-10-11 — `recoveries/render-site-guards.md` (Merlin), scratch tree `/root/crucible/q29/`. 22 fixtures plus the control, every negative or escape claim measured against the emitted byte; the s… | ** a recovery file (e.g. `recoveries/render-site-guards.md`) with one row per mechanism, the | +| Q30 | The renderer's entry point: the one path no gate executes | no Status line | ** the fixed renderer with its sha256; a CLI transcript showing exit 0 and the byte count at a | +| Q31 | The collector's entry point: the sibling path no gate has executed either | DONE at Merlin's Run 6 (2026-10-11 ≈13:19–13:35Z) — deliverable `recoveries/helm-collector-run.md`; the collector's entry point is executed, its destination is gated, and G8 asserts it.** The item's f… | ** `recoveries/helm-collector-run.md` — the transcripts, the digests, the destination | +| Q32 | The G8 two-run agreement check is nondeterministic: `age_seconds` is not scrubbed *(Helm lane; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q3… | OPEN — named to the Helm lane**, ahead of the Q31 `cp` decision so that the gate that ships is the one that | ** the scrub covers every clock-derived field the collector emits (or `age_seconds` is asserted within | +| Q33 | Split the newest-file pointer out of `evidence.source_path` *(collector-side; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q32 closed at `7e12… | OPEN — named to the Helm lane.** A snapshot key rename touches every consumer of `evidence.source_path` | ** the collector emits the pointer as its own named field (e.g. `latest_active_path`, or | +| Q34 | Gate the pointer's null case *(collector-side gate; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q33 closed at `8bb88da`)* | DONE 2026-10-12 — `recoveries/helm-null-gate.md` (Merlin), scratch tree `/root/crucible/q34/`. | ** the gate plants, in its own scratch tree between two collects, a profile with a `sessions/` directory | +| Q35 | The gate must refuse a subject collector that carries no destination rule *(Helm lane; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q34 verifi… | DONE — `recoveries/helm-precondition-gate.md` (8,261 B / sha256 | ** the destination-rule guard is a **precondition** — a collector that lacks the refusal is refused by | +| Q36 | The monitor cannot see a counterparty write that carries this pipe's identity *(pipe tooling; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q20… | DONE — the rule holds, and the predicted transition arrived exactly as stated.** Measured at the first | ** an own-attributed commit that touches another wizard's check-in is read as counterparty content | +| Q37 | The identity rule closes one class, not the class *(pipe tooling; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q36 closed at `9584984` and the… | no Status line | ** a stated answer, with the fields measured, to *can this pipe distinguish its own commits from the | +| Q38 | The behavioural destination guard *(Helm lane; opened 2026-10-12 by Merlin — Q36's candidate 2, on Alexander's direction to continue the Helm lane)* | DONE — `recoveries/helm-behavioural-guard.md` (10,232 B), Merlin, 2026-10-12T06:5x–07:1xZ, this host. | ** `recoveries/helm-behavioural-guard.md` — the guard's code path with line numbers, the diff, the | +| Q38 | The behavioural destination guard *(Helm lane; opened 2026-10-12 by Merlin — Q36's candidate 2, on Alexander's direction to continue the Helm lane; **direction… | the deliverable is verified and the item is DONE, and its protective claim is FALSIFIED. It is not adoptable as it stands.** Finished by `0776480` (guard + queue block + Run 4 check-in) and `4ed1da9`… | no Done means line | +| Q39 | The Q38 guard's admission admits a writer, and its legs run the unrewritten subject *(Helm lane; opened 2026-10-12 by the pipe, per Q7's never-dry obligation —… | DONE — `recoveries/helm-destination-guard-fix.md` (12,253 B), Merlin, 2026-10-12, scratch tree `/root/crucible/q39/`. Fixed gate `9b09f328…` (1,412 lines / 77,704 B, +309/−38 against Q38's `74aba348…`… | ** `recoveries/` carries the fixed guard with its own negative-control suite, and the pair refuses **all four** of: (1) a subject that write… | +| Q40 | the deployed gate admits all five negatives, and has no admission path at all *(Helm lane; opened 2026-10-12 by Merlin, discharging the Q39 closure's C26)* | DONE — `recoveries/helm-deployed-gate-admission.md` (5,633 B / sha256 | ** the deployed gate's behaviour on all five fixtures measured from | +| Q37 | claimed by this pipe; first increment landed (the v1.3 census) | OPEN and claimed by the pipe (Merlin's §Next 2 read it correctly; it is this lane's tooling). Landed this tick:** the `branch-head` census line in `troupe_pipe_monitor.py` v1.3, sha256 `bb532da8c4f01b… | no Done means line | +| Q43 | The legs run the rewritten subject: prevention, not detect-and-restore *(Helm lane; opened 2026-10-12 by Merlin, per the Q39 closure's own recommendation — "ope… | DONE — `recoveries/helm-leg-sandbox.md` (13,561 B), Merlin, 2026-10-12. Scratch tree `/root/crucible/q43/`; nothing deployed, no `cp` into `/root/.helm/bin/`, `decisions/` and `inbox/` untouched. | ** the pair green on repeated runs with the same count plus the new | +| Q44 | The pin class: redirect every constant composed from the live data root, not only `SNAPSHOT_PATH` *(Helm lane; opened 2026-10-12 by the pipe, per Q43's own clos… | DONE 2026-10-12 — `recoveries/helm-root-redirect.md` (Merlin, Helm lane); the closure block is at the foot | ** the pair green on repeated runs with the same count plus the new checks; the five Q39 negatives still | +| Q48 | The runtime-resolution redirect: close the class Q45's literals cannot see | DONE 2026-10-13 — `recoveries/helm-runtime-redirect.md` (Merlin, Helm lane), scratch tree | no Done means line | +| Q49 | The runtime-resolved root's live write path: name it, reproduce it, then close it | open and unclaimed. Opened by the pipe 2026-10-13**, because the Helm lane's executable set is empty | ** the configuration is in the record with both live objects' sha / size / `mtime_ns` before and | +| Q57 | Bind a standup entry to the bytes it grades *(Codeforge lane; opened 2026-10-24 by the pipe, per reply 05's corrections 1 and 2)* | open and unclaimed. Opened by the pipe 2026-10-24; null's lane. | ** `check.py` exits 1 and names the differing line when the working-tree `wizard.log.md` differs by one byte from the blob of the commit it… | +| Q58 | The lane-activity instrument reads a surface that was retired on 2026-10-16 *(Sol lane; opened 2026-10-24 by the pipe, per reply 12 to sol)* | closed at `809466f` (2026-10-26, spark in sol's lane); the closure record sits at the foot of this file.** Opened by the pipe 2026-10-24. | ** the triage reads **both** surfaces (legacy flat files and `BASE//`), | +| Q59 | beam's jump hash matches the C reference, and not one test would notice if it stopped *(beam lane; opened 2026-10-24 by the pipe, per reply 84 to zephyrus)* | open and unclaimed. Beam's lane. | ** at least one golden-vector cell, taken from the reference and committed with the | +| Q60 | Every truncated identifier in the archive: which ones can still be checked *(pipe tooling; opened 2026-10-24 by the pipe, per reply 86 §6 and reply 87 §1)* | open and unclaimed.** Opened by the pipe 2026-10-24. Anyone's lane; zephyrus has first | ** one row per token — **file:line**, the token as written, and either **"full value | +| Q61 | beam's `topo_sort` drops generator dependencies, and its gate imports a copy outside the repo *(beam lane; opened 2026-10-24 by the pipe, per reply 88 to zephyr… | open and unclaimed.** Opened by the pipe 2026-10-24. beam's lane by authorship; anyone may take it. | ** (a) a dependency passed as any iterator produces the same order as the same dependency passed as a | +| Q62 | 147 committed gates read `/root/.hermes/wizard-outputs`; two of them cannot pass from a clone *(no lane owns it; opened 2026-10-24 by the pipe, per reply 89 to… | open and unclaimed.** No lane owns it by authorship; anyone may take it, one file per commit. | ** (a) every committed verifier either reads its input from the repo (`Path(__file__)`-relative) or | +| Q63 | Six committed verifiers print PASS while asserting nothing, and eight are run by no gate *(no lane; opened 2026-10-24 by the pipe, per reply 90 to zephyrus)* | open and unclaimed.** No lane owns it; anyone may take it, one file per commit. | ** (a) each of the six either exits non-zero explicitly on failure (`sys.exit(1)` / `raise`) or states | +| Q66 | beam's `search_count` advertises overlapping occurrences and no test would notice if it stopped *(beam lane; opened 2026-10-25 by the pipe, per reply 27 to beam… | closed at `2d6cf69` (2026-10-26, beam); the closure record sits at the foot of this file.** Beam's lane by authorship; the remedy was one assertion, | no Done means line | +| Q67 | forge's probe-refactor verifier certifies a refactor that restores the defect it removes *(forge lane; opened 2026-10-25 by the pipe, per reply 20 to forge)* | open and unclaimed.** Forge's lane by authorship; the remedy is four small edits | no Done means line | +| Q68 | beam's `topo_levels` drops a one-shot `edges` iterable, silently, and its new suite both certifies a host copy and takes the lane's gate down *(beam lane; opene… | closed at `5a43291` (volt, 2026-10-25); the closure record sits at the foot of this file.** Beam's lane by authorship; anyone may take it. Done means: `edges` | no Done means line | +| Q69 | 116 committed files under `wizard-work/` name the absolute path `/root/troupe-standup`, so 64 gates grade the author's working tree instead of the checkout they… | open and unclaimed.** One file per commit, each needing the repo-relative-or-stated decision; `wizard-work/ledger` is the entry to take first because its artifact is otherwise correct and its gate is… | ** the population is zero, or each surviving file states in one line that it deliberately grades the live tree and why; a gate in this class… | +| Q70 | beam's `test_trie.py` is invisible to the lane gate (73 new lines, 0 cells collected), and `count_prefix` is a lifetime insert counter that survives `delete` *(… | closed at `12f956a` (volt, 2026-10-26) — closure record at the foot of this file.** Beam's lane by authorship; anyone may take it. Evidence: `replies/2026-10-25-to-zephyrus-102.md` §2; probes `/root/.… | ** the four cells are `unittest.TestCase` methods so `discover` collects them (Q68's own remedy), and `Ran 136` moves; `count_prefix` either… | +| Q71 | ledger's `commits-table.md` has no verifier, and row 4 writes `kernel_git` where the source URL has `kernel/git` *(ledger lane; opened 2026-10-25 by the pipe, p… | closed at `b9e3780` and the closure commit (volt, 2026-10-25); the closure record sits at the foot of this file.** Ledger's lane by authorship; anyone may take it. Evidence: `replies/2026-10-25-to-zep… | ** the row-4 subject matches the source byte for byte; a verifier re-fetches the cited endpoint and fails on any row whose SHA prefix, date… | +| Q72 | sphinx's lcmm ledger gates its quotations but not its population or its interpretations: two mutations of mine pass the verifier at 169/169 and 139/139 *(sphinx… | open and unclaimed.** Sphinx's lane by authorship; anyone may take it. Evidence: `replies/2026-10-26-to-zephyrus-104.md` §2–§3; clone `/root/.hermes/cache/scratch/lcmm-v2` at `d6a9253`; mutation harne… | ** a leg that reconciles `ledger.json` against `scan-candidates.json` — every `included` candidate present, every `excluded` one carrying a… | +| Q72 | verified from this host by the pipe (2026-10-26, reply 105) | no Status line | no Done means line | +| Q73 | sphinx's longctx archive gates its numbers and its claim-scoped quotations, but not its prose numbers, its claim sentences, its README, or the quotations that c… | open and unclaimed.** Sphinx's lane by authorship; anyone may take it. Evidence: `replies/2026-10-26-to-zephyrus-105.md` §2–§3; export `/root/.hermes/cache/scratch/lcx1/cloneA`; verify log `lcx1/verif… | ** a leg that reads the two prose counts sphinx advertises word-for-word (`README.md`'s check count against the verifier's own check total,… | +| Q74 | sol's triage CHECK certifies the host `_triage` copy and asserts today's freshness, so it cannot gate the committed artifact *(sol lane; opened 2026-10-26 by th… | open and unclaimed.** Sol's lane by authorship; anyone may take it. Evidence: export `/root/.hermes/cache/scratch/q58x` (`git archive 809466f`, no `.git`), fixtures `q58x/fix`, transcripts of the four… | ** the CHECK reads the artifact from the tree it runs in (a repo-relative path, with `SOL_BASE` an override rather than the default), so a d… | +| Q75 | ledger's two census TSVs carry seven lines that are not rows and one path no file on disk has, and no gate in the lane can see either *(ledger lane; opened 2026… | open and unclaimed.** Ledger's lane by authorship; anyone may take it. Evidence: readback of both files in Python against an `os.walk` of `/root/troupe-standup/wizard-work` at 2026-10-26 ≈09:30Z, `che… | ** both TSVs regenerate from the tree through committed code and round-trip — every line has the declared field count, every path exists on… | +| Q76 | beam's new median tests reach no gate, and the lane gate that would run them is red for a host path older than the commit *(beam lane; opened 2026-10-26 by the… | open and unclaimed.** Beam's lane by authorship; anyone may take it. Evidence: reply 110 §1–§3; export `/root/.hermes/cache/scratch/t110/export` (`c3ce8dd`) and `…/t110/pre` (`c3ce8dd^`); transcripts… | ** the seven cells are `unittest.TestCase` methods so `discover` collects them and `Ran 151` moves (new count stated); `test_robin_hood_hash… | +| Q77 | beam's segment tree lands 100 lines and the lane's count does not move, its failure path reports as an import `SystemExit` rather than a cell, and out-of-range… | open and unclaimed.** Beam's lane by authorship; anyone may take it. Evidence: reply 112 §1; lane | ** the file's cells are `unittest.TestCase` methods so `discover` collects them and `Ran N` moves | +| Q78 | spark's `3d72f9d` deletes the Q63 `_check()` failure path from four verifiers and drifts five ledger rows, and the new email-validator suite imports a host path… | no Status line | no Done means line | +| Q79 | beam's `manifest.py` lands 107 lines with no cell in any gate, cannot see a directory symlink, reads its own output as a tamper, and prints a green empty manife… | open and unclaimed.** Beam's lane by authorship; anyone may take it. Evidence: reply 116 §2–§4; | ** `test_manifest.py` lands as `unittest.TestCase` cells that `discover` collects (the lane's | +| Q80 | spark's `json_sha256_validator.py` prints a hash of bytes it never validated, admits `NaN`/`Infinity` as valid, and reports an unreadable input in the same code… | open and unclaimed.** Spark's lane by authorship; anyone may take it. Evidence: reply 118 §1–§3, | ** one read serves both — `data = path.read_bytes()`, `json.loads(data, parse_constant=…)`, | +| Q81 | spark's `hermes_profile_health.py` grades a profile by the existence of names, hardcodes the one host path it can check, and carries a branch that cannot fire *… | open and unclaimed.** Spark's lane by authorship. Evidence: reply 118 §4; probes | ** `--profile` (or `HERMES_HOME`) and no absolute module constant; `is_dir()` for the four | +| Q82 | beam's `test_json_canonical.py` prints `ALL PASS` without running a single assertion, and the lane's count does not move at the head that lands it *(beam lane;… | open and unclaimed.** Beam's lane by authorship; anyone may take it. Evidence: measured at | ** the seven cells become `unittest.TestCase` methods that `discover` collects, and the lane's | +| Q83 | five branches `hermes_profile_health.py` names are pinned by no cell, and one of them is the branch that produces the sweep's only red *(spark lane; opened 2026… | open and unclaimed.** Spark's lane by authorship. Evidence: reply 119 §2; mutants and behaviour probes `/root/.hermes/wizard-outputs/ledger/q81_mutants_mine.py` (13 trees, incl. the M0–M8 reproduction… | ** five `unittest.TestCase` cells in `wizard-work/spark/test_hermes_profile_health.py`, one per row, each asserting the exact string *and* t… | +| Q84 | `interval_overlap.py` lands 87 lines with no cell, and the lane gate reads `Ran 202` before and after *(beam lane; opened 2026-10-26 by the pipe, at `517362f`)* | open and unclaimed.** Beam's lane by authorship; anyone may take it. Evidence: reply 120 §1–§3; | ** a `test_interval_overlap.py` in `wizard-work/beam` made of `unittest.TestCase` cells that | +| Q85 | `beam/CHECK` collects only `test_*.py`, so a module no cell imports lands invisible: four are in that state today, and the newest added 38 lines with the gate r… | open and unclaimed.** Beam's lane by authorship. Evidence: reply 121 §3–§4; independent checks `/root/.hermes/cache/scratch/q83m9/` (the Q83 M9 mutant tree) and the reply-121 scripts in this repo's hi… | ** one leg in `bash wizard-work/beam/CHECK` that fails (rc non-zero, and the names printed) when a lane module is imported or run by none of… | +| Q86 | the refactor-lane harness proves silence, not absence of I/O, and its seed path is host-absolute, so a second checkout cannot re-verify the refactor *(forge lan… | DONE at `802a1ae`; this line and the two items appended at the end of this file (Q89, Q90) land in the commits above it.** The opening `Status: open and unclaimed.` line and reply 124's "four of six f… | ** (1) one check that fails an import-time read — wrap a trial import in a `builtins.open` that raises on first call and require zero calls,… | +| Q87 | the forge lane holds 34 `verify_*.py` and no `CHECK`; `tools/verify.py`'s eight legs reach none of them *(forge lane; opened 2026-10-27 by the pipe, at `431bca1… | open and unclaimed.** Forge's lane by authorship; anyone may take it. Evidence: reply 21 §4; `ls wizard-work/forge/verify_*.py \| wc -l` = 34, `ls wizard-work/forge/CHECK` = absent, at `431bca1`. Nothi… | ** one row per verifier with the invocation that runs it (gate leg, script, or `none`) and one command that re-derives the table; plus eithe… | +| Q88 | the census `CHECK` verifies the live `checkins/` directory and the TSV only, so a dated artifact goes red on the next check-in and stays green under a hand-edit… | open and unclaimed.** Ledger's lane by authorship; anyone may take it. Evidence: reply 122 §2; scratch tree `/tmp/censusbomb` (copy, CHECK re-run at `b0a2886`, both measurements above). Nothing from `… | ** the CHECK grades the artifact against the tree its numbers describe — `git show :checkins` (the sha recorded in the MD's provenance)… | +| Q89 | the import-time-I/O detector in the three forge harnesses is a name list, so a `pathlib` read at module scope passes every check green *(forge lane; opened 2026… | open and unclaimed.** Forge's lane by authorship; anyone may take it. Evidence: reply 125 §0 and §1; scratch clone `/tmp/q86evade` (both evasions above, run from a copy, no repo file edited). Nothing… | ** a detector that fails an import-time read whatever its spelling — an audit hook on the `open` audit event (fires for `open`, `io.open`, `… | +| Q90 | beam's `find_tree_root` accepts any ancestor marker as the repo root, `portable_seed` never checks the seed exists, and the six cells that would notice reach no… | open and unclaimed.** Beam's lane by authorship; anyone may take it. Evidence: reply 125 §1; scratch dirs `/root/.hermes/cache/scratch/beamguard/` (the five variant table) and the `/tmp/tmp*` decoy/sy… | ** (1) a bounded root — an explicit `root=` argument, a pinned depth, or marker **and** `.git` — so a foreign marker cannot win, with the de… | +| Q91 | forge's r41 pixel-diff verifier prints PASS when neither card writes anything, and it writes the delivery artifact *(forge lane; opened 2026-10-27 by the pipe,… | no Status line | ** both renders go to `tempfile` paths (or a `refs/` file inside the lane) and the shared artifact is never opened; the baseline's freshness… | +| Q92 | spark's two new scripts grade the caller's working directory, and one carries dead code after `sys.exit` *(spark lane; opened 2026-10-27 by the pipe, at `d56105… | no Status line | ** paths resolved from `__file__` or taken as an argument, so the verdict is independent of the caller's cwd; the profile to grade an argume… | +| Q93 | the sweep's malformed-input probe grades a phrase, so two correctly-refusing tools keep it red, and the leg's summary line says "0 fatal" while returning 1 *(no… | no Status line | ** the malformed-input probe asserts the *contract* (exit 2, empty stdout, non-empty stderr) rather than a sentence, or carries one expected… | +| Q94 | `dsu_rollback.py`'s headline mechanism is graded by no cell, its compression cell does not grade compression, and `find`/`union` accept negative indices silentl… | no Status line | ** a cell that pins shape — after `union(0,1); union(2,3); union(4,5); union(6,7); union(1,2); union(4,0)` assert `parent[4] == 0` and deepe… | diff --git a/wizard-work/ledger/verify_census.py b/wizard-work/ledger/verify_census.py new file mode 100755 index 0000000..2422269 --- /dev/null +++ b/wizard-work/ledger/verify_census.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +# verify_census: re-derive the extension census from repo_files.tsv and diff it +# against the committed ext-census.tsv. Exit 0 iff identical. +import collections +import os +import sys + +REPO = "/root/troupe-standup" +CATALOG = "/root/.hermes/wizard-outputs/ledger/ext-census.tsv" + +def ext_of(b): + if b.startswith(".") or "." not in b: + return "(none)" + return b.rsplit(".", 1)[1].lower() + +def rederived(): + cnt = collections.Counter() + with open(os.path.join(REPO, "repo_files.tsv")) as fh: + for line in fh: + line = line.rstrip("\n") + if not line.strip() or line.startswith("rank\tpath"): + continue + _, _, p = line.partition("\t") + cnt[ext_of(os.path.basename(p.strip()))] += 1 + return cnt + +def read_catalog(): + out = {} + with open(CATALOG) as fh: + next(fh) # header + for line in fh: + parts = line.rstrip("\n").split("\t") + if len(parts) == 3: + out[parts[1]] = int(parts[2]) + return out + +def main(): + want = rederived() + got = read_catalog() + keys = sorted(set(want) | set(got), key=lambda k: (-want.get(k, 0), k)) + bad = 0 + for k in keys: + w = want.get(k, 0) + g = got.get(k, 0) + if w != g: + bad += 1 + print("MISMATCH " + k + ": rederived=" + str(w) + " catalog=" + str(g)) + if want != got: + print("FAIL: catalog differs from re-derivation (" + str(bad) + " mismatched rows)") + return 1 + print("PASS: " + str(len(keys)) + " extension rows; " + str(sum(want.values())) + " files match the re-derived census") + return 0 + +if __name__ == "__main__": + sys.exit(main())