From dfe97f63fa53d34c04bc15ab074383639219a905 Mon Sep 17 00:00:00 2001 From: Jiro Date: Mon, 20 Jul 2026 11:17:48 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC?= =?UTF-8?q?=E7=B3=BB=20skill=20=E3=81=AB=E6=95=B5=E5=AF=BE=E7=9A=84?= =?UTF-8?q?=E6=A4=9C=E8=A8=BC=E8=A6=B3=E7=82=B9=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit role-reviewer と code-review の説明、レビュー手順、観点リファレンスに敵対的検証を追加した。 あわせて evals に発火ケースを追加し、skill-library の説明を同期した。 検証: jq で evals.json を確認、Ruby YAML パーサで SKILL.md frontmatter を確認、git diff --staged --check を実行。 --- codex/skills/internal/code-review/SKILL.md | 12 ++++++++---- .../internal/code-review/evals/evals.json | 7 +++++++ .../internal/code-review/references/points.md | 13 ++++++++++--- codex/skills/internal/role-reviewer/SKILL.md | 17 ++++++++++++++++- .../internal/role-reviewer/evals/evals.json | 7 +++++++ docs/skill-library.md | 4 ++-- 6 files changed, 50 insertions(+), 10 deletions(-) diff --git a/codex/skills/internal/code-review/SKILL.md b/codex/skills/internal/code-review/SKILL.md index 9e58114..3b541aa 100644 --- a/codex/skills/internal/code-review/SKILL.md +++ b/codex/skills/internal/code-review/SKILL.md @@ -1,6 +1,6 @@ --- name: code-review -description: 実装済みの差分、PR、コミット、指定ファイルをレビューし、仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性、並行性、検証不足などのリスクを重要度順に指摘するときに使う。実装方針の相談は code-refactor、コード変更の実装は code-general を優先する。 +description: 実装済みの差分、PR、コミット、指定ファイルをレビューし、敵対的検証で実装者の前提、正常系中心の説明、見落とされた失敗条件を疑い、仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性、並行性、検証不足などのリスクを重要度順に指摘するときに使う。実装方針の相談は code-refactor、コード変更の実装は code-general を優先する。 --- # Code Review スキル @@ -48,6 +48,7 @@ description: 実装済みの差分、PR、コミット、指定ファイルを - 重大度の高い指摘を先に出す - 根拠、影響、問題になる条件を説明できる指摘だけを出す - 不確実なものは断定せず、質問や懸念として分ける +- 実装者の説明、テスト結果、命名が示す「期待される使われ方」を反証する入力や状態を探す ## レビュー対象の境界 @@ -63,9 +64,10 @@ description: 実装済みの差分、PR、コミット、指定ファイルを 1. 差分を読み、何が変わったかを把握する 2. 仕様・公開契約・データ互換性を壊していないかを見る 3. セキュリティ、整合性、並行性、破壊的変更など High リスクを先に疑う -4. エラー処理、監視、テスト、回帰防止の不足を確認する -5. 将来変更耐性、可読性、スタイルなどの二次観点を見る -6. 指摘を重要度順に整理し、不明点と追加検証を分けて出す +4. 敵対的検証として、前提を崩す入力、順序、権限、時刻、並行実行、外部依存失敗を想定する +5. エラー処理、監視、テスト、回帰防止の不足を確認する +6. 将来変更耐性、可読性、スタイルなどの二次観点を見る +7. 指摘を重要度順に整理し、不明点と追加検証を分けて出す 軽微な命名やスタイルより、仕様違反・回帰・高リスク変更・未検証の方を優先する。 @@ -118,6 +120,8 @@ description: 実装済みの差分、PR、コミット、指定ファイルを references/points.md を参照。 +敵対的検証では、実装者の想定利用者ではなく、壊れやすい呼び出し元、古いデータ、権限境界、異常な実行順、失敗する外部依存を起点に確認する。 + ## 出力形式 出力は次の順で行う。 diff --git a/codex/skills/internal/code-review/evals/evals.json b/codex/skills/internal/code-review/evals/evals.json index 368e7b6..9286ce9 100644 --- a/codex/skills/internal/code-review/evals/evals.json +++ b/codex/skills/internal/code-review/evals/evals.json @@ -14,6 +14,13 @@ "expected_output": "実装ではなくレビューとして扱い、セキュリティ、認可、情報漏えい、並行性、冪等性、公開契約破壊を優先して確認すること。", "files": [], "should_fire": true + }, + { + "id": 3, + "prompt": "この PR を敵対的検証して。正常系の説明を疑って、失敗条件や既存クライアント破壊を探して。", + "expected_output": "code-review が発火し、diff を起点に入力、順序、権限、時刻、並行実行、外部依存失敗、古いクライアントや既存データを崩す観点で High / Medium / Low の指摘と不足検証を出すこと。", + "files": [], + "should_fire": true } ] } diff --git a/codex/skills/internal/code-review/references/points.md b/codex/skills/internal/code-review/references/points.md index ee77955..a877c35 100644 --- a/codex/skills/internal/code-review/references/points.md +++ b/codex/skills/internal/code-review/references/points.md @@ -60,16 +60,23 @@ - ログ、メトリクス、トレースが必要十分か - 失敗時に原因追跡できる情報が残るか -### 7. 性能 +### 7. 敵対的検証 + +- 実装者の説明やテストが正常系に寄りすぎていないか +- 入力値、実行順、時刻、タイムゾーン、権限、テナント、既存データの前提を崩しても安全か +- 並行実行、二重送信、リトライ、部分失敗、外部依存の遅延や失敗で壊れないか +- 古いクライアント、移行前データ、未更新のバッチなど、理想的でない呼び出し元を壊していないか +- テストが「成功すること」だけを確認し、失敗してはいけない契約や副作用を観測していない状態ではないか + +### 8. 性能 - ループ内 I/O、N+1、全件取得後フィルタなどの性能問題がないか - リソースリークや不要な保持がないか - 計算量、I/O 回数、メモリ使用量の増加が許容範囲か -### 8. スタイル・命名 +### 9. スタイル・命名 - typo やスタイル違反がないか - 命名が意味を正しく伝えているか - コメントが正確で最新か - 例外的な仕様や特別な理由が明示されているか - diff --git a/codex/skills/internal/role-reviewer/SKILL.md b/codex/skills/internal/role-reviewer/SKILL.md index 573f459..aad5f97 100644 --- a/codex/skills/internal/role-reviewer/SKILL.md +++ b/codex/skills/internal/role-reviewer/SKILL.md @@ -1,6 +1,6 @@ --- name: role-reviewer -description: Reviewer として、実装済みの差分が仕様、スコープ、公開契約、品質要件を満たしているか検証するときに使う。リスク、回帰、境界条件、責務違反、検証不足を根拠付きで言語化し、必要に応じて code-review も併用する。 +description: Reviewer として、実装済みの差分が仕様、スコープ、公開契約、品質要件を満たしているか検証するときに使う。敵対的検証で実装者の前提、正常系中心の説明、見落とされた失敗条件を疑い、リスク、回帰、境界条件、責務違反、検証不足を根拠付きで言語化し、必要に応じて code-review も併用する。 --- # Reviewer スキル @@ -33,6 +33,21 @@ description: Reviewer として、実装済みの差分が仕様、スコープ --- +## 敵対的検証 + +Reviewer は、実装者の説明やテスト結果が正しい前提であっても、 +次の観点で意図的に反例を探す。 + +- 正常系の説明で隠れている失敗条件はないか +- 入力、順序、権限、時刻、並行実行、外部依存の前提を崩すと壊れないか +- 仕様外入力や過去データ、既存クライアントを過小評価していないか +- テストが「通ること」だけを確認し、壊れてほしくない契約を観測していない状態ではないか +- 実装者の主張と diff、テスト、ドキュメント、既存呼び出し元の間に矛盾がないか + +敵対的検証は人格や意図への疑いではなく、システムの失敗条件を先に見つけるための手法として扱う。 + +--- + ## 変更影響の見極め 差分を見たときに自問する: diff --git a/codex/skills/internal/role-reviewer/evals/evals.json b/codex/skills/internal/role-reviewer/evals/evals.json index 6fb7092..7ac4f75 100644 --- a/codex/skills/internal/role-reviewer/evals/evals.json +++ b/codex/skills/internal/role-reviewer/evals/evals.json @@ -14,6 +14,13 @@ "expected_output": "Reviewer ロールとして扱い、安心してマージできるかのリスク探索を行い、High / Medium / Low の懸念と不足検証を整理すること。", "files": [], "should_fire": true + }, + { + "id": 3, + "prompt": "Reviewer として敵対的検証をして。実装者の前提や正常系中心の説明に見落としがないか疑って。", + "expected_output": "role-reviewer が発火し、実装者の前提、入力、順序、権限、並行実行、外部依存失敗などを崩す観点で反例を探し、根拠付きでリスクと不足検証を整理すること。", + "files": [], + "should_fire": true } ] } diff --git a/docs/skill-library.md b/docs/skill-library.md index 7ed9872..a7c9df4 100644 --- a/docs/skill-library.md +++ b/docs/skill-library.md @@ -43,7 +43,7 @@ skill 間の明示的な併用・優先関係は [docs/skill-dependency-map.md]( | `role-advisor` | 技術判断、設計相談、ベストプラクティスをテックリード視点で助言する。 | 実装を伴わず、アーキテクチャ、DB、DevOps、テスト、保守性を相談するとき。 | | `role-implementer` | Implementer として、計画済みのゴールと完了条件に沿って実装する。 | Planner が整理した仕様に従い、小さく安全な差分を作るとき。 | | `role-planner` | Planner として、ゴール、スコープ、タスク、完了条件、リスクを整理する。 | 実装前に方針を固め、Implementer と Reviewer が迷わない計画を作るとき。 | -| `role-reviewer` | Reviewer として、実装済み差分が仕様と品質要件を満たすか検証する。 | スコープ、公開契約、境界条件、責務違反、検証不足を確認するとき。 | +| `role-reviewer` | Reviewer として、実装済み差分が仕様と品質要件を満たすか敵対的に検証する。 | スコープ、公開契約、境界条件、責務違反、実装者の前提、検証不足を確認するとき。 | | `role-scouter` | Scouter として、コード、ドキュメント、設定、履歴を調査し判断材料を集める。 | 実装やレビュー判断の前に、不確実性を下げるための根拠収集をするとき。 | #### 出力フォーマット型スキル @@ -63,7 +63,7 @@ skill 間の明示的な併用・優先関係は [docs/skill-dependency-map.md]( |---|---|---| | `code-naming` | 関数名、クラス名、型名、変数名などコード要素の命名候補や改善案を出す。 | 責務、抽象度、既存語彙、検索性、ユーザーの命名の好みに沿って名前を比較・改善したいとき。 | | `code-next-developer-review` | 次に開発する人が困らないかという観点で差分をレビューする。 | 命名、責務境界、型、テストの読みやすさ、前提知識の残し方を確認するとき。 | -| `code-review` | 実装済み差分、PR、コミット、指定ファイルをリスク中心にレビューする。 | 仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性を確認するとき。 | +| `code-review` | 実装済み差分、PR、コミット、指定ファイルを敵対的検証も含めてリスク中心にレビューする。 | 仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性、見落とされた失敗条件を確認するとき。 | #### 思想・スタイル型スキル From e0e29ed3ed81cfa30fe045994ca72c6846efe529 Mon Sep 17 00:00:00 2001 From: Jiro Date: Mon, 20 Jul 2026 11:21:39 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC?= =?UTF-8?q?=E5=A7=BF=E5=8B=A2=E3=81=AE=E5=89=8D=E6=8F=90=E3=81=A8=E3=81=97?= =?UTF-8?q?=E3=81=A6=E7=96=91=E3=81=86=E5=A7=BF=E5=8B=A2=E3=82=92=E6=95=B4?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 敵対的検証を独立した観点やレビュー手順として追加する形から、role-reviewer と code-review の基本姿勢へ移した。 あわせて points の独立観点を削除し、evals と skill-library の表現を同期した。 検証: jq で evals.json を確認、Ruby YAML パーサで SKILL.md frontmatter を確認、git diff --check / --staged --check を実行。 --- codex/skills/internal/code-review/SKILL.md | 18 ++++++++++-------- .../internal/code-review/evals/evals.json | 4 ++-- .../internal/code-review/references/points.md | 12 ++---------- codex/skills/internal/role-reviewer/SKILL.md | 19 +++---------------- .../internal/role-reviewer/evals/evals.json | 4 ++-- docs/skill-library.md | 4 ++-- 6 files changed, 21 insertions(+), 40 deletions(-) diff --git a/codex/skills/internal/code-review/SKILL.md b/codex/skills/internal/code-review/SKILL.md index 3b541aa..c60d324 100644 --- a/codex/skills/internal/code-review/SKILL.md +++ b/codex/skills/internal/code-review/SKILL.md @@ -1,6 +1,6 @@ --- name: code-review -description: 実装済みの差分、PR、コミット、指定ファイルをレビューし、敵対的検証で実装者の前提、正常系中心の説明、見落とされた失敗条件を疑い、仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性、並行性、検証不足などのリスクを重要度順に指摘するときに使う。実装方針の相談は code-refactor、コード変更の実装は code-general を優先する。 +description: 実装済みの差分、PR、コミット、指定ファイルをレビューし、実装者の前提や正常系中心の説明を鵜呑みにせず、見落とされた失敗条件を疑う基本姿勢で、仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性、並行性、検証不足などのリスクを重要度順に指摘するときに使う。実装方針の相談は code-refactor、コード変更の実装は code-general を優先する。 --- # Code Review スキル @@ -10,6 +10,12 @@ description: 実装済みの差分、PR、コミット、指定ファイルを これは実装方法のガイドではありません。 「どう直すか」ではなく **「何を疑い、何を優先して指摘するか」** を示します。 +## 基本姿勢 + +- レビューは、実装者の説明やテスト結果が正しい前提であっても、反例や失敗条件が残っている前提で行う +- 正常系の意図ではなく、実際の diff、公開契約、既存呼び出し元、失敗時の振る舞いを起点に判断する +- 人格や意図ではなく、システムの前提、境界、契約、データ、権限、並行実行を疑う + ## 目的 - 実装された変更が仕様・制約を満たしていることを確認する @@ -48,7 +54,6 @@ description: 実装済みの差分、PR、コミット、指定ファイルを - 重大度の高い指摘を先に出す - 根拠、影響、問題になる条件を説明できる指摘だけを出す - 不確実なものは断定せず、質問や懸念として分ける -- 実装者の説明、テスト結果、命名が示す「期待される使われ方」を反証する入力や状態を探す ## レビュー対象の境界 @@ -64,10 +69,9 @@ description: 実装済みの差分、PR、コミット、指定ファイルを 1. 差分を読み、何が変わったかを把握する 2. 仕様・公開契約・データ互換性を壊していないかを見る 3. セキュリティ、整合性、並行性、破壊的変更など High リスクを先に疑う -4. 敵対的検証として、前提を崩す入力、順序、権限、時刻、並行実行、外部依存失敗を想定する -5. エラー処理、監視、テスト、回帰防止の不足を確認する -6. 将来変更耐性、可読性、スタイルなどの二次観点を見る -7. 指摘を重要度順に整理し、不明点と追加検証を分けて出す +4. エラー処理、監視、テスト、回帰防止の不足を確認する +5. 将来変更耐性、可読性、スタイルなどの二次観点を見る +6. 指摘を重要度順に整理し、不明点と追加検証を分けて出す 軽微な命名やスタイルより、仕様違反・回帰・高リスク変更・未検証の方を優先する。 @@ -120,8 +124,6 @@ description: 実装済みの差分、PR、コミット、指定ファイルを references/points.md を参照。 -敵対的検証では、実装者の想定利用者ではなく、壊れやすい呼び出し元、古いデータ、権限境界、異常な実行順、失敗する外部依存を起点に確認する。 - ## 出力形式 出力は次の順で行う。 diff --git a/codex/skills/internal/code-review/evals/evals.json b/codex/skills/internal/code-review/evals/evals.json index 9286ce9..fa0afc2 100644 --- a/codex/skills/internal/code-review/evals/evals.json +++ b/codex/skills/internal/code-review/evals/evals.json @@ -17,8 +17,8 @@ }, { "id": 3, - "prompt": "この PR を敵対的検証して。正常系の説明を疑って、失敗条件や既存クライアント破壊を探して。", - "expected_output": "code-review が発火し、diff を起点に入力、順序、権限、時刻、並行実行、外部依存失敗、古いクライアントや既存データを崩す観点で High / Medium / Low の指摘と不足検証を出すこと。", + "prompt": "この PR をレビューして。正常系の説明を鵜呑みにせず、失敗条件や既存クライアント破壊を探して。", + "expected_output": "code-review が発火し、diff を起点に入力、順序、権限、時刻、並行実行、外部依存失敗、古いクライアントや既存データの失敗条件を想定して High / Medium / Low の指摘と不足検証を出すこと。", "files": [], "should_fire": true } diff --git a/codex/skills/internal/code-review/references/points.md b/codex/skills/internal/code-review/references/points.md index a877c35..0811cb5 100644 --- a/codex/skills/internal/code-review/references/points.md +++ b/codex/skills/internal/code-review/references/points.md @@ -60,21 +60,13 @@ - ログ、メトリクス、トレースが必要十分か - 失敗時に原因追跡できる情報が残るか -### 7. 敵対的検証 - -- 実装者の説明やテストが正常系に寄りすぎていないか -- 入力値、実行順、時刻、タイムゾーン、権限、テナント、既存データの前提を崩しても安全か -- 並行実行、二重送信、リトライ、部分失敗、外部依存の遅延や失敗で壊れないか -- 古いクライアント、移行前データ、未更新のバッチなど、理想的でない呼び出し元を壊していないか -- テストが「成功すること」だけを確認し、失敗してはいけない契約や副作用を観測していない状態ではないか - -### 8. 性能 +### 7. 性能 - ループ内 I/O、N+1、全件取得後フィルタなどの性能問題がないか - リソースリークや不要な保持がないか - 計算量、I/O 回数、メモリ使用量の増加が許容範囲か -### 9. スタイル・命名 +### 8. スタイル・命名 - typo やスタイル違反がないか - 命名が意味を正しく伝えているか diff --git a/codex/skills/internal/role-reviewer/SKILL.md b/codex/skills/internal/role-reviewer/SKILL.md index aad5f97..eec3d2c 100644 --- a/codex/skills/internal/role-reviewer/SKILL.md +++ b/codex/skills/internal/role-reviewer/SKILL.md @@ -1,6 +1,6 @@ --- name: role-reviewer -description: Reviewer として、実装済みの差分が仕様、スコープ、公開契約、品質要件を満たしているか検証するときに使う。敵対的検証で実装者の前提、正常系中心の説明、見落とされた失敗条件を疑い、リスク、回帰、境界条件、責務違反、検証不足を根拠付きで言語化し、必要に応じて code-review も併用する。 +description: Reviewer として、実装済みの差分が仕様、スコープ、公開契約、品質要件を満たしているか検証するときに使う。実装者の前提や正常系中心の説明を鵜呑みにせず、見落とされた失敗条件を疑う基本姿勢で、リスク、回帰、境界条件、責務違反、検証不足を根拠付きで言語化し、必要に応じて code-review も併用する。 --- # Reviewer スキル @@ -20,6 +20,8 @@ description: Reviewer として、実装済みの差分が仕様、スコープ - Reviewer の役割は **安心してマージできる状態かを判断すること** - レビューは「正解探し」ではなく **リスク探索** - 書かれていないこと・考慮されていないことに価値がある +- 実装者の説明、テスト結果、命名が示す「期待される使われ方」を鵜呑みにせず、反例や失敗条件が残っている前提で見る +- 人格や意図ではなく、システムの前提、境界、契約、失敗時の振る舞いを疑う --- @@ -33,21 +35,6 @@ description: Reviewer として、実装済みの差分が仕様、スコープ --- -## 敵対的検証 - -Reviewer は、実装者の説明やテスト結果が正しい前提であっても、 -次の観点で意図的に反例を探す。 - -- 正常系の説明で隠れている失敗条件はないか -- 入力、順序、権限、時刻、並行実行、外部依存の前提を崩すと壊れないか -- 仕様外入力や過去データ、既存クライアントを過小評価していないか -- テストが「通ること」だけを確認し、壊れてほしくない契約を観測していない状態ではないか -- 実装者の主張と diff、テスト、ドキュメント、既存呼び出し元の間に矛盾がないか - -敵対的検証は人格や意図への疑いではなく、システムの失敗条件を先に見つけるための手法として扱う。 - ---- - ## 変更影響の見極め 差分を見たときに自問する: diff --git a/codex/skills/internal/role-reviewer/evals/evals.json b/codex/skills/internal/role-reviewer/evals/evals.json index 7ac4f75..9093e48 100644 --- a/codex/skills/internal/role-reviewer/evals/evals.json +++ b/codex/skills/internal/role-reviewer/evals/evals.json @@ -17,8 +17,8 @@ }, { "id": 3, - "prompt": "Reviewer として敵対的検証をして。実装者の前提や正常系中心の説明に見落としがないか疑って。", - "expected_output": "role-reviewer が発火し、実装者の前提、入力、順序、権限、並行実行、外部依存失敗などを崩す観点で反例を探し、根拠付きでリスクと不足検証を整理すること。", + "prompt": "Reviewer として、実装者の前提や正常系中心の説明に見落としがないか疑ってレビューして。", + "expected_output": "role-reviewer が発火し、実装者の前提を鵜呑みにせず、入力、順序、権限、並行実行、外部依存失敗などの失敗条件を想定し、根拠付きでリスクと不足検証を整理すること。", "files": [], "should_fire": true } diff --git a/docs/skill-library.md b/docs/skill-library.md index a7c9df4..851e978 100644 --- a/docs/skill-library.md +++ b/docs/skill-library.md @@ -43,7 +43,7 @@ skill 間の明示的な併用・優先関係は [docs/skill-dependency-map.md]( | `role-advisor` | 技術判断、設計相談、ベストプラクティスをテックリード視点で助言する。 | 実装を伴わず、アーキテクチャ、DB、DevOps、テスト、保守性を相談するとき。 | | `role-implementer` | Implementer として、計画済みのゴールと完了条件に沿って実装する。 | Planner が整理した仕様に従い、小さく安全な差分を作るとき。 | | `role-planner` | Planner として、ゴール、スコープ、タスク、完了条件、リスクを整理する。 | 実装前に方針を固め、Implementer と Reviewer が迷わない計画を作るとき。 | -| `role-reviewer` | Reviewer として、実装済み差分が仕様と品質要件を満たすか敵対的に検証する。 | スコープ、公開契約、境界条件、責務違反、実装者の前提、検証不足を確認するとき。 | +| `role-reviewer` | Reviewer として、実装済み差分が仕様と品質要件を満たすか検証する。 | 実装者の前提を鵜呑みにせず、スコープ、公開契約、境界条件、責務違反、検証不足を確認するとき。 | | `role-scouter` | Scouter として、コード、ドキュメント、設定、履歴を調査し判断材料を集める。 | 実装やレビュー判断の前に、不確実性を下げるための根拠収集をするとき。 | #### 出力フォーマット型スキル @@ -63,7 +63,7 @@ skill 間の明示的な併用・優先関係は [docs/skill-dependency-map.md]( |---|---|---| | `code-naming` | 関数名、クラス名、型名、変数名などコード要素の命名候補や改善案を出す。 | 責務、抽象度、既存語彙、検索性、ユーザーの命名の好みに沿って名前を比較・改善したいとき。 | | `code-next-developer-review` | 次に開発する人が困らないかという観点で差分をレビューする。 | 命名、責務境界、型、テストの読みやすさ、前提知識の残し方を確認するとき。 | -| `code-review` | 実装済み差分、PR、コミット、指定ファイルを敵対的検証も含めてリスク中心にレビューする。 | 仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性、見落とされた失敗条件を確認するとき。 | +| `code-review` | 実装済み差分、PR、コミット、指定ファイルをリスク中心にレビューする。 | 実装者の前提を鵜呑みにせず、仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性を確認するとき。 | #### 思想・スタイル型スキル From fcf05fb6933fc51e4a1a6e4c576836ac41ff620c Mon Sep 17 00:00:00 2001 From: Jiro Date: Mon, 20 Jul 2026 11:28:13 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=E6=95=B5=E5=AF=BE=E7=9A=84=E6=A4=9C?= =?UTF-8?q?=E8=A8=BC=E3=82=92=E8=A1=8C=E3=81=86=E6=96=87=E8=A8=80=E3=82=92?= =?UTF-8?q?=E6=98=8E=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit role-reviewer と code-review の description、基本姿勢、eval、skill-library に「敵対的検証を行う」という表現を追加した。 独立観点には戻さず、基本姿勢として明示している。 検証: jq で evals.json を確認、Ruby YAML パーサで SKILL.md frontmatter を確認、git diff --check / --staged --check を実行。 --- codex/skills/internal/code-review/SKILL.md | 4 ++-- codex/skills/internal/code-review/evals/evals.json | 2 +- codex/skills/internal/role-reviewer/SKILL.md | 4 ++-- codex/skills/internal/role-reviewer/evals/evals.json | 2 +- docs/skill-library.md | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/codex/skills/internal/code-review/SKILL.md b/codex/skills/internal/code-review/SKILL.md index c60d324..d75684c 100644 --- a/codex/skills/internal/code-review/SKILL.md +++ b/codex/skills/internal/code-review/SKILL.md @@ -1,6 +1,6 @@ --- name: code-review -description: 実装済みの差分、PR、コミット、指定ファイルをレビューし、実装者の前提や正常系中心の説明を鵜呑みにせず、見落とされた失敗条件を疑う基本姿勢で、仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性、並行性、検証不足などのリスクを重要度順に指摘するときに使う。実装方針の相談は code-refactor、コード変更の実装は code-general を優先する。 +description: 実装済みの差分、PR、コミット、指定ファイルをレビューし、実装者の前提や正常系中心の説明を鵜呑みにせず、見落とされた失敗条件を疑う基本姿勢で敵対的検証を行い、仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性、並行性、検証不足などのリスクを重要度順に指摘するときに使う。実装方針の相談は code-refactor、コード変更の実装は code-general を優先する。 --- # Code Review スキル @@ -12,7 +12,7 @@ description: 実装済みの差分、PR、コミット、指定ファイルを ## 基本姿勢 -- レビューは、実装者の説明やテスト結果が正しい前提であっても、反例や失敗条件が残っている前提で行う +- レビューは、実装者の説明やテスト結果が正しい前提であっても、反例や失敗条件が残っている前提で敵対的検証を行う - 正常系の意図ではなく、実際の diff、公開契約、既存呼び出し元、失敗時の振る舞いを起点に判断する - 人格や意図ではなく、システムの前提、境界、契約、データ、権限、並行実行を疑う diff --git a/codex/skills/internal/code-review/evals/evals.json b/codex/skills/internal/code-review/evals/evals.json index fa0afc2..056cf32 100644 --- a/codex/skills/internal/code-review/evals/evals.json +++ b/codex/skills/internal/code-review/evals/evals.json @@ -18,7 +18,7 @@ { "id": 3, "prompt": "この PR をレビューして。正常系の説明を鵜呑みにせず、失敗条件や既存クライアント破壊を探して。", - "expected_output": "code-review が発火し、diff を起点に入力、順序、権限、時刻、並行実行、外部依存失敗、古いクライアントや既存データの失敗条件を想定して High / Medium / Low の指摘と不足検証を出すこと。", + "expected_output": "code-review が発火し、敵対的検証を行う基本姿勢で、diff を起点に入力、順序、権限、時刻、並行実行、外部依存失敗、古いクライアントや既存データの失敗条件を想定して High / Medium / Low の指摘と不足検証を出すこと。", "files": [], "should_fire": true } diff --git a/codex/skills/internal/role-reviewer/SKILL.md b/codex/skills/internal/role-reviewer/SKILL.md index eec3d2c..8c74dc2 100644 --- a/codex/skills/internal/role-reviewer/SKILL.md +++ b/codex/skills/internal/role-reviewer/SKILL.md @@ -1,6 +1,6 @@ --- name: role-reviewer -description: Reviewer として、実装済みの差分が仕様、スコープ、公開契約、品質要件を満たしているか検証するときに使う。実装者の前提や正常系中心の説明を鵜呑みにせず、見落とされた失敗条件を疑う基本姿勢で、リスク、回帰、境界条件、責務違反、検証不足を根拠付きで言語化し、必要に応じて code-review も併用する。 +description: Reviewer として、実装済みの差分が仕様、スコープ、公開契約、品質要件を満たしているか検証するときに使う。実装者の前提や正常系中心の説明を鵜呑みにせず、見落とされた失敗条件を疑う基本姿勢で敵対的検証を行い、リスク、回帰、境界条件、責務違反、検証不足を根拠付きで言語化し、必要に応じて code-review も併用する。 --- # Reviewer スキル @@ -20,7 +20,7 @@ description: Reviewer として、実装済みの差分が仕様、スコープ - Reviewer の役割は **安心してマージできる状態かを判断すること** - レビューは「正解探し」ではなく **リスク探索** - 書かれていないこと・考慮されていないことに価値がある -- 実装者の説明、テスト結果、命名が示す「期待される使われ方」を鵜呑みにせず、反例や失敗条件が残っている前提で見る +- 実装者の説明、テスト結果、命名が示す「期待される使われ方」を鵜呑みにせず、反例や失敗条件が残っている前提で敵対的検証を行う - 人格や意図ではなく、システムの前提、境界、契約、失敗時の振る舞いを疑う --- diff --git a/codex/skills/internal/role-reviewer/evals/evals.json b/codex/skills/internal/role-reviewer/evals/evals.json index 9093e48..85e26e5 100644 --- a/codex/skills/internal/role-reviewer/evals/evals.json +++ b/codex/skills/internal/role-reviewer/evals/evals.json @@ -18,7 +18,7 @@ { "id": 3, "prompt": "Reviewer として、実装者の前提や正常系中心の説明に見落としがないか疑ってレビューして。", - "expected_output": "role-reviewer が発火し、実装者の前提を鵜呑みにせず、入力、順序、権限、並行実行、外部依存失敗などの失敗条件を想定し、根拠付きでリスクと不足検証を整理すること。", + "expected_output": "role-reviewer が発火し、実装者の前提を鵜呑みにせず、敵対的検証を行う基本姿勢で、入力、順序、権限、並行実行、外部依存失敗などの失敗条件を想定し、根拠付きでリスクと不足検証を整理すること。", "files": [], "should_fire": true } diff --git a/docs/skill-library.md b/docs/skill-library.md index 851e978..79d4b27 100644 --- a/docs/skill-library.md +++ b/docs/skill-library.md @@ -43,7 +43,7 @@ skill 間の明示的な併用・優先関係は [docs/skill-dependency-map.md]( | `role-advisor` | 技術判断、設計相談、ベストプラクティスをテックリード視点で助言する。 | 実装を伴わず、アーキテクチャ、DB、DevOps、テスト、保守性を相談するとき。 | | `role-implementer` | Implementer として、計画済みのゴールと完了条件に沿って実装する。 | Planner が整理した仕様に従い、小さく安全な差分を作るとき。 | | `role-planner` | Planner として、ゴール、スコープ、タスク、完了条件、リスクを整理する。 | 実装前に方針を固め、Implementer と Reviewer が迷わない計画を作るとき。 | -| `role-reviewer` | Reviewer として、実装済み差分が仕様と品質要件を満たすか検証する。 | 実装者の前提を鵜呑みにせず、スコープ、公開契約、境界条件、責務違反、検証不足を確認するとき。 | +| `role-reviewer` | Reviewer として、実装済み差分が仕様と品質要件を満たすか検証する。 | 実装者の前提を鵜呑みにせず、敵対的検証を行い、スコープ、公開契約、境界条件、責務違反、検証不足を確認するとき。 | | `role-scouter` | Scouter として、コード、ドキュメント、設定、履歴を調査し判断材料を集める。 | 実装やレビュー判断の前に、不確実性を下げるための根拠収集をするとき。 | #### 出力フォーマット型スキル @@ -63,7 +63,7 @@ skill 間の明示的な併用・優先関係は [docs/skill-dependency-map.md]( |---|---|---| | `code-naming` | 関数名、クラス名、型名、変数名などコード要素の命名候補や改善案を出す。 | 責務、抽象度、既存語彙、検索性、ユーザーの命名の好みに沿って名前を比較・改善したいとき。 | | `code-next-developer-review` | 次に開発する人が困らないかという観点で差分をレビューする。 | 命名、責務境界、型、テストの読みやすさ、前提知識の残し方を確認するとき。 | -| `code-review` | 実装済み差分、PR、コミット、指定ファイルをリスク中心にレビューする。 | 実装者の前提を鵜呑みにせず、仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性を確認するとき。 | +| `code-review` | 実装済み差分、PR、コミット、指定ファイルをリスク中心にレビューする。 | 実装者の前提を鵜呑みにせず、敵対的検証を行い、仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性を確認するとき。 | #### 思想・スタイル型スキル From b9c48cfa6210c73893fc4c7d1cc00b3ee6e7384a Mon Sep 17 00:00:00 2001 From: Jiro Date: Mon, 20 Jul 2026 11:33:05 +0900 Subject: [PATCH 4/4] =?UTF-8?q?=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC?= =?UTF-8?q?=E7=B3=BB=20skill=20=E5=85=A8=E4=BD=93=E3=81=AB=E6=95=B5?= =?UTF-8?q?=E5=AF=BE=E7=9A=84=E6=A4=9C=E8=A8=BC=E3=82=92=E5=8F=8D=E6=98=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit code-next-developer-review と code-quality-review にも、実装者の前提を鵜呑みにせず敵対的検証を行う基本姿勢を追加した。 あわせて evals、agents/openai.yaml、skill-library の説明を同期した。 検証: jq で evals.json を確認、Ruby YAML パーサで SKILL.md と openai.yaml を確認、git diff --check / --staged --check を実行。 --- codex/skills/internal/code-next-developer-review/SKILL.md | 3 ++- .../code-next-developer-review/agents/openai.yaml | 4 ++-- .../internal/code-next-developer-review/evals/evals.json | 7 +++++++ codex/skills/internal/code-quality-review/SKILL.md | 8 +++++++- .../internal/code-quality-review/agents/openai.yaml | 4 ++-- .../skills/internal/code-quality-review/evals/evals.json | 7 +++++++ docs/skill-library.md | 4 ++-- 7 files changed, 29 insertions(+), 8 deletions(-) diff --git a/codex/skills/internal/code-next-developer-review/SKILL.md b/codex/skills/internal/code-next-developer-review/SKILL.md index c78fe3a..7824910 100644 --- a/codex/skills/internal/code-next-developer-review/SKILL.md +++ b/codex/skills/internal/code-next-developer-review/SKILL.md @@ -1,6 +1,6 @@ --- name: code-next-developer-review -description: 実装済みの差分、PR、コミット、指定ファイルを「次に開発する人が困らないか」という観点でレビューするときに使う。変更箇所の見つけやすさ、責務境界、命名、型・契約、テストの読みやすさ、前提知識の残し方、追加ケースの足しやすさ、ローカル検証のしやすさを確認したい場合に使う。欠陥、仕様違反、セキュリティ、データ破壊の検出を主目的にする場合は code-review を優先する。 +description: 実装済みの差分、PR、コミット、指定ファイルを「次に開発する人が困らないか」という観点でレビューするときに使う。実装者の前提や正常系中心の説明を鵜呑みにせず、後続開発で見落とされる失敗条件や迷いやすさについて敵対的検証を行い、変更箇所の見つけやすさ、責務境界、命名、型・契約、テストの読みやすさ、前提知識の残し方、追加ケースの足しやすさ、ローカル検証のしやすさを確認したい場合に使う。欠陥、仕様違反、セキュリティ、データ破壊の検出を主目的にする場合は code-review を優先する。 --- # Code Next Developer Review スキル @@ -23,6 +23,7 @@ description: 実装済みの差分、PR、コミット、指定ファイルを - 「今バグがあるか」より「次に触る人が迷うか」を優先する - 理想論ではなく、次の開発者が実際に詰まる場面を具体化する - 既存コード全体の問題ではなく、今回の変更で増えた迷いやすさを指摘する +- 実装者の説明やテスト結果を鵜呑みにせず、後続開発で前提が崩れる状況を想定して敵対的検証を行う - 欠陥や重大リスクを見つけた場合は、通常の `code-review` 観点として分けて書く ## 進め方 diff --git a/codex/skills/internal/code-next-developer-review/agents/openai.yaml b/codex/skills/internal/code-next-developer-review/agents/openai.yaml index 68c1683..d575774 100644 --- a/codex/skills/internal/code-next-developer-review/agents/openai.yaml +++ b/codex/skills/internal/code-next-developer-review/agents/openai.yaml @@ -1,4 +1,4 @@ interface: display_name: "code-next-developer-review" - short_description: "次に開発する人が困らないかをレビュー" - default_prompt: "Use $code-next-developer-review to review this diff from the perspective of the next developer who must understand and change it." + short_description: "次に開発する人が困らないかを敵対的検証" + default_prompt: "Use $code-next-developer-review to review this diff from the perspective of the next developer who must understand and change it. Do adversarial validation of assumptions that could fail during follow-up development." diff --git a/codex/skills/internal/code-next-developer-review/evals/evals.json b/codex/skills/internal/code-next-developer-review/evals/evals.json index f362b81..6696575 100644 --- a/codex/skills/internal/code-next-developer-review/evals/evals.json +++ b/codex/skills/internal/code-next-developer-review/evals/evals.json @@ -14,6 +14,13 @@ "expected_output": "code-next-developer-review が発火し、欠陥検出ではなく、責務境界、命名、型・契約、テストの読みやすさ、ローカル検証のしやすさを確認すること。", "files": [], "should_fire": true + }, + { + "id": 3, + "prompt": "次に開発する人の立場でレビューして。実装者の前提を鵜呑みにせず、後続開発で詰まる条件を敵対的検証して。", + "expected_output": "code-next-developer-review が発火し、後続開発で前提が崩れる状況について敵対的検証を行い、次の開発者が困る点、足りない手がかり、通常レビューへ回すべき即時リスクを分けて出すこと。", + "files": [], + "should_fire": true } ] } diff --git a/codex/skills/internal/code-quality-review/SKILL.md b/codex/skills/internal/code-quality-review/SKILL.md index 3d0a9a7..f7388d8 100644 --- a/codex/skills/internal/code-quality-review/SKILL.md +++ b/codex/skills/internal/code-quality-review/SKILL.md @@ -1,6 +1,6 @@ --- name: code-quality-review -description: 実装済みの差分、PR、コミット、指定ファイルを code quality report の観点でレビューし、保守性、設計健全性、責務分離、複雑度、テスト容易性、変更容易性、技術的負債を観点別に評価するときに使う。cyclomatic complexity、cognitive complexity、coverage、重複率、関数長、lint/static analysis などの定量シグナルがある場合は補助証拠として必ず取り込む。ユーザーが「quality report」「コード品質」「保守性レビュー」「複雑度」「技術的負債」「設計品質」「品質スコア」「quality gate」などを求めたら必ず使う。仕様違反、セキュリティ、データ破壊など即時欠陥の検出が主目的なら code-review を優先し、次の開発者の迷いやすさが主目的なら code-next-developer-review を優先する。 +description: 実装済みの差分、PR、コミット、指定ファイルを code quality report の観点でレビューし、実装者の前提や正常系中心の説明を鵜呑みにせず、将来の変更・テスト・運用で品質問題が表面化する条件について敵対的検証を行い、保守性、設計健全性、責務分離、複雑度、テスト容易性、変更容易性、技術的負債を観点別に評価するときに使う。cyclomatic complexity、cognitive complexity、coverage、重複率、関数長、lint/static analysis などの定量シグナルがある場合は補助証拠として必ず取り込む。ユーザーが「quality report」「コード品質」「保守性レビュー」「複雑度」「技術的負債」「設計品質」「品質スコア」「quality gate」などを求めたら必ず使う。仕様違反、セキュリティ、データ破壊など即時欠陥の検出が主目的なら code-review を優先し、次の開発者の迷いやすさが主目的なら code-next-developer-review を優先する。 --- # Code Quality Review スキル @@ -9,6 +9,12 @@ description: 実装済みの差分、PR、コミット、指定ファイルを c 通常のレビューが「壊れるか」を優先するのに対し、このレビューは「このコードは継続的に変更、テスト、理解、運用できる品質か」を評価する。 +## 基本姿勢 + +- 品質レビューは、実装者の説明やテスト結果が正しい前提であっても、将来の変更・テスト・運用で品質問題が表面化する条件について敵対的検証を行う +- metric や既存テストを鵜呑みにせず、保守性、変更容易性、テスト容易性、調査しやすさへの実際の影響で判断する +- 人格や意図ではなく、構造、責務、契約、依存、検証可能性、観測可能性を疑う + ## 目的 - コード品質を観点別に可視化する diff --git a/codex/skills/internal/code-quality-review/agents/openai.yaml b/codex/skills/internal/code-quality-review/agents/openai.yaml index a769119..77070b8 100644 --- a/codex/skills/internal/code-quality-review/agents/openai.yaml +++ b/codex/skills/internal/code-quality-review/agents/openai.yaml @@ -1,4 +1,4 @@ interface: display_name: "code-quality-review" - short_description: "定量シグナル込みの code quality report" - default_prompt: "Use $code-quality-review to review this diff as a code quality report, incorporating quantitative signals such as complexity, coverage, duplication, lint/static analysis when available, and focusing on maintainability, design health, testability, and technical debt." + short_description: "品質問題を敵対的検証する code quality report" + default_prompt: "Use $code-quality-review to review this diff as a code quality report, incorporating quantitative signals such as complexity, coverage, duplication, lint/static analysis when available, and doing adversarial validation of conditions where quality issues could surface in future changes, testing, or operations." diff --git a/codex/skills/internal/code-quality-review/evals/evals.json b/codex/skills/internal/code-quality-review/evals/evals.json index dafe4b4..1ebbf0c 100644 --- a/codex/skills/internal/code-quality-review/evals/evals.json +++ b/codex/skills/internal/code-quality-review/evals/evals.json @@ -21,6 +21,13 @@ "expected_output": "merge 前対応、follow-up、対応不要が分かれた Quality Gate と、設計品質・テスト品質・観測可能性・定量シグナルの scorecard が出ること。", "files": [], "should_fire": true + }, + { + "id": 4, + "prompt": "この差分を品質レビューして。metric や正常系テストを鵜呑みにせず、将来の変更や運用で品質問題が出る条件を敵対的検証して。", + "expected_output": "code-quality-review が発火し、将来の変更・テスト・運用で品質問題が表面化する条件について敵対的検証を行い、Quality Signals、Scorecard、Findings、Quality Gate を根拠付きで出すこと。", + "files": [], + "should_fire": true } ] } diff --git a/docs/skill-library.md b/docs/skill-library.md index 79d4b27..75ca8df 100644 --- a/docs/skill-library.md +++ b/docs/skill-library.md @@ -62,7 +62,7 @@ skill 間の明示的な併用・優先関係は [docs/skill-dependency-map.md]( | Skill | 概要 | 使う場面 | |---|---|---| | `code-naming` | 関数名、クラス名、型名、変数名などコード要素の命名候補や改善案を出す。 | 責務、抽象度、既存語彙、検索性、ユーザーの命名の好みに沿って名前を比較・改善したいとき。 | -| `code-next-developer-review` | 次に開発する人が困らないかという観点で差分をレビューする。 | 命名、責務境界、型、テストの読みやすさ、前提知識の残し方を確認するとき。 | +| `code-next-developer-review` | 次に開発する人が困らないかという観点で差分をレビューする。 | 実装者の前提を鵜呑みにせず、敵対的検証を行い、命名、責務境界、型、テストの読みやすさ、前提知識の残し方を確認するとき。 | | `code-review` | 実装済み差分、PR、コミット、指定ファイルをリスク中心にレビューする。 | 実装者の前提を鵜呑みにせず、敵対的検証を行い、仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性を確認するとき。 | #### 思想・スタイル型スキル @@ -73,7 +73,7 @@ skill 間の明示的な併用・優先関係は [docs/skill-dependency-map.md]( | Skill | 概要 | 使う場面 | |---|---|---| -| `code-quality-review` | code quality report として、定量シグナル、品質スコア、scorecard、quality gate を整理する。 | complexity、coverage、重複率、lint などを補助証拠にしつつ、merge 前対応と follow-up の判断材料にしたいとき。 | +| `code-quality-review` | code quality report として、定量シグナル、品質スコア、scorecard、quality gate を整理する。 | 実装者の前提を鵜呑みにせず、敵対的検証を行い、complexity、coverage、重複率、lint などを補助証拠にしつつ、merge 前対応と follow-up の判断材料にしたいとき。 | ### C. 制約定義型