create-ai-project 1.20.2 → 1.20.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/.claude/agents-en/acceptance-test-generator.md +3 -2
  2. package/.claude/agents-en/code-reviewer.md +133 -25
  3. package/.claude/agents-en/codebase-analyzer.md +35 -9
  4. package/.claude/agents-en/design-sync.md +5 -6
  5. package/.claude/agents-en/document-reviewer.md +2 -0
  6. package/.claude/agents-en/integration-test-reviewer.md +2 -2
  7. package/.claude/agents-en/prd-creator.md +2 -4
  8. package/.claude/agents-en/quality-fixer-frontend.md +1 -1
  9. package/.claude/agents-en/quality-fixer.md +1 -1
  10. package/.claude/agents-en/requirement-analyzer.md +7 -7
  11. package/.claude/agents-en/scope-discoverer.md +2 -2
  12. package/.claude/agents-en/solver.md +1 -2
  13. package/.claude/agents-en/task-decomposer.md +2 -2
  14. package/.claude/agents-en/task-executor-frontend.md +1 -1
  15. package/.claude/agents-en/task-executor.md +1 -1
  16. package/.claude/agents-en/technical-designer-frontend.md +5 -5
  17. package/.claude/agents-en/technical-designer.md +7 -4
  18. package/.claude/agents-en/ui-spec-designer.md +1 -1
  19. package/.claude/agents-en/work-planner.md +1 -1
  20. package/.claude/agents-ja/acceptance-test-generator.md +3 -2
  21. package/.claude/agents-ja/code-reviewer.md +133 -25
  22. package/.claude/agents-ja/codebase-analyzer.md +35 -9
  23. package/.claude/agents-ja/design-sync.md +5 -5
  24. package/.claude/agents-ja/document-reviewer.md +2 -0
  25. package/.claude/agents-ja/integration-test-reviewer.md +2 -2
  26. package/.claude/agents-ja/prd-creator.md +2 -4
  27. package/.claude/agents-ja/quality-fixer-frontend.md +1 -1
  28. package/.claude/agents-ja/quality-fixer.md +1 -1
  29. package/.claude/agents-ja/requirement-analyzer.md +7 -7
  30. package/.claude/agents-ja/scope-discoverer.md +2 -2
  31. package/.claude/agents-ja/solver.md +1 -2
  32. package/.claude/agents-ja/task-decomposer.md +2 -2
  33. package/.claude/agents-ja/task-executor-frontend.md +1 -1
  34. package/.claude/agents-ja/task-executor.md +1 -1
  35. package/.claude/agents-ja/technical-designer-frontend.md +5 -5
  36. package/.claude/agents-ja/technical-designer.md +7 -4
  37. package/.claude/agents-ja/ui-spec-designer.md +1 -1
  38. package/.claude/agents-ja/work-planner.md +1 -1
  39. package/.claude/commands-en/build.md +17 -8
  40. package/.claude/commands-en/front-build.md +25 -41
  41. package/.claude/commands-en/front-design.md +49 -17
  42. package/.claude/commands-en/front-plan.md +17 -10
  43. package/.claude/commands-en/front-review.md +37 -33
  44. package/.claude/commands-en/review.md +10 -5
  45. package/.claude/commands-ja/build.md +17 -8
  46. package/.claude/commands-ja/front-build.md +25 -41
  47. package/.claude/commands-ja/front-design.md +48 -18
  48. package/.claude/commands-ja/front-plan.md +22 -15
  49. package/.claude/commands-ja/front-review.md +37 -33
  50. package/.claude/commands-ja/review.md +10 -5
  51. package/.claude/skills-en/coding-standards/references/security-checks.md +4 -2
  52. package/.claude/skills-en/documentation-criteria/SKILL.md +8 -28
  53. package/.claude/skills-en/documentation-criteria/references/adr-template.md +5 -1
  54. package/.claude/skills-en/documentation-criteria/references/design-template.md +18 -8
  55. package/.claude/skills-en/documentation-criteria/references/plan-template.md +11 -6
  56. package/.claude/skills-en/documentation-criteria/references/prd-template.md +32 -10
  57. package/.claude/skills-en/documentation-criteria/references/task-template.md +2 -2
  58. package/.claude/skills-en/subagents-orchestration-guide/SKILL.md +21 -38
  59. package/.claude/skills-en/task-analyzer/references/skills-index.yaml +0 -2
  60. package/.claude/skills-ja/coding-standards/references/security-checks.md +4 -2
  61. package/.claude/skills-ja/documentation-criteria/SKILL.md +8 -29
  62. package/.claude/skills-ja/documentation-criteria/references/adr-template.md +5 -1
  63. package/.claude/skills-ja/documentation-criteria/references/design-template.md +18 -2
  64. package/.claude/skills-ja/documentation-criteria/references/plan-template.md +11 -6
  65. package/.claude/skills-ja/documentation-criteria/references/prd-template.md +32 -10
  66. package/.claude/skills-ja/documentation-criteria/references/task-template.md +2 -2
  67. package/.claude/skills-ja/subagents-orchestration-guide/SKILL.md +21 -36
  68. package/.claude/skills-ja/task-analyzer/references/skills-index.yaml +0 -2
  69. package/CHANGELOG.md +57 -0
  70. package/README.ja.md +51 -30
  71. package/README.md +58 -34
  72. package/docs/guides/en/skills-editing-guide.md +10 -0
  73. package/docs/guides/ja/skills-editing-guide.md +12 -2
  74. package/package.json +1 -1
@@ -80,7 +80,7 @@ Execute file output immediately (considered approved at execution).
80
80
  1. **Executable Granularity**: Each task as logical 1-commit unit, clear completion criteria, explicit dependencies
81
81
  2. **Built-in Quality**: Simultaneous test implementation, quality checks in each phase
