@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.
- 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 +11 -2
- package/commands/workflow/status.md +5 -1
- package/commands/workflow/view-plan.md +1 -9
- package/package.json +1 -1
- 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-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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
@@ -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
|
|
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
|
-
**
|
|
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) -
|
|
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.
|