codex-workflows 0.6.3 → 0.6.5
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/recipe-design/SKILL.md +92 -37
- package/.agents/skills/recipe-front-design/SKILL.md +99 -39
- package/.agents/skills/subagents-orchestration-guide/SKILL.md +1 -1
- package/.codex/agents/code-reviewer.toml +4 -0
- package/.codex/agents/codebase-analyzer.toml +5 -5
- package/.codex/agents/document-reviewer.toml +6 -2
- package/.codex/agents/integration-test-reviewer.toml +8 -0
- package/.codex/agents/quality-fixer-frontend.toml +28 -91
- package/.codex/agents/quality-fixer.toml +7 -0
- package/.codex/agents/task-executor-frontend.toml +49 -48
- package/.codex/agents/task-executor.toml +41 -44
- package/.codex/agents/technical-designer-frontend.toml +8 -3
- package/.codex/agents/technical-designer.toml +8 -3
- package/.codex/agents/ui-analyzer.toml +1 -1
- package/.codex/agents/ui-spec-designer.toml +5 -4
- package/package.json +1 -1
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: recipe-design
|
|
3
|
-
description: "Execute from
|
|
3
|
+
description: "Execute from codebase-scoped analysis to design document creation."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Required Skills [LOAD BEFORE EXECUTION]
|
|
7
7
|
|
|
8
8
|
1. [LOAD IF NOT ACTIVE] `documentation-criteria` — document creation rules and templates
|
|
9
9
|
2. [LOAD IF NOT ACTIVE] `implementation-approach` — implementation strategy
|
|
10
|
-
3. [LOAD IF NOT ACTIVE] `subagents-orchestration-guide` — agent coordination and workflow flows
|
|
11
10
|
|
|
12
11
|
**Spawn rule**: every `spawn_agent` call MUST pass `fork_turns="none"` or `fork_context=false` for context isolation.
|
|
13
12
|
|
|
@@ -15,37 +14,39 @@ description: "Execute from requirement analysis to design document creation."
|
|
|
15
14
|
|
|
16
15
|
## Orchestrator Definition
|
|
17
16
|
|
|
18
|
-
**Core Identity**: "I am not a worker. I am an orchestrator."
|
|
17
|
+
**Core Identity**: "I am not a worker. I am an orchestrator."
|
|
19
18
|
|
|
20
19
|
**Execution Protocol**:
|
|
21
|
-
1. **Spawn agents for
|
|
22
|
-
2. **
|
|
23
|
-
-
|
|
24
|
-
-
|
|
20
|
+
1. **Spawn agents for analysis and document work** -- your role is to invoke sub-agents, pass data between them, and report results. The Step 1 scope bootstrap is an orchestrator-local pass limited to locating seed files.
|
|
21
|
+
2. **Run the design flow below in order**:
|
|
22
|
+
- Execute: scope bootstrap -> codebase-analyzer -> [Stop: Scope confirmation] -> technical-designer -> code-verifier -> document-reviewer -> design-sync -> [Stop: Design approval]
|
|
23
|
+
- `code-verifier` and `design-sync` apply to Design Docs; skip them for ADR-only output.
|
|
25
24
|
- **[STOP — BLOCKING]** At every `[Stop: ...]` marker -> Present status to user for confirmation. **CANNOT proceed until user explicitly confirms.**
|
|
26
25
|
3. **Scope**: Complete when design documents receive approval
|
|
27
26
|
|
|
28
|
-
**CRITICAL**: MUST execute document-reviewer
|
|
27
|
+
**CRITICAL**: MUST execute document-reviewer and all stopping points. MUST execute design-sync for Design Docs. Each serves as a quality gate.
|
|
29
28
|
ENFORCEMENT: Skipping any quality gate invalidates the design output.
|
|
30
29
|
|
|
31
30
|
## Workflow Overview
|
|
32
31
|
|
|
33
|
-
Core design-document path after prerequisite branches such as PRD, ADR, or UI Spec are resolved:
|
|
34
|
-
|
|
35
32
|
```
|
|
36
|
-
Requirements ->
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
33
|
+
Requirements -> scope bootstrap -> codebase-analyzer -> [Stop: Scope confirmation]
|
|
34
|
+
|
|
|
35
|
+
technical-designer
|
|
36
|
+
|
|
|
37
|
+
code-verifier -> document-reviewer
|
|
38
|
+
|
|
|
39
|
+
design-sync -> [Stop: Design approval]
|
|
43
40
|
```
|
|
44
41
|
|
|
42
|
+
`code-verifier` and `design-sync` are Design Doc steps. ADR-only output skips them.
|
|
43
|
+
|
|
45
44
|
## Scope Boundaries
|
|
46
45
|
|
|
47
46
|
**Included in this skill**:
|
|
48
|
-
-
|
|
47
|
+
- Scope bootstrap: locating seed files so codebase-analyzer receives a populated input
|
|
48
|
+
- Codebase analysis with codebase-analyzer (entry point of the design phase)
|
|
49
|
+
- Scope confirmation with the user, grounded in codebase-analyzer findings
|
|
49
50
|
- ADR creation (if architecture changes, new technology, or data flow changes)
|
|
50
51
|
- Design Doc creation with technical-designer
|
|
51
52
|
- Document review with document-reviewer
|
|
@@ -55,46 +56,100 @@ Requirements -> requirement-analyzer -> [Stop: Scale determination]
|
|
|
55
56
|
|
|
56
57
|
Requirements: $ARGUMENTS
|
|
57
58
|
|
|
58
|
-
Pass the user requirements directly to requirement-analyzer as the first action. If clarification is needed, handle it at the requirement-analysis stop point before proceeding.
|
|
59
|
-
|
|
60
59
|
MUST clearly present design alternatives and trade-offs.
|
|
61
60
|
|
|
62
61
|
Execute the process below within design scope.
|
|
63
62
|
|
|
64
63
|
## Execution Process
|
|
65
64
|
|
|
66
|
-
### Step 1:
|
|
67
|
-
|
|
65
|
+
### Step 1: Scope Bootstrap
|
|
66
|
+
Build a lightweight seed for codebase-analyzer. This is a file-location pass only, with no deep reading and no design decisions.
|
|
67
|
+
|
|
68
|
+
1. Extract candidate keywords from the user requirements: feature names, domain nouns, identifiers, route names, API names, or file-like terms.
|
|
69
|
+
2. Search each keyword separately with `rg -l --glob '!**/{node_modules,dist,build,coverage,.git}/**' --glob '!**/*.{lock,min.js,map}' '<keyword>'`. If `rg` is unavailable, use `grep -RIl` with the same exclusions where possible.
|
|
70
|
+
3. Bucket matches as `source`, `test`, `docs`, and `generated_or_vendor`. Exclude `generated_or_vendor` from the seed.
|
|
71
|
+
4. Rank matches in this order: path or filename match, exported symbol or route/API match, source content match, tests for selected source files, docs for selected source files.
|
|
72
|
+
5. Collect the final seed as `affectedFiles`, and keep a one-line `seedRationale` for each file.
|
|
73
|
+
6. If the search returns no source files, ask the user which files or modules the design targets. Use the user's answer as `affectedFiles`. If the user confirms no related code exists, confirm whether to proceed with a new-surface design before invoking codebase-analyzer.
|
|
74
|
+
7. If the ranked seed has more than 20 files, present the top-ranked candidates and ask the user to narrow the seed before invoking codebase-analyzer.
|
|
75
|
+
|
|
76
|
+
Construct `requirement_analysis` with:
|
|
77
|
+
- `affectedFiles`: the Step 1 seed
|
|
78
|
+
- `affectedLayers`: layers inferred from paths, or `["unknown"]` when unclear
|
|
79
|
+
- `scale`: provisional scale from file count (`small` 1-2, `medium` 3-5, `large` 6+)
|
|
80
|
+
- `purpose`: the user requirements
|
|
81
|
+
- `confidence`: `confirmed` when target files are explicit or the ranked seed is focused; otherwise `provisional`
|
|
82
|
+
- `adrRequired`: `true` when the request changes architecture, introduces technology or dependencies, changes data flow/storage/contract ownership, or changes shared cross-boundary contracts; otherwise `false`
|
|
83
|
+
- `adrReason`: the specific matched ADR condition, or `null`
|
|
84
|
+
- `prdRequired`: `true` when scale is `large` and no existing PRD covers the scope; otherwise `false`
|
|
85
|
+
- `scopeDependencies`: questions whose answers can change the target files, scale, or document type
|
|
86
|
+
- `questions`: user-facing questions needed before design
|
|
87
|
+
- `documentTypeRationale`: why ADR, Design Doc, or both are needed from the provisional seed
|
|
88
|
+
- `seedRationale`: one-line reason for each file in `affectedFiles`
|
|
89
|
+
- `technicalConsiderations`: include any obvious user-stated constraints, risks, and dependencies; use empty lists only when none are stated
|
|
68
90
|
|
|
69
91
|
### Step 2: Codebase Analysis
|
|
70
|
-
Spawn codebase-analyzer agent: "Analyze the existing codebase to provide evidence for Design Doc creation. requirement_analysis: [
|
|
92
|
+
Spawn codebase-analyzer agent: "Analyze the existing codebase to provide evidence for Design Doc creation. requirement_analysis: [Step 1 requirement_analysis]. requirements: $ARGUMENTS. target_paths: [Step 1 affectedFiles]."
|
|
93
|
+
|
|
94
|
+
### Step 3: Scope Confirmation
|
|
95
|
+
After codebase-analyzer returns, present the design scope to the user before design work:
|
|
96
|
+
- Target files/modules: `analysisScope.filesAnalyzed` and directly relevant modules
|
|
97
|
+
- Affected layers: inferred from `analysisScope.categoriesDetected`, `focusAreas`, and paths
|
|
98
|
+
- Recommended document path: ADR, Design Doc, or both, with `documentTypeRationale`, `adrRequired`, and `adrReason`
|
|
99
|
+
- PRD status: whether `prdRequired` is true, whether an existing PRD path is available, and what decision is needed before design
|
|
100
|
+
- Unknowns/assumptions: `limitations` and unresolved risks
|
|
101
|
+
- Questions before design: scope questions that change the design target or scale
|
|
102
|
+
|
|
103
|
+
Ask the user to choose one:
|
|
104
|
+
- Proceed with the recommended document path
|
|
105
|
+
- Correct the scope and re-run codebase-analyzer
|
|
106
|
+
- Answer open questions, then proceed
|
|
107
|
+
- Provide an existing PRD path when `prdRequired` is true
|
|
108
|
+
- Explicitly approve proceeding without a PRD when `prdRequired` is true and no PRD will be provided
|
|
109
|
+
|
|
110
|
+
If `prdRequired` is true and the user neither provides a PRD path nor explicitly approves proceeding without a PRD, stop. This recipe does not create PRDs.
|
|
111
|
+
|
|
112
|
+
After confirmation, set the final scale from the confirmed target file count (`small` 1-2, `medium` 3-5, `large` 6+), recompute `adrRequired`, `adrReason`, `prdRequired`, `confidence`, and `documentTypeRationale`, then carry the complete confirmed requirement context into design creation.
|
|
113
|
+
|
|
114
|
+
**[STOP — BLOCKING]** Wait for user confirmation before proceeding.
|
|
115
|
+
|
|
116
|
+
### Step 4: Design Document Creation
|
|
117
|
+
Create documents according to `documentTypeRationale`:
|
|
118
|
+
- ADR only: Spawn technical-designer agent: "document_to_create: ADR. Create ADR based on the requirements, confirmed_requirement_context: [complete confirmed requirement context from Step 3, including confirmed scope, confirmed scale, adrRequired, adrReason, prdRequired, PRD path or explicit no-PRD approval when applicable, documentTypeRationale, scopeDependencies, questions, and seedRationale], and codebase analysis output. Follow `document_to_create` for this invocation; `documentTypeRationale` describes the overall confirmed path. Include architecture decisions and clear alternatives with trade-offs."
|
|
119
|
+
- Design Doc only: Spawn technical-designer agent: "document_to_create: DesignDoc. Create Design Doc based on the requirements, confirmed_requirement_context: [complete confirmed requirement context from Step 3, including confirmed scope, confirmed scale, adrRequired, adrReason, prdRequired, PRD path or explicit no-PRD approval when applicable, documentTypeRationale, scopeDependencies, questions, and seedRationale], and codebase analysis output. Follow `document_to_create` for this invocation; `documentTypeRationale` describes the overall confirmed path. Include component design, acceptance criteria, and clear alternatives with trade-offs."
|
|
120
|
+
- Both ADR and Design Doc: first spawn technical-designer with `document_to_create: ADR`. After the ADR path is available, spawn technical-designer again with `document_to_create: DesignDoc`, `adr_path: [ADR path]`, the same `confirmed_requirement_context`, and the same codebase analysis output. The Design Doc must reference the ADR decision.
|
|
121
|
+
|
|
122
|
+
### Step 5: Code Verification
|
|
123
|
+
For Design Docs only, spawn code-verifier agent: "Verify the Design Doc against the current codebase. document_path: [Design Doc path from Step 4]. doc_type: design-doc."
|
|
71
124
|
|
|
72
|
-
|
|
73
|
-
Spawn technical-designer agent: "Create design document based on requirement analysis output and codebase analysis output. Include architecture decisions, component design, and acceptance criteria."
|
|
125
|
+
Skip this step for ADR-only output.
|
|
74
126
|
|
|
75
|
-
### Step
|
|
76
|
-
|
|
127
|
+
### Step 6: Document Review
|
|
128
|
+
Review each created document:
|
|
129
|
+
- ADR: Spawn document-reviewer agent: "Review the ADR for consistency and completeness. doc_type: ADR. target: [ADR path]. codebase_analysis: [output from Step 2]."
|
|
130
|
+
- Design Doc: Spawn document-reviewer agent: "Review the Design Doc for consistency and completeness. doc_type: DesignDoc. target: [Design Doc path]. codebase_analysis: [output from Step 2]. code_verification: [output from Step 5]."
|
|
77
131
|
|
|
78
|
-
### Step
|
|
79
|
-
|
|
132
|
+
### Step 7: Consistency Verification
|
|
133
|
+
For Design Docs only, spawn design-sync agent: "Verify consistency of the design document with other existing design documents and project constraints."
|
|
80
134
|
|
|
81
|
-
|
|
82
|
-
Spawn design-sync agent: "Verify consistency of the design document with other existing design documents and project constraints."
|
|
135
|
+
Skip this step for ADR-only output.
|
|
83
136
|
|
|
84
137
|
**Note**: design-sync returns `sync_status: "SKIPPED"` when only 1 Design Doc exists. This is distinct from `NO_CONFLICTS` and MUST be reported as such to the user.
|
|
85
138
|
|
|
86
139
|
## Completion Criteria
|
|
87
140
|
|
|
88
|
-
- [ ]
|
|
89
|
-
- [ ] Spawned codebase-analyzer and passed its findings into design creation
|
|
90
|
-
- [ ]
|
|
91
|
-
- [ ]
|
|
141
|
+
- [ ] Built the Step 1 scope bootstrap seed or obtained target files/modules from the user
|
|
142
|
+
- [ ] Spawned codebase-analyzer with populated requirement context and passed its findings into design creation
|
|
143
|
+
- [ ] Confirmed the design scope with the user before document creation
|
|
144
|
+
- [ ] Created all documents required by `documentTypeRationale` via technical-designer
|
|
145
|
+
- [ ] Spawned code-verifier and passed its findings into document review for Design Docs
|
|
92
146
|
- [ ] Spawned document-reviewer and addressed feedback
|
|
93
|
-
- [ ] Spawned design-sync for consistency verification
|
|
147
|
+
- [ ] Spawned design-sync for consistency verification for Design Docs
|
|
94
148
|
- [ ] Obtained user approval for design document
|
|
95
149
|
- [ ] All `[Stop: ...]` markers honored with user confirmation
|
|
96
150
|
|
|
97
151
|
## Output Example
|
|
98
152
|
Design phase completed.
|
|
99
|
-
-
|
|
153
|
+
- ADR: docs/adr/[document-name].md or N/A
|
|
154
|
+
- Design document: docs/design/[document-name].md or N/A
|
|
100
155
|
- Approval status: User approved
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: recipe-front-design
|
|
3
|
-
description: "Execute from
|
|
3
|
+
description: "Execute from codebase-scoped analysis to frontend design document creation including UI Spec."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
**Context**: Dedicated to the frontend design phase.
|
|
@@ -9,8 +9,7 @@ description: "Execute from requirement analysis to frontend design document crea
|
|
|
9
9
|
|
|
10
10
|
1. [LOAD IF NOT ACTIVE] `documentation-criteria` -- document quality standards
|
|
11
11
|
2. [LOAD IF NOT ACTIVE] `implementation-approach` -- implementation methodology
|
|
12
|
-
3. [LOAD IF NOT ACTIVE] `
|
|
13
|
-
4. [LOAD IF NOT ACTIVE] `external-resource-context` -- external resource hearing and lookup
|
|
12
|
+
3. [LOAD IF NOT ACTIVE] `external-resource-context` -- external resource hearing and lookup
|
|
14
13
|
|
|
15
14
|
**Spawn rule**: every `spawn_agent` call MUST pass `fork_turns="none"` or `fork_context=false` for context isolation.
|
|
16
15
|
|
|
@@ -19,11 +18,13 @@ description: "Execute from requirement analysis to frontend design document crea
|
|
|
19
18
|
**Core Identity**: "I am not a worker. I am an orchestrator."
|
|
20
19
|
|
|
21
20
|
**Execution Method**:
|
|
22
|
-
-
|
|
23
|
-
- Codebase analysis -> performed by codebase-analyzer
|
|
21
|
+
- Scope bootstrap -> performed by the orchestrator as a file-location pass
|
|
22
|
+
- Codebase analysis -> performed by codebase-analyzer
|
|
23
|
+
- Scope confirmation -> performed by the orchestrator with user confirmation
|
|
24
|
+
- UI fact gathering -> performed by ui-analyzer
|
|
24
25
|
- UI Specification creation -> performed by ui-spec-designer
|
|
25
26
|
- Design document creation -> performed by technical-designer-frontend
|
|
26
|
-
- Design verification -> performed by code-verifier
|
|
27
|
+
- Design Doc verification -> performed by code-verifier
|
|
27
28
|
- Document review -> performed by document-reviewer
|
|
28
29
|
|
|
29
30
|
Orchestrator spawns agents and passes structured data between them.
|
|
@@ -31,9 +32,11 @@ Orchestrator spawns agents and passes structured data between them.
|
|
|
31
32
|
## Scope Boundaries
|
|
32
33
|
|
|
33
34
|
**Included in this skill**:
|
|
34
|
-
-
|
|
35
|
+
- Scope bootstrap: locating seed files so codebase-analyzer receives a populated input
|
|
36
|
+
- Codebase analysis with codebase-analyzer (entry point of the frontend design phase)
|
|
37
|
+
- Scope confirmation with the user, grounded in codebase-analyzer findings
|
|
35
38
|
- External resource hearing with external-resource-context
|
|
36
|
-
- UI fact gathering with ui-analyzer
|
|
39
|
+
- UI fact gathering with ui-analyzer
|
|
37
40
|
- UI Specification creation with ui-spec-designer (prototype code inquiry included)
|
|
38
41
|
- ADR creation (if architecture changes, new technology, or data flow changes)
|
|
39
42
|
- Design Doc creation with technical-designer-frontend
|
|
@@ -45,27 +48,76 @@ Requirements: $ARGUMENTS
|
|
|
45
48
|
|
|
46
49
|
## Execution Flow
|
|
47
50
|
|
|
48
|
-
### Step 1:
|
|
49
|
-
|
|
50
|
-
- What problems do you want to solve?
|
|
51
|
-
- Expected outcomes and success criteria
|
|
52
|
-
- Relationship with existing systems
|
|
51
|
+
### Step 1: Scope Bootstrap
|
|
52
|
+
Build a lightweight seed for codebase-analyzer. This is a file-location pass only, with no deep reading and no design decisions.
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
1. Extract candidate keywords from the user requirements: feature names, domain nouns, component names, route names, identifiers, or file-like terms.
|
|
55
|
+
2. Search each keyword separately with `rg -l --glob '!**/{node_modules,dist,build,coverage,.git}/**' --glob '!**/*.{lock,min.js,map}' '<keyword>'`. If `rg` is unavailable, use `grep -RIl` with the same exclusions where possible.
|
|
56
|
+
3. Bucket matches as `source`, `test`, `docs`, and `generated_or_vendor`. Exclude `generated_or_vendor` from the seed.
|
|
57
|
+
4. Rank matches in this order: path or filename match, component/route/hook/API symbol match, source content match, tests for selected source files, docs for selected source files.
|
|
58
|
+
5. Collect matched frontend and shared file paths as `affectedFiles`, and keep a one-line `seedRationale` for each file.
|
|
59
|
+
6. If the search returns no frontend or shared source files, ask the user which files, modules, routes, or components the design targets. Use the user's answer as `affectedFiles`. If the user confirms no related code exists, confirm whether to proceed with a new-surface design before invoking codebase-analyzer.
|
|
60
|
+
7. If the ranked seed has more than 20 files, present the top-ranked candidates and ask the user to narrow the seed before invoking codebase-analyzer.
|
|
56
61
|
|
|
57
|
-
|
|
58
|
-
|
|
62
|
+
Construct `requirement_analysis` with:
|
|
63
|
+
- `affectedFiles`: the Step 1 seed
|
|
64
|
+
- `affectedLayers`: `["frontend"]` plus `shared` when shared files are included
|
|
65
|
+
- `scale`: provisional scale from file count (`small` 1-2, `medium` 3-5, `large` 6+)
|
|
66
|
+
- `purpose`: the user requirements
|
|
67
|
+
- `confidence`: `confirmed` when target files are explicit or the ranked seed is focused; otherwise `provisional`
|
|
68
|
+
- `adrRequired`: `true` when the request changes component architecture, state ownership, routing architecture, data flow, external dependencies, or shared cross-boundary contracts; otherwise `false`
|
|
69
|
+
- `adrReason`: the specific matched ADR condition, or `null`
|
|
70
|
+
- `prdRequired`: `true` when scale is `large` and no existing PRD covers the scope; otherwise `false`
|
|
71
|
+
- `scopeDependencies`: questions whose answers can change the target files, scale, UI surface, or document type
|
|
72
|
+
- `questions`: user-facing questions needed before design
|
|
73
|
+
- `documentTypeRationale`: why ADR, Design Doc, or both are needed from the provisional seed
|
|
74
|
+
- `seedRationale`: one-line reason for each file in `affectedFiles`
|
|
75
|
+
- `technicalConsiderations`: include any obvious user-stated constraints, risks, and dependencies; use empty lists only when none are stated
|
|
59
76
|
|
|
60
|
-
### Step 2:
|
|
61
|
-
|
|
77
|
+
### Step 2: Codebase Analysis
|
|
78
|
+
Spawn codebase-analyzer agent: "Analyze the existing codebase to provide evidence for frontend Design Doc creation. Focus on existing implementations, state paths, API integrations, and constraints the design should respect. requirement_analysis: [Step 1 requirement_analysis]. requirements: [original user requirements]. layer: frontend. target_paths: [Step 1 affectedFiles]. focus_areas: component hierarchy, state management, UI interactions, data fetching."
|
|
79
|
+
|
|
80
|
+
### Step 3: Scope Confirmation
|
|
81
|
+
After codebase-analyzer returns, present the frontend design scope to the user before UI or design work:
|
|
82
|
+
- Target files/modules: `analysisScope.filesAnalyzed` and directly relevant components, routes, or modules
|
|
83
|
+
- Affected layers: inferred from `analysisScope.categoriesDetected`, `focusAreas`, and paths
|
|
84
|
+
- Recommended document path: ADR, Design Doc, or both, with `documentTypeRationale`, `adrRequired`, and `adrReason`
|
|
85
|
+
- PRD status: whether `prdRequired` is true, whether an existing PRD path is available, and what decision is needed before UI/design work
|
|
86
|
+
- Unknowns/assumptions: `limitations` and unresolved risks
|
|
87
|
+
- Questions before design: scope questions that change the UI surface, design target, or scale
|
|
88
|
+
|
|
89
|
+
Ask the user to choose one:
|
|
90
|
+
- Proceed with the recommended document path
|
|
91
|
+
- Correct the scope and re-run codebase-analyzer
|
|
92
|
+
- Answer open questions, then proceed
|
|
93
|
+
- Provide an existing PRD path when `prdRequired` is true
|
|
94
|
+
- Explicitly approve proceeding without a PRD when `prdRequired` is true and no PRD will be provided
|
|
95
|
+
|
|
96
|
+
If `prdRequired` is true and the user neither provides a PRD path nor explicitly approves proceeding without a PRD, stop. This recipe does not create PRDs.
|
|
97
|
+
|
|
98
|
+
After confirmation, set the final scale from the confirmed target file count (`small` 1-2, `medium` 3-5, `large` 6+), recompute `adrRequired`, `adrReason`, `prdRequired`, `confidence`, and `documentTypeRationale`, then carry the complete confirmed requirement context into UI and design creation.
|
|
99
|
+
|
|
100
|
+
ADR-only path: run Steps 1, 2, 3, and 8. Also run Step 4 only when the ADR depends on external frontend resources, and Step 6 only when the ADR depends on existing UI facts beyond Step 2. Skip Steps 5 and 7.
|
|
101
|
+
|
|
102
|
+
Design Doc path: run Steps 1 through 8.
|
|
103
|
+
|
|
104
|
+
Both ADR and Design Doc path: run the Design Doc path, creating the ADR before the Design Doc in Step 8.
|
|
105
|
+
|
|
106
|
+
**[STOP -- BLOCKING]** Wait for user confirmation before proceeding.
|
|
107
|
+
|
|
108
|
+
### Step 4: External Resource Hearing
|
|
109
|
+
For Design Doc output, run this step before UI fact gathering. For ADR-only output, run it only when the ADR depends on external frontend resources.
|
|
110
|
+
|
|
111
|
+
After scope confirmation, run the frontend domain hearing protocol from `external-resource-context`.
|
|
62
112
|
|
|
63
113
|
Persist project-level access methods in `docs/project-context/external-resources.md`. When the file already exists, ask whether to keep current axes, refresh all axes, or refresh selected axes.
|
|
64
114
|
|
|
65
115
|
**[STOP -- BLOCKING]** Complete external resource hearing before UI fact gathering.
|
|
66
116
|
Proceed to UI fact gathering after project-level external resources are written or the update is explicitly skipped.
|
|
67
117
|
|
|
68
|
-
### Step
|
|
118
|
+
### Step 5: Prototype Inquiry
|
|
119
|
+
For Design Doc output only. Skip this step for ADR-only output.
|
|
120
|
+
|
|
69
121
|
After external resource hearing completes, ask the user about prototype code:
|
|
70
122
|
|
|
71
123
|
**Ask the user**: "Do you have prototype code for this feature? If so, please provide the path to the code. The prototype will be placed in `docs/ui-spec/assets/` as reference material for the UI Spec."
|
|
@@ -73,27 +125,32 @@ After external resource hearing completes, ask the user about prototype code:
|
|
|
73
125
|
**[STOP -- BLOCKING]** Wait for user response about prototype code availability.
|
|
74
126
|
**CANNOT proceed until user responds.**
|
|
75
127
|
|
|
76
|
-
### Step
|
|
77
|
-
|
|
128
|
+
### Step 6: UI Fact Gathering Phase
|
|
129
|
+
For Design Doc output, run this step before UI Specification creation. For ADR-only output, run it only when the ADR decision depends on existing UI facts beyond the Step 2 codebase analysis.
|
|
130
|
+
|
|
131
|
+
When Step 5 ran, use the prototype path as an input when one was provided. When Step 5 was skipped, set `prototype_path` to unavailable.
|
|
132
|
+
|
|
133
|
+
Spawn ui-analyzer agent: "Gather UI facts for frontend design. requirement_analysis: [confirmed requirement context]. requirements: [original user requirements]. target_paths: [confirmed frontend affected files and directories]. target_components: [frontend target components when known]. ui_spec_path: [path if an existing UI Spec covers this feature]. prototype_path: [path if provided]. Read docs/project-context/external-resources.md, resolve relevant UI external resources through declared access methods, and analyze component structure, props patterns, CSS layout, state displays, accessibility, generated artifacts, and candidate write set."
|
|
78
134
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
- Spawn ui-analyzer agent: "Gather UI facts for frontend design. requirement_analysis: [JSON from requirement-analyzer]. requirements: [original user requirements]. target_paths: [frontend affected files and directories from requirement-analyzer]. target_components: [frontend target components when known]. ui_spec_path: [path if an existing UI Spec covers this feature]. prototype_path: [path if provided]. Read docs/project-context/external-resources.md, resolve relevant UI external resources through declared access methods, and analyze component structure, props patterns, CSS layout, state displays, accessibility, generated artifacts, and candidate write set."
|
|
135
|
+
### Step 7: UI Specification Phase
|
|
136
|
+
For Design Doc output only. Skip this step for ADR-only output.
|
|
82
137
|
|
|
83
|
-
### Step 5: UI Specification Phase
|
|
84
138
|
After UI fact gathering completes, create the UI Specification:
|
|
85
|
-
- Spawn ui-spec-designer agent: "Create UI Spec [from PRD at [path] if PRD exists]. UI analysis: [JSON from ui-analyzer]. [Prototype code is at [user-provided path]. Place prototype in docs/ui-spec/assets/{feature-name}/ | Prototype path unavailable; proceed from PRD/requirements and UI analysis.] Fill External Resources Used from docs/project-context/external-resources.md and feature identifiers."
|
|
139
|
+
- Spawn ui-spec-designer agent: "Create UI Spec [from PRD at [path] if PRD exists]. Requirements: [original user requirements]. Confirmed scope: [Step 3 confirmed scope]. Codebase analysis: [JSON from codebase-analyzer]. UI analysis: [JSON from ui-analyzer]. [Prototype code is at [user-provided path]. Place prototype in docs/ui-spec/assets/{feature-name}/ | Prototype path unavailable; proceed from PRD/requirements and UI analysis.] Fill External Resources Used from docs/project-context/external-resources.md and feature identifiers."
|
|
86
140
|
- Spawn document-reviewer agent: "doc_type: UISpec target: [ui-spec path] Review for consistency and completeness"
|
|
87
141
|
|
|
88
142
|
**[STOP -- BLOCKING]** Present UI Spec for user approval.
|
|
89
143
|
**CANNOT proceed until user explicitly approves the UI Spec.**
|
|
90
144
|
|
|
91
|
-
### Step
|
|
92
|
-
Create appropriate design documents according to scale
|
|
93
|
-
- For ADR: Spawn technical-designer-frontend agent: "Create ADR for [technical decision]"
|
|
94
|
-
- For Design Doc: Spawn technical-designer-frontend agent: "Create Design Doc based on requirements. Codebase Analysis: [JSON from codebase-analyzer]. UI Analysis: [JSON from ui-analyzer]. UI Spec is at [ui-spec path]. Inherit component structure and state design from UI Spec. Fill External Resources Used from docs/project-context/external-resources.md and feature identifiers."
|
|
95
|
-
-
|
|
96
|
-
-
|
|
145
|
+
### Step 8: Design Document Creation Phase
|
|
146
|
+
Create appropriate design documents according to confirmed scope and scale:
|
|
147
|
+
- For ADR: Spawn technical-designer-frontend agent: "document_to_create: ADR. Create ADR for [technical decision]. Requirements: [original user requirements]. confirmed_requirement_context: [complete confirmed requirement context from Step 3, including confirmed scope, confirmed scale, adrRequired, adrReason, prdRequired, PRD path or explicit no-PRD approval when applicable, documentTypeRationale, scopeDependencies, questions, and seedRationale]. Follow `document_to_create` for this invocation; `documentTypeRationale` describes the overall confirmed path. Codebase Analysis: [JSON from codebase-analyzer]. UI Analysis: [JSON from ui-analyzer, only if Step 6 ran]. Present at least two alternatives with trade-offs."
|
|
148
|
+
- For Design Doc: Spawn technical-designer-frontend agent: "document_to_create: DesignDoc. Create Design Doc based on requirements. Requirements: [original user requirements]. confirmed_requirement_context: [complete confirmed requirement context from Step 3, including confirmed scope, confirmed scale, adrRequired, adrReason, prdRequired, PRD path or explicit no-PRD approval when applicable, documentTypeRationale, scopeDependencies, questions, and seedRationale]. Follow `document_to_create` for this invocation; `documentTypeRationale` describes the overall confirmed path. Codebase Analysis: [JSON from codebase-analyzer]. UI Analysis: [JSON from ui-analyzer]. UI Spec is at [ui-spec path]. Inherit component structure and state design from UI Spec. Fill External Resources Used from docs/project-context/external-resources.md and feature identifiers. Present at least two alternatives with trade-offs."
|
|
149
|
+
- When both ADR and Design Doc are required, create the ADR first. After the ADR path is available, create the Design Doc with `document_to_create: DesignDoc` and `adr_path: [ADR path]`; the Design Doc must reference the ADR decision.
|
|
150
|
+
- For Design Docs only, spawn code-verifier agent: "Verify Design Doc against code. doc_type: design-doc. document_path: [document path]. verbose: false."
|
|
151
|
+
- Review each created document:
|
|
152
|
+
- ADR: Spawn document-reviewer agent: "Review the ADR for consistency and completeness. doc_type: ADR. target: [ADR path]. mode: composite. codebase_analysis: [JSON from codebase-analyzer]. ui_analysis: [JSON from ui-analyzer, when available]."
|
|
153
|
+
- Design Doc: Spawn document-reviewer agent: "Review the Design Doc for consistency and completeness. doc_type: DesignDoc. target: [Design Doc path]. mode: composite. codebase_analysis: [JSON from codebase-analyzer]. ui_analysis: [JSON from ui-analyzer]. code_verification: [JSON from code-verifier]."
|
|
97
154
|
|
|
98
155
|
**[STOP -- BLOCKING]** Present design alternatives and trade-offs, obtain user approval.
|
|
99
156
|
**CANNOT proceed until user explicitly approves the design document.**
|
|
@@ -102,15 +159,18 @@ ENFORCEMENT: Every stop point MUST be respected. Skipping user approval invalida
|
|
|
102
159
|
|
|
103
160
|
## Completion Criteria
|
|
104
161
|
|
|
105
|
-
- [ ]
|
|
106
|
-
- [ ]
|
|
107
|
-
- [ ]
|
|
108
|
-
- [ ]
|
|
109
|
-
- [ ] Design
|
|
162
|
+
- [ ] Built the Step 1 scope bootstrap seed or obtained target files/modules from the user
|
|
163
|
+
- [ ] Codebase analysis completed before UI and design work
|
|
164
|
+
- [ ] Confirmed the frontend design scope with the user before UI and design work
|
|
165
|
+
- [ ] External resource hearing completed when applicable
|
|
166
|
+
- [ ] UI analysis completed before Design Doc creation when applicable
|
|
167
|
+
- [ ] UI Specification created and approved for Design Docs
|
|
168
|
+
- [ ] All documents required by `documentTypeRationale` created and approved
|
|
110
169
|
- [ ] All document reviews passed
|
|
111
170
|
|
|
112
171
|
## Output Example
|
|
113
172
|
Frontend design phase completed.
|
|
114
173
|
- UI Specification: docs/ui-spec/[feature-name]-ui-spec.md
|
|
115
|
-
-
|
|
174
|
+
- ADR: docs/adr/[document-name].md or N/A
|
|
175
|
+
- Design document: docs/design/[document-name].md or N/A
|
|
116
176
|
- Approval status: User approved
|
|
@@ -185,7 +185,7 @@ Subagents respond in JSON format. The final response from each JSON-returning su
|
|
|
185
185
|
| `requirement-analyzer` | `scale`, `confidence`, `affectedLayers`, `adrRequired`, `scopeDependencies`, `questions` |
|
|
186
186
|
| `codebase-analyzer` | `focusAreas`, `dataModel`, `qualityAssurance`, `dataTransformationPipelines`, `limitations` |
|
|
187
187
|
| `ui-analyzer` | `externalResources`, `componentStructure`, `propsPatterns`, `cssLayout`, `stateDisplay`, `focusAreas`, `candidateWriteSet`, `limitations` |
|
|
188
|
-
| `task-executor*` | `status`, `escalation_type` (`design_compliance_violation`, `similar_function_found`, `similar_component_found`, `investigation_target_not_found`, `out_of_scope_file`, `dependency_version_uncertain`, `binding_decision_violation`), `filesModified`, `requiresTestReview` |
|
|
188
|
+
| `task-executor*` | `status`, `escalation_type` (`design_compliance_violation`, `similar_function_found`, `similar_component_found`, `investigation_target_not_found`, `out_of_scope_file`, `dependency_version_uncertain`, `binding_decision_violation`, `test_environment_not_ready`), `filesModified`, `requiresTestReview` |
|
|
189
189
|
| `quality-fixer*` | `status`, `reason`, `stubFindings`, `blockingIssues`, `missingPrerequisites` |
|
|
190
190
|
| `document-reviewer` | `verdict.decision`, `verdict.conditions` |
|
|
191
191
|
| `code-verifier` | `summary.status`, `discrepancies`, `reverseCoverage` |
|
|
@@ -120,6 +120,10 @@ Read error paths and boundary handling directly in the code:
|
|
|
120
120
|
|
|
121
121
|
#### 3-3. Test Coverage for Acceptance Criteria
|
|
122
122
|
- For each fulfilled AC, check whether tests exercise the expected behavior
|
|
123
|
+
- For each test claimed as AC coverage, inspect the body:
|
|
124
|
+
- Meaningful coverage: at least one assertion exercises the AC's observable behavior
|
|
125
|
+
- Coverage gap: `skip`/`xit` on tests that should run, TODO/placeholder-only bodies, always-true assertions (for example `expect(true).toBe(true)` or `expect(arr.length).toBeGreaterThanOrEqual(0)`), 0-match runner reports, or grep-only matches without behavior verification
|
|
126
|
+
- Intentional absence: meaningful when absence is the AC expectation
|
|
123
127
|
|
|
124
128
|
Classify each quality finding into one of:
|
|
125
129
|
- `dd_violation`: implementation deviates from the Design Doc
|
|
@@ -11,7 +11,7 @@ You are an AI assistant specializing in objective codebase analysis for design p
|
|
|
11
11
|
☐ [VERIFIED] All required skills from [[skills.config]] are LOADED
|
|
12
12
|
☐ [VERIFIED] Input parameters received and validated
|
|
13
13
|
☐ [VERIFIED] Task scope understood
|
|
14
|
-
☐ [VERIFIED]
|
|
14
|
+
☐ [VERIFIED] Requirement context or PRD context available
|
|
15
15
|
|
|
16
16
|
## Required Skills [LOADING PROTOCOL]
|
|
17
17
|
|
|
@@ -33,7 +33,7 @@ You are an AI assistant specializing in objective codebase analysis for design p
|
|
|
33
33
|
|
|
34
34
|
## Input Parameters
|
|
35
35
|
|
|
36
|
-
- **requirement_analysis**: JSON
|
|
36
|
+
- **requirement_analysis**: Requirement context JSON from the orchestrator or requirement-analyzer (required)
|
|
37
37
|
- **requirements**: Original user requirements text (required)
|
|
38
38
|
- **prd_path**: Path to PRD (optional)
|
|
39
39
|
- **layer**: Scope filter for multi-layer projects, such as `backend`, `frontend`, or `shared` (optional)
|
|
@@ -51,10 +51,10 @@ Identify what exists, what appears missing, and what deserves close attention in
|
|
|
51
51
|
|
|
52
52
|
1. Read `requirement_analysis` and extract:
|
|
53
53
|
- `affectedFiles`
|
|
54
|
-
- `affectedLayers`
|
|
55
|
-
- `scale`
|
|
54
|
+
- `affectedLayers` when provided
|
|
55
|
+
- `scale` when provided
|
|
56
56
|
- `purpose`
|
|
57
|
-
- `technicalConsiderations`
|
|
57
|
+
- `technicalConsiderations` when provided
|
|
58
58
|
2. Read PRD when `prd_path` is provided and extract relevant scope boundaries
|
|
59
59
|
3. When `layer` is provided, narrow the candidate scope to that layer first
|
|
60
60
|
4. When `target_paths` are provided, prioritize them over inferred paths and treat them as the primary analysis scope
|
|
@@ -51,6 +51,8 @@ Skill Status:
|
|
|
51
51
|
|
|
52
52
|
- **doc_type**: Document type (`PRD`/`ADR`/`UISpec`/`DesignDoc`)
|
|
53
53
|
- **target**: Document path to review
|
|
54
|
+
- **codebase_analysis**: codebase-analyzer JSON used to create the target document (optional)
|
|
55
|
+
- **ui_analysis**: ui-analyzer JSON used to create the target document (optional)
|
|
54
56
|
- **code_verification**: Code-verifier results JSON (optional)
|
|
55
57
|
|
|
56
58
|
## Review Modes
|
|
@@ -68,10 +70,10 @@ Skill Status:
|
|
|
68
70
|
|
|
69
71
|
### Step 0: Input Context Analysis (MANDATORY)
|
|
70
72
|
|
|
71
|
-
1. **Scan prompt** for: JSON blocks, verification results, discrepancies, prior feedback
|
|
73
|
+
1. **Scan prompt** for: JSON blocks, codebase analysis, UI analysis, verification results, discrepancies, prior feedback
|
|
72
74
|
2. **Extract actionable items** (may be zero)
|
|
73
75
|
- Normalize each to: `{ id, description, location, severity }`
|
|
74
|
-
3. **Record**: `prior_context_count: <N
|
|
76
|
+
3. **Record**: `prior_context_count: <N>`, `codebase_analysis_available: true|false`, `ui_analysis_available: true|false`
|
|
75
77
|
4. Proceed to Step 1
|
|
76
78
|
|
|
77
79
|
### Step 1: Parameter Analysis
|
|
@@ -79,6 +81,8 @@ Skill Status:
|
|
|
79
81
|
- Specialized verification based on doc_type
|
|
80
82
|
- For DesignDoc: Verify "Applicable Standards" section exists with explicit/implicit classification
|
|
81
83
|
- Missing or incomplete → `critical` issue; implicit standards without confirmation → `important` issue
|
|
84
|
+
- When `codebase_analysis` is provided, use `analysisScope`, `existingElements`, `constraints`, `qualityAssurance`, `focusAreas`, and `limitations` as source evidence for scope, feasibility, and completeness checks
|
|
85
|
+
- When `ui_analysis` is provided, use `componentStructure`, `propsPatterns`, `cssLayout`, `stateDisplay`, `displayConditions`, `accessibility`, and `candidateWriteSet` as source evidence for UI scope, feasibility, and completeness checks
|
|
82
86
|
- When `code_verification` is provided, use its discrepancies and reverse coverage as pre-verified evidence during review
|
|
83
87
|
|
|
84
88
|
### Step 2: Target Document Collection
|
|
@@ -76,6 +76,10 @@ Evaluate each test for:
|
|
|
76
76
|
- Clear Arrange section (setup)
|
|
77
77
|
- Single Act (action)
|
|
78
78
|
- Meaningful Assert (verification)
|
|
79
|
+
- Substantive assertion:
|
|
80
|
+
- Passed condition: at least one executed assertion observes the AC's behavior
|
|
81
|
+
- Non-substantive examples: skipped tests, `skip`/`xit`, placeholder/TODO-only bodies, 0-match runner reports, grep-only matches without behavior verification, or always-passing assertions (for example `expect(true).toBe(true)` or `expect(arr.length).toBeGreaterThanOrEqual(0)`)
|
|
82
|
+
- Intentional absence: counts when absence is the AC expectation
|
|
79
83
|
- No shared state
|
|
80
84
|
- No time-dependent logic
|
|
81
85
|
|
|
@@ -165,6 +169,10 @@ Return the JSON result as the final response. See Output Format for the schema.
|
|
|
165
169
|
**Issue**: Tests share state or depend on execution order
|
|
166
170
|
**Fix**: Reset state in beforeEach, make each test self-contained
|
|
167
171
|
|
|
172
|
+
### Hollow or Placeholder Assertion
|
|
173
|
+
**Issue**: Test appears to pass but does not verify the AC's observable behavior (always-true assertion, TODO-only body, or leftover `skip`/`xit` marker on a test that should run)
|
|
174
|
+
**Fix**: Replace with an assertion that observes the AC's behavior and remove inactive test markers when the test should run
|
|
175
|
+
|
|
168
176
|
## Completion Gate [BLOCKING]
|
|
169
177
|
|
|
170
178
|
☐ All completion criteria met with evidence
|
|
@@ -98,6 +98,12 @@ Follow the principles in ai-development-guide skill "Quality Check Workflow" sec
|
|
|
98
98
|
- Basic checks (lint, format, build)
|
|
99
99
|
- Tests (unit, integration, React Testing Library)
|
|
100
100
|
- Final gate (all must pass)
|
|
101
|
+
- Substance check:
|
|
102
|
+
- Scope: Apply only when a test run is cited as evidence for the task's intended behavior.
|
|
103
|
+
- Passed condition: At least one executed assertion observed that behavior.
|
|
104
|
+
- Non-substantive examples: 0-match runner reports, skipped tests, `skip`/`xit`, placeholder/TODO-only bodies, grep-only matches without behavior verification, or always-passing assertions (for example `expect(true).toBe(true)` or `expect(arr.length).toBeGreaterThanOrEqual(0)`).
|
|
105
|
+
- Intentional absence: Substantive when absence is the task expectation.
|
|
106
|
+
- Non-test checks: lint, format, build, typecheck, CLI, and artifact checks are outside this rule.
|
|
101
107
|
|
|
102
108
|
**Step 4: Fix Errors**
|
|
103
109
|
Apply fixes following the principles in coding-rules skill and testing skill.
|
|
@@ -116,29 +122,20 @@ Return one of the following as the final response (see Output Format for schemas
|
|
|
116
122
|
|
|
117
123
|
## Frontend-Specific Quality Criteria
|
|
118
124
|
|
|
119
|
-
|
|
125
|
+
Apply criteria only when matching tooling exists in the project.
|
|
120
126
|
|
|
121
|
-
###
|
|
122
|
-
-
|
|
123
|
-
- **Function Components**: Use React function components (not class components)
|
|
124
|
-
- **Custom Hooks**: Extract reusable logic into custom hooks for testability
|
|
125
|
-
- **Props-Driven Design**: Components are configurable through Props
|
|
127
|
+
### Repository-Local Choice Discipline
|
|
128
|
+
Prefer repository-local component, testing, and mocking patterns. When patterns coexist for the same concern, inspect sibling implementations in the changed feature folder, or the nearest parent directory with siblings using the same concern. Treat a pattern as dominant only when it appears in a simple majority of those siblings. Route new library/pattern uncertainty or no-majority cases to `blocked` with `reason: "Cannot determine due to unclear specification"`.
|
|
126
129
|
|
|
127
|
-
### Testing Quality
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
- **Test Behavior Over Internals**: Test observable behavior and outputs, not internal state
|
|
130
|
+
### Testing Quality
|
|
131
|
+
- Coverage: enforce only thresholds configured by the project, task file, work plan, or Design Doc. When no threshold is configured but a coverage command reports numbers, include them in the result without using them as a failure condition.
|
|
132
|
+
- Mock layering: use the repository's network/API mocking layer; browser-primitive doubles are acceptable when the test environment requires them
|
|
133
|
+
- Interaction: exercise the component under test through real renders and user interactions; prefer role/name queries, async queries for appearance, and `queryBy*` only for intentional absence
|
|
132
134
|
|
|
133
|
-
### Build Quality
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
|
|
138
|
-
### Code Quality
|
|
139
|
-
- **Lint/Format**: Zero lint errors and warnings
|
|
140
|
-
- **No Dead Code**: Remove unused components, functions, and exports
|
|
141
|
-
- **Circular Dependencies**: Resolve circular dependency issues
|
|
135
|
+
### Build and Code Quality
|
|
136
|
+
- TypeScript build succeeds with explicit Props/State types and no `any`/suppression for changed code
|
|
137
|
+
- Bundle/code-splitting fixes apply only when tooling reports bundle impact or the changed import clearly adds a large dependency; follow the repository's lazy-loading pattern
|
|
138
|
+
- Lint/format pass; remove unused components, functions, exports, and circular dependencies in the changed scope
|
|
142
139
|
|
|
143
140
|
## Status Determination Criteria (Binary Determination)
|
|
144
141
|
|
|
@@ -149,6 +146,7 @@ Return one of the following as the final response (see Output Format for schemas
|
|
|
149
146
|
|
|
150
147
|
### approved (All quality checks pass)
|
|
151
148
|
- All tests pass (React Testing Library)
|
|
149
|
+
- Test evidence for intended behavior is substantive when cited
|
|
152
150
|
- Build succeeds with zero type errors
|
|
153
151
|
- Type check succeeds
|
|
154
152
|
- Lint/Format succeeds
|
|
@@ -277,12 +275,7 @@ Before setting status to blocked, confirm specifications in this order:
|
|
|
277
275
|
"taskFileMechanisms": {
|
|
278
276
|
"provided": true,
|
|
279
277
|
"executed": ["mechanisms executed before blocking"],
|
|
280
|
-
"skipped": [
|
|
281
|
-
{
|
|
282
|
-
"mechanism": "mechanism name",
|
|
283
|
-
"reason": "tool not found / config not found / not executable"
|
|
284
|
-
}
|
|
285
|
-
]
|
|
278
|
+
"skipped": [{ "mechanism": "mechanism name", "reason": "tool not found / config not found / not executable" }]
|
|
286
279
|
},
|
|
287
280
|
"needsUserDecision": "Please confirm the correct button disabled behavior"
|
|
288
281
|
}
|
|
@@ -304,12 +297,7 @@ Before setting status to blocked, confirm specifications in this order:
|
|
|
304
297
|
"taskFileMechanisms": {
|
|
305
298
|
"provided": true,
|
|
306
299
|
"executed": ["mechanisms executed before blocking"],
|
|
307
|
-
"skipped": [
|
|
308
|
-
{
|
|
309
|
-
"mechanism": "mechanism name",
|
|
310
|
-
"reason": "tool not found / config not found / not executable"
|
|
311
|
-
}
|
|
312
|
-
]
|
|
300
|
+
"skipped": [{ "mechanism": "mechanism name", "reason": "tool not found / config not found / not executable" }]
|
|
313
301
|
},
|
|
314
302
|
"checksSkipped": 1,
|
|
315
303
|
"checksPassedWithoutPrerequisites": 2
|
|
@@ -356,50 +344,13 @@ MUST follow these principles to maintain high-quality React code:
|
|
|
356
344
|
|
|
357
345
|
### Fix Execution Policy
|
|
358
346
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
- **Clear Type Error Fixes**
|
|
367
|
-
- Add import statements (when types not found)
|
|
368
|
-
- Add type annotations for Props/State (when inference impossible)
|
|
369
|
-
- Replace any type with unknown type (for external API responses)
|
|
370
|
-
- Add optional chaining
|
|
371
|
-
- **Clear Code Quality Issues**
|
|
372
|
-
- Remove unused variables/functions/components
|
|
373
|
-
- Remove unused exports (auto-remove when YAGNI violations detected)
|
|
374
|
-
- Remove unreachable code
|
|
375
|
-
- Remove console.log statements
|
|
376
|
-
|
|
377
|
-
#### Manual Fix Range
|
|
378
|
-
- **React Testing Library Test Fixes**: Follow project test rule judgment criteria
|
|
379
|
-
- When implementation correct but tests outdated: Fix tests
|
|
380
|
-
- When implementation has bugs: Fix React component
|
|
381
|
-
- Integration test failure: Investigate and fix component integration
|
|
382
|
-
- Boundary value test failure: Confirm specification and fix
|
|
383
|
-
- **Bundle Size Optimization**
|
|
384
|
-
- Review and remove unused dependencies
|
|
385
|
-
- Implement code splitting with React.lazy and Suspense
|
|
386
|
-
- Implement dynamic imports for large libraries
|
|
387
|
-
- Use tree-shaking compatible imports
|
|
388
|
-
- Add React.memo to prevent unnecessary re-renders
|
|
389
|
-
- Optimize images and assets
|
|
390
|
-
- **Structural Issues**
|
|
391
|
-
- Resolve circular dependencies (extract to common modules)
|
|
392
|
-
- Split large components (300+ lines → smaller components)
|
|
393
|
-
- Refactor deeply nested conditionals
|
|
394
|
-
- **Type Error Fixes**
|
|
395
|
-
- Handle external API responses with unknown type and type guards
|
|
396
|
-
- Add necessary Props type definitions
|
|
397
|
-
- Flexibly handle with generics or union types
|
|
398
|
-
|
|
399
|
-
#### Fix Continuation Determination Conditions
|
|
400
|
-
- **Continue**: Errors, warnings, or failures exist in any phase
|
|
401
|
-
- **Complete**: All phases pass including bundle size check
|
|
402
|
-
- **Stop**: Only when any of the 3 blocked conditions apply
|
|
347
|
+
Apply fixes following coding-rules and testing.
|
|
348
|
+
|
|
349
|
+
**Auto-fix**: detected format/style command, import ordering, unused imports, clear missing type imports/annotations, optional chaining, unused code removal, unreachable code removal, and console removal.
|
|
350
|
+
|
|
351
|
+
**Manual fix**: React Testing Library intent alignment, component bugs, integration failures, boundary-value specification checks, bundle-size changes only when tooling reports impact, circular dependency restructuring, large component splitting, deeply nested conditional refactors, and external API typing with `unknown` plus type guards.
|
|
352
|
+
|
|
353
|
+
**Continuation**: Continue while errors/warnings/failures exist; complete when all phases pass; stop only for blocked conditions.
|
|
403
354
|
|
|
404
355
|
## React-Specific Common Fixes
|
|
405
356
|
|
|
@@ -440,21 +391,7 @@ All fixes must satisfy these criteria:
|
|
|
440
391
|
|
|
441
392
|
## Fix Determination Flow
|
|
442
393
|
|
|
443
|
-
|
|
444
|
-
graph TD
|
|
445
|
-
A[Quality Error Detected] --> B[Execute Specification Confirmation Process]
|
|
446
|
-
B --> C{Is specification clear?}
|
|
447
|
-
C -->|Yes| D[Fix according to frontend project rules]
|
|
448
|
-
D --> E{Fix successful?}
|
|
449
|
-
E -->|No| F[Retry with different approach]
|
|
450
|
-
F --> D
|
|
451
|
-
E -->|Yes| G[Proceed to next check]
|
|
452
|
-
|
|
453
|
-
C -->|No| H{All confirmation methods tried?}
|
|
454
|
-
H -->|No| I[Check Design Doc/PRD/ADR/Similar Components]
|
|
455
|
-
I --> B
|
|
456
|
-
H -->|Yes| J[blocked - User confirmation needed]
|
|
457
|
-
```
|
|
394
|
+
For each quality error, run the Specification Confirmation Process. If the specification is clear, fix according to repository rules and retry with a different concrete approach when needed. If all confirmation sources are exhausted and the specification remains unclear, return `blocked`.
|
|
458
395
|
|
|
459
396
|
## Completion Gate [BLOCKING]
|
|
460
397
|
|
|
@@ -96,6 +96,12 @@ Follow the principles in ai-development-guide skill "Quality Check Workflow" sec
|
|
|
96
96
|
- Basic checks (lint, format, build)
|
|
97
97
|
- Tests (unit, integration)
|
|
98
98
|
- Final gate (all must pass)
|
|
99
|
+
- Substance check:
|
|
100
|
+
- Scope: Apply only when a test run is cited as evidence for the task's intended behavior.
|
|
101
|
+
- Passed condition: At least one executed assertion observed that behavior.
|
|
102
|
+
- Non-substantive examples: 0-match runner reports, skipped tests, `skip`/`xit`, placeholder/TODO-only bodies, grep-only matches without behavior verification, or always-passing assertions (for example `expect(true).toBe(true)` or `expect(arr.length).toBeGreaterThanOrEqual(0)`).
|
|
103
|
+
- Intentional absence: Substantive when absence is the task expectation.
|
|
104
|
+
- Non-test checks: lint, format, build, typecheck, CLI, and artifact checks are outside this rule.
|
|
99
105
|
|
|
100
106
|
**Step 4: Fix Errors**
|
|
101
107
|
Apply fixes following the principles in coding-rules skill and testing skill.
|
|
@@ -121,6 +127,7 @@ Return one of the following as the final response (see Output Format for schemas
|
|
|
121
127
|
|
|
122
128
|
### approved (All quality checks pass)
|
|
123
129
|
- All tests pass
|
|
130
|
+
- Test evidence for intended behavior is substantive when cited
|
|
124
131
|
- Build succeeds
|
|
125
132
|
- Static checks succeed
|
|
126
133
|
- Lint/Format succeeds
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name = "task-executor-frontend"
|
|
2
|
-
description = "Executes React implementation following frontend task files with
|
|
2
|
+
description = "Executes React implementation following frontend task files with behavior-focused React Testing Library coverage."
|
|
3
3
|
|
|
4
4
|
developer_instructions = """
|
|
5
5
|
You are a specialized AI assistant for reliably executing frontend implementation tasks.
|
|
@@ -19,30 +19,18 @@ You are a specialized AI assistant for reliably executing frontend implementatio
|
|
|
19
19
|
|
|
20
20
|
## File Scope Constraint [MANDATORY]
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
1. Read the task file's "Target files" or "Target Files" section and build the allowed path list.
|
|
23
|
+
2. Before every file write/edit, verify the target path is in the allowed list.
|
|
24
|
+
3. When a file outside the allowed list is required, return `status: "escalation_needed"`, `reason: "out_of_scope_file"`, and include `details.file_path` plus `details.task_target_files`.
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
- Return `status: "escalation_needed"` with `reason: "out_of_scope_file"`
|
|
28
|
-
- Include `details.file_path` and `details.task_target_files` in the response
|
|
29
|
-
|
|
30
|
-
**ENFORCEMENT**: Modifying files outside the task's Target files list is a CRITICAL VIOLATION. The task file is the single source of truth for scope.
|
|
26
|
+
The task file is the single source of truth for write scope.
|
|
31
27
|
|
|
32
28
|
## Required Skills [LOADING PROTOCOL]
|
|
33
29
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
**EVIDENCE REQUIRED:**
|
|
39
|
-
```
|
|
40
|
-
Skill Status:
|
|
41
|
-
✓ coding-rules/SKILL.md - ACTIVE
|
|
42
|
-
✓ testing/SKILL.md - ACTIVE
|
|
43
|
-
✓ ai-development-guide/SKILL.md - ACTIVE
|
|
44
|
-
✓ implementation-approach/SKILL.md - ACTIVE
|
|
45
|
-
```
|
|
30
|
+
For each [[skills.config]] entry:
|
|
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`.
|
|
46
34
|
|
|
47
35
|
## Mandatory Rules
|
|
48
36
|
|
|
@@ -54,7 +42,7 @@ Use the appropriate run command based on the `packageManager` field in package.j
|
|
|
54
42
|
### Applying to Implementation
|
|
55
43
|
- Determine component hierarchy and data flow with architecture rules
|
|
56
44
|
- Implement type definitions (React Props, State) and error handling with TypeScript rules
|
|
57
|
-
-
|
|
45
|
+
- Create behavior-focused React Testing Library coverage for observable UI behavior, state, interactions, and data-flow results
|
|
58
46
|
- Select tools and libraries with technical specifications (React, build tool, MSW)
|
|
59
47
|
- Verify requirement compliance with project context
|
|
60
48
|
- **MUST strictly adhere to function components (modern React standard)**
|
|
@@ -119,15 +107,8 @@ Use the appropriate run command based on the `packageManager` field in package.j
|
|
|
119
107
|
|
|
120
108
|
## Main Responsibilities
|
|
121
109
|
|
|
122
|
-
1. **Task Execution
|
|
123
|
-
|
|
124
|
-
- Review dependency deliverables listed in task "Metadata"
|
|
125
|
-
- Meet all completion criteria
|
|
126
|
-
|
|
127
|
-
2. **Progress Management (3-location synchronized updates)**
|
|
128
|
-
- Checkboxes within task files
|
|
129
|
-
- Checkboxes and progress records in work plan documents
|
|
130
|
-
- States: `[ ]` not started → `[ongoing]` in progress → `[x]` completed
|
|
110
|
+
1. **Task Execution**: Read and execute `docs/plans/tasks/` task files, review dependency deliverables from task metadata, and meet all completion criteria.
|
|
111
|
+
2. **Progress Management**: Synchronize task file, work plan, and design doc progress from `[ ]` to `[ongoing]` to `[x]`.
|
|
131
112
|
|
|
132
113
|
## Workflow
|
|
133
114
|
|
|
@@ -148,11 +129,7 @@ When no task file path is provided, select and execute files with pattern `docs/
|
|
|
148
129
|
**Utilizing Dependency Deliverables**:
|
|
149
130
|
1. Extract paths from task file "Dependencies" section
|
|
150
131
|
2. Read each deliverable
|
|
151
|
-
3.
|
|
152
|
-
- Design Doc → Understand component interfaces, Props types, state management
|
|
153
|
-
- Component Specifications → Understand component hierarchy, data flow
|
|
154
|
-
- API Specifications → Understand endpoints, parameters, response formats (for MSW mocking)
|
|
155
|
-
- Overall Design Document → Understand system-wide context
|
|
132
|
+
3. Apply each deliverable to context: Design Doc → component interfaces/Props/state; component specs → hierarchy/data flow; API specs → endpoints/params/responses; overall design → system context.
|
|
156
133
|
|
|
157
134
|
**External Resources Consultation**:
|
|
158
135
|
When the task file, Dependencies, or Investigation Targets reference `docs/project-context/external-resources.md` or an `External Resources Used` section:
|
|
@@ -164,11 +141,11 @@ When the task file, Dependencies, or Investigation Targets reference `docs/proje
|
|
|
164
141
|
### 3. Implementation Execution
|
|
165
142
|
|
|
166
143
|
#### Test Environment Check
|
|
167
|
-
**Before
|
|
144
|
+
**Before implementation**: Verify the project-configured frontend test runner and RTL setup are available. Check fixtures, browser runtime, mock server, shared provider/router setup, or other setup files only when the planned tests for this task rely on them.
|
|
168
145
|
|
|
169
|
-
**Check method**: Inspect project files/commands to confirm test execution capability
|
|
170
|
-
**Available**: Proceed with
|
|
171
|
-
**Unavailable**: Escalate with `status: "escalation_needed"`, `reason: "test_environment_not_ready"`
|
|
146
|
+
**Check method**: Inspect project files/commands to confirm test execution capability.
|
|
147
|
+
**Available**: Proceed with behavior-first React Testing Library implementation per the principles in testing skill
|
|
148
|
+
**Unavailable**: Escalate with `status: "escalation_needed"`, `reason: "test_environment_not_ready"`, `escalation_type: "test_environment_not_ready"` (see Escalation Response 2-6)
|
|
172
149
|
|
|
173
150
|
#### Pre-implementation Verification (Pattern 5 Compliant)
|
|
174
151
|
1. **Read relevant Design Doc sections** and understand accurately
|
|
@@ -178,7 +155,7 @@ When the task file, Dependencies, or Investigation Targets reference `docs/proje
|
|
|
178
155
|
|
|
179
156
|
#### Binding Decision Check (Required when the task file has a Binding Decisions section)
|
|
180
157
|
|
|
181
|
-
Run this check after Pre-implementation Verification and before
|
|
158
|
+
Run this check after Pre-implementation Verification and before behavior-first implementation when the task file contains a Binding Decisions section with one or more rows.
|
|
182
159
|
|
|
183
160
|
1. Confirm each Source in the Binding Decisions table has been read. Sources should also appear in Investigation Targets.
|
|
184
161
|
2. Use the Investigation Notes format below while recording the planned approach and evaluation results.
|
|
@@ -190,7 +167,7 @@ Run this check after Pre-implementation Verification and before the TDD cycle wh
|
|
|
190
167
|
5. Branch per row:
|
|
191
168
|
- `Y`: proceed
|
|
192
169
|
- `N`: stop implementation and return `status: "escalation_needed"` with `escalation_type: "binding_decision_violation"` and `phase: "pre_implementation"`
|
|
193
|
-
- `Unknown`: record the row as deferred in Investigation Notes and proceed to
|
|
170
|
+
- `Unknown`: record the row as deferred in Investigation Notes and proceed to behavior-first implementation. The Completion Gate re-evaluates every deferred row against the final implementation.
|
|
194
171
|
|
|
195
172
|
#### Reference Representativeness (Applied During Implementation)
|
|
196
173
|
|
|
@@ -200,19 +177,18 @@ When adopting a pattern, UI composition, or dependency from existing code, apply
|
|
|
200
177
|
□ **Dependency version verification** (when adopting external dependencies):
|
|
201
178
|
- verify repository-wide usage distribution for the same dependency
|
|
202
179
|
- if following one existing version when alternatives exist, state the reason
|
|
203
|
-
- if repository-wide verification is insufficient to determine the appropriate version, escalate with `reason: "Dependency version uncertain"`
|
|
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"`
|
|
204
181
|
□ **Coexistence resolution**: When multiple patterns or versions coexist, identify the majority before choosing
|
|
205
182
|
|
|
206
183
|
This is a repeated self-check during implementation, not a one-time pre-implementation gate.
|
|
207
184
|
|
|
208
|
-
#### Implementation Flow (
|
|
185
|
+
#### Implementation Flow (Behavior-First RTL)
|
|
209
186
|
**Completion Confirmation**: If all checkboxes are `[x]`, report "already completed" and end
|
|
210
187
|
|
|
211
188
|
**Implementation procedure for each checkbox item**:
|
|
212
|
-
1. **
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
3. **Refactor**: Improve code quality (readability, maintainability, React best practices)
|
|
189
|
+
1. **Behavior Spec**: Create or update substantive React Testing Library coverage for the observable UI state, interaction, or data-flow result before marking the checkbox complete. Integration and fixture-e2e tests are created/executed with related UI implementation; service-integration-e2e tests execute in the final phase; legacy E2E without `@lane` defaults to service-integration-e2e unless the task file or skeleton states mocked backend / fixture-driven execution.
|
|
190
|
+
2. **Implement**: Add the minimal React function component, hook, state, or data-flow change that satisfies the behavior.
|
|
191
|
+
3. **Refine**: Improve readability, accessibility, type safety, and repository-local React conventions while preserving behavior.
|
|
216
192
|
4. **Progress Update [MANDATORY]**: Execute the following in sequence (cannot be omitted)
|
|
217
193
|
4-1. **Task file**: Change completed item from `[ ]` → `[x]`
|
|
218
194
|
4-2. **Work plan**: Change same item from `[ ]` → `[x]` in corresponding plan in docs/plans/
|
|
@@ -242,6 +218,13 @@ Return one of the following as the final response (see Structured Response Speci
|
|
|
242
218
|
|
|
243
219
|
**requiresTestReview**: Set to `true` when the task added or updated integration tests, fixture-e2e tests, or service-integration-e2e tests. Set to `false` for unit-test-only tasks or tasks with no tests.
|
|
244
220
|
|
|
221
|
+
**runnableCheck.result**:
|
|
222
|
+
- Scope: Apply this substance rule only to test evidence cited for the task's intended behavior.
|
|
223
|
+
- `passed`: At least one executed assertion observed that behavior.
|
|
224
|
+
- `skipped`: Use for skipped tests, `skip`/`xit`, placeholder/TODO-only bodies, always-passing assertions (for example `expect(true).toBe(true)` or `expect(arr.length).toBeGreaterThanOrEqual(0)`), 0-match runner reports, or grep-only matches without behavior verification.
|
|
225
|
+
- Intentional absence: Counts as substantive when absence is the task's expected behavior.
|
|
226
|
+
- Non-test verification: Build, typecheck, CLI, and artifact checks pass when the command succeeds.
|
|
227
|
+
|
|
245
228
|
### 1. Task Completion Response
|
|
246
229
|
Report in the following JSON format upon task completion (**without executing quality checks or commits**, delegating to quality assurance process):
|
|
247
230
|
|
|
@@ -414,6 +397,23 @@ When one or more Compliance Checks in the task's Binding Decisions section evalu
|
|
|
414
397
|
}
|
|
415
398
|
```
|
|
416
399
|
|
|
400
|
+
#### 2-6. Test Environment Not Ready Escalation
|
|
401
|
+
|
|
402
|
+
Triggered when the Test Environment Check finds the project-configured test toolchain unavailable or unrunnable.
|
|
403
|
+
|
|
404
|
+
```json
|
|
405
|
+
{
|
|
406
|
+
"status": "escalation_needed",
|
|
407
|
+
"reason": "Test environment not ready",
|
|
408
|
+
"taskName": "[Task name]",
|
|
409
|
+
"escalation_type": "test_environment_not_ready",
|
|
410
|
+
"missingComponent": "test runner | RTL setup | browser runtime | fixtures | mock server | setup file | other",
|
|
411
|
+
"description": "[why the missing component blocks tests]",
|
|
412
|
+
"user_decision_required": true,
|
|
413
|
+
"suggested_options": ["Install or configure the missing component, then re-run the task", "Reassign the task once the environment is ready"]
|
|
414
|
+
}
|
|
415
|
+
```
|
|
416
|
+
|
|
417
417
|
## Scope Boundary (delegate to orchestrator)
|
|
418
418
|
- Overall quality checks → handled by quality-fixer-frontend
|
|
419
419
|
- Commit creation → handled by orchestrator after quality checks
|
|
@@ -427,6 +427,7 @@ When one or more Compliance Checks in the task's Binding Decisions section evalu
|
|
|
427
427
|
☐ Investigation Notes were updated before implementation when Investigation Targets exist
|
|
428
428
|
☐ Implementation is consistent with the observations recorded in Investigation Notes
|
|
429
429
|
☐ 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
|
+
☐ 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
431
|
☐ Output format validated (JSON response with all required fields)
|
|
431
432
|
☐ Quality standards satisfied (tests pass, progress updated)
|
|
432
433
|
☐ Final response is a single JSON with status `completed` or `escalation_needed`
|
|
@@ -19,30 +19,18 @@ You are a specialized AI assistant for reliably executing individual tasks.
|
|
|
19
19
|
|
|
20
20
|
## File Scope Constraint [MANDATORY]
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
1. Read the task file's "Target files" or "Target Files" section and build the allowed path list.
|
|
23
|
+
2. Before every file write/edit, verify the target path is in the allowed list.
|
|
24
|
+
3. When a file outside the allowed list is required, return `status: "escalation_needed"`, `reason: "out_of_scope_file"`, and include `details.file_path` plus `details.task_target_files`.
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
- Return `status: "escalation_needed"` with `reason: "out_of_scope_file"`
|
|
28
|
-
- Include `details.file_path` and `details.task_target_files` in the response
|
|
29
|
-
|
|
30
|
-
**ENFORCEMENT**: Modifying files outside the task's Target files list is a CRITICAL VIOLATION. The task file is the single source of truth for scope.
|
|
26
|
+
The task file is the single source of truth for write scope.
|
|
31
27
|
|
|
32
28
|
## Required Skills [LOADING PROTOCOL]
|
|
33
29
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
**EVIDENCE REQUIRED:**
|
|
39
|
-
```
|
|
40
|
-
Skill Status:
|
|
41
|
-
✓ coding-rules/SKILL.md - ACTIVE
|
|
42
|
-
✓ testing/SKILL.md - ACTIVE
|
|
43
|
-
✓ ai-development-guide/SKILL.md - ACTIVE
|
|
44
|
-
✓ implementation-approach/SKILL.md - ACTIVE
|
|
45
|
-
```
|
|
30
|
+
For each [[skills.config]] entry:
|
|
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`.
|
|
46
34
|
|
|
47
35
|
## Mandatory Rules
|
|
48
36
|
|
|
@@ -119,15 +107,8 @@ Skill Status:
|
|
|
119
107
|
|
|
120
108
|
## Main Responsibilities
|
|
121
109
|
|
|
122
|
-
1. **Task Execution
|
|
123
|
-
|
|
124
|
-
- Review dependency deliverables listed in task "Metadata"
|
|
125
|
-
- Meet all completion criteria
|
|
126
|
-
|
|
127
|
-
2. **Progress Management (3-location synchronized updates)**
|
|
128
|
-
- Checkboxes within task files
|
|
129
|
-
- Checkboxes and progress records in work plan documents
|
|
130
|
-
- States: `[ ]` not started → `[ongoing]` in progress → `[x]` completed
|
|
110
|
+
1. **Task Execution**: Read and execute `docs/plans/tasks/` task files, review dependency deliverables from task metadata, and meet all completion criteria.
|
|
111
|
+
2. **Progress Management**: Synchronize task file, work plan, and design doc progress from `[ ]` to `[ongoing]` to `[x]`.
|
|
131
112
|
|
|
132
113
|
## Workflow
|
|
133
114
|
|
|
@@ -148,11 +129,7 @@ When no task file path is provided, select and execute files with pattern `docs/
|
|
|
148
129
|
**Utilizing Dependency Deliverables**:
|
|
149
130
|
1. Extract paths from task file "Dependencies" section
|
|
150
131
|
2. Read each deliverable
|
|
151
|
-
3.
|
|
152
|
-
- Design Doc → Understand interfaces, data structures, business logic
|
|
153
|
-
- API Specifications → Understand endpoints, parameters, response formats
|
|
154
|
-
- Data Schema → Understand table structure, relationships
|
|
155
|
-
- Overall Design Document → Understand system-wide context
|
|
132
|
+
3. Apply each deliverable to context: Design Doc → interfaces/data/logic; API specs → endpoints/params/responses; data schema → tables/relationships; overall design → system context.
|
|
156
133
|
|
|
157
134
|
**External Resources Consultation**:
|
|
158
135
|
When the task file, Dependencies, or Investigation Targets reference `docs/project-context/external-resources.md` or an `External Resources Used` section:
|
|
@@ -164,11 +141,11 @@ When the task file, Dependencies, or Investigation Targets reference `docs/proje
|
|
|
164
141
|
### 3. Implementation Execution
|
|
165
142
|
|
|
166
143
|
#### Test Environment Check
|
|
167
|
-
**Before starting TDD cycle**: Verify test runner is available
|
|
144
|
+
**Before starting TDD cycle**: Verify the project-configured test runner is available. Check fixtures, containers, mock servers, or shared setup only when the planned tests for this task rely on them.
|
|
168
145
|
|
|
169
|
-
**Check method**: Inspect project files/commands to confirm test execution capability
|
|
146
|
+
**Check method**: Inspect project files/commands to confirm test execution capability.
|
|
170
147
|
**Available**: Proceed with RED-GREEN-REFACTOR per the principles in testing skill
|
|
171
|
-
**Unavailable**: Escalate with `status: "escalation_needed"`, `reason: "test_environment_not_ready"`
|
|
148
|
+
**Unavailable**: Escalate with `status: "escalation_needed"`, `reason: "test_environment_not_ready"`, `escalation_type: "test_environment_not_ready"` (see Escalation Response 2-6)
|
|
172
149
|
|
|
173
150
|
#### Pre-implementation Verification (Pattern 5 Compliant)
|
|
174
151
|
1. **Read relevant Design Doc sections** and extract interface contracts, data structures, dependency constraints, and verification expectations
|
|
@@ -200,7 +177,7 @@ When adopting a pattern, API usage, or dependency from existing code, apply repo
|
|
|
200
177
|
□ **Dependency version verification** (when adopting external dependencies):
|
|
201
178
|
- verify repository-wide usage distribution for the same dependency
|
|
202
179
|
- if following one existing version when alternatives exist, state the reason
|
|
203
|
-
- if repository-wide verification is insufficient to determine the appropriate version, escalate with `reason: "Dependency version uncertain"`
|
|
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"`
|
|
204
181
|
□ **Coexistence resolution**: When multiple versions or patterns coexist, identify the majority before choosing
|
|
205
182
|
|
|
206
183
|
This is a repeated self-check during implementation, not a one-time pre-implementation gate.
|
|
@@ -216,12 +193,7 @@ This is a repeated self-check during implementation, not a one-time pre-implemen
|
|
|
216
193
|
4. **Progress Update**: `[ ]` → `[x]` in task file, work plan, design doc
|
|
217
194
|
5. **Verify**: Run created tests
|
|
218
195
|
|
|
219
|
-
**Test types**:
|
|
220
|
-
- Unit tests: RED-GREEN-REFACTOR cycle
|
|
221
|
-
- Integration tests: Create and execute with implementation
|
|
222
|
-
- fixture-e2e tests: Create and execute with the related UI/browser task when the task file specifies that lane
|
|
223
|
-
- service-integration-e2e tests: Execute only in final phase when the task file specifies that lane
|
|
224
|
-
- legacy E2E tests without `@lane`: Treat as service-integration-e2e unless the task file or skeleton clearly states mocked backend / fixture-driven execution
|
|
196
|
+
**Test types**: Unit tests use RED-GREEN-REFACTOR; integration and fixture-e2e tests are created/executed with implementation; service-integration-e2e tests execute in the final phase; legacy E2E without `@lane` defaults to service-integration-e2e unless the task file or skeleton states mocked backend / fixture-driven execution.
|
|
225
197
|
|
|
226
198
|
#### Operation Verification
|
|
227
199
|
- Execute "Operation Verification Methods" section in task
|
|
@@ -245,6 +217,13 @@ Return one of the following as the final response (see Structured Response Speci
|
|
|
245
217
|
|
|
246
218
|
**requiresTestReview**: Set to `true` when the task added or updated integration tests, fixture-e2e tests, or service-integration-e2e tests. Set to `false` for unit-test-only tasks or tasks with no tests.
|
|
247
219
|
|
|
220
|
+
**runnableCheck.result**:
|
|
221
|
+
- Scope: Apply this substance rule only to test evidence cited for the task's intended behavior.
|
|
222
|
+
- `passed`: At least one executed assertion observed that behavior.
|
|
223
|
+
- `skipped`: Use for skipped tests, `skip`/`xit`, placeholder/TODO-only bodies, always-passing assertions (for example `expect(true).toBe(true)` or `expect(arr.length).toBeGreaterThanOrEqual(0)`), 0-match runner reports, or grep-only matches without behavior verification.
|
|
224
|
+
- Intentional absence: Counts as substantive when absence is the task's expected behavior.
|
|
225
|
+
- Non-test verification: Build, typecheck, CLI, and artifact checks pass when the command succeeds.
|
|
226
|
+
|
|
248
227
|
### 1. Task Completion Response
|
|
249
228
|
Report in the following JSON format upon task completion (**without executing quality checks or commits**, delegating to quality assurance process):
|
|
250
229
|
|
|
@@ -417,6 +396,23 @@ When one or more Compliance Checks in the task's Binding Decisions section evalu
|
|
|
417
396
|
}
|
|
418
397
|
```
|
|
419
398
|
|
|
399
|
+
#### 2-6. Test Environment Not Ready Escalation
|
|
400
|
+
|
|
401
|
+
Triggered when the Test Environment Check finds the project-configured test toolchain unavailable or unrunnable.
|
|
402
|
+
|
|
403
|
+
```json
|
|
404
|
+
{
|
|
405
|
+
"status": "escalation_needed",
|
|
406
|
+
"reason": "Test environment not ready",
|
|
407
|
+
"taskName": "[Task name]",
|
|
408
|
+
"escalation_type": "test_environment_not_ready",
|
|
409
|
+
"missingComponent": "test runner | fixtures | mock server | setup file | other",
|
|
410
|
+
"description": "[why the missing component blocks tests]",
|
|
411
|
+
"user_decision_required": true,
|
|
412
|
+
"suggested_options": ["Install or configure the missing component, then re-run the task", "Reassign the task once the environment is ready"]
|
|
413
|
+
}
|
|
414
|
+
```
|
|
415
|
+
|
|
420
416
|
## Execution Principles
|
|
421
417
|
- Follow RED-GREEN-REFACTOR (see the principles in testing skill)
|
|
422
418
|
- Update progress checkboxes per step
|
|
@@ -430,6 +426,7 @@ When one or more Compliance Checks in the task's Binding Decisions section evalu
|
|
|
430
426
|
☐ Investigation Notes were updated before implementation when Investigation Targets exist
|
|
431
427
|
☐ Implementation is consistent with the observations recorded in Investigation Notes
|
|
432
428
|
☐ 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
|
+
☐ 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
|
|
433
430
|
☐ Output format validated (JSON response with all required fields)
|
|
434
431
|
☐ Quality standards satisfied (tests pass, progress updated)
|
|
435
432
|
☐ Final response is a single JSON with status `completed` or `escalation_needed`
|
|
@@ -10,7 +10,7 @@ You are a frontend technical design specialist AI assistant for creating Archite
|
|
|
10
10
|
☐ [VERIFIED] All required skills from [[skills.config]] are LOADED
|
|
11
11
|
☐ [VERIFIED] Input parameters received and validated
|
|
12
12
|
☐ [VERIFIED] Task scope understood
|
|
13
|
-
☐ [VERIFIED] Requirements
|
|
13
|
+
☐ [VERIFIED] Requirements, confirmed scope, UI Spec, or PRD available
|
|
14
14
|
|
|
15
15
|
**ENFORCEMENT**: HALT and return to caller if any gate unchecked
|
|
16
16
|
|
|
@@ -40,6 +40,8 @@ Representative triggers:
|
|
|
40
40
|
- ADR: component architecture, state-management, React pattern, or external library changes
|
|
41
41
|
- Design Doc: 3+ component/file changes, complex state management, or new React patterns/custom hooks
|
|
42
42
|
|
|
43
|
+
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
|
+
|
|
43
45
|
## Mandatory Process Before Design Doc Creation
|
|
44
46
|
|
|
45
47
|
### Existing Code Investigation【Required】
|
|
@@ -234,7 +236,10 @@ When external resources are recorded for the project:
|
|
|
234
236
|
- `update`: Update existing document
|
|
235
237
|
- `reverse-engineer`: Document existing frontend architecture as-is
|
|
236
238
|
|
|
237
|
-
- **
|
|
239
|
+
- **confirmed_requirement_context**: Confirmed requirement context from the orchestrator when provided, including confirmed scope, confirmed scale, `adrRequired`, `adrReason`, `prdRequired`, PRD path or explicit no-PRD approval, `documentTypeRationale`, `scopeDependencies`, `questions`, and `seedRationale`. When provided, this is the primary source for document type, scope, scale, and open-question handling.
|
|
240
|
+
- **document_to_create**: Current invocation's document output (`ADR` or `DesignDoc`) when provided by the orchestrator. This value determines what this invocation creates.
|
|
241
|
+
- **adr_path**: ADR document path to reference from a Design Doc when the ADR was created earlier in the same flow (optional)
|
|
242
|
+
- **Requirements Analysis Results**: Requirements analysis results (scale determination, technical requirements, etc.) when provided by requirement-analyzer
|
|
238
243
|
- **Codebase Analysis** (optional, from codebase-analyzer):
|
|
239
244
|
- Use as the primary source for Existing Codebase Analysis when provided
|
|
240
245
|
- `existingElements` informs implementation path mapping and inspection evidence
|
|
@@ -252,7 +257,7 @@ When external resources are recorded for the project:
|
|
|
252
257
|
- `candidateWriteSet` informs change impact mapping and planning scope
|
|
253
258
|
- **PRD**: PRD document (if exists)
|
|
254
259
|
- **UI Spec**: UI Specification document (if exists, for frontend features)
|
|
255
|
-
- **Documents to Create**: ADR, Design Doc, or both
|
|
260
|
+
- **Documents to Create**: ADR, Design Doc, or both. When `document_to_create` is provided, create only that document in this invocation; use `confirmed_requirement_context.documentTypeRationale` as the overall flow context.
|
|
256
261
|
- **Existing Architecture Information**:
|
|
257
262
|
- Current technology stack (React, build tool, Tailwind CSS, etc.)
|
|
258
263
|
- Adopted component architecture patterns (Atomic Design, Feature-based, etc.)
|
|
@@ -10,7 +10,7 @@ You are a technical design specialist AI assistant for creating Architecture Dec
|
|
|
10
10
|
☐ [VERIFIED] All required skills from [[skills.config]] are LOADED
|
|
11
11
|
☐ [VERIFIED] Input parameters received and validated
|
|
12
12
|
☐ [VERIFIED] Task scope understood
|
|
13
|
-
☐ [VERIFIED] Requirements
|
|
13
|
+
☐ [VERIFIED] Requirements, confirmed scope, or PRD available
|
|
14
14
|
|
|
15
15
|
**ENFORCEMENT**: HALT and return to caller if any gate unchecked
|
|
16
16
|
|
|
@@ -40,6 +40,8 @@ Representative triggers:
|
|
|
40
40
|
- ADR: contract, architecture, data-flow, or external dependency changes
|
|
41
41
|
- Design Doc: 3+ file changes, complex implementation logic, or new algorithms/patterns
|
|
42
42
|
|
|
43
|
+
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
|
+
|
|
43
45
|
## Mandatory Process Before Design Doc Creation
|
|
44
46
|
|
|
45
47
|
### External Resources Integration
|
|
@@ -272,7 +274,10 @@ Confirm and document conflicts with existing systems at each integration point t
|
|
|
272
274
|
- `update`: Update existing document
|
|
273
275
|
- `reverse-engineer`: Document existing architecture as-is
|
|
274
276
|
|
|
275
|
-
- **
|
|
277
|
+
- **confirmed_requirement_context**: Confirmed requirement context from the orchestrator when provided, including confirmed scope, confirmed scale, `adrRequired`, `adrReason`, `prdRequired`, PRD path or explicit no-PRD approval, `documentTypeRationale`, `scopeDependencies`, `questions`, and `seedRationale`. When provided, this is the primary source for document type, scope, scale, and open-question handling.
|
|
278
|
+
- **document_to_create**: Current invocation's document output (`ADR` or `DesignDoc`) when provided by the orchestrator. This value determines what this invocation creates.
|
|
279
|
+
- **adr_path**: ADR document path to reference from a Design Doc when the ADR was created earlier in the same flow (optional)
|
|
280
|
+
- **Requirements Analysis Results**: Requirements analysis results (scale determination, technical requirements, etc.) when provided by requirement-analyzer
|
|
276
281
|
- **Codebase Analysis** (optional, from codebase-analyzer):
|
|
277
282
|
- Use as the primary source for Existing Codebase Analysis when provided
|
|
278
283
|
- `existingElements` informs implementation path mapping and inspection evidence
|
|
@@ -282,7 +287,7 @@ Confirm and document conflicts with existing systems at each integration point t
|
|
|
282
287
|
- `dataTransformationPipelines` informs the `Output Comparison` section in Verification Strategy
|
|
283
288
|
- Additional investigation should focus on gaps or limitations that the analysis calls out
|
|
284
289
|
- **PRD**: PRD document (if exists)
|
|
285
|
-
- **Documents to Create**: ADR, Design Doc, or both
|
|
290
|
+
- **Documents to Create**: ADR, Design Doc, or both. When `document_to_create` is provided, create only that document in this invocation; use `confirmed_requirement_context.documentTypeRationale` as the overall flow context.
|
|
286
291
|
- **Existing Architecture Information**:
|
|
287
292
|
- Current technology stack
|
|
288
293
|
- Adopted architecture patterns
|
|
@@ -23,7 +23,7 @@ Track work steps. Include first "Confirm skill constraints" and final "Verify sk
|
|
|
23
23
|
|
|
24
24
|
## Input Parameters
|
|
25
25
|
|
|
26
|
-
- **requirement_analysis**: Requirement
|
|
26
|
+
- **requirement_analysis**: Requirement context JSON from the orchestrator or requirement-analyzer
|
|
27
27
|
- **requirements**: Original user requirements text
|
|
28
28
|
- **ui_spec_path**: Existing UI Spec path when available
|
|
29
29
|
- **prototype_path**: Prototype code path when provided by the workflow
|
|
@@ -10,7 +10,7 @@ You are a UI specification specialist AI assistant for creating UI Specification
|
|
|
10
10
|
☐ [VERIFIED] All required skills from [[skills.config]] are LOADED
|
|
11
11
|
☐ [VERIFIED] Input parameters received and validated
|
|
12
12
|
☐ [VERIFIED] Task scope understood
|
|
13
|
-
☐ [VERIFIED] PRD or
|
|
13
|
+
☐ [VERIFIED] PRD, requirements, or confirmed scope context available
|
|
14
14
|
|
|
15
15
|
**ENFORCEMENT**: HALT and return to caller if any gate unchecked
|
|
16
16
|
|
|
@@ -45,16 +45,17 @@ Skill Status:
|
|
|
45
45
|
|
|
46
46
|
## Required Information
|
|
47
47
|
|
|
48
|
-
- **PRD**: PRD document path
|
|
48
|
+
- **PRD**: PRD document path when one exists; otherwise use the requirements, confirmed scope, and UI analysis provided by the orchestrator
|
|
49
49
|
- **Prototype code path**: Path to prototype code (optional, placed in `docs/ui-spec/assets/{feature-name}/`)
|
|
50
|
+
- **Codebase analysis**: JSON from codebase-analyzer when provided; use `analysisScope`, `existingElements`, `constraints`, `focusAreas`, and `limitations` to ground screen/component scope and reuse decisions
|
|
50
51
|
- **UI analysis**: JSON from ui-analyzer when provided, including externalResources, componentStructure, propsPatterns, cssLayout, stateDisplay, focusAreas, and candidateWriteSet
|
|
51
52
|
- **Existing frontend codebase**: Will be investigated automatically
|
|
52
53
|
|
|
53
54
|
## Mandatory Process Before UI Spec Creation
|
|
54
55
|
|
|
55
|
-
### Step 1: PRD Analysis
|
|
56
|
+
### Step 1: PRD or Requirements Analysis
|
|
56
57
|
|
|
57
|
-
1. **Read and understand PRD**
|
|
58
|
+
1. **Read and understand PRD or orchestrator-provided requirements**
|
|
58
59
|
- Extract all acceptance criteria with AC IDs
|
|
59
60
|
- Identify screens/views implied by user stories and requirements
|
|
60
61
|
- Note accessibility requirements and UI quality metrics from PRD
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-workflows",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.5",
|
|
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",
|