# Resolve Pr Review Threads

> PRの未Resolveレビュー指摘に対応するスキル。「PRの指摘に対応して」「Resolveされていないスレッドを解消」「PR reviewの対応」「未解決のレビューコメントを修正」「Copilotの指摘を直して」「Codexの指摘に対応」「chatgpt-codex-connectorの指摘」「レビュー対応」で起動。PR URL or 番号 → 未Resolveスレッド取得 → 対象ファイル修正 → ユーザーへ最終ゲートとプッシュの実行手順を案内、の流れで進める。

- Skill: `studiogadget/resolve-pr-review-threads` (Agent Skill)
- Install (CLI): `npx skillmds@latest add studiogadget/resolve-pr-review-threads`
- Raw SKILL.md: https://api.skillmd.com/api/skills/studiogadget/resolve-pr-review-threads/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: studiogadget (https://skillmd.com/u/studiogadget)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/studiogadget/resolve-pr-review-threads

---


# Resolve PR Review Threads

PRの未Resolveレビュースレッド（Copilot / Codex / chatgpt-codex-connector / 人間レビュアー）を取得し、指摘に対応した修正を行うスキル。最終ゲート実行はユーザーが行う。最後はユーザーへの実行手順案内で閉じる。

## 厳守事項（Hard Rules）

1. **修正は最小差分**: 指摘の解消に必要な最小限の変更のみ行う
2. **指摘1件=1コミット**: 指摘ごとに修正→ステージング→コミットを完了する（まとめてコミット禁止）
3. **テスト影響の確認**: 修正後に `make test` で既存テストが壊れないことを確認する
4. **最終ゲート**: 全指摘対応後の `make test-full` → `make check-all` はユーザーが実行する
5. **Resolveはユーザー完了後**: スレッドのResolveはユーザーが最終ゲートとプッシュを完了した後に扱う
6. **対応不要/設計意図による却下はResolveしない**: 理由を示してユーザーに判断を委ねる
7. **Git操作**: AIはコミットまで実行する。最終ゲート後のプッシュはユーザーが行う

## 入力

| パラメーター | 既定値 | 説明 |
|---|---|---|
| PR URL or 番号 | — | 対象PR（`https://github.com/<owner>/<repo>/pull/<N>` または `#N`） |
| reviewer_filter | なし | 特定レビュアーのみ対応（`copilot-pull-request-reviewer`, `chatgpt-codex-connector` 等） |
| auto_resolve | `true` | ユーザーが最終ゲートとプッシュを完了した後に、スレッドを自動Resolveする意図があるか |

## 手順

### Step 1: 未Resolveスレッドの取得

GraphQL APIで未Resolveスレッドを取得する。

```bash
gh api graphql -f query='
query($owner:String!,$repo:String!,$number:Int!){
  repository(owner:$owner,name:$repo){
    pullRequest(number:$number){
      reviewThreads(first:100){
        nodes{
          id
          isResolved
          path
          line
          comments(first:5){
            nodes{
              author{login}
              body
            }
          }
        }
      }
    }
  }
}' -f owner=<OWNER> -f repo=<REPO> -F number=<PR_NUMBER>
```

- `isResolved == false` のスレッドだけを抽出する
- `reviewer_filter` が指定されていれば `author.login` でさらに絞り込む
- 未Resolveスレッドが0件なら「未解決の指摘はありません」と報告して終了

### Step 2: 指摘の分類と影響分析

取得した各スレッドを以下に分類する:

| 分類 | 判断基準 | 対応 |
|------|----------|------|
| コード/ドキュメント修正 | ロジック誤り、整合性不足、欠落定義、命名不一致など | Step 3 へ |
| 設計判断の確認 | 「これは意図的か？」系の質問 | ユーザーに確認を求める |
| 誤検知/不適切 | 指摘内容が間違っている、または対応不要 | ユーザーに報告し判断を仰ぐ |

