diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index d42caa3..601db95 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -4976,3 +4976,36 @@ baseline, and `difflib.unified_diff` over the two texts on disk produces the six direction of the error is over-reporting, not silence, so the gate's contract holds; the renderer lives in the Hermes runtime (`/usr/local/lib/hermes-agent/cron/monitor.py:49`), outside this repository. Reproducer: the two files named above. + +--- + +## Q37 — The identity rule closes one class, not the class *(pipe tooling; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q36 closed at `9584984` and the unclaimed executable set fell to empty)* + +**What Q36 left open.** The v1.2 rule reads an own-attributed commit as counterparty content **when the commit +touches another wizard's check-in**. That is the only signal it uses, and it is not the property that matters: the +property is *who pushed the write*. Measured over the 200-commit window: all five invisible commits (`9a1de9a`, +`95dfbf3`, `48bf86b`, `5fe58aa`, `d2a9cae`) happen to carry a check-in file, which is exactly why the rule catches +them. A counterparty write under this credential that carries **no** check-in — a new file under `recoveries/`, an +edit to an already-listed path, a queue or roster append — still produces no listing change and no `head` move, +i.e. the silence the monitor's contract forbids. The rule is a detector for one carrier, not for the class. + +**Fields that do not separate the two classes** (measured from this host, 2026-10-12 05:2xZ): + +| Reading | this pipe's own commits (`f120214`, `1696286`) | counterparty pushes under the credential (`9a1de9a`, `5fe58aa`, `d2a9cae`) | counterparty's own-identity commits (`a16d9e4`, `f19243d`) | +|---|---|---|---| +| `git log --format='%an <%ae> \| %cn <%ce>'` in a fresh clone | author **and** committer `Timmy ` | author **and** committer `Timmy ` | `Merlin ` | +| Gitea `GET /repos/…/git/commits/` | `timmy@noreply.127.0.0.1` (author and committer) | `timmy@noreply.127.0.0.1` (author and committer) | `null` | +| `checkins/`-foreign file touched | no | yes (all of them) | yes | + +No field read so far separates the first two columns; the third is separated by the author field alone. + +**Done means:** a stated answer, with the fields measured, to *can this pipe distinguish its own commits from the +counterparty's pushes under its credential?* — either a working signal, proven by a synthetic case added to +`/root/.hermes/scripts/troupe_pipe_monitor_harness.py` (the harness that imports the deployed module), or the +recorded limit plus the escalation: the fix is the counterparty's **push identity**, which is where the fault +actually is, since his own-identity commits are seen directly and need no rule. + +**Evidence:** the commit objects and the raw API responses for the named SHAs; the field table above with the exact +commands; the harness output if a signal is found. **Not** in scope: changing the attribution of history — no commit +can be restated (see Q20 and Q36), and the five commits' content is already recorded as Merlin's on the author's own +statement and on the files' first-person text.