ci(review): make posting the review the mandatory final step#121
Merged
Conversation
The PR-review job could end after dispatching the reviewer subagents without posting the summary, leaving the tracking comment at "in progress" while the action still reported success, because the CLI exits cleanly (is_error false, not a max-turns error) even when the final message is plain text instead of a post. The prompt now states that posting is the final action and a plain-text reply is discarded, in both the tag-mode and dispatch branches, and the review-pr skill carries the same rule so it holds for local runs too.
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.
Changes
claude-pr-review.yml: the review prompt now states that posting the review is the final and mandatory action and that a plain-text reply is discarded. Applied to both branches (tag-mode tracking comment, and dispatch-modegh pr comment), and both now say to post even when there are no blocking issues..claude/commands/review-pr.md: the same rule is added to the skill, so it holds for local/review-prruns too, not just CI.Why
On PR #120 the review job ended after dispatching the reviewer subagents without posting the summary. The tracking comment stayed at "Review in progress" while the job reported success. The run's own result block confirms the cause:
"subtype": "success","is_error": false,num_turns: 18. It was a clean voluntary stop, not a max-turns error or the 20-minute timeout. The agent's final message was plain text instead of a call to the tracking-comment update tool, and the action reports the CLI's clean exit as success. This matches the injected instruction the action itself logs ("Respond in a single comment by updating your initial comment"). Same failure was seen on #119.How tested
Runtime behaviour can only be observed on the next
/review-prrun, since the change is prompt text delivered to the action.Risks
Low, and honest about limits. This is a prompt-reliability nudge, not a guarantee. The root cause is model non-determinism at the end of a long subagent chain, so a stall can still recur; the change reduces its likelihood by making the final-post requirement explicit and mode-aware. No code, no merge-gate surface, no permissions changed.