skills/pr-review-fix/SKILL.md
PRの未解決コメントを1回修正してpushする。定期実行は /pr-review-loop を使う。「/pr-review-fix」「コメント直して」と言った時に使用。
npx skillsauth add hirokimry/vibecorp pr-review-fixInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
PRの現在の状態を確認し、未解決コメントがあれば修正してpushする。 1回の実行で現在の指摘を処理して終了する。
/vibecorp:pr-review-fix # 現在のブランチのPRを自動検出
/vibecorp:pr-review-fix <PR URL> # PR URLを直接指定
/vibecorp:pr-review-fix --worktree <path> # worktree 内で実行
--worktree <path> が指定された場合、全操作を指定パス内で実行する。
cd <path> && command で実行する<path>/ を基準とした絶対パスを使用する--worktree <path> を引き継ぐ$CLAUDE_PROJECT_DIR: worktree モードでは <path> に置き換える/vibecorp:pr を先に実行すること)PR URLが指定された場合: URLからowner/repo/PR番号を抽出する。
PR URLが未指定の場合: 現在のブランチから自動検出する:
gh pr view --json number,url,headRefName,baseRefName,state --jq '{number, url, headRefName, baseRefName, state}'
PRが見つからない場合はエラー。
gh pr view {pr_number} --json state --jq '.state'
MERGED → 「PR #{pr_number} はマージ済みです」と報告して正常終了CLOSED → 「PR #{pr_number} はクローズされています」と報告して正常終了OPEN → ステップ3へawk '/^coderabbit:/{found=1; next} found && /^[^ ]/{exit} found && /enabled:/{print $2}' \
"$CLAUDE_PROJECT_DIR"/.claude/vibecorp.yml
false → CodeRabbit 無効。ステップ7(auto-merge確認)へ直接進むtrue または空(未定義)→ CodeRabbit 有効。ステップ4へgh api repos/{owner}/{repo}/issues/{pr_number}/comments \
--paginate \
--jq '[.[] | select(.user.login | test("coderabbit"; "i")) | select(.body | test("[Rr]ate limit"))] | length'
1以上なら「CodeRabbit が rate limit 中のため停止しています。rate limit 解除後に再実行してください」と報告して停止する。
GraphQL API で未解決の CodeRabbit レビュースレッドを取得する:
gh api graphql -f query='
query {
repository(owner: "{owner}", name: "{repo}") {
pullRequest(number: {pr_number}) {
reviewThreads(first: 100) {
nodes {
isResolved
id
comments(first: 10) {
nodes {
id
databaseId
author { login }
body
path
line
}
}
}
}
}
}
}' \
--jq '.data.repository.pullRequest.reviewThreads.nodes
| [.[] | select(.isResolved == false)
| select(.comments.nodes[0].author.login | test("coderabbit"; "i"))]'
isResolved == false かつ先頭コメントが CodeRabbit のスレッドのみ抽出id(thread node ID)は却下時の resolve mutation で使用する未解決0件 → 「未解決コメントなし」と報告して正常終了。 未解決あり → ステップ6へ。
.claude/rules/review-criteria.md の判定基準に従い、指摘を分類する。
設計方針に関わる大きな変更はユーザーに確認する。
要修正リストに対して、各指摘の具体的な修正計画を策定する。このステップではコードの変更は行わない。
手順:
各指摘について以下を明記する:
修正計画に従ってコードを修正する。
修正した指摘: 返信不要。次のステップ(6.5)の push 時に CodeRabbit の auto-resolve で自動的に resolved になる。
却下した指摘: 却下理由を返信した後、GraphQL mutation でスレッドを resolve する。
却下理由の返信:
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments \
-X POST \
-f body="{却下理由の markdown}" \
-F in_reply_to={comment_database_id}
{comment_database_id} はステップ5で取得した先頭コメントの databaseId(REST API 整数ID)返信後、即座にスレッドを resolve する:
gh api graphql -f query='
mutation {
resolveReviewThread(input: { threadId: "{thread_node_id}" }) {
thread { isResolved }
}
}'
{thread_node_id} はステップ5で取得した各スレッドの id フィールド(例: PRRT_xxx)/vibecorp:commit を使用してコミットし(worktree モードでは --worktree <path> を引き継ぐ)、リモートに push する:
git push
## /vibecorp:pr-review-fix 完了
- PR: #{pr_number}
- 修正: {n}件
- 却下: {n}件
マージ済みの場合:
## /vibecorp:pr-review-fix 完了
- PR: #{pr_number}
- 状態: マージ済み
未解決コメントなしの場合:
## /vibecorp:pr-review-fix 完了
- PR: #{pr_number}
- 未解決コメント: なし
--force、--hard、--no-verify は使用しない@coderabbitai approve の投稿は禁止 — approve は CodeRabbit が自動発行するか、人間が手動で行う\(...) を使わない — 必ず + で結合する(根拠)2>/dev/null、|| echo、; echo 等のリダイレクトやフォールバックを付加しない(根拠)data-ai
skills/**/SKILL.md 内に embed された 5 行以上のエージェント呼出プロンプトテンプレ・長文ブロックを .claude/rules/notification-prompt-extraction.md 基準で skills/<skill>/prompts/<name>.md に切り出す migration skill。「/prompts-extract-all」「プロンプト切り出し」「プロンプト extract」「SKILL.md プロンプト migration」と言った時に使用。検出は awk でフェンスコードブロックを抽出して行数カウント、要否判定は LLM が閾値・用途軸・命名規約と照合。diff 提案 → CEO 承認 → 書換の 2 段階で挙動を壊さず適用する。自動マージ禁止、自律ループ対象外。
documentation
.github/workflows/**/*.{yml,yaml} の --body 通知文と hooks/**/*.sh の長文 echo/printf/heredoc を .claude/rules/notification-prompt-extraction.md 基準で個別 .md ファイルに切り出す migration skill。「/notifications-extract-all」「通知文切り出し」「通知文 extract」「workflow 通知 migration」と言った時に使用。検出は grep で機械絞り込み、要否判定は LLM が閾値・命名規約と照合。diff 提案 → CEO 承認 → 書換の 2 段階で挙動を壊さず適用する。自動マージ禁止、自律ループ対象外。
development
`**/*.sh` / `**/*.js` / `**/*.ts` / `**/*.py` / `**/*.rb` / `**/*.go` / 設定ファイル等のコード内コメントを一括棚卸しし、 `.claude/rules/code-comments.md` と機械的に照合する。 diff 提案 → CEO 承認 → 書換の 2 段階で自動マージを禁じる。 生成コード・`node_modules`・`vendor`・`dist`・`build` 等は除外する。 「/vibecorp:comments-rewrite-all」「コメント全書き直し」「コード内コメント棚卸し」 と言った時に使用。
development
skills/**/SKILL.md・agents/*.md・.claude/rules/*.md を .claude/rules/prompt-writing.md 基準で一括書き直し提案するスキル。「/prompts-rewrite-all」「プロンプト書き直し」「スキル一括書き直し」「エージェント書き直し」と言った時に使用。claude-code-guide サブエージェントで Claude Code 公式仕様(docs.claude.com)を確認し、prompt-writing.md の指針 MUST / 禁止パターンと照合する。diff 提案 → CEO 承認 → 書き換えの 2 段階で挙動を壊さず適用する。自動マージ禁止。