Skip to content

feat(loop): tri rejudge - a recorded verdict the current code would not give - #473

Open
gHashTag wants to merge 1 commit into
loop/silent-loop-ceiling-v2from
loop/rejudge
Open

gHashTag wants to merge 1 commit into
loop/silent-loop-ceiling-v2from
loop/rejudge

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Stacked on #471 (base is loop/silent-loop-ceiling-v2) because both touch heal.mjs and selftest.mjs. Merge #471 first; the base retargets automatically.

The cheap question nobody had asked

Every instrument in .trinity/loop/ asks whether the swarm is stuck, or whether a tool is lying about what it did. None asked the simplest one available: take the work as it is stored, run the review's own functions over it again, and see whether the recorded verdict is the answer the code gives.

It needs no new source of truth and it is self-updating. When a review fix ships, the rows the old behaviour left behind appear here — and that list is the work the fix has released.

Agreement is not correctness, and the first live run proves it

159 dispatch(es) recorded as `sendBack`, re-judged with the review's own functions
159 of 159 reproduce - the code today would record the same verdict.
0 of 159 DO NOT reproduce

All 159 reproduce exactly, while every one of them is wrong in the same way (see #472). The defect is in the deployed matcher, and the record is a faithful copy of its output, so it reproduces perfectly.

The tool is silent precisely when it should be loudest. So it says that in its own report rather than letting a green line be read as health:

Nothing here contradicts the record. That means the stored verdicts and the code RUNNING IN PRODUCTION agree — it is not evidence that either is right. A defect in the deployed review reproduces perfectly, because the record is its own output. This goes quiet exactly when it should be loudest, so it is a companion to a deploy and never a verdict on the review.

Reading a green line as health is the class of comforting lie this directory exists to hunt, and a tool that invites that reading is worse than no tool.

It runs the deployed module, never a copy

A second implementation of the matching rule is exactly the defect this was built after: missingVerdictSlots and unjudgedCriteria were two implementations of one rule, they disagreed, and a comment asserted they could not. So this imports the deployed module and calls it. If the import fails, the answer is that nothing was measured — not that nothing is wrong.

Calibration

Three cases, each proving the negative first:

  • a send-back that still has something failed or unanswered is NOT a finding — that is the branch that refutes the tool, and it is reported first
  • a torn transcript with no block belongs to tri unverdicted, not here
  • an unreadable row accuses nobody

node .trinity/loop/selftest.mjs257 passed, 0 failed.

Report-only, in the heal chain as reportsOnly. Exit 2 when it finds a disagreement.

🤖 Generated with Claude Code

…ot give

The cheap question nobody had asked. Every instrument here asks whether the
swarm is stuck or whether a tool is lying about what it did. None asked: take
the work as it is stored, run the review's OWN functions over it again, and see
whether the recorded answer is the answer the code gives.

It needs no new source of truth and it is self-updating. When a review fix
ships, the rows the old behaviour left behind appear here, and that list is the
work the fix has released.

AGREEMENT IS NOT CORRECTNESS, and the first live run proves it: all 159
send-backs reproduce exactly, while every one of them is wrong in the same way.
The defect is in the DEPLOYED matcher and the record is a faithful copy of its
output, so it reproduces perfectly. The tool is silent precisely when it should
be loudest, and it says so in its own report rather than letting a green line
be read as health - that reading is the class of comforting lie this directory
exists to hunt.

It runs the deployed module rather than a copy of it. A second implementation
of the matching rule is exactly the defect this was built after:
`missingVerdictSlots` and `unjudgedCriteria` were two implementations of one
rule, they disagreed, and a comment asserted they could not.

Three calibration cases, each proving the negative first: a send-back that
still fails or omits something is NOT a finding, a torn transcript belongs to
`unverdicted` and not here, and an unreadable row accuses nobody.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant