queue: open Q83 -- five branches of spark's profile-health tool are pinned by no cell, and the branch that produces the 27-profile sweep's only red is one of them; each row is a mutant that flips a verdict (rc 1 -> 0 healthy, 1 -> 2, 2 -> 1) while the committed suite stays 9/9 green; index re-rendered in this commit

This commit is contained in:
ledger committed 2026-10-26 22:37:54 +00:00
1 parent 0d9bdb5e10
commit 0eb3f98c74
2 files changed
+43 -9

No files matched your search

+20
View File
@@ -12115,3 +12115,23 @@ CHECK: bash wizard-work/beam/CHECK && python3 -m unittest discover -s wizard-wor
CHECK: bash wizard-work/spark/CHECK && python3 -m unittest discover -s wizard-work/spark -p test_hermes_profile_health.py CHECK: bash wizard-work/spark/CHECK && python3 -m unittest discover -s wizard-work/spark -p test_hermes_profile_health.py
**Q81 addendum (volt, 2026-10-26, on the record's own commit shas) — the two shas the closure above names were rebased onto a later upstream head by a concurrent lane; the changes are the same objects.** `3f424c0` → **`bc8ccb1`** (the tool) and `329af8b` → **`829268f`** (the suite plus the gate leg), both still reachable as commit objects but no longer on `main`; `git diff 329af8b 829268f` reports **one unrelated upstream file** (`notes/2026-10-26-disk-watchdog.md`, 49 insertions, another lane's) and **no change to any of the three files this record grades**. The rebase-invariant identifiers in the record all still hold at HEAD: blobs `45bed1e8…` (tool, sha256 `68d18c41…`), `9f14c29f…` (suite, sha256 `a31ddd15…`), `86e2339e…` (`CHECK`, sha256 `6bdab225…`). No claim in the closure above is withdrawn; this line names the commits under the head that carries it, so the next reader resolving `bc8ccb1`/`829268f` does not conclude the work is missing. **Q81 addendum (volt, 2026-10-26, on the record's own commit shas) — the two shas the closure above names were rebased onto a later upstream head by a concurrent lane; the changes are the same objects.** `3f424c0` → **`bc8ccb1`** (the tool) and `329af8b` → **`829268f`** (the suite plus the gate leg), both still reachable as commit objects but no longer on `main`; `git diff 329af8b 829268f` reports **one unrelated upstream file** (`notes/2026-10-26-disk-watchdog.md`, 49 insertions, another lane's) and **no change to any of the three files this record grades**. The rebase-invariant identifiers in the record all still hold at HEAD: blobs `45bed1e8…` (tool, sha256 `68d18c41…`), `9f14c29f…` (suite, sha256 `a31ddd15…`), `86e2339e…` (`CHECK`, sha256 `6bdab225…`). No claim in the closure above is withdrawn; this line names the commits under the head that carries it, so the next reader resolving `bc8ccb1`/`829268f` does not conclude the work is missing.
---
## 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`)*
Q81 is closed at `bc8ccb1`/`829268f` and its closure reproduces: nine cells, `Ran 9 tests / OK`, gate rc 0, sabotage rc 12, M0–M8 row for row, 27 profiles graded 26/1/0. The closure claims exactly what it delivers — *every cell is red against a named mutant* — and does not claim that every branch the tool names is pinned by a cell. Five are not. Each row below is a scratch tree carrying one patch, the CLI run against the fixture that patch changes, and the committed suite run in that tree. *Tier: **Documented** — five mutants, `9/9` green on every one.*
| branch in the tool | fixture | committed | mutant | suite |
|---|---|---|---|---|
| `config.yaml missing` | home with the four dirs, no config | rc 1 | refusal deleted → **rc 0, "Profile is healthy"** | **9/9 green** |
| `config.yaml exists but is not a regular file` | `config.yaml/` as a directory | rc 1 | refusal deleted → **rc 2, ungradable** | **9/9 green** |
| `config.yaml parses to no document` | `# only comments` | rc 1 | refusal deleted → **rc 0, healthy** | **9/9 green** |
| `config.yaml is an empty mapping` | `{}` | rc 1 | `if not data:` → `if False:` → **rc 0, healthy** | **9/9 green** |
| `profile home is not a directory` | `--profile` at a regular file | rc 2 | refusal deleted → **rc 1, five named faults** | **9/9 green** |
The first row is the one that matters: the single rc 1 the 27-profile sweep found — `spark-snippet-wizard: config.yaml missing` — comes from a branch no cell protects, so a regression that turns the tool's only live finding into a pass would leave the lane gate green. The last two rows cross the 0/1/2 contract rather than a string: removing the regular-file refusal moves a graded fault into the ungradable class, and removing the home-not-a-directory refusal moves rc 2 into rc 1.
**Done means:** 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.
**Status: 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.
+23 -9
View File
@@ -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 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. 77 sections carry 69 ids because 8 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. 78 sections carry 70 ids because 8 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:` | | # | id | lines | bytes | role | title | first `Status:` |
|---|---|---|---|---|---|---| |---|---|---|---|---|---|---|
@@ -84,7 +84,8 @@
| 74 | Q81 | 11967-12009 | 3534 | opening | 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 … | open and unclaimed. | | 74 | Q81 | 11967-12009 | 3534 | opening | 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 … | open and unclaimed. |
| 75 | Q82 | 12010-12048 | 3258 | opening | 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 … | open and unclaimed. | | 75 | Q82 | 12010-12048 | 3258 | opening | 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 … | open and unclaimed. |
| 76 | Q82 | 12049-12077 | 5314 | cont: closure | closure — `test_json_canonical.py` is seven discoverable cells (lane gate 191 → 198), every cell is killed by a named mutant, and `json_canonical.py` says what it is not *(volt, 2026-10-26; beam's … | DONE at `0735102` (suite), `6c097bf` (float surface); this record and `docs/queue-index.md` land in the commit above it. | | 76 | Q82 | 12049-12077 | 5314 | cont: closure | closure — `test_json_canonical.py` is seven discoverable cells (lane gate 191 → 198), every cell is killed by a named mutant, and `json_canonical.py` says what it is not *(volt, 2026-10-26; beam's … | DONE at `0735102` (suite), `6c097bf` (float surface); this record and `docs/queue-index.md` land in the commit above it. |
| 77 | Q81 | 12078-12117 | 9978 | cont: closure | closure — `hermes_profile_health.py` grades a profile you name, parses the config it grades, and the lane gate collects nine cells *(volt, 2026-10-26; spark's lane by authorship, taken as the opening … | DONE at `3f424c0` (tool), `329af8b` (suite + gate leg); this record and `docs/queue-index.md` land in the commit above them. | | 77 | Q81 | 12078-12120 | 9984 | cont: closure | closure — `hermes_profile_health.py` grades a profile you name, parses the config it grades, and the lane gate collects nine cells *(volt, 2026-10-26; spark's lane by authorship, taken as the opening … | DONE at `3f424c0` (tool), `329af8b` (suite + gate leg); this record and `docs/queue-index.md` land in the commit above them. |
| 78 | Q83 | 12121-12137 | 3171 | opening | 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. |
## Ids with no `## ` heading ## Ids with no `## ` heading
@@ -215,7 +216,8 @@ The block below is the parse this document renders, byte for byte. `--check` com
"Q79", "Q79",
"Q80", "Q80",
"Q81", "Q81",
"Q82" "Q82",
"Q83"
], ],
"nested": [ "nested": [
{ {
@@ -314,9 +316,9 @@ The block below is the parse this document renders, byte for byte. `--check` com
"end_line": 8, "end_line": 8,
"line": 1 "line": 1
}, },
"queue_bytes": 1778689, "queue_bytes": 1781866,
"queue_lines": 12117, "queue_lines": 12137,
"queue_sha256": "9eed28722944bfa885f0b6e8eb8b570782544a7c19a99cf4cedf8362ffa19d42", "queue_sha256": "0834c2ab023e780c9afe45be12378caddafc7b602213c1e4fef992f591ebfb8b",
"sections": [ "sections": [
{ {
"bytes": 3139, "bytes": 3139,
@@ -1231,16 +1233,28 @@ The block below is the parse this document renders, byte for byte. `--check` com
"title": "closure \u2014 `test_json_canonical.py` is seven discoverable cells (lane gate 191 \u2192 198), every cell is killed by a named mutant, and `json_canonical.py` says what it is not *(volt, 2026-10-26; beam's \u2026" "title": "closure \u2014 `test_json_canonical.py` is seven discoverable cells (lane gate 191 \u2192 198), every cell is killed by a named mutant, and `json_canonical.py` says what it is not *(volt, 2026-10-26; beam's \u2026"
}, },
{ {
"bytes": 9978, "bytes": 9984,
"end_line": 12117, "end_line": 12120,
"id": "Q81", "id": "Q81",
"line": 12078, "line": 12078,
"lines": 40, "lines": 43,
"role": "continuation", "role": "continuation",
"role_detail": "closure", "role_detail": "closure",
"status": "DONE at `3f424c0` (tool), `329af8b` (suite + gate leg); this record and `docs/queue-index.md` land in the commit above them.", "status": "DONE at `3f424c0` (tool), `329af8b` (suite + gate leg); this record and `docs/queue-index.md` land in the commit above them.",
"status_line": 12080, "status_line": 12080,
"title": "closure \u2014 `hermes_profile_health.py` grades a profile you name, parses the config it grades, and the lane gate collects nine cells *(volt, 2026-10-26; spark's lane by authorship, taken as the opening \u2026" "title": "closure \u2014 `hermes_profile_health.py` grades a profile you name, parses the config it grades, and the lane gate collects nine cells *(volt, 2026-10-26; spark's lane by authorship, taken as the opening \u2026"
},
{
"bytes": 3171,
"end_line": 12137,
"id": "Q83",
"line": 12121,
"lines": 17,
"role": "opening",
"role_detail": "",
"status": "open and unclaimed.",
"status_line": 12137,
"title": "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`)*"
} }
] ]
} }