一键导入
nf-pr-resolve
Evaluate PR review threads from bots (CodeRabbit, Copilot, gitar), judge comment validity, resolve threads, then merge when all CI checks pass.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Evaluate PR review threads from bots (CodeRabbit, Copilot, gitar), judge comment validity, resolve threads, then merge when all CI checks pass.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Prepares a change for safe release with readiness checks, rollout planning, rollback triggers, and post-launch follow-through.
Runs a reusable merge-readiness review across correctness, readability, architecture, security, performance, and verification evidence.
Refines vague product or workflow ideas into a focused direction, MVP scope, assumptions, and the right next nForma workflow.
Converts rough requests into issue-ready structured output with title, scope, acceptance criteria, difficulty, and routing.
| name | nf:pr-resolve |
| description | Evaluate PR review threads from bots (CodeRabbit, Copilot, gitar), judge comment validity, resolve threads, then merge when all CI checks pass. |
Autonomously evaluate and resolve PR review threads from bots (CodeRabbit, Copilot, gitar), judge each comment's validity, apply fixes for accepted issues, resolve threads with justification, and merge the PR when all CI checks pass.
git status --porcelain to list all dirty filesgit status --porcelain --ignored=matching to also surface files matched by gitignore rules (prefixed !!)git diff --stat for unstaged changes summarygit diff --cached --stat for staged-but-uncommitted summarygit log --oneline origin/main..HEAD to see commits not yet in main (verify PR scope)git stash list to check for stashed work that may be relevantFor each file from git status --porcelain, classify using git check-ignore -v <file>:
!!) → already covered by ignore rules (no action unless rule is too broad)??) → recommend STAGE + COMMIT (legitimate new file) or ADD TO .gitignore if it matches heuristic patterns below M) → recommend STAGE + COMMIT (unstaged change)M , A ) → recommend COMMIT (staged but not committed) D, D ) → recommend STAGE + COMMIT (deletion not tracked)Heuristics for gitignore recommendations on untracked files:
.env*, *.pem, *.key, credentials*.DS_Store, *.swp, *~, .idea/, .vscode/dist/, build/, *.o, *.pyc, node_modules/*.log, *.tmp, *.bakgit check-ignore -v <file> to confirm matching ignore rulesgit rm --cached <file>, then commit .gitignore and the index changePresent findings as a table:
XY File Recommendation
?? .env.local ADD TO .gitignore (secret pattern)
M src/feature.ts STAGE + COMMIT (unstaged change)
M src/new-feature.ts COMMIT (staged, not committed)
If all clean: proceed to Step 1 immediately (no output needed). If issues found: use AskUserQuestion with options: [c] Commit all — stage + commit everything with auto-generated message [g] Gitignore recommended files — add suggested patterns to .gitignore, then re-check [i] Individual — walk through each file separately [s] Skip — proceed with dirty tree (not recommended for releases) [a] Abort — stop the skill
After fixes: re-run git status --porcelain to confirm clean state.
Only proceed to Step 1 when tree is clean or user explicitly chose [s] Skip.
$ARGUMENTS for a PR number or URLgh pr view --json number,headRefName,urlgh pr view {N} --json title,body,author,headRefName,baseRefName,state,mergeable,reviewDecision,urlgh pr diff {N} — full diff for understanding changesgh pr checks {N} — CI status for all checksbash scripts/pr-merge-autopilot.sh --export-threads <N> (it queries GraphQL pullRequest.reviewThreads and exits without mutating) to enumerate unresolved threads with isResolved state and thread IDsa) Assess validity — judge whether the feedback is: - Valid: identifies a real bug, security issue, performance problem, or code quality concern - Nit/style: formatting or naming preference with no functional impact - Invalid: misunderstanding of the code, incorrect suggestion, or false positive - Already addressed: the fix is already in the diff
b) Take action based on assessment: - Valid + actionable: apply the fix directly (edit the file), commit, push - Nit/style: resolve the thread with a brief justification ("Style preference acknowledged, no functional impact") - Invalid: resolve the thread with evidence from the diff explaining why it's incorrect - Already addressed: resolve noting the fix is already in place
c) Resolve the thread via gh api:
- Use gh api repos/{owner}/{repo}/pulls/{N}/comments/{comment_id}/replies -X POST -f body='<reply>' to post a reply
- Mark the conversation as resolved when applicable
Present a summary table of all thread evaluations:
─── Thread Resolution Summary ──────────────────────
# Reviewer Verdict Action Taken
1 CodeRabbit Valid Fixed + pushed
2 CodeRabbit Nit/style Resolved (no impact)
3 Copilot Invalid Resolved (evidence)
4 gitar Already fixed Resolved
gh pr checks {N} after any pushesgh pr merge {N} --squash (default) or match the repo's merge strategy━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
nForma ► PR RESOLVE: #{N} {title}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
── Worktree ──────────────────────────────────────────
[clean | N issues found and fixed]
── Threads ──────────────────────────────────────────
[summary table]
── CI ───────────────────────────────────────────────
[pass/fail for each check]
── Result ───────────────────────────────────────────
[MERGED | BLOCKED — reason]
/nf:shipping-and-launch confirms readiness/nf:fix-tests/nf:quick for fixes/nf:code-review-and-qualitygh pr create