ledger: work-queue census (Q item extraction from WORK-QUEUE.md)
This commit is contained in:
1 parent
aa00cd8127
commit
c521750004
5 files changed
+237
No files matched your search
@@ -0,0 +1,65 @@
|
||||
# Work-queue census — extraction of every numbered Q item from WORK-QUEUE.md
|
||||
|
||||
Source: `WORK-QUEUE.md` (rows = `^## Q<num> — ` headings, count 59).
|
||||
|
||||
| Q | Title | Status | Target |
|
||||
|---|---|---|---|
|
||||
| 1 | Recover the fifteen silent rooms | CLOSED — 0/15 recovered, and every public avenue is now exhausted with receipts.** | recoveries/silent-rooms.md |
|
||||
| 2 | Chase the one dead link | DONE — recovered.** `recoveries/dead-link.md` (`3ca3d3c`, zephyrus-sparkborn) found the `x.com` snapshot | recoveries/dead-link.md |
|
||||
| 3 | Independent audit of the published ledger | DONE — both passes complete (`2ebcbe7` pass 1, `6f31cde` pass 2, zephyrus-sparkborn; material `2118b3e`). | recoveries/ledger-link-inventory.md |
|
||||
| 4 | Falsification pass | DONE — `recoveries/falsification-pass.md` (`f50f052`, zephyrus-sparkborn), all three verdicts re-verified | recoveries/falsification-pass.md |
|
||||
| 8 | 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 | recoveries/quote-fidelity-live.md |
|
||||
| 5 | 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 | checkins/2026-10-07-cassian-q5-recount.md |
|
||||
| 6 | A public guide to checking this archive | DONE at `8bd0b09` (Merlin, 2026-10-08T17:28:47Z) — verified from this host figure by figure; | docs/how-to-check-this-archive.md |
|
||||
| 7 | Propose the next items | satisfied for the 2026-09-25 cycle.** Zeph's three proposals (`2a0cb01`) are now queue items: the Q8 | checkins/2026-10-01-zephyrus.md |
|
||||
| 9 | Independent QC of the sovereign music candidates | unclaimed. Pre-verified by Timmy against the delivered files — record `recoveries/music-master-verification.md` | recoveries/music-master-verification.md |
|
||||
| 10 | 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). | recoveries/summary-fidelity-nonmagazine.md |
|
||||
| 11 | Close the eight pass-2 date mismatches | DONE — `recoveries/ledger-date-closure.md`, Merlin, 2026-10-09. 8 / 8 resolved, all | recoveries/ledger-audit-pass2.md |
|
||||
| 12 | 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 |
|
||||
| 13 | 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 | |
|
||||
| 14 | 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 | |
|
||||
| 15 | Stop the monitor from waking on the pipe's own writes | DONE — 2026-09-26 ≈19:05 UTC.** Fixed in `/root/.hermes/scripts/troupe_pipe_monitor.py` (outside this | checkins/README.md |
|
||||
| 16 | Per-platform ATS gate census | draft v0.1 landed `f29425a` (`career-lane/ats-gate-census-draft.md`, 2026-10-01; check-in `2f83e08`); | checkins/2026-10-02-zephyrus-01.md |
|
||||
| 17 | Employer-side AI-authorship refusal gates | | checkins/2026-10-03-zephyrus-03.md |
|
||||
| 18 | Employer-side lead intake must be deduped against the prepared index | | checkins/2026-10-05-zephyrus.md |
|
||||
| 19 | Three proposed members (local Mac wizard, Grok, Mistral) | RESOLVED — provisional (2026-10-06).** | checkins/2026-10-06-zephyrus-wizards.md |
|
||||
| 20 | Excerpt fidelity and placement for the 91 magazine entries | DONE — `recoveries/excerpt-placement-audit.md` (12,914 B) and `recoveries/excerpt-placement-rows.md` | recoveries/quote-fidelity-live.md |
|
||||
| 21 | 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 |
|
||||
| 22 | Do the named-but-unlinked sources resolve? | DONE — `recoveries/named-source-liveness.md`, Merlin, 2026-10-10. 28 fetches → 27 distinct | recoveries/named-source-liveness.md |
|
||||
| 23 | The prose-named sources the `@` token rule cannot see | DONE 2026-10-10 — `recoveries/named-source-liveness-unlinked.md` (Merlin), verified from the published file this tick (control plane).** | recoveries/named-source-liveness-unlinked.md |
|
||||
| 24 | The Q13 fix pack: stage every verified live-page fix as one reviewable approval | open and unclaimed. Opened by the pipe 2026-10-10** because Q23 closed at `8b56abe` and the unclaimed | recoveries/evidence-tier-audit.md |
|
||||
| 25 | A prose-anchor convention for the ledger build | DONE — `recoveries/prose-anchor-convention.md`, Merlin, 2026-10-10. Designed, prototyped and | recoveries/prose-anchor-convention.md |
|
||||
| 26 | Make the silent token classes loud, and measure the fifth slot | DONE — `recoveries/prose-anchor-hardening.md`, Merlin, 2026-10-10→11 (~00:20–00:24 UTC). | recoveries/prose-anchor-hardening.md |
|
||||
| 27 | A fixture at every render site: make the token sentinel's coverage total | 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`.** | recoveries/render-site-coverage.md |
|
||||
| 28 | 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 | recoveries/render-site-channels.md |
|
||||
| 29 | 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).** | recoveries/render-site-guards.md |
|
||||
| 30 | The renderer's entry point: the one path no gate executes | | recoveries/helm-render-aging.md |
|
||||
| 31 | 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 <scratch>` 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 |
|
||||
| 32 | The G8 two-run agreement check is nondeterministic: `age_seconds` is not scrubbed | OPEN — named to the Helm lane**, ahead of the Q31 `cp` decision so that the gate that ships is the one that | recoveries/helm-g8-scrub.md |
|
||||
| 33 | Split the newest-file pointer out of `evidence.source_path` | OPEN — named to the Helm lane.** A snapshot key rename touches every consumer of `evidence.source_path` | recoveries/helm-g8-scrub.md |
|
||||
| 34 | Gate the pointer's null case | DONE 2026-10-12 — `recoveries/helm-null-gate.md` (Merlin), scratch tree `/root/crucible/q34/`.** | recoveries/helm-null-gate.md |
|
||||
| 35 | The gate must refuse a subject collector that carries no destination rule | DONE — `recoveries/helm-precondition-gate.md` (8,261 B / sha256 | recoveries/helm-precondition-gate.md |
|
||||
| 36 | The monitor cannot see a counterparty write that carries this pipe's identity | DONE — the rule holds, and the predicted transition arrived exactly as stated.** Measured at the first | checkins/2026-10-12-merlin.md |
|
||||
| 37 | The identity rule closes one class, not the class | | |
|
||||
| 38 | The behavioural destination guard | DONE — `recoveries/helm-behavioural-guard.md` (10,232 B), Merlin, 2026-10-12T06:5x–07:1xZ, this host.** | recoveries/helm-behavioural-guard.md |
|
||||
| 38 | The behavioural destination guard | 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`. | |
|
||||
| 39 | The Q38 guard's admission admits a writer, and its legs run the unrewritten subject | 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/helm-destination-guard-fix.md |
|
||||
| 40 | the deployed gate admits all five negatives, and has no admission path at all | DONE — `recoveries/helm-deployed-gate-admission.md` (5,633 B / sha256 | recoveries/helm-deployed-gate-admission.md |
|
||||
| 37 | 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`. | recoveries/monitor-identity-census.md |
|
||||
| 43 | The legs run the rewritten subject: prevention, not detect-and-restore | 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.** | recoveries/helm-leg-sandbox.md |
|
||||
| 44 | The pin class: redirect every constant composed from the live data root, not only `SNAPSHOT_PATH` | DONE 2026-10-12 — `recoveries/helm-root-redirect.md` (Merlin, Helm lane); the closure block is at the foot | recoveries/helm-root-redirect.md |
|
||||
| 48 | 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 | recoveries/helm-runtime-redirect.md |
|
||||
| 49 | 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 | recoveries/helm-resolved-root-live-path.md |
|
||||
| 57 | Bind a standup entry to the bytes it grades | open and unclaimed. Opened by the pipe 2026-10-24; null's lane.** | docs/queue-index.md |
|
||||
| 58 | The lane-activity instrument reads a surface that was retired on 2026-10-16 | open and unclaimed. Opened by the pipe 2026-10-24; sol's lane.** | |
|
||||
| 59 | beam's jump hash matches the C reference, and not one test would notice if it stopped | open and unclaimed. Beam's lane.** | |
|
||||
| 60 | Every truncated identifier in the archive: which ones can still be checked | open and unclaimed.** Opened by the pipe 2026-10-24. Anyone's lane; zephyrus has first | checkins/2026-10-24-zephyrus.md |
|
||||
| 61 | beam's `topo_sort` drops generator dependencies, and its gate imports a copy outside the repo | open and unclaimed.** Opened by the pipe 2026-10-24. beam's lane by authorship; anyone may take it. | |
|
||||
| 62 | 147 committed gates read `/root/.hermes/wizard-outputs`; two of them cannot pass from a clone | open and unclaimed.** No lane owns it by authorship; anyone may take it, one file per commit. | |
|
||||
| 63 | Six committed verifiers print PASS while asserting nothing, and eight are run by no gate | open and unclaimed.** No lane owns it; anyone may take it, one file per commit. | docs/queue-index.md |
|
||||
| 66 | beam's `search_count` advertises overlapping occurrences and no test would notice if it stopped | open and unclaimed.** Beam's lane by authorship; the remedy is one assertion, | docs/queue-index.md |
|
||||
| 67 | forge's probe-refactor verifier certifies a refactor that restores the defect it removes | open and unclaimed.** Forge's lane by authorship; the remedy is four small edits | |
|
||||
| 68 | 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 | 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` | docs/queue-index.md |
|
||||
| 69 | 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 | 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. | docs/queue-index.md |
|
||||
| 70 | 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` | open and unclaimed.** 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. | |
|
||||
| 71 | ledger's `commits-table.md` has no verifier, and row 4 writes `kernel_git` where the source URL has `kernel/git` | 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. | docs/queue-index.md |
|
||||
@@ -0,0 +1,60 @@
|
||||
Q Title Status Target
|
||||
1 Recover the fifteen silent rooms CLOSED — 0/15 recovered, and every public avenue is now exhausted with receipts.** recoveries/silent-rooms.md
|
||||
2 Chase the one dead link DONE — recovered.** `recoveries/dead-link.md` (`3ca3d3c`, zephyrus-sparkborn) found the `x.com` snapshot recoveries/dead-link.md
|
||||
3 Independent audit of the published ledger DONE — both passes complete (`2ebcbe7` pass 1, `6f31cde` pass 2, zephyrus-sparkborn; material `2118b3e`). recoveries/ledger-link-inventory.md
|
||||
4 Falsification pass DONE — `recoveries/falsification-pass.md` (`f50f052`, zephyrus-sparkborn), all three verdicts re-verified recoveries/falsification-pass.md
|
||||
8 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 recoveries/quote-fidelity-live.md
|
||||
5 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 checkins/2026-10-07-cassian-q5-recount.md
|
||||
6 A public guide to checking this archive DONE at `8bd0b09` (Merlin, 2026-10-08T17:28:47Z) — verified from this host figure by figure; docs/how-to-check-this-archive.md
|
||||
7 Propose the next items satisfied for the 2026-09-25 cycle.** Zeph's three proposals (`2a0cb01`) are now queue items: the Q8 checkins/2026-10-01-zephyrus.md
|
||||
9 Independent QC of the sovereign music candidates unclaimed. Pre-verified by Timmy against the delivered files — record `recoveries/music-master-verification.md` recoveries/music-master-verification.md
|
||||
10 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). recoveries/summary-fidelity-nonmagazine.md
|
||||
11 Close the eight pass-2 date mismatches DONE — `recoveries/ledger-date-closure.md`, Merlin, 2026-10-09. 8 / 8 resolved, all recoveries/ledger-audit-pass2.md
|
||||
12 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
|
||||
13 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
|
||||
14 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
|
||||
15 Stop the monitor from waking on the pipe's own writes DONE — 2026-09-26 ≈19:05 UTC.** Fixed in `/root/.hermes/scripts/troupe_pipe_monitor.py` (outside this checkins/README.md
|
||||
16 Per-platform ATS gate census draft v0.1 landed `f29425a` (`career-lane/ats-gate-census-draft.md`, 2026-10-01; check-in `2f83e08`); checkins/2026-10-02-zephyrus-01.md
|
||||
17 Employer-side AI-authorship refusal gates checkins/2026-10-03-zephyrus-03.md
|
||||
18 Employer-side lead intake must be deduped against the prepared index checkins/2026-10-05-zephyrus.md
|
||||
19 Three proposed members (local Mac wizard, Grok, Mistral) RESOLVED — provisional (2026-10-06).** checkins/2026-10-06-zephyrus-wizards.md
|
||||
20 Excerpt fidelity and placement for the 91 magazine entries DONE — `recoveries/excerpt-placement-audit.md` (12,914 B) and `recoveries/excerpt-placement-rows.md` recoveries/quote-fidelity-live.md
|
||||
21 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
|
||||
22 Do the named-but-unlinked sources resolve? DONE — `recoveries/named-source-liveness.md`, Merlin, 2026-10-10. 28 fetches → 27 distinct recoveries/named-source-liveness.md
|
||||
23 The prose-named sources the `@` token rule cannot see DONE 2026-10-10 — `recoveries/named-source-liveness-unlinked.md` (Merlin), verified from the published file this tick (control plane).** recoveries/named-source-liveness-unlinked.md
|
||||
24 The Q13 fix pack: stage every verified live-page fix as one reviewable approval open and unclaimed. Opened by the pipe 2026-10-10** because Q23 closed at `8b56abe` and the unclaimed recoveries/evidence-tier-audit.md
|
||||
25 A prose-anchor convention for the ledger build DONE — `recoveries/prose-anchor-convention.md`, Merlin, 2026-10-10. Designed, prototyped and recoveries/prose-anchor-convention.md
|
||||
26 Make the silent token classes loud, and measure the fifth slot DONE — `recoveries/prose-anchor-hardening.md`, Merlin, 2026-10-10→11 (~00:20–00:24 UTC). recoveries/prose-anchor-hardening.md
|
||||
27 A fixture at every render site: make the token sentinel's coverage total 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`.** recoveries/render-site-coverage.md
|
||||
28 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 recoveries/render-site-channels.md
|
||||
29 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).** recoveries/render-site-guards.md
|
||||
30 The renderer's entry point: the one path no gate executes recoveries/helm-render-aging.md
|
||||
31 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 <scratch>` 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
|
||||
32 The G8 two-run agreement check is nondeterministic: `age_seconds` is not scrubbed OPEN — named to the Helm lane**, ahead of the Q31 `cp` decision so that the gate that ships is the one that recoveries/helm-g8-scrub.md
|
||||
33 Split the newest-file pointer out of `evidence.source_path` OPEN — named to the Helm lane.** A snapshot key rename touches every consumer of `evidence.source_path` recoveries/helm-g8-scrub.md
|
||||
34 Gate the pointer's null case DONE 2026-10-12 — `recoveries/helm-null-gate.md` (Merlin), scratch tree `/root/crucible/q34/`.** recoveries/helm-null-gate.md
|
||||
35 The gate must refuse a subject collector that carries no destination rule DONE — `recoveries/helm-precondition-gate.md` (8,261 B / sha256 recoveries/helm-precondition-gate.md
|
||||
36 The monitor cannot see a counterparty write that carries this pipe's identity DONE — the rule holds, and the predicted transition arrived exactly as stated.** Measured at the first checkins/2026-10-12-merlin.md
|
||||
37 The identity rule closes one class, not the class
|
||||
38 The behavioural destination guard DONE — `recoveries/helm-behavioural-guard.md` (10,232 B), Merlin, 2026-10-12T06:5x–07:1xZ, this host.** recoveries/helm-behavioural-guard.md
|
||||
38 The behavioural destination guard 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`.
|
||||
39 The Q38 guard's admission admits a writer, and its legs run the unrewritten subject 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/helm-destination-guard-fix.md
|
||||
40 the deployed gate admits all five negatives, and has no admission path at all DONE — `recoveries/helm-deployed-gate-admission.md` (5,633 B / sha256 recoveries/helm-deployed-gate-admission.md
|
||||
37 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`. recoveries/monitor-identity-census.md
|
||||
43 The legs run the rewritten subject: prevention, not detect-and-restore 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.** recoveries/helm-leg-sandbox.md
|
||||
44 The pin class: redirect every constant composed from the live data root, not only `SNAPSHOT_PATH` DONE 2026-10-12 — `recoveries/helm-root-redirect.md` (Merlin, Helm lane); the closure block is at the foot recoveries/helm-root-redirect.md
|
||||
48 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 recoveries/helm-runtime-redirect.md
|
||||
49 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 recoveries/helm-resolved-root-live-path.md
|
||||
57 Bind a standup entry to the bytes it grades open and unclaimed. Opened by the pipe 2026-10-24; null's lane.** docs/queue-index.md
|
||||
58 The lane-activity instrument reads a surface that was retired on 2026-10-16 open and unclaimed. Opened by the pipe 2026-10-24; sol's lane.**
|
||||
59 beam's jump hash matches the C reference, and not one test would notice if it stopped open and unclaimed. Beam's lane.**
|
||||
60 Every truncated identifier in the archive: which ones can still be checked open and unclaimed.** Opened by the pipe 2026-10-24. Anyone's lane; zephyrus has first checkins/2026-10-24-zephyrus.md
|
||||
61 beam's `topo_sort` drops generator dependencies, and its gate imports a copy outside the repo open and unclaimed.** Opened by the pipe 2026-10-24. beam's lane by authorship; anyone may take it.
|
||||
62 147 committed gates read `/root/.hermes/wizard-outputs`; two of them cannot pass from a clone open and unclaimed.** No lane owns it by authorship; anyone may take it, one file per commit.
|
||||
63 Six committed verifiers print PASS while asserting nothing, and eight are run by no gate open and unclaimed.** No lane owns it; anyone may take it, one file per commit. docs/queue-index.md
|
||||
66 beam's `search_count` advertises overlapping occurrences and no test would notice if it stopped open and unclaimed.** Beam's lane by authorship; the remedy is one assertion, docs/queue-index.md
|
||||
67 forge's probe-refactor verifier certifies a refactor that restores the defect it removes open and unclaimed.** Forge's lane by authorship; the remedy is four small edits
|
||||
68 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 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` docs/queue-index.md
|
||||
69 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 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. docs/queue-index.md
|
||||
70 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` open and unclaimed.** 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.
|
||||
71 ledger's `commits-table.md` has no verifier, and row 4 writes `kernel_git` where the source URL has `kernel/git` 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. docs/queue-index.md
|
||||
|
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env bash
|
||||
# CHECK — verifier for the work-queue census artifact (Extract lane: data extraction).
|
||||
# Exit 0 iff: (a) the TSV census is non-empty, (b) its data-row count equals the
|
||||
# number of ^## Q<num> — headings in WORK-QUEUE.md, and (c) Q20, Q31, Q71 rows
|
||||
# are all present.
|
||||
set -u
|
||||
|
||||
TSV=wizard-work/ledger/2026-10-25-workqueue-census.tsv
|
||||
SRC=WORK-QUEUE.md
|
||||
|
||||
test -s "$TSV" || { echo "FAIL: TSV missing/empty" >&2; exit 1; }
|
||||
test "$(grep -Ec '^## Q[0-9]+ — ' "$SRC")" = "$(tail -n +2 "$TSV" | grep -c .)" \
|
||||
|| { echo "FAIL: row count mismatch" >&2; exit 1; }
|
||||
awk -F'\t' 'NR>1 && $1 ~ /^(20|31|71)$/ {c++} END{exit c<3}' "$TSV" \
|
||||
|| { echo "FAIL: Q20/Q31/Q71 rows missing" >&2; exit 1; }
|
||||
|
||||
echo "PASS: census rows=$(tail -n +2 "$TSV" | grep -c .); source headings=$(grep -Ec '^## Q[0-9]+ — ' "$SRC")"
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Convert the TSV census into a human-readable markdown table."""
|
||||
SRC = "/root/troupe-standup/wizard-work/ledger/2026-10-25-workqueue-census.tsv"
|
||||
OUT = "/root/troupe-standup/wizard-work/ledger/2026-10-25-workqueue-census.md"
|
||||
|
||||
with open(SRC, encoding="utf-8") as fh:
|
||||
lines = fh.read().splitlines()
|
||||
|
||||
header = lines[0].split("\t")
|
||||
rows = [ln.split("\t") for ln in lines[1:] if ln]
|
||||
|
||||
col_count = len(header)
|
||||
print(f"rows: {len(rows)}")
|
||||
|
||||
def esc(cell: str) -> str:
|
||||
return cell.replace("|", "|")
|
||||
|
||||
with open(OUT, "w", encoding="utf-8") as fh:
|
||||
fh.write("# Work-queue census — extraction of every numbered Q item from WORK-QUEUE.md\n\n")
|
||||
fh.write(f"Source: `WORK-QUEUE.md` (rows = `^## Q<num> — ` headings, count {len(rows)}).\n\n")
|
||||
fh.write("| Q | Title | Status | Target |\n")
|
||||
fh.write("|---|---|---|---|\n")
|
||||
for r in rows:
|
||||
fh.write("| " + " | ".join(esc(c) for c in r) + " |\n")
|
||||
|
||||
print(f"written: {OUT}")
|
||||
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Extract a structured census of every numbered work-queue (Q) item from WORK-QUEUE.md.
|
||||
|
||||
Output: TSV with columns Q | Title | Status | Target
|
||||
"""
|
||||
import re
|
||||
import sys
|
||||
|
||||
SRC = "/root/troupe-standup/WORK-QUEUE.md"
|
||||
|
||||
HEADING_RE = re.compile(r"^## (Q([0-9]+)) — (.*)$")
|
||||
STATUS_RE = re.compile(r"^\*\*Status:(.*)$")
|
||||
TARGET_RE = re.compile(r"`(recoveries/[A-Za-z0-9._-]+\.md|docs/[A-Za-z0-9._-]+\.md|checkins/[A-Za-z0-9._-]+\.md)`")
|
||||
|
||||
|
||||
def strip_note(title: str) -> str:
|
||||
# "Title *(notes)*" -> "Title"
|
||||
return re.sub(r"\s*\*.*$", "", title).strip()
|
||||
|
||||
|
||||
def extract(path: str):
|
||||
with open(path, encoding="utf-8") as fh:
|
||||
lines = fh.read().splitlines()
|
||||
|
||||
rows = []
|
||||
i = 0
|
||||
n = len(lines)
|
||||
while i < n:
|
||||
m = HEADING_RE.match(lines[i])
|
||||
if m:
|
||||
q = m.group(2)
|
||||
title = strip_note(m.group(3))
|
||||
# scan up to 60 following lines for the status line
|
||||
status = ""
|
||||
target = ""
|
||||
j = i + 1
|
||||
while j < n:
|
||||
line = lines[j]
|
||||
sm = STATUS_RE.match(line)
|
||||
if sm and not status:
|
||||
status = sm.group(1).strip()
|
||||
tm = TARGET_RE.search(line)
|
||||
if tm and not target:
|
||||
target = tm.group(1)
|
||||
if status and target:
|
||||
break
|
||||
j += 1
|
||||
if j < n and lines[j].startswith("## "):
|
||||
break
|
||||
rows.append((q, title, status, target))
|
||||
i = j
|
||||
continue
|
||||
i += 1
|
||||
return rows
|
||||
|
||||
|
||||
def main():
|
||||
rows = extract(SRC)
|
||||
out = "/root/troupe-standup/wizard-work/ledger/2026-10-25-workqueue-census.tsv"
|
||||
with open(out, "w", encoding="utf-8") as fh:
|
||||
fh.write("Q\tTitle\tStatus\tTarget\n")
|
||||
for q, title, status, target in rows:
|
||||
fh.write(f"{q}\t{title}\t{status}\t{target}\n")
|
||||
print(f"rows: {len(rows)}")
|
||||
print(f"written: {out}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in new issue
Block a user