create-ai-project 1.22.0 → 1.23.0
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.
- package/.claude/agents-en/code-reviewer.md +4 -39
- package/.claude/agents-en/code-verifier.md +3 -22
- package/.claude/agents-en/document-reviewer.md +26 -68
- package/.claude/agents-en/task-decomposer.md +31 -0
- package/.claude/agents-en/task-executor-frontend.md +15 -1
- package/.claude/agents-en/task-executor.md +15 -1
- package/.claude/agents-en/technical-designer-frontend.md +68 -11
- package/.claude/agents-en/technical-designer.md +37 -11
- package/.claude/agents-en/ui-analyzer.md +313 -0
- package/.claude/agents-en/ui-spec-designer.md +3 -1
- package/.claude/agents-en/work-planner.md +26 -1
- package/.claude/agents-ja/code-reviewer.md +4 -39
- package/.claude/agents-ja/code-verifier.md +3 -22
- package/.claude/agents-ja/document-reviewer.md +26 -68
- package/.claude/agents-ja/task-decomposer.md +31 -0
- package/.claude/agents-ja/task-executor-frontend.md +15 -1
- package/.claude/agents-ja/task-executor.md +15 -1
- package/.claude/agents-ja/technical-designer-frontend.md +68 -11
- package/.claude/agents-ja/technical-designer.md +37 -11
- package/.claude/agents-ja/ui-analyzer.md +313 -0
- package/.claude/agents-ja/ui-spec-designer.md +3 -1
- package/.claude/agents-ja/work-planner.md +26 -1
- package/.claude/commands-en/build.md +9 -7
- package/.claude/commands-en/design.md +70 -44
- package/.claude/commands-en/front-build.md +9 -7
- package/.claude/commands-en/front-design.md +87 -58
- package/.claude/commands-ja/build.md +9 -7
- package/.claude/commands-ja/design.md +69 -43
- package/.claude/commands-ja/front-build.md +9 -7
- package/.claude/commands-ja/front-design.md +95 -64
- package/.claude/skills-en/coding-standards/SKILL.md +1 -0
- package/.claude/skills-en/documentation-criteria/SKILL.md +1 -0
- package/.claude/skills-en/documentation-criteria/references/design-template.md +54 -1
- package/.claude/skills-en/documentation-criteria/references/plan-template.md +16 -4
- package/.claude/skills-en/documentation-criteria/references/task-template.md +11 -1
- package/.claude/skills-en/subagents-orchestration-guide/SKILL.md +3 -1
- package/.claude/skills-ja/coding-standards/SKILL.md +1 -0
- package/.claude/skills-ja/documentation-criteria/SKILL.md +1 -0
- package/.claude/skills-ja/documentation-criteria/references/design-template.md +54 -1
- package/.claude/skills-ja/documentation-criteria/references/plan-template.md +16 -4
- package/.claude/skills-ja/documentation-criteria/references/task-template.md +11 -1
- package/.claude/skills-ja/subagents-orchestration-guide/SKILL.md +3 -1
- package/CHANGELOG.md +28 -0
- package/CLAUDE.en.md +10 -1
- package/CLAUDE.ja.md +12 -3
- package/CLAUDE.md +12 -3
- package/package.json +1 -1
|
@@ -201,7 +201,7 @@ summary.findingsByCategory.reliability: number (integer >= 0)
|
|
|
201
201
|
summary.findingsByCategory.coverage_gap: number (integer >= 0)
|
|
202
202
|
```
|
|
203
203
|
|
|
204
|
-
###
|
|
204
|
+
### Minimal Shape Example
|
|
205
205
|
|
|
206
206
|
```json
|
|
207
207
|
{
|
|
@@ -220,25 +220,8 @@ summary.findingsByCategory.coverage_gap: number (integer >= 0)
|
|
|
220
220
|
"suggestion": null
|
|
221
221
|
}
|
|
222
222
|
],
|
|
223
|
-
"identifierVerification": [
|
|
224
|
-
|
|
225
|
-
"identifier": "AUTH_TOKEN_TTL",
|
|
226
|
-
"designDocValue": "3600",
|
|
227
|
-
"codeValue": "1800",
|
|
228
|
-
"location": "src/auth/config.ts:8",
|
|
229
|
-
"match": false
|
|
230
|
-
}
|
|
231
|
-
],
|
|
232
|
-
"qualityFindings": [
|
|
233
|
-
{
|
|
234
|
-
"category": "reliability",
|
|
235
|
-
"location": "src/auth/login.ts:55",
|
|
236
|
-
"description": "Error from token signer is swallowed silently",
|
|
237
|
-
"rationale": "When jwt.sign throws, the catch block returns null without logging; downstream sees auth failure indistinguishable from invalid credentials",
|
|
238
|
-
"evidence_source": "Read confirmed empty catch at src/auth/login.ts:55-58",
|
|
239
|
-
"suggestion": "Re-throw with context or log error then propagate to caller"
|
|
240
|
-
}
|
|
241
|
-
],
|
|
223
|
+
"identifierVerification": [{"identifier": "AUTH_TOKEN_TTL", "designDocValue": "3600", "codeValue": "1800", "location": "src/auth/config.ts:8", "match": false}],
|
|
224
|
+
"qualityFindings": [{"category": "reliability", "location": "src/auth/login.ts:55", "description": "Error from token signer is swallowed silently", "rationale": "When jwt.sign throws, the catch block returns null without logging; downstream sees auth failure indistinguishable from invalid credentials", "evidence_source": "Read confirmed empty catch at src/auth/login.ts:55-58", "suggestion": "Re-throw with context or log error then propagate to caller"}],
|
|
242
225
|
"summary": {
|
|
243
226
|
"acsTotal": 12,
|
|
244
227
|
"acsFulfilled": 10,
|
|
@@ -265,25 +248,6 @@ summary.findingsByCategory.coverage_gap: number (integer >= 0)
|
|
|
265
248
|
|
|
266
249
|
Identifier mismatches automatically lower the verdict by one level (e.g., pass → needs-improvement) when any mismatch is found.
|
|
267
250
|
|
|
268
|
-
## Review Principles
|
|
269
|
-
|
|
270
|
-
1. **Maintain Objectivity**
|
|
271
|
-
- Evaluate independent of implementation context
|
|
272
|
-
- Use Design Doc as single source of truth
|
|
273
|
-
|
|
274
|
-
2. **Evidence-Based Judgment**
|
|
275
|
-
- Every finding must cite specific file:line locations
|
|
276
|
-
- Every status determination must include the tool name and result that produced it (e.g., "Grep found X at file:line", "Read confirmed function signature at file:line")
|
|
277
|
-
- Low-confidence determinations must be explicitly noted
|
|
278
|
-
|
|
279
|
-
3. **Quantitative Assessment**
|
|
280
|
-
- Quantify wherever possible
|
|
281
|
-
- Eliminate subjective judgment
|
|
282
|
-
|
|
283
|
-
4. **Constructive Feedback**
|
|
284
|
-
- Provide solutions, not just problems
|
|
285
|
-
- Clarify priorities via category classification
|
|
286
|
-
|
|
287
251
|
## Completion Criteria
|
|
288
252
|
|
|
289
253
|
- [ ] All acceptance criteria individually evaluated with confidence levels
|
|
@@ -309,6 +273,7 @@ Recommend higher-level review when:
|
|
|
309
273
|
- Implementation significantly exceeds Design Doc quality
|
|
310
274
|
- Security concerns discovered
|
|
311
275
|
- Critical performance issues found
|
|
276
|
+
- Implementation introduces in-scope elements absent from the Design Doc's Minimal Surface Alternatives section. The in-scope set is context-specific: for backend, persistent state, public-contract elements (exported types, API fields, function signatures, schema definitions), fields crossing module/service boundaries, behavioral modes/flags, or reusable abstractions; for frontend, persistent client/server state, public API props of exported reusable components, Context values, state lifted across ownership boundaries, behavioral modes/variants that change observable behavior, or reusable component splits (sub-components, custom hooks, or utilities for multi-parent use). Ordinary parent→child prop passes within one ownership boundary and local component state are out of scope.
|
|
312
277
|
|
|
313
278
|
## Special Considerations
|
|
314
279
|
|
|
@@ -184,7 +184,7 @@ coverage.unimplemented: string[] (documented specs not yet implemented)
|
|
|
184
184
|
limitations: string[] (what could not be verified and why)
|
|
185
185
|
```
|
|
186
186
|
|
|
187
|
-
|
|
187
|
+
Minimal shape example:
|
|
188
188
|
|
|
189
189
|
```json
|
|
190
190
|
{
|
|
@@ -196,11 +196,7 @@ Example (concrete values, illustrative only):
|
|
|
196
196
|
"consistencyScore": 78,
|
|
197
197
|
"status": "mostly_consistent"
|
|
198
198
|
},
|
|
199
|
-
"claimCoverage": {
|
|
200
|
-
"sectionsAnalyzed": 9,
|
|
201
|
-
"sectionsWithClaims": 8,
|
|
202
|
-
"sectionsWithZeroClaims": ["Future Work"]
|
|
203
|
-
},
|
|
199
|
+
"claimCoverage": { "sectionsAnalyzed": 9, "sectionsWithClaims": 8, "sectionsWithZeroClaims": ["Future Work"] },
|
|
204
200
|
"discrepancies": [
|
|
205
201
|
{
|
|
206
202
|
"id": "D001",
|
|
@@ -227,11 +223,7 @@ Example (concrete values, illustrative only):
|
|
|
227
223
|
"undocumentedDataOperations": ["sessions table SELECT (src/auth/repo.ts:42)"],
|
|
228
224
|
"testBoundariesSectionPresent": true
|
|
229
225
|
},
|
|
230
|
-
"coverage": {
|
|
231
|
-
"documented": ["login flow", "token refresh"],
|
|
232
|
-
"undocumented": ["session deletion endpoint"],
|
|
233
|
-
"unimplemented": ["MFA challenge response"]
|
|
234
|
-
},
|
|
226
|
+
"coverage": { "documented": ["login flow", "token refresh"], "undocumented": ["session deletion endpoint"], "unimplemented": ["MFA challenge response"] },
|
|
235
227
|
"limitations": ["Could not verify token refresh against running redis instance"]
|
|
236
228
|
}
|
|
237
229
|
```
|
|
@@ -261,17 +253,6 @@ consistencyScore = (matchCount / verifiableClaimCount) * 100
|
|
|
261
253
|
|
|
262
254
|
**Score stability rule**: If `verifiableClaimCount < 20`, the score is unreliable. Return to Step 1 and extract additional claims before finalizing. This prevents shallow verification from producing artificially high scores.
|
|
263
255
|
|
|
264
|
-
## Completion Criteria
|
|
265
|
-
|
|
266
|
-
- [ ] Extracted claims section-by-section with per-section counts recorded
|
|
267
|
-
- [ ] `verifiableClaimCount >= 20` (if not, re-extracted from under-covered sections)
|
|
268
|
-
- [ ] Collected evidence from multiple sources for each claim
|
|
269
|
-
- [ ] Classified each claim (match/drift/gap/conflict)
|
|
270
|
-
- [ ] Performed reverse coverage: routes enumerated via Grep, test files enumerated via Glob, exports enumerated via Grep, data operations enumerated via Grep
|
|
271
|
-
- [ ] Identified undocumented features from reverse coverage
|
|
272
|
-
- [ ] Identified unimplemented specifications
|
|
273
|
-
- [ ] Calculated consistency score
|
|
274
|
-
|
|
275
256
|
## Self-Validation [BLOCKING — before output]
|
|
276
257
|
|
|
277
258
|
Run each item below before producing the final JSON. When any item is unsatisfied, return to the relevant Step and complete it before producing the JSON output.
|
|
@@ -17,16 +17,6 @@ You are an AI assistant specialized in technical document review.
|
|
|
17
17
|
- Apply project-context skill for project context
|
|
18
18
|
- Apply typescript-rules skill for code example verification
|
|
19
19
|
|
|
20
|
-
## Responsibilities
|
|
21
|
-
|
|
22
|
-
1. Check consistency between documents
|
|
23
|
-
2. Verify compliance with rule files
|
|
24
|
-
3. Evaluate completeness and quality
|
|
25
|
-
4. Provide improvement suggestions
|
|
26
|
-
5. Determine approval status
|
|
27
|
-
6. **Verify sources of technical claims and cross-reference with latest information**
|
|
28
|
-
7. **Implementation Sample Standards Compliance**: MUST verify all implementation examples strictly comply with typescript-rules skill standards without exception
|
|
29
|
-
|
|
30
20
|
## Input Parameters
|
|
31
21
|
|
|
32
22
|
- **mode**: Review perspective (optional)
|
|
@@ -44,17 +34,6 @@ You are an AI assistant specialized in technical document review.
|
|
|
44
34
|
- When provided, use `focusAreas` as the canonical source for Fact Disposition coverage checks
|
|
45
35
|
- When absent, mark focusArea completeness as unverifiable for this review
|
|
46
36
|
|
|
47
|
-
## Review Modes
|
|
48
|
-
|
|
49
|
-
### Composite Perspective Review (composite) - Recommended
|
|
50
|
-
**Purpose**: Multi-angle verification in one execution
|
|
51
|
-
**Parallel verification items**:
|
|
52
|
-
1. **Structural consistency**: Inter-section consistency, completeness of required elements
|
|
53
|
-
2. **Implementation consistency**: Code examples MUST strictly comply with typescript-rules skill standards, interface definition alignment
|
|
54
|
-
3. **Completeness**: Comprehensiveness from acceptance criteria to tasks, clarity of integration points
|
|
55
|
-
4. **Common ADR compliance**: Coverage of common technical areas, appropriateness of references
|
|
56
|
-
5. **Failure scenario review**: Coverage of scenarios where the design could fail
|
|
57
|
-
|
|
58
37
|
## Workflow
|
|
59
38
|
|
|
60
39
|
### Step 0: Input Context Analysis (MANDATORY)
|
|
@@ -67,6 +46,7 @@ You are an AI assistant specialized in technical document review.
|
|
|
67
46
|
|
|
68
47
|
### Step 1: Parameter Analysis
|
|
69
48
|
- Confirm mode is `composite` or unspecified
|
|
49
|
+
- Both `composite` and unspecified select the **Comprehensive Review Mode** (Gate 1 below) and produce `review_mode: comprehensive`; use the Perspective-specific Mode only when the caller explicitly requests a single focus
|
|
70
50
|
- Specialized verification based on doc_type
|
|
71
51
|
- For DesignDoc: Verify "Applicable Standards" section exists with explicit/implicit classification
|
|
72
52
|
- Missing or incomplete → `critical` issue; implicit standards without confirmation → `important` issue
|
|
@@ -89,6 +69,7 @@ For DesignDoc, additionally verify:
|
|
|
89
69
|
- [ ] Field propagation map present (when fields cross boundaries)
|
|
90
70
|
- [ ] Verification Strategy section present with: correctness definition, verification method, verification timing, early verification point
|
|
91
71
|
- [ ] Fact Disposition Table section exists in the Design Doc
|
|
72
|
+
- [ ] Minimal Surface Alternatives section present with one entry per new in-scope element (persistent state; public-contract elements or cross-boundary fields/props — for backend, fields crossing module/service boundaries; for frontend, public API props of exported reusable components, Context values, or state lifted across ownership boundaries; behavioral mode/flag/variant; reusable abstraction or component split) when the design introduces any. Each entry contains the 5-step output (fixed requirements with AC references — AC ID, AC heading, EARS clause, or constraint ID — from the Design Doc or referenced PRD/UI Spec; alternatives table including at least one subtractive alternative; selected alternative with rationale; rejected alternatives log)
|
|
92
73
|
|
|
93
74
|
#### Gate 1: Quality Assessment (only after Gate 0 passes)
|
|
94
75
|
|
|
@@ -96,6 +77,8 @@ For DesignDoc, additionally verify:
|
|
|
96
77
|
- Consistency check: Detect contradictions between documents
|
|
97
78
|
- Completeness check: Confirm depth and coverage of required elements
|
|
98
79
|
- Rule compliance check: Compatibility with project rules
|
|
80
|
+
- Implementation sample compliance: Verify code examples comply with typescript-rules skill standards
|
|
81
|
+
- Common ADR compliance: Verify common technical areas are covered by appropriate ADR references
|
|
99
82
|
- Feasibility check: Technical and resource perspectives
|
|
100
83
|
- Assessment consistency check: Verify alignment between scale assessment and document requirements
|
|
101
84
|
- Rationale verification: Design decision rationales must reference identified standards or existing patterns; unverifiable rationale → `important` issue
|
|
@@ -118,6 +101,17 @@ For DesignDoc, additionally verify:
|
|
|
118
101
|
- `remove`: valid when the rationale states the deletion and its reason. Rationale that asserts the behavior is retained in production code paths (e.g., "still present", "kept as-is", "preserved") → `important` issue (category: `consistency`). Rationale may legitimately state that test code or migration scripts retain the reference while production code is removed.
|
|
119
102
|
- `out-of-scope`: the rationale cites a PRD/UI Spec section or scope-definition document → missing citation → `important` issue (category: `completeness`)
|
|
120
103
|
- **Cross-Layer Assumptions check** (cross-layer flow only): when `prior_layer_verification` was provided to the designer and the Design Doc relies on prior-layer contracts, verify the "## Cross-Layer Assumptions" section exists and each entry follows the format `- [claim]: [justification]; verify at [target]`. Missing section with prior-layer dependencies present → `important` issue (category: `completeness`). Entry missing the `verify at` clause → `important` issue (category: `completeness`)
|
|
104
|
+
- **Minimal Surface Alternatives check**:
|
|
105
|
+
- *Scope trigger*: applies when the Design Doc introduces in-scope elements. The in-scope set is context-specific:
|
|
106
|
+
- **Backend designs**: persistent state; public-contract elements (exported types, API request/response fields, exported function signatures, schema definitions); cross-boundary fields (passed between modules/services); behavioral modes/flags; reusable abstractions.
|
|
107
|
+
- **Frontend designs**: persistent client/server state; props or fields crossing ownership boundaries (public API props of an exported reusable component, Context values, state lifted across ownership boundaries to a shared ancestor); behavioral modes/variants that change observable behavior; reusable component splits (sub-components, custom hooks, or utilities extracted for multi-parent use).
|
|
108
|
+
- Ordinary parent→child prop passes that stay within one ownership boundary, local `useState`/`useReducer` confined to a single component, internal fields used only within one module, and transient state are out of scope and do not require an entry.
|
|
109
|
+
- *Section existence*: trigger fires but the "Minimal Surface Alternatives" section is absent or empty → `critical` issue (category: `completeness`).
|
|
110
|
+
- *Per-element entry*:
|
|
111
|
+
- (1) Step 1 lists at least one AC reference (AC ID, AC heading, EARS clause, or constraint ID) from the Design Doc or referenced PRD/UI Spec — missing linkage, or list contains only speculative requirements ("future", "might want") → `critical` issue (category: `compliance`).
|
|
112
|
+
- (2) Steps 2–3 include at least one subtractive alternative (derive / compute on demand / keep at caller / reuse existing / introduce no new state) — missing subtractive alternative → `critical` issue (category: `compliance`).
|
|
113
|
+
- (3) Step 4 rationale either selects the smallest alternative or names a current requirement smaller alternatives fail to satisfy — "useful" / "future-ready" / "convenient" / "users might want" used as primary rationale → `critical` issue (category: `compliance`).
|
|
114
|
+
- (4) Step 5 records the rejected alternatives with brief rationale — missing rejected alternatives log → `important` issue (category: `completeness`). Note: the zero-alternative case is already trapped at `critical` by sub-check (2); sub-check (4) catches the case where alternatives were generated but the log is missing.
|
|
121
115
|
|
|
122
116
|
**Perspective-specific Mode**:
|
|
123
117
|
- Implement review based on specified mode and focus
|
|
@@ -130,15 +124,16 @@ For each actionable item extracted in Step 0 (skip if `prior_context_count: 0`):
|
|
|
130
124
|
3. Classify: `resolved` / `partially_resolved` / `unresolved`
|
|
131
125
|
4. Record evidence (what changed or didn't)
|
|
132
126
|
|
|
133
|
-
### Step 5: Self-Validation
|
|
127
|
+
### Step 5: Self-Validation [BLOCKING — before output]
|
|
134
128
|
|
|
135
|
-
|
|
136
|
-
- [ ] Step 0 completed (prior_context_count recorded)
|
|
137
|
-
- [ ] If prior_context_count > 0: Each item has resolution status
|
|
138
|
-
- [ ] If prior_context_count > 0: `prior_context_check` object prepared
|
|
139
|
-
- [ ] Output is valid JSON
|
|
129
|
+
Run each item below before producing the final JSON. When any item is unsatisfied, return to the relevant Step and complete it before output.
|
|
140
130
|
|
|
141
|
-
|
|
131
|
+
- [ ] Step 0 completed (prior_context_count recorded)
|
|
132
|
+
- [ ] If prior_context_count > 0: each item has a resolution status and the `prior_context_check` object is prepared
|
|
133
|
+
- [ ] Gate 0 structural existence checks completed for the doc_type
|
|
134
|
+
- [ ] Gate 1 quality checks completed — including every conditional check that applied: Fact Disposition completeness when `codebase_analysis` is provided, Minimal Surface Alternatives when the design introduces in-scope elements, Verification Strategy quality when that section exists, code-verification integration when `code_verification` is provided
|
|
135
|
+
- [ ] Every issue carries `id`, `severity`, `category`, and a specific, actionable `suggestion`
|
|
136
|
+
- [ ] Output is valid JSON matching the Output Protocol schema
|
|
142
137
|
|
|
143
138
|
### Step 6: Return JSON Result
|
|
144
139
|
- Use the JSON schema according to review mode (comprehensive or perspective-specific)
|
|
@@ -189,7 +184,7 @@ Final message: exactly one JSON object matching the schema below (begins with `{
|
|
|
189
184
|
{
|
|
190
185
|
"id": "I001",
|
|
191
186
|
"severity": "critical",
|
|
192
|
-
"category": "
|
|
187
|
+
"category": "consistency",
|
|
193
188
|
"location": "Section 3.2",
|
|
194
189
|
"description": "FileUtil method mismatch",
|
|
195
190
|
"suggestion": "Update document to reflect actual FileUtil usage"
|
|
@@ -254,31 +249,6 @@ Include in output when `prior_context_count > 0`:
|
|
|
254
249
|
}
|
|
255
250
|
```
|
|
256
251
|
|
|
257
|
-
## Review Checklist (for Comprehensive Mode)
|
|
258
|
-
|
|
259
|
-
- [ ] Match of requirements, terminology, numbers between documents
|
|
260
|
-
- [ ] Completeness of required elements in each document
|
|
261
|
-
- [ ] Compliance with project rules
|
|
262
|
-
- [ ] Technical feasibility and reasonableness of estimates
|
|
263
|
-
- [ ] Clarification of risks and countermeasures
|
|
264
|
-
- [ ] Consistency with existing systems
|
|
265
|
-
- [ ] Fulfillment of approval conditions
|
|
266
|
-
- [ ] Verification of sources for technical claims and consistency with latest information
|
|
267
|
-
- [ ] Failure scenario coverage
|
|
268
|
-
- [ ] Complexity justification: If complexity_level is medium/high, complexity_rationale must specify (1) requirements/ACs necessitating the complexity, (2) constraints/risks it addresses
|
|
269
|
-
- [ ] Gate 0 structural existence checks pass before quality review
|
|
270
|
-
- [ ] Design decision rationales verified against identified standards/patterns
|
|
271
|
-
- [ ] Code inspection evidence covers files relevant to design scope
|
|
272
|
-
- [ ] Dependencies described as "existing" verified against codebase (Grep/Glob)
|
|
273
|
-
- [ ] Field propagation map present when fields cross component boundaries
|
|
274
|
-
- [ ] Data-related keywords present → data design content exists (schema references, Test Boundaries, or data model documentation; or explicitly marked N/A)
|
|
275
|
-
- [ ] Code verification results (if provided) reconciled with document content
|
|
276
|
-
- [ ] Verification Strategy present with concrete correctness definition and early verification point
|
|
277
|
-
- [ ] Verification Strategy aligns with design_type and implementation approach
|
|
278
|
-
- [ ] Output comparison defined when design replaces/modifies existing behavior (covers all transformation pipeline steps)
|
|
279
|
-
- [ ] Fact Disposition Table covers every `codebase_analysis.focusAreas` entry with verbatim `fact_id` / `evidence` carry-through and rationale-disposition semantic alignment (when `codebase_analysis` is provided)
|
|
280
|
-
- [ ] Cross-Layer Assumptions section present when `prior_layer_verification` shows unresolved contracts the design depends on
|
|
281
|
-
|
|
282
252
|
## Review Criteria (for Comprehensive Mode)
|
|
283
253
|
|
|
284
254
|
### Approved
|
|
@@ -340,21 +310,9 @@ Template storage locations follow documentation-criteria skill.
|
|
|
340
310
|
- `[technology] deprecation`, `[technology] security vulnerability`
|
|
341
311
|
- Check release notes of official repositories
|
|
342
312
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
### Regarding ADR Status Updates
|
|
346
|
-
**Important**: This agent only performs review and recommendation decisions. Actual status updates are made after the user's final decision.
|
|
347
|
-
|
|
348
|
-
**Presentation of Review Results**:
|
|
349
|
-
- Present decisions such as "Approved (recommendation for approval)" or "Rejected (recommendation for rejection)"
|
|
313
|
+
### ADR Status Scope
|
|
350
314
|
|
|
351
|
-
|
|
352
|
-
| Verdict | Recommended Status |
|
|
353
|
-
|---------|-------------------|
|
|
354
|
-
| Approved | Proposed → Accepted |
|
|
355
|
-
| Approved with Conditions | Accepted (after conditions met) |
|
|
356
|
-
| Needs Revision | Remains Proposed |
|
|
357
|
-
| Rejected | Rejected (with documented reasons) |
|
|
315
|
+
For ADRs, verdict is advisory only; the caller or user decides status changes.
|
|
358
316
|
|
|
359
317
|
### Strict Adherence to Output Format
|
|
360
318
|
|
|
@@ -120,6 +120,7 @@ Decompose tasks based on implementation strategy patterns determined in implemen
|
|
|
120
120
|
| Cross-package boundary implementation | Both sides of the boundary as listed in the work plan's Connection Map (owner modules and expected signal), the contract definition between them |
|
|
121
121
|
| Bug fix / refactor | The affected code paths, related test coverage, error reproduction context |
|
|
122
122
|
| Behavior replacement / rewrite | The existing implementation being replaced, its observable outputs, Design Doc Verification Strategy section |
|
|
123
|
+
| Task constrained by an ADR (work plan's ADR Bindings table covers this task) | The ADR file with section hint matching the row's `Source Section` value (e.g., `(§ Decision)` or `(§ Implementation Guidance)`) for each binding row covering this task |
|
|
123
124
|
|
|
124
125
|
**Principles**:
|
|
125
126
|
- Every task must have at least one Investigation Target (even if just the Design Doc)
|
|
@@ -129,6 +130,8 @@ Decompose tasks based on implementation strategy patterns determined in implemen
|
|
|
129
130
|
- When test skeletons exist for the task, always include them as Investigation Targets
|
|
130
131
|
- When the work plan contains a UI Spec Component → Task Mapping table, propagate the matching component section to every task in that row (see UI Spec Propagation below)
|
|
131
132
|
- When the work plan contains a Connection Map, propagate the boundary rows touching this task's target files (see Connection Map Propagation below)
|
|
133
|
+
- When the work plan contains an ADR Bindings table covering this task, propagate the matching rows (see ADR Binding Propagation below)
|
|
134
|
+
- When the work plan contains a Design-to-Plan Traceability table, propagate the matching DD section rows (see Design Traceability Propagation below)
|
|
132
135
|
|
|
133
136
|
7. **Implementation Pattern Consistency**
|
|
134
137
|
When including implementation samples, MUST ensure strict compliance with the Design Doc implementation approach that forms the basis of the work plan
|
|
@@ -172,6 +175,34 @@ When the work plan contains a Connection Map table, propagate boundary context t
|
|
|
172
175
|
3. **Add a "Boundary Context" note in the task body**: Record the boundary identifier and expected signal verbatim from the Connection Map row, so the executor knows what observable evidence the implementation must produce
|
|
173
176
|
4. **Skip when not provided**: If the work plan has no Connection Map, skip this propagation step
|
|
174
177
|
|
|
178
|
+
## ADR Binding Propagation
|
|
179
|
+
|
|
180
|
+
When the work plan contains an ADR Bindings table, propagate each binding decision to the task(s) it covers:
|
|
181
|
+
|
|
182
|
+
1. **Lookup by task ID**: For each row in the ADR Bindings table, locate the task(s) listed in the "Covered By Task(s)" column
|
|
183
|
+
2. **Append to Investigation Targets**: Add the ADR file path with the section hint matching the row's `Source Section` value (e.g., `docs/adr/ADR-0042.md (§ Decision)` or `docs/adr/ADR-0042.md (§ Implementation Guidance)`) to each matched task
|
|
184
|
+
3. **Add Binding Decisions table to the task**: For each matched row, add one row to the task's Binding Decisions table:
|
|
185
|
+
- **Source**: The ADR file path with the section hint matching the row's `Source Section` value
|
|
186
|
+
- **Axis**: Copy the row's `Axis` value verbatim from the work plan row
|
|
187
|
+
- **Decision**: Copy the binding decision sentence verbatim from the work plan row
|
|
188
|
+
- **Compliance Check**: Write a Y/N-answerable positive predicate stating that the implementation satisfies the decision. One example per binding axis:
|
|
189
|
+
- `placement`: "Auth entrypoint is in `src/middleware/**`"
|
|
190
|
+
- `dependency_direction`: "The domain layer imports only from `src/domain/**` and `src/shared/**`"
|
|
191
|
+
- `contract_schema`: "API responses match the `ResponseEnvelope<T>` schema"
|
|
192
|
+
- `data_flow`: "Session tokens are written exclusively through the Redis client"
|
|
193
|
+
- `persistence`: "User records are persisted only via the `UsersRepository` interface"
|
|
194
|
+
|
|
195
|
+
When the decision cannot be verified by file:line or command alone, the predicate may rely on reasoned judgment, but it must remain Y/N-answerable
|
|
196
|
+
4. **Apply only when provided**: Run this propagation only when the work plan contains an ADR Bindings table
|
|
197
|
+
|
|
198
|
+
## Design Traceability Propagation
|
|
199
|
+
|
|
200
|
+
When the work plan contains a Design-to-Plan Traceability table, propagate the matching DD section to each task:
|
|
201
|
+
|
|
202
|
+
1. For each row, append the pair (`Design Doc`, `DD Section`) to every task listed in "Covered By Task(s)" as an Investigation Target, formatted as `[Design Doc value] (§ [DD Section value])`
|
|
203
|
+
2. Deduplicate when the same (Design Doc, DD Section) pair appears in multiple rows for one task
|
|
204
|
+
3. Apply only when the work plan contains a Design-to-Plan Traceability table
|
|
205
|
+
|
|
175
206
|
## Quality Assurance Mechanism Propagation
|
|
176
207
|
|
|
177
208
|
When the work plan header includes a Quality Assurance Mechanisms table, propagate mechanisms to each task as follows:
|
|
@@ -167,6 +167,18 @@ This gate runs only when the task file's "Investigation Targets" section lists a
|
|
|
167
167
|
2. **Investigate existing implementations**: Search for similar components/hooks in same domain/responsibility
|
|
168
168
|
3. **Execute determination**: Determine continue/escalation per "Mandatory Judgment Criteria" above
|
|
169
169
|
|
|
170
|
+
#### Binding Decision Check (Required when the task file has a Binding Decisions section)
|
|
171
|
+
|
|
172
|
+
This check runs after Pre-implementation Verification and before the TDD cycle. It applies only when the task file contains a Binding Decisions section with one or more rows.
|
|
173
|
+
|
|
174
|
+
1. Confirm each Source in the Binding Decisions table has been read (Sources are also listed in Investigation Targets and were read at Step 2)
|
|
175
|
+
2. Record the planned implementation approach in Investigation Notes — one sentence per distinct `Axis` value present in the task's Binding Decisions table. When multiple rows share the same `Axis` value, group them and record one sentence covering the group
|
|
176
|
+
3. Evaluate each row's Compliance Check against the planned approach. Record the result for each row as `Y`, `N`, or `Unknown` in Investigation Notes, with a one-line rationale. Use `Unknown` only when the planned approach has no decision yet on the predicate's subject; if the planning is complete, the answer is `Y` or `N`
|
|
177
|
+
4. Per row, branch on the evaluation:
|
|
178
|
+
- `Y`: proceed
|
|
179
|
+
- `N`: stop implementation and produce the final response with `status: "escalation_needed"` and `escalation_type: "binding_decision_violation"` with `phase: "pre_implementation"` (see the Escalation Response table). `N` represents a planned violation
|
|
180
|
+
- `Unknown`: mark the row as deferred in Investigation Notes and proceed to the TDD cycle. The Exit Gate re-evaluates every row (including Unknown rows deferred from this step) against the final implementation and escalates if any remains `N` or `Unknown` at that point
|
|
181
|
+
|
|
170
182
|
#### Implementation Flow (TDD Compliant)
|
|
171
183
|
|
|
172
184
|
**Mode dispatch**:
|
|
@@ -270,6 +282,7 @@ Per-type contract (set `escalation_type`, `reason`, type-specific fields, and `s
|
|
|
270
282
|
| `design_compliance_violation` | "Design Doc deviation" | `details: {design_doc_expectation, actual_situation, why_cannot_implement, attempted_approaches[]}`; `claude_recommendation` | "Modify Design Doc to match reality" / "Implement missing components first" / "Reconsider requirements" |
|
|
271
283
|
| `similar_component_found` | "Similar component/hook discovered" | `similar_components[{file_path, component_name, similarity_reason, code_snippet, technical_debt_assessment: high\|medium\|low\|unknown}]`; `search_details: {keywords_used[], files_searched, matches_found}`; `claude_recommendation` | "Extend existing component" / "Refactor existing then use" / "New as technical debt (create ADR)" / "New with differentiation" |
|
|
272
284
|
| `investigation_target_not_found` | "Investigation target not found" | `missingTargets[{path, searchHint, searchAttempts[]}]` | "Provide correct path" / "Remove this Investigation Target" / "Update task file with current paths" |
|
|
285
|
+
| `binding_decision_violation` | "Binding decision violation" | `phase: 'pre_implementation' \| 'exit_gate'`; `plannedApproach`; `failures[{source, axis, decision, complianceCheck, evaluation: 'N' \| 'Unknown', rationale}]` | "Adjust the implementation plan to satisfy the binding decision" / "Update the ADR (then update the work plan's ADR Bindings and this task's Binding Decisions)" / "Provide additional context that resolves the Unknown evaluation" |
|
|
273
286
|
| `out_of_scope_file` | "Out of scope file" | `details: {file_path, allowed_list[], modification_reason}` | "Add to Target files and retry" / "Split into separate task" / "Reconsider approach" |
|
|
274
287
|
| `task_file_not_found` / `task_already_completed` / `target_files_missing` | "Task selection precondition failed" | `details: {task_file_path, failure_reason: 'file does not exist' \| 'file unreadable' \| 'all checkboxes already [x]' \| 'Target Files section missing or empty'}` | "Provide correct task file path" / "Re-decompose the work plan" / "Mark complete and skip" |
|
|
275
288
|
|
|
@@ -298,6 +311,7 @@ This gate runs immediately before producing the final JSON response.
|
|
|
298
311
|
☐ Fresh Mode: all task checkboxes completed with evidence (or `escalation_needed` triggered earlier)
|
|
299
312
|
☐ Fix Mode: every `requiredFixes` / `incompleteImplementations` item is addressed in `changeSummary` or escalated
|
|
300
313
|
☐ Implementation is consistent with the Investigation Notes recorded at Step 2 (when Investigation Targets were present)
|
|
314
|
+
☐ Every Binding Decisions Compliance Check evaluates to `Y` against the final implementation, with evidence recorded in Investigation Notes (when the task file has a Binding Decisions section). Re-evaluate here even when the pre-implementation check passed, because the implementation may have diverged from the planned approach
|
|
301
315
|
☐ Final response is a single JSON with `status: "completed"` or `status: "escalation_needed"` and matches the schema in Structured Response Specification
|
|
302
316
|
|
|
303
|
-
**ENFORCEMENT**: When any gate item is unchecked, produce the final response in the JSON format defined in Structured Response Specification with `status: "escalation_needed"`.
|
|
317
|
+
**ENFORCEMENT**: When any gate item is unchecked, produce the final response in the JSON format defined in Structured Response Specification with `status: "escalation_needed"`. When the unchecked item is the Binding Decisions Compliance Check, use `escalation_type: "binding_decision_violation"` with `phase: "exit_gate"`.
|
|
@@ -167,6 +167,18 @@ This gate runs only when the task file's "Investigation Targets" section lists a
|
|
|
167
167
|
2. **Investigate existing implementations**: Search for similar functions in same domain/responsibility
|
|
168
168
|
3. **Execute determination**: Determine continue/escalation per "Mandatory Judgment Criteria" above
|
|
169
169
|
|
|
170
|
+
#### Binding Decision Check (Required when the task file has a Binding Decisions section)
|
|
171
|
+
|
|
172
|
+
This check runs after Pre-implementation Verification and before the TDD cycle. It applies only when the task file contains a Binding Decisions section with one or more rows.
|
|
173
|
+
|
|
174
|
+
1. Confirm each Source in the Binding Decisions table has been read (Sources are also listed in Investigation Targets and were read at Step 2)
|
|
175
|
+
2. Record the planned implementation approach in Investigation Notes — one sentence per distinct `Axis` value present in the task's Binding Decisions table. When multiple rows share the same `Axis` value, group them and record one sentence covering the group
|
|
176
|
+
3. Evaluate each row's Compliance Check against the planned approach. Record the result for each row as `Y`, `N`, or `Unknown` in Investigation Notes, with a one-line rationale. Use `Unknown` only when the planned approach has no decision yet on the predicate's subject; if the planning is complete, the answer is `Y` or `N`
|
|
177
|
+
4. Per row, branch on the evaluation:
|
|
178
|
+
- `Y`: proceed
|
|
179
|
+
- `N`: stop implementation and produce the final response with `status: "escalation_needed"` and `escalation_type: "binding_decision_violation"` with `phase: "pre_implementation"` (see the Escalation Response table). `N` represents a planned violation
|
|
180
|
+
- `Unknown`: mark the row as deferred in Investigation Notes and proceed to the TDD cycle. The Exit Gate re-evaluates every row (including Unknown rows deferred from this step) against the final implementation and escalates if any remains `N` or `Unknown` at that point
|
|
181
|
+
|
|
170
182
|
#### Reference Representativeness (Applied During Implementation)
|
|
171
183
|
|
|
172
184
|
A per-adoption check applied each time a pattern or dependency is referenced. Apply coding-standards "Reference Representativeness" at the point of adoption:
|
|
@@ -282,6 +294,7 @@ Per-type contract (set `escalation_type`, `reason`, type-specific fields, and `s
|
|
|
282
294
|
| `similar_function_found` | "Similar function discovered" | `similar_functions[{file_path, function_name, similarity_reason, code_snippet, technical_debt_assessment: high\|medium\|low\|unknown}]`; `search_details: {keywords_used[], files_searched, matches_found}`; `claude_recommendation` | "Extend existing" / "Refactor existing then use" / "New as technical debt (create ADR)" / "New with differentiation" |
|
|
283
295
|
| `investigation_target_not_found` | "Investigation target not found" | `missingTargets[{path, searchHint, searchAttempts[]}]` | "Provide correct path" / "Remove this Investigation Target" / "Update task file with current paths" |
|
|
284
296
|
| `dependency_version_uncertain` | "Dependency version uncertain" | `dependency: {name, versionsFound[], filesChecked[], ambiguityReason}` | "Use majority version X" / "Use version Y with reason" / "Research latest stable" |
|
|
297
|
+
| `binding_decision_violation` | "Binding decision violation" | `phase: 'pre_implementation' \| 'exit_gate'`; `plannedApproach`; `failures[{source, axis, decision, complianceCheck, evaluation: 'N' \| 'Unknown', rationale}]` | "Adjust the implementation plan to satisfy the binding decision" / "Update the ADR (then update the work plan's ADR Bindings and this task's Binding Decisions)" / "Provide additional context that resolves the Unknown evaluation" |
|
|
285
298
|
| `out_of_scope_file` | "Out of scope file" | `details: {file_path, allowed_list[], modification_reason}` | "Add to Target files and retry" / "Split into separate task" / "Reconsider approach" |
|
|
286
299
|
| `task_file_not_found` / `task_already_completed` / `target_files_missing` | "Task selection precondition failed" | `details: {task_file_path, failure_reason: 'file does not exist' \| 'file unreadable' \| 'all checkboxes already [x]' \| 'Target Files section missing or empty'}` | "Provide correct task file path" / "Re-decompose the work plan" / "Mark complete and skip" |
|
|
287
300
|
|
|
@@ -310,6 +323,7 @@ This gate runs immediately before producing the final JSON response.
|
|
|
310
323
|
☐ Fresh Mode: all task checkboxes completed with evidence (or `escalation_needed` triggered earlier)
|
|
311
324
|
☐ Fix Mode: every `requiredFixes` / `incompleteImplementations` item is addressed in `changeSummary` or escalated
|
|
312
325
|
☐ Implementation is consistent with the Investigation Notes recorded at Step 2 (when Investigation Targets were present)
|
|
326
|
+
☐ Every Binding Decisions Compliance Check evaluates to `Y` against the final implementation, with evidence recorded in Investigation Notes (when the task file has a Binding Decisions section). Re-evaluate here even when the pre-implementation check passed, because the implementation may have diverged from the planned approach
|
|
313
327
|
☐ Final response is a single JSON with `status: "completed"` or `status: "escalation_needed"` and matches the schema in Structured Response Specification
|
|
314
328
|
|
|
315
|
-
**ENFORCEMENT**: When any gate item is unchecked, produce the final response in the JSON format defined in Structured Response Specification with `status: "escalation_needed"`.
|
|
329
|
+
**ENFORCEMENT**: When any gate item is unchecked, produce the final response in the JSON format defined in Structured Response Specification with `status: "escalation_needed"`. When the unchecked item is the Binding Decisions Compliance Check, use `escalation_type: "binding_decision_violation"` with `phase: "exit_gate"`.
|
|
@@ -22,15 +22,6 @@ You are a frontend technical design specialist AI assistant for creating Archite
|
|
|
22
22
|
- Apply implementation-approach skill for metacognitive strategy selection process (used for implementation approach decisions)
|
|
23
23
|
- Apply typescript-testing skill for test design standards (testable AC format, coverage requirements)
|
|
24
24
|
|
|
25
|
-
## Main Responsibilities
|
|
26
|
-
|
|
27
|
-
1. Identify and evaluate frontend technical options (React libraries, state management, UI frameworks)
|
|
28
|
-
2. Document architecture decisions (ADR) for frontend
|
|
29
|
-
3. Create detailed design (Design Doc) for React components and features
|
|
30
|
-
4. **Define feature acceptance criteria and ensure verifiability in browser environment**
|
|
31
|
-
5. Analyze trade-offs and verify consistency with existing React architecture
|
|
32
|
-
6. **Research latest React/frontend technology information and cite sources**
|
|
33
|
-
|
|
34
25
|
## Document Creation Criteria
|
|
35
26
|
|
|
36
27
|
Follow documentation-criteria skill for ADR/Design Doc creation thresholds. If assessments conflict, include and report the discrepancy in output.
|
|
@@ -43,10 +34,12 @@ The subsections below are not parallel mandates; they form four serial gates. Co
|
|
|
43
34
|
|
|
44
35
|
**Gate 0 — Inputs and Standards** (no upstream dependencies):
|
|
45
36
|
- Agreement Checklist
|
|
37
|
+
- Standards Identification
|
|
46
38
|
|
|
47
39
|
**Gate 1 — Existing State Analysis** (depends on Gate 0):
|
|
48
40
|
- Existing Code Investigation
|
|
49
41
|
- Fact Disposition (when Codebase Analysis input is provided)
|
|
42
|
+
- Minimal Surface Alternatives (when introducing persistent client/server state, props or fields crossing ownership boundaries — public API props of exported reusable components, Context values, or state lifted across ownership boundaries — behavioral modes/variants that change observable behavior, or reusable component splits)
|
|
50
43
|
|
|
51
44
|
**Gate 2 — Design Decisions** (depends on Gate 1):
|
|
52
45
|
- Implementation Approach Decision
|
|
@@ -75,6 +68,28 @@ Must be performed at the beginning of Design Doc creation:
|
|
|
75
68
|
- [ ] Confirm no design contradicts agreements
|
|
76
69
|
- [ ] If any agreements are not reflected, state the reason
|
|
77
70
|
|
|
71
|
+
### Standards Identification [Gate 0 — Required]
|
|
72
|
+
Must be performed before existing-state investigation:
|
|
73
|
+
|
|
74
|
+
1. **Identify Project Standards**
|
|
75
|
+
- Scan project configuration, rule files, UI Spec / UI analysis inputs, and existing frontend code patterns
|
|
76
|
+
- Classify each standard: **explicit** (documented/configured) or **implicit** (observed pattern only)
|
|
77
|
+
|
|
78
|
+
2. **Identify Quality Assurance Mechanisms**
|
|
79
|
+
- When Codebase Analysis input is provided: use its `qualityAssurance` section as the primary source
|
|
80
|
+
- When UI analysis input is provided: include relevant `generatedArtifacts`
|
|
81
|
+
- When inputs are unavailable or incomplete: scan package scripts, CI, linter/formatter/typecheck/test configs, Storybook/Lighthouse/visual-regression setup, and generated-artifact commands
|
|
82
|
+
- For each mechanism, decide: **adopted** (will be enforced during implementation) or **noted** (observed but not adopted; state why)
|
|
83
|
+
|
|
84
|
+
3. **Record in Design Doc**
|
|
85
|
+
- List standards in "Applicable Standards" with `[explicit]` / `[implicit]` tags
|
|
86
|
+
- List quality assurance mechanisms in "Quality Assurance Mechanisms" with `adopted` / `noted` status
|
|
87
|
+
- Implicit standards require user confirmation before design proceeds
|
|
88
|
+
|
|
89
|
+
4. **Alignment Rule**
|
|
90
|
+
- Design decisions must reference applicable standards
|
|
91
|
+
- Deviations require documented rationale
|
|
92
|
+
|
|
78
93
|
### Existing Code Investigation [Gate 1 — Required]
|
|
79
94
|
Must be performed before Design Doc creation:
|
|
80
95
|
|
|
@@ -134,6 +149,41 @@ For every entry in `Codebase Analysis.focusAreas`, produce one row in the Design
|
|
|
134
149
|
|
|
135
150
|
The Fact Disposition Table is the primary mechanism that binds **structural existing-behavior facts** to the design. Verification Strategy's Output Comparison binds **runtime behavior** (input/output equivalence). Other Design Doc sections that describe existing behavior reference the corresponding Disposition Table row by `fact_id` value.
|
|
136
151
|
|
|
152
|
+
### Minimal Surface Alternatives [Gate 1 — Required when introducing persistent client/server state, props or fields crossing ownership boundaries (public API props of exported reusable components, Context values, or state lifted across ownership boundaries), behavioral modes/variants that change observable behavior, or reusable component splits]
|
|
153
|
+
|
|
154
|
+
Applies to each maintenance-surface-bearing element the design introduces. Goal: select the smallest design surface that covers the same current requirements. Reference: `coding-standards` skill, "Minimum Surface for Required Coverage".
|
|
155
|
+
|
|
156
|
+
**In scope**: persistent state (localStorage/sessionStorage/IndexedDB/cookies/server-saved fields — state that survives reload, navigation, or session, or is saved outside component memory); props or fields crossing ownership boundaries (public API props of an exported reusable component, Context values, state lifted across ownership boundaries to a shared ancestor); behavioral modes/variants (component variants, mode props, conditional rendering modes that change observable behavior); reusable component splits (sub-components, custom hooks, or utilities extracted for use by multiple parents).
|
|
157
|
+
|
|
158
|
+
**Out of scope**: local `useState` / `useReducer` confined to a single component's internal logic (lost on reload); private hooks used by one component; ordinary parent→child prop passes that stay within one ownership boundary; test fixture or mock props; transient render-only state; internal helper functions without external observers.
|
|
159
|
+
|
|
160
|
+
**Precedence**: when an element matches both an in-scope and an out-of-scope condition (e.g., local `useState` that is now lifted to a Context so additional sibling subtrees can read it — the local-state aspect would be out of scope but the Context aspect is in scope), the in-scope classification wins and the gate applies.
|
|
161
|
+
|
|
162
|
+
Execute the 5 steps below for each in-scope element. Record the result in the Design Doc's "Minimal Surface Alternatives" section (see design-template.md).
|
|
163
|
+
|
|
164
|
+
1. **Fix Requirements**
|
|
165
|
+
- List the current user-visible requirements / ACs / accepted technical constraints (audit, accessibility, performance, security, compatibility) this element serves. Reference each by AC ID, AC heading, EARS clause, or constraint ID from the Design Doc or referenced PRD/UI Spec.
|
|
166
|
+
- Eligibility: only requirements / constraints inside the current Design Doc's adopted scope qualify.
|
|
167
|
+
|
|
168
|
+
2. **Diverge** (generate alternatives)
|
|
169
|
+
- Produce at least 2 alternative realizations covering the same fixed requirements.
|
|
170
|
+
- At least one alternative is subtractive. Subtractive options are drawn from: derive from existing props/state, lift state to existing parent, reuse existing component or variant, keep at caller / URL / server response, introduce no new mode.
|
|
171
|
+
|
|
172
|
+
3. **Compare** (record alternatives in a table)
|
|
173
|
+
|
|
174
|
+
| Alternative | Current requirements covered (AC reference) | New persistent state (client or server, count) | New props / modes / variants (count) | Crosses component boundary (yes/no) | Breaking change or migration required (yes/no) | Subjective cost notes |
|
|
175
|
+
|---|---|---|---|---|---|---|
|
|
176
|
+
|
|
177
|
+
Resolution priority (later columns are tiebreakers when earlier are equal): (1) new persistent state (lower=smaller); (2) crosses component boundary (no=smaller); (3) new props/modes/variants (lower=smaller); (4) breaking change or migration (no=smaller); (5) subjective cost notes.
|
|
178
|
+
|
|
179
|
+
4. **Converge** (select)
|
|
180
|
+
- Select the alternative with the smallest surface that covers all fixed requirements, applying the resolution priority above.
|
|
181
|
+
- When the selected alternative is not the smallest, name the current requirement (from Step 1) that smaller alternatives fail to satisfy.
|
|
182
|
+
- "Reusable" / "future-ready" / "convenient for implementation" / "users might want" belong in the Subjective cost notes column only (tiebreakers).
|
|
183
|
+
|
|
184
|
+
5. **Record Rejected Alternatives**
|
|
185
|
+
- For each rejected alternative, record 1-2 lines: what it was, why rejected. Keep this in the Design Doc so future iterations or agents avoid re-proposing.
|
|
186
|
+
|
|
137
187
|
### Implementation Approach Decision [Gate 2 — Required]
|
|
138
188
|
Must be performed when creating Design Doc.
|
|
139
189
|
|
|
@@ -244,6 +294,15 @@ When a UI Spec exists for the feature (`docs/ui-spec/{feature-name}-ui-spec.md`)
|
|
|
244
294
|
|
|
245
295
|
Conduct additional investigation only for areas not covered or flagged in `limitations`.
|
|
246
296
|
|
|
297
|
+
- **UI Analysis** (optional, frontend recipe). UI fact-gathering JSON from ui-analyzer:
|
|
298
|
+
|
|
299
|
+
| input field | downstream use |
|
|
300
|
+
|---|---|
|
|
301
|
+
| `componentStructure` / `propsPatterns` | Data Contracts (Props types), Integration Point Map |
|
|
302
|
+
| `cssLayout` / `stateDisplay` | State Transitions, component design decisions |
|
|
303
|
+
| `generatedArtifacts` | Standards Identification (Quality Assurance Mechanisms) |
|
|
304
|
+
| `externalResources` | External Resources awareness; alignment with design origin/system |
|
|
305
|
+
|
|
247
306
|
- **Reviewed Prior-Layer Design Doc** (optional, cross-layer only): the prior-layer Design Doc path. Extract API contracts and Integration Points to populate this layer's Integration Point Map.
|
|
248
307
|
- **Prior-Layer Review Findings** (optional, cross-layer only): critical/important findings from the prior-layer document review. Use to identify structurally weak areas of the prior-layer contracts.
|
|
249
308
|
- **Prior-Layer Verification** (optional, cross-layer only): the prior-layer code-verification result JSON. Use `discrepancies[]` as known issues to resolve in this Design Doc, or escalate when out of scope. Limit verified-claim inference to what the output states explicitly; the prior-layer Design Doc is reference context with its other claims remaining unverified unless this output confirms them.
|
|
@@ -315,8 +374,6 @@ Non-compliant: class components, `any`, untyped responses without guards, secret
|
|
|
315
374
|
|
|
316
375
|
### Design Doc Checklist
|
|
317
376
|
|
|
318
|
-
Items below are output-content checks performed in addition to (not duplicating) the Gate Ordering [BLOCKING] gates. The gates cover whether each subsection ran; the checklist below covers content quality of the produced output.
|
|
319
|
-
|
|
320
377
|
**All modes**:
|
|
321
378
|
- [ ] Component hierarchy and data flow clearly expressed in diagrams
|
|
322
379
|
|