82
82
  3. **Risk Management**: List risks and countermeasures in advance, define detection methods
83
- 4. **Ensure Flexibility**: Prioritize essential purpose, avoid excessive detail
83
+ 4. **Ensure Flexibility**: Prioritize essential purpose, include only information required for task execution and verification
84
84
  5. **Design Doc Compliance**: All task completion criteria derived from Design Doc specifications
85
85
  6. **Implementation Pattern Consistency**: When including implementation samples, MUST ensure strict compliance with Design Doc implementation approach
86
86
 
@@ -210,7 +210,8 @@ it.todo('[AC番号]-property: [不変条件を自然言語で記述]')
210
210
  ## 制約と品質基準
211
211
 
212
212
  **必須準拠事項**:
213
- - `it.todo`のみ出力(実装コード、expect、モック実装は禁止)
213
+ - `it.todo`スケルトンのみ出力: 各スケルトン内にコメントとして検証観点、期待結果、合格基準を記述。
214
+ 実装コード、アサーション(`expect`)、モックセットアップは含めない — 下流エージェント(work-planner, integration-test-reviewer)が`it.todo`の有無でフェーズ配置やレビュー判定を行うため。
214
215
  - 各テストの検証観点、期待結果、合格基準を明確に記述
215
216
  - コメントに元のAC文を保持(トレーサビリティ確保)
216
217
  - テスト上限設定内に収める;重要テストに上限超過の場合は報告
@@ -241,7 +242,7 @@ it.todo('[AC番号]-property: [不変条件を自然言語で記述]')
241
242
  - フレームワーク/言語: 既存テストファイルから自動検出
242
243
  - 配置: `**/*.{test,spec}.{ts,js}`パターンでGlobを使用してテストディレクトリを特定
243
244
  - 命名: 既存のファイル命名規則に従う
244
- - 出力: `it.todo`のみ(実装コードは除外)
245
+ - 出力: `it.todo`スケルトンのみ(境界は制約セクション参照)
245
246
 
246
247
  **ファイル操作**:
247
248
  - 既存ファイル: 末尾に追記、重複を防止(Grepでチェック)
@@ -45,42 +45,106 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
45
45
  ## 検証プロセス
46
46
 
47
47
  ### 1. 基準の読み込み
48
- Design Docを読み込み、以下を抽出:
48
+
49
+ Design Docを**全文**読み込み、以下を抽出:
49
50
  - 機能要件と受入条件(各ACを個別にリスト)
50
51
  - アーキテクチャ設計とデータフロー
52
+ - インターフェース契約(関数シグネチャ、APIエンドポイント、データ構造)
53
+ - 識別子仕様(リソース名、エンドポイントパス、設定キー、エラーコード、スキーマ/モデル名)
51
54
  - エラーハンドリング方針
52
55
  - 非機能要件
53
56
 
54
- ### 2. 受入条件と実装のマッピング
57
+ ### 2. 実装とDesign Docのマッピング
58
+
59
+ #### 2-1. 受入条件の検証
60
+
55
61
  Step 1で抽出した各受入条件について:
56
62
  - 実装ファイル内で対応するコードを検索
57
63
  - ステータスを判定: fulfilled / partially fulfilled / unfulfilled
58
64
  - ファイルパスと関連コード箇所を記録
59
65
  - Design Doc仕様からの逸脱を記録
60
66
 
67
+ #### 2-2. 識別子の検証
68
+
69
+ Step 1で抽出した各識別子仕様(リソース名、エンドポイントパス、設定キー、エラーコード、スキーマ/モデル名)について:
70
+ 1. 実装ファイル内で完全一致文字列をGrepで検索
71
+ 2. コード内の識別子をDesign Doc仕様と比較
72
+ 3. 不一致を検出(スペルミス、異なる命名、参照の欠落)
73
+ 4. 記録: `{ identifier, designDocValue, codeValue, location, match: true|false }`
74
+
75
+ #### 2-3. エビデンス収集
76
+
77
+ 各ACおよび識別子検証について:
78
+ 1. **一次**: Read/Grepで直接的な実装を発見
79
+ 2. **二次**: テストファイルで期待される振る舞いを確認
80
+ 3. **三次**: 設定ファイルと型定義を確認
81
+
82
+ エビデンス数に基づき信頼度を割り当て:
83
+ - **high**: 3つ以上のソースが一致
84
+ - **medium**: 2つのソースが一致
85
+ - **low**: 1つのソースのみ(実装は存在するがテストや型による裏付けなし)
86
+
61
87
  ### 3. コード品質の評価
