Revise a SPEC or EPIC PR based on review feedback and push an update. Use when a routine fires on a PR being labelled `ai:revise-now`, or when a user asks to "revise spec PR #NNN" / "revise epic PR #NNN" interactively. Non-interactive — reads every unresolved review comment + inline comment + the current SPEC/EPIC file, rewrites it, pushes to the same branch, and posts a one-line summary comment pointing at the diff.
88
90%
Does it follow best practices?
Impact
81%
1.47xAverage score across 3 eval scenarios
Advisory
Suggest reviewing before use
{
"context": "Tests whether the agent correctly handles two blocked scenarios: a rebase conflict (abort, post specific PR comment, apply ai:blocked, remove ai:revise-now, Slack DM) and all-ambiguous-comments (no revision commit, post blocked PR comment, apply ai:blocked, remove ai:revise-now, Slack DM). Focuses on the exact actions, ordering, and content of each response.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Rebase abort command",
"description": "rebase_conflict_response.md includes `git rebase --abort` as a step that is run when the rebase conflict is detected",
"max_score": 8
},
{
"name": "No conflict resolution attempt",
"description": "rebase_conflict_response.md explicitly states that the agent does NOT attempt to resolve the rebase conflict manually",
"max_score": 8
},
{
"name": "Rebase conflict PR comment text",
"description": "rebase_conflict_response.md contains a PR comment that includes the word 'Blocked', references the conflict cause (direct edit in GitHub UI), and instructs to pull/merge manually then re-apply `ai:revise-now`",
"max_score": 10
},
{
"name": "Rebase blocked label applied",
"description": "rebase_conflict_response.md lists applying the `ai:blocked` label to the PR as an action",
"max_score": 8
},
{
"name": "Rebase revise-now label removed",
"description": "rebase_conflict_response.md lists removing the `ai:revise-now` label from the PR as an action",
"max_score": 8
},
{
"name": "Rebase Slack DM sent",
"description": "rebase_conflict_response.md includes sending a Slack DM to `$SLACK_NOTIFY_USER` with the PR link as part of the rebase-conflict response",
"max_score": 8
},
{
"name": "No revision commit when blocked",
"description": "blocked_response.md explicitly states that NO revision commit is pushed when all comments are ambiguous",
"max_score": 10
},
{
"name": "Blocked PR comment format",
"description": "blocked_response.md contains a PR comment beginning with 'Blocked:' followed by a one-line reason, and 'Need:' followed by the concrete input required",
"max_score": 10
},
{
"name": "Ambiguous blocked label and removal",
"description": "blocked_response.md lists both applying `ai:blocked` AND removing `ai:revise-now` from the PR as actions in the ambiguous-comments scenario",
"max_score": 8
},
{
"name": "Ambiguous Slack DM sent",
"description": "blocked_response.md includes sending a Slack DM to `$SLACK_NOTIFY_USER` with the PR link and one-line reason for the ambiguous-comments scenario",
"max_score": 8
},
{
"name": "MCP tools named correctly",
"description": "At least one of the output files references `mcp__github__` prefixed tool names (not `gh` CLI commands) for GitHub operations such as label management or PR comments",
"max_score": 7
},
{
"name": "Slack tool named correctly",
"description": "At least one of the output files references `mcp__claude_ai_Slack__slack_send_message` (or the pattern `mcp__...Slack...`) for the Slack DM, not a generic Slack CLI or webhook",
"max_score": 7
}
]
}