with one click
with one click
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | review-pr |
| description | PR を別セッション視点で厳格にレビューし、結果を PR コメントに投稿 |
| argument-hint | <PR 番号> |
| disable-model-invocation | true |
PR #$ARGUMENTS を独立視点で厳格にレビューしてください。
docs/spec/ 配下が正。PR 本文「関連」節の spec 節リンクが起点。
同じ PR への 2 回目以降の呼び出しかもしれないため、最新状態とコメント履歴を必ず取得して現状を判断する。 過去の Claude Review コメントがあっても「既にレビュー済み」で即終了せず、PR を読んだ上で 初回レビュー / 再レビュー (対応監査) / 再レビュー不要 (対応コミットなし) のいずれかを判断する。
以下を並列で:
gh pr view $ARGUMENTS --json title,state,body,additions,deletions,changedFiles,baseRefName,headRefName,mergeablegh pr view $ARGUMENTS --comments (過去の Claude Review コメントも取得)gh pr diff $ARGUMENTS --name-onlygh issue view <N> --comments で決定経緯を追う情報収集が終わったら、PR 本文「レビュー担当への申し送り」節を熟読し、何を重点的に見るかを決める。過去の Claude Review コメントがあれば、前回指摘と最新コミットを突合して対応状況を確認する (再レビュー時)。
spec の各条項について、実装のどこがどのように満たしているかを file:line で確認:
実装の「似たロジックが複数箇所に存在するパターン」を全経路で grep 網羅:
editor.setItems 直打ち箇所の renumber 抜け)grep ベースで経路を列挙し、各経路で期待処理の有無を表にする。
Vitest / Playwright のテストが「ガードが効いたから通った」のか「前提が揃わず通った」のかを判定:
.claude/skills/test-strategy/SKILL.md の「抑制系修正のフィクスチャ選定」章が参考になるcd frontend && npx vitest run を実行して claim された pass 数を実測確認as キャスト・any・Non-null assertion の妥当性)PR diff に schemas/*.json (グローバル定義スキーマ) 変更が含まれているか を必ず確認:
gh pr diff <PR番号> --name-only | grep -E "^schemas/"
変更がある場合は以下を Must-fix として指摘:
examples/<project-id>/extensions/<namespace>/*.json で表現可能なら schema 変更不要)type: "other" + outputSchema パターン等)紐付かない schema 変更は 必ず Must-fix で指摘し、revert もしくは別 ISSUE 起票を推奨。memory feedback_schema_governance_strict.md 参照。
PR diff に画面関連ファイル (screens/ / Designer.tsx / PuckBackend / CssFrameworkContext 等) が含まれる場合:
screen.design.editorKind → project.techStack.designer.editorKind → "grapesjs" の 3 段フォールバック (#826 で project.design から移行)screen.design.cssFramework → project.techStack.designer.cssFramework → "bootstrap" の 3 段フォールバック (#826 で project.design から移行)primitive フィールドが BUILTIN_PRIMITIVE_NAMES に含まれる既知の名前であるか
BUILTIN_PRIMITIVE_NAMES は frontend/src/puck/buildConfig.ts でエクスポートされているeditorKind === "puck" 画面を明示除外しているか詳細仕様: docs/spec/multi-editor-puck.md § 2.3 / § 4.1 / § 4.2
PR diff に 協調編集関連ファイル が含まれる場合、frontend/e2e/collab/*.spec.ts の手動 smoke 実行を強く推奨 (CI 未設定のため、本 step が唯一の実機検証経路):
gh pr diff <PR番号> --name-only | grep -E "(useEditSession|EditSessionDropdown|editSessionStore|presenceStore|presenceManager|draftStore|draftHistoryStore|wsBridge|EditorHeader|DesignSubToolbar|frontend/e2e/collab/)"
feedback_no_ai_managed_dev_server.md 遵守、AI が dev server を立てない):
curl -s http://localhost:5179/healthz > /dev/null && echo "backend OK" || echo "backend MISSING"
curl -s http://localhost:5173/ > /dev/null && echo "frontend OK" || echo "frontend MISSING"
cd frontend && npx playwright test e2e/collab/ --reporter=list 2>&1 | tail -30
cd backend && npm run dev / cd frontend && npm run dev の起動を依頼してから再実行/review-pr 実行時に手動 smoke する運用docs/spec/ を勝手に書き換えない (spec 不備は指摘のみ)git commit / git push 禁止)npx vitest run / npx playwright test は可、ただし --update-snapshots 等の書き込みオプションは不可)tmp/review-cache/ 配下の一時ファイルのみ可 (レビュー結果書き出し用。tmp/ は .gitignore 済)結果を一時ファイルに書き出してから gh pr comment で投稿する。
一時ファイルの保存先は プロジェクト直下の tmp/review-cache/ 配下 にする (OS 非依存・.gitignore 済で commit 事故なし・gh から絶対パスで参照可能・.claude/ 配下の保護対象外なので書き込み確認が不要)。Unix の /tmp/ や Windows の %TEMP% はツール間で path 解決が揺れるため使わない。
事前に mkdir -p tmp/review-cache でディレクトリを確保してから、tmp/review-cache/review-pr-$ARGUMENTS.md に以下の構造で書き出す:
## Claude Review (別セッション) — <YYYY-MM-DD>
**レビュアー**: Claude <モデル名 / ID>
**対象コミット**: <最新コミット SHA 先頭 7 文字>
**レビュー手順**: spec 逐条突合 + 系統的抜け漏れチェック + テスト偽陽性チェック + コード品質
---
### Must-fix
- `<file>:<line>` — <問題点> / 推奨修正: <...>
### Should-fix
- `<file>:<line>` — <問題点> / 推奨修正: <...>
### Nit / 質問
- ...
---
### spec 逐条突合結果
#### §X.Y <章タイトル>
| 条項 | 実装箇所 | 判定 |
|---|---|---|
| (a) <条項要約> | `<file>:<line>` | ✓ |
| (b) <条項要約> | — | ❌ <欠落内容> |
| ... | ... | ... |
---
### 検証方法
- `gh pr view` / `gh pr diff` で差分把握
- 主要ファイル読み込み: <リスト>
- `cd frontend && npx vitest run` → <pass 数> 件 pass 確認 / 未実行
- Playwright: 未実行 / 実行済
---
### 総合評価
**マージ可 / 修正後マージ / 大幅修正必要** のいずれか。短い根拠付きで。
UI 影響のある PR ならマージ判断はユーザー。レビューは判断材料の提供。
gh pr comment $ARGUMENTS --body-file tmp/review-cache/review-pr-$ARGUMENTS.md
投稿前にユーザーの許可を得るフローになる (権限設定による)。拒否された場合でも tmp/review-cache/review-pr-$ARGUMENTS.md に結果が残っているので、ユーザーが内容を確認してから手動で投稿できる。
投稿完了後、ユーザーに短く報告:
gh pr view $ARGUMENTS --json url --jq .url)