review

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

/review Skill (PR Comprehensive Review)

/review 技能(PR全面审查)

Purpose

用途

Next.js 16 + Supabase + Stripe + Playwright コードベースのPRを包括レビューし、 マージ可否を判定する。
针对Next.js 16 + Supabase + Stripe + Playwright技术栈的代码仓库PR进行全面审查,并判定是否可以合并。

Invocation

调用方式

/review [owner/repo] [pr-number] [--focus <aspect>]
/review --local [--focus <aspect>]
/review [owner/repo] [pr-number] [--focus <aspect>]
/review --local [--focus <aspect>]

引数

参数

引数必須説明
owner/repo
Yes*GitHubリポジトリ(例:
my-org/ppt-trans
pr-number
Yes*PRの番号
--local
Noローカルの差分をレビュー(PR作成前のセルフレビュー用)
--focus
No実行するレビュー観点を限定(デフォルト:
all
*
--local
指定時は
owner/repo
pr-number
は不要
参数必填说明
owner/repo
是*GitHub仓库(示例:
my-org/ppt-trans
pr-number
是*PR编号
--local
审查本地代码差异(用于PR创建前的自我审查)
--focus
限定审查的维度(默认值:
all
*指定
--local
时,
owner/repo
pr-number
为非必填

--focus オプション

--focus 选项

実行されるエージェントユースケース
all
全5エージェント通常のPRレビュー(デフォルト)
security
security-code-reviewer認証/認可/Stripe変更時
perf
performance-reviewerN+1/キャッシュ/PPTX処理変更時
qa
test-coverage-reviewerテストファイル変更時
docs
documentation-accuracy-reviewerenv/README/CLAUDE.md変更時
types
code-quality-reviewer型定義/API変更時
启用的Agent使用场景
all
全部5个Agent常规PR审查(默认)
security
security-code-reviewer涉及认证/授权/Stripe变更时
perf
performance-reviewer涉及N+1查询/缓存/PPTX处理变更时
qa
test-coverage-reviewer涉及测试文件变更时
docs
documentation-accuracy-reviewer涉及环境配置/README/CLAUDE.md变更时
types
code-quality-reviewer涉及类型定义/API变更时

--local オプション(ローカルレビュー)

--local 选项(本地审查)

bash
/review --local [--focus <aspect>]
PR作成前にローカルの差分をレビュー:
  • ベースブランチを自動検出(下記優先順)
  • PRコメント投稿なし(ターミナル出力のみ)
  • 全観点レビュー or
    --focus
    で限定
ベースブランチ自動検出(優先順):
  1. git symbolic-ref refs/remotes/origin/HEAD
    → default branch
  2. main
    が存在すれば
    main
  3. master
    が存在すれば
    master
  4. develop
    が存在すれば
    develop
  5. git merge-base HEAD <candidate>
    で有効なもの
bash
/review --local [--focus <aspect>]
在创建PR前审查本地代码差异:
  • 自动检测基准分支(优先级如下)
  • 不提交PR评论(仅在终端输出)
  • 支持全维度审查或通过
    --focus
    限定维度
基准分支自动检测(优先级):
  1. git symbolic-ref refs/remotes/origin/HEAD
    → 默认分支
  2. 若存在
    main
    则使用
    main
  3. 若存在
    master
    则使用
    master
  4. 若存在
    develop
    则使用
    develop
  5. 通过
    git merge-base HEAD <candidate>
    筛选有效分支

示例

bash
undefined
bash
undefined

全観点レビュー(デフォルト)

全维度审查(默认)

/review my-org/ppt-trans 123
/review my-org/ppt-trans 123

セキュリティのみ

仅安全维度审查

/review my-org/ppt-trans 123 --focus security
/review my-org/ppt-trans 123 --focus security

パフォーマンスのみ

仅性能维度审查

/review my-org/ppt-trans 123 --focus perf
/review my-org/ppt-trans 123 --focus perf

ローカル差分の全観点レビュー

本地代码差异全维度审查

/review --local
/review --local

ローカル差分のセキュリティレビューのみ

本地代码差异仅安全维度审查

/review --local --focus security
undefined
/review --local --focus security
undefined

Output Contract(必須出力)

输出规范(必填输出)

  1. Summary(2-4行)
  2. Checklist Coverage(MUST - 必ず出力):
    markdown
    ### Checklist Coverage (must-check v1.0)
    | Domain | Status |
    |--------|--------|
    | Supabase | ✅ OK / ⚠️ 要確認 / ❌ NG / N/A |
    | Pipeline | ✅ / ⚠️ / ❌ / N/A |
    | Env/Secrets | ✅ / ⚠️ / ❌ / N/A |
    | Tests | ✅ / ⚠️ / ❌ / N/A |
    | Stripe | ✅ / ⚠️ / ❌ / N/A |
  3. Blockers(各: why + where + fix + Evidence
  4. Suggestions(confidence>=75 には Evidence必須
  5. Nice-to-have
  6. Merge decision:
    • ✅ Merge
    • ⚠️ Merge with follow-ups(follow-up一覧)
    • ❌ Needs changes(blockers一覧)
  1. 摘要(2-4行)
  2. 检查清单覆盖情况(必填 - 必须输出):
    markdown
    ### 检查清单覆盖情况(必查项 v1.0)
    | 领域 | 状态 |
    |--------|--------|
    | Supabase | ✅ 通过 / ⚠️ 需确认 / ❌ 不通过 / N/A 不涉及 |
    | 流水线 | ✅ / ⚠️ / ❌ / N/A |
    | 环境配置/密钥 | ✅ / ⚠️ / ❌ / N/A |
    | 测试 | ✅ / ⚠️ / ❌ / N/A |
    | Stripe | ✅ / ⚠️ / ❌ / N/A |
  3. 阻塞问题(每项需包含:原因 + 位置 + 修复方案 + 证据
  4. 建议(置信度>=75时必须提供证据
  5. 优化点
  6. 合并决策:
    • ✅ 可合并
    • ⚠️ 可合并但需后续跟进(列出跟进项)
    • ❌ 需要修改(列出阻塞问题)

Evidence ルール(MUST)

证据规则(必填)

confidence >= 75 の指摘には必ず Evidence を付与:
  • ファイルパス + 行番号
  • 加えて grep/diff の断片、または該当コード引用
例:
markdown
- [confidence=85] RLS policy が無い (supabase/migrations/xxx.sql:15)
  Evidence: `grep -n "CREATE POLICY" supabase/migrations/xxx.sql` → 結果なし
置信度 >=75 的问题必须附带证据:
  • 文件路径 + 行号
  • 额外提供 grep/diff片段或对应代码引用
示例:
markdown
- [置信度=85] 缺少RLS策略 (supabase/migrations/xxx.sql:15)
  证据: `grep -n "CREATE POLICY" supabase/migrations/xxx.sql` → 无结果

Guardrails

约束规则

  • 秘密情報(env値、keys、tokens)をログ/コメントに出さない
  • Blockersは「実際にバグ/脆弱性/データ損失/課金エラー/flaky CI」を引き起こすものに限定
  • 大規模リファクタはfollow-up issueとして提案

  • 不得在日志/评论中输出敏感信息(环境变量值、密钥、令牌)
  • 阻塞问题仅限定为会实际引发bug/漏洞/数据丢失/计费错误/不稳定CI的内容
  • 大规模重构需作为后续Issue提出

Workflow

工作流程

Phase 0: 事前情報収集

阶段0:事前信息收集

  1. プロジェクトルール読み込み
    • CLAUDE.md
      を Read
    • 抽出項目:
      • スタック(Next.js 16, React 19, Supabase, Stripe, Playwright)
      • コーディング規約(any禁止、Server Actions優先、Schema-First)
      • セキュリティ方針(RLS、Rate Limiting、CSRF)
      • テスト方針(UNIFIED_TEST_CONFIG、MVP範囲)
  2. レビューチェックリスト読み込み
    • .claude/review-checklists/README.md
      を Read
    • .claude/review-checklists/must-check.md
      を Read
    • バージョン(例:
      v1.0
      )を記録
  3. PR情報取得
--local オプション時(堅牢なBASE検出):
bash
undefined
  1. 读取项目规则
    • 读取
      CLAUDE.md
    • 提取内容:
      • 技术栈(Next.js 16, React 19, Supabase, Stripe, Playwright)
      • 编码规范(禁止使用any、优先使用Server Actions、Schema-First开发)
      • 安全策略(RLS、速率限制、CSRF)
      • 测试策略(UNIFIED_TEST_CONFIG、MVP范围)
  2. 读取审查检查清单
    • 读取
      .claude/review-checklists/README.md
    • 读取
      .claude/review-checklists/must-check.md
    • 记录版本(示例:
      v1.0
  3. 获取PR信息
指定--local选项时(稳健的基准分支检测):
bash
undefined

0) 事前 fetch(失敗しても続行)

0) 预先fetch(失败则继续执行)

git fetch origin --prune --tags >/dev/null 2>&1 || true
git fetch origin --prune --tags >/dev/null 2>&1 || true

ベースブランチ自動検出(ループ式で安全に)

自动检测基准分支(循环式安全检测)

BASE=""
BASE=""

1) origin/HEAD から default branch を取得

1) 从origin/HEAD获取默认分支

if git symbolic-ref -q refs/remotes/origin/HEAD >/dev/null 2>&1; then BASE="$(git symbolic-ref refs/remotes/origin/HEAD | sed 's|refs/remotes/origin/||')" fi
if git symbolic-ref -q refs/remotes/origin/HEAD >/dev/null 2>&1; then BASE="$(git symbolic-ref refs/remotes/origin/HEAD | sed 's|refs/remotes/origin/||')" fi

2) fallback candidates(main → master → develop)

2) 备选分支(main → master → develop)

if [ -z "$BASE" ]; then for b in main master develop; do if git show-ref -q "refs/remotes/origin/$b"; then BASE="$b" break fi done fi
if [ -z "$BASE" ]; then for b in main master develop; do if git show-ref -q "refs/remotes/origin/$b"; then BASE="$b" break fi done fi

3) last resort

3) 最终备选

[ -z "$BASE" ] && BASE="main"
echo "Base branch: $BASE"
[ -z "$BASE" ] && BASE="main"
echo "基准分支: $BASE"

4) 対象ファイル列を先に確定(レビュー負荷軽減)

