create-ai-project 1.20.9 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/.claude/agents-en/acceptance-test-generator.md +112 -50
  2. package/.claude/agents-en/task-decomposer.md +40 -4
  3. package/.claude/agents-en/ui-spec-designer.md +2 -0
  4. package/.claude/agents-en/work-planner.md +98 -29
  5. package/.claude/agents-ja/acceptance-test-generator.md +113 -49
  6. package/.claude/agents-ja/task-decomposer.md +44 -8
  7. package/.claude/agents-ja/ui-spec-designer.md +2 -0
  8. package/.claude/agents-ja/work-planner.md +96 -29
  9. package/.claude/commands-en/add-integration-tests.md +8 -0
  10. package/.claude/commands-en/build.md +75 -23
  11. package/.claude/commands-en/front-build.md +56 -25
  12. package/.claude/commands-en/front-plan.md +7 -6
  13. package/.claude/commands-en/front-review.md +81 -19
  14. package/.claude/commands-en/implement.md +36 -5
  15. package/.claude/commands-en/plan.md +9 -8
  16. package/.claude/commands-en/prepare-implementation.md +191 -0
  17. package/.claude/commands-en/project-inject.md +84 -56
  18. package/.claude/commands-en/review.md +79 -20
  19. package/.claude/commands-ja/add-integration-tests.md +8 -0
  20. package/.claude/commands-ja/build.md +77 -25
  21. package/.claude/commands-ja/front-build.md +59 -28
  22. package/.claude/commands-ja/front-plan.md +8 -7
  23. package/.claude/commands-ja/front-review.md +81 -19
  24. package/.claude/commands-ja/implement.md +36 -5
  25. package/.claude/commands-ja/plan.md +10 -9
  26. package/.claude/commands-ja/prepare-implementation.md +191 -0
  27. package/.claude/commands-ja/project-inject.md +84 -56
  28. package/.claude/commands-ja/review.md +79 -20
  29. package/.claude/skills-en/documentation-criteria/references/plan-template.md +22 -0
  30. package/.claude/skills-en/documentation-criteria/references/ui-spec-template.md +2 -0
  31. package/.claude/skills-en/frontend-typescript-testing/references/e2e.md +81 -7
  32. package/.claude/skills-en/integration-e2e-testing/SKILL.md +48 -23
  33. package/.claude/skills-en/integration-e2e-testing/references/e2e-design.md +31 -13
  34. package/.claude/skills-en/project-context/SKILL.md +2 -15
  35. package/.claude/skills-en/project-context/references/external-resources-api.md +76 -0
  36. package/.claude/skills-en/project-context/references/external-resources-backend.md +76 -0
  37. package/.claude/skills-en/project-context/references/external-resources-frontend.md +74 -0
  38. package/.claude/skills-en/project-context/references/external-resources-infra.md +76 -0
  39. package/.claude/skills-en/project-context/references/template.md +154 -0
  40. package/.claude/skills-en/subagents-orchestration-guide/SKILL.md +36 -14
  41. package/.claude/skills-en/task-analyzer/references/skills-index.yaml +0 -5
  42. package/.claude/skills-ja/documentation-criteria/references/plan-template.md +22 -0
  43. package/.claude/skills-ja/documentation-criteria/references/ui-spec-template.md +2 -0
  44. package/.claude/skills-ja/frontend-typescript-testing/references/e2e.md +81 -7
  45. package/.claude/skills-ja/integration-e2e-testing/SKILL.md +48 -23
  46. package/.claude/skills-ja/integration-e2e-testing/references/e2e-design.md +31 -13
  47. package/.claude/skills-ja/project-context/SKILL.md +2 -15
  48. package/.claude/skills-ja/project-context/references/external-resources-api.md +76 -0
  49. package/.claude/skills-ja/project-context/references/external-resources-backend.md +76 -0
  50. package/.claude/skills-ja/project-context/references/external-resources-frontend.md +74 -0
  51. package/.claude/skills-ja/project-context/references/external-resources-infra.md +76 -0
  52. package/.claude/skills-ja/project-context/references/template.md +154 -0
  53. package/.claude/skills-ja/subagents-orchestration-guide/SKILL.md +36 -14
  54. package/.claude/skills-ja/task-analyzer/references/skills-index.yaml +0 -5
  55. package/.husky/pre-commit +1 -0
  56. package/CHANGELOG.md +55 -6
  57. package/README.ja.md +3 -2
  58. package/README.md +3 -2
  59. package/docs/guides/en/use-cases.md +18 -3
  60. package/docs/guides/ja/use-cases.md +18 -3
  61. package/package.json +2 -1
  62. package/scripts/check-skills-index.mjs +173 -0
@@ -18,33 +18,76 @@ Work plan: $ARGUMENTS
18
18
 
19
19
  ## Pre-execution Prerequisites
20
20
 