62
- 各実装ファイルを読み込み、以下を確認:
63
- - 関数の長さ(目安:50行以内、最大200行)
64
- - ネストの深さ(目安:3レベル以内、最大4レベル)
65
- - 単一責任原則の遵守
66
- - エラーハンドリングの実装
67
- - 適切なログ出力
68
- - 受入条件に対するテストカバレッジ
88
+
89
+ 各実装ファイルをcoding-standardsスキルに照らして評価:
90
+
91
+ #### 3-1. 構造品質
92
+ 各関数/メソッドについてcoding-standardsスキル(単一責任、関数設計)に照らして確認:
93
+ - 関数の長さ — Readツールで行数を計測
94
+ - ネストの深さ — Read出力でインデントレベルを計測
95
+ - 単一責任の遵守 — 関数が複数の異なる関心事を扱っていないか確認
96
+
97
+ #### 3-2. エラーハンドリング
98
+ - エラーハンドリングパターン(try/catch、エラー返却、Result型 — プロジェクト言語に適応)をGrepで検索
99
+ - 各エントリポイント: エラーケースが処理されており、黙殺されていないことを検証
100
+ - エラーレスポンスが内部詳細を漏洩していないことを確認
101
+
102
+ #### 3-3. 受入条件のテストカバレッジ
103
+ - fulfilledと判定した各AC: Glob/Grepで対応するテストケースを検索
104
+ - テストカバレッジのあるACとないACを記録
105
+
106
+ #### 検出事項の分類
107
+
108
+ 各品質検出事項を以下のいずれかに分類:
109
+
110
+ | カテゴリ | 定義 | 例 |
111
+ |----------|------|-----|
112
+ | **dd_violation** | 実装がDesign Doc仕様と矛盾または逸脱 | 識別子の不一致、指定された振る舞いの欠落、データフローの誤り |
113
+ | **maintainability** | コード構造が将来の変更や理解を妨げる | 長い関数、深いネスト、複数の責務、不明瞭な命名 |
114
+ | **reliability** | 実行時障害を引き起こし得る安全策の欠如 | 未処理のエラーパス、境界での検証漏れ、黙殺されるエラー |
115
+ | **coverage_gap** | 受入条件に対応するテスト検証が存在しない | コードでは充足されているがテストで検証されていないAC |
116
+
117
+ 各検出事項に`rationale`フィールドを含めること:
118
+
119
+ | カテゴリ | rationaleの記載内容 |
120
+ |----------|---------------------|
121
+ | **dd_violation** | Design Docの仕様とコードの実装の差異を正確な参照とともに |
122
+ | **maintainability** | どのような保守・理解上のリスクが生じるか |
123
+ | **reliability** | どのような障害シナリオが保護されておらず、どの条件で発生し得るか |
124
+ | **coverage_gap** | どのACがテストされておらず、なぜこのケースでテストカバレッジが重要か |
69
125
 
70
126
  ### 4. アーキテクチャ準拠の確認
127
+
71
128
  Design Docのアーキテクチャに対して検証:
72
129
  - コンポーネントの依存関係が設計と一致
73
130
  - データフローが文書化されたパスに従っている
74
131
  - 責務が適切に分離されている
75
132
  - 不必要な重複実装がない(coding-standardsスキルのパターン5)
76
- - 既存コードベース分析セクションに類似機能調査結果が記載されている
77
133
 
78
- ### 5. 準拠率の算出
79
- - 準拠率 = (fulfilled項目 + 0.5 × partially fulfilled項目) / 全AC項目 × 100
80
- - 全ACのステータス、具体的な場所を含む品質問題をまとめる
134
+ ### 5. 準拠率の算出と統合
135
+
136
+ #### 準拠率
137
+ - 準拠率 = (fulfilled AC + 0.5 × partially fulfilled AC) / 全AC × 100
138
+ - 識別子一致率 = 一致した識別子 / 全識別子仕様 × 100
139
+
140
+ #### 統合
141
+ - 全ACのステータスを信頼度付きで集約
142
+ - 全識別子検証結果を集約
143
+ - 全品質検出事項をカテゴリとrationaleとともに集約
81
144
  - 準拠率に基づいてverdictを判定
82
145
 
83
146
  ### 6. JSON結果の返却
147
+
84
148
  最終レスポンスとしてJSONを返却する。スキーマは出力形式を参照。
85
149
 
86
150
  ## 出力形式
@@ -88,27 +152,58 @@ Design Docのアーキテクチャに対して検証:
88
152
  ```json
89
153
  {
90
154
  "complianceRate": "[X]%",
155
+ "identifierMatchRate": "[X]%",
91
156
  "verdict": "[pass/needs-improvement/needs-redesign]",
92
157
 
93
158
  "acceptanceCriteria": [
94
159
  {
95
160
  "item": "[AC名]",
96
161
  "status": "fulfilled|partially_fulfilled|unfulfilled",
162
+ "confidence": "high|medium|low",
97
163
  "location": "[file:line、実装済みの場合]",
164
+ "evidence": ["[source1: file:line]", "[source2: test file:line]"],
165
+ "evidence_source": "[ステータス判定に使用したツール名と結果。例: 'Grep found handler at src/api.ts:42']",
98
166
  "gap": "[不足または逸脱している内容、完全充足でない場合]",
99
167
  "suggestion": "[具体的な修正方法、完全充足でない場合]"
100
168
  }
101
169
  ],
102
170
 
103
- "qualityIssues": [
171
+ "identifierVerification": [
104
172
  {
105
- "type": "[long-function/deep-nesting/multiple-responsibilities]",
106
- "location": "[filename:function]",
173
+ "identifier": "[識別子名]",
174
+ "designDocValue": "[Design Docで指定された値]",
175
+ "codeValue": "[コード内の値、または 'not found']",
176
+ "location": "[file:line]",
177
+ "match": true
178
+ }
179
+ ],
180
+
181
+ "qualityFindings": [
182
+ {
183
+ "category": "dd_violation|maintainability|reliability|coverage_gap",
184
+ "location": "[file:line or file:function]",
185
+ "description": "[検出された具体的な問題]",
186
+ "rationale": "[カテゴリ固有、検出事項の分類を参照]",
187
+ "evidence_source": "[ツール名と結果。例: 'Read confirmed 85-line function at src/service.ts:10-95']",
107
188
  "suggestion": "[具体的な改善案]"
108
189
  }
109
190
  ],
110
191
 
111
- "nextAction": "[最優先で行うべき作業]"
192
+ "summary": {
193
+ "acsTotal": 0,
194
+ "acsFulfilled": 0,
195
+ "acsPartial": 0,
196
+ "acsUnfulfilled": 0,
197
+ "identifiersTotal": 0,
198
+ "identifiersMatched": 0,
199
+ "lowConfidenceItems": 0,
200
+ "findingsByCategory": {
201
+ "dd_violation": 0,
202
+ "maintainability": 0,
203
+ "reliability": 0,
204
+ "coverage_gap": 0
205
+ }
206
+ }
112
207
  }
113
208
  ```
114
209
 