4) 先确定目标文件列表(减轻审查负载)

CHANGED_FILES=$(git diff --name-only "origin/$BASE...HEAD") echo "Changed files:" echo "$CHANGED_FILES"
CHANGED_FILES=$(git diff --name-only "origin/$BASE...HEAD") echo "变更文件:" echo "$CHANGED_FILES"

5) 領域判定(docs/ だけなら security/perf を N/A に寄せる等)

5) 领域判定(如仅变更docs/则将security/perf标记为N/A)

if echo "$CHANGED_FILES" | grep -qv '^docs/'; then

コード変更あり → 全観点レビュー

git diff "origin/$BASE...HEAD" else

docs/ のみ → documentation 観点のみ

echo "Docs-only change detected, focusing on documentation review" fi

**通常(owner/repo PR#)時:**
```bash
gh pr view <PR_NUMBER> --repo <REPO> --json title,body,author,labels,files,additions,deletions,url
gh pr diff <PR_NUMBER> --repo <REPO>
  1. PR要約作成
    • 変更目的(1-2行)
    • 影響範囲(UI/API/DB/Billing/Auth/PPTX/E2E)
    • リスクフラグ(スキーマ変更、認証変更、課金変更、ファイル処理)
if echo "$CHANGED_FILES" | grep -qv '^docs/'; then

存在代码变更 → 全维度审查

git diff "origin/$BASE...HEAD" else

仅docs/变更 → 仅审查文档维度

echo "检测到仅文档变更,将聚焦文档审查" fi

**常规模式(owner/repo PR#)时:**
```bash
gh pr view <PR_NUMBER> --repo <REPO> --json title,body,author,labels,files,additions,deletions,url
gh pr diff <PR_NUMBER> --repo <REPO>
  1. 生成PR摘要
    • 变更目的(1-2行)
    • 影响范围(UI/API/数据库/计费/认证/PPTX/端到端测试)
    • 风险标记( schema变更、认证变更、计费变更、文件处理变更)

Phase 1: エージェント並列実行

阶段1:Agent并行执行

--focus オプションに応じてエージェントを選択:
--focus実行エージェント
all
(デフォルト)
全5エージェント並列
security
security-code-reviewer のみ
perf
performance-reviewer のみ
qa
test-coverage-reviewer のみ
docs
documentation-accuracy-reviewer のみ
types
code-quality-reviewer のみ
全エージェント一覧:
エージェントsubagent_type責務
code-quality-reviewercode-quality-reviewerコード品質・設計・型安全
performance-reviewerperformance-reviewerパフォーマンス・N+1・キャッシュ
security-code-reviewersecurity-code-reviewerRLS・Webhook・IDOR・XSS
test-coverage-reviewertest-coverage-reviewerPlaywright決定論・モック・カバレッジ
documentation-accuracy-reviewerdocumentation-accuracy-reviewerenv・手順・文言の整合性
実装時の注意:
  • --focus all
    または未指定の場合、全5エージェントを 並列で Task実行
  • --focus <aspect>
    指定時、該当エージェントのみ実行
各エージェントへのプロンプト共通部分:
undefined
根据--focus选项选择Agent:
--focus值执行的Agent
all
(默认)
全部5个Agent并行执行
security
仅security-code-reviewer
perf
仅performance-reviewer
qa
仅test-coverage-reviewer
docs
仅documentation-accuracy-reviewer
types
仅code-quality-reviewer
全部Agent列表:
Agentsubagent_type职责
code-quality-reviewercode-quality-reviewer代码质量、设计、类型安全
performance-reviewerperformance-reviewer性能、N+1查询、缓存
security-code-reviewersecurity-code-reviewerRLS、Webhook、IDOR、XSS
test-coverage-reviewertest-coverage-reviewerPlaywright用例稳定性、Mock、覆盖率
documentation-accuracy-reviewerdocumentation-accuracy-reviewer环境配置、步骤、文案一致性
实现注意事项:
  • --focus all
    或未指定时,并行执行全部5个Agent任务
  • 当指定
    --focus <aspect>
    时,仅执行对应Agent
各Agent的通用提示词部分:
undefined

コンテキスト

上下文

  • スタック: Next.js 16 + React 19 + TypeScript + Supabase + Stripe + Playwright
  • プロジェクトルール: [CLAUDE.md要約]
  • PR要約: [Phase 0の要約]
  • 変更ファイル: [ファイル一覧]
  • 技术栈: Next.js 16 + React 19 + TypeScript + Supabase + Stripe + Playwright
  • 项目规则: [CLAUDE.md摘要]
  • PR摘要: [阶段0生成的摘要]
  • 变更文件: [文件列表]

重点チェック(ppt-trans固有)

重点检查项(ppt-trans项目专属)

  • Next.js 16: params: Promise<T> の正しい実装
  • Server Actions vs API Routes の使い分け
  • Schema-First開発(openapi.yaml先行)
  • Supabase RLS、snake_case型、型再生成
  • E2E: UNIFIED_TEST_CONFIG参照、ハードコード禁止
undefined
  • Next.js 16: params: Promise<T> 的正确实现
  • Server Actions与API Routes的合理区分
  • Schema-First开发(openapi.yaml优先)
  • Supabase RLS、snake_case类型、类型重新生成
  • 端到端测试: 必须引用UNIFIED_TEST_CONFIG、禁止硬编码
undefined

Phase 2: 自動チェック(推奨)

阶段2:自动检查(推荐)

実行可能なら以下を実行し、結果をレビュー本文に記載:
bash
npm run type-check  # 型チェック
npm run lint        # リント
npm run test        # 影響範囲のテスト
結果形式:
  • ✅成功
  • ❌失敗(エラー内容)
  • ⏭️未実行(理由)
若可执行则运行以下命令,并将结果纳入审查正文:
bash
npm run type-check  # 类型检查
npm run lint        # 代码扫描
npm run test        # 影响范围测试
结果格式:
  • ✅成功
  • ❌失败(错误内容)
  • ⏭️未执行(原因)

Phase 2.5: セキュリティゲート自動検出(3本)

阶段2.5:安全网关自动检测(3项)

PR差分に含まれるファイルに対して以下を自動実行する。grepベースで検出可能なもののみ。
针对PR差异中的文件自动执行以下检查,仅检测可通过grep识别的内容。

Gate 1: performSecurityChecks() 呼び出し漏れ

网关1:遗漏performSecurityChecks()调用

bash
undefined
bash
undefined

PR差分のAPI Routeファイルで performSecurityChecks を呼んでいないものを検出

检测PR差异中的API Route文件是否未调用performSecurityChecks

allowlist: webhook(自前署名検証), health, test endpoints

白名单: webhook(自定义签名验证)、health、测试端点

for f in $(git diff --name-only "origin/$BASE...HEAD" | grep 'src/app/api/./route.ts'); do if ! grep -q "performSecurityChecks" "$f"; then basename_dir=$(dirname "$f" | sed 's|src/app/api/||') # allowlist check case "$basename_dir" in stripe/webhook|health|test/) continue ;; *) echo "MISSING performSecurityChecks: $f" ;; esac fi done

**出力**: 漏れがあれば Blocker として報告(confidence=90)
for f in $(git diff --name-only "origin/$BASE...HEAD" | grep 'src/app/api/./route.ts'); do if ! grep -q "performSecurityChecks" "$f"; then basename_dir=$(dirname "$f" | sed 's|src/app/api/||') # 白名单检查 case "$basename_dir" in stripe/webhook|health|test/) continue ;; *) echo "缺少performSecurityChecks: $f" ;; esac fi done

**输出**: 若存在遗漏则作为阻塞问题报告(置信度=90)

Gate 2: 新テーブル RLS policy 存在確認

网关2:新表RLS策略存在性检查

bash
undefined
bash
undefined

PR差分のマイグレーションで CREATE TABLE があるのに CREATE POLICY がないものを検出

检测PR差异中的迁移文件是否创建了表但未添加RLS策略

for f in $(git diff --name-only "origin/$BASE...HEAD" | grep 'supabase/migrations/.*.sql'); do tables=$(grep -oP 'CREATE TABLE (?:IF NOT EXISTS )?(?:public.)?\K\w+' "$f" 2>/dev/null) for t in $tables; do if ! grep -q "CREATE POLICY.ON.$t" "$f"; then echo "MISSING RLS: table=$t in $f" fi done done

**出力**: 漏れがあれば Blocker として報告(confidence=95)
for f in $(git diff --name-only "origin/$BASE...HEAD" | grep 'supabase/migrations/.*.sql'); do tables=$(grep -oP 'CREATE TABLE (?:IF NOT EXISTS )?(?:public.)?\K\w+' "$f" 2>/dev/null) for t in $tables; do if ! grep -q "CREATE POLICY.ON.$t" "$f"; then echo "缺少RLS策略: 表=$t 文件=$f" fi done done

**输出**: 若存在遗漏则作为阻塞问题报告(置信度=95)

Gate 3: SecurityMonitor.logEvent() 未導入検出

网关3:未引入SecurityMonitor.logEvent()检测

bash
undefined
bash
undefined

PR差分でセキュリティ関連コードパス(reject/error/401/403)があるのにlogEventがないファイルを検出

检测PR差异中包含安全相关代码路径(reject/error/401/403)但未添加logEvent的文件

for f in $(git diff --name-only "origin/$BASE...HEAD" | grep -E '.(ts|tsx)$'); do

セキュリティ判定コード(403/401返却, reject, unauthorized)を含むか

if grep -qE '(status.*40[13]|"unauthorized"|"forbidden"|rejectWith|createErrorResponse.*40)' "$f"; then if ! grep -q "logEvent|SecurityMonitor" "$f"; then echo "MISSING SecurityMonitor: $f" fi fi done

**出力**: 漏れがあれば Suggestion として報告(confidence=75)
for f in $(git diff --name-only "origin/$BASE...HEAD" | grep -E '.(ts|tsx)$'); do

判断是否包含安全相关代码(返回403/401、reject、unauthorized)

if grep -qE '(status.*40[13]|"unauthorized"|"forbidden"|rejectWith|createErrorResponse.*40)' "$f"; then if ! grep -q "logEvent|SecurityMonitor" "$f"; then echo "缺少SecurityMonitor: $f" fi fi done

**输出**: 若存在遗漏则作为建议报告(置信度=75)

Phase 3: フィードバック統合(review-aggregator使用)

阶段3:反馈整合(使用review-aggregator)

review-aggregator エージェント
.claude/agents/review-aggregator.md
)を呼び出し、 各reviewerの出力を統合する。
aggregatorの処理:
  1. パース: 各reviewer出力から
    [confidence=XX]
    タグを抽出
  2. フィルタリング:
    • Blockers: 全て残す(confidence<60 は「⚠️ 要確認」ラベル)
    • Important: confidence>=70 のみ(<70 は「要確認」に降格)
    • Suggestions: confidence>=80 のみ(<80 は省略)
  3. 重複排除: 同一 file:line の指摘をマージ、最高confidence採用
  4. Merge Decision判定:
    • Blockers 0件 → ✅ Merge
    • Blockers 全て「要確認」かつ<=2件 → ⚠️ Merge with follow-ups
    • Blockers に confidence>=60 が1件以上 → ❌ Needs changes
