一键导入
all-green
// Addresses all PR review comments, resolves merge conflicts, and fixes failing CI checks to get the PR ready to merge. Use when the user wants to make their PR "all green" or ready for merge.
// Addresses all PR review comments, resolves merge conflicts, and fixes failing CI checks to get the PR ready to merge. Use when the user wants to make their PR "all green" or ready for merge.
| name | all-green |
| description | Addresses all PR review comments, resolves merge conflicts, and fixes failing CI checks to get the PR ready to merge. Use when the user wants to make their PR "all green" or ready for merge. |
Your goal is to get this PR to a mergeable state by addressing all blockers: review comments, merge conflicts, and failing checks.
Execute these steps in order:
First, determine which PR to work on:
# Get current branch and find associated PR
gh pr view --json number,title,url,headRefName,baseRefName,mergeable,mergeStateStatus,reviewDecision
If no PR exists for the current branch, inform the user and stop.
Gather the full picture of what needs to be addressed:
# Check for merge conflicts
gh pr view --json mergeable,mergeStateStatus
# Get CI check status
gh pr checks
CRITICAL: You MUST fetch review threads using the GraphQL API and address every single unresolved one. This is NOT optional. Skipping this step is the #1 cause of PRs not being merge-ready.
Step 3a: Fetch all review threads (MANDATORY)
gh api graphql -f query='
{
repository(owner: "{owner}", name: "{repo}") {
pullRequest(number: {pr_number}) {
reviewThreads(first: 100) {
nodes {
id
isResolved
comments(first: 5) {
nodes { body path line author { login } }
}
}
}
}
}
}'
Filter to unresolved threads: look for "isResolved": false. If there are zero unresolved threads, you can skip to step 4. Otherwise, you MUST address every single one.
Step 3b: For EACH unresolved thread, do ALL of the following:
gh api graphql -f query='
mutation {
addPullRequestReviewThreadReply(input: {
pullRequestReviewThreadId: "PRRT_xxx"
body: "Fixed in commit abc123"
}) {
comment { id }
}
}'
gh api graphql -f query='
mutation {
resolveReviewThread(input: {
threadId: "PRRT_xxx"
}) {
thread { isResolved }
}
}'
Step 3c: Verify all threads are resolved (MANDATORY)
After addressing all threads, re-run the GraphQL query from step 3a and confirm zero unresolved threads remain. If any remain, go back and address them.
Tips:
If the PR has merge conflicts:
# Fetch latest changes
git fetch origin
# Get the base branch name from PR
BASE_BRANCH=$(gh pr view --json baseRefName -q .baseRefName)
# Rebase onto the base branch
git rebase origin/$BASE_BRANCH
When resolving conflicts:
# After resolving conflicts
git add <resolved-files>
git rebase --continue
# Verify types still check
npm run tsgo:check
For each failing check:
# Get detailed check failure information
gh pr checks --json name,state,conclusion,detailsUrl
Common fixes:
Type errors:
npm run tsgo:check # Identify the errors
# Fix each type error in the reported files
Lint errors:
npm run lint # See lint issues
npm run lint:fix # Auto-fix what's possible
# Manually fix remaining issues
Test failures:
npm test # Run tests to see failures
# Read failing test files and fix the issues
Build failures:
After all fixes:
# If you rebased, force push is required
git push --force-with-lease
# If you only added commits
git push
Then wait for checks to complete using the blocking watch command:
# Block until checks finish, exit immediately on first failure
gh pr checks --watch --fail-fast
This command:
If gh pr checks --watch --fail-fast exits with a failure:
# See which check failed and get the details URL
gh pr checks --json name,state,conclusion,detailsUrl
# View the failed run logs directly
gh run view <run-id> --log-failed
Fix the issue, commit, push, and run gh pr checks --watch --fail-fast again.
Once checks pass:
gh pr view --json mergeable,mergeStateStatus,reviewDecision
gh run view <run-id> --log-failed
# 1. See what we're dealing with
gh pr view --json number,title,mergeable,mergeStateStatus,reviewDecision
gh pr checks
# 2. MANDATORY: Fetch ALL review threads and find unresolved ones
gh api graphql -f query='{
repository(owner: "OWNER", name: "REPO") {
pullRequest(number: PR_NUM) {
reviewThreads(first: 100) {
nodes { id isResolved comments(first: 5) { nodes { body path line author { login } } } }
}
}
}
}'
# 3. Address each unresolved thread: read code, make fix, commit
# 4. Push fixes
git push
# 5. Reply to and resolve EVERY addressed thread
gh api graphql -f query='mutation { addPullRequestReviewThreadReply(input: { pullRequestReviewThreadId: "PRRT_xxx", body: "Fixed in abc123 — added encodeURIComponent" }) { comment { id } } }'
gh api graphql -f query='mutation { resolveReviewThread(input: { threadId: "PRRT_xxx" }) { thread { isResolved } } }'
# 6. VERIFY: Re-fetch threads and confirm zero unresolved remain
# (Re-run the GraphQL query from step 2, filter for isResolved: false)
# 7. If there are merge conflicts, rebase
git fetch origin
git rebase origin/main
# ... resolve conflicts ...
git add .
git rebase --continue
# 8. Fix any failing checks
npm run tsgo:check
npm run lint:fix
npm test
# 9. Push and wait for checks (blocks until complete, fails fast)
git push --force-with-lease
gh pr checks --watch --fail-fast
# 10. If checks failed, fix and repeat. Once green:
gh pr view --json mergeable,mergeStateStatus,reviewDecision
Runs .continue/checks locally against the current diff, simulating the GitHub PR checks experience. Use when the user says /check to review their changes before pushing.
Polish an open-source repository with branding, community files, README overhaul, OG card, usage skill, PR checks, and publishing setup. Designed as a reusable template for Continue repos.
Write Continue check files that review pull requests with AI agents. Use when the user asks to create, write, or generate a check, or wants to enforce a convention on PRs.
Scans the codebase against another skill's criteria using a parallel agent team. Use when the user says /scan <skill-name> to audit code quality, find violations, or assess conformance to best practices.