21
- ### Task File Existence Check
22
- ```bash
23
- # Check work plans
24
- ! ls -la docs/plans/*.md | grep -v template | tail -5
21
+ ### Implementation Readiness Check
25
22
 
26
- # Check task files
27
- ! ls docs/plans/tasks/*.md 2>/dev/null || echo "⚠️ No task files found"
28
- ```
23
+ Before any task processing, locate the work plan to gate against.
24
+
25
+ **When `$ARGUMENTS` is provided**, it is the work plan path supplied by the user. Use it directly without auto-resolution. Extract `{plan-name}` from the filename by stripping the `.md` extension (and any trailing `-plan` suffix when present).
26
+
27
+ **When `$ARGUMENTS` is empty**, auto-resolve from task files:
28
+ 1. List task files in `docs/plans/tasks/` matching this recipe's consumable patterns (these correspond to the routes in subagents-orchestration-guide "Layer-Aware Agent Routing" that go through `task-executor`):
29
+ - `{plan-name}-task-*.md` (single-layer; reserved for backend by the routing table)
30
+ - `{plan-name}-backend-task-*.md` (backend portion of a multi-layer plan)
31
+ - `{plan-name}-frontend-task-*.md` is **not** consumable by this recipe — it routes to `task-executor-frontend` and is owned by the frontend build recipe
32
+ 2. From the matched files, also exclude every file matching any of these patterns — they originate from other workflow phases and are not implementation tasks for this run's plan: `*-task-prep-*.md` (readiness preflight tasks), `_overview-*.md` (decomposition overview file), `*-phase*-completion.md` (per-phase completion files), `review-fixes-*.md` (post-implementation review fixes), `integration-tests-*-task-*.md` (integration-test add-on scaffolding)
33
+ 3. For each remaining file, extract `{plan-name}` by stripping the trailing `-task-{NN}.md` or `-backend-task-{NN}.md` suffix
34
+ 4. When at least one task file matches, the work plan is `docs/plans/{plan-name}.md` for the prefix that has the most recent task-file mtime; ties broken by the lexicographically last `{plan-name}`
35
+ 5. **When the consumable patterns find no matches but `*-frontend-task-*.md` files exist in `docs/plans/tasks/`**: stop and report: "Only frontend-named task files were found. If you intended to run the frontend build recipe, switch to it. If the plan is backend, re-run task-decomposer so it emits backend-named task files, or pass the work plan path as `$ARGUMENTS`."
36
+ 6. When neither consumable patterns nor `*-frontend-task-*.md` match, fall back to the most-recent-mtime non-template `.md` in `docs/plans/` ONLY after **positively verifying the plan is a backend plan**. Absence of frontend markers is not enough — many plan templates include layer-neutral paths (e.g., `src/presentation`, `src/app`) that match neither marker set, so a confirmed backend signal is required. Read the plan and check:
37
+
38
+ **Backend signals (need at least one)**:
39
+ - Target Files in `## Impact Scope > ### Target Files` (or equivalent) exclusively match backend markers: `**/api/**`, `**/server/**`, `**/services/**`, `**/backend/**`, `**/handlers/**`, `**/repositories/**`, or the project's backend-equivalent paths declared in `technical-spec` skill
40
+ - The plan's `## Related Documents` references a Design Doc whose filename explicitly identifies it as backend (e.g., `*-backend-design.md`, `backend-*-design.md`)
41
+ - The plan title, `## Objective`, or `## Background` section explicitly identifies the work as backend (e.g., "backend implementation", "API endpoint", "database migration", "server-side")
42
+
43
+ **Frontend signals (any disqualifies, even if a backend signal is also present)**:
44
+ - `## Related Documents` entry pointing to `docs/ui-spec/*`
45
+ - An `## UI Spec Component → Task Mapping` section
46
+ - Target Files exclusively under frontend paths (`**/components/**`, `**/pages/**`, `**/web/**`, `**/*.tsx`, `**/*.jsx`)
47
+ - Plan title or objective explicitly mentions React, UI components, screens, or frontend
48
+
49
+ **Decision**:
50
+ - At least one backend signal AND zero frontend signals → plan is acceptable; proceed
51
+ - Otherwise (no backend signal found, OR any frontend signal present, OR layer-neutral paths only) → stop and report: "Cannot positively verify the most-recent work plan at `[path]` is a backend plan (signals examined: [list of signals checked and their results]). Pass the intended backend plan path as `$ARGUMENTS`, or run task-decomposer first to populate `docs/plans/tasks/` with backend-named task files."
52
+ 7. When no plan exists at all in `docs/plans/`, stop and report: "No work plan found. Pass a work plan path as `$ARGUMENTS`, or complete the planning phase first."
53
+
54
+ Read the work plan header and find the line `Implementation Readiness: <status>`. Apply this rule:
55
+
56
+ | Status | Action |
57
+ |--------|--------|
58
+ | `ready` | Proceed to Consumed Task Set computation |
59
+ | `escalated` | Read the work plan's Readiness Report section, surface remaining gaps to the user via AskUserQuestion: "Implementation Readiness is `escalated` with the following remaining gaps: [list]. Continue execution? (y/n)". On `y` proceed; on `n` stop |
60
+ | `pending` | Present via AskUserQuestion: "Implementation Readiness is `pending`. Run the readiness preflight first to verify the work plan is implementable, then resume. Continue without preflight? (y/n)". On `y` proceed; on `n` stop |
61
+ | absent (line missing) | Treat as `pending` — older work plans created before the readiness marker existed should be preflighted explicitly |
62
+
63
+ ### Consumed Task Set
64
+
65
+ Compute the **Consumed Task Set** for this run — the exact files this recipe owns, executes, and later deletes. Use the same consumable patterns as the Implementation Readiness Check:
66
+
67
+ 1. List task files in `docs/plans/tasks/` matching `{plan-name}-task-*.md` OR `{plan-name}-backend-task-*.md` for the `{plan-name}` resolved by the readiness check. `{plan-name}-frontend-task-*.md` is excluded — it is owned by the frontend build recipe
68
+ 2. Exclude every file matching: `*-task-prep-*.md`, `_overview-*.md`, `*-phase*-completion.md`, `review-fixes-*.md`, `integration-tests-*-task-*.md` (these originate from other workflow phases)
69
+
70
+ Every subsequent reference to "task files" in this recipe — Task Generation Decision Flow, Task Execution Cycle iteration, and Final Cleanup — uses this set, not the unrestricted `docs/plans/tasks/*.md` glob.
29
71
 
30
72
  ### Task Generation Decision Flow
31
73
 
32
- Analyze task file existence state and determine the action required:
74
+ Analyze the Consumed Task Set and determine the action required. Reaching this section implies the readiness check above resolved a work plan (Steps 1-6 succeeded); the "no plan" state is already terminated by readiness-check Step 7 and never reaches this table.
33
75
 
34
76
  | State | Criteria | Next Action |
35
77
  |-------|----------|-------------|