入力フォーマット: 各reviewerは統一フォーマットで出力(
.claude/docs/reviewer-output-format.md
参照)
调用review-aggregator Agent
.claude/agents/review-aggregator.md
),整合各审查者的输出。
聚合器处理流程:
  1. 解析: 从各审查者输出中提取
    [confidence=XX]
    标记
  2. 筛选:
    • 阻塞问题: 全部保留(置信度<60标记为「⚠️ 需确认」)
    • 重要问题: 仅保留置信度>=70的内容(<70降级为「需确认」)
    • 建议: 仅保留置信度>=80的内容(<80则省略)
  3. 去重: 合并同一file:line的问题,采用最高置信度
  4. 合并决策判定:
    • 无阻塞问题 → ✅ 可合并
    • 阻塞问题均为「需确认」且数量<=2 → ⚠️ 可合并但需后续跟进
    • 存在置信度>=60的阻塞问题 → ❌ 需要修改
输入格式: 各审查者需以统一格式输出(参考
.claude/docs/reviewer-output-format.md

Phase 4: PR投稿

阶段4:PR评论提交

Top-level comment(必須):
bash
gh pr comment <PR_NUMBER> --repo <REPO> --body "$(cat <<'EOF'
顶层评论(必填):
bash
gh pr comment <PR_NUMBER> --repo <REPO> --body "$(cat <<'EOF'

Code Review Summary

代码审查摘要

Summary

摘要

[2-4行の要約]
[2-4行的摘要]

Checklist Coverage (must-check v1.0)

检查清单覆盖情况(必查项 v1.0)

DomainStatus
Supabase✅ / ⚠️ / ❌ / N/A
Pipeline✅ / ⚠️ / ❌ / N/A
Env/Secrets✅ / ⚠️ / ❌ / N/A
Tests✅ / ⚠️ / ❌ / N/A
Stripe✅ / ⚠️ / ❌ / N/A
领域状态
Supabase✅ / ⚠️ / ❌ / N/A
流水线✅ / ⚠️ / ❌ / N/A
环境配置/密钥✅ / ⚠️ / ❌ / N/A
测试✅ / ⚠️ / ❌ / N/A
Stripe✅ / ⚠️ / ❌ / N/A

🔴 Blockers

🔴 阻塞问题

  • [なければ「なし」]
  • 无(若不存在)

🟡 Suggestions

🟡 建议

  • [confidence>=75 には Evidence 必須]
  • 置信度>=75时必须提供证据

🟢 Nice-to-have

🟢 优化点

  • [箇条書き]
  • 列表形式

Automated Checks

自动检查结果

  • Type check: [✅/❌/⏭️]
  • Lint: [✅/❌/⏭️]
  • Tests: [✅/❌/⏭️]
  • 类型检查: [✅/❌/⏭️]
  • 代码扫描: [✅/❌/⏭️]
  • 测试: [✅/❌/⏭️]

Merge Decision

合并决策

[✅/⚠️/❌ + 理由]

🤖 Reviewed by Claude Code (5-domain parallel review) EOF )"

