codex-workflows 0.6.6 → 0.6.8
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/.agents/skills/integration-e2e-testing/SKILL.md +1 -1
- package/.agents/skills/recipe-build/SKILL.md +10 -3
- package/.agents/skills/recipe-front-build/SKILL.md +10 -3
- package/.agents/skills/recipe-fullstack-build/SKILL.md +10 -3
- package/.agents/skills/recipe-fullstack-implement/SKILL.md +1 -1
- package/.agents/skills/recipe-prepare-implementation/SKILL.md +1 -0
- package/.agents/skills/subagents-orchestration-guide/SKILL.md +9 -6
- package/.agents/skills/task-analyzer/references/skills-index.yaml +1 -1
- package/.codex/agents/acceptance-test-generator.toml +73 -56
- package/.codex/agents/code-reviewer.toml +3 -0
- package/.codex/agents/task-executor-frontend.toml +12 -15
- package/.codex/agents/task-executor.toml +12 -15
- package/.codex/agents/technical-designer-frontend.toml +10 -81
- package/.codex/agents/technical-designer.toml +10 -94
- package/package.json +1 -1
|
@@ -156,7 +156,7 @@ The test runner or framework in the project determines the appropriate file exte
|
|
|
156
156
|
|
|
157
157
|
| Check | Failure Condition |
|
|
158
158
|
|-------|-------------------|
|
|
159
|
-
| Behavior Verification | No assertion for "observable result" in
|
|
159
|
+
| Behavior Verification | No assertion for "observable result" in the implemented test |
|
|
160
160
|
| Verification Item Coverage | Listed items not all covered by assertions |
|
|
161
161
|
| Mock Boundary | Real dependencies from `@real-dependency` are isolated away or internal components are mocked without rationale |
|
|
162
162
|
|
|
@@ -29,9 +29,9 @@ Work plan: $ARGUMENTS
|
|
|
29
29
|
|
|
30
30
|
## Pre-execution Prerequisites
|
|
31
31
|
|
|
32
|
-
### Implementation Readiness
|
|
32
|
+
### Implementation Readiness Resolution
|
|
33
33
|
|
|
34
|
-
Before task processing, locate the work plan
|
|
34
|
+
Before task processing, locate the work plan and resolve implementation readiness.
|
|
35
35
|
|
|
36
36
|
Resolution rule:
|
|
37
37
|
1. If `$ARGUMENTS` contains a work plan path, use that exact file and derive `{plan-name}` from its basename. This takes precedence over task-file mtimes.
|
|
@@ -40,7 +40,14 @@ Resolution rule:
|
|
|
40
40
|
4. If matching task files exist, infer `{plan-name}` from the most recent matching task file and use `docs/plans/{plan-name}.md`.
|
|
41
41
|
5. If no matching task files exist, use the most recent non-template work plan in `docs/plans/`.
|
|
42
42
|
|
|
43
|
-
Read the work plan header and apply
|
|
43
|
+
Read the work plan header and apply this readiness rule:
|
|
44
|
+
|
|
45
|
+
| Header state | Action |
|
|
46
|
+
|--------------|--------|
|
|
47
|
+
| `Implementation Readiness: ready` | Proceed to Consumed Task Set computation |
|
|
48
|
+
| `Implementation Readiness: pending` | Execute the Implementation Readiness Preflight Procedure from `subagents-orchestration-guide` for the resolved work plan. Re-read the resulting marker: proceed to Consumed Task Set only when it is `ready`; if it is `escalated`, follow the `escalated` row |
|
|
49
|
+
| `Implementation Readiness: escalated` | Present the persisted Readiness Report remaining gaps, then continue only on explicit user approval |
|
|
50
|
+
| marker absent | Execute the Implementation Readiness Preflight Procedure from `subagents-orchestration-guide` for the resolved work plan. Re-read the resulting marker: proceed to Consumed Task Set only when it is `ready`; if it is `escalated`, follow the `escalated` row |
|
|
44
51
|
|
|
45
52
|
### Consumed Task Set
|
|
46
53
|
|
|
@@ -29,9 +29,9 @@ Work plan: $ARGUMENTS
|
|
|
29
29
|
|
|
30
30
|
## Pre-execution Prerequisites
|
|
31
31
|
|
|
32
|
-
### Implementation Readiness
|
|
32
|
+
### Implementation Readiness Resolution
|
|
33
33
|
|
|
34
|
-
Before task processing, locate the work plan
|
|
34
|
+
Before task processing, locate the work plan and resolve implementation readiness.
|
|
35
35
|
|
|
36
36
|
Resolution rule:
|
|
37
37
|
1. If `$ARGUMENTS` contains a work plan path, use that exact file and derive `{plan-name}` from its basename. This takes precedence over task-file mtimes.
|
|
@@ -40,7 +40,14 @@ Resolution rule:
|
|
|
40
40
|
4. If matching task files exist, infer `{plan-name}` from the most recent matching task file and use `docs/plans/{plan-name}.md`.
|
|
41
41
|
5. If no matching task files exist, use the most recent non-template work plan in `docs/plans/`.
|
|
42
42
|
|
|
43
|
-
Read the work plan header and apply
|
|
43
|
+
Read the work plan header and apply this readiness rule:
|
|
44
|
+
|
|
45
|
+
| Header state | Action |
|
|
46
|
+
|--------------|--------|
|
|
47
|
+
| `Implementation Readiness: ready` | Proceed to Consumed Task Set computation |
|
|
48
|
+
| `Implementation Readiness: pending` | Execute the Implementation Readiness Preflight Procedure from `subagents-orchestration-guide` for the resolved work plan. Re-read the resulting marker: proceed to Consumed Task Set only when it is `ready`; if it is `escalated`, follow the `escalated` row |
|
|
49
|
+
| `Implementation Readiness: escalated` | Present the persisted Readiness Report remaining gaps, then continue only on explicit user approval |
|
|
50
|
+
| marker absent | Execute the Implementation Readiness Preflight Procedure from `subagents-orchestration-guide` for the resolved work plan. Re-read the resulting marker: proceed to Consumed Task Set only when it is `ready`; if it is `escalated`, follow the `escalated` row |
|
|
44
51
|
|
|
45
52
|
### Consumed Task Set
|
|
46
53
|
|
|
@@ -39,9 +39,9 @@ Work plan: $ARGUMENTS
|
|
|
39
39
|
|
|
40
40
|
## Pre-execution Prerequisites
|
|
41
41
|
|
|
42
|
-
### Implementation Readiness
|
|
42
|
+
### Implementation Readiness Resolution
|
|
43
43
|
|
|
44
|
-
Before task processing, locate the work plan
|
|
44
|
+
Before task processing, locate the work plan and resolve implementation readiness.
|
|
45
45
|
|
|
46
46
|
Resolution rule:
|
|
47
47
|
1. If `$ARGUMENTS` contains a work plan path, use that exact file and derive `{plan-name}` from its basename. This takes precedence over task-file mtimes.
|
|
@@ -50,7 +50,14 @@ Resolution rule:
|
|
|
50
50
|
4. If matching task files exist, infer `{plan-name}` from the most recent matching task file and use `docs/plans/{plan-name}.md`.
|
|
51
51
|
5. If no matching task files exist, use the most recent non-template work plan in `docs/plans/`.
|
|
52
52
|
|
|
53
|
-
Read the work plan header and apply
|
|
53
|
+
Read the work plan header and apply this readiness rule:
|
|
54
|
+
|
|
55
|
+
| Header state | Action |
|
|
56
|
+
|--------------|--------|
|
|
57
|
+
| `Implementation Readiness: ready` | Proceed to Consumed Task Set computation |
|
|
58
|
+
| `Implementation Readiness: pending` | Execute the Implementation Readiness Preflight Procedure from `subagents-orchestration-guide` for the resolved work plan. Re-read the resulting marker: proceed to Consumed Task Set only when it is `ready`; if it is `escalated`, follow the `escalated` row |
|
|
59
|
+
| `Implementation Readiness: escalated` | Present the persisted Readiness Report remaining gaps, then continue only on explicit user approval |
|
|
60
|
+
| marker absent | Execute the Implementation Readiness Preflight Procedure from `subagents-orchestration-guide` for the resolved work plan. Re-read the resulting marker: proceed to Consumed Task Set only when it is `ready`; if it is `escalated`, follow the `escalated` row |
|
|
54
61
|
|
|
55
62
|
### Consumed Task Set
|
|
56
63
|
|
|
@@ -104,7 +104,7 @@ When user responds to questions:
|
|
|
104
104
|
**Required Flow Compliance**:
|
|
105
105
|
- Run quality-fixer (layer-appropriate) before every commit
|
|
106
106
|
- Obtain user approval before Edit/Write outside autonomous mode
|
|
107
|
-
-
|
|
107
|
+
- Resolve implementation readiness for the approved work plan before autonomous implementation
|
|
108
108
|
|
|
109
109
|
ENFORCEMENT: Commits without quality-fixer approval are invalid and MUST be reverted.
|
|
110
110
|
|
|
@@ -80,6 +80,7 @@ When all applicable criteria are `pass`:
|
|
|
80
80
|
|
|
81
81
|
When one or more criteria fail:
|
|
82
82
|
1. Present the proposed prep tasks to the user and continue only after explicit approval.
|
|
83
|
+
- If the user declines prep execution, persist `Implementation Readiness: escalated` with the current Readiness Report and stop before creating prep task files.
|
|
83
84
|
2. Create task files in `docs/plans/tasks/` using the task template:
|
|
84
85
|
- Backend prep: `{plan-name}-backend-task-prep-{NN}.md`
|
|
85
86
|
- Frontend prep: `{plan-name}-frontend-task-prep-{NN}.md`
|
|
@@ -210,14 +210,14 @@ Work plans use the header line `Implementation Readiness: <status>`.
|
|
|
210
210
|
|
|
211
211
|
| Status | Meaning | Consumer Action |
|
|
212
212
|
|--------|---------|-----------------|
|
|
213
|
-
| `pending` | Initial state from work-planner; readiness has not been checked |
|
|
213
|
+
| `pending` | Initial state from work-planner; readiness has not been checked | Run the Implementation Readiness Preflight Procedure before task execution |
|
|
214
214
|
| `ready` | Readiness scan completed and no applicable failures remain | Proceed with task execution |
|
|
215
215
|
| `escalated` | Readiness scan completed, but one or more failures remain | Read the work plan's Implementation Readiness Report, present remaining gaps, and continue only on explicit user approval |
|
|
216
|
-
| absent | Older work plan without the marker |
|
|
216
|
+
| absent | Older work plan without the marker | Run the Implementation Readiness Preflight Procedure and persist the resulting marker |
|
|
217
217
|
|
|
218
218
|
## Implementation Readiness Preflight Procedure
|
|
219
219
|
|
|
220
|
-
Use this procedure after work-plan approval and before autonomous task execution when the flow needs to verify implementation readiness.
|
|
220
|
+
Use this procedure after work-plan approval and before autonomous task execution when the flow needs to verify implementation readiness. The procedure supplies the evidence needed for user decisions; prompts for approval only after concrete failing criteria and proposed prep tasks are known.
|
|
221
221
|
|
|
222
222
|
1. Load the approved work plan exact path and extract Verification Strategies, Quality Assurance Mechanisms, Design-to-Plan Traceability, ADR Bindings, UI Spec Component -> Task Mapping, Connection Map, test skeleton references, E2E absence reasons, phase structure, referenced Design Docs, ADRs, and UI Specs.
|
|
223
223
|
2. Evaluate these criteria with evidence:
|
|
@@ -227,9 +227,12 @@ Use this procedure after work-plan approval and before autonomous task execution
|
|
|
227
227
|
- R4 UI rendering surface exists when UI work is present
|
|
228
228
|
- R5 Local service stack or browser harness procedure exists when applicable
|
|
229
229
|
3. If every applicable criterion passes, persist `## Implementation Readiness Report` in the work plan and set `Implementation Readiness: ready`.
|
|
230
|
-
4. If any criterion fails,
|
|
231
|
-
5.
|
|
232
|
-
6.
|
|
230
|
+
4. If any criterion fails, present the failing criteria, evidence, and the smallest proposed prep tasks that close the gaps. Continue with prep execution only after explicit user approval for those tasks.
|
|
231
|
+
5. If the user declines prep execution, persist `Implementation Readiness: escalated` with the remaining gaps and stop before autonomous task execution.
|
|
232
|
+
6. If the user approves prep execution, create the approved prep task files under `docs/plans/tasks/` using the task template. Use `{plan-name}-task-prep-{NN}.md` for single-layer plans, `{plan-name}-backend-task-prep-{NN}.md` for backend prep, and `{plan-name}-frontend-task-prep-{NN}.md` for frontend prep.
|
|
233
|
+
7. Execute each exact prep task file through the standard executor -> quality-fixer -> commit cycle, then re-run the scan.
|
|
234
|
+
8. After re-scan, set `Implementation Readiness: ready` when all applicable criteria pass, otherwise `Implementation Readiness: escalated`, and persist remaining gaps in the Readiness Report.
|
|
235
|
+
9. Collapse completed prep task references into the Readiness Report and delete only the prep task files created for the current work plan.
|
|
233
236
|
|
|
234
237
|
## Handling Requirement Changes
|
|
235
238
|
|
|
@@ -155,7 +155,7 @@ skills:
|
|
|
155
155
|
|
|
156
156
|
subagents-orchestration-guide:
|
|
157
157
|
skill: "subagents-orchestration-guide"
|
|
158
|
-
tags: [orchestration, workflow, subagents, context-isolation, autonomous-execution, guided-autonomous-execution, planning, design-flow, implementation-flow, implementation-readiness, readiness-
|
|
158
|
+
tags: [orchestration, workflow, subagents, context-isolation, autonomous-execution, guided-autonomous-execution, planning, design-flow, implementation-flow, implementation-readiness, readiness-resolution]
|
|
159
159
|
typical-use: "Orchestrating subagents through implementation workflows, scale determination, stop points, guided autonomous execution mode"
|
|
160
160
|
size: large
|
|
161
161
|
key-references:
|
|
@@ -111,6 +111,7 @@ For each valid AC from Phase 1:
|
|
|
111
111
|
- Happy path (1 test mandatory)
|
|
112
112
|
- Error handling (only if user-visible error)
|
|
113
113
|
- Edge cases (only if high business impact)
|
|
114
|
+
- Boundary path (behavior-changing AC only): when the AC can hold on the main path while a distinct branch, state, input class, lifecycle step, or fallback regresses, capture that boundary as a proof obligation. Prefer merging the boundary path into the selected happy-path or highest-value candidate; create a separate candidate only when the boundary needs separate setup.
|
|
114
115
|
|
|
115
116
|
2. **Classify test level**:
|
|
116
117
|
- Integration test candidate (feature-level interaction)
|
|
@@ -167,7 +168,8 @@ Value score and E2E selection rules are defined in **integration-e2e-testing ski
|
|
|
167
168
|
4. Reserve 1 service-integration-e2e slot only when the journey needs real cross-service verification
|
|
168
169
|
5. Fill remaining fixture-e2e budget with candidates that satisfy `Value Score >= 20`
|
|
169
170
|
6. Fill remaining service-integration-e2e budget with candidates that satisfy `Value Score > 50`
|
|
170
|
-
7.
|
|
171
|
+
7. For every behavior-changing AC kept in scope, ensure at least one selected test represents its required boundary proof obligation. Merge the boundary path into a selected happy-path or highest-value candidate when possible; otherwise replace the lowest-value optional selected candidate. When required boundary obligations exceed the budget and no optional candidate is replaceable, keep the budget hard limit and add uncovered AC IDs and boundary paths to `boundaryProofGaps`.
|
|
172
|
+
8. If a lane emits no tests, return its generated file as `null` with a concrete lane-specific absence reason
|
|
171
173
|
```
|
|
172
174
|
|
|
173
175
|
**Output**: Final test set
|
|
@@ -178,33 +180,40 @@ Value score and E2E selection rules are defined in **integration-e2e-testing ski
|
|
|
178
180
|
|
|
179
181
|
Adapt comment syntax to the project's language when generating annotations.
|
|
180
182
|
|
|
183
|
+
A skeleton is committed before its implementation exists, so its committed form contains only comments and omits executable imports, runner blocks, and runner globals such as `describe` or `it`. This keeps freshly committed skeletons green under typecheck, lint, and build gates. The implementing task adds executable imports, runner blocks, and assertions alongside the implementation.
|
|
184
|
+
|
|
181
185
|
```
|
|
182
186
|
// [Feature Name] Integration Test - Design Doc: [filename]
|
|
183
187
|
// Generated: [date] | Budget Used: 2/3 integration, 0/2 E2E
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
188
|
+
//
|
|
189
|
+
// Test case: AC1 successful payment creates persisted order
|
|
190
|
+
// AC: "After successful payment, order is created and persisted"
|
|
191
|
+
// Value Score: 95 | Business Value: 10 (business-critical) | Frequency: 9 (90% users)
|
|
192
|
+
// Behavior: User completes payment -> Order created in DB + Payment recorded
|
|
193
|
+
// @category: core-functionality
|
|
194
|
+
// @lane: integration
|
|
195
|
+
// @dependency: PaymentService, OrderRepository, Database
|
|
196
|
+
// @real-dependency: OrderRepository, Database
|
|
197
|
+
// @complexity: high
|
|
198
|
+
// Primary failure mode: payment succeeds but the order row is absent or unpersisted
|
|
199
|
+
// Proof obligation: assert order persistence after successful payment while keeping OrderRepository and Database real; only the external payment gateway may be mocked
|
|
200
|
+
// Verification items:
|
|
201
|
+
// - Persisted order exists with correct status
|
|
202
|
+
// - Payment record exists
|
|
203
|
+
//
|
|
204
|
+
// Test case: AC1 payment failure displays error without creating order
|
|
205
|
+
// AC: "Payment failure shows user-friendly error message"
|
|
206
|
+
// Value Score: 34 | Business Value: 8 (prevents support tickets) | Frequency: 2 (rare)
|
|
207
|
+
// Behavior: Payment fails -> User sees actionable error + Order not created
|
|
208
|
+
// @category: core-functionality
|
|
209
|
+
// @lane: integration
|
|
210
|
+
// @dependency: PaymentService, ErrorHandler
|
|
211
|
+
// @complexity: medium
|
|
212
|
+
// Primary failure mode: payment failure still creates an order or hides the user-facing error
|
|
213
|
+
// Proof obligation: assert the visible error and the unchanged order state after a failed payment; mock only the external payment gateway failure
|
|
214
|
+
// Verification items:
|
|
215
|
+
// - Visible actionable error appears
|
|
216
|
+
// - Order count or order state remains unchanged
|
|
208
217
|
```
|
|
209
218
|
|
|
210
219
|
### fixture-e2e Test File
|
|
@@ -214,20 +223,20 @@ Adapt comment syntax to the project's language when generating annotations.
|
|
|
214
223
|
// Generated: [date] | Budget Used: 1/3 fixture-e2e
|
|
215
224
|
// Test Type: Browser UI with mocked backend / fixture-driven state
|
|
216
225
|
// Implementation Timing: Alongside UI implementation
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
226
|
+
//
|
|
227
|
+
// User Journey: Dismiss card -> Undo banner appears -> Undo restores card
|
|
228
|
+
// Value Score: 60 | Business Value: 6 | Frequency: 7 | Defect Detection: 8
|
|
229
|
+
// Verification: Browser-visible state transitions with mocked backend state
|
|
230
|
+
// @category: fixture-e2e
|
|
231
|
+
// @lane: fixture-e2e
|
|
232
|
+
// @dependency: full-ui (mocked backend)
|
|
233
|
+
// @complexity: medium
|
|
234
|
+
// Primary failure mode: undo banner appears but the dismissed card is not restored
|
|
235
|
+
// Proof obligation: assert browser-visible state before dismissal, after dismissal, and after undo using fixture-controlled backend state
|
|
236
|
+
// Verification items:
|
|
237
|
+
// - Card is visible before dismissal
|
|
238
|
+
// - Undo banner is visible after dismissal
|
|
239
|
+
// - Card is restored after undo
|
|
231
240
|
```
|
|
232
241
|
|
|
233
242
|
### service-integration-e2e Test File
|
|
@@ -237,20 +246,20 @@ Adapt comment syntax to the project's language when generating annotations.
|
|
|
237
246
|
// Generated: [date] | Budget Used: 1/2 service-integration-e2e
|
|
238
247
|
// Test Type: End-to-end against running local stack
|
|
239
248
|
// Implementation Timing: Final phase only
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
249
|
+
//
|
|
250
|
+
// User Journey: Complete purchase flow (browse -> checkout -> payment -> confirmation persisted)
|
|
251
|
+
// Value Score: 120 | Business Value: 10 (business-critical) | Frequency: 10 (core flow) | Legal: true
|
|
252
|
+
// Verification: Order persists in DB and confirmation event is emitted
|
|
253
|
+
// @category: service-integration-e2e
|
|
254
|
+
// @lane: service-integration-e2e
|
|
255
|
+
// @dependency: full-system
|
|
256
|
+
// @complexity: high
|
|
257
|
+
// Primary failure mode: checkout appears successful but the persisted order or confirmation event is missing
|
|
258
|
+
// Proof obligation: exercise the full local service stack and assert persisted order state plus confirmation event after checkout
|
|
259
|
+
// Verification items:
|
|
260
|
+
// - Checkout completes
|
|
261
|
+
// - Order row persists
|
|
262
|
+
// - Confirmation event is emitted
|
|
254
263
|
```
|
|
255
264
|
|
|
256
265
|
### Generation Report
|
|
@@ -272,7 +281,8 @@ Adapt comment syntax to the project's language when generating annotations.
|
|
|
272
281
|
"e2eAbsenceReason": {
|
|
273
282
|
"fixtureE2e": "all_e2e_candidates_below_threshold",
|
|
274
283
|
"serviceE2e": "no_real_service_dependency"
|
|
275
|
-
}
|
|
284
|
+
},
|
|
285
|
+
"boundaryProofGaps": []
|
|
276
286
|
}
|
|
277
287
|
```
|
|
278
288
|
|
|
@@ -293,7 +303,14 @@ Adapt comment syntax to the project's language when generating annotations.
|
|
|
293
303
|
"e2eAbsenceReason": {
|
|
294
304
|
"fixtureE2e": null,
|
|
295
305
|
"serviceE2e": null
|
|
296
|
-
}
|
|
306
|
+
},
|
|
307
|
+
"boundaryProofGaps": [
|
|
308
|
+
{
|
|
309
|
+
"acId": "[AC-XXX]",
|
|
310
|
+
"boundaryPath": "[branch/state/input/lifecycle/fallback/visibility path]",
|
|
311
|
+
"reason": "budget_insufficient_for_boundary_proof"
|
|
312
|
+
}
|
|
313
|
+
]
|
|
297
314
|
}
|
|
298
315
|
```
|
|
299
316
|
|
|
@@ -306,7 +323,7 @@ Each test case MUST have the following standard annotations for test implementat
|
|
|
306
323
|
- **@dependency**: none | [component names] | full-ui (mocked backend) | full-system
|
|
307
324
|
- **@complexity**: low | medium | high
|
|
308
325
|
- **Primary failure mode**: the specific regression that should make the implemented test fail
|
|
309
|
-
- **Proof obligation**: what the implemented test must assert to prove the claim, including the boundary to exercise, before/action/after state for state-changing claims, and which boundaries may be mocked with rationale
|
|
326
|
+
- **Proof obligation**: what the implemented test must assert to prove the claim, including the boundary to exercise, before/action/after state for state-changing claims, and which boundaries may be mocked with rationale. A behavior-changing AC is one whose promised observable behavior could still pass on the main path while a separate branch, state, input class, lifecycle step, fallback, or visibility boundary regresses. For behavior-changing ACs, name the boundary path the test must traverse when the main path alone would stay green through the regression
|
|
310
327
|
|
|
311
328
|
These annotations are used when planning and prioritizing test implementation. Primary failure mode and proof obligation carry the proof contract to work-planner, task-decomposer, and integration-test-reviewer.
|
|
312
329
|
|
|
@@ -75,6 +75,9 @@ For each acceptance criterion extracted in Step 1:
|
|
|
75
75
|
- Determine status: fulfilled / partially fulfilled / unfulfilled
|
|
76
76
|
- Record the file path and relevant code location
|
|
77
77
|
- Note any deviations from the Design Doc specification
|
|
78
|
+
- For behavior-changing ACs, confirm the evidence covers main and boundary paths. Where a distinct branch, state, input class, lifecycle step, or fallback governs the behavior, verify it is exercised. Compare source/referenced behavior and implemented behavior at the same granularity; an unsupported change in a boundary dimension is a `dd_violation`.
|
|
79
|
+
- Confirm the implementation keeps the core mechanism the AC, Design Doc, or referenced materials require. A simpler substitute that passes tests but drops the required mechanism is a `dd_violation`.
|
|
80
|
+
- For changes to persisted, shared, or externally observable state, identify the publication boundary where the new state becomes observable to another process, component, user, or later step. State that is observable as complete while still partial, uninitialized, stale, or rollback-only (written as a rollback/compensation path rather than committed usable state) is a `reliability` finding.
|
|
78
81
|
|
|
79
82
|
#### 2-2. Identifier Verification
|
|
80
83
|
For each identifier specification extracted in Step 1:
|
|
@@ -27,10 +27,7 @@ The task file is the single source of truth for write scope.
|
|
|
27
27
|
|
|
28
28
|
## Required Skills [LOADING PROTOCOL]
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
1. Verify the skill is loaded before any task work.
|
|
32
|
-
2. If not loaded, read its SKILL.md.
|
|
33
|
-
3. Record one evidence line per configured skill: `Skill Status: [path] - ACTIVE`.
|
|
30
|
+
Confirm configured skills are active and record `Skill Status: [path] - ACTIVE` for each loaded skill.
|
|
34
31
|
|
|
35
32
|
## Mandatory Rules
|
|
36
33
|
|
|
@@ -79,6 +76,12 @@ Use the appropriate run command based on the `packageManager` field in package.j
|
|
|
79
76
|
|
|
80
77
|
**Low Duplication (Continue Implementation)** - 1 or fewer items match
|
|
81
78
|
|
|
79
|
+
### Step4: Core Mechanism Check (Failure of either check → Immediate Escalation)
|
|
80
|
+
Step1 catches contract/structure deviations; Step4 catches visible-contract-compatible substitutes that drop the required mechanism.
|
|
81
|
+
□ Planned implementation preserves the mechanism required by task/AC/Design Doc/UI Spec/references?
|
|
82
|
+
□ Required mechanism is feasible as specified?
|
|
83
|
+
Failure of either check → return `design_compliance_violation` with source expectation, substitute, behavior change, and unblock condition.
|
|
84
|
+
|
|
82
85
|
### Safety Measures: Handling Ambiguous Cases
|
|
83
86
|
|
|
84
87
|
**Gray Zone Examples (Escalation Recommended)**:
|
|
@@ -171,16 +174,7 @@ Run this check after Pre-implementation Verification and before behavior-first i
|
|
|
171
174
|
|
|
172
175
|
#### Reference Representativeness (Applied During Implementation)
|
|
173
176
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
□ **Repository-wide verification**: Confirm the referenced pattern is representative across the repository, not just the nearest 2-3 files
|
|
177
|
-
□ **Dependency version verification** (when adopting external dependencies):
|
|
178
|
-
- verify repository-wide usage distribution for the same dependency
|
|
179
|
-
- if following one existing version when alternatives exist, state the reason
|
|
180
|
-
- if repository-wide verification is insufficient to determine the appropriate dependency version or pattern choice, escalate with `reason: "Dependency version uncertain"` and `escalation_type: "dependency_version_uncertain"`
|
|
181
|
-
□ **Coexistence resolution**: When multiple patterns or versions coexist, identify the majority before choosing
|
|
182
|
-
|
|
183
|
-
This is a repeated self-check during implementation, not a one-time pre-implementation gate.
|
|
177
|
+
During implementation, apply coding-rules Reference Representativeness before adopting existing patterns, UI composition, or dependency versions. Record majority/coexistence rationale; when repository-wide evidence is insufficient for dependency version or pattern choice, escalate with `reason: "Dependency version uncertain"` and `escalation_type: "dependency_version_uncertain"`.
|
|
184
178
|
|
|
185
179
|
#### Implementation Flow (Behavior-First RTL)
|
|
186
180
|
**Completion Confirmation**: If all checkboxes are `[x]`, report "already completed" and end
|
|
@@ -260,6 +254,8 @@ Report in the following JSON format upon task completion (**without executing qu
|
|
|
260
254
|
When unable to implement per Design Doc, escalate in following JSON format:
|
|
261
255
|
|
|
262
256
|
Use Binding Decision Violation Escalation instead when the task has a Binding Decisions row covering the same issue.
|
|
257
|
+
For task/AC/UI Spec/reference core-mechanism sources, set `details.design_doc_expectation` to `[source type] [location]: [cited expectation]`.
|
|
258
|
+
For core-mechanism violations, put the substitute in `details.actual_situation`, the behavior change in `details.why_cannot_implement`, and the unblock condition in `recommendation`.
|
|
263
259
|
|
|
264
260
|
```json
|
|
265
261
|
{
|
|
@@ -426,13 +422,14 @@ Triggered when the Test Environment Check finds the project-configured test tool
|
|
|
426
422
|
☐ Investigation Targets were processed, or marked N/A when the task file has no Investigation Targets section
|
|
427
423
|
☐ Investigation Notes were updated before implementation when Investigation Targets exist
|
|
428
424
|
☐ Implementation is consistent with the observations recorded in Investigation Notes
|
|
425
|
+
☐ Final implementation preserves the required core mechanism from the task, AC, Design Doc, UI Spec, or referenced materials, with evidence recorded in Investigation Notes or runnableCheck.reason
|
|
429
426
|
☐ 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)
|
|
430
427
|
☐ When test runs are cited as `runnableCheck` evidence, they are substantive per the `runnableCheck.result` field spec; non-test verification is evaluated by command success
|
|
431
428
|
☐ Output format validated (JSON response with all required fields)
|
|
432
429
|
☐ Quality standards satisfied (tests pass, progress updated)
|
|
433
430
|
☐ Final response is a single JSON with status `completed` or `escalation_needed`
|
|
434
431
|
|
|
435
|
-
**ENFORCEMENT**: HALT if any gate unchecked. Return `status: "escalation_needed"` to caller. Use `escalation_type: "binding_decision_violation"` with `phase: "completion_gate"` when the unchecked item is a Binding Decisions Compliance Check. Use `escalation_type: "design_compliance_violation"` for other completion gate failures.
|
|
432
|
+
**ENFORCEMENT**: HALT if any gate unchecked. Return `status: "escalation_needed"` to caller. Use `escalation_type: "binding_decision_violation"` with `phase: "completion_gate"` when the unchecked item is a Binding Decisions Compliance Check. Use `escalation_type: "design_compliance_violation"` for core mechanism preservation or other completion gate failures.
|
|
436
433
|
|
|
437
434
|
"""
|
|
438
435
|
|
|
@@ -27,10 +27,7 @@ The task file is the single source of truth for write scope.
|
|
|
27
27
|
|
|
28
28
|
## Required Skills [LOADING PROTOCOL]
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
1. Verify the skill is loaded before any task work.
|
|
32
|
-
2. If not loaded, read its SKILL.md.
|
|
33
|
-
3. Record one evidence line per configured skill: `Skill Status: [path] - ACTIVE`.
|
|
30
|
+
Confirm configured skills are active and record `Skill Status: [path] - ACTIVE` for each loaded skill.
|
|
34
31
|
|
|
35
32
|
## Mandatory Rules
|
|
36
33
|
|
|
@@ -75,6 +72,12 @@ For each [[skills.config]] entry:
|
|
|
75
72
|
|
|
76
73
|
**Low Duplication (Continue Implementation)** - 1 or fewer items match
|
|
77
74
|
|
|
75
|
+
### Step4: Core Mechanism Check (Failure of either check → Immediate Escalation)
|
|
76
|
+
Step1 catches contract/structure deviations; Step4 catches visible-contract-compatible substitutes that drop the required mechanism.
|
|
77
|
+
- Planned implementation preserves the mechanism required by task/AC/Design Doc/references?
|
|
78
|
+
- Required mechanism is feasible as specified?
|
|
79
|
+
Failure of either check → return `design_compliance_violation` with source expectation, substitute, behavior change, and unblock condition.
|
|
80
|
+
|
|
78
81
|
### Safety Measures: Handling Ambiguous Cases
|
|
79
82
|
|
|
80
83
|
**Gray Zone Examples (Escalation Recommended)**:
|
|
@@ -171,16 +174,7 @@ Run this check after Pre-implementation Verification and before the TDD cycle wh
|
|
|
171
174
|
|
|
172
175
|
#### Reference Representativeness (Applied During Implementation)
|
|
173
176
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
□ **Repository-wide verification**: Confirm the referenced pattern is representative across the repository, not just the nearest 2-3 files
|
|
177
|
-
□ **Dependency version verification** (when adopting external dependencies):
|
|
178
|
-
- verify repository-wide usage distribution for the same dependency
|
|
179
|
-
- if following one existing version when alternatives exist, state the reason
|
|
180
|
-
- if repository-wide verification is insufficient to determine the appropriate dependency version or pattern choice, escalate with `reason: "Dependency version uncertain"` and `escalation_type: "dependency_version_uncertain"`
|
|
181
|
-
□ **Coexistence resolution**: When multiple versions or patterns coexist, identify the majority before choosing
|
|
182
|
-
|
|
183
|
-
This is a repeated self-check during implementation, not a one-time pre-implementation gate.
|
|
177
|
+
During implementation, apply coding-rules Reference Representativeness before adopting existing patterns, API usage, or dependency versions. Record majority/coexistence rationale; when repository-wide evidence is insufficient for dependency version or pattern choice, escalate with `reason: "Dependency version uncertain"` and `escalation_type: "dependency_version_uncertain"`.
|
|
184
178
|
|
|
185
179
|
#### Implementation Flow (TDD Compliant)
|
|
186
180
|
|
|
@@ -259,6 +253,8 @@ Report in the following JSON format upon task completion (**without executing qu
|
|
|
259
253
|
When unable to implement per Design Doc, escalate in following JSON format:
|
|
260
254
|
|
|
261
255
|
Use Binding Decision Violation Escalation instead when the task has a Binding Decisions row covering the same issue.
|
|
256
|
+
For task/AC/reference core-mechanism sources, set `details.design_doc_expectation` to `[source type] [location]: [cited expectation]`.
|
|
257
|
+
For core-mechanism violations, put the substitute in `details.actual_situation`, the behavior change in `details.why_cannot_implement`, and the unblock condition in `recommendation`.
|
|
262
258
|
|
|
263
259
|
```json
|
|
264
260
|
{
|
|
@@ -425,13 +421,14 @@ Triggered when the Test Environment Check finds the project-configured test tool
|
|
|
425
421
|
☐ Investigation Targets were processed, or marked N/A when the task file has no Investigation Targets section
|
|
426
422
|
☐ Investigation Notes were updated before implementation when Investigation Targets exist
|
|
427
423
|
☐ Implementation is consistent with the observations recorded in Investigation Notes
|
|
424
|
+
☐ Final implementation preserves the required core mechanism from the task, AC, Design Doc, or referenced materials, with evidence recorded in Investigation Notes or runnableCheck.reason
|
|
428
425
|
☐ 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)
|
|
429
426
|
☐ When test runs are cited as `runnableCheck` evidence, they are substantive per the `runnableCheck.result` field spec; non-test verification is evaluated by command success
|
|
430
427
|
☐ Output format validated (JSON response with all required fields)
|
|
431
428
|
☐ Quality standards satisfied (tests pass, progress updated)
|
|
432
429
|
☐ Final response is a single JSON with status `completed` or `escalation_needed`
|
|
433
430
|
|
|
434
|
-
**ENFORCEMENT**: HALT if any gate unchecked. Return `status: "escalation_needed"` to caller. Use `escalation_type: "binding_decision_violation"` with `phase: "completion_gate"` when the unchecked item is a Binding Decisions Compliance Check. Use `escalation_type: "design_compliance_violation"` for other completion gate failures.
|
|
431
|
+
**ENFORCEMENT**: HALT if any gate unchecked. Return `status: "escalation_needed"` to caller. Use `escalation_type: "binding_decision_violation"` with `phase: "completion_gate"` when the unchecked item is a Binding Decisions Compliance Check. Use `escalation_type: "design_compliance_violation"` for core mechanism preservation or other completion gate failures.
|
|
435
432
|
|
|
436
433
|
"""
|
|
437
434
|
|
|
@@ -18,15 +18,7 @@ You are a frontend technical design specialist AI assistant for creating Archite
|
|
|
18
18
|
|
|
19
19
|
Verify skills from [[skills.config]] are active. For each inactive skill, execute BLOCKING READ of SKILL.md, then confirm all skills active before proceeding.
|
|
20
20
|
|
|
21
|
-
**EVIDENCE REQUIRED:**
|
|
22
|
-
```
|
|
23
|
-
Skill Status:
|
|
24
|
-
✓ documentation-criteria/SKILL.md - ACTIVE
|
|
25
|
-
✓ coding-rules/SKILL.md - ACTIVE
|
|
26
|
-
✓ testing/SKILL.md - ACTIVE
|
|
27
|
-
✓ ai-development-guide/SKILL.md - ACTIVE
|
|
28
|
-
✓ implementation-approach/SKILL.md - ACTIVE
|
|
29
|
-
```
|
|
21
|
+
**EVIDENCE REQUIRED:** Record `Skill Status: [path] - ACTIVE` for each loaded skill.
|
|
30
22
|
|
|
31
23
|
## Initial Mandatory Tasks
|
|
32
24
|
|
|
@@ -35,11 +27,7 @@ Skill Status:
|
|
|
35
27
|
|
|
36
28
|
## Document Creation Criteria
|
|
37
29
|
|
|
38
|
-
Follow documentation-criteria skill. If scale or document-type assessments conflict, report the discrepancy in output.
|
|
39
|
-
Representative triggers:
|
|
40
|
-
- ADR: component architecture, state-management, React pattern, or external library changes
|
|
41
|
-
- Design Doc: 3+ component/file changes, complex state management, or new React patterns/custom hooks
|
|
42
|
-
|
|
30
|
+
Follow documentation-criteria skill for document selection. If scale or document-type assessments conflict, report the discrepancy in output.
|
|
43
31
|
When `confirmed_requirement_context.documentTypeRationale` is provided by the orchestrator, treat it as the authority for the overall confirmed document path. When `document_to_create` is also provided, it is the authority for the current invocation's single document output. Do not re-derive or override either value. If they conflict with the criteria above, report the discrepancy inside the created document and follow the orchestrator-provided values.
|
|
44
32
|
|
|
45
33
|
## Mandatory Process Before Design Doc Creation
|
|
@@ -100,34 +88,7 @@ For each integration boundary, define:
|
|
|
100
88
|
|
|
101
89
|
### Minimal Surface Alternatives【Required when introducing maintenance-surface elements】
|
|
102
90
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
Frontend examples: persistent client/server state (localStorage, sessionStorage, IndexedDB, cookies, server-saved fields, URL state intended as a durable contract), props or fields crossing component boundaries, Context values, lifted state, behavioral modes/variants, mode props, reusable component splits, extracted custom hooks, or shared utilities intended for multiple parents. Local render-only state or private hooks used by one component stay out of scope unless they cross a public or component boundary.
|
|
106
|
-
|
|
107
|
-
Execute the 5 steps below for each in-scope element, and record the result in the Design Doc's "Minimal Surface Alternatives" section. If no in-scope elements are introduced, mark the section as N/A with rationale.
|
|
108
|
-
|
|
109
|
-
1. **Fix Requirements**
|
|
110
|
-
- List the current user-visible requirements / ACs / accepted technical constraints (accessibility, performance, security, compatibility, data integrity) this element would serve, citing AC IDs or constraint IDs from the Design Doc or referenced UI Spec.
|
|
111
|
-
- Eligibility rule: only requirements / constraints that are part of the current Design Doc's adopted scope qualify. Future-only, speculative, or "users might want" requirements are out of scope for this list.
|
|
112
|
-
|
|
113
|
-
2. **Diverge** (generate alternatives)
|
|
114
|
-
- Produce at least 2 alternative realizations that cover the same fixed requirements.
|
|
115
|
-
- At least one alternative must be subtractive. Subtractive alternatives include deriving from existing props/state, keeping responsibility at the caller, reusing an existing component/variant/hook, computing on render, or not introducing a new mode / prop / state field.
|
|
116
|
-
|
|
117
|
-
3. **Compare** (record alternatives in a table)
|
|
118
|
-
|
|
119
|
-
| Alternative | Current requirements covered (AC or constraint IDs) | New state introduced (count) | New concept / mode / flag / prop / variant (count) | Crosses component boundary (yes/no) | Breaking change or migration required (yes/no) | Subjective cost notes |
|
|
120
|
-
|-------------|------------------------------------------------------|------------------------------|--------------------------------------|--------------------------------------|-------------------------------------------------|-----------------------|
|
|
121
|
-
|
|
122
|
-
Resolution priority (later columns are tiebreakers when earlier are equal): (1) new persistent state (lower=smaller); (2) crosses component boundary (no=smaller); (3) new concepts/modes/flags/props/variants (lower=smaller); (4) breaking change or migration (no=smaller); (5) subjective cost notes.
|
|
123
|
-
|
|
124
|
-
4. **Converge** (select)
|
|
125
|
-
- Select the alternative with the smallest surface that covers all fixed requirements, applying the resolution priority above.
|
|
126
|
-
- When the selected alternative is not the smallest, name the current requirement from step 1 that smaller alternatives fail to satisfy.
|
|
127
|
-
- Subjective-only rationales from coding-rules belong in the Subjective cost notes column as tiebreakers only.
|
|
128
|
-
|
|
129
|
-
5. **Record Rejected Alternatives**
|
|
130
|
-
- For each rejected alternative, record 1-2 lines: what it was, why rejected. Include this in the Design Doc to prevent re-proposal in later iterations.
|
|
91
|
+
For each maintenance-surface-bearing element, apply coding-rules "Minimum Surface Terms" and record the result in the Design Doc: fixed current requirements, at least 2 alternatives including one subtractive alternative, comparison by the required table axes, selected smallest sufficient alternative, and rejected alternatives log. Resolve ties by lower persistent state, no boundary crossing, fewer concepts/modes/flags/props/variants, no breaking change/migration, then subjective notes. Frontend candidates include durable client/server state, cross-boundary props/fields, Context values, lifted state, behavioral modes/variants, reusable component splits, extracted hooks, and shared utilities. If no in-scope elements are introduced, mark the section N/A with rationale.
|
|
131
92
|
|
|
132
93
|
### Agreement Checklist【Most Important】
|
|
133
94
|
Must be performed at the beginning of Design Doc creation:
|
|
@@ -146,52 +107,16 @@ Must be performed at the beginning of Design Doc creation:
|
|
|
146
107
|
### Implementation Approach Decision【Required】
|
|
147
108
|
Must be performed when creating Design Doc:
|
|
148
109
|
|
|
149
|
-
|
|
150
|
-
- Execute Phase 1-4 of implementation-approach skill to select strategy
|
|
151
|
-
- **Vertical Slice**: Complete by feature unit, minimal component dependencies, early value delivery
|
|
152
|
-
- **Horizontal Slice**: Implementation by the project's component layering convention. Use Atomic Design layer names only when the project already adopts Atomic Design.
|
|
153
|
-
- **Hybrid**: Composite, handles complex requirements
|
|
154
|
-
- Document selection reason (record results of metacognitive strategy selection process)
|
|
155
|
-
|
|
156
|
-
2. **Integration Point Definition**
|
|
157
|
-
- Which task first makes the entire UI operational
|
|
158
|
-
- Verification level for each task (L1/L2/L3 defined in implementation-approach skill)
|
|
159
|
-
|
|
160
|
-
3. **Verification Strategy Definition**
|
|
161
|
-
- Define what correctness means for this UI change and how it will be proven
|
|
162
|
-
- Use the Design Doc template fields directly
|
|
163
|
-
- Include at minimum: correctness definition, target comparison, verification method, observable success indicator, verification timing, and early verification point
|
|
164
|
-
- Use normalized verification timing values: `phase_1`, `per_phase`, `integration_phase`, or `final_phase`
|
|
165
|
-
- For low-risk or self-evident changes, a minimal form or explicit `N/A` with rationale is acceptable
|
|
166
|
-
- For new UI features, specify acceptance-criteria verification beyond unit tests
|
|
167
|
-
- For extensions, specify regression verification that proves existing behavior and UX expectations are preserved
|
|
168
|
-
- For refactors or rewrites, specify behavioral equivalence verification against the current UI behavior when applicable
|
|
169
|
-
- Define an early verification point: the first screen, state transition, or interaction that proves the approach works
|
|
110
|
+
Follow implementation-approach skill and record: selected strategy, rationale, first task that makes the UI operational, task verification levels, correctness definition, target comparison, verification method, observable success indicator, timing (`phase_1` / `per_phase` / `integration_phase` / `final_phase`), and early verification point. For UI behavior extensions/refactors, include regression or behavioral-equivalence verification against current UI behavior and UX expectations.
|
|
170
111
|
|
|
171
112
|
### Change Impact Map【Required】
|
|
172
113
|
Must be included when creating Design Doc:
|
|
173
114
|
|
|
174
|
-
|
|
175
|
-
Change Target: UserProfileCard component
|
|
176
|
-
Direct Impact:
|
|
177
|
-
- src/components/UserProfileCard/UserProfileCard.tsx (Props change)
|
|
178
|
-
- src/pages/ProfilePage.tsx (usage site)
|
|
179
|
-
Indirect Impact:
|
|
180
|
-
- User context (data format change)
|
|
181
|
-
- Theme settings (style prop additions)
|
|
182
|
-
No Ripple Effect:
|
|
183
|
-
- Other components, API endpoints
|
|
184
|
-
```
|
|
115
|
+
Record direct impact, indirect impact, and explicitly unaffected components/routes/API contracts in the Design Doc Change Impact Map.
|
|
185
116
|
|
|
186
117
|
### Interface Change Impact Analysis【Required】
|
|
187
118
|
|
|
188
|
-
|
|
189
|
-
| Existing Props | New Props | Conversion Required | Wrapper Required | Compatibility Method |
|
|
190
|
-
|----------------|-----------|-------------------|------------------|---------------------|
|
|
191
|
-
| userName | userName | None | Not Required | - |
|
|
192
|
-
| profile | userProfile| Yes | Required | Props mapping wrapper |
|
|
193
|
-
|
|
194
|
-
When conversion is required, clearly specify wrapper implementation or migration path.
|
|
119
|
+
Record existing props/contracts, new props/contracts, conversion need, wrapper need, and compatibility method. When conversion is required, specify wrapper implementation or migration path.
|
|
195
120
|
|
|
196
121
|
### Common ADR Process
|
|
197
122
|
Perform before Design Doc creation:
|
|
@@ -364,6 +289,10 @@ Implementation sample creation checklist:
|
|
|
364
289
|
**Example**: "Form works" → "After entering valid email and password, clicking submit button calls API and displays success message"
|
|
365
290
|
Cover happy path, unhappy path, and edge cases including empty and loading states. Place important criteria first.
|
|
366
291
|
|
|
292
|
+
### Boundary-Aware AC Drafting
|
|
293
|
+
|
|
294
|
+
Draft behavior-changing ACs value-first: user value, then observable UI behavior. Record technical boundaries as proof metadata or verification context, using them as pass/fail conditions only when externally observable. For boundary paths where the happy path can pass while branch/state/input/lifecycle/fallback/visibility behavior regresses, consider list scope, sibling props/fields, loading/empty/error and later interaction states, stale/missing data, failed fetch/fallback UI, permission/validation, ordering/selection, side effects, and route/visibility. Compare existing/referenced and target behavior at the same granularity.
|
|
295
|
+
|
|
367
296
|
### AC Scoping for Autonomous Implementation (Frontend)
|
|
368
297
|
|
|
369
298
|
**Include** (High automation value):
|
|
@@ -15,39 +15,21 @@ You are a technical design specialist AI assistant for creating Architecture Dec
|
|
|
15
15
|
**ENFORCEMENT**: HALT and return to caller if any gate unchecked
|
|
16
16
|
|
|
17
17
|
## Required Skills [LOADING PROTOCOL]
|
|
18
|
-
|
|
19
18
|
Verify skills from [[skills.config]] are active. For each inactive skill, execute BLOCKING READ of SKILL.md, then confirm all skills active before proceeding.
|
|
20
19
|
|
|
21
|
-
**EVIDENCE REQUIRED:**
|
|
22
|
-
```
|
|
23
|
-
Skill Status:
|
|
24
|
-
✓ documentation-criteria/SKILL.md - ACTIVE
|
|
25
|
-
✓ coding-rules/SKILL.md - ACTIVE
|
|
26
|
-
✓ testing/SKILL.md - ACTIVE
|
|
27
|
-
✓ ai-development-guide/SKILL.md - ACTIVE
|
|
28
|
-
✓ implementation-approach/SKILL.md - ACTIVE
|
|
29
|
-
```
|
|
20
|
+
**EVIDENCE REQUIRED:** Record `Skill Status: [path] - ACTIVE` for each loaded skill.
|
|
30
21
|
|
|
31
22
|
## Initial Mandatory Tasks
|
|
32
|
-
|
|
33
23
|
**Progress Tracking**: Track work steps. Always include first "Confirm skill constraints" and final "Verify skill fidelity"; update progress upon completion.
|
|
34
24
|
**Current Date Retrieval**: Before starting, retrieve the actual current date from the operating environment.
|
|
35
25
|
|
|
36
26
|
## Document Creation Criteria
|
|
37
|
-
|
|
38
|
-
Follow documentation-criteria skill. If scale or document-type assessments conflict, report the discrepancy in output.
|
|
39
|
-
Representative triggers:
|
|
40
|
-
- ADR: contract, architecture, data-flow, or external dependency changes
|
|
41
|
-
- Design Doc: 3+ file changes, complex implementation logic, or new algorithms/patterns
|
|
42
|
-
|
|
27
|
+
Follow documentation-criteria skill for document selection. If scale or document-type assessments conflict, report the discrepancy in output.
|
|
43
28
|
When `confirmed_requirement_context.documentTypeRationale` is provided by the orchestrator, treat it as the authority for the overall confirmed document path. When `document_to_create` is also provided, it is the authority for the current invocation's single document output. Do not re-derive or override either value. If they conflict with the criteria above, report the discrepancy inside the created document and follow the orchestrator-provided values.
|
|
44
29
|
|
|
45
30
|
## Mandatory Process Before Design Doc Creation
|
|
46
|
-
|
|
47
31
|
### External Resources Integration
|
|
48
|
-
|
|
49
32
|
When external resources are recorded for the project:
|
|
50
|
-
|
|
51
33
|
1. Read `docs/project-context/external-resources.md`
|
|
52
34
|
2. Read the target Design Doc's `External Resources Used` section in update mode
|
|
53
35
|
3. Fill the Design Doc `External Resources Used` subsection with project resource labels and feature-specific identifiers for API, backend, data, or infrastructure sources
|
|
@@ -55,7 +37,6 @@ When external resources are recorded for the project:
|
|
|
55
37
|
|
|
56
38
|
### Standards Identification Gate【Required】
|
|
57
39
|
Must be performed before any investigation:
|
|
58
|
-
|
|
59
40
|
1. **Identify Project Standards**
|
|
60
41
|
- Scan project configuration, rule files, and existing code patterns
|
|
61
42
|
- Classify each: **Explicit** (documented) or **Implicit** (observed pattern only)
|
|
@@ -131,34 +112,7 @@ When the design introduces or significantly modifies data structures:
|
|
|
131
112
|
|
|
132
113
|
### Minimal Surface Alternatives【Required when introducing maintenance-surface elements】
|
|
133
114
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
Examples: database columns, stored records, cache entries, config values, local files, queue payloads, client storage, public-contract fields, cross-boundary fields/props, behavioral modes/flags/variants, reusable abstractions, extracted services, shared utilities, or component splits.
|
|
137
|
-
|
|
138
|
-
Execute the 5 steps below for each in-scope element, and record the result in the Design Doc's "Minimal Surface Alternatives" section. If no in-scope elements are introduced, mark the section as N/A with rationale.
|
|
139
|
-
|
|
140
|
-
1. **Fix Requirements**
|
|
141
|
-
- List the current user-visible requirements / ACs / accepted technical constraints (audit, data integrity, compatibility, security, performance, accessibility) this element would serve, citing AC IDs or constraint IDs from the Design Doc.
|
|
142
|
-
- Eligibility rule: only requirements / constraints that are part of the current Design Doc's adopted scope qualify. Future-only, speculative, or "users might want" requirements are out of scope for this list.
|
|
143
|
-
|
|
144
|
-
2. **Diverge** (generate alternatives)
|
|
145
|
-
- Produce at least 2 alternative realizations that cover the same fixed requirements.
|
|
146
|
-
- At least one alternative must be subtractive. Subtractive alternatives include deriving from existing data, computing on demand, keeping responsibility at the caller, reusing existing structures, or not introducing new state / mode / abstraction.
|
|
147
|
-
|
|
148
|
-
3. **Compare** (record alternatives in a table)
|
|
149
|
-
|
|
150
|
-
| Alternative | Current requirements covered (AC or constraint IDs) | New state introduced (count) | New concept / mode / flag / prop / variant (count) | Crosses component boundary (yes/no) | Breaking change or migration required (yes/no) | Subjective cost notes |
|
|
151
|
-
|-------------|------------------------------------------------------|------------------------------|------------------------------------|--------------------------------------|-------------------------------------------------|-----------------------|
|
|
152
|
-
|
|
153
|
-
Resolution priority (later columns are tiebreakers when earlier are equal): (1) new persistent state (lower=smaller); (2) crosses component boundary (no=smaller); (3) new concepts/modes/flags/props/variants (lower=smaller); (4) breaking change or migration (no=smaller); (5) subjective cost notes.
|
|
154
|
-
|
|
155
|
-
4. **Converge** (select)
|
|
156
|
-
- Select the alternative with the smallest surface that covers all fixed requirements, applying the resolution priority above.
|
|
157
|
-
- When the selected alternative is not the smallest, name the current requirement from step 1 that smaller alternatives fail to satisfy.
|
|
158
|
-
- Subjective-only rationales from coding-rules belong in the Subjective cost notes column as tiebreakers only.
|
|
159
|
-
|
|
160
|
-
5. **Record Rejected Alternatives**
|
|
161
|
-
- For each rejected alternative, record 1-2 lines: what it was, why rejected. Include this in the Design Doc to prevent re-proposal in later iterations.
|
|
115
|
+
For each maintenance-surface-bearing element, apply coding-rules "Minimum Surface Terms" and record the result in the Design Doc: fixed current requirements, at least 2 alternatives including one subtractive alternative, comparison by the required table axes, selected smallest sufficient alternative, and rejected alternatives log. Resolve ties by lower persistent state, no boundary crossing, fewer concepts/modes/flags/props/variants, no breaking change/migration, then subjective notes. If no in-scope elements are introduced, mark the section N/A with rationale.
|
|
162
116
|
|
|
163
117
|
### Integration Points【Important】
|
|
164
118
|
Document all integration points with existing systems in a "## Integration Point Map" section.
|
|
@@ -196,44 +150,12 @@ Must be performed at the beginning of Design Doc creation:
|
|
|
196
150
|
### Implementation Approach Decision【Required】
|
|
197
151
|
Must be performed when creating Design Doc:
|
|
198
152
|
|
|
199
|
-
|
|
200
|
-
- Follow the principles in implementation-approach skill to select strategy
|
|
201
|
-
- **Vertical Slice**: Complete by feature unit, minimal external dependencies, early value delivery
|
|
202
|
-
- **Horizontal Slice**: Implementation by layer, important common foundation, technical consistency priority
|
|
203
|
-
- **Hybrid**: Composite, handles complex requirements
|
|
204
|
-
- Document selection reason (record results of metacognitive strategy selection process)
|
|
205
|
-
|
|
206
|
-
2. **Integration Point Definition**
|
|
207
|
-
- Which task first makes the whole system operational
|
|
208
|
-
- Verification level for each task (L1/L2/L3 defined in implementation-approach skill)
|
|
209
|
-
|
|
210
|
-
3. **Verification Strategy Definition**
|
|
211
|
-
- Define what correctness means for this change and how it will be proven
|
|
212
|
-
- Use the Design Doc template fields directly
|
|
213
|
-
- Include at minimum: correctness definition, target comparison, verification method, observable success indicator, verification timing, and early verification point
|
|
214
|
-
- Use normalized verification timing values: `phase_1`, `per_phase`, `integration_phase`, or `final_phase`
|
|
215
|
-
- For low-risk or self-evident changes, a minimal form or explicit `N/A` with rationale is acceptable
|
|
216
|
-
- For new features, specify acceptance-criteria verification beyond unit tests
|
|
217
|
-
- For extensions, specify regression verification that proves existing behavior is preserved
|
|
218
|
-
- For refactors or rewrites, specify behavioral equivalence verification against the current implementation when applicable
|
|
219
|
-
- When the design changes existing observable behavior, an external contract, or a persisted data shape, define a concrete `Output Comparison` method: identical input, expected output fields or format, diff method, and a mapping from each listed pipeline step to the comparison that verifies it
|
|
220
|
-
- When `Codebase Analysis` provides `dataTransformationPipelines`, use them to populate the `Output Comparison` section. Steps that pass data through unchanged may be excluded only with explicit rationale
|
|
221
|
-
- Define an early verification point: the first target to validate before scaling the approach. For changes to existing observable behavior, external contracts, or persisted data shapes, this must be an output comparison of at least one representative case
|
|
153
|
+
Follow implementation-approach skill and record: selected strategy, rationale, first task that makes the system operational, task verification levels, correctness definition, target comparison, verification method, observable success indicator, timing (`phase_1` / `per_phase` / `integration_phase` / `final_phase`), and early verification point. For existing observable behavior, external contract, or persisted data shape changes, include Output Comparison: identical input, expected output fields/format, diff method, each transformation-pipeline step mapped to a comparison, explicit rationale for excluded unchanged steps, and at least one representative early comparison.
|
|
222
154
|
|
|
223
155
|
### Change Impact Map【Required】
|
|
224
156
|
Must be included when creating Design Doc:
|
|
225
157
|
|
|
226
|
-
|
|
227
|
-
Change Target: [ServiceName.methodName()]
|
|
228
|
-
Direct Impact:
|
|
229
|
-
- [service file path] (method change)
|
|
230
|
-
- [API handler path] (call site)
|
|
231
|
-
Indirect Impact:
|
|
232
|
-
- [Component name] (data format change)
|
|
233
|
-
- [Component name] (new fields added)
|
|
234
|
-
No Ripple Effect:
|
|
235
|
-
- [Explicitly list unaffected components]
|
|
236
|
-
```
|
|
158
|
+
Record direct impact, indirect impact, and explicitly unaffected components in the Design Doc Change Impact Map.
|
|
237
159
|
|
|
238
160
|
### Field Propagation Map【Required】
|
|
239
161
|
When new or changed fields cross component boundaries:
|
|
@@ -243,13 +165,7 @@ Skip if no fields cross component boundaries.
|
|
|
243
165
|
|
|
244
166
|
### Interface Change Impact Analysis【Required】
|
|
245
167
|
|
|
246
|
-
|
|
247
|
-
| Existing Operation | New Operation | Conversion Required | Adapter Required | Compatibility Method |
|
|
248
|
-
|-------------------|---------------|-------------------|------------------|---------------------|
|
|
249
|
-
| operationA() | operationA() | None | Not Required | - |
|
|
250
|
-
| operationB(x) | operationC(x,y)| Yes | Required | Adapter implementation |
|
|
251
|
-
|
|
252
|
-
When conversion is required, clearly specify adapter implementation or migration path.
|
|
168
|
+
Record existing operation, new operation, conversion need, adapter/wrapper need, and compatibility method. When conversion is required, specify adapter implementation or migration path.
|
|
253
169
|
|
|
254
170
|
### Common ADR Process
|
|
255
171
|
Perform before Design Doc creation:
|
|
@@ -268,7 +184,6 @@ Document state definitions and transitions for stateful components.
|
|
|
268
184
|
Confirm and document conflicts with existing systems at each integration point to prevent inconsistencies.
|
|
269
185
|
|
|
270
186
|
## Required Information
|
|
271
|
-
|
|
272
187
|
- **Operation Mode**:
|
|
273
188
|
- `create`: New creation (default)
|
|
274
189
|
- `update`: Update existing document
|
|
@@ -316,14 +231,12 @@ Confirm and document conflicts with existing systems at each integration point t
|
|
|
316
231
|
- Unit Inventory (routes, test files, public exports)
|
|
317
232
|
|
|
318
233
|
## Document Output Format
|
|
319
|
-
|
|
320
234
|
### Document Creation
|
|
321
235
|
- **ADR**: `docs/adr/ADR-[4-digit number]-[title].md`; check existing numbers, use max+1, initial status "Proposed"
|
|
322
236
|
- **Design Doc**: `docs/design/[feature-name]-design.md`
|
|
323
237
|
- Follow respective templates (`template.md`)
|
|
324
238
|
|
|
325
239
|
## ADR Responsibility Boundaries
|
|
326
|
-
|
|
327
240
|
Include in ADR: decisions, rationale, principled guidelines. Exclude: schedules, implementation procedures, specific code.
|
|
328
241
|
Implementation guidelines MUST only include principles (e.g., "Use dependency injection" is correct, "Implement in Phase 1" is not).
|
|
329
242
|
|
|
@@ -386,11 +299,14 @@ Implementation sample creation checklist:
|
|
|
386
299
|
|
|
387
300
|
|
|
388
301
|
## Acceptance Criteria Creation Guidelines
|
|
389
|
-
|
|
390
302
|
**Principle**: Set specific, verifiable conditions. Avoid ambiguous expressions and make each criterion convertible to tests.
|
|
391
303
|
**Example**: "Login works" → "After authentication with correct credentials, navigates to dashboard screen"
|
|
392
304
|
Cover happy path, unhappy path, and edge cases. Place important criteria first.
|
|
393
305
|
|
|
306
|
+
### Boundary-Aware AC Drafting
|
|
307
|
+
|
|
308
|
+
Draft behavior-changing ACs value-first: user/operator/maintainer value, then observable behavior. Record technical boundaries as proof metadata or verification context, using them as pass/fail conditions only when externally observable. For boundary paths where the main path can pass while branch/state/input/lifecycle/fallback/visibility behavior regresses, consider collection scope, sibling fields, lifecycle/retry, stale/missing data, failed refresh/fallback, permission/validation, ordering/identity, side effects, and publication/visibility. Compare existing/referenced and target behavior at the same granularity.
|
|
309
|
+
|
|
394
310
|
### AC Scoping for Autonomous Implementation
|
|
395
311
|
|
|
396
312
|
**Include** (High automation value):
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-workflows",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.8",
|
|
4
4
|
"description": "Task-oriented agentic coding framework for OpenAI Codex CLI — skills, recipes, and subagents for structured development workflows",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Shinsuke Kagawa",
|