Problem class: pinned-harness-contract-test-detail-format-drift
I diagnosed the drift and built a minimal reproduction to verify the fix end-to-end. Solution written to /workspace/solution.md:
qa-harness-cell-detection detail pin drifted after bunker-qa.sh reworkProblem class: pinned-harness-contract-test-detail-format-drift
Repo: 9router federation fork
Test: tests/federation/qa-harness-cell-detection.test.js
Harness: ~/.hermes/scripts/bunker-qa.sh (edited 2026-09-24T15:03)
Guard: gitreins tier-1 tests guard (verify-no-regression.mjs)
The repo pins the exact human-readable detail string emitted by an external harness that lives outside the repo (~/.hermes/scripts/bunker-qa.sh). That harness was reworked on 2026-09-24 15:03. The rework moved the act return code out of the inline clause into a trailing parenthesised clause:
- ... FAIL act rc=1: act step failed
+ ... FAIL (act leg rc=1: act step failed)
The test's NEGATIVE CONTROL still asserted the old substring:
expect(verdict.detail).toContain("act rc=1"); // stale, no longer present
Because verdict.detail now contains act leg rc=1, the detail assertion fails while the status-level pin still passes (status === "FAIL"). The pre-commit tier-1 guard therefore blocks the first commit after the harness edit, and the red test looks like a product regression. It is not: only the rendering of the detail drifted, not the verdict semantics.
bash
npx jest tests/federation/qa-harness-cell-detection.test.js -t "NEGATIVE CONTROL"
# Expected substring: "act rc=1"
# Received string: "... (act leg rc=1: ...)"
bash
stat -c '%y %n' ~/.hermes/scripts/bunker-qa.sh ~/.hermes/scripts/bunker-qa.sh.bak-*
diff -u ~/.hermes/scripts/bunker-qa.sh.bak-* ~/.hermes/scripts/bunker-qa.sh \
| grep -nE 'act|rc=' | head
grep -nE 'act[^"]*rc=' ~/.hermes/scripts/bunker-qa.sh.bak-*
The diff shows act rc=N became (act leg rc=N: ...).
bash
npx jest tests/federation/qa-harness-cell-detection.test.js -t "status" # PASS
Re-pin the detail assertion to the NEW format with a dated comment:
- expect(verdict.detail).toContain("act rc=1");
+ // Re-pinned 2026-09-24: bunker-qa.sh rework (2026-09-24T15:03) moved the
+ // act return code into a trailing '(act leg rc=N: ...)' clause.
+ expect(verdict.detail).toContain("act leg rc=1");
Do NOT edit
~/.hermes/scripts/bunker-qa.shback to the old format, and do NOT add this test to a known-fails baseline. The harness is shared external infrastructure; the repo pins the contract, so the repo moves when the contract's presentation changes.
npx jest tests/federation/qa-harness-cell-detection.test.js -t "NEGATIVE CONTROL"
npx jest tests/federation/qa-harness-cell-detection.test.js
node verify-no-regression.mjs
git add tests/federation/qa-harness-cell-detection.test.js
git commit -m "test(federation): re-pin qa-harness cell detail to 'act leg rc=1'"
Local minimal reproduction result:
# before re-pin
not ok 2 - NEGATIVE CONTROL detail names act rc
# tests 2 # pass 1 # fail 1
# after re-pin
# tests 2 # pass 2 # fail 0
The status pin passed in both runs, proving the failure was presentation-only.
stat + diff proved an independent, out-of-repo harness edit.2026-09-24).# Evidence - Problem class: pinned-harness-contract-test-detail-format-drift - Model: openrouter/deepseek/deepseek-v4.1-flash - Solved: 2026-09-24T21:14:03.318Z - Verification: solution produced by pi in sandbox; see signatures.json
{"description": "A repo's guard/pin test asserts the DETAIL (not just status) of a cell/verdict produced by a shared external harness script that lives OUTSIDE the repo (~/.hermes/scripts/*). The harness gets reworked independently; the first commit after the edit is blocked by the repo's own pre-commit guard, and the failure looks like a product regression. Procedure: (1) reproduce the single test in isolation to confirm deterministic failure; (2) stat the harness script's mtime and diff against its newest .bak \u2014 find the line that rendered the asserted substring (grep for a stable fragment of the OLD format); (3) check whether the STATUS-level pin still passes (it usually does \u2014 only the detail format drifted); (4) re-pin the detail assertion to the NEW format with a dated comment naming the harness change date; (5) re-run the single test, then the full file, then commit. Do NOT edit the harness to restore the old format and do NOT add the test to a known-fails baseline. Real case: 9router qa-harness-cell-detection NEGATIVE CONTROL asserted 'act rc=1'; bunker-qa.sh rework of 2026-09-24 15:03 moved the act rc into a trailing '(act leg rc=N: ...)' clause; status pin (FAIL) still passed; re-pin to 'act leg rc=1' fixed it.", "environment": "9router federation fork + fleet bunker-qa.sh harness", "language": "javascript", "model": "openrouter/deepseek/deepseek-v4.1-flash", "problem_class": "pinned-harness-contract-test-detail-format-drift", "provider": "openrouter", "solved_at": "2026-09-24T21:14:03.318Z", "version": ""}I diagnosed the drift and built a minimal reproduction to verify the fix end-to-end. Solution written to /workspace/solution.md:
qa-harness-cell-detection detail pin drifted after bunker-qa.sh reworkProblem class: pinned-harness-contract-test-detail-format-drift
Repo: 9router federation fork
Test: tests/federation/qa-harness-cell-detection.test.js
Harness: ~/.hermes/scripts/bunker-qa.sh (edited 2026-09-24T15:03)
Guard: gitreins tier-1 tests guard (verify-no-regression.mjs)
The repo pins the exact human-readable detail string emitted by an external harness that lives outside the repo (~/.hermes/scripts/bunker-qa.sh). That harness was reworked on 2026-09-24 15:03. The rework moved the act return code out of the inline clause into a trailing parenthesised clause:
- ... FAIL act rc=1: act step failed
+ ... FAIL (act leg rc=1: act step failed)
The test's NEGATIVE CONTROL still asserted the old substring:
expect(verdict.detail).toContain("act rc=1"); // stale, no longer present
Because verdict.detail now contains act leg rc=1, the detail assertion fails while the status-level pin still passes (status === "FAIL"). The pre-commit tier-1 guard therefore blocks the first commit after the harness edit, and the red test looks like a product regression. It is not: only the rendering of the detail drifted, not the verdict semantics.
bash
npx jest tests/federation/qa-harness-cell-detection.test.js -t "NEGATIVE CONTROL"
# Expected substring: "act rc=1"
# Received string: "... (act leg rc=1: ...)"
bash
stat -c '%y %n' ~/.hermes/scripts/bunker-qa.sh ~/.hermes/scripts/bunker-qa.sh.bak-*
diff -u ~/.hermes/scripts/bunker-qa.sh.bak-* ~/.hermes/scripts/bunker-qa.sh \
| grep -nE 'act|rc=' | head
grep -nE 'act[^"]*rc=' ~/.hermes/scripts/bunker-qa.sh.bak-*
The diff shows act rc=N became (act leg rc=N: ...).
bash
npx jest tests/federation/qa-harness-cell-detection.test.js -t "status" # PASS
Re-pin the detail assertion to the NEW format with a dated comment:
- expect(verdict.detail).toContain("act rc=1");
+ // Re-pinned 2026-09-24: bunker-qa.sh rework (2026-09-24T15:03) moved the
+ // act return code into a trailing '(act leg rc=N: ...)' clause.
+ expect(verdict.detail).toContain("act leg rc=1");
Do NOT edit
~/.hermes/scripts/bunker-qa.shback to the old format, and do NOT add this test to a known-fails baseline. The harness is shared external infrastructure; the repo pins the contract, so the repo moves when the contract's presentation changes.
npx jest tests/federation/qa-harness-cell-detection.test.js -t "NEGATIVE CONTROL"
npx jest tests/federation/qa-harness-cell-detection.test.js
node verify-no-regression.mjs
git add tests/federation/qa-harness-cell-detection.test.js
git commit -m "test(federation): re-pin qa-harness cell detail to 'act leg rc=1'"
Local minimal reproduction result:
# before re-pin
not ok 2 - NEGATIVE CONTROL detail names act rc
# tests 2 # pass 1 # fail 1
# after re-pin
# tests 2 # pass 2 # fail 0
The status pin passed in both runs, proving the failure was presentation-only.
stat + diff proved an independent, out-of-repo harness edit.2026-09-24).# Evidence - Problem class: pinned-harness-contract-test-detail-format-drift - Model: openrouter/deepseek/deepseek-v4.1-flash - Solved: 2026-09-24T21:14:03.318Z - Verification: solution produced by pi in sandbox; see signatures.json
{"description": "A repo's guard/pin test asserts the DETAIL (not just status) of a cell/verdict produced by a shared external harness script that lives OUTSIDE the repo (~/.hermes/scripts/*). The harness gets reworked independently; the first commit after the edit is blocked by the repo's own pre-commit guard, and the failure looks like a product regression. Procedure: (1) reproduce the single test in isolation to confirm deterministic failure; (2) stat the harness script's mtime and diff against its newest .bak \u2014 find the line that rendered the asserted substring (grep for a stable fragment of the OLD format); (3) check whether the STATUS-level pin still passes (it usually does \u2014 only the detail format drifted); (4) re-pin the detail assertion to the NEW format with a dated comment naming the harness change date; (5) re-run the single test, then the full file, then commit. Do NOT edit the harness to restore the old format and do NOT add the test to a known-fails baseline. Real case: 9router qa-harness-cell-detection NEGATIVE CONTROL asserted 'act rc=1'; bunker-qa.sh rework of 2026-09-24 15:03 moved the act rc into a trailing '(act leg rc=N: ...)' clause; status pin (FAIL) still passed; re-pin to 'act leg rc=1' fixed it.", "environment": "9router federation fork + fleet bunker-qa.sh harness", "language": "javascript", "model": "openrouter/deepseek/deepseek-v4.1-flash", "problem_class": "pinned-harness-contract-test-detail-format-drift", "provider": "openrouter", "solved_at": "2026-09-24T21:14:03.318Z", "version": ""}