**Inline comment(選択的):**
- 特定ファイル・行に明確にアンカーできる場合のみ
- スパム回避のため最小限に
[✅/⚠️/❌ + 理由]

🤖 由Claude Code审查(5领域并行审查) EOF )"

**行内评论(可选):**
- 仅当可明确锚定到特定文件和行时使用
- 为避免垃圾评论,需尽量精简

機械処理可能な出力(末尾YAMLブロック)

机器可读输出(末尾YAML块)

レビュー結果の末尾に以下のYAMLブロックを必ず追加(1個だけのYAMLフェンス、ネスト禁止):
yaml
review_meta:
  checklist_version: "v1.0"
  domains_ran: ["code-quality","security","performance","test-coverage","documentation"]
  blockers_count: 0
  important_count: 2
  suggestions_count: 5
  confidence_max: 85
  merge_decision: "merge"  # merge | merge_with_followups | needs_changes
フッター:
🤖 Reviewed by Claude Code (ppt-trans 5-domain review)
--local オプション時:
  • PRコメント投稿なし(ターミナル出力のみ)
  • review_output.md
    ファイルへの保存も可能(GitHub Actions用)

必须在审查结果末尾添加以下YAML块(仅一个YAML块,禁止嵌套):
yaml
review_meta:
  checklist_version: "v1.0"
  domains_ran: ["code-quality","security","performance","test-coverage","documentation"]
  blockers_count: 0
  important_count: 2
  suggestions_count: 5
  confidence_max: 85
  merge_decision: "merge"  # merge | merge_with_followups | needs_changes
