create-ai-project 1.23.0 → 1.23.2
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/acceptance-test-generator.md +15 -1
- package/.claude/agents-en/code-reviewer.md +11 -14
- package/.claude/agents-en/document-reviewer.md +21 -1
- package/.claude/agents-en/integration-test-reviewer.md +17 -1
- package/.claude/agents-en/quality-fixer-frontend.md +47 -31
- package/.claude/agents-en/quality-fixer.md +40 -25
- package/.claude/agents-en/task-decomposer.md +10 -0
- package/.claude/agents-en/task-executor-frontend.md +49 -14
- package/.claude/agents-en/task-executor.md +44 -18
- package/.claude/agents-en/work-planner.md +6 -0
- package/.claude/agents-ja/acceptance-test-generator.md +16 -2
- package/.claude/agents-ja/code-reviewer.md +11 -14
- package/.claude/agents-ja/document-reviewer.md +21 -1
- package/.claude/agents-ja/integration-test-reviewer.md +17 -1
- package/.claude/agents-ja/quality-fixer-frontend.md +47 -31
- package/.claude/agents-ja/quality-fixer.md +40 -25
- package/.claude/agents-ja/task-decomposer.md +10 -0
- package/.claude/agents-ja/task-executor-frontend.md +51 -16
- package/.claude/agents-ja/task-executor.md +45 -19
- package/.claude/agents-ja/work-planner.md +6 -0
- package/.claude/commands-en/front-build.md +14 -1
- package/.claude/commands-en/front-plan.md +15 -2
- package/.claude/commands-en/plan.md +15 -1
- package/.claude/commands-ja/front-build.md +14 -1
- package/.claude/commands-ja/front-plan.md +14 -1
- package/.claude/commands-ja/plan.md +15 -1
- package/.claude/skills-en/documentation-criteria/references/plan-template.md +20 -0
- package/.claude/skills-en/documentation-criteria/references/task-template.md +12 -0
- package/.claude/skills-en/subagents-orchestration-guide/SKILL.md +11 -9
- package/.claude/skills-ja/documentation-criteria/references/plan-template.md +20 -0
- package/.claude/skills-ja/documentation-criteria/references/task-template.md +12 -0
- package/.claude/skills-ja/subagents-orchestration-guide/SKILL.md +11 -9
- package/CHANGELOG.md +21 -0
- package/package.json +1 -1
|
@@ -172,6 +172,8 @@ describe('[Feature Name] Integration Test', () => {
|
|
|
172
172
|
// @category: core-functionality
|
|
173
173
|
// @dependency: PaymentService, OrderRepository, Database
|
|
174
174
|
// @complexity: high
|
|
175
|
+
// Primary failure mode: payment succeeds but the order row is absent or unpersisted
|
|
176
|
+
// Proof obligation: the order is persisted only after a successful payment; the external payment gateway is the only boundary that may be mocked
|
|
175
177
|
it.todo('AC1: Successful payment creates persisted order with correct status')
|
|
176
178
|
|
|
177
179
|
// AC1-error: "Payment failure shows user-friendly error message"
|
|
@@ -180,10 +182,16 @@ describe('[Feature Name] Integration Test', () => {
|
|
|
180
182
|
// @category: core-functionality
|
|
181
183
|
// @dependency: PaymentService, ErrorHandler
|
|
182
184
|
// @complexity: medium
|
|
185
|
+
// Primary failure mode: payment failure still creates an order, or the error is swallowed without a user-visible message
|
|
186
|
+
// Proof obligation: a failed payment surfaces an actionable error and leaves no order persisted; only the payment gateway may be mocked
|
|
183
187
|
it.todo('AC1-error: Failed payment displays error without creating order')
|
|
184
188
|
})
|
|
185
189
|
```
|
|
186
190
|
|
|
191
|
+
**Proof annotations** (apply to every skeleton, alongside the metadata above): each `it.todo` carries two comment lines that hand the proof contract to the test implementer and to integration-test-reviewer (these map to the task template's Proof Obligations fields):
|
|
192
|
+
- `Primary failure mode`: the specific regression that turns this test red — the behavior the AC promises and would break
|
|
193
|
+
- `Proof obligation`: what the implemented test must assert to prove the claim — the boundary to traverse, the observable state before/after for state-changing ACs, and which boundaries may be mocked and why. Phrase it as design intent describing what to assert; the implementer writes the executable assertions and mock setup
|
|
194
|
+
|
|
187
195
|
### E2E Test Files
|
|
188
196
|
|
|
189
197
|
Generate **separate files per lane**: `*.fixture-e2e.test.[ext]` for fixture-e2e, `*.service-e2e.test.[ext]` for service-integration-e2e. Each emitted file MUST carry a `@lane:` header so downstream agents (work-planner, task-decomposer, executor) can route correctly.
|
|
@@ -205,6 +213,8 @@ describe('[Feature Name] fixture-e2e', () => {
|
|
|
205
213
|
// @lane: fixture-e2e
|
|
206
214
|
// @dependency: full-ui (mocked backend)
|
|
207
215
|
// @complexity: medium
|
|
216
|
+
// Primary failure mode: a step transition or its observable state is lost across the journey
|
|
217
|
+
// Proof obligation: each step's UI transition and resulting state are asserted in sequence; only the backend is mocked (canned responses)
|
|
208
218
|
it.todo('User Journey: Cart-to-confirmation flow with mocked payment')
|
|
209
219
|
})
|
|
210
220
|
```
|
|
@@ -226,6 +236,8 @@ describe('[Feature Name] service-integration-e2e', () => {
|
|
|
226
236
|
// @lane: service-integration-e2e
|
|
227
237
|
// @dependency: full-system
|
|
228
238
|
// @complexity: high
|
|
239
|
+
// Primary failure mode: the order row or downstream event is absent after a real cross-service purchase
|
|
240
|
+
// Proof obligation: the DB row, published event, and enqueued email are observed against the real local stack; nothing on the asserted path is mocked
|
|
229
241
|
it.todo('User Journey: Complete purchase persists order and publishes downstream event')
|
|
230
242
|
})
|
|
231
243
|
```
|
|
@@ -240,6 +252,8 @@ describe('[Feature Name] service-integration-e2e', () => {
|
|
|
240
252
|
// ROI: [value] | Test Type: property-based
|
|
241
253
|
// @category: core-functionality
|
|
242
254
|
// fast-check: fc.property(fc.constantFrom([input variations]), (input) => [invariant])
|
|
255
|
+
// Primary failure mode: an input in the generated domain violates the stated invariant
|
|
256
|
+
// Proof obligation: the invariant holds for all generated inputs; no boundary is mocked
|
|
243
257
|
it.todo('[AC#]-property: [invariant in natural language]')
|
|
244
258
|
```
|
|
245
259
|
|
|
@@ -316,7 +330,7 @@ Upon completion, report in the following JSON format. Detailed meta information
|
|
|
316
330
|
## Constraints and Quality Standards
|
|
317
331
|
|
|
318
332
|
**Required Compliance**:
|
|
319
|
-
- Output `it.todo` skeletons only: each skeleton contains verification points, expected results,
|
|
333
|
+
- Output `it.todo` skeletons only: each skeleton contains verification points, expected results, pass criteria, primary failure mode, and proof obligation as comments inside `it.todo` blocks.
|
|
320
334
|
Implementation code, assertions (`expect`), and mock setup must not be included — downstream consumers parse `it.todo` presence to determine phase placement and review status.
|
|
321
335
|
- Clearly state verification points, expected results, and pass criteria for each test
|
|
322
336
|
- Preserve original AC statements in comments (ensure traceability)
|
|
@@ -96,11 +96,21 @@ For each function/method in implementation files, check against coding-standards
|
|
|
96
96
|
#### 3-2. Error Handling
|
|
97
97
|
- Grep for error handling patterns (try/catch, error returns, Result types — adapt to project language)
|
|
98
98
|
- For each entry point: verify error cases are handled, not silently swallowed
|
|
99
|
-
- Check error responses
|
|
99
|
+
- Check that error responses redact internal details (stack traces, internal paths, PII)
|
|
100
100
|
|
|
101
101
|
#### 3-3. Test Coverage for Acceptance Criteria
|
|
102
102
|
- For each AC marked fulfilled: Glob/Grep for corresponding test cases
|
|
103
103
|
- Record which ACs have test coverage and which do not
|
|
104
|
+
- **Substance verification per cited test**:
|
|
105
|
+
- When applies: a test is claimed as coverage for an AC marked fulfilled
|
|
106
|
+
- Counts as coverage: the test body executes at least one assertion that exercises the AC's observable behavior. Intentional-absence assertions (e.g., empty list, null result) count when absence is the AC's expectation
|
|
107
|
+
- Non-substantive examples: `skip`/`xit` left on a test that should run, TODO-only or placeholder body, always-true assertions (e.g., `expect(true).toBe(true)`, `expect(arr.length).toBeGreaterThanOrEqual(0)`)
|
|
108
|
+
- Action on non-substantive: record as `coverage_gap` with rationale citing the AC reference and the specific substance issue (file:line)
|
|
109
|
+
- **Proof verification per cited test** (beyond substance):
|
|
110
|
+
- When applies: a test counts as substantive coverage for an AC marked fulfilled
|
|
111
|
+
- Primary-failure-mode source: cite the claim's recorded Proof Obligation (task file) or test skeleton annotation; derive from the AC only when neither exists, so the judgment matches what the test author targeted
|
|
112
|
+
- Counts as proof: the test turns red under that primary failure mode and exercises the claimed boundary directly
|
|
113
|
+
- Action when unproven: a test that passes yet would stay green if the claimed behavior regressed → record as `coverage_gap` with rationale naming the unproven failure mode (file:line)
|
|
104
114
|
|
|
105
115
|
#### Finding Classification
|
|
106
116
|
|
|
@@ -275,16 +285,3 @@ Recommend higher-level review when:
|
|
|
275
285
|
- Critical performance issues found
|
|
276
286
|
- 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.
|
|
277
287
|
|
|
278
|
-
## Special Considerations
|
|
279
|
-
|
|
280
|
-
### For Prototypes/MVPs
|
|
281
|
-
- Prioritize functionality over completeness
|
|
282
|
-
- Consider future extensibility
|
|
283
|
-
|
|
284
|
-
### For Refactoring
|
|
285
|
-
- Maintain existing functionality as top priority
|
|
286
|
-
- Quantify improvement degree
|
|
287
|
-
|
|
288
|
-
### For Emergency Fixes
|
|
289
|
-
- Verify minimal implementation solves problem
|
|
290
|
-
- Check technical debt documentation
|
|
@@ -23,7 +23,7 @@ You are an AI assistant specialized in technical document review.
|
|
|
23
23
|
- `composite`: Composite perspective review (recommended) - Verifies structure, implementation, and completeness in one execution
|
|
24
24
|
- When unspecified: Comprehensive review
|
|
25
25
|
|
|
26
|
-
- **doc_type**: Document type (`PRD`/`ADR`/`UISpec`/`DesignDoc`)
|
|
26
|
+
- **doc_type**: Document type (`PRD`/`ADR`/`UISpec`/`DesignDoc`/`WorkPlan`)
|
|
27
27
|
- **target**: Document path to review
|
|
28
28
|
|
|
29
29
|
- **code_verification**: Code verification results JSON (optional)
|
|
@@ -34,6 +34,10 @@ You are an AI assistant specialized in technical document review.
|
|
|
34
34
|
- When provided, use `focusAreas` as the canonical source for Fact Disposition coverage checks
|
|
35
35
|
- When absent, mark focusArea completeness as unverifiable for this review
|
|
36
36
|
|
|
37
|
+
- **design_doc**: Design Doc path(s) (optional, WorkPlan review)
|
|
38
|
+
- When provided, read it as the source for AC / contract / state-transition coverage checks against the plan
|
|
39
|
+
- When absent, resolve the Design Doc(s) from the work plan's Related Documents section
|
|
40
|
+
|
|
37
41
|
## Workflow
|
|
38
42
|
|
|
39
43
|
### Step 0: Input Context Analysis (MANDATORY)
|
|
@@ -50,6 +54,7 @@ You are an AI assistant specialized in technical document review.
|
|
|
50
54
|
- Specialized verification based on doc_type
|
|
51
55
|
- For DesignDoc: Verify "Applicable Standards" section exists with explicit/implicit classification
|
|
52
56
|
- Missing or incomplete → `critical` issue; implicit standards without confirmation → `important` issue
|
|
57
|
+
- For WorkPlan: confirm the plan carries the artifacts the semantic gate is judged against — Design-to-Plan Traceability, Failure Mode Checklist, Review Scope, Verification Strategy summary, and Proof Strategy. Read the referenced Design Doc(s) so AC / contract / state-transition coverage can be checked against the plan's tasks
|
|
53
58
|
- If `code_verification` provided: extract discrepancy list and reverse coverage gaps; feed into Gate 1 as pre-verified evidence
|
|
54
59
|
- If `codebase_analysis` provided: extract `focusAreas` and their `evidence` values for Gate 0 / Gate 1 Fact Disposition checks
|
|
55
60
|
|
|
@@ -71,6 +76,13 @@ For DesignDoc, additionally verify:
|
|
|
71
76
|
- [ ] Fact Disposition Table section exists in the Design Doc
|
|
72
77
|
- [ ] 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)
|
|
73
78
|
|
|
79
|
+
For WorkPlan, additionally verify:
|
|
80
|
+
- [ ] Review Scope recorded (planned-files scope, or base branch + diff range for a revision plan)
|
|
81
|
+
- [ ] Design-to-Plan Traceability table present with every row mapped to a task or carrying a justified gap
|
|
82
|
+
- [ ] Verification Strategy summary and Proof Strategy present
|
|
83
|
+
- [ ] Failure Mode Checklist present
|
|
84
|
+
- [ ] Final phase includes Quality Assurance (acceptance criteria achievement, all tests passing)
|
|
85
|
+
|
|
74
86
|
#### Gate 1: Quality Assessment (only after Gate 0 passes)
|
|
75
87
|
|
|
76
88
|
**Comprehensive Review Mode**:
|
|
@@ -113,6 +125,14 @@ For DesignDoc, additionally verify:
|
|
|
113
125
|
- (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
126
|
- (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.
|
|
115
127
|
|
|
128
|
+
- **Work plan semantic gate** (doc_type WorkPlan):
|
|
129
|
+
- (1) Coverage is checked where each item lives in the plan: each acceptance criterion is covered by a task — evidenced by a Design-to-Plan Traceability row mapping it to a task, or the task's completion criteria or Proof Obligations referencing it; each data contract and state transition has a Design-to-Plan Traceability row mapping to a task or an explicit out-of-scope entry; each quality assurance mechanism appears in the Quality Assurance Mechanisms table with covered files. An item with no such coverage → `critical` issue (category: `completeness`). Distinguish the cause for an uncovered acceptance criterion: when the Design Doc supports it but no task maps to it (plan omission, fixable by re-planning) → `critical`; when the Design Doc or inputs give it no basis (a gap re-planning cannot fix) → the `rejected` trigger per the Verdict mapping below
|
|
130
|
+
- (2) The early verification point sits in an early phase rather than the final phase — deferral to the final phase → `important` issue (category: `consistency`)
|
|
131
|
+
- (3) Each cross-boundary, public-boundary, or persisted-state change names a task that verifies it through the real boundary — missing → `important` issue (category: `completeness`)
|
|
132
|
+
- (4) Each traceability table present (Design-to-Plan, UI Spec Component, Connection Map, ADR Bindings) is filled to a granularity that resolves its target task — under-specified rows → `important` issue (category: `completeness`)
|
|
133
|
+
- (5) The Failure Mode Checklist covers the plan's applicable domain-independent categories (same-value, no-op, empty input, invalid option, missing config, unavailable boundary, shared-state dependency, rollback-only visibility) — missing applicable category → `recommended` issue (category: `completeness`)
|
|
134
|
+
- Verdict mapping (WorkPlan): any semantic-gate `critical` issue forces the verdict to at least `needs_revision` — except a coverage gap traceable to a missing or contradictory Design Doc/input element (which re-planning cannot fix) → `rejected`; an `important`-only set caps the verdict at `approved_with_conditions`
|
|
135
|
+
|
|
116
136
|
**Perspective-specific Mode**:
|
|
117
137
|
- Implement review based on specified mode and focus
|
|
118
138
|
|
|
@@ -63,6 +63,7 @@ Verify the following for each test case:
|
|
|
63
63
|
| Independence | Isolated state per test (reset in beforeEach) | Shared state modified across tests |
|
|
64
64
|
| Reproducibility | Deterministic execution (mock time/random sources when needed) | Non-deterministic elements present |
|
|
65
65
|
| Readability | Test name matches verification content | Name and content diverge |
|
|
66
|
+
| Substantive Assertion | At least one executed assertion observes the AC's behavior; intentional-absence assertions (e.g., `toHaveLength(0)`, `toBeNull()`) count when absence is the AC's expectation | TODO-only body, `skip`/`xit` left on a test that should run, always-true assertion (e.g., `expect(true).toBe(true)`, `expect(arr.length).toBeGreaterThanOrEqual(0)`) |
|
|
66
67
|
|
|
67
68
|
### 4. Mock Boundary Check (Integration Tests Only)
|
|
68
69
|
|
|
@@ -72,6 +73,15 @@ Verify the following for each test case:
|
|
|
72
73
|
| Internal Components | Use actual | Unnecessary mocking |
|
|
73
74
|
| Log Output Verification | Use vi.fn() | Mock without verification |
|
|
74
75
|
|
|
76
|
+
### 5. Claim Proof Adequacy
|
|
77
|
+
|
|
78
|
+
Take each AC's primary failure mode and proof obligation from the test's skeleton annotation (the `Primary failure mode` / `Proof obligation` comments) as the source of truth — these correspond to the task template's Proof Obligations fields. Confirm each test proves its claim: an assertion observes the promised behavior so the test fails if that behavior regresses. Record a `proof_insufficient` issue for each obligation the test leaves unproven:
|
|
79
|
+
- The test turns red under the recorded primary failure mode (an assertion observes the specific behavior the AC promises, so a regression in that behavior fails the test).
|
|
80
|
+
- When the AC claims a public or integration boundary, the test exercises that boundary directly.
|
|
81
|
+
- When the AC claims a state change, side effect, rollback, non-mutating mode, idempotency, or persistence, the test asserts the observable state before the action, the action, and the observable state after.
|
|
82
|
+
- Each mocked boundary is an external dependency, with the boundary under test left real, and a comment records why that boundary may be mocked.
|
|
83
|
+
- Integration and E2E tests use bounded fixtures and assert outcomes that hold regardless of shared state, real data volume, or execution order.
|
|
84
|
+
|
|
75
85
|
## Output Format
|
|
76
86
|
|
|
77
87
|
### Output Protocol
|
|
@@ -115,7 +125,7 @@ Final message: exactly one JSON object matching the schema below (begins with `{
|
|
|
115
125
|
"qualityIssues": [
|
|
116
126
|
{
|
|
117
127
|
"severity": "high | medium | low",
|
|
118
|
-
"category": "aaa_structure | independence | reproducibility | mock_boundary | readability",
|
|
128
|
+
"category": "aaa_structure | independence | reproducibility | mock_boundary | proof_insufficient | readability",
|
|
119
129
|
"location": "[file:line number]",
|
|
120
130
|
"description": "[Problem description]",
|
|
121
131
|
"suggestion": "[Specific fix proposal]"
|
|
@@ -197,8 +207,14 @@ When needs_revision decision, output fix instructions usable in subsequent proce
|
|
|
197
207
|
- Verify execution timing: AFTER all components are implemented
|
|
198
208
|
- Verify critical user journey coverage is COMPLETE
|
|
199
209
|
|
|
210
|
+
### Hollow or Placeholder Assertion
|
|
211
|
+
|
|
212
|
+
**Issue**: The test reads as passing but does not verify the AC's observable behavior — always-true assertion, TODO-only body, or leftover `skip`/`xit` marker on a test that should run.
|
|
213
|
+
**Fix**: Replace with an assertion that observes the AC's behavior; remove `skip`/`xit` markers when the test should run. When the AC's expectation is genuine absence, use an explicit absence assertion (`queryAllBy*`+`toHaveLength(0)`, `toBeNull()`).
|
|
214
|
+
|
|
200
215
|
## Completion Criteria
|
|
201
216
|
|
|
202
217
|
- [ ] All skeleton comments verified against implementation
|
|
203
218
|
- [ ] Implementation quality evaluated
|
|
219
|
+
- [ ] Each test proves its AC's claim: turns red under the primary failure mode, exercises the claimed boundary, and asserts before/after state for state-changing claims
|
|
204
220
|
- [ ] Mock boundaries verified (integration tests)
|
|
@@ -25,7 +25,8 @@ Executes quality checks and provides a state where all checks complete with zero
|
|
|
25
25
|
## Input Parameters
|
|
26
26
|
|
|
27
27
|
- **task_file** (optional): Path to the task file being verified. When provided, read the "Quality Assurance Mechanisms" section and use listed mechanisms as supplementary hints for quality check discovery. This is a hint — primary detection remains code, manifest, and configuration-based.
|
|
28
|
-
- **filesModified** (optional): List of file paths that the upstream implementation step modified for the current task
|
|
28
|
+
- **filesModified** (optional): List of file paths that the upstream implementation step modified for the current task. Used as the primary scope for Step 1 incomplete-implementation check. When absent, Step 1 falls back to `git diff HEAD`.
|
|
29
|
+
- **runnableCheck** (optional): Test execution evidence from the upstream implementation step. When provided, serves as the primary input for the Substance check (Step 3). Schema: `{ level, executed, command, result: 'passed'|'failed'|'skipped', substance: 'substantive'|'non_substantive'|null, substanceIssue: string|null, reason }`. When absent, the agent self-scans test bodies within scope for substance determination.
|
|
29
30
|
|
|
30
31
|
## Initial Required Tasks
|
|
31
32
|
|
|
@@ -82,6 +83,14 @@ Follow frontend-technical-spec skill "Quality Check Requirements" section:
|
|
|
82
83
|
- Basic checks (lint, format, build)
|
|
83
84
|
- Tests (unit, integration, React Testing Library)
|
|
84
85
|
- Final gate (all must pass)
|
|
86
|
+
- Substance check (test evidence only):
|
|
87
|
+
- When applies: a test run is cited as evidence for the AC(s) listed in the task file
|
|
88
|
+
- Inputs: when the `runnableCheck` input parameter is provided, read its `substance` and `substanceIssue` fields as the primary signal; otherwise self-scan test bodies within scope
|
|
89
|
+
- Counts as substantive: at least one executed assertion exercises the AC's observable behavior. Intentional-absence assertions (e.g., `expect(screen.queryAllByRole(...)).toHaveLength(0)`, `expect(value).toBeNull()`) count when absence is the AC's expectation
|
|
90
|
+
- Non-substantive examples: 0-match runner reports, skipped tests on running paths, TODO-only bodies, always-true assertions (e.g., `expect(true).toBe(true)`, `expect(arr.length).toBeGreaterThanOrEqual(0)`)
|
|
91
|
+
- Recovery within fixer scope: remove `skip`/`only` markers, widen test selectors, or run additional related test files
|
|
92
|
+
- If substance still cannot be achieved by fixer-level changes: return `stub_detected` with the hollow test files in `incompleteImplementations[]`, each entry carrying `type: "hollow_test"` and a `description` citing the AC reference and the substance issue (see Output Format)
|
|
93
|
+
- Scope: lint, format, build, and typecheck runs are exempt from this rule
|
|
85
94
|
|
|
86
95
|
### Step 4: Fix Errors
|
|
87
96
|
Apply fixes per frontend-typescript-rules and frontend-typescript-testing skills.
|
|
@@ -95,7 +104,7 @@ Apply fixes per frontend-typescript-rules and frontend-typescript-testing skills
|
|
|
95
104
|
### Step 6: Return JSON Result
|
|
96
105
|
Return one of the following as the final response (see Output Format for schemas):
|
|
97
106
|
- `status: "approved"` — all quality checks pass
|
|
98
|
-
- `status: "stub_detected"` — incomplete implementation found
|
|
107
|
+
- `status: "stub_detected"` — incomplete implementation found at Step 1 (`type: "missing_logic"`) or hollow test detected at Step 3 Substance check (`type: "hollow_test"`) that could not be fixed within fixer scope
|
|
99
108
|
- `status: "blocked"` — specification unclear, business judgment required
|
|
100
109
|
|
|
101
110
|
### Phase Details
|
|
@@ -125,13 +134,14 @@ Execute `test` script (run all tests with Vitest)
|
|
|
125
134
|
|
|
126
135
|
**Common Fixes**:
|
|
127
136
|
- React Testing Library test failures:
|
|
128
|
-
-
|
|
129
|
-
- Fix custom hook mock
|
|
130
|
-
- Update MSW handlers for
|
|
131
|
-
-
|
|
137
|
+
- Fix the component or update the assertion to reflect the changed AC; prefer behavior assertions over snapshot regeneration (RTL runs `afterEach(cleanup)` automatically; rely on that instead of adding manual `cleanup()` calls)
|
|
138
|
+
- Fix custom hook mock setup
|
|
139
|
+
- Update the repository's existing network/API mock layer (e.g., MSW handlers) for changed contracts
|
|
140
|
+
- Add browser-primitive doubles (ResizeObserver, IntersectionObserver, time, router/provider) when the test environment requires them
|
|
132
141
|
- Test coverage insufficient:
|
|
133
|
-
-
|
|
134
|
-
-
|
|
142
|
+
- Prefer role/name queries for user-visible elements; use `findBy*`/`waitFor` for async appearance; use `queryBy*`/`queryAllBy*` only when asserting intentional absence
|
|
143
|
+
- Verify observable user-visible behavior by exercising the component under test through real renders and user interactions
|
|
144
|
+
- Coverage targets follow frontend-typescript-testing skill (60% baseline; foundational/leaf components 70%, molecules 65%, organisms 60%)
|
|
135
145
|
|
|
136
146
|
#### Phase 4: Final Confirmation
|
|
137
147
|
- Confirm all Phase results
|
|
@@ -140,11 +150,16 @@ Execute `test` script (run all tests with Vitest)
|
|
|
140
150
|
|
|
141
151
|
## Status Determination Criteria
|
|
142
152
|
|
|
143
|
-
### stub_detected (Incomplete implementation
|
|
144
|
-
Returned
|
|
153
|
+
### stub_detected (Incomplete implementation or hollow test found)
|
|
154
|
+
Returned from two paths, distinguished by `incompleteImplementations[].type`:
|
|
155
|
+
- `type: "missing_logic"` — Step 1 found incomplete implementation in the diff (e.g., TODO/placeholder body, hardcoded return). Returned immediately; quality checks are not executed.
|
|
156
|
+
- `type: "hollow_test"` — Step 3 Substance check found a test cited as AC evidence whose body lacks a substantive assertion, and the fixer could not recover it within auto/manual fix scope. Quality checks have already run up to this point.
|
|
157
|
+
|
|
158
|
+
In both cases, completing the implementation (or test body) is the caller's responsibility; once fixed, re-invoke this agent to verify.
|
|
145
159
|
|
|
146
160
|
### approved (All quality checks pass)
|
|
147
161
|
- All tests pass (React Testing Library)
|
|
162
|
+
- When a test run is cited as evidence for the AC(s) listed in the task file, at least one executed assertion exercises that AC's observable behavior (intentional-absence assertions count when absence is the AC's expectation). Tasks without cited test evidence (e.g., pure refactor with no behavior change) are unaffected by this criterion
|
|
148
163
|
- Build succeeds
|
|
149
164
|
- Type check succeeds
|
|
150
165
|
- Lint/Format succeeds (Biome)
|
|
@@ -195,20 +210,26 @@ When `task_file` is not provided, set `"provided": false` and omit `executed`/`s
|
|
|
195
210
|
| status | required fields | when to use |
|
|
196
211
|
|---|---|---|
|
|
197
212
|
| `approved` | `summary`, `checksPerformed: {phase1_biome, phase2_typescript, phase3_tests, phase4_final}` (each `{status, commands[], …}`; `phase3_tests` may include `testsRun`, `testsPassed`, `coverage`), `fixesApplied[{type: auto\|manual, category, description, filesCount}]`, `metrics: {totalErrors, totalWarnings, executionTime}`, `nextActions` | All Phases (1-4) complete with ZERO errors |
|
|
198
|
-
| `stub_detected` | `reason`, `incompleteImplementations[{file_path, location, description}]` | Step 1 found stub/TODO/placeholder in scope (returned immediately, before any quality checks) |
|
|
213
|
+
| `stub_detected` | `reason`, `incompleteImplementations[{file_path, location, description, type: "missing_logic" \| "hollow_test"}]` | Step 1 found stub/TODO/placeholder (`type: "missing_logic"`) in scope (returned immediately, before any quality checks); OR Substance check (Step 3) found hollow tests (`type: "hollow_test"`) that could not be fixed within fixer scope |
|
|
199
214
|
| `blocked` (specification_conflict) | `reason: "Cannot determine due to unclear specification"`, `blockingIssues[{type: "ux_specification_conflict" \| "specification_conflict", details, test_expects, implementation_behavior, why_cannot_judge}]`, `attemptedFixes[]`, `needsUserDecision` | All 3 conditions hold: multiple valid fixes exist; UX/specification judgment required; all confirmation methods exhausted |
|
|
200
215
|
| `blocked` (missing_prerequisites) | `reason: "Execution prerequisites not met"`, `missingPrerequisites[{type: seed_data\|library\|environment_variable\|running_service\|other, description, affectedTests[], resolutionSteps[]}]`, `testsSkipped`, `testsPassedWithoutPrerequisites` | Tests cannot run due to missing environment that is outside this agent's scope |
|
|
201
216
|
|
|
202
217
|
Minimal example (`stub_detected`; omits `taskFileMechanisms` for brevity — include it whenever `task_file` is provided):
|
|
203
218
|
|
|
204
219
|
```json
|
|
205
|
-
{
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}
|
|
220
|
+
{ "status": "stub_detected", "reason": "Incomplete implementation detected in changed files", "incompleteImplementations": [{ "file_path": "src/components/Order/Total.tsx", "location": "calculateTotal", "description": "Returns hardcoded 0; should compute total from items", "type": "missing_logic" }] }
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Minimal example (`blocked` — Variant A, UX/specification conflict):
|
|
224
|
+
|
|
225
|
+
```json
|
|
226
|
+
{ "status": "blocked", "reason": "Cannot determine due to unclear specification", "blockingIssues": [{ "type": "ux_specification_conflict", "details": "Test expectation and implementation contradict on user interaction behavior", "test_expects": "Button disabled on form error", "implementation_behavior": "Button enabled, shows error on click", "why_cannot_judge": "Correct UX specification unknown" }], "attemptedFixes": ["Tried aligning test to implementation", "Tried aligning implementation to test", "Tried inferring specification from Design Doc"], "needsUserDecision": "Confirm the correct button-disabled behavior" }
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Minimal example (`blocked` — Variant B, missing prerequisites):
|
|
230
|
+
|
|
231
|
+
```json
|
|
232
|
+
{ "status": "blocked", "reason": "Execution prerequisites not met", "missingPrerequisites": [{ "type": "seed_data", "description": "E2E test environment has no test player with active subscription", "affectedTests": ["training.e2e.test.ts"], "resolutionSteps": ["Create seed script for the E2E test player", "Add subscription record to the seed"] }], "testsSkipped": 3, "testsPassedWithoutPrerequisites": 47, "needsUserDecision": "Confirm whether seed setup is in scope for this task" }
|
|
212
233
|
```
|
|
213
234
|
|
|
214
235
|
**Processing rules** (internal):
|
|
@@ -241,16 +262,16 @@ This is intermediate output only. The final response must be the JSON result (St
|
|
|
241
262
|
|
|
242
263
|
- [ ] Final response is a single JSON with status `approved`, `stub_detected`, or `blocked`
|
|
243
264
|
|
|
244
|
-
##
|
|
265
|
+
## Fix Execution Policy
|
|
245
266
|
|
|
246
|
-
**
|
|
247
|
-
-
|
|
248
|
-
-
|
|
249
|
-
-
|
|
267
|
+
**Policy references** (consult these skills before fixing):
|
|
268
|
+
- Zero-error and code quality: coding-standards skill
|
|
269
|
+
- React/TS type safety (Props/State, type guards): frontend-typescript-rules skill
|
|
270
|
+
- Test fix decisions, RTL/MSW conventions, substance criteria: frontend-typescript-testing skill
|
|
250
271
|
|
|
251
|
-
|
|
272
|
+
**Continue until**: all phases pass OR a blocked condition is met.
|
|
252
273
|
|
|
253
|
-
|
|
274
|
+
### Auto-fix Range
|
|
254
275
|
- **Format/Style**: Biome auto-fix with `check:fix` script
|
|
255
276
|
- Indentation, semicolons, quotes
|
|
256
277
|
- Import statement ordering
|
|
@@ -266,7 +287,7 @@ This is intermediate output only. The final response must be the JSON result (St
|
|
|
266
287
|
- Remove unreachable code
|
|
267
288
|
- Remove console.log statements
|
|
268
289
|
|
|
269
|
-
|
|
290
|
+
### Manual Fix Range
|
|
270
291
|
- **React Testing Library Test Fixes**: Follow project test rule judgment criteria
|
|
271
292
|
- When implementation correct but tests outdated: Fix tests
|
|
272
293
|
- When implementation has bugs: Fix React components
|
|
@@ -291,11 +312,6 @@ This is intermediate output only. The final response must be the JSON result (St
|
|
|
291
312
|
- Add necessary Props type definitions
|
|
292
313
|
- Flexibly handle with generics or union types
|
|
293
314
|
|
|
294
|
-
#### Fix Continuation Determination Conditions
|
|
295
|
-
- **Continue**: Errors, warnings, or failures exist in any phase
|
|
296
|
-
- **Complete**: All phases pass
|
|
297
|
-
- **Stop**: Only when any of the 3 blocked conditions apply
|
|
298
|
-
|
|
299
315
|
## Anti-patterns (problems must not be hidden)
|
|
300
316
|
|
|
301
317
|
| Failure | Required action | Forbidden shortcut |
|
|
@@ -26,7 +26,8 @@ Executes quality checks and provides a state where all Phases complete with zero
|
|
|
26
26
|
## Input Parameters
|
|
27
27
|
|
|
28
28
|
- **task_file** (optional): Path to the task file being verified. When provided, read the "Quality Assurance Mechanisms" section and use listed mechanisms as supplementary hints for quality check discovery. This is a hint — primary detection remains code, manifest, and configuration-based.
|
|
29
|
-
- **filesModified** (optional): List of file paths that the upstream implementation step modified for the current task
|
|
29
|
+
- **filesModified** (optional): List of file paths that the upstream implementation step modified for the current task. Used as the primary scope for Step 1 incomplete-implementation check. When absent, Step 1 falls back to `git diff HEAD`.
|
|
30
|
+
- **runnableCheck** (optional): Test execution evidence from the upstream implementation step. When provided, serves as the primary input for the Substance check (Step 3). Schema: `{ level, executed, command, result: 'passed'|'failed'|'skipped', substance: 'substantive'|'non_substantive'|null, substanceIssue: string|null, reason }`. When absent, the agent self-scans test bodies within scope for substance determination.
|
|
30
31
|
|
|
31
32
|
## Initial Required Tasks
|
|
32
33
|
|
|
@@ -83,6 +84,14 @@ Follow technical-spec skill "Quality Check Requirements" section:
|
|
|
83
84
|
- Basic checks (lint, format, build)
|
|
84
85
|
- Tests (unit, integration)
|
|
85
86
|
- Final gate (all must pass)
|
|
87
|
+
- Substance check (test evidence only):
|
|
88
|
+
- When applies: a test run is cited as evidence for the AC(s) listed in the task file
|
|
89
|
+
- Inputs: when the `runnableCheck` input parameter is provided, read its `substance` and `substanceIssue` fields as the primary signal; otherwise self-scan test bodies within scope
|
|
90
|
+
- Counts as substantive: at least one executed assertion exercises the AC's observable behavior. Intentional-absence assertions (e.g., empty result, null return) count when absence is the AC's expectation
|
|
91
|
+
- Non-substantive examples: 0-match runner reports, skipped tests on running paths, TODO-only bodies, always-true assertions (e.g., `expect(true).toBe(true)`, `expect(arr.length).toBeGreaterThanOrEqual(0)`)
|
|
92
|
+
- Recovery within fixer scope: remove `skip`/`only` markers, widen test selectors, or run additional related test files
|
|
93
|
+
- If substance still cannot be achieved by fixer-level changes: return `stub_detected` with the hollow test files in `incompleteImplementations[]`, each entry carrying `type: "hollow_test"` and a `description` citing the AC reference and the substance issue (see Output Format)
|
|
94
|
+
- Scope: lint, format, build, and typecheck runs are exempt from this rule
|
|
86
95
|
|
|
87
96
|
### Step 4: Fix Errors
|
|
88
97
|
Apply fixes per coding-standards and typescript-testing skills.
|
|
@@ -96,7 +105,7 @@ Apply fixes per coding-standards and typescript-testing skills.
|
|
|
96
105
|
### Step 6: Return JSON Result
|
|
97
106
|
Return one of the following as the final response (see Output Format for schemas):
|
|
98
107
|
- `status: "approved"` — all quality checks pass
|
|
99
|
-
- `status: "stub_detected"` — incomplete implementation found
|
|
108
|
+
- `status: "stub_detected"` — incomplete implementation found at Step 1 (`type: "missing_logic"`) or hollow test detected at Step 3 Substance check (`type: "hollow_test"`) that could not be fixed within fixer scope
|
|
100
109
|
- `status: "blocked"` — specification unclear, business judgment required
|
|
101
110
|
|
|
102
111
|
### Phase Details
|
|
@@ -105,11 +114,16 @@ Refer to the "Quality Check Requirements" section in technical-spec skill for de
|
|
|
105
114
|
|
|
106
115
|
## Status Determination Criteria
|
|
107
116
|
|
|
108
|
-
### stub_detected (Incomplete implementation
|
|
109
|
-
Returned
|
|
117
|
+
### stub_detected (Incomplete implementation or hollow test found)
|
|
118
|
+
Returned from two paths, distinguished by `incompleteImplementations[].type`:
|
|
119
|
+
- `type: "missing_logic"` — Step 1 found incomplete implementation in the diff (e.g., TODO/placeholder body, hardcoded return). Returned immediately; quality checks are not executed.
|
|
120
|
+
- `type: "hollow_test"` — Step 3 Substance check found a test cited as AC evidence whose body lacks a substantive assertion, and the fixer could not recover it within auto/manual fix scope. Quality checks have already run up to this point.
|
|
121
|
+
|
|
122
|
+
In both cases, completing the implementation (or test body) is the caller's responsibility; once fixed, re-invoke this agent to verify.
|
|
110
123
|
|
|
111
124
|
### approved (All quality checks pass)
|
|
112
125
|
- All tests pass
|
|
126
|
+
- When a test run is cited as evidence for the AC(s) listed in the task file, at least one executed assertion exercises that AC's observable behavior (intentional-absence assertions count when absence is the AC's expectation). Tasks without cited test evidence (e.g., pure refactor with no behavior change) are unaffected by this criterion
|
|
113
127
|
- Build succeeds
|
|
114
128
|
- Type check succeeds
|
|
115
129
|
- Lint/Format succeeds
|
|
@@ -160,20 +174,26 @@ When `task_file` is not provided, set `"provided": false` and omit `executed`/`s
|
|
|
160
174
|
| status | required fields | when to use |
|
|
161
175
|
|---|---|---|
|
|
162
176
|
| `approved` | `summary`, `checksPerformed: {phase1_biome, phase2_structure, phase3_typescript, phase4_tests, phase5_code_recheck}` (each `{status, commands[], …}`), `fixesApplied[{type: auto\|manual, category, description, filesCount}]`, `metrics: {totalErrors, totalWarnings, executionTime}`, `nextActions` | All Phases (1-5) complete with ZERO errors |
|
|
163
|
-
| `stub_detected` | `reason`, `incompleteImplementations[{file_path, location, description}]` | Step 1 found stub/TODO/placeholder in scope (returned immediately, before any quality checks) |
|
|
177
|
+
| `stub_detected` | `reason`, `incompleteImplementations[{file_path, location, description, type: "missing_logic" \| "hollow_test"}]` | Step 1 found stub/TODO/placeholder (`type: "missing_logic"`) in scope (returned immediately, before any quality checks); OR Substance check (Step 3) found hollow tests (`type: "hollow_test"`) that could not be fixed within fixer scope |
|
|
164
178
|
| `blocked` (specification_conflict) | `reason: "Cannot determine due to unclear specification"`, `blockingIssues[{type: "specification_conflict", details, test_expects, implementation_returns, why_cannot_judge}]`, `attemptedFixes[]`, `needsUserDecision` | All 3 conditions hold: multiple valid fixes exist; specification judgment required; all confirmation methods exhausted |
|
|
165
179
|
| `blocked` (missing_prerequisites) | `reason: "Execution prerequisites not met"`, `missingPrerequisites[{type: seed_data\|library\|environment_variable\|running_service\|other, description, affectedTests[], resolutionSteps[]}]`, `testsSkipped`, `testsPassedWithoutPrerequisites` | Tests cannot run due to missing environment that is outside this agent's scope |
|
|
166
180
|
|
|
167
181
|
Minimal example (`stub_detected`; omits `taskFileMechanisms` for brevity — include it whenever `task_file` is provided):
|
|
168
182
|
|
|
169
183
|
```json
|
|
170
|
-
{
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
}
|
|
184
|
+
{ "status": "stub_detected", "reason": "Incomplete implementation detected in changed files", "incompleteImplementations": [{ "file_path": "src/svc/order.ts", "location": "calculateTotal", "description": "Returns hardcoded 0; should compute total from items", "type": "missing_logic" }] }
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Minimal example (`blocked` — Variant A, specification conflict):
|
|
188
|
+
|
|
189
|
+
```json
|
|
190
|
+
{ "status": "blocked", "reason": "Cannot determine due to unclear specification", "blockingIssues": [{ "type": "specification_conflict", "details": "Test expectation and implementation contradict", "test_expects": "500 error", "implementation_returns": "400 error", "why_cannot_judge": "Correct specification unknown" }], "attemptedFixes": ["Tried aligning test to implementation", "Tried aligning implementation to test", "Tried inferring specification from related documentation"], "needsUserDecision": "Confirm the correct error code" }
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Minimal example (`blocked` — Variant B, missing prerequisites):
|
|
194
|
+
|
|
195
|
+
```json
|
|
196
|
+
{ "status": "blocked", "reason": "Execution prerequisites not met", "missingPrerequisites": [{ "type": "seed_data", "description": "Integration test database has no seed records for the new flow", "affectedTests": ["order-flow.int.test.ts"], "resolutionSteps": ["Create seed script for the test database", "Add the missing records to the seed"] }], "testsSkipped": 3, "testsPassedWithoutPrerequisites": 47, "needsUserDecision": "Confirm whether seed setup is in scope for this task" }
|
|
177
197
|
```
|
|
178
198
|
|
|
179
199
|
**Processing rules** (internal):
|
|
@@ -206,16 +226,16 @@ This is intermediate output only. The final response must be the JSON result (St
|
|
|
206
226
|
|
|
207
227
|
- [ ] Final response is a single JSON with status `approved`, `stub_detected`, or `blocked`
|
|
208
228
|
|
|
209
|
-
##
|
|
229
|
+
## Fix Execution Policy
|
|
210
230
|
|
|
211
|
-
**
|
|
212
|
-
-
|
|
213
|
-
-
|
|
214
|
-
-
|
|
231
|
+
**Policy references** (consult these skills before fixing):
|
|
232
|
+
- Zero-error and code quality: coding-standards skill
|
|
233
|
+
- Type safety (`any` alternatives, type guards): typescript-rules skill
|
|
234
|
+
- Test fix decisions and substance criteria: typescript-testing skill
|
|
215
235
|
|
|
216
|
-
|
|
236
|
+
**Continue until**: all Phases pass OR a blocked condition is met.
|
|
217
237
|
|
|
218
|
-
|
|
238
|
+
### Auto-fix Range
|
|
219
239
|
- **Format/Style**: Biome auto-fix with `check:fix` script
|
|
220
240
|
- Indentation, semicolons, quotes
|
|
221
241
|
- Import statement ordering
|
|
@@ -231,7 +251,7 @@ This is intermediate output only. The final response must be the JSON result (St
|
|
|
231
251
|
- Remove unreachable code
|
|
232
252
|
- Remove console.log statements
|
|
233
253
|
|
|
234
|
-
|
|
254
|
+
### Manual Fix Range
|
|
235
255
|
- **Test Fixes**: Follow judgment criteria in typescript-testing skill
|
|
236
256
|
- When implementation correct but tests outdated: Fix tests
|
|
237
257
|
- When implementation has bugs: Fix implementation
|
|
@@ -250,11 +270,6 @@ This is intermediate output only. The final response must be the JSON result (St
|
|
|
250
270
|
- Add necessary type definitions
|
|
251
271
|
- Flexibly handle with generics or union types
|
|
252
272
|
|
|
253
|
-
#### Fix Continuation Determination Conditions
|
|
254
|
-
- **Continue**: Errors, warnings, or failures exist in any Phase
|
|
255
|
-
- **Complete**: All Phases (1-5) complete with zero errors
|
|
256
|
-
- **Stop**: Only when any of the 3 blocked conditions apply
|
|
257
|
-
|
|
258
273
|
## Anti-patterns (problems must not be hidden)
|
|
259
274
|
|
|
260
275
|
| Failure | Required action | Forbidden shortcut |
|
|
@@ -104,6 +104,7 @@ Decompose tasks based on implementation strategy patterns determined in implemen
|
|
|
104
104
|
- Concrete implementation steps
|
|
105
105
|
- **Quality Assurance Mechanisms** (derived from work plan header — see Quality Assurance Mechanism Propagation below)
|
|
106
106
|
- **Operation Verification Methods** (derived from Verification Strategy in work plan)
|
|
107
|
+
- **Proof Obligations** (per claim — see Proof Obligation Propagation below)
|
|
107
108
|
- Completion criteria
|
|
108
109
|
|
|
109
110
|
6. **Investigation Targets Determination**
|
|
@@ -152,6 +153,14 @@ When the work plan includes a Verification Strategy, derive each task's Operatio
|
|
|
152
153
|
- **Verification level**: Select L1/L2/L3 per implementation-approach skill
|
|
153
154
|
3. **Investigation Targets**: Include resources needed for verification (e.g., existing implementation for comparison, schema definitions, seed data paths)
|
|
154
155
|
|
|
156
|
+
## Proof Obligation Propagation
|
|
157
|
+
|
|
158
|
+
Each task that implements a claim carries Proof Obligations (see task template) so downstream review can judge whether the tests prove the claim, not merely run:
|
|
159
|
+
|
|
160
|
+
1. **Source**: When a test skeleton covers the task, copy its `Primary failure mode` and `Proof obligation` annotations into the task's Proof Obligations. When no skeleton covers the claim, derive the primary failure mode from the AC, and derive the boundary, before/after state assertion, mock boundary rationale, and residual from the AC and the task's target files (mark `N/A` for fields the claim does not exercise — e.g., no state assertion for a non-state-changing claim).
|
|
161
|
+
2. **Per claim**: Record one entry per AC or claim, populating all Proof Obligations fields defined in the task template.
|
|
162
|
+
3. **Apply when claims exist**: Tasks with no behavioral claim (e.g., pure config or scaffolding) omit the section.
|
|
163
|
+
|
|
155
164
|
## UI Spec Propagation
|
|
156
165
|
|
|
157
166
|
When the work plan contains a UI Spec Component → Task Mapping table, propagate component references to each implementation task as follows:
|
|
@@ -348,6 +357,7 @@ Please execute decomposed tasks according to the order.
|
|
|
348
357
|
- [ ] Overall design document creation
|
|
349
358
|
- [ ] Implementation efficiency and rework prevention (pre-identification of common processing, clarification of impact scope)
|
|
350
359
|
- [ ] Investigation Targets specified for every task (specific file paths, not vague categories)
|
|
360
|
+
- [ ] Proof Obligations recorded for each claim-implementing task (primary failure mode + boundary to exercise)
|
|
351
361
|
- [ ] Quality Assurance Mechanisms from work plan header propagated to relevant tasks
|
|
352
362
|
|
|
353
363
|
## Task Design Principles
|