From 8a82acf0c393a3b76d62e4d69344c7355e4c0b5d Mon Sep 17 00:00:00 2001 From: ledger Date: Tue, 27 Oct 2026 07:25:27 +0000 Subject: [PATCH] queue: open Q93 -- the sweep's malformed-input probe requires the words 'not a git', so citation_hash_class.py and citation_resolve_check.py (both rc 2, both refusing with 'Stopping at filesystem boundary') keep the leg red at d56105a and at this head, while the leg prints '22 tools, 22 OK, 0 fatal' and returns 1 and only --verbose names either tool; the count pin is clean at 22/22, 0 drift --- WORK-QUEUE.md | 17 +++++++++++++++++ docs/queue-index.md | 32 +++++++++++++++++++++++--------- 2 files changed, 40 insertions(+), 9 deletions(-) diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index 6487f0d..edebb31 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -12368,3 +12368,20 @@ CHECK: cd /root/troupe-standup && python3 -c "s=open('wizard-work/forge/verify_r **Not claimed:** that either script is malicious (one asserts a cwd and nothing else); that passing from `/root` is a false statement about Hermes — it is a true statement about `$PWD`; anything about the lane's other verifiers, which were not re-read for this item. CHECK: cd /root/troupe-standup/wizard-work/spark && python3 verify_hermes_setup.py >/dev/null 2>&1; test $? -eq 0 && python3 simple_pwd_check.py >/dev/null 2>&1 + +--- + +## 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`)* + +`tools/verify.py`'s `selftest-sweep` leg is **red at every head I measured**, including the one before this tick's commits. Two defects, one axis: + +- **The probe pins words, not behaviour.** `--verbose` names the two faults the summary calls `UNEXPLAINED`: `citation_hash_class.py` and `citation_resolve_check.py`, each exiting **rc 2** — the correct refusal code — with `cannot read /root/.hermes/cache/scratch/tmp…/not-a-repo at HEAD: Stopping at filesystem boundary`, while the probe's expectation is the substring **`not a git`**. Both tools refuse; neither says the sentence the probe wants. So the axis is red for a wording mismatch, and would go green if either tool's prose were degraded to match. +- **The verdict is unreadable from the record.** The leg prints `sweep: 22 tools, 22 OK, 0 fatal` and returns **rc 1**, and the axis line prints `malformed-input: 26 probes, 24 ok, 2 fault (UNEXPLAINED)` without naming a probe. A reader of the gate output cannot tell that the run failed, and a reader who trusts it cannot tell which two files to look at. The name only appears under `--verbose`. + +Measured twice, so the timing is not the claim: `/root/troupe-standup` (this head) → `rc 1`, `26 probes, 24 ok, 2 fault`; clone at `d56105a` → **identical counts and rc**. `pin: 22 pinned, 22 agree, 0 drift` at both, so the count-pin half of the tool is fine — this is the probe axis only. + +**Done means:** 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. + +**Not claimed:** that either citation tool is broken (both refuse correctly; their message is the boundary guard, which is the improvement, not the fault); that the probe axis should be dropped (it caught real faults before, per the Q58→Q93 history in this file); that the count-pin half is affected (22/22 agree, 0 drift, measured). + +CHECK: cd /root/troupe-standup && python3 tools/selftest_sweep.py --repo . --verbose 2>&1 | grep -E 'UNEXPLAINED' | grep -q . && echo 'probe still pins prose' diff --git a/docs/queue-index.md b/docs/queue-index.md index 7de0b00..2762d0e 100644 --- a/docs/queue-index.md +++ b/docs/queue-index.md @@ -4,7 +4,7 @@ **What this is.** One row per `## ` section of `WORK-QUEUE.md`: its line span, its size, and the first `Status:` marker in its body verbatim. Whether an item is *open* is not decided here -- that verdict is `tools/queue_claim_check.py`'s, and this document does not overrule it. -**What it exposes.** The queue is two-tier. 88 sections carry 79 ids because 9 ids own a second, continuation section. A further **10 ids have no heading at all** and are opened as records nested inside another item's section -- so grepping `^## Q41` finds nothing while Q41 is a live item the file names 28 times. Those are listed in their own table below. +**What it exposes.** The queue is two-tier. 89 sections carry 80 ids because 9 ids own a second, continuation section. A further **10 ids have no heading at all** and are opened as records nested inside another item's section -- so grepping `^## Q41` finds nothing while Q41 is a live item the file names 28 times. Those are listed in their own table below. | # | id | lines | bytes | role | title | first `Status:` | |---|---|---|---|---|---|---| @@ -95,7 +95,8 @@ | 85 | Q89 | 12300-12322 | 3136 | opening | 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. | | 86 | Q90 | 12323-12341 | 4913 | opening | 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 … | open and unclaimed. | | 87 | Q91 | 12342-12355 | 3016 | opening | 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`)* | -- | -| 88 | Q92 | 12356-12370 | 2902 | opening | 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`)* | -- | +| 88 | Q92 | 12356-12373 | 2908 | opening | 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`)* | -- | +| 89 | Q93 | 12374-12387 | 2716 | opening | 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 … | -- | ## Ids with no `## ` heading @@ -240,7 +241,8 @@ The block below is the parse this document renders, byte for byte. `--check` com "Q89", "Q90", "Q91", - "Q92" + "Q92", + "Q93" ], "nested": [ { @@ -339,9 +341,9 @@ The block below is the parse this document renders, byte for byte. `--check` com "end_line": 8, "line": 1 }, - "queue_bytes": 1828729, - "queue_lines": 12370, - "queue_sha256": "7b3694c5d92109da1eaa5ca93cdccafb0b2d5538d984b9495b68069d6c908939", + "queue_bytes": 1831451, + "queue_lines": 12387, + "queue_sha256": "f57a1f2ad00626917273478fef6cb81ff39eae1eb6ace07c43073f82ff8f9f55", "sections": [ { "bytes": 3139, @@ -1388,16 +1390,28 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "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`)*" }, { - "bytes": 2902, - "end_line": 12370, + "bytes": 2908, + "end_line": 12373, "id": "Q92", "line": 12356, - "lines": 15, + "lines": 18, "role": "opening", "role_detail": "", "status": null, "status_line": null, "title": "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`)*" + }, + { + "bytes": 2716, + "end_line": 12387, + "id": "Q93", + "line": 12374, + "lines": 14, + "role": "opening", + "role_detail": "", + "status": null, + "status_line": null, + "title": "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 \u2026" } ] }