页脚:
🤖 由Claude Code审查(ppt-trans项目5领域审查)
指定--local选项时:
  • 不提交PR评论(仅在终端输出)
  • 可保存到
    review_output.md
    文件(供GitHub Actions使用)

Agent Prompt Templates

Agent提示词模板

code-quality-reviewer prompt

code-quality-reviewer提示词

このPRのコード品質をレビューしてください。

Context:
- Stack: Next.js 16 + React 19 + TypeScript + Supabase + Stripe + Playwright
- Rules: [CLAUDE.md summary]
- PR Map: [short PR map]
- Files: [changed file list]

ppt-trans固有のチェック:
- Next.js 16: params: Promise<T> → await params
- Server Actions優先(API RoutesはWebhook/SSE/バイナリのみ)
- Schema-First開発(openapi.yaml → generate:types → 実装)
- any禁止、!禁止、@/*エイリアス必須

Output format:
Summary / Blockers / Suggestions / Nice-to-have
请审查此PR的代码质量。

上下文:
- 技术栈: Next.js 16 + React 19 + TypeScript + Supabase + Stripe + Playwright
- 规则: [CLAUDE.md摘要]
- PR概览: [简短PR概览]
- 文件: [变更文件列表]

ppt-trans项目专属检查项:
- Next.js 16: params: Promise<T> → 需使用await params
- 优先使用Server Actions(API Routes仅用于Webhook/SSE/二进制处理)
- Schema-First开发(openapi.yaml → generate:types → 实现)
- 禁止使用any、!,必须使用@/*别名

输出格式:
摘要 / 阻塞问题 / 建议 / 优化点

performance-reviewer prompt

performance-reviewer提示词

このPRのパフォーマンスリスクをレビューしてください。

Context:
- Stack: Next.js 16 + React 19 + TypeScript + Supabase + Stripe + Playwright
- Rules: [CLAUDE.md summary]
- PR Map: [short PR map]
- Files: [changed file list]

ppt-trans固有のチェック:
- N+1クエリ、不要なSELECT
- PPTX処理の同期ブロック、プレビューキャッシュ
- Python subprocess呼び出しの効率

Output format:
Summary / Hotspots / Recommendations
请审查此PR的性能风险。

上下文:
- 技术栈: Next.js 16 + React 19 + TypeScript + Supabase + Stripe + Playwright
- 规则: [CLAUDE.md摘要]
- PR概览: [简短PR概览]
- 文件: [变更文件列表]

ppt-trans项目专属检查项:
- N+1查询、不必要的SELECT语句
- PPTX处理的同步阻塞、预览缓存
- Python子进程调用效率

输出格式:
摘要 / 热点问题 / 建议

security-code-reviewer prompt

security-code-reviewer提示词

このPRのセキュリティ問題をレビューしてください。

Context:
- Stack: Next.js 16 + React 19 + TypeScript + Supabase + Stripe + Playwright
- Rules: [CLAUDE.md summary]
- PR Map: [short PR map]
- Files: [changed file list]

ppt-trans固有のチェック:
- Supabase RLS有効確認、Service Role Key漏えい
- Stripe Webhook署名検証、冪等性(stripe_events)
- Rate Limiting: 認証10/15min、翻訳50/hour、アップロード20/hour

Output format:
Summary / Blockers / Findings / Follow-ups
请审查此PR的安全问题。

上下文:
- 技术栈: Next.js 16 + React 19 + TypeScript + Supabase + Stripe + Playwright
- 规则: [CLAUDE.md摘要]
- PR概览: [简短PR概览]
- 文件: [变更文件列表]

ppt-trans项目专属检查项:
- Supabase RLS启用确认、Service Role Key泄露检查
- Stripe Webhook签名验证、幂等性(stripe_events)
- 速率限制: 认证10次/15分钟、翻译50次/小时、上传20次/小时

输出格式:
摘要 / 阻塞问题 / 发现的问题 / 后续跟进项

test-coverage-reviewer prompt

test-coverage-reviewer提示词

このPRのテスト(unit/E2E)をレビューしてください。

Context:
- Stack: Next.js 16 + React 19 + TypeScript + Supabase + Stripe + Playwright
- Rules: [CLAUDE.md summary]
- PR Map: [short PR map]
- Files: [changed file list]

ppt-trans固有のチェック:
- UNIFIED_TEST_CONFIG参照必須(ハードコード禁止)
- 認証状態パス: .auth/user.json
- /api/auth/loginは存在しない(ナビゲーション待機を使用)

Output format:
Summary / Flaky risks / Missing scenarios / Improvements
请审查此PR的测试(单元/端到端)。

上下文:
- 技术栈: Next.js 16 + React 19 + TypeScript + Supabase + Stripe + Playwright
- 规则: [CLAUDE.md摘要]
- PR概览: [简短PR概览]
- 文件: [变更文件列表]

ppt-trans项目专属检查项:
- 必须引用UNIFIED_TEST_CONFIG(禁止硬编码)
- 认证状态路径: .auth/user.json
- /api/auth/login不存在(需使用导航等待)

输出格式:
摘要 / 不稳定风险 / 缺失场景 / 改进建议

documentation-accuracy-reviewer prompt

documentation-accuracy-reviewer提示词

このPRのドキュメント整合性をレビューしてください。

Context:
- Stack: Next.js 16 + React 19 + TypeScript + Supabase + Stripe + Playwright
- Rules: [CLAUDE.md summary]
- PR Map: [short PR map]
- Files: [changed file list]

ppt-trans固有のチェック:
- .env.example / READMEのenv一覧が最新か
- Schema-First: openapi.yaml更新、generate:types実行
- CLAUDE.md / .claude/rules/ との整合

Output format:
Summary / Docs to update / Inconsistencies / Proposed edits

请审查此PR的文档一致性。

上下文:
- 技术栈: Next.js 16 + React 19 + TypeScript + Supabase + Stripe + Playwright
- 规则: [CLAUDE.md摘要]
- PR概览: [简短PR概览]
- 文件: [变更文件列表]

ppt-trans项目专属检查项:
- .env.example / README中的环境变量列表是否为最新
- Schema-First: openapi.yaml是否更新、是否执行generate:types
- 与CLAUDE.md / .claude/rules/ 的一致性

输出格式:
摘要 / 需要更新的文档 / 不一致内容 / 建议修改方案

注意事項

注意事项

  1. Phase 2の自動チェック結果をレビュー本文に記載
    • 成功/失敗/未実行を明示
  2. Merge with follow-upsのfollow-upはIssue化前提の粒度
    • 例: "RLSテスト追加", "429復帰のE2E安定化"
  3. Inlineコメントは差分にアンカーできる時だけ
    • スパム回避、top-levelコメントに集約
  4. gh CLI前提
    • gh
      がインストール・認証されている必要あり
  1. 需将阶段2的自动检查结果纳入审查正文
    • 明确标注成功/失败/未执行
  2. Merge with follow-ups的跟进项需以可创建Issue的粒度为准
    • 示例: "添加RLS测试", "429错误恢复的端到端测试稳定性优化"
  3. 仅当可锚定到差异时使用行内评论
    • 避免垃圾评论,尽量集中到顶层评论
  4. 依赖gh CLI
    • 需已安装并认证
      gh
      工具