Skip to content

fix(orch): review the implementer's actual checkout, not a pasted diff#65

Merged
nathanwhit merged 1 commit into
mainfrom
review-impl-checkout
Jun 24, 2026
Merged

fix(orch): review the implementer's actual checkout, not a pasted diff#65
nathanwhit merged 1 commit into
mainfrom
review-impl-checkout

Conversation

@nathanwhit

Copy link
Copy Markdown
Owner

The adversarial reviewer was given a clean checkout off base with the entire diff inlined into its launch prompt as text. That one choice was the common root of three failures we hit:

  1. The prompt bloated past tmux's command-length cap → reviewers died command too long, retried, and orphaned multi-GB checkouts until the box hit 100% disk (today's whole cascade).
  2. The reviewer couldn't build or test the real change (clean tree).
  3. Any fix it committed landed on a throwaway branch that shipped nowhere — a reviewer's compiled-run follow-up was lost exactly this way.

The reviewer now inherits the implementer's actual checkout (depends_on the terminal implementer, so no concurrent writer) and reads the change with git diff — the diff leaves the prompt entirely. A fix it commits lands on the branch the PR ships from. submit_review re-pins the verdict to the diff as it stands at submit, so a reviewer's own fix doesn't move the fingerprint and bounce its approval into an endless re-review.

Tests: extended TestReviewGate_OnHoldsAndSpawnsAdversary (inherits checkout, no diff in prompt) + new TestReviewGate_ReviewerFixShipsWithApproval.

The adversarial reviewer was given a CLEAN checkout off base with the entire
diff inlined into its launch prompt as text. That one choice was the common
root of three failures: the prompt bloated past tmux's command-length cap
(reviewers died 'command too long' and retried, orphaning multi-GB checkouts
until the box hit 100% disk); the reviewer couldn't build or test the real
change; and any fix it committed landed on a throwaway branch that shipped
nowhere (a reviewer's compiled-run follow-up was lost this way).

The reviewer now inherits the implementer's actual checkout (depends_on the
terminal implementer, so no concurrent writer) and reads the change with
git diff — the diff leaves the prompt entirely. A fix it commits lands on the
branch the PR ships from. submit_review re-pins the verdict to the diff as it
stands at submit, so a reviewer's own fix doesn't move the fingerprint and
bounce its approval into an endless re-review.
@nathanwhit nathanwhit merged commit fca0d3b into main Jun 24, 2026
1 check 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.

1 participant