diff-review
// Render the patch-edit run's accumulated changes as a reviewable diff, surface it through a GenUI choice surface, and persist the user's accept / reject decision into the artifact manifest.
| name | diff-review |
|---|---|
| description | Render the patch-edit run's accumulated changes as a reviewable diff, surface it through a GenUI choice surface, and persist the user's accept / reject decision into the artifact manifest. |
name: diff-review description: Render the patch-edit run's accumulated changes as a reviewable diff, surface it through a GenUI choice surface, and persist the user's accept / reject decision into the artifact manifest. od: scenario: code-migration mode: review
Diff review
Spec §20.3 / §21.3.2: a code-migration / tune-collab handoff is worthless without a human-reviewable diff. This atom is the "present the patch, capture the decision" stage.
Inputs
- The project cwd's accumulated edits since the run started (or since the previous diff-review iteration).
plan/steps.jsonfor context per file.
Output
project-cwd/
└── review/
├── diff.patch # unified diff (git apply-shaped)
├── summary.md # human-friendly per-file walkthrough
├── decision.json # { decision: 'accept' | 'reject' | 'partial', accepted_files: [...], rejected_files: [...], reviewer: 'user' | 'agent' }
└── meta.json # { generatedAt, atomDigest, planRevision }
The atom raises a choice GenUI surface with the three top-level
decisions (accept / reject / partial). On partial the user
flips per-file decisions through follow-up surfaces.
Convergence
The atom completes when decision.json has a non-empty decision.
Acceptance writes handoffKind: 'patch' (or 'deployable-app'
when a successful build-test is on file) into the eventual
artifact manifest; rejection rolls back the patch via git restore
or the equivalent in the code-import-bound repo path.
Anti-patterns the prompt fragment forbids
- Skipping the surface and assuming acceptance.
- Generating a
decision.jsonthat lacksaccepted_files/rejected_filesonpartialdecisions. - Rolling back files outside
plan/steps.json's union offiles[]— the patch boundary is a contract.
Status
Reserved id, prompt-only fragment in v1.