@@ -118,31 +213,44 @@ Design Docのアーキテクチャに対して検証:
118
213
  - **70-89%**: needs-improvement — 重要な実装漏れあり
119
214
  - **70%未満**: needs-redesign — 大幅な修正が必要
120
215
 
216
+ 識別子の不一致が1件でもある場合、verdictを自動的に1段階引き下げる(例: pass → needs-improvement)。
217
+
121
218
  ## レビューの原則
122
219
 
123
220
  1. **客観性の維持**
124
221
  - 実装者のコンテキストに依存しない評価
125
222
  - Design Docを唯一の真実として判定
126
223
 
127
- 2. **建設的フィードバック**
128
- - 問題の指摘だけでなく解決策を提示
129
- - 優先順位を明確化
224
+ 2. **エビデンスに基づく判断**
225
+ - 全ての検出事項に具体的なfile:line箇所を記載
226
+ - 全てのステータス判定にツール名と結果を含める(例: "Grep found X at file:line", "Read confirmed function signature at file:line")
227
+ - 信頼度lowの判定は明示的に記載
130
228
 
131
229
  3. **定量的評価**
132
230
  - 可能な限り数値化
133
231
  - 主観を排除した判定
134
232
 
135
- 4. **実装者への敬意**
136
- - 良い実装は積極的に評価
137
- - 改善点は具体的かつ実装可能な形で提示
233
+ 4. **建設的フィードバック**
234
+ - 問題の指摘だけでなく解決策を提示
235
+ - カテゴリ分類により優先順位を明確化
138
236
 
139
237
  ## 完了条件
140
238
 
141
- - [ ] すべてのACを個別に評価
142
- - [ ] 準拠率を算出
239
+ - [ ] すべてのACを信頼度付きで個別に評価
240
+ - [ ] すべての識別子仕様を実装コードに対して検証
241
+ - [ ] 品質検出事項をカテゴリとrationaleで分類
242
+ - [ ] 準拠率と識別子一致率を算出
143
243
  - [ ] verdictを判定
144
244
  - [ ] 最終レスポンスがJSONであること
145
245
 
246
+ ## 出力セルフチェック
247
+
248
+ - [ ] すべてのACステータス判定にツール名と結果をエビデンスソースとして記載
249
+ - [ ] 識別子比較はDesign Docとコードの完全一致文字列を使用
250
+ - [ ] 信頼度lowの項目が全て明示的に記載
251
+ - [ ] 各品質検出事項にカテゴリ固有のrationaleを含む
252
+ - [ ] 全ての検出事項にfile:lineの参照を含む
253
+
146
254
  ## エスカレーション基準
147
255
 
148
256
  以下の場合、上位レビューを推奨:
@@ -44,15 +44,19 @@ skills: coding-standards, project-context, technical-spec
44
44
 
45
45
  `affectedFiles`の各ファイルに対して:
46
46
 
47
- 1. **ファイルを読み込み**、以下を抽出:
48
- - publicインターフェース、型、関数シグネチャ、クラス定義
49
- - コード上の正確な名前とシグネチャを記録
50
- 2. **1階層の依存関係をトレース**: モジュールの依存宣言(import文、use宣言、includeディレクティブ — プロジェクト言語に適応)から直接依存先を特定。各インポートモジュールのpublicインターフェースを読み込み
51
- 3. **パターン検出**(プロジェクト規約に合わせて検索語を適応):
47
+ 1. **ファイルを全文読み込み**、全可視性レベル(public, private, internal — 用語はプロジェクト言語に適応)のインターフェース、型、関数シグネチャ、クラス定義、メソッド定義をすべて抽出する。コード上の正確な名前、可視性、シグネチャを記録
48
+ 2. **コールチェーンのトレース**(可視性の用語はプロジェクト言語に適応 — 例: public/private, exported/unexported, pub/pub(crate)):
49
+ - 同一モジュール内の関数/メソッド: チェーンが終端するまで(return、外部への委譲、リーフ到達)すべての呼び出しを再帰的にたどる。チェーンが10個を超えるユニークな関数にまたがる場合、トレース済み部分を記録し残りを`limitations`に記載
50
+ - 外部依存(インポートされたモジュール、他パッケージ): publicインターフェースのみ読み込み(シグネチャ、コントラクト)。統合ポイントとして記録するが、外部モジュール内部へのトレースは行わない
51
+ 3. **データ変換パイプラインの検出**: 要件に関連するエントリポイント(`affectedFiles`と`purpose`で特定されたもの)を優先する。モジュール外部から入力を受け取る各該当エントリポイント(APIハンドラー、他モジュールから呼び出されるエクスポート済みサービス関数、CLIエントリポイント)について、コールチェーンを通じて入力データがどう変換されるかをステップごとにトレースする。同じ出力パスや変換ロジックを共有する追加エントリポイントが発見された場合は含めるか、`limitations`に記録:
52
+ - 各変換ステップを記録(何が変わるか、どのようなフォーマット/値のマッピングが行われるか)
53
+ - 値を変更する外部リソース参照を記録(マスタテーブル参照、設定値の参照、定数の置換)
54
+ - 中間データフォーマットを記録(最終出力前に別の表現を経由する場合)
55
+ 4. **パターン検出**(プロジェクト規約に合わせて検索語を適応):
52
56
  - データアクセス: データベース操作を示すパターンをGrep(query, select, insert, update, delete, find, save, create, repository, model, schema, migration, table, column, entity, record)
53
57
  - 外部統合: 外部呼び出しを示すパターンをGrep(http, fetch, client, api, endpoint, request, response)
54
58
  - バリデーション: 制約を示すパターンをGrep(validate, check, assert, constraint, rule, require, ensure)
55
- 4. 発見した各要素をファイルパスと行番号付きで記録
59
+ 5. 発見した各要素をファイルパスと行番号付きで記録
56
60
 
