@leeovery/claude-technical-workflows 2.0.21 → 2.0.23
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/package.json +1 -1
- package/skills/technical-discussion/references/template.md +1 -1
- package/skills/technical-planning/references/output-backlog-md.md +1 -1
- package/skills/technical-planning/references/output-beads.md +1 -1
- package/skills/technical-planning/references/output-linear.md +1 -1
- package/skills/technical-planning/references/output-local-markdown.md +2 -2
- package/skills/technical-specification/SKILL.md +2 -0
- package/skills/technical-specification/references/specification-guide.md +127 -19
package/package.json
CHANGED
|
@@ -38,7 +38,7 @@ format: local-markdown
|
|
|
38
38
|
|
|
39
39
|
# Implementation Plan: {Feature/Project Name}
|
|
40
40
|
|
|
41
|
-
**Date**: YYYY-MM-DD
|
|
41
|
+
**Date**: YYYY-MM-DD *(use today's actual date)*
|
|
42
42
|
**Status**: Draft | Ready | In Progress | Completed
|
|
43
43
|
**Specification**: `docs/workflow/specification/{topic}.md`
|
|
44
44
|
|
|
@@ -145,7 +145,7 @@ Triggers and steps
|
|
|
145
145
|
|
|
146
146
|
| Date | Change |
|
|
147
147
|
|------|--------|
|
|
148
|
-
| YYYY-MM-DD | Created from specification |
|
|
148
|
+
| YYYY-MM-DD *(use today's actual date)* | Created from specification |
|
|
149
149
|
```
|
|
150
150
|
|
|
151
151
|
## Cross-Topic Dependencies
|
|
@@ -48,6 +48,8 @@ Either way: Transform unvalidated reference material into a specification that's
|
|
|
48
48
|
|
|
49
49
|
5. **Log**: Only when approved, write content verbatim to the specification.
|
|
50
50
|
|
|
51
|
+
6. **Final review**: After all topics and dependencies are documented, perform a comprehensive review of ALL source material against the specification. Flag any potentially missed content to the user - but only from the sources, never fabricated. User confirms before any additions.
|
|
52
|
+
|
|
51
53
|
The specification is the **golden document** - planning uses only this. If information doesn't make it into the specification, it won't be built. No references back to source material.
|
|
52
54
|
|
|
53
55
|
## Critical Rules
|
|
@@ -104,7 +104,7 @@ Suggested skeleton:
|
|
|
104
104
|
# Specification: [Topic Name]
|
|
105
105
|
|
|
106
106
|
**Status**: Building specification
|
|
107
|
-
**Last Updated**:
|
|
107
|
+
**Last Updated**: YYYY-MM-DD *(use today's actual date)*
|
|
108
108
|
|
|
109
109
|
---
|
|
110
110
|
|
|
@@ -139,52 +139,160 @@ If working notes exist, they show where you left off.
|
|
|
139
139
|
|
|
140
140
|
## Dependencies Section
|
|
141
141
|
|
|
142
|
-
At the end of every specification, add a **Dependencies** section that identifies
|
|
142
|
+
At the end of every specification, add a **Dependencies** section that identifies **prerequisites** - systems that must exist before this feature can be built.
|
|
143
143
|
|
|
144
144
|
The same workflow applies: present the dependencies section for approval, then log verbatim when approved.
|
|
145
145
|
|
|
146
|
+
### What Dependencies Are
|
|
147
|
+
|
|
148
|
+
Dependencies are **blockers** - things that must exist before implementation can begin.
|
|
149
|
+
|
|
150
|
+
Think of it like building a house: if you're specifying the roof, the walls are a dependency. You cannot build a roof without walls to support it. The walls must exist first.
|
|
151
|
+
|
|
152
|
+
**The test**: "If system X doesn't exist, can we still build this feature?"
|
|
153
|
+
- If **no** → X is a dependency
|
|
154
|
+
- If **yes** → X is not a dependency (even if the systems work together)
|
|
155
|
+
|
|
156
|
+
### What Dependencies Are NOT
|
|
157
|
+
|
|
158
|
+
**Do not list systems just because they:**
|
|
159
|
+
- Work together with this feature
|
|
160
|
+
- Share data or communicate with this feature
|
|
161
|
+
- Are related or in the same domain
|
|
162
|
+
- Would be nice to have alongside this feature
|
|
163
|
+
|
|
164
|
+
Two systems that cooperate are not necessarily dependent. A notification system and a user preferences system might work together (preferences control notification settings), but if you can build the notification system with hardcoded defaults and add preference integration later, then preferences are not a dependency.
|
|
165
|
+
|
|
146
166
|
### How to Identify Dependencies
|
|
147
167
|
|
|
148
|
-
Review the specification for
|
|
149
|
-
|
|
150
|
-
- Data
|
|
151
|
-
-
|
|
152
|
-
-
|
|
168
|
+
Review the specification for cases where implementation is **literally blocked** without another system:
|
|
169
|
+
|
|
170
|
+
- **Data that must exist first** (e.g., "FK to users" → User model must exist, you can't create the FK otherwise)
|
|
171
|
+
- **Events you consume** (e.g., "listens for payment.completed" → Payment system must emit this event)
|
|
172
|
+
- **APIs you call** (e.g., "fetches inventory levels" → Inventory API must exist)
|
|
173
|
+
- **Infrastructure requirements** (e.g., "stores files in S3" → S3 bucket configuration must exist)
|
|
174
|
+
|
|
175
|
+
**Do not include** systems where you merely reference their concepts or where integration could be deferred.
|
|
153
176
|
|
|
154
177
|
### Categorization
|
|
155
178
|
|
|
156
|
-
**Required**:
|
|
179
|
+
**Required**: Implementation cannot start without this. The code literally cannot be written.
|
|
157
180
|
|
|
158
|
-
**Partial Requirement**: Only specific elements are needed, not the full system. Note the minimum scope.
|
|
181
|
+
**Partial Requirement**: Only specific elements are needed, not the full system. Note the minimum scope that unblocks implementation.
|
|
159
182
|
|
|
160
183
|
### Format
|
|
161
184
|
|
|
162
185
|
## Dependencies
|
|
163
186
|
|
|
164
|
-
|
|
187
|
+
Prerequisites that must exist before implementation can begin:
|
|
165
188
|
|
|
166
189
|
### Required
|
|
167
190
|
|
|
168
|
-
| Dependency | Why
|
|
169
|
-
|
|
170
|
-
| **[System Name]** | [
|
|
191
|
+
| Dependency | Why Blocked | What's Unblocked When It Exists |
|
|
192
|
+
|------------|-------------|--------------------------------|
|
|
193
|
+
| **[System Name]** | [Why implementation literally cannot proceed] | [What parts of this spec can then be built] |
|
|
171
194
|
|
|
172
195
|
### Partial Requirement
|
|
173
196
|
|
|
174
|
-
| Dependency | Why
|
|
175
|
-
|
|
176
|
-
| **[System Name]** | [
|
|
197
|
+
| Dependency | Why Blocked | Minimum Scope Needed |
|
|
198
|
+
|------------|-------------|---------------------|
|
|
199
|
+
| **[System Name]** | [Why implementation cannot proceed] | [Specific subset that unblocks us] |
|
|
177
200
|
|
|
178
201
|
### Notes
|
|
179
202
|
|
|
180
|
-
- [
|
|
181
|
-
- [Workarounds
|
|
203
|
+
- [What can be built independently, without waiting]
|
|
204
|
+
- [Workarounds if dependencies don't exist yet]
|
|
182
205
|
|
|
183
206
|
### Purpose
|
|
184
207
|
|
|
185
208
|
This section feeds into the planning phase, where dependencies become blocking relationships between epics/phases. It helps sequence implementation correctly.
|
|
186
209
|
|
|
187
|
-
|
|
210
|
+
**Key distinction**: This is about sequencing what must come first, not mapping out what works together. A feature may integrate with many systems - only list the ones that block you from starting.
|
|
211
|
+
|
|
212
|
+
## Final Specification Review
|
|
213
|
+
|
|
214
|
+
After documenting dependencies, perform a **final comprehensive review** of the entire specification against all source material. This is your last chance to catch anything that was missed.
|
|
215
|
+
|
|
216
|
+
**Why this matters**: The specification is the golden document. Plans are built from it. If a detail isn't in the specification, it won't be built - regardless of whether it was in the source material.
|
|
217
|
+
|
|
218
|
+
### The Review Process
|
|
219
|
+
|
|
220
|
+
1. **Re-read ALL source material** - Go back to every source document, discussion, research note, and reference. Don't rely on memory.
|
|
221
|
+
|
|
222
|
+
2. **Compare systematically** - For each piece of source material:
|
|
223
|
+
- What topics does it cover?
|
|
224
|
+
- Are those topics fully captured in the specification?
|
|
225
|
+
- Are there details, edge cases, or decisions that didn't make it?
|
|
226
|
+
|
|
227
|
+
3. **Search for the forgotten** - Look specifically for:
|
|
228
|
+
- Edge cases mentioned in passing
|
|
229
|
+
- Constraints or requirements buried in tangential discussions
|
|
230
|
+
- Technical details that seemed minor at the time
|
|
231
|
+
- Decisions made early that may have been overshadowed
|
|
232
|
+
- Error handling, validation rules, or boundary conditions
|
|
233
|
+
- Integration points or data flows mentioned but not elaborated
|
|
234
|
+
|
|
235
|
+
4. **Flag what you find** - When you discover potentially missed content, present it to the user. There are two cases:
|
|
236
|
+
|
|
237
|
+
**Enhancing an existing topic** - Details that belong in an already-documented section:
|
|
238
|
+
|
|
239
|
+
> "During my final review, I found additional detail about [existing topic] that isn't captured. From [source]:
|
|
240
|
+
>
|
|
241
|
+
> [quote or summary from source material]
|
|
242
|
+
>
|
|
243
|
+
> I'd add this to the [section name] section. Would you like me to include it, or show you the full section with this addition first?"
|
|
244
|
+
|
|
245
|
+
If the user wants to see context, present the entire section with the new content clearly marked (e.g., with a comment like `<!-- NEW -->` or by calling it out before the block).
|
|
246
|
+
|
|
247
|
+
**An entirely missed topic** - Something that warrants its own section but was glossed over:
|
|
248
|
+
|
|
249
|
+
> "During my final review, I found [topic] discussed in [source] that doesn't have coverage in the specification:
|
|
250
|
+
>
|
|
251
|
+
> [quote or summary from source material]
|
|
252
|
+
>
|
|
253
|
+
> This would be a new section. Should I add it?"
|
|
254
|
+
|
|
255
|
+
In both cases, you know where the content belongs - existing topics get enhanced in place, new topics get added at the end.
|
|
256
|
+
|
|
257
|
+
5. **Never fabricate** - Every item you flag must trace back to specific source material. If you can't point to where it came from, don't suggest it. The goal is to catch missed content, not invent new requirements.
|
|
258
|
+
|
|
259
|
+
6. **User confirms before inclusion** - Standard workflow applies: present proposed additions, get approval, then log verbatim.
|
|
260
|
+
|
|
261
|
+
7. **Surface potential gaps** - After reviewing source material, consider whether the specification has gaps that the sources simply didn't address. These might be:
|
|
262
|
+
- Edge cases that weren't discussed
|
|
263
|
+
- Error scenarios not covered
|
|
264
|
+
- Integration points that seem implicit but aren't specified
|
|
265
|
+
- Behaviors that are ambiguous without clarification
|
|
266
|
+
|
|
267
|
+
Present these as a batch for the user to triage:
|
|
268
|
+
|
|
269
|
+
> "I've identified some potential gaps that aren't covered in the source material:
|
|
270
|
+
>
|
|
271
|
+
> 1. **[Gap A]** - [brief description of what's unclear/missing]
|
|
272
|
+
> 2. **[Gap B]** - [brief description]
|
|
273
|
+
> 3. **[Gap C]** - [brief description]
|
|
274
|
+
>
|
|
275
|
+
> Are any of these areas you'd like to discuss, or are they intentionally out of scope?"
|
|
276
|
+
|
|
277
|
+
The user can then pick which gaps (if any) need addressing. For those they want to discuss, work through them and add to the specification with standard approval workflow.
|
|
278
|
+
|
|
279
|
+
This should be infrequent - most gaps will be caught from source material. But occasionally the sources themselves have blind spots worth surfacing.
|
|
280
|
+
|
|
281
|
+
### What You're NOT Doing
|
|
282
|
+
|
|
283
|
+
- **Not inventing requirements** - When surfacing gaps not in sources, you're asking questions, not proposing answers
|
|
284
|
+
- **Not assuming gaps need filling** - If something isn't in the sources, it may have been intentionally omitted
|
|
285
|
+
- **Not padding the spec** - Only add what's genuinely missing and relevant
|
|
286
|
+
- **Not re-litigating decisions** - If something was discussed and rejected, it stays rejected
|
|
287
|
+
|
|
288
|
+
### Completing the Review
|
|
289
|
+
|
|
290
|
+
When you've:
|
|
291
|
+
- Systematically reviewed all source material for missed content
|
|
292
|
+
- Addressed any discovered gaps with the user
|
|
293
|
+
- Surfaced any potential gaps not covered by sources (and resolved them)
|
|
294
|
+
|
|
295
|
+
...then inform the user the final review is complete and proceed to getting sign-off on the specification.
|
|
188
296
|
|
|
189
297
|
## Completion
|
|
190
298
|
|