@leeovery/claude-technical-workflows 2.0.44 → 2.0.46
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/link-dependencies.md +2 -2
- package/commands/workflow/start-discussion.md +5 -1
- package/commands/workflow/start-implementation.md +5 -1
- package/commands/workflow/start-planning.md +5 -1
- package/commands/workflow/start-research.md +5 -1
- package/commands/workflow/start-review.md +5 -1
- package/commands/workflow/start-specification.md +65 -11
- package/commands/workflow/status.md +5 -1
- package/commands/workflow/view-plan.md +1 -9
- package/package.json +1 -1
- package/scripts/discovery-for-specification.sh +62 -8
- package/scripts/migrate.sh +3 -1
- package/scripts/migrations/003-planning-frontmatter.sh +5 -3
- package/scripts/migrations/004-sources-object-format.sh +204 -0
- package/skills/technical-discussion/SKILL.md +7 -1
- package/skills/technical-implementation/SKILL.md +13 -2
- package/skills/technical-implementation/references/environment-setup.md +1 -1
- package/skills/technical-planning/SKILL.md +83 -20
- package/skills/technical-planning/references/{output-backlog-md.md → output-formats/output-backlog-md.md} +4 -4
- package/skills/technical-planning/references/{output-beads.md → output-formats/output-beads.md} +4 -4
- package/skills/technical-planning/references/{output-linear.md → output-formats/output-linear.md} +4 -4
- package/skills/technical-planning/references/{output-local-markdown.md → output-formats/output-local-markdown.md} +3 -3
- package/skills/technical-planning/references/output-formats.md +33 -6
- package/skills/technical-planning/references/phase-design.md +146 -0
- package/skills/technical-planning/references/planning-principles.md +44 -0
- package/skills/technical-planning/references/steps/author-tasks.md +63 -0
- package/skills/technical-planning/references/steps/define-phases.md +40 -0
- package/skills/technical-planning/references/steps/define-tasks.md +43 -0
- package/skills/technical-planning/references/steps/plan-review.md +96 -0
- package/skills/technical-planning/references/steps/resolve-dependencies.md +56 -0
- package/skills/technical-planning/references/steps/review-integrity.md +217 -0
- package/skills/technical-planning/references/steps/review-traceability.md +194 -0
- package/skills/technical-planning/references/task-design.md +158 -0
- package/skills/technical-research/SKILL.md +9 -1
- package/skills/technical-research/references/template.md +1 -0
- package/skills/technical-review/SKILL.md +9 -1
- package/skills/technical-specification/SKILL.md +10 -1
- package/skills/technical-specification/references/specification-guide.md +44 -0
- package/skills/technical-planning/references/formal-planning.md +0 -235
|
@@ -22,40 +22,103 @@ Either way: Transform specifications into actionable phases, tasks, and acceptan
|
|
|
22
22
|
- **Specification content** (required) - The validated decisions and requirements to plan from
|
|
23
23
|
- **Topic name** (optional) - Will derive from specification if not provided
|
|
24
24
|
- **Output format preference** (optional) - Will ask if not specified
|
|
25
|
-
- **Cross-cutting references** (optional) -
|
|
25
|
+
- **Cross-cutting references** (optional) - Cross-cutting specifications that inform technical decisions in this plan
|
|
26
26
|
|
|
27
|
-
**If missing
|
|
27
|
+
**Before proceeding**, verify the required input is available and unambiguous. If anything is missing or unclear, **STOP** — do not proceed until resolved.
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
- **No specification content provided?**
|
|
30
|
+
> "I need the specification content to plan from. Could you point me to the specification file (e.g., `docs/workflow/specification/{topic}.md`), or provide the content directly?"
|
|
30
31
|
|
|
31
|
-
|
|
32
|
+
- **Specification seems incomplete or not concluded?**
|
|
33
|
+
> "The specification at {path} appears to be {concern — e.g., 'still in-progress' or 'missing sections that are referenced elsewhere'}. Should I proceed with this, or is there a more complete version?"
|
|
32
34
|
|
|
33
|
-
|
|
34
|
-
2. **Apply their patterns** when designing phases and tasks (e.g., if caching strategy says "cache API responses for 5 minutes", include that in relevant tasks)
|
|
35
|
-
3. **Note where patterns apply** - when a task implements a cross-cutting pattern, reference it
|
|
35
|
+
---
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
## The Process
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
Follow every step in sequence. No steps are optional.
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
---
|
|
42
42
|
|
|
43
|
-
##
|
|
43
|
+
## Step 1: Choose Output Format
|
|
44
|
+
|
|
45
|
+
Present the formats from **[output-formats.md](references/output-formats.md)** to the user as written — including description, pros, cons, and "best for" — so they can make an informed choice. Number each format and ask the user to pick a number.
|
|
46
|
+
|
|
47
|
+
**STOP.** Wait for the user to choose. After they pick, confirm the choice and load the corresponding `output-{format}.md` adapter from **[output-formats/](references/output-formats/)**.
|
|
48
|
+
|
|
49
|
+
→ Proceed to **Step 2**.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Step 2: Load Planning Principles
|
|
54
|
+
|
|
55
|
+
Load **[planning-principles.md](references/planning-principles.md)** — this contains the planning principles, rules, and quality standards that apply throughout the process.
|
|
56
|
+
|
|
57
|
+
→ Proceed to **Step 3**.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Step 3: Read Specification Content
|
|
62
|
+
|
|
63
|
+
Now read the specification content **in full**. Not a scan, not a summary — read every section, every decision, every edge case. The specification must be fully digested before any structural decisions are made. If a document is too large for a single read, read it in sequential chunks until you have consumed the entire file. Never summarise or skip sections to fit within tool limits.
|
|
64
|
+
|
|
65
|
+
The specification contains validated decisions. Your job is to translate it into an actionable plan, not to review or reinterpret it.
|
|
66
|
+
|
|
67
|
+
**The specification is your sole input.** Everything you need is in the specification — do not reference other documents or prior source materials. If cross-cutting specifications are provided, read them alongside the specification so their patterns are available during planning.
|
|
68
|
+
|
|
69
|
+
From the specification, absorb:
|
|
70
|
+
- Key decisions and rationale
|
|
71
|
+
- Architectural choices
|
|
72
|
+
- Edge cases identified
|
|
73
|
+
- Constraints and requirements
|
|
74
|
+
- Whether a Dependencies section exists (you will handle these in Step 7)
|
|
44
75
|
|
|
45
|
-
|
|
76
|
+
Do not present or summarize the specification back to the user — it has already been signed off.
|
|
46
77
|
|
|
47
|
-
|
|
78
|
+
→ Proceed to **Step 4**.
|
|
48
79
|
|
|
49
|
-
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Step 4: Define Phases
|
|
83
|
+
|
|
84
|
+
Load **[steps/define-phases.md](references/steps/define-phases.md)** and follow its instructions as written.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Step 5: Define Tasks
|
|
89
|
+
|
|
90
|
+
Load **[steps/define-tasks.md](references/steps/define-tasks.md)** and follow its instructions as written.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Step 6: Author Tasks
|
|
50
95
|
|
|
51
|
-
|
|
96
|
+
Load **[steps/author-tasks.md](references/steps/author-tasks.md)** and follow its instructions as written.
|
|
52
97
|
|
|
53
|
-
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Step 7: Resolve External Dependencies
|
|
101
|
+
|
|
102
|
+
Load **[steps/resolve-dependencies.md](references/steps/resolve-dependencies.md)** and follow its instructions as written.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Step 8: Plan Review
|
|
107
|
+
|
|
108
|
+
Load **[steps/plan-review.md](references/steps/plan-review.md)** and follow its instructions as written.
|
|
109
|
+
|
|
110
|
+
---
|
|
54
111
|
|
|
55
|
-
|
|
112
|
+
## Step 9: Conclude the Plan
|
|
56
113
|
|
|
57
|
-
|
|
114
|
+
After the review is complete:
|
|
58
115
|
|
|
59
|
-
**
|
|
116
|
+
1. **Update plan status** — Update the plan frontmatter to `status: concluded`
|
|
117
|
+
2. **Final commit** — Commit the concluded plan
|
|
118
|
+
3. **Present completion summary**:
|
|
60
119
|
|
|
61
|
-
|
|
120
|
+
> "Planning is complete for **{topic}**.
|
|
121
|
+
>
|
|
122
|
+
> The plan contains **{N} phases** with **{M} tasks** total, reviewed for traceability against the specification and structural integrity.
|
|
123
|
+
>
|
|
124
|
+
> Status has been marked as `concluded`. The plan is ready for implementation."
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Output: Backlog.md
|
|
2
2
|
|
|
3
|
-
*Output adapter for **[technical-planning](
|
|
3
|
+
*Output adapter for **[technical-planning](../../SKILL.md)***
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -94,8 +94,8 @@ Architectural decisions from cross-cutting specifications that inform this plan:
|
|
|
94
94
|
|
|
95
95
|
| Specification | Key Decisions | Applies To |
|
|
96
96
|
|---------------|---------------|------------|
|
|
97
|
-
| [Caching Strategy](
|
|
98
|
-
| [Rate Limiting](
|
|
97
|
+
| [Caching Strategy](../../specification/caching-strategy.md) | Cache API responses for 5 min | Tasks involving API calls |
|
|
98
|
+
| [Rate Limiting](../../specification/rate-limiting.md) | 100 req/min per user | User-facing endpoints |
|
|
99
99
|
|
|
100
100
|
*Remove this section if no cross-cutting specifications apply.*
|
|
101
101
|
|
|
@@ -107,7 +107,7 @@ Architectural decisions from cross-cutting specifications that inform this plan:
|
|
|
107
107
|
- {topic}: {description} → {task-id} (resolved)
|
|
108
108
|
```
|
|
109
109
|
|
|
110
|
-
The External Dependencies section tracks what this plan needs from other topics. See
|
|
110
|
+
The External Dependencies section tracks what this plan needs from other topics. See `../dependencies.md` for the format and states (unresolved, resolved, satisfied externally).
|
|
111
111
|
|
|
112
112
|
### Task File Format
|
|
113
113
|
|
package/skills/technical-planning/references/{output-beads.md → output-formats/output-beads.md}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Output: Beads
|
|
2
2
|
|
|
3
|
-
*Output adapter for **[technical-planning](
|
|
3
|
+
*Output adapter for **[technical-planning](../../SKILL.md)***
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -275,8 +275,8 @@ Architectural decisions from cross-cutting specifications that inform this plan:
|
|
|
275
275
|
|
|
276
276
|
| Specification | Key Decisions | Applies To |
|
|
277
277
|
|---------------|---------------|------------|
|
|
278
|
-
| [Caching Strategy](
|
|
279
|
-
| [Rate Limiting](
|
|
278
|
+
| [Caching Strategy](../../specification/caching-strategy.md) | Cache API responses for 5 min | Tasks involving API calls |
|
|
279
|
+
| [Rate Limiting](../../specification/rate-limiting.md) | 100 req/min per user | User-facing endpoints |
|
|
280
280
|
|
|
281
281
|
*Remove this section if no cross-cutting specifications apply.*
|
|
282
282
|
|
|
@@ -295,7 +295,7 @@ Architectural decisions from cross-cutting specifications that inform this plan:
|
|
|
295
295
|
- {topic}: {description} → {task-id} (resolved)
|
|
296
296
|
```
|
|
297
297
|
|
|
298
|
-
The External Dependencies section tracks what this plan needs from other topics. See
|
|
298
|
+
The External Dependencies section tracks what this plan needs from other topics. See `../dependencies.md` for the format and states (unresolved, resolved, satisfied externally).
|
|
299
299
|
|
|
300
300
|
## Frontmatter
|
|
301
301
|
|
package/skills/technical-planning/references/{output-linear.md → output-formats/output-linear.md}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Output: Linear
|
|
2
2
|
|
|
3
|
-
*Output adapter for **[technical-planning](
|
|
3
|
+
*Output adapter for **[technical-planning](../../SKILL.md)***
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -185,8 +185,8 @@ Architectural decisions from cross-cutting specifications that inform this plan:
|
|
|
185
185
|
|
|
186
186
|
| Specification | Key Decisions | Applies To |
|
|
187
187
|
|---------------|---------------|------------|
|
|
188
|
-
| [Caching Strategy](
|
|
189
|
-
| [Rate Limiting](
|
|
188
|
+
| [Caching Strategy](../../specification/caching-strategy.md) | Cache API responses for 5 min | Tasks involving API calls |
|
|
189
|
+
| [Rate Limiting](../../specification/rate-limiting.md) | 100 req/min per user | User-facing endpoints |
|
|
190
190
|
|
|
191
191
|
*Remove this section if no cross-cutting specifications apply.*
|
|
192
192
|
|
|
@@ -198,7 +198,7 @@ Architectural decisions from cross-cutting specifications that inform this plan:
|
|
|
198
198
|
- {topic}: {description} → {issue-id} (resolved)
|
|
199
199
|
```
|
|
200
200
|
|
|
201
|
-
The External Dependencies section tracks what this plan needs from other topics. See
|
|
201
|
+
The External Dependencies section tracks what this plan needs from other topics. See `../dependencies.md` for the format and states (unresolved, resolved, satisfied externally).
|
|
202
202
|
|
|
203
203
|
## Frontmatter
|
|
204
204
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Output: Local Markdown
|
|
2
2
|
|
|
3
|
-
*Output adapter for **[technical-planning](
|
|
3
|
+
*Output adapter for **[technical-planning](../../SKILL.md)***
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -60,8 +60,8 @@ Architectural decisions from cross-cutting specifications that inform this plan:
|
|
|
60
60
|
|
|
61
61
|
| Specification | Key Decisions | Applies To |
|
|
62
62
|
|---------------|---------------|------------|
|
|
63
|
-
| [Caching Strategy](
|
|
64
|
-
| [Rate Limiting](
|
|
63
|
+
| [Caching Strategy](../../specification/caching-strategy.md) | Cache API responses for 5 min; use Redis | Tasks involving API calls |
|
|
64
|
+
| [Rate Limiting](../../specification/rate-limiting.md) | 100 req/min per user; sliding window | User-facing endpoints |
|
|
65
65
|
|
|
66
66
|
*Remove this section if no cross-cutting specifications apply.*
|
|
67
67
|
|
|
@@ -4,13 +4,40 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
Plans can be stored in different formats.
|
|
7
|
+
Plans can be stored in different formats.
|
|
8
8
|
|
|
9
|
-
**IMPORTANT**: Only offer formats listed below. Do not invent or suggest formats that don't have corresponding `output-*.md` files in
|
|
9
|
+
**IMPORTANT**: Only offer formats listed below. Do not invent or suggest formats that don't have corresponding `output-*.md` files in the [output-formats/](output-formats/) directory.
|
|
10
10
|
|
|
11
11
|
## Available Formats
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
### [Local Markdown](output-formats/output-local-markdown.md)
|
|
14
|
+
|
|
15
|
+
Single markdown file per topic containing all phases, tasks, and progress tracking inline. No external tools or setup required.
|
|
16
|
+
|
|
17
|
+
- **Pros**: Zero setup, works offline, human-readable, easy to edit in any text editor
|
|
18
|
+
- **Cons**: No visual board, everything in one file can get long for complex features, no dependency graph
|
|
19
|
+
- **Best for**: Simple features, small plans, quick iterations
|
|
20
|
+
|
|
21
|
+
### [Linear](output-formats/output-linear.md)
|
|
22
|
+
|
|
23
|
+
Tasks managed as Linear issues within a Linear project. A thin local plan file points to the Linear project; Linear is the source of truth.
|
|
24
|
+
|
|
25
|
+
- **Pros**: Visual tracking, team collaboration, real-time updates, integrates with existing Linear workflows
|
|
26
|
+
- **Cons**: Requires Linear account and MCP server, external dependency, not fully local
|
|
27
|
+
- **Best for**: Teams already using Linear, collaborative projects needing shared visibility
|
|
28
|
+
|
|
29
|
+
### [Backlog.md](output-formats/output-backlog-md.md)
|
|
30
|
+
|
|
31
|
+
Individual task files in a `backlog/` directory with a local Kanban board. Each task is a self-contained markdown file with frontmatter for status, priority, labels, and dependencies.
|
|
32
|
+
|
|
33
|
+
- **Pros**: Visual Kanban (terminal + web), individual task files for focused editing, version-controlled, MCP integration, auto-commit
|
|
34
|
+
- **Cons**: Requires npm install, flat directory (phases via labels not folders), external tool dependency
|
|
35
|
+
- **Best for**: Solo developers wanting a local Kanban board with per-task files
|
|
36
|
+
|
|
37
|
+
### [Beads](output-formats/output-beads.md)
|
|
38
|
+
|
|
39
|
+
Git-backed graph issue tracker with hierarchical tasks (epics → phases → tasks) and native dependency management. Uses JSONL storage with a CLI interface.
|
|
40
|
+
|
|
41
|
+
- **Pros**: Native dependency graph, `bd ready` surfaces unblocked work, hierarchical task structure, multi-agent coordination, hash-based IDs prevent merge conflicts
|
|
42
|
+
- **Cons**: Requires CLI install, JSONL not human-editable, learning curve, less familiar tooling
|
|
43
|
+
- **Best for**: Complex multi-phase features with many dependencies, AI-agent-driven workflows
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# Phase Design
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-planning](../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This reference defines the principles for breaking specifications into implementation phases. It is loaded when phases are first proposed and stays in context through phase approval.
|
|
8
|
+
|
|
9
|
+
## What Makes a Good Phase
|
|
10
|
+
|
|
11
|
+
Each phase should:
|
|
12
|
+
|
|
13
|
+
- **Deliver a working increment** — not a technical layer, but functionality that can be used or tested end-to-end
|
|
14
|
+
- **Have clear acceptance criteria** — checkboxes that are pass/fail verifiable
|
|
15
|
+
- **Follow natural boundaries** — domain, feature, or capability boundaries, not architectural layers
|
|
16
|
+
- **Leave the system working** — every phase ends with a green test suite and deployable code
|
|
17
|
+
- **Be independently valuable** — if the project stopped after this phase, something useful would exist
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## The Walking Skeleton
|
|
22
|
+
|
|
23
|
+
Phase 1 is always a **walking skeleton** — the thinnest possible end-to-end slice that threads through all system layers and proves the architecture works.
|
|
24
|
+
|
|
25
|
+
The walking skeleton:
|
|
26
|
+
|
|
27
|
+
- Touches every architectural component the system needs (database, API, UI, external services)
|
|
28
|
+
- Delivers one complete flow, however minimal
|
|
29
|
+
- Establishes the patterns subsequent phases will follow
|
|
30
|
+
- Is production code, not throwaway — it becomes the foundation
|
|
31
|
+
|
|
32
|
+
**Example** (Slack clone):
|
|
33
|
+
|
|
34
|
+
> Phase 1: "Any unauthenticated person can post messages in a hardcoded #general room. Messages persist through page refreshes."
|
|
35
|
+
>
|
|
36
|
+
> No auth, no accounts, no multiple rooms. Just the thinnest thread through the entire stack.
|
|
37
|
+
|
|
38
|
+
**Example** (Calendar app):
|
|
39
|
+
|
|
40
|
+
> Phase 1: "A single event can be created with title, start, and end time, persisted, and retrieved by ID."
|
|
41
|
+
>
|
|
42
|
+
> No recurrence, no sharing, no notifications. Just one thing working end-to-end.
|
|
43
|
+
|
|
44
|
+
The skeleton validates architecture assumptions at the cheapest possible moment. If the end-to-end flow doesn't work, you discover it in Phase 1 — not after building three phases of isolated components.
|
|
45
|
+
|
|
46
|
+
This is the **steel thread** principle: never have big-bang integration. By threading through all layers immediately, integration is the first thing you solve, not the last.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Vertical Phases
|
|
51
|
+
|
|
52
|
+
After the walking skeleton, each subsequent phase adds complete functionality — a vertical slice through the relevant layers.
|
|
53
|
+
|
|
54
|
+
**Vertical (prefer):**
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Phase 1: Walking skeleton — single event CRUD, end-to-end
|
|
58
|
+
Phase 2: Recurring events — rules, instance generation, single-instance editing
|
|
59
|
+
Phase 3: Sharing and permissions — invite users, permission levels, shared calendars
|
|
60
|
+
Phase 4: Notifications — email and push notifications for event changes
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Each phase delivers something a user or test suite can validate independently.
|
|
64
|
+
|
|
65
|
+
**Horizontal (avoid):**
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
Phase 1: All database models and migrations
|
|
69
|
+
Phase 2: All service classes and business logic
|
|
70
|
+
Phase 3: All API endpoints
|
|
71
|
+
Phase 4: All UI components
|
|
72
|
+
Phase 5: Wire everything together
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Nothing works until Phase 5. No phase is independently testable. Integration risk concentrates at the end.
|
|
76
|
+
|
|
77
|
+
A phase may touch multiple architectural layers — that's expected. The test is: **does this phase deliver working functionality, or does it deliver infrastructure that only becomes useful later?**
|
|
78
|
+
|
|
79
|
+
### Progression
|
|
80
|
+
|
|
81
|
+
**Skeleton → Core features → Edge cases → Refinement**
|
|
82
|
+
|
|
83
|
+
- **Skeleton** (Phase 1): Thinnest end-to-end slice proving the architecture
|
|
84
|
+
- **Core features**: Each phase adds a complete capability, building on what exists
|
|
85
|
+
- **Edge cases**: Handling boundary conditions, error scenarios, unusual inputs
|
|
86
|
+
- **Refinement**: Performance optimisation, UX polish, hardening
|
|
87
|
+
|
|
88
|
+
This ordering means each phase builds on a working system. The skeleton establishes the pattern; core features flesh it out; edge cases harden it; refinement polishes it.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Phase Boundaries
|
|
93
|
+
|
|
94
|
+
A phase boundary belongs where:
|
|
95
|
+
|
|
96
|
+
- **A meaningful state change occurs** — the system gains a new capability
|
|
97
|
+
- **Human validation is needed** — the approach should be confirmed before building more
|
|
98
|
+
- **The risk profile shifts** — different concerns, different complexity, different unknowns
|
|
99
|
+
- **The work's nature changes** — from core functionality to edge cases, from features to optimisation
|
|
100
|
+
|
|
101
|
+
### When to split
|
|
102
|
+
|
|
103
|
+
- The combined work exceeds what can be reasoned about in a single focused session
|
|
104
|
+
- An intermediate state is independently valuable or testable
|
|
105
|
+
- You need a checkpoint to validate before investing further
|
|
106
|
+
- Different parts have different risk or uncertainty levels
|
|
107
|
+
|
|
108
|
+
### When to keep together
|
|
109
|
+
|
|
110
|
+
- High cohesion — changes to one part directly affect the other
|
|
111
|
+
- The intermediate state has no independent value
|
|
112
|
+
- Splitting would create phases that aren't meaningful milestones
|
|
113
|
+
- The overhead of phase management exceeds the benefit
|
|
114
|
+
|
|
115
|
+
### Granularity check
|
|
116
|
+
|
|
117
|
+
If a phase has only 1-2 trivial tasks, it's probably too thin — merge it. If a phase has 8+ tasks spanning multiple concerns, it's probably too thick — split it. Most phases land at 3-6 focused tasks.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Cross-Phase Coupling
|
|
122
|
+
|
|
123
|
+
**Maximize cohesion within a phase, minimize dependencies between phases.**
|
|
124
|
+
|
|
125
|
+
A well-bounded phase could theoretically be reordered or dropped without cascading failures across other phases. In practice, phases have a natural sequence (the skeleton must come first), but each phase should be as self-contained as possible.
|
|
126
|
+
|
|
127
|
+
Strategies:
|
|
128
|
+
|
|
129
|
+
- **Walking skeleton first** — subsequent phases add to a working system rather than depending on future phases
|
|
130
|
+
- **Clear interfaces between phases** — each phase produces defined contracts (API shapes, data models, test suites) that subsequent phases consume
|
|
131
|
+
- **Shared infrastructure in Phase 1** — if multiple phases need the same foundation, it belongs in the skeleton
|
|
132
|
+
- **No forward references** — a phase should never depend on something that hasn't been built yet
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Anti-Patterns
|
|
137
|
+
|
|
138
|
+
**Horizontal phases** — organising by technical layer ("all models, then all services, then all controllers"). Defers integration risk, produces phases that aren't independently valuable. The walking skeleton eliminates this by integrating from the start.
|
|
139
|
+
|
|
140
|
+
**God phase** — one massive phase covering too many concerns. Results in unclear success criteria, inability to track progress, and cognitive overload. If you can't summarise a phase's goal in one sentence, it needs splitting.
|
|
141
|
+
|
|
142
|
+
**Trivial phases** — phases so small they're just individual tasks wearing a trenchcoat. Phase management has overhead; don't pay it for work that doesn't warrant a checkpoint.
|
|
143
|
+
|
|
144
|
+
**Infrastructure-only phases** (after Phase 1) — phases that deliver tooling, configuration, or refactoring with no user-facing value. These should be folded into the phase that needs them, unless they're genuinely cross-cutting prerequisites.
|
|
145
|
+
|
|
146
|
+
**Speculative phases** — phases planned for hypothetical future requirements. Plan what the specification defines, not what might be needed later.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Planning Principles
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-planning](../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This reference defines the principles, rules, and quality standards for creating implementation plans. It is loaded at the start of the planning process and stays in context throughout.
|
|
8
|
+
|
|
9
|
+
## Planning is a Gated Process
|
|
10
|
+
|
|
11
|
+
Planning translates the specification into actionable structure. This translation requires judgment, and the process is designed to ensure that judgment is exercised carefully and collaboratively — not rushed.
|
|
12
|
+
|
|
13
|
+
### Process Expectations
|
|
14
|
+
|
|
15
|
+
**This is a step-by-step process with mandatory stop points.** You must work through each step sequentially. Steps end with **STOP** — you must present your work, wait for explicit user confirmation, and only then proceed to the next step.
|
|
16
|
+
|
|
17
|
+
**Never one-shot the plan.** Do not write the entire plan document in a single operation. The plan is built incrementally — one phase at a time, with the user confirming the structure at each stage. A one-shot plan that misses requirements, hallucinates content, or structures tasks poorly wastes more time than a careful, step-by-step process. Go slow to go fast.
|
|
18
|
+
|
|
19
|
+
**Stop and ask when judgment is needed.** Planning is collaborative — not in the sense that every line needs approval, but in the sense that the user guides structural decisions and resolves ambiguity. You must stop and ask when:
|
|
20
|
+
|
|
21
|
+
- The specification is ambiguous about implementation approach
|
|
22
|
+
- Multiple valid ways to structure phases or tasks exist
|
|
23
|
+
- You're uncertain whether a task is appropriately scoped
|
|
24
|
+
- Edge cases aren't fully addressed in the specification
|
|
25
|
+
- You need to make any decision the specification doesn't cover
|
|
26
|
+
- Something doesn't add up or feels like a gap
|
|
27
|
+
|
|
28
|
+
**Never invent to fill gaps.** If the specification doesn't address something, flag it with `[needs-info]` and ask the user. The specification is the golden document — everything in the plan must trace back to it. Assuming or guessing — even when it seems reasonable — is not acceptable. Surface the problem immediately rather than continuing and hoping to address it later.
|
|
29
|
+
|
|
30
|
+
## Rules
|
|
31
|
+
|
|
32
|
+
**Capture immediately**: After each user response, update the planning document BEFORE your next question. Never let more than 2-3 exchanges pass without writing.
|
|
33
|
+
|
|
34
|
+
**Commit frequently**: Commit at natural breaks, after significant exchanges, and before any context refresh. Context refresh = lost work.
|
|
35
|
+
|
|
36
|
+
**Create plans, not code**: Your job is phases, tasks, and acceptance criteria — not implementation.
|
|
37
|
+
|
|
38
|
+
## Plan as Source of Truth
|
|
39
|
+
|
|
40
|
+
The plan IS the source of truth. Every phase, every task must contain all information needed to execute it.
|
|
41
|
+
|
|
42
|
+
- **Self-contained**: Each task executable without external context
|
|
43
|
+
- **No assumptions**: Spell out the context, don't assume implementer knows it
|
|
44
|
+
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Author Tasks
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-planning](../../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Load **[task-design.md](../task-design.md)** — the task design principles, template structure, and quality standards for writing task detail.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Orient the user:
|
|
12
|
+
|
|
13
|
+
> "Task list for Phase {N} is agreed. I'll work through each task one at a time — presenting the full detail, discussing if needed, and logging it to the plan once approved."
|
|
14
|
+
|
|
15
|
+
Work through the agreed task list **one task at a time**.
|
|
16
|
+
|
|
17
|
+
#### Present
|
|
18
|
+
|
|
19
|
+
Write the complete task using the task template — Problem, Solution, Outcome, Do, Acceptance Criteria, Tests, Context.
|
|
20
|
+
|
|
21
|
+
Present it to the user **in the format it will be written to the plan**. The output format adapter determines the exact format. What the user sees is what gets logged — no changes between approval and writing.
|
|
22
|
+
|
|
23
|
+
After presenting, ask:
|
|
24
|
+
|
|
25
|
+
> **Task {M} of {total}: {Task Name}**
|
|
26
|
+
>
|
|
27
|
+
> **To proceed, choose one:**
|
|
28
|
+
> - **"Approve"** — Task is confirmed. I'll log it to the plan verbatim.
|
|
29
|
+
> - **"Adjust"** — Tell me what to change.
|
|
30
|
+
|
|
31
|
+
**STOP.** Wait for the user's response.
|
|
32
|
+
|
|
33
|
+
#### If adjust
|
|
34
|
+
|
|
35
|
+
The user may:
|
|
36
|
+
- Request changes to the task content
|
|
37
|
+
- Ask questions about scope, granularity, or approach
|
|
38
|
+
- Flag that something doesn't match the specification
|
|
39
|
+
- Identify missing edge cases or acceptance criteria
|
|
40
|
+
|
|
41
|
+
Incorporate feedback and re-present the updated task **in full**. Then ask the same choice again. Repeat until approved.
|
|
42
|
+
|
|
43
|
+
#### If approved
|
|
44
|
+
|
|
45
|
+
Log the task to the plan — verbatim, as presented. Do not modify content between approval and writing. The output format adapter determines how tasks are written (appending markdown, creating issues, etc.).
|
|
46
|
+
|
|
47
|
+
After logging, confirm:
|
|
48
|
+
|
|
49
|
+
> "Task {M} of {total}: {Task Name} — logged."
|
|
50
|
+
|
|
51
|
+
#### Next task or phase complete
|
|
52
|
+
|
|
53
|
+
**If tasks remain in this phase:** → Return to the top of **Step 6** with the next task. Present it, ask, wait.
|
|
54
|
+
|
|
55
|
+
**If all tasks in this phase are logged:**
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
Phase {N}: {Phase Name} — complete ({M} tasks logged).
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
→ Return to **Step 5** for the next phase.
|
|
62
|
+
|
|
63
|
+
**If all phases are complete:** → Proceed to **Step 7**.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Define Phases
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-planning](../../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Load **[phase-design.md](../phase-design.md)** — the principles for structuring phases as independently valuable, testable increments built on a walking skeleton.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Orient the user:
|
|
12
|
+
|
|
13
|
+
> "I've read the full specification. I'm going to propose a phase structure — how we break this into independently testable stages. Once we agree on the phases, we'll take each one and break it into tasks."
|
|
14
|
+
|
|
15
|
+
With the full specification understood, break it into logical phases. Understanding what tasks belong in each phase is necessary to determine the right ordering.
|
|
16
|
+
|
|
17
|
+
Present the proposed phase structure using this format:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Phase {N}: {Phase Name}
|
|
21
|
+
Goal: {What this phase accomplishes}
|
|
22
|
+
Why this order: {Why this phase comes at this position in the sequence}
|
|
23
|
+
Acceptance criteria:
|
|
24
|
+
- [ ] {First verifiable criterion}
|
|
25
|
+
- [ ] {Second verifiable criterion}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**STOP.** Present your proposed phase structure and ask:
|
|
29
|
+
|
|
30
|
+
> **To proceed, choose one:**
|
|
31
|
+
> - **"Approve"** — Phase structure is confirmed. I'll proceed to task breakdown.
|
|
32
|
+
> - **"Adjust"** — Tell me what to change: reorder, split, merge, add, or remove phases.
|
|
33
|
+
|
|
34
|
+
#### If Adjust
|
|
35
|
+
|
|
36
|
+
Incorporate feedback, re-present the updated phase structure, and ask again. Repeat until approved.
|
|
37
|
+
|
|
38
|
+
#### If Approved
|
|
39
|
+
|
|
40
|
+
→ Proceed to **Step 5**.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Define Tasks
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-planning](../../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Load **[task-design.md](../task-design.md)** — the principles for breaking phases into well-scoped, vertically-sliced tasks.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Orient the user:
|
|
12
|
+
|
|
13
|
+
> "Taking Phase {N}: {Phase Name} and breaking it into tasks. Here's the overview — once we agree on the list, I'll write each task out in full detail."
|
|
14
|
+
|
|
15
|
+
Take the first (or next) phase and break it into tasks. Present a high-level overview so the user can see the shape of the phase before committing to the detail of each task.
|
|
16
|
+
|
|
17
|
+
Present the task overview using this format:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Phase {N}: {Phase Name}
|
|
21
|
+
|
|
22
|
+
1. {Task Name} — {One-line summary}
|
|
23
|
+
Edge cases: {comma-separated list, or "none"}
|
|
24
|
+
|
|
25
|
+
2. {Task Name} — {One-line summary}
|
|
26
|
+
Edge cases: {comma-separated list, or "none"}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
This overview establishes the scope and ordering. The user should be able to see whether the phase is well-structured, whether tasks are in the right order, and whether anything is missing or unnecessary — before investing time in writing out full task detail.
|
|
30
|
+
|
|
31
|
+
**STOP.** Present the phase task overview and ask:
|
|
32
|
+
|
|
33
|
+
> **To proceed, choose one:**
|
|
34
|
+
> - **"Approve"** — Task list is confirmed. I'll begin writing full task detail.
|
|
35
|
+
> - **"Adjust"** — Tell me what to change: reorder, split, merge, add, or remove tasks.
|
|
36
|
+
|
|
37
|
+
#### If Adjust
|
|
38
|
+
|
|
39
|
+
Incorporate feedback, re-present the updated task overview, and ask again. Repeat until approved.
|
|
40
|
+
|
|
41
|
+
#### If Approved
|
|
42
|
+
|
|
43
|
+
→ Proceed to **Step 6**.
|