mcpField
P
pre-landing-review

pre-landing-review

github.com/mathews-tomテスト・品質33788 回インストール2 日前に更新
リポジトリ

pre-landing-review について

Pre-Landing Review は、コード変更の取り込み前にチェックリストで安全性を監査するスキルです。ブロッカーと助言事項を分け、明示的な依頼がない限り読み取り専用で動作します。

主な機能

  1. 01安全チェックリストに沿った差分レビュー
  2. 02重大事項と情報事項の分類
  3. 03取り込み可否の判定
  4. 04ファイルと行番号付きの指摘
  5. 05依頼時のみ重大事項を修正

活用シーン

  1. 01取り込み前にフィーチャーブランチを監査
  2. 02重大なリスクが変更を阻止するか判定
  3. 03テスト不足やその他の助言事項を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mathews-tom/armory --skill pre-landing-review

インストール後、Claude Code で/pre-landing-reviewを入力して読み込まれたか確認します。

同梱ファイルevals/cases.yamlreferences/checklist.md

詳細

マージ前レビュー

コード変更をマージする前に行う、ゲート指向の安全性監査です。2段階の重大度トリアージと、ブロッキング/ノンブロッキングの分類を含む、構造化されたチェックリストを使用します。

pr-review との違い:pr-review は複数の観点からコード品質をレビューします。このスキルはゲート指向の安全性監査であり、外部チェックリストを使用して、2段階の重大度トリアージとブロッキング/ノンブロッキングの分類を行います。

ネイティブの代替手段: Claude Code の /ultrareview は、バグの発見に最適化された専用のネイティブレビューセッションを実行します(Anthropic は Opus 4.7 のリリース時に、Pro/Max プラン向けに月3回無料で提供しています)。チェックリストに基づくゲート指向のブロッキング分類と、文書化されたトリアージプロトコルにはこのスキルを使用し、単一の変更に対する軽量なバグ探しには /ultrareview を使用してください。

ワークフロー

1. 差分の特定

レビュー対象の変更を特定します。

  • フィーチャーブランチ上にいる場合:デフォルトブランチとの差分を確認します(git symbolic-ref refs/remotes/origin/HEAD)
  • PR 番号が指定されている場合:その PR の差分を取得します
  • 特定のファイルが指定されている場合:そのファイルをレビューします
2. チェックリストの読み込み

references/checklist.md を読みます。これは必須です。チェックリストを読み取れない場合は、停止してエラーを報告してください。

3. パス1 — CRITICAL(ブロッキング)

重大な安全性カテゴリに照らして差分をレビューします。これらはリリースを妨げる可能性があります。

SQL とデータの安全性
  • パラメーター化されていない生の SQL
  • マイグレーションの安全性(ロックタイムアウト、可逆性)が確保されていないスキーマ変更
  • WHERE 句を検証せずに行う一括更新/削除
  • モデルのバリデーション/コールバックを迂回する直接的なカラム更新
競合状態と並行処理
  • ロックを伴わない読み取り後の書き込み
  • データベースレベルでの強制なしに、一意制約が適用されることを前提とする処理
  • 同期処理のない共有可変状態
  • キュー/バックグラウンドジョブの冪等性
信頼境界
  • サニタイズせずに SQL、シェルコマンド、またはレンダリングされる HTML に使用される LLM/AI の出力
  • 検証されずに特権操作に到達するユーザー入力
  • スキーマ検証なしに使用される外部 API のレスポンス
  • 信頼できないデータのデシリアライズ

CRITICAL の指摘ごとに、次の手順を実行します。

  1. 正確なファイル名と行番号を示す
  2. 具体的なリスクを説明する
  3. AskUserQuestion を使用し、選択肢を必ず次の3つにする:今すぐ修正 / リスクを了承 / 誤検知
  4. 「今すぐ修正」の場合:修正してから、再確認する
  5. 「リスクを了承」の場合:了承を記録して続行する
  6. 「誤検知」の場合:その旨を記録して続行する
4. パス2 — INFORMATIONAL(ノンブロッキング)

残りのカテゴリに照らしてレビューします。

条件付き副作用 — 条件分岐に隠れた副作用、状態変化によって呼び出されるコールバック、失敗を黙って握りつぶすエラーハンドラー。

マジックナンバー — 説明のない数値リテラル、定数化されていないハードコードされたしきい値、根拠のないタイムアウト値。

デッドコード — 到達不能な分岐、未使用のインポート、説明のないコメントアウト済みコード。

テスト不足 — テストカバレッジのない新しいコードパス、テストが更新されていない動作変更、欠落しているエッジケースおよびエラーパスのテスト。

暗号とエントロピー — セキュリティ用途での弱い乱数生成元、ハードコードされたシークレット、転送中の機密データに対する TLS/暗号化の欠如。

時間窓の安全性 — タイムゾーンを考慮しない比較、夏時間のエッジケース、クロックスキューを考慮していない cron 式。

型変換 — データ損失につながる可能性のある暗黙的な型変換、境界をまたぐ数値精度の損失、I/O 境界での暗黙的な文字列エンコーディング。

すべての INFORMATIONAL の指摘を、単一のサマリーテーブル(ファイル、行、カテゴリ、説明)にまとめて提示します。

5. ゲートの分類
  • パス1の問題がすべて解決済み(修正済みまたは了承済み)→ マージ可能
  • 未解決のパス1の問題がある → ブロック
  • パス2の問題は助言であり、マージを妨げません
6. 抑制対象

次の項目は指摘しないでください。

  • テストフィクスチャ/ファクトリーを使用しているテストファイル
  • フレームワークの規約に従っているマイグレーションファイル
  • パターンが意図的である理由を説明しているコメント
  • 値が文書化されている設定ファイル
  • 型スタブまたはインターフェース定義

出力

ゲート判定(取り込み可/ブロック)、重要な問題の概要と解決状況、情報提供のみの指摘事項の表。

このスキルはデフォルトで読み取り専用です — 重要な問題について、ユーザーが明示的に「今すぐ修正」を選択した場合にのみコードを変更します。

コメント