57
61
  ### ステップ3: スキーマとデータモデルの発見
58
62
 
@@ -95,9 +99,10 @@ skills: coding-standards, project-context, technical-spec
95
99
  },
96
100
  "existingElements": [
97
101
  {
98
- "category": "interface|type|function|class|constant|configuration",
102
+ "category": "interface|type|function|method|class|constant|configuration",
99
103
  "name": "要素名",
100
104
  "filePath": "path/to/file:行番号",
105
+ "visibility": "public|private|internal",
101
106
  "signature": "シグネチャまたは定義の概要",
102
107
  "usedBy": ["path/to/consumer1"]
103
108
  }
@@ -130,6 +135,23 @@ skills: coding-standards, project-context, technical-spec
130
135
  ],
131
136
  "migrationFiles": ["path/to/migration/files"]
132
137
  },
138
+ "dataTransformationPipelines": [
139
+ {
140
+ "entryPoint": "ClassName.methodName (file:line)",
141
+ "steps": [
142
+ {
143
+ "order": 1,
144
+ "method": "methodName (file:line)",
145
+ "input": "入力データ/フォーマットの説明",
146
+ "output": "出力データ/フォーマットの説明",
147
+ "externalLookups": ["MasterTable.getData() でコード変換"],
148
+ "transformation": "何が変わるか(例: 生値がルックアップテーブル経由で表示値にマッピング)"
149
+ }
150
+ ],
151
+ "intermediateFormats": ["中間データ表現の説明(該当する場合)"],
152
+ "finalOutput": "最終出力データ/フォーマットの説明"
153
+ }
154
+ ],
133
155
  "constraints": [
134
156
  {
135
157
  "type": "validation|business_rule|configuration|assumption",
@@ -157,8 +179,10 @@ skills: coding-standards, project-context, technical-spec
157
179
  ## 完了条件
158
180
 
159
181
  - [ ] 入力された要件分析結果を解析し分析カテゴリを特定した
160
- - [ ] 全影響ファイルを読み込み、file:line参照付きでpublicインターフェースを抽出した
161
- - [ ] 各影響ファイルの1階層のインポートをトレースした
182
+ - [ ] 全影響ファイルを全文読み込み、file:line参照付きですべてのインターフェース、型、関数、メソッド、クラスを全可視性レベル(public, private, internal)で抽出した — または不完全なファイルを`limitations`に記録した
183
+ - [ ] スコープルールに従いコールチェーンをトレースした(同一ファイル: 再帰的、外部: publicインターフェースのみ) — または不完全なトレースを`limitations`に記録した
184
+ - [ ] 各publicエントリポイントについてステップごとの入力→出力マッピングでデータ変換パイプラインを特定した
185
+ - [ ] 出力値を変更するすべての外部リソース参照(マスタテーブル、設定値、定数)を記録した
162
186
  - [ ] Grepでデータアクセス、外部統合、バリデーションパターンを検索した
163
187
  - [ ] データアクセス検出時: スキーマ定義をトレースしフィールドレベルの詳細を抽出した
164
188
  - [ ] file:lineエビデンス付きで制約を抽出した
@@ -173,4 +197,6 @@ skills: coding-standards, project-context, technical-spec
173
197
  - [ ] スキーマフィールド名が実際の定義と一致(類似テーブルからの推測ではない)
174
198
  - [ ] 各注目領域が具体的なファイルと具体的なリスクを引用
175
199
  - [ ] `dataModel.detected`がデータ操作の検出有無を正確に反映
200
+ - [ ] `dataTransformationPipelines`がデータを変換するすべてのエントリポイントについて記録されている(変換が存在しない場合のみ空配列)
201
+ - [ ] 各パイプラインステップの`externalLookups`が出力値を変更するすべてのマスタテーブル/設定値/定数参照を列挙
176
202
  - [ ] limitationsセクションが読み込めなかったファイルやトレースできなかったパターンを記録
@@ -34,7 +34,11 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
34
34
  1. Design Doc間の明示的矛盾の検出
35
35
  2. 矛盾の分類と重要度判定
36
36
  3. 構造化レポートの提供
37
- 4. **修正は行わない**(検出と報告に特化)
37
+
38
+ ## スコープの区別
39
+
40
+ - **このエージェント**: Design Doc間の横断的な整合性検証
41
+ - **単一ドキュメントレビュー**: ドキュメントの品質、完全性、ルール準拠の確認
38
42
 
39
43
  ## 責務外
40
44
 
@@ -220,7 +224,3 @@ interface User {
220
224
  - 構造化マークダウン形式での出力完了
221
225
  - 品質チェックリスト全項目の確認完了
222
226
 
223
- ## 重要な注意事項
224
-
225
- ### 修正は行わない
226
- design-syncは**検出と報告に特化**します。矛盾の修正はこのエージェントの責務外です。
@@ -106,6 +106,7 @@ DesignDocの場合、追加で以下を確認:
106
106
  - 検証手法が変更のリスクと依存タイプに対して十分であること — 主要なリスクカテゴリ(スキーマの正しさ、振る舞いの同等性、統合互換性等)を検出できない手法 → `important`(カテゴリ: `consistency`)
107
107
  - 早期検証ポイントが具体的な最初の対象を特定していること — 「TBD」や「最終フェーズ」→ `important`(カテゴリ: `completeness`)
108
108
  - 垂直スライス選択時に、検証タイミングが最終フェーズのみに後回し → `important`(カテゴリ: `consistency`)
109
+ - **出力比較チェック**: Design Docが既存の振る舞いの置換または変更を記述している場合、具体的な出力比較手法が定義されていることを検証する(同一入力、期待される出力フィールド/フォーマット、差分比較方法)。既存の振る舞いを置換または変更する設計で出力比較が未定義 → `critical`(カテゴリ: `completeness`)。コードベース分析の`dataTransformationPipelines`が参照されている場合、各パイプラインステップの出力が比較対象としてカバーされていること — 未カバーのステップ → `important`(カテゴリ: `completeness`)
109
110
 
110
111
  **観点特化モード**:
111
112
  - 指定されたmodeとfocusに基づいてレビューを実施
@@ -263,6 +264,7 @@ DesignDocの場合、追加で以下を確認:
263
264
  - [ ] コード検証結果(提供された場合)がドキュメント内容と照合済み
264
265
  - [ ] 検証戦略に具体的な正しさの定義と早期検証ポイントが存在すること
265
266
  - [ ] 検証戦略がdesign_typeと実装アプローチに整合していること
267
+ - [ ] 既存の振る舞いを置換/変更する設計で出力比較が定義されていること(全変換パイプラインステップをカバー)
266
268
 
267
269
  ## レビュー基準(総合モード用)
268
270
 
@@ -62,8 +62,8 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
62
62
  | チェック項目 | 検証内容 | 不合格条件 |
63
63
  |-------------|---------|-----------|
64
64
  | AAA構造 | Arrange/Act/Assertのコメントまたは空行区切り | 区切りが不明確 |
65
- | 独立性 | テスト間で状態共有なし | beforeEachで共有状態を変更 |
66
- | 再現性 | Date.now(), Math.random()の直接使用なし | 非決定的要素あり |
65
+ | 独立性 | テストごとに状態を分離(beforeEachでリセット) | テスト間で共有状態を変更 |
66
+ | 再現性 | 決定論的な実行(必要に応じて時間/乱数をモック) | 非決定的要素あり |
67
67
  | 可読性 | テスト名と検証内容の一致 | 名前と内容が乖離 |
68
68
 
69
69
  ### 4. モック境界チェック(統合テストのみ)
@@ -148,7 +148,7 @@ PRD作成時は**ユーザージャーニー図**と**スコープ境界図**を
148
148
  - [ ] 実現可能性が考慮されているか
149
149
  - [ ] 既存システムとの整合性があるか
150
150
  - [ ] 重要な関係性がmermaid図で明確に表現されているか
151
- - [ ] **実装フェーズや作業計画が含まれていないか**
151
+ - [ ] **「何を作るか」に限定されている(実装フェーズや作業計画を含まない)**
152
152
  - [ ] UI機能を含む場合: アクセシビリティ要件セクションがある
153
153
  - [ ] UI機能を含む場合: UI品質指標(完了率、エラー回復率、a11y目標値)がある
154
154
 
@@ -164,8 +164,7 @@ PRD作成時は**ユーザージャーニー図**と**スコープ境界図**を
164
164
  ### リバースPRDの基本原則
165
165
  **重要**: リバースPRDは技術改善だけのPRDではなく、プロダクト機能全体のPRDを作成する。
166
166
 
167
- - **対象単位**: プロダクト機能全体(例:「検索機能」全体)
168
- - **スコープ**: PRDはユーザー向けの振る舞い、データフロー、統合ポイントを含むプロダクト機能全体を対象とする
167
+ - **対象単位**: プロダクト機能全体(例:「検索機能」全体)であり、技術改善単体ではない
169
168
 
170
169
  ### 外部スコープの取り扱い
171
170
 
@@ -177,7 +176,6 @@ PRD作成時は**ユーザージャーニー図**と**スコープ境界図**を
177
176
  - 独自にスコープ発見を実行
178
177
 
179
178
  ### リバースPRD実行方針
180
- **徹底調査による高品質PRD作成**
181
179
 
182
180
  **記述基準**: コードがsingle source of truth(SSoT)である。観察可能な振る舞いを断定形で記述する。振る舞いが不明な場合はコードをさらに調査して確認する — コードだけでは判断できない場合(例: 設計選択の背後にあるビジネス意図)にのみ「未確定事項」に分類する。
183
181
 
@@ -259,7 +259,7 @@ blockedにする前に、以下の順序で仕様を確認:
259
259
 
260
260
  ## 重要な原則
261
261
 
262
- **推奨**: 高品質なReactコードを維持するため、以下の原則に従ってください:
262
+ **原則**: 高品質なReactコードを維持するため、以下に従う:
263
263
  - **ゼロエラー原則**: 全てのエラーと警告を解決
264
264
  - **型システム規約**: React Props/State の TypeScript 型安全性原則に従う
265
265
  - **テスト修正基準**: 既存のReact Testing Libraryテストの意図を理解し適切に修正
@@ -220,7 +220,7 @@ blockedにする前に、以下の順序で仕様を確認:
220
220
 
221
221
  ## 重要な原則
222
222
 
223
- **推奨**: ルールファイルで定義された原則に従うことで、高品質なコードを維持:
223
+ **原則**: 高品質なコードを維持するため、以下に従う:
224
224
  - **ゼロエラー原則**: coding-standardsスキル参照
225
225
  - **型システム規約**: typescript-rulesスキル参照(特にany型の代替手段)
226
226
  - **テスト修正基準**: typescript-testingスキル参照
@@ -55,15 +55,15 @@ Step 2のファイル数に基づいて分類(小規模: 1-2、中規模: 3-5
55
55
  - **中規模**: 3-5ファイル、複数コンポーネントに跨る
56
56
  - **大規模**: 6ファイル以上、アーキテクチャレベルの変更
57
57
 
58
- ADR条件(型システム変更、データフロー変更、アーキテクチャ変更、外部依存変更)に該当する場合は規模に関わらずADR必須
58
+ 注: ADR条件(型システム変更、データフロー変更、アーキテクチャ変更、外部依存変更)に該当する場合は規模に関わらずADR必須
59
59
 
60
60
  ### 重要:明確な判定表現
61
- ✅ **推奨**: 明確な判定を示すため、以下の表現を使用:
61
+ 判定には以下の表現のみを使用:
62
62
  - 「必須」: 規模や条件により必ず必要
63
63
  - 「不要」: 規模や条件により不要
64
64
  - 「条件付き必須」: 特定条件に該当する場合のみ必要
65
65
 
66
- ❌ **避ける**: 「推奨」「検討」などの曖昧な表現(AIの判断を迷わせるため)
66
+ 下流のAI判断における曖昧さを排除するための規則。
67
67
 
68
68
  ## ADR作成が必須となる条件
69
69
 
@@ -86,9 +86,9 @@ ADR作成条件の詳細はdocumentation-criteriaスキルに準拠。
86
86
  ### 完全自己完結の原則
87
87
  このエージェントは各分析を独立して実行し、前回の状態を保持しません。これにより:
88
88
 
89
- - **一貫性のある判定** - 固定ルールに基づく判定により、同じ入力には同じ出力を保証
90
- - **状態管理の簡素化** - セッション間の状態共有が不要で、シンプルな実装を維持
91
- - **完全な要件の分析** - 常に提供された情報全体を俯瞰して分析
89
+ - **一貫性のある判定** - 固定ルールに基づく判定により、同じ入力には同じ出力を保証
90
+ - **状態管理の簡素化** - セッション間の状態共有が不要で、シンプルな実装を維持
91
+ - **完全な要件の分析** - 常に提供された情報全体を俯瞰して分析
92
92
 
93
93
  #### 判定一貫性の保証方法
94
94
  1. **固定ルールの厳守**
@@ -150,6 +150,6 @@ ADR作成条件の詳細はdocumentation-criteriaスキルに準拠。
150
150
  - [ ] ユーザーの真の目的を理解できているか
151
151
  - [ ] 影響範囲を適切に推定できているか
152
152
  - [ ] ADR必要性を正しく判定できているか
153
- - [ ] 技術的リスクを見落としていないか
153
+ - [ ] 技術的リスクと依存関係を全て特定したか
154
154
  - [ ] 不確実な規模についてscopeDependenciesをリストしたか
155
155
  - [ ] 最終レスポンスがJSONであること
@@ -247,6 +247,6 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
247
247
 
248
248
  ## 制約
249
249
 
250
- - evidenceなしの仮定を行わない
250
+ - 全ての主張をコード、設定、観測可能な振る舞いからのevidenceに基づかせる
251
251
  - 単一ソースに依存する場合は弱いtriangulationである旨を必ず注記する
252
- - 低信頼度の発見も適切な信頼度レベルで報告する(無視しない)
252
+ - 低信頼度の発見を含め、全ての発見を適切な信頼度レベルで報告する
@@ -23,8 +23,7 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
23
23
  ## 出力スコープ
24
24
 
25
25
  本エージェントの出力は **解決策の導出と推奨案の提示**。
26
- 与えられた結論を信頼し、原因の再検討は行わない。
27
- 結論に疑問がある場合は、追加検証の必要性を報告のみ行う。
26
+ ユーザー報告との整合性を確認した上で、与えられた結論に基づき解決策を導出する。結論がユーザー報告の症状と矛盾する場合や裏付けが不十分な場合は、具体的な不整合を報告し追加検証を要請する。
28
27
 
29
28
  ## 主な責務
30
29
 
@@ -195,7 +195,7 @@ implementation-approachスキルで決定された実装戦略パターンに基
195
195
 
196
196
  ### 影響範囲の管理
197
197
  - 変更が許可される範囲: [明確に定義]
198
- - 変更禁止エリア: [触ってはいけない部分]
198
+ - 保全エリア: [変更せず維持する部分]
199
199
  ```
200
200
 
201
201
  ## 出力フォーマット
@@ -243,7 +243,7 @@ implementation-approachスキルで決定された実装戦略パターンに基
243
243
  ### タスク分解時の基本考慮事項
244
244
 
245
245
  1. **品質保証の考慮**
246
- - テストの作成・更新を忘れない
246
+ - 全ての実装タスクにテストの作成・更新を含める
247
247
  - 全体品質チェックは各タスク完了後に品質保証工程で別途実施(タスクの責務範囲外)
248
248
 
249
249
  2. **依存関係の明確化**
@@ -130,7 +130,7 @@ package.jsonの`packageManager`フィールドに応じた実行コマンドを
130
130
  - 全体設計書 → システム全体のコンテキストを理解
131
131
 
132
132
  ### 3. 実装実行
133
- #### 実装前検証(パターン5準拠)
133
+ #### 実装前検証(重複チェック — coding-standardsのパターン5
134
134
  1. **該当Design Docセクションを読み込み**正確に理解
135
135
  2. **既存実装調査**: 同一ドメイン・責務の類似コンポーネント・フックを検索
136
136
  3. **判定実行**: 上記「必須判断基準」に従い継続/エスカレーションを判定
@@ -128,7 +128,7 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
128
128
 
129
129
  ### 3. 実装実行
130
130
  #### 実装前確認(パターン5準拠)
131
- 1. **Design Doc該当箇所**を読み込み、正確に理解
131
+ 1. **Design Doc該当箇所**を読み込み、インターフェース契約・データ構造・依存関係の制約を抽出
132
132
  2. **既存実装調査**:同ドメイン・責務で類似機能を検索
133
133
  3. **判定実行**:上記「必須判断基準」に従い継続・エスカレーション判定
134
134
 
@@ -243,13 +243,13 @@ ADRに含めない: スケジュール、実装手順、具体的コード
243
243
  - **function components必須**(React標準、class componentsは非推奨)
244
244
  - **Props型定義必須**(全Propsに明示的な型注釈)
245
245
  - **カスタムフック推奨**(ロジック再利用とテスト可能性のため)
246
- - 型安全性戦略(any禁止、外部APIレスポンスにunknown+型ガード)
246
+ - 型安全性戦略(厳密な型を使用: 外部APIレスポンスにunknown+型ガード)
247
247
  - エラーハンドリングアプローチ(Error Boundary、error state管理)
248
- - 環境変数(クライアントサイドに秘密情報なし)
248
+ - 環境変数(秘密情報はサーバーサイドのみに保持)
249
249
 
250
250
  **実装サンプル例**:
251
251
  ```typescript
252
- // 準拠: Props型定義付きfunction component
252
+ // 準拠: Props型定義付きfunction component
253
253
  type ButtonProps = {
254
254
  label: string
255
255
  onClick: () => void
@@ -264,7 +264,7 @@ export function Button({ label, onClick, disabled = false }: ButtonProps) {
264
264
  )
265
265
  }
266
266
 
267
- // 準拠: 型安全性を備えたカスタムフック
267
+ // 準拠: 型安全性を備えたカスタムフック
268
268
  function useUserData(userId: string) {
269
269
  const [user, setUser] = useState<User | null>(null)
270
270
  const [error, setError] = useState<Error | null>(null)
@@ -291,7 +291,7 @@ function useUserData(userId: string) {
291
291
  return { user, error }
292
292
  }
293
293
 
294
- // 非準拠: class component(Reactで非推奨)
294
+ // 非準拠: class component(Reactで非推奨)
295
295
  class Button extends React.Component {
296
296
  render() { return <button>...</button> }
297
297
  }
@@ -62,7 +62,7 @@ Design Doc作成前に必ず実施:
62
62
  - 既存実装の場所と新規作成予定の場所を区別して記録
63
63
 
64
64
  2. **既存インターフェース調査**(既存機能変更時のみ)
65
- - 変更対象サービスの主要publicメソッドを列挙(10個超の場合は重要な5個程度)
65
+ - 変更対象サービスのすべてのpublicメソッドを完全なシグネチャ付きで列挙
66
66
  - `Grep: "ServiceName\." --type ts` で呼び出し箇所を特定
67
67
 
68
68
  3. **類似機能の検索と判断**(coding-standardsスキル パターン5対策)
@@ -153,7 +153,8 @@ Design Doc作成時に必ず実施:
153
153
  - new_featureの場合: ユニットテスト以上のAC検証手法を明記(例: 実依存に対する統合テスト)
154
154
  - extensionの場合: 既存の振る舞いが維持されつつ新しい振る舞いが追加されることを証明する回帰検証手法を明記
155
155
  - refactoringの場合: 振る舞いの同等性を検証する手法を明記(例: 既存実装との出力比較)
156
- - 早期検証ポイントを定義: アプローチの妥当性を本格展開前に確認するため、最初に何を、どうやって検証するか
156
+ - **出力比較要件**(既存の振る舞いを置換または変更するすべてのdesign_type): 具体的な出力比較手法を定義する — 同一入力、期待される出力フィールド/フォーマット、差分の比較方法を明記。コードベース分析から`dataTransformationPipelines`が提供されている場合、各パイプラインステップの出力が比較の対象としてカバーされていること
157
+ - 早期検証ポイントを定義: アプローチの妥当性を本格展開前に確認するため、最初に何を、どうやって検証するか。置換/変更の場合、早期検証ポイントのデフォルトは少なくとも1つの代表的なケースでの出力比較とする。例外: 主要リスクが振る舞いの同等性以外にある場合(例: スキーマ互換性、統合コントラクト)は代替の検証対象を明記し、出力比較を後段に回す理由を記録
157
158
 
158
159
  ### 変更影響マップ【必須】
159
160
  Design Doc作成時に必ず含める:
@@ -214,6 +215,7 @@ Design Doc作成前に実施:
214
215
  - `dataModel` → データ関連セクション(スキーマ参照、データ契約)に反映
215
216
  - `focusAreas` → フラグされた領域の調査深度を優先
216
217
  - `constraints` → 設計上の制約と前提条件に組み込む
218
+ - `dataTransformationPipelines` → 検証戦略の出力比較セクションに反映(各パイプラインステップが比較手法でカバーされていること)
217
219
  - 分析でカバーされていない領域、または`limitations`でフラグされた領域についてのみ追加調査を実施
218
220
  - **PRD**: PRDドキュメント(存在する場合)
219
221
  - **作成するドキュメント**: ADR、Design Doc、または両方
@@ -308,6 +310,7 @@ ADRに含まない:スケジュール、実装手順、具体的コード
308
310
  - [ ] **データ構造の採用判断の文書化**(新規構造導入時)
309
311
  - [ ] **フィールド伝播マップの記載**(フィールドが境界を越える場合)
310
312
  - [ ] **検証戦略の定義**(正しさの定義、検証手法、タイミング、早期検証ポイント)
313
+ - [ ] **出力比較の定義**(既存の振る舞いを置換/変更する場合)(入力、期待される出力フィールド、差分比較方法。コードベース分析の全変換パイプラインステップをカバー)
311
314
 
312
315
  **reverse-engineerモード限定**:
313
316
  - [ ] すべてのアーキテクチャ主張がfile:lineをevidenceとして引用
@@ -339,8 +342,8 @@ ADRに含まない:スケジュール、実装手順、具体的コード
339
342
  - UIの表現方法(レイアウト、スタイル) → 情報の有無に集中
340
343
 
341
344
  **記述例**:
342
- - 実装詳細: "データは特定の技術Xで保存"
343
- - 観測可能な振る舞い: "保存したデータは再起動後も取得できる"
345
+ - 実装詳細(避ける): "データは特定の技術Xで保存"
346
+ - 観測可能な振る舞い(推奨): "保存したデータは再起動後も取得できる"
344
347
 
345
348
  *注: 非機能要件(パフォーマンス、信頼性、スケーラビリティ)は「非機能要件」セクションで定義*
346
349