takt/builtins/ja/policies/review.md
nrslib 2c7bd4834f Faceted Prompting リネーム: stances→policies, report_formats→output_contracts
5つの関心を Persona, Policy, Instruction, Knowledge, Output Contract に統一。
ディレクトリ、YAMLキー、ソースコード、テンプレート、テスト、ドキュメントを全面更新。
2026-02-07 20:04:09 +09:00

5.4 KiB
Raw Blame History

レビューポリシー

全レビュアーが共有する判断基準と行動原則を定義する。

原則

原則 基準
即座修正 軽微でも「次のタスク」にしない。今修正できる問題は今修正させる
曖昧さ排除 「もう少し整理して」等の曖昧な指摘は禁止。ファイル・行・修正案を具体的に示す
ファクトチェック 推測ではなく実コードを確認してから指摘する
実践的修正案 理想論ではなく実装可能な対策を提示する
ボーイスカウト 変更したファイルに問題があれば、タスクスコープ内で改善させる

スコープ判定

状況 判定 対応
今回の変更で導入された問題 ブロッキング REJECT
変更ファイル内の既存問題 ブロッキング REJECTボーイスカウトルール
変更モジュール内の構造的問題 ブロッキング スコープ内なら REJECT
変更外ファイルの問題 非ブロッキング 記録のみ(参考情報)
タスクスコープを大きく逸脱するリファクタリング 非ブロッキング 提案として記載

判定基準

REJECT差し戻し

以下のいずれかに該当する場合、例外なく REJECT する。

  • テストがない新しい振る舞い
  • バグ修正にリグレッションテストがない
  • any 型の使用
  • フォールバック値の乱用(?? 'unknown'
  • 説明コメントWhat/How のコメント)
  • 未使用コード(「念のため」のコード)
  • オブジェクト/配列の直接変更
  • エラーの握りつぶし(空の catch
  • TODO コメントIssue化されていないもの
  • 3箇所以上の重複コードDRY違反
  • 同じことをするメソッドの増殖(構成の違いで吸収すべき)
  • 特定実装の汎用層への漏洩(汎用層に特定実装のインポート・分岐がある)
  • 関連フィールドのクロスバリデーション欠如(意味的に結合した設定値の不変条件が未検証)

Warning警告

ブロッキングではないが改善を推奨する。

  • エッジケース・境界値のテスト不足
  • テストが実装の詳細に依存
  • 関数/ファイルが複雑すぎる
  • 命名が不明確
  • TODO/FIXME の放置Issue番号付きは許容
  • 理由なしの @ts-ignoreeslint-disable

APPROVE承認

全ての REJECT 基準をクリアし、品質基準を満たしている場合に承認する。「条件付き承認」はしない。問題があれば差し戻す。

ファクトチェック

指摘する前に必ず事実を確認する。

やるべきこと やってはいけないこと
ファイルを開いて実コードを確認 「修正済みのはず」と思い込む
grep で呼び出し元・使用箇所を検索 記憶に基づいて指摘する
型定義・スキーマを突合 推測でデッドコードと判断する
生成ファイル(レポート等)とソースを区別 生成ファイルをソースコードとしてレビュー

具体的な指摘の書き方

全ての指摘には以下を含める。

  • どのファイルの何行目か
  • 何が問題か
  • どう修正すべきか
❌ 「構造を見直してください」
❌ 「もう少し整理してください」
❌ 「リファクタリングが必要です」

✅ 「src/auth/service.ts:45 — validateUser() が3箇所で重複。
     共通関数に抽出してください」

ボーイスカウトルール

来たときよりも美しく。

対象

  • 変更したファイル内の既存の問題(未使用コード、不適切な命名、壊れた抽象化)
  • 変更したモジュール内の構造的な問題(責務の混在、不要な依存)

対象外

  • 変更していないファイル(既存問題として記録のみ)
  • タスクスコープを大きく逸脱するリファクタリング(提案として記載、非ブロッキング)

判定

状況 判定
変更ファイル内に明らかな問題がある REJECT — 一緒に修正させる
冗長な式(同値の短い書き方がある) REJECT
不要な分岐・条件(到達しない、または常に同じ結果) REJECT
数秒〜数分で修正可能な問題 REJECT「非ブロッキング」にしない
修正にリファクタリングが必要(スコープが大きい) 記録のみ(技術的負債)

既存コードの踏襲を理由にした問題の放置は認めない。既存コードが悪い場合、それに合わせるのではなく改善する。

堂々巡りの検出

同じ種類の指摘が繰り返されている場合、修正指示の繰り返しではなくアプローチ自体を見直す。

同じ問題が繰り返されたら

  1. 同じ種類の問題が繰り返されていないか確認
  2. 繰り返されている場合、細かい修正指示ではなくアプローチ自体の代替案を提示
  3. REJECT する場合でも、「別のアプローチを検討すべき」という観点を含める

「もう一度修正して」と繰り返すより、立ち止まって別の道を示す。