codex-workflows 0.6.6 → 0.6.7
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/.codex/agents/acceptance-test-generator.toml +14 -4
- 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
|
@@ -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
|
|
@@ -272,7 +274,8 @@ Adapt comment syntax to the project's language when generating annotations.
|
|
|
272
274
|
"e2eAbsenceReason": {
|
|
273
275
|
"fixtureE2e": "all_e2e_candidates_below_threshold",
|
|
274
276
|
"serviceE2e": "no_real_service_dependency"
|
|
275
|
-
}
|
|
277
|
+
},
|
|
278
|
+
"boundaryProofGaps": []
|
|
276
279
|
}
|
|
277
280
|
```
|
|
278
281
|
|
|
@@ -293,7 +296,14 @@ Adapt comment syntax to the project's language when generating annotations.
|
|
|
293
296
|
"e2eAbsenceReason": {
|
|
294
297
|
"fixtureE2e": null,
|
|
295
298
|
"serviceE2e": null
|
|
296
|
-
}
|
|
299
|
+
},
|
|
300
|
+
"boundaryProofGaps": [
|
|
301
|
+
{
|
|
302
|
+
"acId": "[AC-XXX]",
|
|
303
|
+
"boundaryPath": "[branch/state/input/lifecycle/fallback/visibility path]",
|
|
304
|
+
"reason": "budget_insufficient_for_boundary_proof"
|
|
305
|
+
}
|
|
306
|
+
]
|
|
297
307
|
}
|
|
298
308
|
```
|
|
299
309
|
|
|
@@ -306,7 +316,7 @@ Each test case MUST have the following standard annotations for test implementat
|
|
|
306
316
|
- **@dependency**: none | [component names] | full-ui (mocked backend) | full-system
|
|
307
317
|
- **@complexity**: low | medium | high
|
|
308
318
|
- **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
|
|
319
|
+
- **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
320
|
|
|
311
321
|
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
322
|
|
|
@@ -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.7",
|
|
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",
|