36
- | Tasks exist | .md files in tasks/ directory | User's execution instruction serves as batch approval → Enter autonomous execution immediately |
37
- | No tasks + plan exists | Plan exists but no task files | Confirm with user → run task-decomposer |
38
- | Neither exists + Design Doc exists | No plan or task files, but docs/design/*.md exists | Invoke work-planner to create work plan from Design Doc, then proceed to task decomposition |
39
- | Neither exists | No plan, no task files, no Design Doc | Report missing prerequisites to user and stop |
78
+ | Tasks exist | Consumed Task Set is non-empty | User's execution instruction serves as batch approval → Enter autonomous execution immediately |
79
+ | No tasks + plan supplied via `$ARGUMENTS` | `$ARGUMENTS` provided AND Consumed Task Set empty | Confirm with user → run task-decomposer |
80
+ | No tasks + plan auto-resolved | Consumed Task Set empty AND plan came from auto-resolution AND Step 6 confirmed at least one backend signal with zero frontend signals | Confirm with user → run task-decomposer (the layer verification in Step 6 already excluded frontend and ambiguous plans, so this is safe) |
81
+
82
+ To bootstrap from a Design Doc when no plan exists yet, run the planning recipe first to produce a work plan, then re-invoke this recipe — the readiness check above intentionally requires a resolved work plan rather than auto-creating one, to keep the layer decision explicit.
40
83
 
41
84
  ## Task Decomposition Phase (Conditional)
42
85
 
43
- When task files don't exist:
86
+ When the Consumed Task Set is empty:
44
87
 
45
88
  ### 1. User Confirmation
46
89
  ```
47
- No task files found.
90
+ No task files in the Consumed Task Set.
48
91
  Work plan: docs/plans/[plan-name].md
49
92
 
50
93
  Generate tasks from the work plan? (y/n):
@@ -57,17 +100,14 @@ Invoke task-decomposer using Agent tool:
57
100
  - `prompt`: "Read work plan at docs/plans/[plan-name].md and decompose into atomic tasks. Output: Individual task files in docs/plans/tasks/. Granularity: 1 task = 1 commit = independently executable"
58
101
 
59
102
  ### 3. Verify Generation
60
- ```bash
61
- # Verify generated task files
62
- ! ls -la docs/plans/tasks/*.md | head -10
63
- ```
103
+ Recompute the Consumed Task Set using the same restricted pattern from the Consumed Task Set section above. Confirm it is now non-empty. If it is still empty, escalate to the user — task-decomposer either failed silently or produced files that don't match the expected pattern.
64
104
 
65
- **Flow**: Task generation → Autonomous execution (in this order)
105
+ **Flow**: Task generation → Consumed Task Set recompute → Autonomous execution (in this order)
66
106
 
67
107
  ## Pre-execution Checklist
68
108
 
69
- - [ ] Confirmed task files exist in docs/plans/tasks/
70
- - [ ] Identified task execution order (dependencies)
109
+ - [ ] Confirmed Consumed Task Set is non-empty (computed in the Consumed Task Set section above)
110
+ - [ ] Identified task execution order within the Consumed Task Set (dependencies)
71
111
  - [ ] **Environment check**: Can I execute per-task commit cycle?
72
112
  - If commit capability unavailable → Escalate before autonomous mode
73
113
  - Other environments (tests, quality tools) → Subagents will escalate
@@ -75,7 +115,7 @@ Invoke task-decomposer using Agent tool:
75
115
  ## Task Execution Cycle (4-Step Cycle)
76
116
  **MANDATORY EXECUTION CYCLE**: `task-executor → escalation check → quality-fixer → commit`
77
117
 
78
- For EACH task, YOU MUST:
118
+ For EACH task in the Consumed Task Set, YOU MUST:
79
119
  1. **Register tasks using TaskCreate**: Register work steps. Always include first task "Map preloaded skills to applicable concrete rules" and final task "Verify the mapped rules before final JSON"
80
120
  2. **INVOKE task-executor**: Execute the task implementation (cross-layer: see Layer-Aware Agent Routing in subagents-orchestration-guide)
81
121
  3. **CHECK task-executor response**:
@@ -126,7 +166,18 @@ After all task cycles finish, run verification agents **in parallel** before the
126
166
  - Then quality-fixer, then re-run only the failed verifiers.
127
167
  - If still failing after 2 cycles → Escalate to user with remaining findings
128
168
 
129
- 4. **All passed** → Proceed to completion report
169
+ 4. **All passed** → Proceed to Final Cleanup
170
+
171
+ ## Final Cleanup
172
+
173
+ Before the completion report, delete the implementation task files this recipe consumed. Their work is committed; `docs/plans/` is ephemeral working state and is not retained between recipe runs:
174
+
175
+ - Delete every file in the Consumed Task Set
176
+ - Delete every file matching `docs/plans/tasks/{plan-name}-phase*-completion.md` (the per-phase completion files generated by task-decomposer for this `{plan-name}`)
177
+ - Delete the corresponding `docs/plans/tasks/_overview-{plan-name}.md` if present
178
+ - Preserve the work plan itself (`docs/plans/{plan-name}.md`) — the user decides whether to delete it after final review
179
+
180
+ If task files cannot be deleted (filesystem error), report the failure but do not block the completion report.
130
181
 
131
182
  ## Output Example
132
183
  Implementation phase completed.
@@ -134,6 +185,7 @@ Implementation phase completed.
134
185
  - Implemented tasks: [number] tasks
135
186
  - Quality checks: All passed
136
187
  - Commits: [number] commits created
188
+ - Cleanup: Task files removed from docs/plans/tasks/
137
189
 
138
190
  **Responsibility Boundary**:
139
191
  - IN SCOPE: Task decomposition to implementation completion
@@ -18,33 +18,57 @@ Work plan: $ARGUMENTS
18
18
 
19
19
  ## Pre-execution Prerequisites
20
20
 
21
- ### Task File Existence Check
22
- ```bash
23
- # Check work plans
24
- ! ls -la docs/plans/*.md | grep -v template | tail -5
21
+ ### Implementation Readiness Check
25
22
 
26
- # Check task files
27
- ! ls docs/plans/tasks/*.md 2>/dev/null || echo "⚠️ No task files found"
28
- ```
23
+ Before any task processing, locate the work plan to gate against.
24
+
25
+ **When `$ARGUMENTS` is provided**, it is the work plan path supplied by the user. Use it directly without auto-resolution. Extract `{plan-name}` from the filename by stripping the `.md` extension (and any trailing `-plan` suffix when present).
26
+
27
+ **When `$ARGUMENTS` is empty**, auto-resolve from task files:
28
+ 1. List task files in `docs/plans/tasks/` matching this recipe's only consumable pattern (per subagents-orchestration-guide "Layer-Aware Agent Routing", `task-executor-frontend` owns this filename suffix and no other):
29
+ - `{plan-name}-frontend-task-*.md`
30
+ - The bare `{plan-name}-task-*.md` is **not** consumable — that filename is reserved for backend by the routing table and is owned by the backend build recipe. `{plan-name}-backend-task-*.md` is also not consumable for the same reason.
31
+ 2. From the matched files, also exclude every file matching any of these patterns — they originate from other workflow phases and are not implementation tasks for this run's plan: `*-task-prep-*.md` (readiness preflight tasks), `_overview-*.md` (decomposition overview file), `*-phase*-completion.md` (per-phase completion files), `review-fixes-*.md` (post-implementation review fixes), `integration-tests-*-task-*.md` (integration-test add-on scaffolding)
32
+ 3. For each remaining file, extract `{plan-name}` by stripping the trailing `-frontend-task-{NN}.md` suffix
33
+ 4. When at least one task file matches, the work plan is `docs/plans/{plan-name}.md` for the prefix that has the most recent task-file mtime; ties broken by the lexicographically last `{plan-name}`
34
+ 5. When no `*-frontend-task-*.md` is found AND a non-template work plan exists in `docs/plans/`, do not assume the most-recent plan applies — frontend tasks must be explicitly named. Stop and report: "No `*-frontend-task-*.md` found in `docs/plans/tasks/`. If you intended to run this recipe on a frontend plan, either re-run task-decomposer so it emits frontend-named task files, or pass the work plan path as `$ARGUMENTS`. If the plan is backend, use the backend build recipe instead."
35
+
36
+ Read the work plan header and find the line `Implementation Readiness: <status>`. Apply this rule:
37
+
38
+ | Status | Action |
39
+ |--------|--------|
40
+ | `ready` | Proceed to Consumed Task Set computation |
41
+ | `escalated` | Read the work plan's Readiness Report section, surface remaining gaps to the user via AskUserQuestion: "Implementation Readiness is `escalated` with the following remaining gaps: [list]. Continue execution? (y/n)". On `y` proceed; on `n` stop |
42
+ | `pending` | Present via AskUserQuestion: "Implementation Readiness is `pending`. Run the readiness preflight first to verify the work plan is implementable, then resume. Continue without preflight? (y/n)". On `y` proceed; on `n` stop |
43
+ | absent (line missing) | Treat as `pending` — older work plans created before the readiness marker existed should be preflighted explicitly |
44
+
45
+ ### Consumed Task Set
46
+
47
+ Compute the **Consumed Task Set** for this run — the exact files this recipe owns, executes, and later deletes. Per the routing table, the only consumable pattern is:
48
+
49
+ 1. List task files in `docs/plans/tasks/` matching `{plan-name}-frontend-task-*.md` for the `{plan-name}` resolved by the readiness check. `{plan-name}-task-*.md` and `{plan-name}-backend-task-*.md` are excluded — they route to `task-executor` and are owned by the backend build recipe
50
+ 2. Exclude every file matching: `*-task-prep-*.md`, `_overview-*.md`, `*-phase*-completion.md`, `review-fixes-*.md`, `integration-tests-*-task-*.md` (these originate from other workflow phases)
51
+
52
+ Every subsequent reference to "task files" in this recipe — Task Generation Decision Flow, Task Execution Cycle iteration, and Final Cleanup — uses this set, not the unrestricted `docs/plans/tasks/*.md` glob.
29
53
 
30
54
  ### Task Generation Decision Flow
31
55
 
32
- Analyze task file existence state and determine the action required:
56
+ Analyze the Consumed Task Set and determine the action required. Note: when `$ARGUMENTS` is empty AND no `*-frontend-task-*.md` exist, the readiness check above already stops execution — so the rows below that involve "no tasks" only fire when the user explicitly supplied `$ARGUMENTS`.
33
57
 
34
58
  | State | Criteria | Next Action |
35
59
  |-------|----------|-------------|
36
- | Tasks exist | .md files in tasks/ directory | User's execution instruction serves as batch approval → Enter autonomous execution immediately |
37
- | No tasks + plan exists | Plan exists but no task files | Confirm with user → run task-decomposer |
38
- | Neither exists + Design Doc exists | No plan or task files, but docs/design/*.md exists | Invoke work-planner to create work plan from Design Doc, then proceed to task decomposition |
39
- | Neither exists | No plan, no task files, no Design Doc | Report missing prerequisites to user and stop |
60
+ | Tasks exist | Consumed Task Set is non-empty | User's execution instruction serves as batch approval → Enter autonomous execution immediately |
61
+ | No tasks + plan supplied via `$ARGUMENTS` | `$ARGUMENTS` provided AND Consumed Task Set empty | Confirm with user → run task-decomposer (which will emit `*-frontend-task-*.md` per the frontend naming rule) |
62
+ | Neither exists + Design Doc exists + `$ARGUMENTS` provided | `$ARGUMENTS` provided, no plan, no Consumed Task Set, but docs/design/*.md exists | Invoke work-planner to create work plan from Design Doc, then proceed to task decomposition |
63
+ | Neither exists | No `$ARGUMENTS`, no plan, no Consumed Task Set, no Design Doc | Report missing prerequisites to user and stop |
40
64
 
41
65
  ## Task Decomposition Phase (Conditional)
42
66
 
43
- When task files don't exist:
67
+ When the Consumed Task Set is empty:
44
68
 
45
69
  ### 1. User Confirmation
46
70
  ```
47
- No task files found.
71
+ No task files in the Consumed Task Set.
48
72
  Work plan: docs/plans/[plan-name].md
49
73
 
50
74
  Generate tasks from the work plan? (y/n):
@@ -57,17 +81,14 @@ Invoke task-decomposer using Agent tool:
57
81
  - `prompt`: "Read work plan at docs/plans/[plan-name].md and decompose into atomic tasks. Output: Individual task files in docs/plans/tasks/. Granularity: 1 task = 1 commit = independently executable"
58
82
 
59
83
  ### 3. Verify Generation
60
- ```bash
61
- # Verify generated task files
62
- ! ls -la docs/plans/tasks/*.md | head -10
63
- ```
84
+ Recompute the Consumed Task Set using the same restricted pattern from the Consumed Task Set section above. Confirm it is now non-empty. If it is still empty, escalate to the user — task-decomposer either failed silently or produced files that don't match the expected pattern.
64
85
 
65
- **Flow**: Task generation → Autonomous execution (in this order)
86
+ **Flow**: Task generation → Consumed Task Set recompute → Autonomous execution (in this order)
66
87
 
67
88
  ## Pre-execution Checklist
68
89
 
69
- - [ ] Confirmed task files exist in docs/plans/tasks/
70
- - [ ] Identified task execution order (dependencies)
90
+ - [ ] Confirmed Consumed Task Set is non-empty (computed in the Consumed Task Set section above)
91
+ - [ ] Identified task execution order within the Consumed Task Set (dependencies)
71
92
  - [ ] **Environment check**: Can I execute per-task commit cycle?
72
93
  - If commit capability unavailable → Escalate before autonomous mode
73
94
  - Other environments (tests, quality tools) → Subagents will escalate
@@ -75,7 +96,7 @@ Invoke task-decomposer using Agent tool:
75
96
  ## Task Execution Cycle (4-Step Cycle)
76
97
  **MANDATORY EXECUTION CYCLE**: `task-executor-frontend → escalation check → quality-fixer-frontend → commit`
77
98
 
78
- For EACH task, YOU MUST:
99
+ For EACH task in the Consumed Task Set, YOU MUST:
79
100
  1. **Register tasks using TaskCreate**: Register work steps. Always include first task "Map preloaded skills to applicable concrete rules" and final task "Verify the mapped rules before final JSON"
80
101
  2. **Agent tool** (subagent_type: "task-executor-frontend") → Pass task file path in prompt, receive structured response
81
102
  3. **CHECK task-executor-frontend response**:
@@ -104,8 +125,6 @@ Use loaded skills to execute that scope.
104
125
  Escalate when the required fix or investigation falls outside that scope.
105
126
  ```
106
127
 
107
- ! ls -la docs/plans/*.md | head -10
108
-
109
128
  VERIFY approval status before proceeding. Once confirmed, INITIATE autonomous execution mode. STOP IMMEDIATELY upon detecting ANY requirement changes.
110
129
 
111
130
  ## Post-Implementation Verification (After All Tasks Complete)
@@ -128,7 +147,18 @@ After all task cycles finish, run verification agents **in parallel** before the
128
147
  - Then quality-fixer-frontend, then re-run only the failed verifiers.
129
148
  - If still failing after 2 cycles → Escalate to user with remaining findings
130
149
 
131
- 4. **All passed** → Proceed to completion report
150
+ 4. **All passed** → Proceed to Final Cleanup
151
+
152
+ ## Final Cleanup
153
+
154
+ Before the completion report, delete the implementation task files this recipe consumed. Their work is committed; `docs/plans/` is ephemeral working state and is not retained between recipe runs:
155
+
156
+ - Delete every file in the Consumed Task Set
157
+ - Delete every file matching `docs/plans/tasks/{plan-name}-phase*-completion.md` (the per-phase completion files generated by task-decomposer for this `{plan-name}`)
158
+ - Delete the corresponding `docs/plans/tasks/_overview-{plan-name}.md` if present
159
+ - Preserve the work plan itself (`docs/plans/{plan-name}.md`) — the user decides whether to delete it after final review
160
+
161
+ If task files cannot be deleted (filesystem error), report the failure but do not block the completion report.
132
162
 
133
163
  ## Output Example
134
164
  Frontend implementation phase completed.
@@ -136,3 +166,4 @@ Frontend implementation phase completed.
136
166
  - Implemented tasks: [number] tasks
137
167
  - Quality checks: All passed
138
168
  - Commits: [number] commits created
169
+ - Cleanup: Task files removed from docs/plans/tasks/
@@ -43,17 +43,18 @@ Invoke acceptance-test-generator using Agent tool:
43
43
  - If UI Spec exists: `prompt: "Generate test skeletons from Design Doc at [path]. UI Spec at [ui-spec path]."`
44
44
  - If no UI Spec: `prompt: "Generate test skeletons from Design Doc at [path]."`
45
45
 
46
- Pass integration test file path, E2E test file path (or null), and e2eAbsenceReason to work-planner according to subagents-orchestration-guide "acceptance-test-generator → work-planner" section.
46
+ Pass per-lane test file paths and absence reasons to work-planner according to subagents-orchestration-guide "acceptance-test-generator → work-planner" section.
47
47
 
48
48
  ### Step 3: Work Plan Creation
49
49
  Invoke work-planner using Agent tool:
50
50
  - `subagent_type`: "work-planner"
51
51
  - `description`: "Work plan creation"
52
- - If test skeletons were generated in Step 2:
53
- - When `generatedFiles.e2e` is not null:
54
- `prompt`: "Create work plan from Design Doc at [path]. Integration test file: [integration test path]. E2E test file: [E2E test path]. Integration tests are created simultaneously with each phase implementation, E2E tests are executed only in final phase."
55
- - When `generatedFiles.e2e` is null:
56
- `prompt`: "Create work plan from Design Doc at [path]. Integration test file: [integration test path]. No E2E test skeletons were generated (reason: [e2eAbsenceReason]). Integration tests are created simultaneously with each phase implementation."
52
+ - If test skeletons were generated in Step 2, build the prompt by listing every lane's status:
53
+ - Always include: "Integration test file: [path or 'not generated']"
54
+ - For each E2E lane (`fixtureE2e`, `serviceE2e`):
55
+ - When `generatedFiles.<lane>` is not null: "[lane] test file: [path]"
56
+ - When `generatedFiles.<lane>` is null: "No [lane] skeleton generated (reason: [e2eAbsenceReason.<lane>])"
57
+ - Append placement guidance: "Integration tests are created simultaneously with each phase implementation. fixture-e2e tests are created alongside the UI feature phase. service-integration-e2e tests are executed only in the final phase."
57
58
  - If test skeletons were not generated:
58
59
  `prompt`: "Create work plan from Design Doc at [path]."
59
60
 
@@ -14,9 +14,10 @@ description: Design Doc compliance and security validation with optional auto-fi
14
14
 
15
15
  - Compliance validation → performed by code-reviewer
16
16
  - Security validation → performed by security-reviewer
17
- - Fix implementation → performed by task-executor-frontend
18
- - Quality checksperformed by quality-fixer-frontend
19
- - Re-validation → performed by code-reviewer / security-reviewer
17
+ - **Code-side fix path**: Fix implementation → task-executor-frontend; Quality checks → quality-fixer-frontend; Re-validation → code-reviewer / security-reviewer
18
+ - **Design-side update path**: DD revision technical-designer-frontend (update mode); DD review → document-reviewer; cross-DD consistency → design-sync (when multiple DDs exist); Re-validation → code-reviewer
19
+
20
+ Orchestrator invokes sub-agents and passes structured JSON between them. The design-side path applies when the discrepancy reflects code that was correct but the Design Doc became stale, rather than code that violated the Design Doc.
20
21
 
21
22
  Design Doc (uses most recent if omitted): $ARGUMENTS
22
23
 
@@ -59,7 +60,24 @@ Invoke security-reviewer using Agent tool:
59
60
  - `approved` or `approved_with_notes` → Pass
60
61
  - `needs_revision` → Fail
61
62
 
62
- **Report both results independently using subagent output fields only** (do not add fields that are not in the subagent response):
63
+ **Report both results independently using subagent output fields only** (do not add fields that are not in the subagent response).
64
+
65
+ **Early exit (no findings to route)**: When code-reviewer's `verdict` is `pass` AND every entry in `acceptanceCriteria[]` has `status: "fulfilled"` AND `identifierMismatches[]` is empty AND `qualityFindings[]` is empty AND security-reviewer's `findings[]` is empty, skip Steps 5-10 and proceed directly to Step 11 — there is nothing to route. Present the clean result to the user.
66
+
67
+ Otherwise, before presenting to the user, the orchestrator computes a recommended route per finding using the rule below (this rule is internal — do not include it in the user-facing prompt). The rule keys off code-reviewer's existing structured fields only — interpretation of "DD intent" is intentionally avoided to prevent unstable inference:
68
+
69
+ | Finding source | Pattern detectable from existing fields | Recommended route |
70
+ |---------------|-----------------------------------------|-------------------|
71
+ | `acceptanceCriteria[]` with `status: "partially_fulfilled"` or `"unfulfilled"` | The cited `gap` indicates the code does not satisfy the AC — needs additional implementation | `c` (Code-side fix) |
72
+ | `acceptanceCriteria[]` with `status: "partially_fulfilled"` or `"unfulfilled"` | The cited `gap` indicates the AC text itself diverged from the implemented (and team-accepted) behavior — i.e., the DD's AC wording captured the wrong intent rather than the code missing requirements (verify by reading the AC and comparing against the cited `location`) | `d` (Design-side update — AC text outdated) |
73
+ | `identifierMismatches[]` | `codeValue` is a plausible rename of `designDocValue` (camelCase ↔ kebab-case ↔ snake_case, abbreviation expansion/contraction, semantic renaming where both names refer to the same concept) — verify by inspecting the cited `location` to confirm the code uses the new name consistently | `d` (Design-side update — DD likely outdated) |
74
+ | `identifierMismatches[]` | All other identifier mismatches (e.g., wrong type, wrong cardinality, missing entirely) | `c` (Code-side fix) |
75
+ | `qualityFindings[]` | All categories (`dd_violation`, `maintainability`, `reliability`, `coverage_gap`) | `c` (Code-side fix) |
76
+ | security-reviewer `findings[]` | All categories (`confirmed_risk`, `defense_gap`, `hardening`, `policy`) | `c` (Code-side fix) |
77
+
78
+ The user can override any recommendation per finding. AC items with `status: "fulfilled"` are not routed (no action needed).
79
+
80
+ Then present to the user (label each finding with its recommended route, grouped by route):
63
81
 
64
82
  ```
65
83
  Code Compliance: [complianceRate from code-reviewer]
@@ -67,30 +85,57 @@ Code Compliance: [complianceRate from code-reviewer]
67
85
  Identifier Match Rate: [identifierMatchRate from code-reviewer]
68
86
  Acceptance Criteria:
69
87
  - [fulfilled] [item] (confidence: [high/medium/low])
70
- - [partially_fulfilled] [item]: [gap] — [suggestion]
71
- - [unfulfilled] [item]: [gap] — [suggestion]
88
+ - [partially_fulfilled] [item]: [gap] — [suggestion] [recommended: c | d]
89
+ - [unfulfilled] [item]: [gap] — [suggestion] [recommended: c | d]
72
90
  Identifier Mismatches:
73
- - [identifier]: DD=[designDocValue] Code=[codeValue] at [location]
91
+ - [identifier]: DD=[designDocValue] Code=[codeValue] at [location] [recommended: c | d]
74
92
  Quality Findings:
75
- - [category] [location]: [description] — [rationale]
93
+ - [category] [location]: [description] — [rationale] [recommended: c]
76
94
 
77
95
  Security Review: [status from security-reviewer]
78
96
  Findings by category:
79
- - [confirmed_risk] [location]: [description] — [rationale]
80
- - [defense_gap] [location]: [description] — [rationale]
81
- - [hardening] [location]: [description] — [rationale]
82
- - [policy] [location]: [description] — [rationale]
97
+ - [confirmed_risk] [location]: [description] — [rationale] [recommended: c]
98
+ - [defense_gap] [location]: [description] — [rationale] [recommended: c]
99
+ - [hardening] [location]: [description] — [rationale] [recommended: c]
100
+ - [policy] [location]: [description] — [rationale] [recommended: c]
83
101
  Notes: [notes from security-reviewer, if present]
84
102
 
85
- Execute fixes? (y/n):
103
+ Resolve discrepancies — confirm or override the recommended route per finding:
104
+ c) Code-side fix — code violates Design Doc; modify code to match
105
+ d) Design-side update — code is correct; Design Doc is stale, revise it
106
+ s) Skip — accept current state without changes
86
107
  ```
87
108
 
88
- If both pass and user selects `n`: Skip Steps 5-10, proceed to Step 11.
109
+ Use AskUserQuestion. The default offer is **"accept all recommended routes"** — a single confirmation for the typical case where the orchestrator's recommendations are correct. When the user wants to override, collect per-finding c/d/s decisions instead. If the user selects `s` for everything: skip Steps 5-10, proceed to Step 11.
89
110
 
90
111
  ### Step 5: Load Task Template
91
112
 
92
113
  Read documentation-criteria skill to obtain the task file template (references/task-template.md) for Step 6.
93
114
 
115
+ ### Step 5d: Design-Side Update
116
+
117
+ Run this step only when the user routed at least one finding to `d`. When all routes are `c` or `s`, skip directly to Step 6.
118
+
119
+ 1. Invoke technical-designer-frontend in update mode using Agent tool:
120
+ - `subagent_type`: "technical-designer-frontend"
121
+ - `description`: "Design Doc update from review findings"
122
+ - `prompt`: "Update Design Doc at [path] in update mode. The implementation has diverged in the following ways that the team has decided to ratify in the design rather than in the code: [list of `d`-routed findings with codeLocation and designDocValue from $STEP_2_OUTPUT]. Reflect the current code behavior in the relevant sections and add a history entry."
123
+
124
+ 2. Invoke document-reviewer to verify the updated Design Doc:
125
+ - `subagent_type`: "document-reviewer"
126
+ - `description`: "Document review of updated Design Doc"
127
+ - `prompt`: "Review updated Design Doc at [path] for consistency and completeness."
128
+
129
+ 3. When multiple Design Docs exist (`ls docs/design/*.md | grep -v template | wc -l > 1`), invoke design-sync:
130
+ - `subagent_type`: "design-sync"
131
+ - `description`: "Cross-DD consistency check"
132
+ - `prompt`: "source_design: [updated DD path]. Detect conflicts across all Design Docs after the update."
133
+ - When `sync_status: conflicts_found`: present conflicts to the user; resolution requires re-invoking technical-designer-frontend for affected DDs.
134
+
135
+ 4. After Step 5d completes:
136
+ - If the user selected zero `c` routes (whether all `d`, all `s`, or a `d` + `s` mix with no `c`) → skip Steps 6-8, proceed to Step 9 for re-validation
137
+ - If the user selected both `d` and `c` → re-evaluate the `c`-routed findings against the updated DD and drop any that are now satisfied by the DD revision; then proceed to Step 6 with the remaining `c` findings
138
+
94
139
  ### Step 6: Create Task File
95
140
 
96
141
  Create task file at `docs/plans/tasks/review-fixes-YYYYMMDD.md`
@@ -113,7 +158,7 @@ Invoke quality-fixer-frontend using Agent tool:
113
158
  Invoke code-reviewer using Agent tool:
114
159
  - `subagent_type`: "code-reviewer"
115
160
  - `description`: "Re-validate compliance"
116
- - `prompt`: "Re-validate Design Doc compliance after fixes. Design Doc: [path]. Implementation files: [file list]. Prior compliance issues: $STEP_2_OUTPUT. Verify each prior issue is resolved."
161
+ - `prompt`: "Re-validate Design Doc compliance after fixes. Design Doc: [path]. Implementation files: [file list]. Prior compliance issues: $STEP_2_OUTPUT. Verify each prior issue is resolved (whether resolved code-side or design-side)."
117
162
 
118
163
  ### Step 10: Re-validate security-reviewer
119
164
 
@@ -122,7 +167,16 @@ Invoke security-reviewer using Agent tool (only if security fixes were applied):
122
167
  - `description`: "Re-validate security"
123
168
  - `prompt`: "Re-validate security after fixes. Prior findings: $STEP_3_OUTPUT. Design Doc: [path]. Implementation files: [file list]."
124
169
 
125
- ### Step 11: Final Report
170
+ ### Step 11: Final Cleanup and Report
171
+
172
+ Delete the review-fix task file this recipe created (if any). Its work is committed; `docs/plans/` is ephemeral working state and is not retained between recipe runs:
173
+
174
+ - Delete `docs/plans/tasks/review-fixes-YYYYMMDD.md` if it exists
175
+
176
+ If the file cannot be deleted (filesystem error), report the failure but do not block the final report.
177
+
178
+ Then present the final report:
179
+
126
180
  ```
127
181
  Code Compliance:
128
182
  Initial: [X]%
@@ -135,9 +189,11 @@ Security Review:
135
189
 
136
190
  Remaining issues:
137
191
  - [items requiring manual intervention]
192
+
193
+ Cleanup: review-fixes task file removed
138
194
  ```
139
195
 
140
- ## Auto-fixable Items
196
+ ## Auto-fixable Items (code-side path)
141
197
  - Simple unimplemented acceptance criteria
142
198
  - Error handling additions
143
199
  - Contract definition fixes
@@ -147,10 +203,16 @@ Remaining issues:
147
203
  ## Non-fixable Items
148
204
  - Fundamental business logic changes
149
205
  - Architecture-level modifications
150
- - Design Doc deficiencies
151
206
  - Committed secrets (blocked → human intervention)
152
207
 
153
- **Scope**: Design Doc compliance validation, security review, and auto-fixes.
208
+ ## Design-Side Update Triggers
209
+ Discrepancies suitable for the design-side path (code is correct, DD became stale):
210
+ - Identifier renames where the new identifier reflects the team's current naming
211
+ - Behavioral changes that match the original requirement intent better than what the DD captured
212
+ - Component splits or merges where the new structure is sound and the DD documented the prior structure
213
+ - New ACs that the implementation already satisfies but the DD never enumerated
214
+
215
+ **Scope**: Design Doc compliance validation, security review, code-side auto-fixes, and design-side update routing.
154
216
 
155
217
  ## Scope Boundary for Subagents
156
218
 
@@ -58,6 +58,19 @@ After scale determination, **register all steps of the applicable subagents-orch
58
58
 
59
59
  **Flow Adherence**: Follow "Autonomous Execution Task Management" in subagents-orchestration-guide skill, managing 4 steps with TaskCreate/TaskUpdate
60
60
 
61
+ ## Implementation Readiness Check (between work-planner approval and task-decomposer)
62
+
63
+ After work-planner completes and the user grants batch approval, before invoking task-decomposer, read the work plan header and find the line `Implementation Readiness: <status>`. Apply this rule:
64
+
65
+ | Status | Action |
66
+ |--------|--------|
67
+ | `ready` | Proceed to task-decomposer |
68
+ | `escalated` | Read the work plan's Readiness Report section, surface remaining gaps to the user via AskUserQuestion: "Implementation Readiness is `escalated` with the following remaining gaps: [list]. Continue execution? (y/n)". On `y` proceed; on `n` stop |
69
+ | `pending` | Present via AskUserQuestion: "Implementation Readiness is `pending`. Run the readiness preflight first to verify the work plan is implementable, then resume. Continue without preflight? (y/n)". On `y` proceed; on `n` stop |
70
+ | absent (line missing) | Treat as `pending` — older work plans created before the readiness marker existed should be preflighted explicitly |
71
+
72
+ This check applies to all scales (Small / Medium / Large) because this recipe is the scale-agnostic orchestrator.
73
+
61
74
  ## Scope Boundary for Subagents
62
75
 
63
76
  Append the following block to every subagent prompt invoked from this recipe:
@@ -101,11 +114,29 @@ After all task cycles finish, invoke security-reviewer before the completion rep
101
114
  - `blocked` → Escalate to user
102
115
 
103
116
  ### Test Information Communication
104
- After acceptance-test-generator execution, when invoking work-planner (subagent_type: "work-planner"), communicate:
105
- - Generated integration test file path (from `generatedFiles.integration`)
106
- - Generated E2E test file path or null (from `generatedFiles.e2e`)
107
- - E2E absence reason (from `e2eAbsenceReason`, when E2E is null)
108
- - Explicit note that integration tests are created simultaneously with implementation, E2E tests are executed after all implementations (when E2E path is provided)
117
+ After acceptance-test-generator execution, when invoking work-planner (subagent_type: "work-planner"), communicate per-lane:
118
+ - Integration test file path (from `generatedFiles.integration`) or null
119
+ - fixture-e2e test file path (from `generatedFiles.fixtureE2e`) or null
120
+ - service-integration-e2e test file path (from `generatedFiles.serviceE2e`) or null
121
+ - Per-lane absence reason (from `e2eAbsenceReason.fixtureE2e` / `e2eAbsenceReason.serviceE2e`) when that lane is null
122
+ - Explicit timing notes: integration tests are created alongside each phase implementation; fixture-e2e tests are created alongside the UI feature phase; service-integration-e2e tests are executed only in the final phase
123
+
124
+ ### Final Cleanup
125
+
126
+ Before the completion report, delete the implementation task files this recipe consumed. Their work is committed; `docs/plans/` is ephemeral working state and is not retained between recipe runs.
127
+
128
+ This recipe is scale-agnostic and may execute single-layer or multi-layer plans, so cleanup must cover all task naming patterns produced by task-decomposer's "Layer-aware naming" output:
129
+
130
+ - Delete every file matching ANY of these patterns for the `{plan-name}` derived from the work plan path used in this run:
131
+ - `docs/plans/tasks/{plan-name}-task-*.md` (single-layer tasks)
132
+ - `docs/plans/tasks/{plan-name}-backend-task-*.md` (backend portion of multi-layer plan)
133
+ - `docs/plans/tasks/{plan-name}-frontend-task-*.md` (frontend portion of multi-layer plan)
134
+ - From those matches, exclude `*-task-prep-*.md`, `_overview-*.md`, `*-phase*-completion.md`, `review-fixes-*.md`, `integration-tests-*-task-*.md` (these originate from other workflow phases)
135
+ - Delete every file matching `docs/plans/tasks/{plan-name}-phase*-completion.md` (the per-phase completion files generated by task-decomposer)
136
+ - Delete the corresponding `docs/plans/tasks/_overview-{plan-name}.md` if present
137
+ - Preserve the work plan itself (`docs/plans/{plan-name}.md`) — the user decides whether to delete it after final review
138
+
139
+ If task files cannot be deleted (filesystem error), report the failure but do not block the completion report.
109
140
 
110
141
  ## Execution Method
111
142
 
@@ -36,20 +36,21 @@ Follow subagents-orchestration-guide skill strictly and create work plan with th
36
36
  - Check for existence of design documents, notify user if none exist
37
37
  - Present options if multiple exist (can be specified with $ARGUMENTS)
38
38
 
39
- 2. **E2E Test Skeleton Generation Confirmation**
40
- - Confirm with user whether to generate E2E test skeleton first
41
- - If user wants generation: Generate test skeleton with acceptance-test-generator
39
+ 2. **Test Skeleton Generation Confirmation**
40
+ - Confirm with user whether to generate test skeletons (integration + E2E lanes) first
41
+ - If user wants generation: invoke acceptance-test-generator
42
42
  - Pass generation results to next process according to subagents-orchestration-guide skill coordination specification
43
43
 
44
44
  3. **Work Plan Creation**
45
45
  Invoke work-planner using Agent tool:
46
46
  - `subagent_type`: "work-planner"
47
47
  - `description`: "Work plan creation"
48
- - If test skeletons were generated in Step 2:
49
- - When `generatedFiles.e2e` is not null:
50
- `prompt`: "Create work plan from Design Doc at [path]. Integration test file: [integration test path]. E2E test file: [E2E test path]. Integration tests are created simultaneously with each phase implementation, E2E tests are executed only in final phase."
51
- - When `generatedFiles.e2e` is null:
52
- `prompt`: "Create work plan from Design Doc at [path]. Integration test file: [integration test path]. No E2E test skeletons were generated (reason: [e2eAbsenceReason]). Integration tests are created simultaneously with each phase implementation."
48
+ - If test skeletons were generated in Step 2, build the prompt by listing every lane's status:
49
+ - Always include: "Integration test file: [path or 'not generated']"
50
+ - For each E2E lane (`fixtureE2e`, `serviceE2e`):
51
+ - When `generatedFiles.<lane>` is not null: "[lane] test file: [path]"
52
+ - When `generatedFiles.<lane>` is null: "No [lane] skeleton generated (reason: [e2eAbsenceReason.<lane>])"
53
+ - Append placement guidance: "Integration tests are created simultaneously with each phase implementation. fixture-e2e tests are created alongside the UI feature phase. service-integration-e2e tests are executed only in the final phase."
53
54
  - If test skeletons were not generated:
54
55
  `prompt`: "Create work plan from Design Doc at [path]."
55
56