fix(skills/review-loop): make review-comment replies a mandatory, ungated trace#16
Merged
Merged
Conversation
…ated trace The GitHub-mutation discipline section lumped replying-in-threads and resolving-threads together with pushing and requesting the reviewer under one confirmation gate. Because a reply was treated as a gated mutation, the loop either paused to ask permission before every reply or batch-deferred and dropped them — losing the human-readable trace of why each comment was actioned or rejected. Split the section by action class. Replying and resolving are how the loop records a decision already made: mandatory and never confirmation-gated, in every context. Pushing and (re-)requesting the reviewer keep the confirmation gate. Step 5 now sequences address -> commit -> reply -> resolve explicitly and forbids resolving without a reply. Added red-flag rows for the two rationalizations the baseline produced.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the review-loop skill so every review comment gets an explicit threaded reply before resolution, preserving the reasoning trail for accepted and rejected feedback.
Changes:
- Makes replies and thread resolution mandatory and ungated.
- Clarifies that pushing and reviewer re-requests still require confirmation in interactive contexts.
- Adds red flags for skipping replies or treating replies as confirmation-gated mutations.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
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.
Description
The review-loop skill could finish a round having addressed every comment in code but left no reply on the review threads — losing the trace of why each comment was actioned or rejected. The root cause was in the skill's text: the GitHub-mutation discipline section lumped replying and resolving together with pushing and requesting the reviewer under one confirmation gate, so an agent either paused to ask permission before each reply or batch-deferred and dropped them. This makes the reply a mandatory, ungated part of the loop.
Changes
## GitHub-mutation disciplineinto two action classes: replying and resolving are how the loop records a decision already made — mandatory and never confirmation-gated, in every context; pushing and (re-)requesting the reviewer keep the confirmation gate.Testing
Followed the
superpowers:writing-skillsRED → GREEN loop. Baseline subagents (run isolated from the repo's skill ecosystem) given the original text either gated replies behind a confirmation prompt or batch-deferred them. With the revised text, both an interactive-context and an autonomous-fan-out subagent posted a reply to every comment ungated, while still confirming the push and re-request. Grepped the skill for repo/product leakage (none) and read the diff cold.