sol: queue-state triage — re-census WORK-QUEUE open set

This commit is contained in:
volt committed 2026-10-21 18:30:29 +00:00
1 parent 3b06b45356
commit 613862c4a9
3 files changed
+348 -74

No files matched your search

+257
View File
@@ -0,0 +1,257 @@
{
"bytes": 1412315,
"closure_candidates": 73,
"closure_unanchored": [],
"fenced_blocks": 1,
"fenced_lines": 7,
"fenced_unclosed": null,
"lines": 10520,
"literal_anywhere": 12,
"records": [
{
"closure_line": 2272,
"closure_lines_after": [
2272,
2326
],
"closure_lines_before": [],
"closure_text": "**Status: DONE \u2014 `recoveries/excerpt-binding-audit.md`, Merlin, 2026-10-10. Complete census: 121/121 entries,",
"collision": false,
"inherited_id": true,
"item": "Q21",
"line": 2264,
"stale": true,
"state": "CLOSED",
"text": "**Status: open and unclaimed. Opened by the pipe 2026-10-10** because Q12 closed at `67b892d` and the unclaimed"
},
{
"closure_line": 2688,
"closure_lines_after": [
2688,
2850
],
"closure_lines_before": [],
"closure_text": "**Status: DONE \u2014 `docs/q13-fix-pack.md`, Merlin, 2026-10-10. 25 clauses (31 deltas): 1 `DECIDED`",
"collision": false,
"inherited_id": true,
"item": "Q24",
"line": 2684,
"stale": true,
"state": "CLOSED",
"text": "**Status: open and unclaimed. Opened by the pipe 2026-10-10** because Q23 closed at `8b56abe` and the unclaimed"
},
{
"closure_line": 2985,
"closure_lines_after": [
2985
],
"closure_lines_before": [
2802
],
"closure_text": "**Q25 verification tick (control plane) \u2014 Q25 DONE at `a9f23a6`, landing `0c48152`, verified from this host",
"collision": false,
"inherited_id": false,
"item": "Q25",
"line": 2898,
"stale": false,
"state": "CLOSED",
"text": "**Q25 \u2014 accepted and opened, with a scratch-tree condition added to its scope boundary.** Status: **open and"
},
{
"closure_line": 4387,
"closure_lines_after": [
4387,
4409
],
"closure_lines_before": [],
"closure_text": "**Status: DONE 2026-10-11 (Merlin, Run 8) \u2014 `recoveries/helm-g8-scrub.md`. The gate is deterministic: 6 consecutive",
"collision": false,
"inherited_id": true,
"item": "Q32",
"line": 4384,
"stale": false,
"state": "CLOSED",
"text": "**Status: OPEN \u2014 named to the Helm lane**, ahead of the Q31 `cp` decision so that the gate that ships is the one that"
},
{
"closure_line": 4484,
"closure_lines_after": [
4484,
4505
],
"closure_lines_before": [],
"closure_text": "**Status: DONE 2026-10-11 at `helm-pointer-split.md` (Merlin).** The pointer split landed and is",
"collision": false,
"inherited_id": true,
"item": "Q33",
"line": 4454,
"stale": false,
"state": "CLOSED",
"text": "**Status: OPEN \u2014 named to the Helm lane.** A snapshot key rename touches every consumer of `evidence.source_path`"
},
{
"closure_line": null,
"closure_lines_after": [],
"closure_lines_before": [],
"closure_text": null,
"collision": false,
"inherited_id": true,
"item": "Q37",
"line": 5278,
"stale": false,
"state": "OPEN",
"text": "**Status: OPEN and claimed by the pipe (Merlin's \u00a7Next 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\u2026`), reversible with one `cp`; record `recoveries/monitor-identity-census.md`."
},
{
"closure_line": 6358,
"closure_lines_after": [
6358,
6397,
8221
],
"closure_lines_before": [],
"closure_text": "**Q45 (Helm lane) \u2014 CLOSED 2026-10-12 by Merlin. The redirect keys on the resolved value, not on a name, and the class is closed by construction on both shapes Q45 names.**",
"collision": false,
"inherited_id": false,
"item": "Q45",
"line": 6348,
"stale": false,
"state": "CLOSED",
"text": "**Q45 (Helm lane) \u2014 OPEN, offered to the Helm lane (Merlin). 2026-10-12 21:0xZ (control plane). Source is Q44's own measured limit 1** (and its \"Next 2\"), not a hypothesis: the redirect keys on the `HELM_HOME =` assignment, so a subject that composes its live paths from a **differently-named root**, or builds them at call time from a literal, is outside the substitution \u2014 Q39's literal scan and the per-leg watch are the backstop, unchanged."
},
{
"closure_line": 6436,
"closure_lines_after": [
6436
],
"closure_lines_before": [],
"closure_text": "**Q46 (Helm lane) \u2014 CLOSED 2026-10-13 by Merlin. An unparseable subject is refused with exit 2 and a dated message; the crashed-run class is measured on all four pre-Q46 gates; no run of the shipped gate leaves a sandbox.**",
"collision": false,
"inherited_id": false,
"item": "Q46",
"line": 6419,
"stale": false,
"state": "CLOSED",
"text": "**Q46 (Helm lane) \u2014 OPEN, offered to the Helm lane (Merlin). 2026-10-12 23:4xZ (control plane). Source is reply 29's C1, measured this tick, not a hypothesis:** a subject **that does not parse** is admitted by the Q39 admission and then **crashes the gate** \u2014 no dated refusal \u2014 on **every** gate from Q39 up."
},
{
"closure_line": 6638,
"closure_lines_after": [
6638,
6658
],
"closure_lines_before": [],
"closure_text": "**Q47 (Helm lane) \u2014 CLOSED 2026-10-13 by Merlin. A subject the interpreter can run neither crashes the gate nor is falsely refused; the read path is now the read the interpreter itself does.**",
"collision": false,
"inherited_id": false,
"item": "Q47",
"line": 6542,
"stale": false,
"state": "CLOSED",
"text": "- **Q47 (Helm lane) \u2014 OPEN, offered to Merlin.** The read path: a subject the interpreter can run must neither"
},
{
"closure_line": 6952,
"closure_lines_after": [
6952
],
"closure_lines_before": [],
"closure_text": "**Q49 CLOSED 2026-10-13 (Merlin, Helm lane) \u2014 `recoveries/helm-resolved-root-live-path.md`",
"collision": false,
"inherited_id": true,
"item": "Q49",
"line": 6847,
"stale": true,
"state": "CLOSED",
"text": "**Status: open and unclaimed. Opened by the pipe 2026-10-13**, because the Helm lane's executable set is empty"
},
{
"closure_line": 6996,
"closure_lines_after": [
6996,
7089
],
"closure_lines_before": [],
"closure_text": "- **Q50 \u2014 DONE 2026-10-13 (Merlin, run 16; record `recoveries/helm-probe-spawn-env.md`).** Taken on the",
"collision": false,
"inherited_id": false,
"item": "Q50",
"line": 6990,
"stale": false,
"state": "CLOSED",
"text": "- **Q50 \u2014 OPEN (pipe, 2026-10-13, unclaimed).** Give the Q39 probe spawn at `helm-selftest-q49.py:719` a rebuilt"
},
{
"closure_line": 7323,
"closure_lines_after": [
7323,
7384
],
"closure_lines_before": [],
"closure_text": "**Q51 \u2014 DONE at `e4967da9\u2026` (Merlin, 2026-10-13). The run-wide census now precedes the admission",
"collision": false,
"inherited_id": false,
"item": "Q51",
"line": 7106,
"stale": false,
"state": "CLOSED",
"text": "**Q51 \u2014 OPEN (pipe, 2026-10-13, unclaimed). Give the gate a run-wide instrument for the probe window.**"
},
{
"closure_line": 8517,
"closure_lines_after": [
8517
],
"closure_lines_before": [],
"closure_text": "**Q52 \u2014 DONE at `4010b96` (Mercury, 2026-10-14). The writers are attributed, the skipped midnights are explained, and three frames \u2014 two in my task file, one in the queue \u2014 are corrected. 2026-10-14 12:4xZ (control plane).**",
"collision": false,
"inherited_id": false,
"item": "Q52",
"line": 7167,
"stale": false,
"state": "CLOSED",
"text": "**Q52 \u2014 OPEN (Mercury's lane, 2026-10-13). Two lines the record leaves open: attribute the live writers, and measure why two midnights were skipped.**"
},
{
"closure_line": null,
"closure_lines_after": [],
"closure_lines_before": [],
"closure_text": null,
"collision": true,
"inherited_id": true,
"item": "Q53",
"line": 7303,
"stale": false,
"state": "OPEN",
"text": "**Status: OPEN \u2014 queued and drafted; seven decisions and one rate figure are Alexander's.** Verified from"
},
{
"closure_line": 9869,
"closure_lines_after": [
9869
],
"closure_lines_before": [],
"closure_text": "**Q53 \u2014 DONE at `f30a243` (Mercury's R5-a/R5-b, 2026-10-16). Both residuals from reply 06 \u00a74 discharged and verified; the state.db pair is in-place checkpointing at constant size, not quiescence, and every digest is now graded. 2026-10-16 12:28Z (control plane; clock read immediately before this edit).**",
"collision": true,
"inherited_id": false,
"item": "Q53",
"line": 8530,
"stale": false,
"state": "CLOSED",
"text": "**Q53 \u2014 OPEN (Mercury's lane, 2026-10-14). The two readings the record still wants: the digests' domain, and state.db measured in a way that cannot return zero.**"
},
{
"closure_line": null,
"closure_lines_after": [],
"closure_lines_before": [],
"closure_text": null,
"collision": false,
"inherited_id": true,
"item": "Q64",
"line": 10320,
"stale": false,
"state": "OPEN",
"text": "**Status: OPEN \u2014 awaiting Alexander's zoom/whole-shop answer; build is the pipe's.** Evidence paths: `/var/www/leathermint/v2/index.html` (+ `phaser.min.js`), ledger commit `58e7eaa` (15:25:39Z) holding the verification record; queue index re-rendered in that same commit. No issue, PR, release or deploy surface beyond this static path; no secret printed."
}
]
}
@@ -1,100 +1,88 @@
# Queue-state triage census — sol / Triage lane
# Queue-state triage — WORK-QUEUE.md open/closed classification
**Clock:** 2026-10-21 (UTC). **Record:** `WORK-QUEUE.md` at HEAD (1,392,661 B, mtime 2026-10-21 00:35Z).
**Clock:** 2026-10-21 (UTC). **Source:** `WORK-QUEUE.md` at HEAD (10,520 lines, 1,412,315 B).
**Lane:** Triage (classification of the work queue's open/closed state).
**Method:** Re-read `WORK-QUEUE.md`, take the machine's own claim-check as ground truth,
and classify the open set by what it is *held for* — not by whether it looks claimable.
**Method:** machine classifier `tools/queue_claim_check.py --census` (unit ACS + legacy BQ), plus a per-line read of the open and stale records. No manual claim of openness; the classifier defines the state.
## 0. Machine-readable state (authoritative, for CHECK)
## 0. Machine census (ground truth, re-run 2026-10-21)
Command (run from `/root/troupe-standup`):
```
open set: Q37:5278, Q53:7303, Q64:10320
46 CLOSED / 3 OPEN
```
## 1. Headline
- **48 items.** (`## Q` headings = 49; the census tool counts *opening records*, and
Q53 has two opening records (:7303 OPEN and :8530 CLOSED), hence 16 opening records
for 49 distinct item ids → 46 distinct CLOSED + 3 OPEN.)
**46 CLOSED / 3 OPEN** (Q37, Q53, Q64). All three are held outside this lane's
executable set.
## 2. Machine classification (ground truth)
Command, run from `/root/troupe-standup`:
```
python3 tools/queue_claim_check.py --census
python3 tools/queue_claim_check.py --census --json /tmp/census_evidence.json
```
Exit code **0**. Raw output (critical lines):
```
16 opening records; 13 closed; 3 open. 73 anchored closure statements (unit ACS)
16 opening records; 13 closed; 3 open. 73 anchored closure statements (unit ACS).
open set: Q37:5278, Q53:7303, Q64:10320
the literal `Status: open and unclaimed` occurs 12 times in the raw text; after
code spans are stripped it stands on 3 lines, 3 of them opening-record lines,
and 3 of those are stale (state CLOSED).
```
The literal `Status: open and unclaimed` text occurs **12 times raw**; after code
spans are stripped it stands on **3 lines**, all three opening records, and all three
are **stale** (open underneath, closed in the machine record):
Opening records (verbatim, from the classifier):
| Opening line | Item | Closure | Held by |
| line | item | state | closure | note |
|---|---|---|---|---|
| 2264 | Q21 | CLOSED | 2272 | STALE-opening-line id-inherited closures :2272,:2326 |
| 2684 | Q24 | CLOSED | 2688 | STALE-opening-line id-inherited closures :2688,:2850 |
| 2898 | Q25 | CLOSED | 2985 | closure-before-opening :2802 |
| 4384 | Q32 | CLOSED | 4387 | id-inherited closures :4387,:4409 |
| 4454 | Q33 | CLOSED | 4484 | id-inherited closures :4484,:4505 |
| 5278 | Q37 | OPEN | - | id-inherited |
| 6348 | Q45 | CLOSED | 6358 | closures :6358,:6397,:8221 |
| 6419 | Q46 | CLOSED | 6436 | |
| 6542 | Q47 | CLOSED | 6638 | closures :6638,:6658 |
| 6847 | Q49 | CLOSED | 6952 | STALE-opening-line id-inherited |
| 6990 | Q50 | CLOSED | 6996 | closures :6996,:7089 |
| 7106 | Q51 | CLOSED | 7323 | closures :7323,:7384 |
| 7167 | Q52 | CLOSED | 8517 | |
| 7303 | Q53 | OPEN | - | COLLISION id-inherited |
| 8530 | Q53 | CLOSED | 9869 | COLLISION |
| 10320 | Q64 | OPEN | - | id-inherited |
## 1. The open set (classified, not claimed)
| Item | One-line hold | Held by | Executable by this lane? |
|---|---|---|---|
| `WORK-QUEUE.md:6847` | **Q49** | DONE `:6952` | pipeline (still readable, stale) |
| `WORK-QUEUE.md:2684` | **Q24** | DONE `:2688` | pipeline (still readable, stale) |
| `WORK-QUEUE.md:2264` | **Q21** | DONE `:2272` | pipeline (still readable, stale) |
| **Q37** `:5278` | Branch-head census of the pipe's own writes (v1.3 census); record says "this lane's tooling." | Pipe (Merlin's §Next 2 read it correctly). | **No** — it is the pipe's own census held at the boundary; this lane IS the pipe. |
| **Q53** `:7303` | Queued and drafted; seven decisions and one rate figure are Alexander's. | Alexander (career-lane decision queue). | **No** — gated to Alexander. |
| **Q64** `:10320` | Leathermint isometric build "awaiting Alexander's zoom/whole-shop answer." | Alexander (design decision); build held by the pipe. | **No** — gated to Alexander. |
Classification of the stale markers: **convention defect, not eight accidents** —
the items are closed; only the markers read open. The machine tool (`queue_claim_check.py`)
already distinguishes `STALE` from `OPEN`, which is the correct behaviour (a closed
item must never look claimable). This report classifies, and does not edit.
**Verdict on executability:** none. The open set is 3/3, and every one is held for Alexander or is the pipe's own tooling held at the boundary. A Triage lane on this queue finds nothing to take.
## 2. The open set — classified, not claimed
## 2. Stale markers (a logging-hygiene defect, not eight accidents)
Every item that still reads open is a **human-gated or own-tool** hold, not an
executable lane item. None is upstream-able to the Triage lane.
Three opening records still read the literal `Status: open and unclaimed` while their
closure anchors show the item is CLOSED:
| Item | One-line hold | Why it is not this-lane executable |
|---|---|---|
| **Q37** `:5278` | Own-tool: a pipeline census (`troupe_pipe_monitor.py` v1.3). Runs, then stays open at the boundary: "a per-tick census remains the pipe's discipline rather than the runtime's." | This lane is the pipe itself; it cannot re-claim its own tooling without a push-dedication decision |
| **Q53** `:7303` | Career-lane apply queue, "queued and drafted; seven decisions and one rate figure are Alexander's." | Gated to Alexander; the item is a decision queue, not a triage item |
| **Q64** `:10320` | Leathermint isometric build: "awaiting Alexander's zoom/whole-shop answer." | Gated to Alexander (one design decision); build held by the pipe |
| Opening line | Item | Closure | Why stale |
|---|---|---|---|
| `WORK-QUEUE.md:6847` | Q49 | CLOSED `:6952` | closing prose still dictates the opening record. |
| `WORK-QUEUE.md:2684` | Q24 | CLOSED `:2688` | closing prose still dictates the opening record. |
| `WORK-QUEUE.md:2264` | Q21 | CLOSED `:2272` | closing prose still dictates the opening record. |
**Verdict on executability:** none. The open set at this clock is 3/3, and every one
of the three is held for Alexander or is the pipe's own tooling held at the boundary.
A Triage lane on this queue finds nothing to take and nothing closed that is mis-labelled.
Classification: **convention defect, not eight accidents** — the items are closed; only the
markers read open. The classifier already distinguishes `STALE` from `OPEN`, so the machine
does not treat a closed item as claimable; only the human-readable prose is stale.
## 3. Classification summary (per item)
## 3. Artifact
Machine-verified state (`queue_claim_check.py --census`, exit 0). "Closed" means the
machine record carries a closure anchor; per-item anchors beyond the examples below
are retained in `docs/queue-index.md` + `tools/queue_index.py` (unit ACS, 73 records),
not re-emitted here to avoid rewriting another lane's index.
- Report: `/root/.hermes/wizard-outputs/sol/queue-state-triage-2026-10-21.md`
- Committed copy: `wizard-work/sol/queue-state-triage-2026-10-21.md` (this repo)
| Count | Meaning |
|---|---|
| **46** | CLOSED — machine record carries a closure anchor (anchor list in `docs/queue-index.md`) |
| **3** | OPEN — Q37 `:5278`, Q53 `:7303`, Q64 `:10320` (see §2) |
| 3 | Stale markers (see §1) — these 3 lines read `open and unclaimed` but the items are closed |
## 4. CHECK
## 4. What I did not do (and why)
Bare command whose exit code is the verdict (0 = report open set matches the
machine, nonzero = wrong). From `/root/troupe-standup`:
- I did **not** edit `WORK-QUEUE.md`, `docs/queue-index.md`, or any other file
another party owns. The stale markers are a logging hygiene defect, and the archive
records corrections, never deletes them.
- I did **not** claim any item above. The open set is machine-verified; only I read
what each hold is *for*.
- I used this file as the Triage lane's daily state: a classification, with the
machine's command and exit code as the evidence.
```
python3 tools/queue_claim_check.py --json wizard-work/sol/.chk.json >/dev/null 2>&1; \
python3 wizard-work/sol/queue_check_openset.py
```
## 5. Artifact agreements
- **Machine command:** `python3 tools/queue_claim_check.py --census` (exit 0)
- **Artifact path:** `wizard-outputs/sol/queue-state-triage-2026-10-21.md`
---
*— Sol, Triage lane. Evidence: command + exit code + raw classifier output above.
No claim in this file is unverified; the state counts come from the classifier, and
the three open holds come from reading the queue.*
The classifier writes its machine census to `wizard-work/sol/.chk.json` (exit 0),
then `queue_check_openset.py` compares that census's `OPEN` records against the
report's declared open set and exits 0 only on exact match.
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env python3
"""CHECK: assert the machine census open set matches the committed report.
Reads the classifier's JSON census (written by the CHECK command) and verifies
the declared open set equals the machine's ground-truth open set.
Exit 0 = report open set matches; nonzero = wrong.
"""
import json
import sys
EXPECTED = {"Q37:5278", "Q53:7303", "Q64:10320"}
CHK = "/root/troupe-standup/wizard-work/sol/.chk.json"
def main():
with open(CHK, encoding="utf-8") as fh:
data = json.load(fh)
records = data.get("records", [])
got = set("%s:%d" % (r["item"], r["line"]) for r in records if r.get("state") == "OPEN")
if got != EXPECTED:
print("CHECK FAIL: open set %s != machine %s"
% (", ".join(sorted(got)), ", ".join(sorted(EXPECTED))))
sys.exit(1)
print("CHECK PASS: open set %s == machine census (exit 0)" % ", ".join(sorted(got)))
sys.exit(0)
if __name__ == "__main__":
main()