Skip to content

Keep temper and hone round bundles blind after a round that changed nothing - #37

Merged
forkrul merged 1 commit into
masterfrom
fix/blind-round-bundles
Oct 19, 2026
Merged

forkrul merged 1 commit into
masterfrom
fix/blind-round-bundles

Conversation

@forkrul

@forkrul forkrul commented Oct 19, 2026

Copy link
Copy Markdown
Owner

Why

Round & Grade Blindness hides from critics whether a round is the A++ confirmation pass. The round bundle can give that away without naming a round: an empty "diff of the last round" says the last round was clean.

Two real headless orchestrators (Sonnet and Opus) followed skills/temper on examples/cart-discounts at the start of round 3 (review.md: A, then A+). Each critic dispatch was recorded and stopped before it started:

  • Both bundles carried the tell. Sonnet wrote "(none — the previous round applied no edits)" into critic-bundle.md, and Opus wrote "Previous round's diff to the triplet: none (no edits)."
  • Opus's bundle copied the status line. It also carried spec.md's **Status**: Tempered A++ (review.md round 3, …) line.
  • Sonnet's red-team critic was told the history. The Fresh-Critic Rotation slot got "Assume a previous reviewer was too lenient and missed something real". Opus's version ("Assume this triplet has at least one defect …") stayed blind.

Neither model wrote "round 3", so the existing rule held. The gap is that the bundle step says what goes in after round 1, but not what to do when there is nothing to put in.

Change

  • temper:
    • when round N−1 edited nothing, leave the diff out altogether, so the bundle reads exactly like round 1's;
    • leave out triplet lines that name a round or rating.
  • hone:
    • when the previous round fixed nothing in the unit, say nothing about fix commits;
    • leave out triplet lines that name a hone round. One example is the hone round 1 trigger in the worked example's tasks.md T004 gate note.
  • both: the red-team framing names no earlier review.

The new sentences are appended to existing paragraphs, so no lines are added. temper stays at 217 lines and hone at 257, within the 260-line budget.

Checks

  • ./install.sh eval: 100 / 100 (prompt simplicity budget 15 / 15)
  • tests/smoke.sh: OK
  • sphinx-build -W --keep-going -n -b html docs …: build succeeded, no warnings

The round-blind Claude Code mod enforces the same rules when critics are dispatched. On the recorded dispatches it refused all three leaks and passed the other five.


Generated by Claude Code

…othing

Two real orchestrators (Sonnet and Opus) running temper on the cart-discounts
example at the start of round 3 both wrote "the previous round applied no
edits" into critic-bundle.md. That tells the critics the last round was clean,
which is the A++ confirmation pass Round & Grade Blindness hides. One also told
its red-team critic to "assume a previous reviewer was too lenient", and one
copied spec.md's "Tempered A++ (review.md round 3)" status line into the bundle.

- temper: leave the diff out when round N-1 edited nothing, and leave out
  triplet lines that name a round or rating
- hone: say nothing about fix commits when the previous round fixed nothing in
  the unit, and leave out triplet lines that name a hone round
- both: the red-team framing names no earlier review

No new lines: temper stays at 217 and hone at 257 of the 260-line budget.
./install.sh eval scores 100; tests/smoke.sh and the docs build pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Pr79x1vccT9yGKf6W3jJix
@forkrul
forkrul merged commit 695b1a6 into master Oct 19, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants