@leeovery/claude-technical-workflows 2.0.45 → 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.
Files changed (34) hide show
  1. package/commands/link-dependencies.md +2 -2
  2. package/commands/workflow/start-discussion.md +5 -1
  3. package/commands/workflow/start-implementation.md +5 -1
  4. package/commands/workflow/start-planning.md +5 -1
  5. package/commands/workflow/start-research.md +5 -1
  6. package/commands/workflow/start-review.md +5 -1
  7. package/commands/workflow/start-specification.md +11 -2
  8. package/commands/workflow/status.md +5 -1
  9. package/commands/workflow/view-plan.md +1 -9
  10. package/package.json +1 -1
  11. package/skills/technical-discussion/SKILL.md +7 -1
  12. package/skills/technical-implementation/SKILL.md +13 -2
  13. package/skills/technical-implementation/references/environment-setup.md +1 -1
  14. package/skills/technical-planning/SKILL.md +83 -20
  15. package/skills/technical-planning/references/{output-backlog-md.md → output-formats/output-backlog-md.md} +4 -4
  16. package/skills/technical-planning/references/{output-beads.md → output-formats/output-beads.md} +4 -4
  17. package/skills/technical-planning/references/{output-linear.md → output-formats/output-linear.md} +4 -4
  18. package/skills/technical-planning/references/{output-local-markdown.md → output-formats/output-local-markdown.md} +3 -3
  19. package/skills/technical-planning/references/output-formats.md +33 -6
  20. package/skills/technical-planning/references/phase-design.md +146 -0
  21. package/skills/technical-planning/references/planning-principles.md +44 -0
  22. package/skills/technical-planning/references/steps/author-tasks.md +63 -0
  23. package/skills/technical-planning/references/steps/define-phases.md +40 -0
  24. package/skills/technical-planning/references/steps/define-tasks.md +43 -0
  25. package/skills/technical-planning/references/steps/plan-review.md +96 -0
  26. package/skills/technical-planning/references/steps/resolve-dependencies.md +56 -0
  27. package/skills/technical-planning/references/steps/review-integrity.md +217 -0
  28. package/skills/technical-planning/references/steps/review-traceability.md +194 -0
  29. package/skills/technical-planning/references/task-design.md +158 -0
  30. package/skills/technical-research/SKILL.md +9 -1
  31. package/skills/technical-research/references/template.md +1 -0
  32. package/skills/technical-review/SKILL.md +9 -1
  33. package/skills/technical-specification/SKILL.md +10 -1
  34. package/skills/technical-planning/references/formal-planning.md +0 -235
@@ -100,7 +100,7 @@ For each unresolved dependency:
100
100
 
101
101
  2. **If plan exists**: Load the output format reference file
102
102
  - Read `format:` from the dependency plan's frontmatter
103
- - Load `skills/technical-planning/references/output-{format}.md`
103
+ - Load `skills/technical-planning/references/output-formats/output-{format}.md`
104
104
  - Follow the "Querying Dependencies" section to search for matching tasks
105
105
 
106
106
  3. **Handle ambiguous matches**:
@@ -115,7 +115,7 @@ For each resolved match:
115
115
  - Change `- {topic}: {description}` to `- {topic}: {description} → {task-id}`
116
116
 
117
117
  2. **Create dependency in output format**:
118
- - Load `skills/technical-planning/references/output-{format}.md`
118
+ - Load `skills/technical-planning/references/output-formats/output-{format}.md`
119
119
  - Follow the "Cross-Epic Dependencies" or equivalent section to create the blocking relationship
120
120
 
121
121
  ## Step 6: Bidirectional Check
@@ -40,7 +40,11 @@ Follow these steps EXACTLY as written. Do not skip steps or combine them. Presen
40
40
 
41
41
  **This step is mandatory. You must complete it before proceeding.**
42
42
 
43
- Invoke the `/migrate` command and assess its output before proceeding to Step 1.
43
+ Invoke the `/migrate` command and assess its output.
44
+
45
+ **If files were updated**: STOP and wait for the user to review the changes (e.g., via `git diff`) and confirm before proceeding to Step 1. Do not continue automatically.
46
+
47
+ **If no updates needed**: Proceed to Step 1.
44
48
 
45
49
  ---
46
50
 
