get-shit-done-cc 1.4.3 → 1.4.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/commands/gsd/_archive/execute-phase.md +120 -0
- package/commands/gsd/execute-phase.md +74 -81
- package/get-shit-done/references/plan-format.md +68 -21
- package/get-shit-done/references/scope-estimation.md +78 -82
- package/get-shit-done/templates/phase-prompt.md +255 -194
- package/get-shit-done/templates/subagent-task-prompt.md +61 -0
- package/get-shit-done/workflows/_archive/execute-phase.md +899 -0
- package/get-shit-done/workflows/debug.md +35 -15
- package/get-shit-done/workflows/execute-phase.md +255 -786
- package/get-shit-done/workflows/plan-phase.md +195 -117
- package/package.json +1 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd:execute-phase
|
|
3
|
+
description: Execute all plans in a phase with intelligent parallelization
|
|
4
|
+
argument-hint: "<phase-number>"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Task
|
|
13
|
+
- TaskOutput
|
|
14
|
+
- AskUserQuestion
|
|
15
|
+
- SlashCommand
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<objective>
|
|
19
|
+
Execute all unexecuted plans in a phase with parallel agent spawning.
|
|
20
|
+
|
|
21
|
+
Analyzes plan dependencies to identify independent plans that can run concurrently.
|
|
22
|
+
Spawns background agents for parallel execution, each agent commits its own tasks atomically.
|
|
23
|
+
|
|
24
|
+
**Critical constraint:** One subagent per plan, always. This is for context isolation, not parallelization. Even strictly sequential plans spawn separate subagents so each starts with fresh 200k context at 0%.
|
|
25
|
+
|
|
26
|
+
Use this command when:
|
|
27
|
+
- Phase has 2+ unexecuted plans
|
|
28
|
+
- Want "walk away, come back to completed work" execution
|
|
29
|
+
- Plans have clear dependency boundaries
|
|
30
|
+
</objective>
|
|
31
|
+
|
|
32
|
+
<execution_context>
|
|
33
|
+
@~/.claude/get-shit-done/workflows/execute-plan.md
|
|
34
|
+
@~/.claude/get-shit-done/workflows/execute-phase.md
|
|
35
|
+
@~/.claude/get-shit-done/templates/summary.md
|
|
36
|
+
@~/.claude/get-shit-done/references/checkpoints.md
|
|
37
|
+
@~/.claude/get-shit-done/references/tdd.md
|
|
38
|
+
</execution_context>
|
|
39
|
+
|
|
40
|
+
<context>
|
|
41
|
+
Phase number: $ARGUMENTS (required)
|
|
42
|
+
|
|
43
|
+
@.planning/STATE.md
|
|
44
|
+
@.planning/config.json
|
|
45
|
+
</context>
|
|
46
|
+
|
|
47
|
+
<process>
|
|
48
|
+
1. Validate phase exists in roadmap
|
|
49
|
+
2. Find all PLAN.md files without matching SUMMARY.md
|
|
50
|
+
3. If 0 or 1 plans: suggest /gsd:execute-plan instead
|
|
51
|
+
4. If 2+ plans: follow execute-phase.md workflow
|
|
52
|
+
5. Monitor parallel agents until completion
|
|
53
|
+
6. Present results and next steps
|
|
54
|
+
</process>
|
|
55
|
+
|
|
56
|
+
<execution_strategies>
|
|
57
|
+
**Strategy A: Fully Autonomous** (no checkpoints)
|
|
58
|
+
|
|
59
|
+
- Spawn subagent to execute entire plan
|
|
60
|
+
- Subagent creates SUMMARY.md and commits
|
|
61
|
+
- Main context: orchestration only (~5% usage)
|
|
62
|
+
|
|
63
|
+
**Strategy B: Segmented** (has verify-only checkpoints)
|
|
64
|
+
|
|
65
|
+
- Execute in segments between checkpoints
|
|
66
|
+
- Subagent for autonomous segments
|
|
67
|
+
- Main context for checkpoints
|
|
68
|
+
- Aggregate results → SUMMARY → commit
|
|
69
|
+
|
|
70
|
+
**Strategy C: Decision-Dependent** (has decision checkpoints)
|
|
71
|
+
|
|
72
|
+
- Execute in main context
|
|
73
|
+
- Decision outcomes affect subsequent tasks
|
|
74
|
+
- Quality maintained through small scope (2-3 tasks per plan)
|
|
75
|
+
</execution_strategies>
|
|
76
|
+
|
|
77
|
+
<deviation_rules>
|
|
78
|
+
During execution, handle discoveries automatically:
|
|
79
|
+
|
|
80
|
+
1. **Auto-fix bugs** - Fix immediately, document in Summary
|
|
81
|
+
2. **Auto-add critical** - Security/correctness gaps, add and document
|
|
82
|
+
3. **Auto-fix blockers** - Can't proceed without fix, do it and document
|
|
83
|
+
4. **Ask about architectural** - Major structural changes, stop and ask user
|
|
84
|
+
5. **Log enhancements** - Nice-to-haves, log to ISSUES.md, continue
|
|
85
|
+
|
|
86
|
+
Only rule 4 requires user intervention.
|
|
87
|
+
</deviation_rules>
|
|
88
|
+
|
|
89
|
+
<commit_rules>
|
|
90
|
+
**Per-Task Commits:**
|
|
91
|
+
|
|
92
|
+
After each task completes:
|
|
93
|
+
1. Stage only files modified by that task
|
|
94
|
+
2. Commit with format: `{type}({phase}-{plan}): {task-name}`
|
|
95
|
+
3. Types: feat, fix, test, refactor, perf, chore
|
|
96
|
+
4. Record commit hash for SUMMARY.md
|
|
97
|
+
|
|
98
|
+
**Plan Metadata Commit:**
|
|
99
|
+
|
|
100
|
+
After all tasks complete:
|
|
101
|
+
1. Stage planning artifacts only: PLAN.md, SUMMARY.md, STATE.md, ROADMAP.md
|
|
102
|
+
2. Commit with format: `docs({phase}-{plan}): complete [plan-name] plan`
|
|
103
|
+
3. NO code files (already committed per-task)
|
|
104
|
+
|
|
105
|
+
**NEVER use:**
|
|
106
|
+
- `git add .`
|
|
107
|
+
- `git add -A`
|
|
108
|
+
- `git add src/` or any broad directory
|
|
109
|
+
|
|
110
|
+
**Always stage files individually.**
|
|
111
|
+
</commit_rules>
|
|
112
|
+
|
|
113
|
+
<success_criteria>
|
|
114
|
+
- [ ] All independent plans executed in parallel
|
|
115
|
+
- [ ] Dependent plans executed after dependencies complete
|
|
116
|
+
- [ ] Each task committed individually (feat/fix/test/refactor)
|
|
117
|
+
- [ ] All SUMMARY.md files created
|
|
118
|
+
- [ ] Metadata committed by orchestrator
|
|
119
|
+
- [ ] Phase progress updated
|
|
120
|
+
</success_criteria>
|
|
@@ -1,120 +1,113 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd:execute-phase
|
|
3
|
-
description: Execute all plans in a phase with
|
|
3
|
+
description: Execute all plans in a phase with wave-based parallelization
|
|
4
4
|
argument-hint: "<phase-number>"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
|
-
- Bash
|
|
10
7
|
- Glob
|
|
11
8
|
- Grep
|
|
9
|
+
- Bash
|
|
12
10
|
- Task
|
|
13
|
-
-
|
|
11
|
+
- TodoWrite
|
|
14
12
|
- AskUserQuestion
|
|
15
|
-
- SlashCommand
|
|
16
13
|
---
|
|
17
14
|
|
|
18
15
|
<objective>
|
|
19
|
-
Execute all
|
|
20
|
-
|
|
21
|
-
Analyzes plan dependencies to identify independent plans that can run concurrently.
|
|
22
|
-
Spawns background agents for parallel execution, each agent commits its own tasks atomically.
|
|
16
|
+
Execute all plans in a phase using wave-based parallel execution.
|
|
23
17
|
|
|
24
|
-
|
|
18
|
+
Orchestrator stays lean: discover plans, analyze dependencies, group into waves, spawn subagents, collect results. Each subagent loads the full execute-plan context and handles its own plan.
|
|
25
19
|
|
|
26
|
-
|
|
27
|
-
- Phase has 2+ unexecuted plans
|
|
28
|
-
- Want "walk away, come back to completed work" execution
|
|
29
|
-
- Plans have clear dependency boundaries
|
|
20
|
+
Context budget: ~15% orchestrator, 100% fresh per subagent.
|
|
30
21
|
</objective>
|
|
31
22
|
|
|
32
23
|
<execution_context>
|
|
33
|
-
@~/.claude/get-shit-done/workflows/execute-plan.md
|
|
34
24
|
@~/.claude/get-shit-done/workflows/execute-phase.md
|
|
35
|
-
@~/.claude/get-shit-done/templates/
|
|
36
|
-
@~/.claude/get-shit-done/references/checkpoints.md
|
|
37
|
-
@~/.claude/get-shit-done/references/tdd.md
|
|
25
|
+
@~/.claude/get-shit-done/templates/subagent-task-prompt.md
|
|
38
26
|
</execution_context>
|
|
39
27
|
|
|
40
28
|
<context>
|
|
41
|
-
Phase
|
|
29
|
+
Phase: $ARGUMENTS
|
|
42
30
|
|
|
31
|
+
@.planning/ROADMAP.md
|
|
43
32
|
@.planning/STATE.md
|
|
44
|
-
@.planning/config.json
|
|
45
33
|
</context>
|
|
46
34
|
|
|
47
35
|
<process>
|
|
48
|
-
1. Validate phase exists
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
36
|
+
1. **Validate phase exists**
|
|
37
|
+
- Find phase directory matching argument
|
|
38
|
+
- Count PLAN.md files
|
|
39
|
+
- Error if no plans found
|
|
40
|
+
|
|
41
|
+
2. **Discover plans**
|
|
42
|
+
- List all *-PLAN.md files in phase directory
|
|
43
|
+
- Check which have *-SUMMARY.md (already complete)
|
|
44
|
+
- Build list of incomplete plans
|
|
45
|
+
|
|
46
|
+
3. **Analyze dependencies**
|
|
47
|
+
- Read each plan's `<context>` section
|
|
48
|
+
- Detect cross-references to other plans' outputs
|
|
49
|
+
- Build dependency graph
|
|
50
|
+
|
|
51
|
+
4. **Group into waves**
|
|
52
|
+
- Wave 1: Plans with no dependencies
|
|
53
|
+
- Wave N: Plans depending only on earlier waves
|
|
54
|
+
- Report wave structure to user
|
|
55
|
+
|
|
56
|
+
5. **Execute waves**
|
|
57
|
+
For each wave:
|
|
58
|
+
- Fill subagent-task-prompt template for each plan
|
|
59
|
+
- Spawn all agents in wave simultaneously (parallel Task calls)
|
|
60
|
+
- Wait for completion (Task blocks)
|
|
61
|
+
- Verify SUMMARYs created
|
|
62
|
+
- Proceed to next wave
|
|
63
|
+
|
|
64
|
+
6. **Aggregate results**
|
|
65
|
+
- Collect summaries from all plans
|
|
66
|
+
- Report phase completion status
|
|
67
|
+
- Update ROADMAP.md
|
|
68
|
+
|
|
69
|
+
7. **Offer next steps**
|
|
70
|
+
- More phases → `/gsd:plan-phase {next}`
|
|
71
|
+
- Milestone complete → `/gsd:complete-milestone`
|
|
54
72
|
</process>
|
|
55
73
|
|
|
56
|
-
<
|
|
57
|
-
**
|
|
58
|
-
|
|
59
|
-
- Spawn subagent to execute entire plan
|
|
60
|
-
- Subagent creates SUMMARY.md and commits
|
|
61
|
-
- Main context: orchestration only (~5% usage)
|
|
62
|
-
|
|
63
|
-
**Strategy B: Segmented** (has verify-only checkpoints)
|
|
64
|
-
|
|
65
|
-
- Execute in segments between checkpoints
|
|
66
|
-
- Subagent for autonomous segments
|
|
67
|
-
- Main context for checkpoints
|
|
68
|
-
- Aggregate results → SUMMARY → commit
|
|
69
|
-
|
|
70
|
-
**Strategy C: Decision-Dependent** (has decision checkpoints)
|
|
71
|
-
|
|
72
|
-
- Execute in main context
|
|
73
|
-
- Decision outcomes affect subsequent tasks
|
|
74
|
-
- Quality maintained through small scope (2-3 tasks per plan)
|
|
75
|
-
</execution_strategies>
|
|
76
|
-
|
|
77
|
-
<deviation_rules>
|
|
78
|
-
During execution, handle discoveries automatically:
|
|
74
|
+
<wave_execution>
|
|
75
|
+
**Parallel spawning:**
|
|
79
76
|
|
|
80
|
-
|
|
81
|
-
2. **Auto-add critical** - Security/correctness gaps, add and document
|
|
82
|
-
3. **Auto-fix blockers** - Can't proceed without fix, do it and document
|
|
83
|
-
4. **Ask about architectural** - Major structural changes, stop and ask user
|
|
84
|
-
5. **Log enhancements** - Nice-to-haves, log to ISSUES.md, continue
|
|
77
|
+
Spawn all plans in a wave with a single message containing multiple Task calls:
|
|
85
78
|
|
|
86
|
-
|
|
87
|
-
|
|
79
|
+
```
|
|
80
|
+
Task(prompt=filled_template_for_plan_01, subagent_type="general-purpose")
|
|
81
|
+
Task(prompt=filled_template_for_plan_02, subagent_type="general-purpose")
|
|
82
|
+
Task(prompt=filled_template_for_plan_03, subagent_type="general-purpose")
|
|
83
|
+
```
|
|
88
84
|
|
|
89
|
-
|
|
90
|
-
**Per-Task Commits:**
|
|
85
|
+
All three run in parallel. Task tool blocks until all complete.
|
|
91
86
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
2. Commit with format: `{type}({phase}-{plan}): {task-name}`
|
|
95
|
-
3. Types: feat, fix, test, refactor, perf, chore
|
|
96
|
-
4. Record commit hash for SUMMARY.md
|
|
87
|
+
**No polling.** No background agents. No TaskOutput loops.
|
|
88
|
+
</wave_execution>
|
|
97
89
|
|
|
98
|
-
|
|
90
|
+
<checkpoint_detection>
|
|
91
|
+
Before adding a plan to a parallel wave, scan for checkpoints:
|
|
99
92
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
3. NO code files (already committed per-task)
|
|
93
|
+
```bash
|
|
94
|
+
grep -c 'type="checkpoint' {plan_path}
|
|
95
|
+
```
|
|
104
96
|
|
|
105
|
-
**
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
-
|
|
97
|
+
**If checkpoints > 0:**
|
|
98
|
+
- Plan requires user interaction
|
|
99
|
+
- Execute in main context OR as solo subagent (not parallel)
|
|
100
|
+
- User interaction flows through normally
|
|
109
101
|
|
|
110
|
-
**
|
|
111
|
-
|
|
102
|
+
**If checkpoints = 0:**
|
|
103
|
+
- Fully autonomous
|
|
104
|
+
- Safe for parallel wave execution
|
|
105
|
+
</checkpoint_detection>
|
|
112
106
|
|
|
113
107
|
<success_criteria>
|
|
114
|
-
- [ ] All
|
|
115
|
-
- [ ]
|
|
116
|
-
- [ ]
|
|
117
|
-
- [ ]
|
|
118
|
-
- [ ]
|
|
119
|
-
- [ ] Phase progress updated
|
|
108
|
+
- [ ] All incomplete plans in phase executed
|
|
109
|
+
- [ ] Each plan has SUMMARY.md
|
|
110
|
+
- [ ] STATE.md reflects phase completion
|
|
111
|
+
- [ ] ROADMAP.md updated
|
|
112
|
+
- [ ] User informed of next steps
|
|
120
113
|
</success_criteria>
|
|
@@ -10,14 +10,50 @@ A plan is Claude-executable when Claude can read the PLAN.md and immediately sta
|
|
|
10
10
|
If Claude has to guess, interpret, or make assumptions - the task is too vague.
|
|
11
11
|
</core_principle>
|
|
12
12
|
|
|
13
|
+
<frontmatter>
|
|
14
|
+
Every PLAN.md starts with YAML frontmatter:
|
|
15
|
+
|
|
16
|
+
```yaml
|
|
17
|
+
---
|
|
18
|
+
phase: XX-name
|
|
19
|
+
plan: NN
|
|
20
|
+
type: execute
|
|
21
|
+
depends_on: [] # Plan IDs this plan requires (e.g., ["01-01"])
|
|
22
|
+
files_modified: [] # Files this plan modifies
|
|
23
|
+
autonomous: true # false if plan has checkpoints
|
|
24
|
+
domain: [optional] # Domain skill if loaded
|
|
25
|
+
---
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
| Field | Required | Purpose |
|
|
29
|
+
|-------|----------|---------|
|
|
30
|
+
| `phase` | Yes | Phase identifier (e.g., `01-foundation`) |
|
|
31
|
+
| `plan` | Yes | Plan number within phase (e.g., `01`, `02`) |
|
|
32
|
+
| `type` | Yes | `execute` for standard plans, `tdd` for TDD plans |
|
|
33
|
+
| `depends_on` | Yes | Array of plan IDs this plan requires. **Empty = Wave 1 candidate** |
|
|
34
|
+
| `files_modified` | Yes | Files this plan touches. Used for conflict detection |
|
|
35
|
+
| `autonomous` | Yes | `true` if no checkpoints, `false` if has checkpoints |
|
|
36
|
+
| `domain` | No | Domain skill if loaded (e.g., `next-js`) |
|
|
37
|
+
|
|
38
|
+
**Wave assignment:** `/gsd:execute-phase` reads `depends_on` and `files_modified` to build execution waves:
|
|
39
|
+
- `depends_on: []` + no file conflicts → Wave 1 (parallel)
|
|
40
|
+
- `depends_on: ["XX-YY"]` → runs after plan XX-YY completes
|
|
41
|
+
- Shared `files_modified` → sequential by plan number
|
|
42
|
+
|
|
43
|
+
**Checkpoint detection:** Plans with `autonomous: false` require user interaction. Execute after parallel wave or in main context.
|
|
44
|
+
</frontmatter>
|
|
45
|
+
|
|
13
46
|
<prompt_structure>
|
|
14
47
|
Every PLAN.md follows this XML structure:
|
|
15
48
|
|
|
16
49
|
```markdown
|
|
17
50
|
---
|
|
18
51
|
phase: XX-name
|
|
52
|
+
plan: NN
|
|
19
53
|
type: execute
|
|
20
|
-
|
|
54
|
+
depends_on: []
|
|
55
|
+
files_modified: [path/to/file.ts]
|
|
56
|
+
autonomous: true
|
|
21
57
|
---
|
|
22
58
|
|
|
23
59
|
<objective>
|
|
@@ -26,9 +62,19 @@ Purpose: [...]
|
|
|
26
62
|
Output: [...]
|
|
27
63
|
</objective>
|
|
28
64
|
|
|
65
|
+
<execution_context>
|
|
66
|
+
@~/.claude/get-shit-done/workflows/execute-plan.md
|
|
67
|
+
@~/.claude/get-shit-done/templates/summary.md
|
|
68
|
+
[If checkpoints exist:]
|
|
69
|
+
@~/.claude/get-shit-done/references/checkpoints.md
|
|
70
|
+
</execution_context>
|
|
71
|
+
|
|
29
72
|
<context>
|
|
30
73
|
@.planning/PROJECT.md
|
|
31
74
|
@.planning/ROADMAP.md
|
|
75
|
+
@.planning/STATE.md
|
|
76
|
+
[Only if genuinely needed:]
|
|
77
|
+
@.planning/phases/XX-name/XX-YY-SUMMARY.md
|
|
32
78
|
@relevant/source/files.ts
|
|
33
79
|
</context>
|
|
34
80
|
|
|
@@ -240,6 +286,14 @@ Use for: Technology selection, architecture decisions, design choices, feature p
|
|
|
240
286
|
|
|
241
287
|
**Golden rule:** If Claude CAN automate it, Claude MUST automate it.
|
|
242
288
|
|
|
289
|
+
**Checkpoint impact on parallelization:**
|
|
290
|
+
- Plans with checkpoints set `autonomous: false` in frontmatter
|
|
291
|
+
- Non-autonomous plans execute after parallel wave or in main context
|
|
292
|
+
- Subagent pauses at checkpoint, returns to orchestrator
|
|
293
|
+
- Orchestrator presents checkpoint to user
|
|
294
|
+
- User responds
|
|
295
|
+
- Orchestrator resumes agent with `resume: agent_id`
|
|
296
|
+
|
|
243
297
|
See `./checkpoints.md` for comprehensive checkpoint guidance.
|
|
244
298
|
</task_types>
|
|
245
299
|
|
|
@@ -274,14 +328,22 @@ Use @file references to load context for the prompt:
|
|
|
274
328
|
```markdown
|
|
275
329
|
<context>
|
|
276
330
|
@.planning/PROJECT.md # Project vision
|
|
277
|
-
@.planning/ROADMAP.md
|
|
278
|
-
@.planning/
|
|
279
|
-
|
|
280
|
-
|
|
331
|
+
@.planning/ROADMAP.md # Phase structure
|
|
332
|
+
@.planning/STATE.md # Current position
|
|
333
|
+
|
|
334
|
+
# Only include prior SUMMARY if genuinely needed:
|
|
335
|
+
# - This plan imports types from prior plan
|
|
336
|
+
# - Prior plan made decision affecting this plan
|
|
337
|
+
# Independent plans need NO prior SUMMARY references.
|
|
338
|
+
|
|
339
|
+
@src/lib/db.ts # Existing database setup
|
|
340
|
+
@src/types/user.ts # Existing type definitions
|
|
281
341
|
</context>
|
|
282
342
|
```
|
|
283
343
|
|
|
284
344
|
Reference files that Claude needs to understand before implementing.
|
|
345
|
+
|
|
346
|
+
**Anti-pattern:** Reflexive chaining (02 refs 01, 03 refs 02). Only reference what you actually need.
|
|
285
347
|
</context_references>
|
|
286
348
|
|
|
287
349
|
<verification_section>
|
|
@@ -320,22 +382,7 @@ Specify the SUMMARY.md structure:
|
|
|
320
382
|
|
|
321
383
|
```markdown
|
|
322
384
|
<output>
|
|
323
|
-
After completion, create `.planning/phases/XX-name/SUMMARY.md
|
|
324
|
-
|
|
325
|
-
# Phase X: Name Summary
|
|
326
|
-
|
|
327
|
-
**[Substantive one-liner]**
|
|
328
|
-
|
|
329
|
-
## Accomplishments
|
|
330
|
-
|
|
331
|
-
## Files Created/Modified
|
|
332
|
-
|
|
333
|
-
## Decisions Made
|
|
334
|
-
|
|
335
|
-
## Issues Encountered
|
|
336
|
-
|
|
337
|
-
## Next Phase Readiness
|
|
338
|
-
|
|
385
|
+
After completion, create `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md`
|
|
339
386
|
</output>
|
|
340
387
|
```
|
|
341
388
|
|
|
@@ -78,103 +78,78 @@ See `~/.claude/get-shit-done/references/tdd.md` for TDD plan structure.
|
|
|
78
78
|
</split_signals>
|
|
79
79
|
|
|
80
80
|
<splitting_strategies>
|
|
81
|
-
**
|
|
81
|
+
**Vertical slices (default):** Group by feature, not by layer.
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
```
|
|
84
|
+
PREFER: Plan 01 = User (model + API + UI)
|
|
85
|
+
Plan 02 = Product (model + API + UI)
|
|
86
|
+
Plan 03 = Order (model + API + UI)
|
|
84
87
|
|
|
85
|
-
|
|
88
|
+
AVOID: Plan 01 = All models
|
|
89
|
+
Plan 02 = All APIs (depends on 01)
|
|
90
|
+
Plan 03 = All UIs (depends on 02)
|
|
91
|
+
```
|
|
86
92
|
|
|
87
|
-
|
|
88
|
-
|
|
93
|
+
Vertical slices maximize parallelism: [01, 02, 03] run simultaneously.
|
|
94
|
+
Horizontal layers force sequential execution: 01 → 02 → 03.
|
|
89
95
|
|
|
90
|
-
|
|
91
|
-
**When parallelization is enabled, optimize for plan independence.**
|
|
92
|
-
|
|
93
|
-
<philosophy_shift>
|
|
94
|
-
| Aspect | Sequential Planning | Parallel-Aware Planning |
|
|
95
|
-
|--------|---------------------|------------------------|
|
|
96
|
-
| Grouping | By workflow stage | By vertical slice |
|
|
97
|
-
| Dependencies | Implicit (later plans reference earlier) | Explicit (only when genuinely needed) |
|
|
98
|
-
| File ownership | Overlap acceptable | Exclusive where possible |
|
|
99
|
-
| SUMMARY refs | Chain pattern (02 refs 01, 03 refs 02) | Minimal (only for real data deps) |
|
|
100
|
-
| Wave result | Most plans in Wave 2+ | More plans in Wave 1 |
|
|
101
|
-
</philosophy_shift>
|
|
102
|
-
|
|
103
|
-
<vertical_slice_example>
|
|
104
|
-
**Sequential (creates chain):**
|
|
96
|
+
**By dependency:** Only when genuine dependencies exist.
|
|
105
97
|
```
|
|
106
|
-
Plan 01:
|
|
107
|
-
Plan 02:
|
|
108
|
-
Plan 03: Create UserList UI, ProductList UI, OrderList UI
|
|
98
|
+
Plan 01: Auth foundation (middleware, JWT utils)
|
|
99
|
+
Plan 02: Protected features (uses auth from 01)
|
|
109
100
|
```
|
|
110
|
-
Result: 02 depends on 01 (needs models), 03 depends on 02 (needs APIs)
|
|
111
|
-
Waves: [01] → [02] → [03] (fully sequential)
|
|
112
101
|
|
|
113
|
-
**
|
|
102
|
+
**By complexity:** When one slice is much heavier.
|
|
114
103
|
```
|
|
115
|
-
Plan 01:
|
|
116
|
-
Plan 02:
|
|
117
|
-
Plan 03:
|
|
104
|
+
Plan 01: Dashboard layout shell
|
|
105
|
+
Plan 02: Data fetching and state
|
|
106
|
+
Plan 03: Visualization components
|
|
118
107
|
```
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
108
|
+
</splitting_strategies>
|
|
109
|
+
|
|
110
|
+
<dependency_awareness>
|
|
111
|
+
**Plans declare dependencies explicitly via frontmatter.**
|
|
112
|
+
|
|
113
|
+
```yaml
|
|
114
|
+
# Independent plan (Wave 1 candidate)
|
|
115
|
+
depends_on: []
|
|
116
|
+
files_modified: [src/features/user/model.ts, src/features/user/api.ts]
|
|
117
|
+
autonomous: true
|
|
118
|
+
|
|
119
|
+
# Dependent plan (later wave)
|
|
120
|
+
depends_on: ["03-01"]
|
|
121
|
+
files_modified: [src/integration/stripe.ts]
|
|
122
|
+
autonomous: true
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Wave assignment rules:**
|
|
126
|
+
- `depends_on: []` + no file conflicts → Wave 1 (parallel)
|
|
127
|
+
- `depends_on: ["XX"]` → runs after plan XX completes
|
|
128
|
+
- Shared `files_modified` with sibling → sequential (by plan number)
|
|
129
|
+
|
|
130
|
+
**SUMMARY references:**
|
|
131
|
+
- Only reference prior SUMMARY if genuinely needed (imported types, decisions affecting this plan)
|
|
132
|
+
- Independent plans need NO prior SUMMARY references
|
|
133
|
+
- Reflexive chaining (02 refs 01, 03 refs 02) is an anti-pattern
|
|
134
|
+
</dependency_awareness>
|
|
136
135
|
|
|
137
136
|
<file_ownership>
|
|
138
|
-
**
|
|
137
|
+
**Exclusive file ownership prevents conflicts:**
|
|
139
138
|
|
|
140
139
|
```yaml
|
|
141
140
|
# Plan 01 frontmatter
|
|
142
|
-
|
|
141
|
+
files_modified: [src/models/user.ts, src/api/users.ts, src/components/UserList.tsx]
|
|
143
142
|
|
|
144
143
|
# Plan 02 frontmatter
|
|
145
|
-
|
|
144
|
+
files_modified: [src/models/product.ts, src/api/products.ts, src/components/ProductList.tsx]
|
|
146
145
|
```
|
|
147
146
|
|
|
147
|
+
No overlap → can run parallel.
|
|
148
|
+
|
|
148
149
|
**If file appears in multiple plans:** Later plan depends on earlier (by plan number).
|
|
149
150
|
**If file cannot be split:** Plans must be sequential for that file.
|
|
150
151
|
</file_ownership>
|
|
151
152
|
|
|
152
|
-
<summary_references>
|
|
153
|
-
**Minimize SUMMARY references when parallel-aware:**
|
|
154
|
-
|
|
155
|
-
**Before (sequential habit):**
|
|
156
|
-
```markdown
|
|
157
|
-
<context>
|
|
158
|
-
@.planning/phases/05-features/05-01-SUMMARY.md # Always reference prior
|
|
159
|
-
@.planning/phases/05-features/05-02-SUMMARY.md # Chain continues
|
|
160
|
-
</context>
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
**After (parallel-aware):**
|
|
164
|
-
```markdown
|
|
165
|
-
<context>
|
|
166
|
-
# Only reference if this plan ACTUALLY needs decisions from prior plan
|
|
167
|
-
# Most parallel plans don't need any SUMMARY references
|
|
168
|
-
</context>
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
**Include SUMMARY only when:**
|
|
172
|
-
- Prior plan made a decision that affects this plan's approach
|
|
173
|
-
- Prior plan created types/interfaces this plan imports
|
|
174
|
-
- Prior plan's output is input to this plan
|
|
175
|
-
</summary_references>
|
|
176
|
-
</parallel_aware_splitting>
|
|
177
|
-
|
|
178
153
|
<anti_patterns>
|
|
179
154
|
**Bad - Comprehensive plan:**
|
|
180
155
|
```
|
|
@@ -189,8 +164,26 @@ Plan 1: "Auth Database Models" (2 tasks)
|
|
|
189
164
|
Plan 2: "Auth API Core" (3 tasks)
|
|
190
165
|
Plan 3: "Auth API Protection" (2 tasks)
|
|
191
166
|
Plan 4: "Auth UI Components" (2 tasks)
|
|
192
|
-
Each: 30-40% context, peak quality, atomic commits
|
|
167
|
+
Each: 30-40% context, peak quality, atomic commits
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**Bad - Horizontal layers (sequential):**
|
|
171
|
+
```
|
|
172
|
+
Plan 01: Create User model, Product model, Order model
|
|
173
|
+
Plan 02: Create /api/users, /api/products, /api/orders
|
|
174
|
+
Plan 03: Create UserList UI, ProductList UI, OrderList UI
|
|
193
175
|
```
|
|
176
|
+
Result: 02 depends on 01, 03 depends on 02
|
|
177
|
+
Waves: [01] → [02] → [03] (fully sequential)
|
|
178
|
+
|
|
179
|
+
**Good - Vertical slices (parallel):**
|
|
180
|
+
```
|
|
181
|
+
Plan 01: User feature (model + API + UI)
|
|
182
|
+
Plan 02: Product feature (model + API + UI)
|
|
183
|
+
Plan 03: Order feature (model + API + UI)
|
|
184
|
+
```
|
|
185
|
+
Result: Each plan self-contained, no file overlap
|
|
186
|
+
Waves: [01, 02, 03] (all parallel)
|
|
194
187
|
</anti_patterns>
|
|
195
188
|
|
|
196
189
|
<estimating_context>
|
|
@@ -246,15 +239,18 @@ Each plan: fresh context, peak quality. More plans = more thoroughness, same qua
|
|
|
246
239
|
<summary>
|
|
247
240
|
**2-3 tasks, 50% context target:**
|
|
248
241
|
- All tasks: Peak quality
|
|
249
|
-
- Git: Atomic per-task commits
|
|
250
|
-
-
|
|
242
|
+
- Git: Atomic per-task commits
|
|
243
|
+
- Parallel by default: Fresh context per subagent
|
|
251
244
|
|
|
252
245
|
**The principle:** Aggressive atomicity. More plans, smaller scope, consistent quality.
|
|
253
246
|
|
|
254
|
-
**The
|
|
255
|
-
|
|
256
|
-
|
|
247
|
+
**The rules:**
|
|
248
|
+
- If in doubt, split. Quality over consolidation.
|
|
249
|
+
- Depth increases plan COUNT, never plan SIZE.
|
|
250
|
+
- Vertical slices over horizontal layers.
|
|
251
|
+
- Explicit dependencies via `depends_on` frontmatter.
|
|
252
|
+
- Autonomous plans get parallel execution.
|
|
257
253
|
|
|
258
|
-
**Commit rule:** Each plan produces 3-4 commits total (2-3 task commits + 1 docs commit).
|
|
254
|
+
**Commit rule:** Each plan produces 3-4 commits total (2-3 task commits + 1 docs commit).
|
|
259
255
|
</summary>
|
|
260
256
|
</scope_estimation>
|