@leeovery/claude-technical-workflows 2.0.24 → 2.0.25
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/workflow:start-planning.md +47 -11
- package/package.json +1 -1
- package/skills/technical-planning/SKILL.md +11 -0
- package/skills/technical-planning/references/output-backlog-md.md +11 -0
- package/skills/technical-planning/references/output-beads.md +11 -0
- package/skills/technical-planning/references/output-linear.md +11 -0
- package/skills/technical-planning/references/output-local-markdown.md +11 -0
- package/skills/technical-specification/references/specification-guide.md +121 -0
|
@@ -39,12 +39,18 @@ Scan the codebase for specifications and plans:
|
|
|
39
39
|
- Run `ls docs/workflow/specification/` to list specification files
|
|
40
40
|
- Each file is named `{topic}.md`
|
|
41
41
|
|
|
42
|
-
2. **Check specification
|
|
43
|
-
- Run `head -20 docs/workflow/specification/{topic}.md` to read the frontmatter
|
|
42
|
+
2. **Check specification metadata**: For each specification file
|
|
43
|
+
- Run `head -20 docs/workflow/specification/{topic}.md` to read the frontmatter
|
|
44
|
+
- Extract the `status:` field (Building specification | Complete)
|
|
45
|
+
- Extract the `type:` field (feature | cross-cutting) - if not present, default to `feature`
|
|
44
46
|
- Do NOT use bash loops - run separate `head` commands for each topic
|
|
45
47
|
|
|
46
|
-
3. **
|
|
47
|
-
-
|
|
48
|
+
3. **Categorize specifications**:
|
|
49
|
+
- **Feature specifications** (`type: feature` or unspecified): Candidates for planning
|
|
50
|
+
- **Cross-cutting specifications** (`type: cross-cutting`): Reference context only - do NOT offer for planning
|
|
51
|
+
|
|
52
|
+
4. **Check for existing plans**: Look in `docs/workflow/planning/`
|
|
53
|
+
- Identify feature specifications that don't have corresponding plans
|
|
48
54
|
|
|
49
55
|
## Step 2: Check Prerequisites
|
|
50
56
|
|
|
@@ -60,22 +66,29 @@ Stop here and wait for the user to acknowledge.
|
|
|
60
66
|
|
|
61
67
|
## Step 3: Present Options to User
|
|
62
68
|
|
|
63
|
-
Show what you found
|
|
69
|
+
Show what you found, separating feature specs (planning targets) from cross-cutting specs (reference context):
|
|
64
70
|
|
|
65
71
|
```
|
|
66
|
-
📂 Specifications
|
|
72
|
+
📂 Feature Specifications (planning targets):
|
|
67
73
|
⚠️ {topic-1} - Building specification - not ready for planning
|
|
68
74
|
✅ {topic-2} - Complete - ready for planning
|
|
69
75
|
✅ {topic-3} - Complete - plan exists
|
|
70
76
|
|
|
71
|
-
|
|
77
|
+
📚 Cross-Cutting Specifications (reference context):
|
|
78
|
+
✅ {caching-strategy} - Complete - will inform planning
|
|
79
|
+
✅ {rate-limiting} - Complete - will inform planning
|
|
80
|
+
|
|
81
|
+
Which feature specification would you like to create a plan for?
|
|
72
82
|
```
|
|
73
83
|
|
|
74
|
-
**Important:**
|
|
84
|
+
**Important:**
|
|
85
|
+
- Only completed **feature** specifications should proceed to planning
|
|
86
|
+
- **Cross-cutting** specifications are NOT planning targets - they inform feature plans
|
|
87
|
+
- If a specification is still being built, advise the user to complete the specification phase first
|
|
75
88
|
|
|
76
|
-
**Auto-select:** If exactly one specification exists, automatically select it and proceed to Step 4. Inform the user which specification was selected. Do not ask for confirmation.
|
|
89
|
+
**Auto-select:** If exactly one completed feature specification exists, automatically select it and proceed to Step 4. Inform the user which specification was selected. Do not ask for confirmation.
|
|
77
90
|
|
|
78
|
-
Ask: **Which specification would you like to plan?**
|
|
91
|
+
Ask: **Which feature specification would you like to plan?**
|
|
79
92
|
|
|
80
93
|
## Step 4: Choose Output Destination
|
|
81
94
|
|
|
@@ -88,6 +101,26 @@ Load **[output-formats.md](../skills/technical-planning/references/output-format
|
|
|
88
101
|
- Any additional context or priorities to consider?
|
|
89
102
|
- Any constraints since the specification was completed?
|
|
90
103
|
|
|
104
|
+
## Step 5b: Surface Cross-Cutting Context
|
|
105
|
+
|
|
106
|
+
If any **completed cross-cutting specifications** exist, surface them as reference context for planning:
|
|
107
|
+
|
|
108
|
+
1. **List applicable cross-cutting specs**:
|
|
109
|
+
- Read each cross-cutting specification
|
|
110
|
+
- Identify which ones are relevant to the feature being planned
|
|
111
|
+
- Relevance is determined by topic overlap (e.g., caching strategy applies if the feature involves data retrieval or API calls)
|
|
112
|
+
|
|
113
|
+
2. **Summarize for handoff**:
|
|
114
|
+
```
|
|
115
|
+
Cross-cutting specifications to reference:
|
|
116
|
+
- caching-strategy.md: [brief summary of key decisions]
|
|
117
|
+
- rate-limiting.md: [brief summary of key decisions]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
These specifications contain validated architectural decisions that should inform the plan. The planning skill will incorporate these as a "Cross-Cutting References" section in the plan.
|
|
121
|
+
|
|
122
|
+
**If no cross-cutting specifications exist**: Skip this step.
|
|
123
|
+
|
|
91
124
|
## Step 6: Invoke the Skill
|
|
92
125
|
|
|
93
126
|
After completing the steps above, this command's purpose is fulfilled.
|
|
@@ -100,6 +133,7 @@ Planning session for: {topic}
|
|
|
100
133
|
Specification: docs/workflow/specification/{topic}.md
|
|
101
134
|
Output format: {format}
|
|
102
135
|
Additional context: {summary of user's answers from Step 5}
|
|
136
|
+
Cross-cutting references: {list of applicable cross-cutting specs with brief summaries, or "none"}
|
|
103
137
|
|
|
104
138
|
Invoke the technical-planning skill.
|
|
105
139
|
```
|
|
@@ -107,4 +141,6 @@ Invoke the technical-planning skill.
|
|
|
107
141
|
## Notes
|
|
108
142
|
|
|
109
143
|
- Ask questions clearly and wait for responses before proceeding
|
|
110
|
-
- The specification is the
|
|
144
|
+
- The feature specification is the primary source of truth for planning
|
|
145
|
+
- Cross-cutting specifications provide supplementary context for architectural decisions
|
|
146
|
+
- Do not reference discussions - only specifications
|
package/package.json
CHANGED
|
@@ -22,9 +22,20 @@ 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
26
|
|
|
26
27
|
**If missing:** Will ask user for specification location or content.
|
|
27
28
|
|
|
29
|
+
### Cross-Cutting References
|
|
30
|
+
|
|
31
|
+
If cross-cutting specifications are provided (e.g., caching strategy, rate limiting policy), incorporate their decisions into the plan:
|
|
32
|
+
|
|
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
|
|
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.
|
|
38
|
+
|
|
28
39
|
## Source Material
|
|
29
40
|
|
|
30
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.
|
|
@@ -88,6 +88,17 @@ Tasks are organized with labels/priorities:
|
|
|
88
88
|
|
|
89
89
|
[Summary of key decisions from specification]
|
|
90
90
|
|
|
91
|
+
## Cross-Cutting References
|
|
92
|
+
|
|
93
|
+
Architectural decisions from cross-cutting specifications that inform this plan:
|
|
94
|
+
|
|
95
|
+
| Specification | Key Decisions | Applies To |
|
|
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 |
|
|
99
|
+
|
|
100
|
+
*Remove this section if no cross-cutting specifications apply.*
|
|
101
|
+
|
|
91
102
|
## External Dependencies
|
|
92
103
|
|
|
93
104
|
[Dependencies on other topics - copy from specification's Dependencies section]
|
|
@@ -269,6 +269,17 @@ This plan is managed via Beads. Tasks are stored in `.beads/` and tracked as a d
|
|
|
269
269
|
|
|
270
270
|
[Summary of key decisions from specification]
|
|
271
271
|
|
|
272
|
+
## Cross-Cutting References
|
|
273
|
+
|
|
274
|
+
Architectural decisions from cross-cutting specifications that inform this plan:
|
|
275
|
+
|
|
276
|
+
| Specification | Key Decisions | Applies To |
|
|
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 |
|
|
280
|
+
|
|
281
|
+
*Remove this section if no cross-cutting specifications apply.*
|
|
282
|
+
|
|
272
283
|
## Phase Overview
|
|
273
284
|
|
|
274
285
|
| Phase | Goal | Epic ID |
|
|
@@ -179,6 +179,17 @@ This plan is managed in Linear. The source of truth for tasks and progress is th
|
|
|
179
179
|
|
|
180
180
|
[Summary of key decisions from specification - for quick reference]
|
|
181
181
|
|
|
182
|
+
## Cross-Cutting References
|
|
183
|
+
|
|
184
|
+
Architectural decisions from cross-cutting specifications that inform this plan:
|
|
185
|
+
|
|
186
|
+
| Specification | Key Decisions | Applies To |
|
|
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 |
|
|
190
|
+
|
|
191
|
+
*Remove this section if no cross-cutting specifications apply.*
|
|
192
|
+
|
|
182
193
|
## External Dependencies
|
|
183
194
|
|
|
184
195
|
[Dependencies on other topics - copy from specification's Dependencies section]
|
|
@@ -54,6 +54,17 @@ format: local-markdown
|
|
|
54
54
|
- Decision 1: Rationale
|
|
55
55
|
- Decision 2: Rationale
|
|
56
56
|
|
|
57
|
+
## Cross-Cutting References
|
|
58
|
+
|
|
59
|
+
Architectural decisions from cross-cutting specifications that inform this plan:
|
|
60
|
+
|
|
61
|
+
| Specification | Key Decisions | Applies To |
|
|
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 |
|
|
65
|
+
|
|
66
|
+
*Remove this section if no cross-cutting specifications apply.*
|
|
67
|
+
|
|
57
68
|
## Architecture
|
|
58
69
|
|
|
59
70
|
- Components
|
|
@@ -146,6 +146,7 @@ Suggested skeleton:
|
|
|
146
146
|
# Specification: [Topic Name]
|
|
147
147
|
|
|
148
148
|
**Status**: Building specification
|
|
149
|
+
**Type**: feature | cross-cutting
|
|
149
150
|
**Last Updated**: YYYY-MM-DD *(use today's actual date)*
|
|
150
151
|
|
|
151
152
|
---
|
|
@@ -161,6 +162,73 @@ Suggested skeleton:
|
|
|
161
162
|
[Optional - capture in-progress discussion if needed]
|
|
162
163
|
```
|
|
163
164
|
|
|
165
|
+
## Specification Types
|
|
166
|
+
|
|
167
|
+
The `Type` field distinguishes between specifications that result in standalone implementation work versus those that inform how other work is done.
|
|
168
|
+
|
|
169
|
+
### Feature Specifications (`type: feature`)
|
|
170
|
+
|
|
171
|
+
Feature specifications describe something to **build** - a concrete piece of functionality with its own implementation plan.
|
|
172
|
+
|
|
173
|
+
**Examples:**
|
|
174
|
+
- User authentication system
|
|
175
|
+
- Order processing pipeline
|
|
176
|
+
- Notification service
|
|
177
|
+
- Dashboard analytics
|
|
178
|
+
|
|
179
|
+
**Characteristics:**
|
|
180
|
+
- Results in a dedicated implementation plan
|
|
181
|
+
- Has concrete deliverables (code, APIs, UI)
|
|
182
|
+
- Can be planned with phases, tasks, and acceptance criteria
|
|
183
|
+
- Progress is measurable ("the feature is done")
|
|
184
|
+
|
|
185
|
+
**This is the default type.** If not specified, assume `feature`.
|
|
186
|
+
|
|
187
|
+
### Cross-Cutting Specifications (`type: cross-cutting`)
|
|
188
|
+
|
|
189
|
+
Cross-cutting specifications describe **patterns, policies, or architectural decisions** that inform how features are built. They don't result in standalone implementation - instead, they're referenced by feature specifications and plans.
|
|
190
|
+
|
|
191
|
+
**Examples:**
|
|
192
|
+
- Caching strategy
|
|
193
|
+
- Rate limiting policy
|
|
194
|
+
- Error handling conventions
|
|
195
|
+
- Logging and observability standards
|
|
196
|
+
- API versioning approach
|
|
197
|
+
- Security patterns
|
|
198
|
+
|
|
199
|
+
**Characteristics:**
|
|
200
|
+
- Does NOT result in a dedicated implementation plan
|
|
201
|
+
- Defines "how to do things" rather than "what to build"
|
|
202
|
+
- Referenced by multiple feature specifications
|
|
203
|
+
- Implementation happens within features that apply these patterns
|
|
204
|
+
- No standalone "done" state - the patterns are applied across features
|
|
205
|
+
|
|
206
|
+
### Why This Matters
|
|
207
|
+
|
|
208
|
+
Cross-cutting specifications go through the same Research → Discussion → Specification phases. The decisions are just as important to validate and document. The difference is what happens after:
|
|
209
|
+
|
|
210
|
+
- **Feature specs** → Planning → Implementation → Review
|
|
211
|
+
- **Cross-cutting specs** → Referenced by feature plans → Applied during feature implementation
|
|
212
|
+
|
|
213
|
+
When planning a feature, the planning process surfaces relevant cross-cutting specifications as context. This ensures that a "user authentication" plan incorporates the validated caching strategy and error handling conventions.
|
|
214
|
+
|
|
215
|
+
### Determining the Type
|
|
216
|
+
|
|
217
|
+
Ask: **"Is there a standalone thing to build, or does this inform how we build other things?"**
|
|
218
|
+
|
|
219
|
+
| Question | Feature | Cross-Cutting |
|
|
220
|
+
|----------|---------|---------------|
|
|
221
|
+
| Can you demo it when done? | Yes - "here's the login page" | No - it's invisible infrastructure |
|
|
222
|
+
| Does it have its own UI/API/data? | Yes | No - lives within other features |
|
|
223
|
+
| Can you plan phases and tasks for it? | Yes | Tasks would be "apply X to feature Y" |
|
|
224
|
+
| Is it used by one feature or many? | Usually one | By definition, multiple |
|
|
225
|
+
|
|
226
|
+
**Edge cases:**
|
|
227
|
+
- A "caching service" that provides shared caching infrastructure → **Feature** (you're building something)
|
|
228
|
+
- "How we use caching across the app" → **Cross-cutting** (policy/pattern)
|
|
229
|
+
- Authentication system → **Feature**
|
|
230
|
+
- Authentication patterns and security requirements → **Cross-cutting**
|
|
231
|
+
|
|
164
232
|
## Critical Rules
|
|
165
233
|
|
|
166
234
|
**EXPLICIT APPROVAL REQUIRED FOR EVERY WRITE**: You MUST NOT write to the specification until the user has explicitly approved. "Presenting" is not approval. "Asking a question" is not approval. You need explicit confirmation. If uncertain, ASK. This rule is non-negotiable.
|
|
@@ -344,8 +412,61 @@ When you've:
|
|
|
344
412
|
|
|
345
413
|
## Completion
|
|
346
414
|
|
|
415
|
+
### Step 1: Determine Specification Type
|
|
416
|
+
|
|
417
|
+
Before asking for sign-off, assess whether this is a **feature** or **cross-cutting** specification:
|
|
418
|
+
|
|
419
|
+
**Feature specification** - Something to build:
|
|
420
|
+
- Has concrete deliverables (code, APIs, UI)
|
|
421
|
+
- Can be planned with phases, tasks, acceptance criteria
|
|
422
|
+
- Results in a standalone implementation
|
|
423
|
+
|
|
424
|
+
**Cross-cutting specification** - Patterns/policies that inform other work:
|
|
425
|
+
- Defines "how to do things" rather than "what to build"
|
|
426
|
+
- Will be referenced by multiple feature specifications
|
|
427
|
+
- Implementation happens within features that apply these patterns
|
|
428
|
+
|
|
429
|
+
Present your assessment to the user:
|
|
430
|
+
|
|
431
|
+
> "This specification appears to be a **[feature/cross-cutting]** specification.
|
|
432
|
+
>
|
|
433
|
+
> [Brief rationale - e.g., "It defines a caching strategy that will inform how multiple features handle data retrieval, rather than being a standalone piece of functionality to build."]
|
|
434
|
+
>
|
|
435
|
+
> - **Feature specs** proceed to planning and implementation
|
|
436
|
+
> - **Cross-cutting specs** are referenced by feature plans but don't have their own implementation plan
|
|
437
|
+
>
|
|
438
|
+
> Does this assessment seem correct?"
|
|
439
|
+
|
|
440
|
+
Wait for user confirmation before proceeding.
|
|
441
|
+
|
|
442
|
+
### Step 2: Sign-Off
|
|
443
|
+
|
|
444
|
+
Once the type is confirmed, ask for final sign-off:
|
|
445
|
+
|
|
446
|
+
> "The specification is ready for sign-off:
|
|
447
|
+
> - **Type**: [feature/cross-cutting]
|
|
448
|
+
> - **Status**: Complete
|
|
449
|
+
>
|
|
450
|
+
> [If feature]: This specification can proceed to planning
|
|
451
|
+
> [If cross-cutting]: This specification will be surfaced as reference context when planning features
|
|
452
|
+
>
|
|
453
|
+
> Ready to mark as complete?"
|
|
454
|
+
|
|
455
|
+
### Step 3: Update Frontmatter
|
|
456
|
+
|
|
457
|
+
After user confirms, update the specification frontmatter:
|
|
458
|
+
|
|
459
|
+
```markdown
|
|
460
|
+
# Specification: [Topic Name]
|
|
461
|
+
|
|
462
|
+
**Status**: Complete
|
|
463
|
+
**Type**: [feature/cross-cutting]
|
|
464
|
+
**Last Updated**: YYYY-MM-DD
|
|
465
|
+
```
|
|
466
|
+
|
|
347
467
|
Specification is complete when:
|
|
348
468
|
- All topics/phases have validated content
|
|
469
|
+
- Type has been determined and confirmed
|
|
349
470
|
- User confirms the specification is complete
|
|
350
471
|
- No blocking gaps remain
|
|
351
472
|
|