@@ -40,7 +40,11 @@ Follow these steps EXACTLY as written. Do not skip steps or combine them. Presen
40
40
 
41
41
  **This step is mandatory. You must complete it before proceeding.**
42
42
 
43
- Invoke the `/migrate` command and assess its output before proceeding to Step 1.
43
+ Invoke the `/migrate` command and assess its output.
44
+
45
+ **If files were updated**: STOP and wait for the user to review the changes (e.g., via `git diff`) and confirm before proceeding to Step 1. Do not continue automatically.
46
+
47
+ **If no updates needed**: Proceed to Step 1.
44
48
 
45
49
  ---
46
50
 
@@ -40,7 +40,11 @@ Follow these steps EXACTLY as written. Do not skip steps or combine them. Presen
40
40
 
41
41
  **This step is mandatory. You must complete it before proceeding.**
42
42
 
43
- Invoke the `/migrate` command and assess its output before proceeding to Step 1.
43
+ Invoke the `/migrate` command and assess its output.
44
+
45
+ **If files were updated**: STOP and wait for the user to review the changes (e.g., via `git diff`) and confirm before proceeding to Step 1. Do not continue automatically.
46
+
47
+ **If no updates needed**: Proceed to Step 1.
44
48
 
45
49
  ---
46
50
 
@@ -39,7 +39,11 @@ Follow these steps EXACTLY as written. Do not skip steps or combine them. Presen
39
39
 
40
40
  **This step is mandatory. You must complete it before proceeding.**
41
41
 
42
- Invoke the `/migrate` command and assess its output before proceeding to Step 1.
42
+ Invoke the `/migrate` command and assess its output.
43
+
44
+ **If files were updated**: STOP and wait for the user to review the changes (e.g., via `git diff`) and confirm before proceeding to Step 1. Do not continue automatically.
45
+
46
+ **If no updates needed**: Proceed to Step 1.
43
47
 
44
48
  ---
45
49
 
@@ -40,7 +40,11 @@ Follow these steps EXACTLY as written. Do not skip steps or combine them. Presen
40
40
 
41
41
  **This step is mandatory. You must complete it before proceeding.**
42
42
 
43
- Invoke the `/migrate` command and assess its output before proceeding to Step 1.
43
+ Invoke the `/migrate` command and assess its output.
44
+
45
+ **If files were updated**: STOP and wait for the user to review the changes (e.g., via `git diff`) and confirm before proceeding to Step 1. Do not continue automatically.
46
+
47
+ **If no updates needed**: Proceed to Step 1.
44
48
 
45
49
  ---
46
50
 
@@ -40,7 +40,11 @@ Follow these steps EXACTLY as written. Do not skip steps or combine them. Presen
40
40
 
41
41
  **This step is mandatory. You must complete it before proceeding.**
42
42
 
43
- Invoke the `/migrate` command and assess its output before proceeding to Step 1.
43
+ Invoke the `/migrate` command and assess its output.
44
+
45
+ **If files were updated**: STOP and wait for the user to review the changes (e.g., via `git diff`) and confirm before proceeding to Step 1. Do not continue automatically.
46
+
47
+ **If no updates needed**: Proceed to Step 1.
44
48
 
45
49
  ---
46
50
 
@@ -324,7 +328,12 @@ Then analyze coupling between discussions:
324
328
  - **Behavioral coupling**: Discussions where one's implementation requires another
325
329
  - **Conceptual coupling**: Discussions that address different facets of the same problem
326
330
 
327
- Group discussions that are tightly coupled - they should become a single specification because their decisions are inseparable.
331
+ Group discussions into specifications where each grouping represents a **coherent feature or capability that can be independently planned and built** with clear stages delivering incremental, testable value. Coupling tells you what's related; the grouping decision also requires that the result is the right shape:
332
+
333
+ - **Tightly coupled discussions belong together** — their decisions are inseparable and would produce interleaved implementation work
334
+ - **Don't group too broadly** — if a grouping mixes unrelated concerns, the resulting specification will produce incoherent stages and tasks that jump between disconnected areas
335
+ - **Don't group too narrowly** — if a grouping is too thin, it may not warrant its own specification, planning, and implementation cycle
336
+ - **Flag cross-cutting discussions** — discussions about patterns or policies (not features) should become cross-cutting specifications rather than being grouped with feature discussions
328
337
 
