# Resolve Pr Review Threads

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

- **Type:** Skill
- **Install:** `agentstack add skill-studiogadget-skills-resolve-pr-review-threads`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [studiogadget](https://agentstack.voostack.com/s/studiogadget)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [studiogadget](https://github.com/studiogadget)
- **Source:** https://github.com/studiogadget/skills/tree/main/resolve-pr-review-threads

## Install

```sh
agentstack add skill-studiogadget-skills-resolve-pr-review-threads
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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///pull/` または `#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= -f repo= -F 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(): `（72文字以内）
4. `git commit` → ハッシュを記録 → 次の指摘へ

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

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

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

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

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

以下の形式で最終報告:

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

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

### コミット一覧
- ``: 
- ``: 

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

### ユーザー判断待ち（対応不要/却下提案）
- スレッド#X:  → 

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

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

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

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

## エラーハンドリング

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

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [studiogadget](https://github.com/studiogadget)
- **Source:** [studiogadget/skills](https://github.com/studiogadget/skills)
- **License:** Apache-2.0

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-studiogadget-skills-resolve-pr-review-threads
- Seller: https://agentstack.voostack.com/s/studiogadget
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
