ln-12-delivery-reviewer について
指定された変更を、業務上の成果、受け入れ基準、リリース安全性に照らして評価するスキルです。変更と因果経路に範囲を限定し、証拠と不足を示します。コードやトラッカーは変更しません。
主な機能
- 01範囲を限定した変更レビュー
- 02受け入れ基準と証拠の対応付け
- 03ランタイムと因果経路の追跡
- 04安全性とリリースリスクの確認
- 05読み取り専用レビュー
活用シーン
- 01受け入れ基準に沿った納品内容の検証
- 02重要なユーザーシナリオのランタイム経路追跡
- 03対象変更のリリースリスク評価
- 04リリース前の証拠不足の特定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-12-delivery-reviewerインストール後、Claude Code で/ln-12-delivery-reviewerを入力して読み込まれたか確認します。
同梱ファイルreferences/independent-review.md
詳細
デリバリーレビュー担当
目標: 要求されたデリバリー変更と、そのビジネス上の成果を証明するために必要な因果経路のみをレビューします。対象を絞った受け入れ基準とリリースの安全性を、簡潔な証拠とともに判断してください。無関係なコードの監査、指摘事項の修正、トラッカーの更新、対象範囲の拡大は行わないでください。
実行契約: 順序付きチェックボックスが完了の定義です。各項目を内部で、具体的な証拠を伴う PROVEN、条件が存在しない証拠を伴う CLEARED、不足がある UNPROVEN、または PENDING として管理してください。読み取り、委任、ツールの失敗は証明にはなりません。各セクションの後に項目を再確認してください。回答を返す前に、すべての PENDING を解消し、PROVEN と CLEARED のみを数えてください。すべての不足に対して、このスキルの判定ルールと承認ルールを適用してください。
ユーザーの意図、対象範囲、既存の承認を尊重してください。承認済みの作業を続行し、重大な影響を伴う未解決の選択肢、または必要な外部承認についてのみ確認してください。重要なリスクに応じて深度を調整し、確認を暗黙に省略しないでください。依存関係と安全性に関する順序を守り、それ以外では、各義務に適した検証方法を選択してください。
ツールの選択
| 必要事項 | 優先する機能 | 使用する場面 | フォールバック |
|---|---|---|---|
| 対象範囲とリポジトリの状態 | ネイティブのファイル読み取りと Git | 成果、対象外事項、ベース、ヘッド、作業ツリーを確認する場合 | 明示的な制約を付した提供済みの要件 |
| 変更された動作 | 差分、ステータス、対象を絞った読み取り | 実装差分とエントリーポイントを特定する場合 | 提供された成果物を、明記されたベースラインと比較する |
| 定義と利用側 | コードインテリジェンス | 影響を受ける経路が、変更されていないシンボルや契約に依存する場合 | 因果経路が証明できた時点で終了する、対象を絞った検索 |
| 自動検証 | リポジトリで定義されたコマンド | ビルド、リント、型、テスト、マイグレーション、スモークテストのゲートがある場合 | スクリプトと CI を確認し、実行を UNPROVEN とする |
| 観測可能な動作 | ブラウザー、クライアント、またはランタイムの証拠 | 受け入れが UI、操作、プロトコル、またはログに依存する場合 | 静的な追跡と、具体的な手動確認 |
| 再利用と修正に関する調査 | インストール済みマニフェストと、最新の公式ドキュメント、仕様、パッケージソース | 変更された汎用的な仕組みに再利用の判断が必要な場合、外部の動作が正確性に影響する場合、または外部依存の修正を検証する必要がある場合 | 信頼できる一次資料。それ以外では、判断または修正を UNVERIFIED とする |
| 独立レビュー | 個別のコンテキストで動作するネイティブのサブエージェント | 未解決の個別リスクについて、独立した証拠が必要な場合 | リンクされたパネルの手順。それ以外では、独立性の限界を明記した直接レビュー |
現在の証拠に関する問いにのみ、ツールを使用してください。ツールの失敗は制約であり、不具合ではありません。利用できないコマンド、ランタイム、ソースを、実装の証拠なしに指摘事項へ変換しないでください。
証拠のルール
| 証拠 | 重み |
|---|---|
| 再現された動作、失敗するテスト、コンパイラー出力、または決定的なコマンド | 現在の動作に関する最も強い証拠 |
| 変更されたコードに、検証済みの呼び出し元、利用側、スキーマ、または設定の経路を組み合わせたもの | 強い静的証拠 |
| 受け入れ基準を実装および検証に対応付けたもの | 必須のデリバリー証拠 |
| 使用バージョンに一致する公式の外部契約 | 強い互換性の証拠 |
| パターン、直感、一般的な慣行 | 具体的な失敗またはリスクに結び付くまでは手掛かりにとどまる |
出力契約の指摘事項フィールドを適用してください。リポジトリの証拠が不具合を立証し、外部のガイダンスは修正を裏付けますが、ローカルの要件を新たに作り出すことはできません。レビュー対象はビジネス上の変更であり、リポジトリ全体ではありません。影響を受ける経路を証明するためにのみ、変更されていないコードを読み、スタイル上の好みや無関係なリポジトリの健全性を報告しないでください。
独立レビュー
リード担当者がスコープ、根拠、判定を担います。直接的な根拠で十分な場合や、ユーザーが委任を除外している場合は、パネルを使用しません。独立したレビューが必要となる未解決のリスクがある場合は、レビュアーを選定または起動する前にパネルのプロトコルを読みます。このプロトコルでは、観点の選定、コンテキストの固定、ラウンド数の上限、再試行、結果の処理を定めています。独立性が不十分な場合は制約として扱います。ただし、それによって不可欠な根拠が立証できない場合は除きます。
チェックリスト
1. ビジネスと変更のスコープを確立する
- 依頼と焦点を絞った初期調査に基づき、影響を受けるアクター、課題、保護すべき成果、変更される動作、受け入れ基準、既存のユーザー体験、明示的に承認されたユーザー向け変更、不変条件、対象外事項、リリース境界を明示します。裏付けのない解釈には
UNKNOWNを付け、主張を確立できない場合はBLOCKEDを使用します。 - 根拠のある成熟度、ビジネスの時間軸、規模、チームの能力、ライフサイクルコストに基づいて複雑さの適合性を判断します。仮定上の成長からエンタープライズ要件を推測したり、安全性のために必要な複雑さを過剰設計と見なしたりしないでください。
- 該当するリポジトリの指示を読み、未コミットの作業を調べ、正式なタスク、ベース、ヘッド、実装差分、承認済みの計画またはターゲットアーキテクチャ、許可された移行期間中の互換性を特定します。変更に関連するプロジェクトのポリシー、標準、ADRのみを特定し、すべての文書を拘束力のあるものとして扱わないでください。
- リポジトリの規約に従って、変更に関連するベースライン、現状、ターゲット設計、ポリシー、決定、図表、移行のアーティファクトのみを見つけます。権威性、所有者、ステータス、最新性、後継文書の有無を記録し、該当する情報源と実装の根拠をまとめた単一のポリシー・決定台帳を維持します。この台帳には、準拠、明示的に承認された逸脱、未解決のギャップを記録します。
- 変更された範囲、因果関係によって変更を支える範囲、明示的に除外された範囲を対応付けます。影響を受ける動作の追跡に限って差分の外を読み、無関係なコードを探して指摘事項を見つけようとしないでください。
- 信頼、金銭、破壊的な操作、移行、公開契約、並行処理、分散調整、ロールバックの難しさに基づいて、変更に伴うリスクを分類します。実装レビューの前に、受け入れに必要な根拠を定義します。
- 直接レビューで十分かどうかを記録します。パネルが妥当な場合は、リンク先のプロトコルに従ってレビューを分類し、スコープを固定し、異なる問いを選定し、暫定的な指摘を共有せずにレビュー範囲を記録します。
- レビューは読み取り専用にします。ホストが承認したキャッシュまたはビルド成果物のみを許可します。追跡対象ファイルの編集、タスクの作成、コミット、プッシュ、デプロイ、指摘事項の修正は行わないでください。
2. 要件を実装に結び付ける
- 権威あるタスク要件と受け入れ基準、および承認済みプランで必須とされた項目をすべて列挙します。それぞれを具体的な実装と独立した動作上の証拠に対応付けます。タスク項目とプラン項目には
COMPLETE、DEVIATED、OMITTED、UNPROVENのいずれかを、受け入れ基準にはPASS、FAIL、UNPROVENのいずれかを付けます。作成者の主張、チェック済みボックス、コミット、コードが存在することは、完了の証拠にはなりません。 - 変更されたファイルと、影響を受ける経路を証明するために必要な、変更されていない定義、利用箇所、インターフェース、テスト、マイグレーション、登録箇所のみを確認します。
- 必須のプラン項目がすべて実装され、想定されたランタイム経路で機能することを検証します。説明のない省略は未達として扱います。
DEVIATEDとして認めるのは、代替案がタスク、保護対象の成果、制約、受け入れ基準を完全に維持することを明示的な証拠が示す場合に限ります。正当な逸脱と、古い文書や提案段階の文書を区別します。 - ユーザーから見たベースラインと成果物を比較します。既存の画面、文言、スタイル、ナビゲーション、操作順序、フォーカス、アクセシビリティ、ユーザーシナリオを変更できるのは、具体的なタスク要件がその変更を認めている場合に限ります。それ以外の差分はすべてリグレッションとして扱います。追加する画面、文言、コントロール、シナリオにも、タスクに基づく目的と認められた範囲が必要です。それぞれについて、発生条件、理由、証拠を示します。
- 重要な各シナリオについて、アクターのトリガーからエントリーポイント、ランタイムの配線、利用状況、観測可能な結果までを追跡します。該当する場合は、最初の有意な利用、重大な失敗、復旧、繰り返し利用も含めます。
- 新しいコンポーネント、ルート、コマンド、ハンドラー、ジョブ、イベント、設定が登録され、ランタイムで検出可能であることを確認します。
- 影響を受ける動作について、該当する境界、コレクション、状態遷移、重複、順序、数値の動作、空および最大の入力、エラー、再試行、冪等性、キャンセル、タイムアウト、ロールバック、クリーンアップを確認します。
- 影響を受ける非同期経路について、共有状態、トランザクション、競合、ロック順序、ブロッキング処理を確認します。
3. 安全性、契約、シンプルさをレビューする
- 影響を受けるパスの範囲内で、該当する認証、認可、所有権、検証、インジェクション、シークレット、機密データ、ログ記録、破壊的操作のガードを確認します。
- 破壊的な動作に変更がある場合、復旧、ロールバック、影響範囲、環境または認可、プレビューまたはドライランの証拠を必須とします。実現できない制御については理由を示します。
- 変更された API、イベント、スキーマ、設定、シリアライズ、ストレージの各プロデューサーとコンシューマーについて、名前、ペイロード、登録、順序、互換性を含めて検証します。状態、ロール、権限、イベント名、エラーコード、設定キー、機能識別子、上限、タイムアウト、ルーティングキーなど、意味を持つ値や閉じた値集合に変更がある場合は、対象範囲内のすべてのプロデューサーとコンシューマーが、リポジトリ標準の仕組み(型付きユニオン、列挙型、定数セット、値オブジェクト、スキーマ、型付き設定、生成されたコントラクトなど)を通じて共有する、権威ある定義元を 1 つ設けます。重複、無効な状態、または不整合のリスクを生じさせない無害な単発のローカルリテラルは許容します。
- 永続化された状態または分散状態が変わる場合、マイグレーション、バックフィル、デフォルト値、インデックス、デプロイ順序、混在バージョンでの動作を検証します。
- 成功時と失敗時の両方について、ファイル、ストリーム、セッション、接続、プロセス、サブスクリプション、一時的な成果物の所有権とクリーンアップを確認します。
- 変更によって横断または変更されたアーキテクチャとポリシーの境界のみを調査します。責務、依存関係の方向、コントラクト、状態、ライフサイクル、失敗時の責任が、承認済みのアーキテクチャまたはリポジトリで確立された最もシンプルな仕組みと整合していることを検証します。変更対象の台帳にある、現在有効なすべての権威あるプロジェクトポリシーを適用します。影響を受ける場合は、プロジェクトで定義されたログ記録(ロガー、構造化フィールド、レベル、相関、秘匿化)とエラー処理(分類、型またはコード、境界でのマッピング、伝播、再試行、復旧)も含めます。逸脱は、明示的な承認と、対象範囲内での受け入れが維持されていることを示す証拠がある場合に限り認めます。周辺のアーキテクチャやポリシーへの準拠まで監査の対象にしてはいけません。
- 対象範囲内のエントリーポイント、プロデューサー、コンシューマー、登録、状態遷移、重大な失敗・復旧経路を通じて、根本原因に対する修正を追跡します。症状の隠蔽、呼び出し元ごとの特例、サイドチャネル、意図しない順序・タイミング・データへの依存は認めません。戦術的な封じ込めには、明示的な意図または差し迫った安全上の必要性、担当者、解除条件、永続的なフォローアップを求めます。原因となったビジネス上の範囲で確認を止めます。
- コードを置き換える場合は、旧実装、シグネチャ、エイリアス、再エクスポート、シム、アダプター、フラグ、二重の経路、ファイルが削除され、呼び出し元が移行済みであることを検証します。互換性を維持できるのは、サポート対象のコントラクトに対して担当者と期限付きの解除条件がある場合に限ります。
- 変更された機能における、置き換えられた制約、設定、スキーマ、状態、権限、メトリクス、ロールアウト用の仕組みを調査します。削除には、置き換え済みであることの証明を求めます。そうでない場合は、保持する根拠、または一時的な担当者と解除条件を記録します。
- 汎用的な仕組みを新たに追加する場合、または実質的に拡張する場合は、厳密なコントラクトに照らして信頼できる、よりシンプルな代替案を比較し、既存の仕組みで十分であればそこで確認を止めます。新しいパッケージの調査は、重大な不足が残る場合に限ります。
REUSE_EXISTING、ADOPT_PACKAGE、KEEP_CUSTOM、DELETE、MERGEのいずれかを、ローカルの証拠と、外部の仕様に関しては公式情報源とともに記録します。重大なセキュリティ、保守、ライセンス、バンドル/ランタイム、API 安定性、移行、ラッパーのコストを評価します。ライフサイクルコストが最も低く、完全に要件を満たす選択肢を優先します。コンパクトなドメインロジックに依存関係を追加したり、残るラッパーが既存のものより小さくも安全でもない場合に依存関係を追加したりしてはいけません。また、デリバリーによって変更された、またはデリバリーに必要な仕組みのみを調査します。 - シンプルさ: 必要最小限の差分と、正しく効率的な最もシンプルなアルゴリズムを必須とします。既存の仕組みで十分な場合、不要な重複、ファイル、レイヤー、抽象化、依存関係、設定、分岐、互換性経路、独自の仕組みは認めません。ただし、保護措置や保守性を犠牲にしてはいけません。
4. テスト、ドキュメント、運用を確認する
- 要件、承認済みの計画、変更された動作、影響を受けるテストから、変更範囲に限定したテスト判断台帳を1つ作成します。重要なリスクと影響を受ける各テストについて、既存の証拠、独立したオラクル、ゲートと結果、レベルを選んだ理由、および
KEEP、ADD、UPDATE、MERGE、DELETE、または正当なNO_TESTを記録します。計画した対応が実際に完了したことを確認し、証拠に基づく逸脱があれば説明します。 - 変更によるビジネスリスクのみを、発生可能性、影響、影響範囲、可逆性、回帰の履歴に基づいて順位付けします。言語、フレームワーク、パッケージ、データベースベンダー、単なる受け渡し、その他の自明な動作を再確認するだけのテストは禁止します。実際の依存先を通過するテストが妥当なのは、リポジトリが所有するルール、設定、配線、契約、クエリ、スキーマ、権限、トランザクション、復旧経路、またはユーザージャーニーを検証する場合に限ります。
NO_TESTには既存の証拠、別の統制、または受容する残存リスクを明記する必要があります。 - 重要な各リスクを証明する、最小かつ信頼性の高いユニット、統合、コントラクト、または E2E の境界を選びます。より狭い境界ではユーザージャーニーを立証できない場合は、エンドツーエンドの証拠を必須とします。異なる失敗シグナルを持つテストを最小限に推奨し、テスト件数、生のカバレッジ、または受け入れ項目ごとに1つのテストを目標にしません。
- 観測可能な契約とロケール戦略に応じて、プロジェクトで標準的な安定したセマンティックロケーター(ロール、アクセシブルな名前、ラベル)または明示的な ID/テストフックを使用します。スタイル、位置、タイミング、偶発的な構造に依存しないでください。文言が要件の場合は、文言の完全一致を検証するアサーションを別に扱います。堅牢なセマンティックロケーターが存在する場合、フックを追加することだけを目的としたプロダクト変更は求めません。
- 台帳の各判断を、欠陥検出感度、アサーション、成功経路と失敗経路、認可、境界、データ整合性、過剰なモック、スナップショット、フレーク、共有状態、時間、乱数、実行順序への依存、CI への配置に照らして検証します。陳腐化、重複、自明、実装詳細に依存、または重要性のない証拠には
DELETEを割り当て、固有の価値が統合後も残る場合はMERGEを割り当てます。置き換えの追跡可能性を保ち、古いテスト、フィクスチャ、ヘルパー、スナップショット、ゲートを惰性で残しません。 - 必須ゲートと診断ゲートの配置、見える形でのスキップ、再試行と隔離、および一時的な特性評価、移行、互換性、インシデント、回避策に関する証拠のレビューまたは廃止のトリガーを確認します。隔離は実行状態であり、ポートフォリオ上の判断ではありません。また、暗黙の成功として扱ってはなりません。
- 正当なフォールバックを行う前に、リポジトリのドキュメント、ツール設定、マニフェストからコマンドを確認します。狭い範囲のチェックから実行し、その後、CI で安全なオプションを使って、必須のビルド、lint、型、テスト、マイグレーション、スモークの各ゲートを実行します。
- コマンドの出典、終了ステータス、実際に実行した範囲、制限事項を記録します。必須シナリオが実行されたことを確認します。選択されたテストが0件だった場合や、スイートがスキップされた場合は、受け入れを証明することにはなりません。失敗を変更、ベースライン、または環境に帰属させます。
- 静的な証拠だけでは不十分な場合、重要な失敗と復旧も含めて、利用者側からユーザー向けの受け入れを検証します。該当する UI では、キーボード操作、フォーカス、アクセシブルな名前、動き、レスポンシブ状態、文言、ローカライズを確認します。
- 変更範囲のビジネス変更によって変更された、またはその変更に必要なドキュメントとコメントのみをレビューし、それぞれを
KEEP、ADD、UPDATE、DELETE、またはMERGEに分類します。正規のドキュメントで必要な対象者のすべてのタスクと契約を網羅できる場合に限り、削除または統合します。 - ドキュメントの SSOT と階層を検証します。成果物では、最も限定的な正規のオーナーを更新し、ルールを複製せずリンクし、適切なドキュメントを再利用し、置き換えられた参照を削除します。無関係なドキュメントを編集または監査せずに、違反を報告します。
- ドキュメントの水増し、要約の繰り返し、憶測、コードの言い換えを排除します。対象者に必要な意図、契約、アクション、制約、検証済みの最小限の例は維持します。
- 変動するバージョン、パス、デフォルト、件数、コマンド、生成された出力、現在の状態に関するデータは、可能な限り信頼できるコード、設定、または生成元に置きます。そうできない場合は、その出典、範囲、オーナー、または生成・更新のトリガーを明記します。
- 影響を受ける API と設定の参照、例、マイグレーション、ランブック、運用手順、コメントを実装と要件に照らして検証します。コメントでは構文ではなく、長期にわたって有効な意図や制約を説明します。
- 変更によって運用リスクが生じる場合は、ログ、メトリクス、トレース、ヘルスシグナル、機能制御、デプロイ順序、ロールバック、復旧を確認します。
5. 課題の検証と統合
- 選択されている場合は、リンクされたプロトコルに従って独立したパネルを実行します。選択されていない場合は
Noneと記録し、直接的な証拠を使用します。提案は検証が必要な候補として扱います。 - 各候補をコード、コマンド、動作、明示された意図、または信頼できるドキュメントに照らして検証します。症状から原因となる経路と違反された契約をたどり、主観的な主張や症状だけに基づく主張は却下します。
- 差分によって問題が導入、顕在化、または悪化した場合、対象範囲の受け入れ基準に違反する場合、あるいは変更によって必須ゲートの失敗が生じた場合にのみ、指摘を採用します。それ以外の問題は、受け入れを妨げる場合に限って制約として扱います。修正を提案してはいけません。
- 対象範囲内の候補すべてに、重要性と妥当な代替案のゲートを適用します。証拠で裏付けられたプロジェクト規模において、具体的なユーザー、ビジネス、安全性、運用、デリバリー、またはライフサイクルへの影響を立証できるかを確認します。細かな指摘、個人の好み、理論上の純粋さ、一般的なベストプラクティス、仮定上の規模、現在のトレードオフが妥当であるにもかかわらず実装が単に異なるというだけの指摘は却下します。複数のアプローチが妥当な場合は、特定の設計を推奨するのではなく、必要な結果または制約を求めます。
- ローカルの証拠によって欠陥が確認された後に、修正方法を調査します。変更された汎用的な仕組みに重要な機能上の不足またはライフサイクルコストがある場合は、再利用できる代替手段を調査します。リポジトリ内の仕組みを優先します。外部に依存する選択肢は、公式のバージョン対応ドキュメントまたは一次技術資料に照らして検証し、裏付けられた主張とトレードオフを引用します。ローカルのビジネス上の欠陥には、ローカルの証拠で十分です。裏付けのない外部の主張には
UNVERIFIEDと記します。レビューは修正を許可するものではありません。 - 根本原因ごとに指摘を重複排除し、最も強い証拠と、実証された最も広い影響範囲を保持して、必要十分な最小の修正を1つ提案します。
- 直接的な証拠によって矛盾を解消し、重要な未解決事項は判定または残存リスクに反映します。
- 指摘を
P0(壊滅的)、P1(リリースを阻害)、P2(重要だが阻害要因ではない)、またはP3(軽微だが対処可能)に分類します。 - 未解決の
P0/P1、必須タスクまたは計画項目のOMITTED、または明らかに誤った内容、未達の受け入れ基準、既存のユーザー体験に対する未承認の変更、変更によって生じた必須ゲートの失敗、あるいは実証された危険性の高い挙動がある場合はFAILを使用します。明示された非阻害リスクに限りCONCERNSを使用します。すべての必須タスクと計画項目がCOMPLETEまたは証拠に裏付けられたDEVIATEDであり、すべての受け入れ基準を満たし、必須の証拠がすべてそろっている場合に限りPASSを使用します。 - 必須タスクまたは計画項目が
UNPROVENのままである場合、あるいは必須の観点、専門家、安全な実行環境、権威ある仕様、または受け入れの前提条件に信頼できる代替手段がない場合はBLOCKEDを使用します。製品の欠陥ではなく、対応範囲の不足を報告します。
セルフチェック
- 返答前に整合性を確認します。 項目単位の証拠、要件の網羅性、矛盾、対象範囲、判定、該当するクリーンアップを確認します。レポートまたは許可された成果物を修正します。有効な証拠は再利用し、リポジトリの再スキャンや成功したコマンドの再実行を自動的に行ってはいけません。関連する変更、失敗、または未解決の証拠がある場合に限り、チェックを繰り返します。残る不足事項を明示します。
出力契約
ユーザーの言語で、この順序で報告してください。5 つのフィールドをすべて保持し、各事実は一度だけ記載します。小さな結果では、フィールドごとに 1 行を使用してもかまいません。空のテーブルは省略し、リンクされた成果物をコピーしないでください。
- 結果: スキル固有の判定と、サポートされる成果。
- スコープ: レビュー/変更したスコープ、除外事項、ベースライン、および重要な前提。
- 根拠: 以下に示すスキル固有のフィールド。事実、推論、未検証の主張を区別してください。成果物をリンクし、有用な場合はテーブルを使用してください。
- 検証: チェック/結果、利用できない根拠、および該当するクリーンアップ/外部状態。
- 完了:
Checklist: X/Y complete、Incomplete: None、または各UNPROVEN項目の理由、成果への影響、および正確な次のアクション。残存リスクと必要な決定。
スキル固有の根拠: タスク/計画の要件 → 実装 → 動作の根拠 → ステータス。スコープ/ベース/ヘッド、および初回/フォローアップレビューの状態。承認された UX 変更と追加的なサーフェス、該当するポリシー/ADR への準拠、再利用と削減の決定、選択された独立したレンズとカバレッジ、およびテスト/ドキュメントのアクションを含めてください。各所見には、優先度、場所、影響を受けるビジネス上の動作、変更に因果関係のある根拠、違反した契約、重大な影響、および最小限で十分な修正が必要です。同等の解決策を許容してください。根拠のゲートを通過する候補がない場合は None を使用してください。