329
338
  #### Preserve Anchored Names
330
339
 
@@ -8,7 +8,11 @@ Show the current state of the workflow for this project.
8
8
 
9
9
  **This step is mandatory. You must complete it before proceeding.**
10
10
 
11
- Invoke the `/migrate` command and assess its output before proceeding to Step 1.
11
+ Invoke the `/migrate` command and assess its output.
12
+
13
+ **If files were updated**: STOP and wait for the user to review the changes (e.g., via `git diff`) and confirm before proceeding to Step 1. Do not continue automatically.
14
+
15
+ **If no updates needed**: Proceed to Step 1.
12
16
 
13
17
  ---
14
18
 
@@ -4,14 +4,6 @@ description: View a plan's tasks and progress, regardless of output format.
4
4
 
5
5
  Display a readable summary of a plan's phases, tasks, and status.
6
6
 
7
- ## Step 0: Run Migrations
8
-
9
- **This step is mandatory. You must complete it before proceeding.**
10
-
11
- Invoke the `/migrate` command and assess its output before proceeding to Step 1.
12
-
13
- ---
14
-
15
7
  ## Step 1: Identify the Plan
16
8
 
17
9
  If no topic is specified, list available plans:
@@ -31,7 +23,7 @@ Read the plan file from `docs/workflow/planning/{topic}.md` and check the `forma
31
23
  Load the corresponding output format reference:
32
24
 
33
25
  ```
34
- skills/technical-planning/references/output-{format}.md
26
+ skills/technical-planning/references/output-formats/output-{format}.md
35
27
  ```
36
28
 
37
29
  This reference contains instructions for reading plans in that format.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leeovery/claude-technical-workflows",
3
- "version": "2.0.45",
3
+ "version": "2.0.46",
4
4
  "description": "Technical workflow skills & commands for Claude Code",
5
5
  "license": "MIT",
6
6
  "author": "Lee Overy <me@leeovery.com>",
@@ -21,7 +21,13 @@ Either way: Capture decisions, rationale, competing approaches, and edge cases.
21
21
  - **Context** (optional) - Prior research, constraints, existing decisions
22
22
  - **Questions to explore** (optional) - Specific architectural questions to address
23
23
 
24
- **If missing:** Will ask user what topic they want to discuss.
24
+ **Before proceeding**, confirm the required input is clear. If anything is missing or unclear, **STOP** and resolve with the user.
25
+
26
+ - **No topic provided?**
27
+ > "What topic would you like to discuss? This could be an architectural decision, a design problem, or edge cases to work through — anything that needs structured technical discussion."
28
+
29
+ - **Topic is broad or ambiguous?**
30
+ > "You mentioned {topic}. To keep the discussion focused, is there a specific aspect or decision you want to work through first?"
25
31
 
26
32
  ## What to Capture
27
33
 
@@ -25,7 +25,18 @@ Either way: Execute via strict TDD - tests first, implementation second.
25
25
  - **Environment setup** (optional) - First-time setup instructions
26
26
  - **Scope** (optional) - Specific phase/task to work on
27
27
 
28
- **If missing:** Will ask user for plan location. If no specification, plan becomes sole authority.
28
+ **Before proceeding**, verify all required inputs are available and unambiguous. If anything is missing or unclear, **STOP** do not proceed until resolved.
29
+
30
+ - **No plan provided?**
31
+ > "I need an implementation plan to execute. Could you point me to the plan file (e.g., `docs/workflow/planning/{topic}.md`)?"
32
+
33
+ - **Plan has no `format` field in frontmatter?**
34
+ > "The plan at {path} doesn't specify an output format in its frontmatter. Which format does this plan use?"
35
+
36
+ - **Plan status is not `concluded`?**
37
+ > "The plan at {path} has status '{status}' — it hasn't completed the review process. Should I proceed anyway, or should the plan be reviewed first?"
38
+
39
+ If no specification is available, the plan becomes the sole authority for design decisions.
29
40
 
30
41
  ## Hard Rules
31
42
 
@@ -60,7 +71,7 @@ Complete ALL setup steps before proceeding to implementation work.
60
71
 
61
72
  2. **Read the plan** from the provided location (typically `docs/workflow/planning/{topic}.md`)
62
73
  - Check the `format` field in frontmatter
63
- - Load the output adapter: `skills/technical-planning/references/output-{format}.md`
74
+ - Load the output adapter: `skills/technical-planning/references/output-formats/output-{format}.md`
64
75
  - If no format field, ask user which format the plan uses
65
76
  - Follow the **Implementation** section for how to read tasks and update progress
66
77
 
@@ -55,7 +55,7 @@ If the environment setup document contains only "No special setup required" (or
55
55
  Some plan formats require specific tools. Check the plan's `format` field and load the corresponding output adapter from the planning skill for setup instructions:
56
56
 
57
57
  ```
