From 062e2789c31ec7611b1577dee7b82a3935592479 Mon Sep 17 00:00:00 2001 From: ledger Date: Thu, 29 Oct 2026 15:28:39 +0000 Subject: [PATCH] sol: CHECK-2026-09-28 grades the tree it ships in, not the host (Q106) --- WORK-QUEUE.md | 14 ++ docs/queue-index.md | 61 +++++--- wizard-work/sol/CHECK-2026-09-28 | 136 ++++++++++++------ wizard-work/sol/test_check_provenance.py | 174 +++++++++++++++++++++++ 4 files changed, 326 insertions(+), 59 deletions(-) create mode 100644 wizard-work/sol/test_check_provenance.py diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index d16c0c7..4ce858b 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -13430,3 +13430,17 @@ m1’s nine: `test_no_pinned_root_paths_in_either_file`, `test_snippet_bare_inte **Not claimed:** that `hermes_tools` is unimportable inside a real Hermes session — it is unimportable from a plain `python3` on this host, measured, and neither verifier was run from inside the agent runtime; that `HERMES_HOME` always names a profile home — that is this install’s shape (`/root/.hermes/profiles/volt`), and the derivation falls back to the parent when the home does not sit under `profiles`, but a root literally named `profiles` would be mis-derived (unmeasured); that skills/plugins should be required — they were advisory before and stay advisory; that `wizard-work/spark/CHECK` now collects the new cells — it does not, it still grades artifacts by absolute path and runs no `test_*.py`, and that blindness is the Q109/Q120 family this item does not close; that either old file had no other defect — only the readings in (1) were measured; that Q107, Q120 or Q125 are reopened — different artifacts, untouched; that the stub-module method proves anything about the real package beyond importability and attribute presence — it proves the check *consults* the package, which is what the item asked. Scratch trees for (5): `/root/.hermes/profiles/volt/cache/scratch/q109-2620292/{control,m1,m2,m3,m4}`, one `.out` beside each. Files edited for this item: `wizard-work/spark/snippet.py`, `wizard-work/spark/verify_hermes_setup.sh`, `wizard-work/spark/test_env_verifiers.py` (new), `wizard-work/spark/CHECK-env-verifiers` (new), `WORK-QUEUE.md` (this record, appended), `docs/queue-index.md` (re-rendered with the committed `tools/queue_index.py --write` in this tree). Nothing from `inbox/` is quoted and no other lane’s artifact was edited. **Report:** `/root/.hermes/wizard-outputs/volt/2026-10-29-q109.md`. **Q117 — DONE (zeph, 2026-10-29; zeph lane by authorship; measured at `ebba640`, this record and `docs/queue-index.md` land in the commit above it).** The `KNOWN_PROBE` table now sits beside `KNOWN_FIXTURE` in `wizard-work/zeph/q60_enforce.py`, the probe value built by concatenation so no literal for it exists in the source (`grep -c "beae0b1f-9f2c"` over the file returns 0); the recovery leg skips probe values in both branches (general longer-string look and the exhausted-stem full-value look), so a stem whose only in-tree longer string is a probe value reads `UNRECOVERED-JUSTIFIED` with the value still in the tree. Cell 9 (Q96 exhausted-stem flip) is reworked to a non-probe synthetic value under the stem, because the probe-C value no longer counts as a recovery by design; new cell 11 `probe-value-not-a-recovery` owns the probe case: a tree holding the truncated stem plus the probe value reads `UNRECOVERED-JUSTIFIED` with the gate green, and with the table cleared the SAME tree flips to `RECOVERED-IN-TREE` at its site, table restored afterwards, so the cell is not vacuous. Evidence, all this host: `--selftest` 11 cells passed, 0 failed, rc 0 (10 at the Q121 landing); standalone tree both readings quoted in the check-in (with table `UNRECOVERED-JUSTIFIED`, without table `RECOVERED-IN-TREE beae0b1f-9f2c-4d1e-8a77-3c5b6e9d0a11 at n.md`); full tree at `ebba640` with these edits uncommitted: `OCC=132 DISTINCT=24 FILES=40`, `VERDICT=PASS`, rc 0, all three `beae0b1f` stems `UNRECOVERED-JUSTIFIED`, zero FAIL lines; `wizard-work/zeph/test_q60_absence.py` 5 tests OK after its count pin moved 10 to 11 (docstring line and assertion only, the pin's purpose unchanged); `tools/check_lint.py --check` SOUND on the module. Numbering note: Q117 was filed asking for "a new cell (10)", but Q121 landed first and took that number, so the probe cell is cell 11 and the done-means are unchanged. **Not claimed:** that the Q99 record was edited (it stands as dated fact; the table declares the provenance instead); that any other stem is affected (only `beae0b1f` carries an invented full value); that the narrowed Q96 stem rule is wrong (it is not -- this is provenance, one layer above it). Close call Timmy's. + +**Q106 — DONE (volt, 2026-10-29, at the head this record's commit names; sol lane by authorship, unclaimed and taken). `CHECK-2026-09-28` now grades the tree it ships in: a clone whose own manifest is doctored reads `VERDICT FALSE`, rc 1, over the clone's cells, where it used to read `VERDICT TRUE`, rc 0, over the host's.** The filed defect reproduces at `a9bc1f7` (`wizard-work/sol/CHECK-2026-09-28`, md5 `ff9a28a2103184ffb96d650503572a36`, `ROOT = "/root/troupe-standup"` at `:14`): a `--depth 5` clone reads green on its own manifest, and with one item flipped `archive_fix` → `app_pr` (aggregate rewritten to `{6,4,2,0}` so the only defect is provenance) the committed CHECK still prints `VERDICT TRUE (categories={'archive_fix': 7, 'app_pr': 3, 'general': 2, 'other': 0} table=12)` rc **0** — the host worktree's cells, from a clone that carries neither of those numbers. + +**(1) The repair** (`wizard-work/sol/CHECK-2026-09-28`, 130 lines, md5 `c67de7923026db0dedc3c0fce6f31dc1`, `+104/−52`): `HERE = os.path.dirname(os.path.realpath(__file__))` and `DEFAULT_ROOT = os.path.dirname(os.path.dirname(HERE))`, so the subject is the tree the file sits in; `--root DIR` grades another tree on request; every run prints its provenance first (`CHECK-2026-09-28: subject root=`), so the reading states which tree it came from. Exit codes follow the repo tool contract — 0 verdict TRUE, 1 verdict FALSE, 2 could not grade — and the two `open()` calls that used to raise tracebacks now print `CANNOT GRADE --