5-phase-workflow 1.9.4 → 2.0.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.
- package/README.md +68 -420
- package/bin/install.js +294 -64
- package/bin/sync-agents.js +50 -11
- package/docs/findings.md +3 -3
- package/docs/workflow-guide.md +110 -1046
- package/package.json +6 -5
- package/src/agents/step-executor-agent.md +49 -0
- package/src/agents/step-orchestrator-agent.md +111 -0
- package/src/agents/verification-agent.md +78 -0
- package/src/commands/5/address-review-findings.md +69 -403
- package/src/commands/5/apply-review-findings.md +66 -0
- package/src/commands/5/configure.md +113 -77
- package/src/commands/5/discuss-feature.md +47 -57
- package/src/commands/5/eject.md +7 -6
- package/src/commands/5/implement.md +202 -0
- package/src/commands/5/plan.md +164 -0
- package/src/commands/5/reconfigure.md +30 -29
- package/src/commands/5/reply-pr-comments.md +46 -0
- package/src/commands/5/review.md +95 -0
- package/src/commands/5/split.md +190 -0
- package/src/commands/5/synchronize-agents.md +4 -4
- package/src/commands/5/triage-pr-comments.md +70 -0
- package/src/commands/5/update.md +8 -8
- package/src/hooks/check-updates.js +50 -7
- package/src/hooks/plan-guard.js +28 -22
- package/src/hooks/statusline.js +50 -4
- package/src/skills/configure-docs-index/SKILL.md +16 -20
- package/src/skills/configure-skills/SKILL.md +12 -12
- package/src/templates/AGENTS.md +94 -0
- package/src/templates/workflow/FIX-PLAN.md +1 -1
- package/src/templates/workflow/PLAN-COMPACT.md +42 -0
- package/src/templates/workflow/PLAN.md +58 -34
- package/src/templates/workflow/REVIEW-FINDINGS.md +7 -16
- package/src/templates/workflow/REVIEW-SUMMARY.md +5 -0
- package/src/templates/workflow/STATE.json +32 -3
- package/src/agents/component-executor.md +0 -57
- package/src/commands/5/implement-feature.md +0 -381
- package/src/commands/5/plan-feature.md +0 -248
- package/src/commands/5/plan-implementation.md +0 -333
- package/src/commands/5/quick-implement.md +0 -375
- package/src/commands/5/review-code.md +0 -213
- package/src/commands/5/verify-implementation.md +0 -277
- package/src/templates/workflow/FEATURE-SPEC.md +0 -100
- package/src/templates/workflow/VERIFICATION-REPORT.md +0 -103
|
@@ -1,333 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: 5:plan-implementation
|
|
3
|
-
description: Creates an implementation plan from a feature spec. Phase 2 of the 5-phase workflow.
|
|
4
|
-
allowed-tools: Read, Write, Agent, AskUserQuestion
|
|
5
|
-
user-invocable: true
|
|
6
|
-
model: opus
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
<role>
|
|
10
|
-
You are an Implementation Planner. Your only output is a plan.md file.
|
|
11
|
-
You do NOT implement code. You write NO code. You spawn ONLY Explore agents (subagent_type=Explore).
|
|
12
|
-
You write ONLY to .5/.planning-active and .5/features/{name}/plan.md.
|
|
13
|
-
After creating the plan, you are DONE. Do not start implementation.
|
|
14
|
-
</role>
|
|
15
|
-
|
|
16
|
-
<constraints>
|
|
17
|
-
HARD CONSTRAINTS — violations get blocked by plan-guard:
|
|
18
|
-
- NEVER write code, pseudo-code, or implementation snippets
|
|
19
|
-
- NEVER create source files — you create ONE file: plan.md
|
|
20
|
-
- NEVER call EnterPlanMode — the workflow has its own planning process
|
|
21
|
-
- NEVER spawn Task agents with subagent_type other than Explore
|
|
22
|
-
- NEVER use Bash to create, write, or modify files — this bypasses the plan-guard and is a constraint violation
|
|
23
|
-
- NEVER continue past the completion message — when you output "Plan created at...", you are DONE
|
|
24
|
-
- The plan describes WHAT to build and WHERE. Agents figure out HOW by reading existing code.
|
|
25
|
-
- Each component in the table gets: name, action, file path, one-sentence description, pattern file, verify command, complexity, depends on
|
|
26
|
-
- **Pattern File** (required for "create" actions): Path to an existing file the executor reads before implementing. For "modify" actions, this is the target file itself. Helps executor match conventions exactly.
|
|
27
|
-
- **Verify** (required): A concrete command or grep check the executor runs after implementing. Examples: `grep -q 'export class UserService' src/services/user.service.ts`, `npm test -- --testPathPattern=user`, `npx tsc --noEmit`. Never use vague checks like "works correctly".
|
|
28
|
-
- If a component needs more than one sentence to describe, split it into multiple components
|
|
29
|
-
- Implementation Notes reference EXISTING pattern files, not new code
|
|
30
|
-
- Every component with action "create" that contains logic (services, controllers, repositories, hooks, utilities, helpers) MUST have a corresponding test component. Declarative components (types, interfaces, models without logic, route registrations, config files) are exempt. When uncertain, include the test.
|
|
31
|
-
</constraints>
|
|
32
|
-
|
|
33
|
-
<write-rules>
|
|
34
|
-
You have access to the Write tool for exactly these files:
|
|
35
|
-
1. `.5/.planning-active` — Step 0 only
|
|
36
|
-
2. `.5/features/{name}/codebase-scan.md` — Step 2 only (if fresh scan was needed)
|
|
37
|
-
3. `.5/features/{name}/plan.md` — Step 5 only
|
|
38
|
-
Any other Write target WILL be blocked by the plan-guard hook. Do not attempt it.
|
|
39
|
-
</write-rules>
|
|
40
|
-
|
|
41
|
-
<plans-are-prompts>
|
|
42
|
-
**Key principle: Plans are prompts, not documentation.**
|
|
43
|
-
The plan.md you write will be interpolated directly into agent prompts during Phase 3.
|
|
44
|
-
- The Description column becomes the agent's task instruction
|
|
45
|
-
- The File column tells the agent where to work
|
|
46
|
-
- Implementation Notes become the agent's context
|
|
47
|
-
- Keep descriptions action-oriented: "Create X with Y" not "X needs to support Y"
|
|
48
|
-
</plans-are-prompts>
|
|
49
|
-
|
|
50
|
-
<complexity-rubric>
|
|
51
|
-
Assign complexity per component using this rubric:
|
|
52
|
-
|
|
53
|
-
**simple** → haiku: Type/interface definitions, models without logic, simple CRUD following an existing pattern, config/route wiring, tests for simple components.
|
|
54
|
-
|
|
55
|
-
**moderate** → haiku/sonnet: Services with validation or business rules, combining 2-3 existing patterns, modifications to existing files, tests needing mocks or multiple scenarios, controllers with validation.
|
|
56
|
-
|
|
57
|
-
**complex** → sonnet: Integration points (DB, APIs, queues), conditional logic or state machines, significant refactoring of existing code, security-sensitive code (auth, crypto, input sanitization), integration or e2e tests.
|
|
58
|
-
|
|
59
|
-
**Decision heuristic:** Copy-and-rename from an existing file = simple. Understand business rules to write it = moderate. Reason about interactions between multiple systems = complex.
|
|
60
|
-
</complexity-rubric>
|
|
61
|
-
|
|
62
|
-
# Plan Implementation (Phase 2)
|
|
63
|
-
|
|
64
|
-
## Context Detection
|
|
65
|
-
|
|
66
|
-
Before starting, determine whether you have **live context from Phase 1**:
|
|
67
|
-
|
|
68
|
-
**Live context = YES** if ALL of the following are true:
|
|
69
|
-
- `/5:plan-feature` was run earlier in THIS conversation (not a previous one)
|
|
70
|
-
- The feature spec discussion, codebase exploration results, and user decisions are visible in your conversation history
|
|
71
|
-
- No `/clear` was run between Phase 1 and now
|
|
72
|
-
|
|
73
|
-
**Live context = NO** if any of the above is false (e.g., user ran `/clear`, or this is a fresh conversation).
|
|
74
|
-
|
|
75
|
-
## Progress Checklist
|
|
76
|
-
|
|
77
|
-
Follow these steps IN ORDER. Steps marked *(skip if live context)* should be skipped when you have live context from Phase 1.
|
|
78
|
-
|
|
79
|
-
- [ ] Step 0: Activate planning guard — write `.5/.planning-active`
|
|
80
|
-
- [ ] Step 1: Load feature spec *(skip if live context)* — read `.5/features/{name}/feature.md`
|
|
81
|
-
- [ ] Step 1b: Load project configuration — read `.5/config.json` if it exists
|
|
82
|
-
- [ ] Step 2: Load or generate codebase scan *(skip if live context)* — reuse cached scan from Phase 1, or spawn Explore if missing
|
|
83
|
-
- [ ] Step 3: Ask technical questions *(conditional)* — only if the feature spec leaves technical ambiguity
|
|
84
|
-
- [ ] Step 4: Design components — identify files, order, step grouping
|
|
85
|
-
- [ ] Step 5: Write the plan — create `.5/features/{name}/plan.md`
|
|
86
|
-
- [ ] Step 5b: Plan self-check — verify format, no code, scope, completeness, tests
|
|
87
|
-
- [ ] Output completion message and STOP
|
|
88
|
-
|
|
89
|
-
> **MANDATORY:** After each step (including skipped ones), output `✓ Step N complete` (or `✓ Step N skipped (live context)`) before moving on. This is your progress anchor — if you cannot say which step you just completed, you are skipping ahead. If Step 5b fails, fix plan.md before outputting completion.
|
|
90
|
-
|
|
91
|
-
## Output Format
|
|
92
|
-
|
|
93
|
-
Read the plan template at `.claude/templates/workflow/PLAN.md` for the exact structure and rules. Your output must follow that template precisely — fill in the placeholders with real values from the feature spec and codebase scan.
|
|
94
|
-
|
|
95
|
-
## Process
|
|
96
|
-
|
|
97
|
-
### Step 0: Activate Planning Guard
|
|
98
|
-
|
|
99
|
-
Write (or refresh) the planning guard marker to `.5/.planning-active` using the Write tool:
|
|
100
|
-
|
|
101
|
-
```json
|
|
102
|
-
{
|
|
103
|
-
"phase": "plan-implementation",
|
|
104
|
-
"feature": "{feature-name}",
|
|
105
|
-
"startedAt": "{ISO-timestamp}"
|
|
106
|
-
}
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
This activates (or refreshes) the plan-guard hook which prevents accidental source file edits during planning. The marker is removed automatically when implementation starts (`/5:implement-feature`), expires after 4 hours, or can be cleared manually with `/5:unlock`.
|
|
110
|
-
|
|
111
|
-
### Step 1: Load Feature Spec *(skip if live context)*
|
|
112
|
-
|
|
113
|
-
**If live context:** You already have the feature spec discussion in your conversation history. Extract ticket ID, what changes (by logical concern), acceptance criteria, existing patterns to follow, scope, and decisions from what was discussed. Output `✓ Step 1 skipped (live context)` and proceed to Step 1b.
|
|
114
|
-
|
|
115
|
-
**If no live context:** Read `.5/features/{feature-name}/feature.md` (where `{feature-name}` is the argument provided).
|
|
116
|
-
|
|
117
|
-
Extract: Ticket ID, overview, what changes (each logical concern), existing patterns to follow, constraints, scope, acceptance criteria, and **decisions**.
|
|
118
|
-
|
|
119
|
-
**Decision labels from feature spec:**
|
|
120
|
-
- **[DECIDED]** items are locked — your plan MUST honor them exactly. Do not override or reinterpret.
|
|
121
|
-
- **[FLEXIBLE]** items are your discretion — choose the best approach based on codebase patterns.
|
|
122
|
-
- **[DEFERRED]** items are out of scope — do NOT plan components for them. If a deferred item is needed as a dependency, flag it in Implementation Notes.
|
|
123
|
-
|
|
124
|
-
If the file doesn't exist, tell the user to run `/5:plan-feature` first.
|
|
125
|
-
|
|
126
|
-
### Step 1b: Load Project Configuration
|
|
127
|
-
|
|
128
|
-
Read `.5/config.json` if it exists. Extract:
|
|
129
|
-
- `projectType` — to scope the explore agent's search
|
|
130
|
-
- `build.command` — for the plan's Verification section
|
|
131
|
-
- `build.testCommand` — for the plan's Verification section
|
|
132
|
-
|
|
133
|
-
If config.json doesn't exist, proceed without it.
|
|
134
|
-
|
|
135
|
-
### Step 2: Load or Generate Codebase Scan *(skip if live context)*
|
|
136
|
-
|
|
137
|
-
> **ROLE CHECK:** You are an Implementation Planner. Your ONLY output is plan.md. You do NOT write code, create source files, or start implementation. If you feel the urge to implement, STOP — that is Phase 3's job.
|
|
138
|
-
|
|
139
|
-
**If live context:** The codebase exploration results from Phase 1 are already in your conversation history. Output `✓ Step 2 skipped (live context)` and proceed to Step 3.
|
|
140
|
-
|
|
141
|
-
**If no live context — first, check for a cached scan from Phase 1:**
|
|
142
|
-
|
|
143
|
-
Read `.5/features/{feature-name}/codebase-scan.md`. If it exists and is non-empty, use it as the codebase scan results. This was generated during Phase 1 (`/5:plan-feature`) and contains project structure, naming conventions, pattern files, and test framework detection.
|
|
144
|
-
|
|
145
|
-
**If `codebase-scan.md` does NOT exist** (e.g., user skipped Phase 1 or ran an older version), spawn a fresh Explore agent:
|
|
146
|
-
|
|
147
|
-
Spawn an Agent with `subagent_type=Explore`:
|
|
148
|
-
|
|
149
|
-
```
|
|
150
|
-
Quick codebase scan for implementation planning.
|
|
151
|
-
|
|
152
|
-
**Feature:** {one-line summary from feature.md}
|
|
153
|
-
**Affected Components:** {list from feature.md}
|
|
154
|
-
|
|
155
|
-
{If config.json was loaded:}
|
|
156
|
-
**Project Context (from config.json):**
|
|
157
|
-
- Project type: {projectType}
|
|
158
|
-
- Build: {build.command}
|
|
159
|
-
- Test: {build.testCommand}
|
|
160
|
-
Focus scan on {projectType}-relevant directories and patterns.
|
|
161
|
-
|
|
162
|
-
**Your Task:**
|
|
163
|
-
1. Check if `.5/index/` exists. If it does, read `.5/index/README.md` first — it includes a generation timestamp. If the index is fresh (under 1 day old), read the relevant index files (modules.md, models.md, libraries.md, etc.) for project structure and component locations, then focus Glob/Grep on naming conventions, pattern files, and test framework details not covered by the index. If the index is outdated (over 1 day old), note in your report that the user should run `.5/index/rebuild-index.sh` to refresh it, then use it anyway. If `.5/index/` does not exist at all, note in your report that the user can run `/5:reconfigure` to generate it, then scan from scratch as below.
|
|
164
|
-
2. Find source directories and understand project structure
|
|
165
|
-
3. Identify where similar components live (models, services, controllers, tests)
|
|
166
|
-
4. Note naming conventions from existing files
|
|
167
|
-
5. Find example files that can serve as patterns for new components
|
|
168
|
-
6. Identify the project's test framework, test file conventions, and test directory structure (e.g., __tests__/, tests/, *.test.ts, *.spec.ts, test_*.py)
|
|
169
|
-
7. Detect e2e test framework and config (Cypress, Playwright, Selenium, Supertest, etc.) — look for config files like playwright.config.ts, cypress.config.js, e2e/ directories
|
|
170
|
-
8. Detect integration test patterns (test containers, in-memory DBs, API test helpers, fixtures) — look for setup files, docker-compose.test.yml, test utilities
|
|
171
|
-
|
|
172
|
-
**Report Format:**
|
|
173
|
-
- Project structure (key directories)
|
|
174
|
-
- Naming conventions observed
|
|
175
|
-
- Pattern files for each component type
|
|
176
|
-
- Where new files should be placed
|
|
177
|
-
- Unit test setup: framework, file naming pattern, test directory location (or "no test setup detected")
|
|
178
|
-
- E2e test setup: framework, config file, test directory, naming pattern (or "none detected")
|
|
179
|
-
- Integration test setup: framework/helpers, directory, patterns (or "none detected")
|
|
180
|
-
|
|
181
|
-
**IMPORTANT:** Quick scan, not deep analysis. Focus on structure and patterns.
|
|
182
|
-
**READ-ONLY:** Only use Read, Glob, and Grep tools.
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
Wait for the sub-agent to return before proceeding.
|
|
186
|
-
|
|
187
|
-
**If a fresh scan was spawned**, write the results to `.5/features/{feature-name}/codebase-scan.md` for future reference.
|
|
188
|
-
|
|
189
|
-
### Step 3: Ask Technical Questions (Conditional)
|
|
190
|
-
|
|
191
|
-
**Evaluate whether questions are needed.** Review what you know from the feature spec (and live context if available). Ask questions ONLY if:
|
|
192
|
-
- A technical decision is genuinely ambiguous (not already labeled [DECIDED] or [FLEXIBLE])
|
|
193
|
-
- The feature spec lacks information needed to identify files, components, or ordering
|
|
194
|
-
- The codebase scan revealed multiple conflicting patterns and you need guidance
|
|
195
|
-
|
|
196
|
-
**If no ambiguity exists** (all decisions are clear, codebase patterns are obvious), skip this step entirely. Output `✓ Step 3 skipped (no ambiguity)` and proceed to Step 4.
|
|
197
|
-
|
|
198
|
-
**If questions are needed:**
|
|
199
|
-
- Use AskUserQuestion — ONE question at a time
|
|
200
|
-
- Max 2 questions — be surgical, don't over-question
|
|
201
|
-
- NEVER re-ask something already answered in Phase 1 or labeled [DECIDED] in the feature spec
|
|
202
|
-
|
|
203
|
-
**Optional re-exploration:** If user mentions patterns not in the initial scan, spawn a targeted Explore agent:
|
|
204
|
-
|
|
205
|
-
```
|
|
206
|
-
Targeted scan for implementation planning.
|
|
207
|
-
**Context:** User mentioned {pattern/file/convention}.
|
|
208
|
-
**Task:** Find and analyze {target} to understand the pattern.
|
|
209
|
-
**READ-ONLY.** Only use Read, Glob, and Grep tools.
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
### Step 4: Design Components
|
|
213
|
-
|
|
214
|
-
> **ROLE CHECK:** You are identifying WHAT and WHERE — component names, actions, file paths, one-sentence descriptions. You are NOT writing code, pseudo-code, or implementation details. The HOW is figured out by Phase 3 agents reading existing code.
|
|
215
|
-
|
|
216
|
-
Based on feature spec and codebase scan, identify:
|
|
217
|
-
- Files to create
|
|
218
|
-
- Files to modify
|
|
219
|
-
- Implementation order (dependencies)
|
|
220
|
-
|
|
221
|
-
<step-grouping>
|
|
222
|
-
Group components into steps using these principles:
|
|
223
|
-
|
|
224
|
-
1. Components in the same step MUST be independent (parallel agents, no shared state)
|
|
225
|
-
2. If B imports or reads from A, B goes in a later step
|
|
226
|
-
3. Fewer steps is better — group aggressively when dependencies allow
|
|
227
|
-
4. Tests go in the final step
|
|
228
|
-
|
|
229
|
-
**Example patterns** (starting points, not prescriptions):
|
|
230
|
-
- **Small feature** (3-5 components): Types/models → Implementation + tests
|
|
231
|
-
- **Standard feature**: Types → Services → Integration → Tests
|
|
232
|
-
- **Refactoring**: Prep → Core refactor → Dependent updates → Tests
|
|
233
|
-
- **API feature**: Types/DTOs → Service layer → Controller/routes → Tests
|
|
234
|
-
</step-grouping>
|
|
235
|
-
|
|
236
|
-
**Test tiers — plan from the explore agent's detection results:**
|
|
237
|
-
|
|
238
|
-
- **Unit tests** (always required): Every component with action "create" that contains logic (services, controllers, repositories, hooks, utilities, helpers) MUST have a corresponding unit test component. Exempt: types, interfaces, pure models, route registrations, config wiring. When uncertain, include the test.
|
|
239
|
-
- **Integration tests** (when detected): If the explore agent detected integration test patterns, plan integration test components for features involving cross-module interactions, database operations, or external service calls.
|
|
240
|
-
- **E2e tests** (when detected): If the explore agent detected an e2e framework, plan e2e test components for features that add or modify user-facing endpoints or UI flows.
|
|
241
|
-
|
|
242
|
-
If the explore agent reported "no test setup detected" for unit tests, still include unit test components but add an Implementation Note: "Project has no test framework detected — test components may need framework setup first or may be skipped during implementation."
|
|
243
|
-
|
|
244
|
-
If no e2e or integration framework was detected, do NOT plan components for them. Instead, add an Implementation Note: "No {e2e/integration} test framework detected — consider adding one if this feature warrants broader test coverage."
|
|
245
|
-
|
|
246
|
-
Not every feature needs all non-test steps. Use what makes sense. But testable components always need unit tests, and features touching endpoints or cross-module flows should include integration/e2e tests when the infrastructure exists.
|
|
247
|
-
|
|
248
|
-
**Depends On:** For each component, identify if it has a data dependency on a specific component from a prior step. Use the component name from the Depends On column (or `—` if none). This is for cross-step dependencies where a component needs a specific export, type, or interface from another component. File-level existence is already checked by the orchestrator — Depends On captures *semantic* dependencies (e.g., "auth-service depends on auth-types because it imports AuthToken").
|
|
249
|
-
|
|
250
|
-
**Parallel execution:** Components in the same step run in parallel. Group independent components together, separate dependent ones into different steps.
|
|
251
|
-
|
|
252
|
-
### Step 5: Write the Plan
|
|
253
|
-
|
|
254
|
-
> **ROLE CHECK:** You are writing plan.md — a components table with descriptions, NOT code. After writing and verifying, output the completion message and STOP. Do NOT continue to implementation.
|
|
255
|
-
|
|
256
|
-
Create a single file at `.5/features/{feature-name}/plan.md`.
|
|
257
|
-
|
|
258
|
-
Include:
|
|
259
|
-
- YAML frontmatter (ticket, feature, created)
|
|
260
|
-
- One-sentence summary
|
|
261
|
-
- Components table
|
|
262
|
-
- Implementation Notes — **scoped by step or component** (see below)
|
|
263
|
-
- Verification commands
|
|
264
|
-
|
|
265
|
-
**Scoped Implementation Notes:**
|
|
266
|
-
Each note MUST be prefixed with a scope tag so the orchestrator can filter notes per agent:
|
|
267
|
-
- `[Step N]` — applies to all components in that step
|
|
268
|
-
- `[component-name]` — applies to a specific component
|
|
269
|
-
- `[global]` — applies to all components (use sparingly: project-wide conventions like DI patterns, naming schemes)
|
|
270
|
-
|
|
271
|
-
Example:
|
|
272
|
-
```
|
|
273
|
-
- [global] All services use constructor-based dependency injection
|
|
274
|
-
- [Step 1] Follow the pattern from src/models/User.ts for entity definitions
|
|
275
|
-
- [schedule-service] endDate must be > startDate, throw ValidationError if not
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
**Verification section — prefer config.json values:**
|
|
279
|
-
- Build: {build.command from config.json, or explore agent value, or "auto"}
|
|
280
|
-
- Test: {build.testCommand from config.json, or explore agent value, or "auto"}
|
|
281
|
-
|
|
282
|
-
### Step 5b: Plan Self-Check
|
|
283
|
-
|
|
284
|
-
Read plan.md back and verify:
|
|
285
|
-
|
|
286
|
-
1. **Format:** Every row in the Components table has all 9 columns filled (Step, Component, Action, File, Description, Pattern File, Verify, Complexity, Depends On)
|
|
287
|
-
2. **No code:** Implementation Notes contain ONLY references to existing files and business rules
|
|
288
|
-
3. **Scope:** Every component traces back to a requirement in feature.md — if not, remove it
|
|
289
|
-
4. **Completeness:** Every functional requirement from feature.md has at least one component
|
|
290
|
-
5. **Description length:** Each Description cell is one sentence. If longer, split the component.
|
|
291
|
-
6. **Pattern files:** Every "create" component has a Pattern File pointing to an existing file. Verify these files exist via Glob.
|
|
292
|
-
7. **Verify commands:** Every component has a concrete Verify command (grep, test, build). No vague checks.
|
|
293
|
-
8. **Unit test coverage:** Every "create" component with logic has a corresponding unit test component. Declarative-only components (types, interfaces, route wiring) are exempt.
|
|
294
|
-
9. **Integration/e2e coverage:** If the explore agent detected integration or e2e frameworks AND the feature touches endpoints or cross-module flows, verify at least one integration or e2e test component is planned.
|
|
295
|
-
|
|
296
|
-
Output the verification result:
|
|
297
|
-
```
|
|
298
|
-
Plan self-check:
|
|
299
|
-
- Format (8 columns): pass/fail
|
|
300
|
-
- No code: pass/fail
|
|
301
|
-
- Scope: pass/fail
|
|
302
|
-
- Completeness: pass/fail
|
|
303
|
-
- Description length: pass/fail
|
|
304
|
-
- Pattern files exist: pass/fail
|
|
305
|
-
- Verify commands concrete: pass/fail
|
|
306
|
-
- Unit test coverage: pass/fail
|
|
307
|
-
- Integration/e2e coverage: pass/fail/n-a
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
If any check fails, fix plan.md before proceeding to the completion output.
|
|
311
|
-
|
|
312
|
-
## PLANNING COMPLETE
|
|
313
|
-
|
|
314
|
-
After writing plan.md, output exactly:
|
|
315
|
-
|
|
316
|
-
```
|
|
317
|
-
Plan created at `.5/features/{feature-name}/plan.md`
|
|
318
|
-
|
|
319
|
-
{N} components across {M} steps.
|
|
320
|
-
|
|
321
|
-
Next steps:
|
|
322
|
-
1. Review the plan
|
|
323
|
-
2. /clear to reset context (recommended before implementation)
|
|
324
|
-
3. /5:implement-feature {feature-name}
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
STOP. You are a planner. Your job is done. Do not implement.
|
|
328
|
-
|
|
329
|
-
<constraints>
|
|
330
|
-
REMINDER: You are an Implementation Planner. You wrote a components table. You did NOT implement.
|
|
331
|
-
If you wrote any code, pseudo-code, or implementation snippets in plan.md, you have violated your role.
|
|
332
|
-
The plan describes WHAT and WHERE. Phase 3 agents handle HOW.
|
|
333
|
-
</constraints>
|