reviewlisted
Install: claude install-skill iroha924/gleanery
# review — 変更を、独立したレビュアーで洗う
## このスキルが防ぐ失敗
**レビューの失敗は「指摘が無かった」の形で届く。**走らなかったレビュアーも、
途中で切れたレビュアーも、読む先が見つからなかったレビュアーも、出力は同じ「0 件」になる。
| 失敗 | 何が起きるか |
|---|---|
| 変更を生んだ思考を持ったままレビューする | **追認になる。**「そう書いた理由」を思い出してしまう |
| 単一のモデルで見る | **同じモデル族の共通の盲点は、何体並べても共通のまま残る** |
| 先に返ったレビュアーから読み始める | 後から返る指摘と突き合わせる前に判断が固まる |
| 全文を 1 応答へ詰める | 途中で切れると、**何件あったのかすら分からない** |
| 走らなかった観点を出力に出さない | 「指摘が無かった」と区別が付かない |
| 再現せずに `REFUTED` を出す | **実在する欠陥が、裁定を経たという体裁つきで消える** |
| 抑制の指示を与える | 文字どおり従われ、実在する指摘を失う |
## 2 つの起動の仕方
| やりたいこと | 対象 | 気を付けること |
|---|---|---|
| 自分の変更をレビューする | コミット済み + 未コミット(既定) | 危険は**追認**。レビュアーには会話を渡さない |
| 他人の PR をレビューする | PR 番号 | 危険は**本文が信頼できない入力**であること |
**他人が書いた diff を読むなら、隔離は無い。**隔離コンテナ(egress 制限、`--restricted`、
フックと `.mcp.json` の停止、GitHub の資格情報を渡す経路の分離)は撤去済みで、レビュアーは `Bash` を持ったまま、
管理用の資格情報と認証済みの `gh` がある環境で走る。**前提が崩れるのは次の 3 つ**:
リポジトリを public にする / collaborator や fork PR を受ける / **他のリポジトリの PR を読む**。
塞ぎ直す手段は無い —— 下の「塞ぐ手段は無い」を読むこと。
**危険の差は「何を読むか」ではなく「そのツリーのコードを実行するか」に出る。**
| 経路 | ディスクに載るもの | 成立する攻撃 |
|---|---|---|
| PR 番号・URL | 本文と diff の**テキストだけ**。作業ツリーは自分の HEAD のまま | プロンプトインジェクション |
| checkout した後の ref 範囲 | **他人のツリーそのもの**(マニフェストの script、テスト、フック、指示ファイル) | 上に加えて、実行すれば**任意コード実行。インジェクションは要らない** |
**PR 番号で起動したときは checkout しない。**base がローカルに無くても `gh pr diff` の出力だけで読む。
checkout した時点で上の表の下の行へ移る。
### 塞ぐ手段は無い
**配布物から強制できるものは無い。**プラグインが配れる settings のキーは `agent` と
`subagentStatusLine` の 2 つで、`sandbox` も `permissions` も配れない。`permissionMode` / `hooks` /
`mcpServers` はプラグイン由来の agent では無