58
- skills/technical-planning/references/output-{format}.md
58
+ skills/technical-planning/references/output-formats/output-{format}.md
59
59
  ```
60
60
 
61
61
  Each output adapter contains prerequisites and installation instructions for that format.
@@ -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) - List of cross-cutting specifications that inform this plan
25
+ - **Cross-cutting references** (optional) - Cross-cutting specifications that inform technical decisions in this plan
26
26
 
27
- **If missing:** Will ask user for specification location or content.
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
- ### Cross-Cutting References
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
- If cross-cutting specifications are provided (e.g., caching strategy, rate limiting policy), incorporate their decisions into the plan:
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
- 1. **Include a "Cross-Cutting References" section** in the plan linking to these specifications
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
- Cross-cutting specifications are architectural decisions that inform HOW features are built. They don't have their own implementation plans - instead, their patterns are applied within feature plans.
37
+ ## The Process
38
38
 
39
- ## Source Material
39
+ Follow every step in sequence. No steps are optional.
40
40
 
41
- **The specification is your sole input.** Everything you need should be in the specification - do not request details from prior source material. If information is missing, ask for clarification on the specification itself.
41
+ ---
42
42
 
43
- ## The Process
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
- **Load**: [formal-planning.md](references/formal-planning.md)
76
+ Do not present or summarize the specification back to the user — it has already been signed off.
46
77
 
47
- **Choose output format**: Ask user which format, then load the appropriate output adapter. See **[output-formats.md](references/output-formats.md)** for available formats.
78
+ Proceed to **Step 4**.
48
79
 
49
- **Output**: Implementation plan in chosen format
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
- ## Critical Rules
96
+ Load **[steps/author-tasks.md](references/steps/author-tasks.md)** and follow its instructions as written.
52
97
 
53
- **Capture immediately**: After each user response, update the planning document BEFORE your next question. Never let more than 2-3 exchanges pass without writing.
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
- **Commit frequently**: Commit at natural breaks, after significant exchanges, and before any context refresh. Context refresh = lost work.
112
+ ## Step 9: Conclude the Plan
56
113
 
57
- **Never invent reasoning**: If it's not in the specification, ask again. The specification is the golden document - all plan content must trace back to it.
114
+ After the review is complete:
58
115
 
59
- **Create plans, not code**: Your job is phases, tasks, and acceptance criteria - not implementation.
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
- **Collaborate with the user**: Planning is iterative. Stop and ask when the specification is ambiguous, multiple valid approaches exist, or you're uncertain about task scope. The user expects collaboration - don't guess when you can ask.
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](../SKILL.md)***
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](../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 |
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 `formal-planning.md` for the format and states (unresolved, resolved, satisfied externally).
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
 
@@ -1,6 +1,6 @@
1
1
  # Output: Beads
2
2
 
3
- *Output adapter for **[technical-planning](../SKILL.md)***
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](../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 |
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 `formal-planning.md` for the format and states (unresolved, resolved, satisfied externally).
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
 
@@ -1,6 +1,6 @@
1
1
  # Output: Linear
2
2
 
3
- *Output adapter for **[technical-planning](../SKILL.md)***
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](../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 |
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 `formal-planning.md` for the format and states (unresolved, resolved, satisfied externally).
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](../SKILL.md)***
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](../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 |
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. **Ask the user which format they prefer** - present the benefits from each adapter file and let them decide.
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 this directory.
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
- - **[Local Markdown](output-local-markdown.md)** - Single markdown file, no external tools
14
- - **[Linear](output-linear.md)** - Linear project with labeled issues (requires MCP)
15
- - **[Backlog.md](output-backlog-md.md)** - Kanban board with task files
16
- - **[Beads](output-beads.md)** - Git-backed graph issue tracker for AI agents
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.