#1203 Bar acceptance-criteria revision prompts to genuine conflicts - #1212
Merged
Conversation
A branch review counts an acceptance criterion as met when the implementation delivers its substantive guarantee, whatever the criterion's wording, and when the implementation goes beyond what the criterion asks. A criterion counts as unmet only when the guarantee is undelivered, and the review states whether the work is simply unbuilt or took a direction the criterion contradicts.
A branch review offers to revise the ticket's acceptance criteria only when the implementation deliberately took a direction a criterion contradicts. Work that is simply unbuilt, and work that goes beyond what the criteria ask, no longer produce the offer. When the offer does appear and the review already raised a finding on the conflicting behavior, it recommends leaving the criteria alone, so accepting the edit cannot bury the finding.
When a caller hands ticket alignment a set of changes the user has already approved, the revision is exactly those changes: every other criterion and section carries through untouched, and a change the approved set did not contain stops the edit for confirmation rather than riding along with it. Invoked on its own, ticket alignment still describes the whole branch.
Covers the clauses that keep a branch review from proposing a ticket edit it has no grounds for: the trigger's computation order, the carve-out for work that is unfinished rather than redirected, the ground for leaving criteria alone when a finding is already open, and the bound that holds ticket alignment to the changes its caller approved.
The combined next-steps example shows the deviations sub-block and the source-divergence sub-block proposing different edits, so a reader can see that each derives its own delta rather than sharing one.
The proposed-edit notation describes a reworded criterion as one the implementation contradicts, matching the bar that treats a satisfied criterion as met whatever shape the implementation took. A criterion the implementation satisfied differently no longer reads as grounds for a reword.
In a pull-request review, a criterion drawn from the pull-request description no longer offers to rewrite the ticket's acceptance criteria. Reconciling a description at odds with the implementation stays with the source-divergence offer, which edits the description instead.
A source-divergence menu's proposed-edit preview lists every narrative section its ticket edit would regenerate, so the preview describes the whole edit the user consents to.
Dependency auditProduction dependency audit passed. |
williamthorsen
marked this pull request as ready for review
August 5, 2026 23:46
williamthorsen
added a commit
that referenced
this pull request
Aug 7, 2026
…ssembly-mcp-v0.2.4 codeassembly-v0.6.0 codeassembly-v0.6.0 - #794 feat: Guide kb-add note placement with the store's declared taxonomy (#1223) - #1111 feat: Declare which harnesses sync targets (#1221) - #1214 feat: Allow an artifact to belong to more than one collection (#1219) - #1186 drop!: Dissolve `common-mistakes` into its consumers' guidance (#1217) - deps: Upgrade all deps to latest version - #1203 fix: Bar acceptance-criteria revision prompts to genuine conflicts (#1212) - #1196 feat: Add the .kb/taxonomy.yaml format with drift reporting and back-fill (#1210) - #1165 feat: Make a vetted subset of the library declarable (#1207) - #1197 feat: Report the retired `harnesses:` frontmatter key from `validate` (#1204) - #963 feat!: Rename the harness id to rovo and qualify the frontmatter key (#1199) - #1188 drop!: Retire the bundled Bitbucket inline-comment script (#1198) - #1187 feat: Gate the boolean prefix on a test and add the tail rule it rests on (#1195) factory-v0.2.4 - deps: Upgrade all deps to latest version - deps: Upgrade all deps to latest version - #1209 refactor: Clear factory's remaining lint violations and retire both deferral lists (#1216) - #1208 refactor: Clear the visualizations lint violations and retire six rule deferrals (#1213) kb-v0.4.0 - #794 feat: Guide kb-add note placement with the store's declared taxonomy (#1223) - #1196 feat: Add the .kb/taxonomy.yaml format with drift reporting and back-fill (#1210) codeassembly-lifecycle-v0.3.0 - #963 feat!: Rename the harness id to rovo and qualify the frontmatter key (#1199) codeassembly-mcp-v0.2.4 - #1206 refactor: Retire fleet's lint deferrals (#1211) - #1200 tooling: Retire mcp's lint deferrals and prune the dead root entries (#1205)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Revises the code-review guidance to limit the circumstances under which the agent should offer to revise the acceptance criteria (AC). In particular, an implementation that goes beyond the AC or achieves them via a different route is not cause for revision. Revisions are offered only when the implementation materially deviates from or deliberately drops AC; where the review has already raised a finding on that behavior, the guidance is to leave the AC as written rather than restate them around the code. Work that is merely unbuilt, and work beyond what the AC asked, stay in the review's compliance report rather than prompting a ticket edit.
Why
Reviews were prompting for a ticket edit on more than half the tickets they reviewed, and most of those prompts were unwarranted: the implementation satisfied the criteria and only the wording differed. Each prompt cost a decision, and accepting one wrote a local ticket snapshot that then outranked the live issue for later reviews, so an unwarranted revision silently repointed the contract rather than merely costing a round trip.
Details
🐛 Bug fixes
align-ticket-with-implementationgained a ratified-delta mode, under which a caller-supplied previewed delta is the whole of the revision and a change the delta does not contain stops the edit rather than widening it. It composes with the existing criteria-only mode: one scopes which sections change, the other how much changes within them.🧪 Tests
Closes #1203