### Step 3: 対象ファイルの修正（指摘ごとにコミット）

各指摘に対し以下のサブステップを繰り返す:

#### 3.1 修正の実施

1. 指摘されたファイルの該当行周辺を読み込む
2. 指摘内容を理解し、修正方針を決定する
3. 最小差分で修正を適用する
4. 関連する他ファイルへの影響がないか確認し、必要なら連鎖修正する
5. `make test` を実行しテスト通過を確認する（ドキュメントのみの修正時はスキップ可）

**修正の判断基準:**
- 指摘が正当で、修正コストが低い → 即修正
- 複数ファイルにまたがる整合性修正 → まとめて修正
- 大規模リファクタが必要 → ユーザーに報告し、別PR/Issue化を提案

#### 3.2 ステージング & コミット

1. `git status --short` で変更確認
2. 指摘対応で変わったファイルだけを `git add`（`docs/code-review/*.md` は除外）
3. コミットメッセージ: `fix(<scope>): <指摘の要約>`（72文字以内）
4. `git commit` → ハッシュを記録 → 次の指摘へ

### Step 4: ユーザーへの実行手順案内と結果報告

全指摘の修正コミット完了後、AI は最終ゲートとプッシュを実行せず、ユーザーへ実行手順を案内して処理を完了する。最終ゲート実行はユーザーが行う。

### ユーザーへの実行手順

1. `make test-full`
2. `make check-all`
3. `git push origin <branch>`

**補足**:
- この実行ではスレッドをResolveしない
- `auto_resolve=true` でも、ユーザーが最終ゲートとプッシュを完了する前にはResolveしない
- プッシュ完了後に未Resolveスレッドを閉じる必要があれば、再度このスキルを実行するか手動で対応する

以下の形式で最終報告:

```markdown
## レビュー指摘対応完了サマリー

**対象PR**: #<PR番号>
**未Resolveスレッド数**: <取得時の件数>
**修正対応**: <件数>件
**Resolve**: ⏳ 未実行（ユーザーの最終ゲートとプッシュ完了後に対応）
**ユーザー判断待ち**: <件数>件
**指摘対応中のテスト**: ✅ 成功 / ❌ 失敗
**最終ゲート**: ⏳ 未実行（ユーザーが `make test-full` → `make check-all` を実行）
**プッシュ**: ⏳ 未実行（最終ゲート成功後にユーザーが実行）

### コミット一覧
- `<hash1>`: <summary1>
- `<hash2>`: <summary2>

### 修正ファイル一覧
- <path> (指摘概要)

### ユーザー判断待ち（対応不要/却下提案）
- スレッド#X: <指摘概要> → <却下理由>

### ユーザーへの実行手順
1. `make test-full`
2. `make check-all`
3. `git push origin <branch>`

### 次のアクション
- [ ] `make test-full` を実行する
- [ ] `make check-all` を実行する
- [ ] 成功後に `git push origin <branch>` を実行する
- [ ] プッシュ完了後、必要に応じて未Resolveスレッドを解消する
```

## レビュアー別の注意点

| レビュアー | 特徴 | 対応時の留意 |
|---|---|---|
| `copilot-pull-request-reviewer` | 整合性・欠落・命名の指摘が多い | 仕様書間の一貫性を重視して修正 |
| `chatgpt-codex-connector` | ロジック・セキュリティ・パフォーマンス指摘が多い | 実装コードへの影響を優先確認 |
| 人間レビュアー | 設計意図・運用面の質問が多い | 安易にResolveせず確認を求める |

## エラーハンドリング

| 状況 | 対応 |
|---|---|
| GraphQL認証エラー | `gh auth status` で認証状態を確認し報告 |
| PRが見つからない | URLまたはPR番号の再確認を求める |
| スレッドResolve権限なし | 修正のみ実施し、手動Resolveを依頼 |
| 修正対象ファイルがローカルにない | ブランチの確認とチェックアウトを提案 |

