@leeovery/claude-technical-workflows 2.0.54 → 2.1.0

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 (36) hide show
  1. package/README.md +34 -7
  2. package/agents/implementation-task-executor.md +1 -1
  3. package/agents/planning-dependency-grapher.md +140 -0
  4. package/agents/planning-phase-designer.md +1 -1
  5. package/agents/planning-task-author.md +1 -1
  6. package/agents/planning-task-designer.md +1 -1
  7. package/agents/{chain-verifier.md → review-task-verifier.md} +3 -3
  8. package/commands/link-dependencies.md +5 -5
  9. package/commands/workflow/view-plan.md +5 -5
  10. package/package.json +1 -1
  11. package/skills/technical-implementation/SKILL.md +4 -2
  12. package/skills/technical-implementation/references/environment-setup.md +3 -3
  13. package/skills/technical-implementation/references/steps/task-loop.md +2 -2
  14. package/skills/technical-planning/SKILL.md +17 -9
  15. package/skills/technical-planning/references/dependencies.md +3 -3
  16. package/skills/technical-planning/references/output-formats/linear/about.md +48 -0
  17. package/skills/technical-planning/references/output-formats/linear/authoring.md +82 -0
  18. package/skills/technical-planning/references/output-formats/linear/graph.md +68 -0
  19. package/skills/technical-planning/references/output-formats/linear/reading.md +35 -0
  20. package/skills/technical-planning/references/output-formats/linear/updating.md +25 -0
  21. package/skills/technical-planning/references/output-formats/local-markdown/about.md +40 -0
  22. package/skills/technical-planning/references/output-formats/local-markdown/authoring.md +64 -0
  23. package/skills/technical-planning/references/output-formats/local-markdown/graph.md +44 -0
  24. package/skills/technical-planning/references/output-formats/local-markdown/reading.md +29 -0
  25. package/skills/technical-planning/references/output-formats/local-markdown/updating.md +22 -0
  26. package/skills/technical-planning/references/output-formats.md +6 -30
  27. package/skills/technical-planning/references/steps/analyze-task-graph.md +89 -0
  28. package/skills/technical-planning/references/steps/author-tasks.md +3 -3
  29. package/skills/technical-planning/references/steps/review-integrity.md +4 -5
  30. package/skills/technical-planning/references/task-design.md +10 -0
  31. package/skills/technical-review/SKILL.md +3 -3
  32. package/skills/technical-review/references/review-checklist.md +10 -10
  33. package/skills/technical-planning/references/output-formats/output-backlog-md.md +0 -369
  34. package/skills/technical-planning/references/output-formats/output-beads.md +0 -455
  35. package/skills/technical-planning/references/output-formats/output-linear.md +0 -328
  36. package/skills/technical-planning/references/output-formats/output-local-markdown.md +0 -318
@@ -1,328 +0,0 @@
1
- # Output: Linear
2
-
3
- *Output adapter for **[technical-planning](../../SKILL.md)***
4
-
5
- ---
6
-
7
- Use this output format when you want **Linear as the source of truth** for plan management. The user can update tasks directly in Linear's UI, and implementation will query Linear for the current state.
8
-
9
- ## Setup
10
-
11
- Requires the Linear MCP server to be configured in Claude Code.
12
-
13
- Check if Linear MCP is available by looking for Linear tools. If not configured, inform the user that Linear MCP is required for this format.
14
-
15
- Ask the user: **Which team should own this project?**
16
-
17
- ## Linear Structure Mapping
18
-
19
- | Planning Concept | Linear Entity |
20
- |------------------|---------------|
21
- | Specification/Topic | Project |
22
- | Phase | Label (e.g., `phase-1`, `phase-2`) |
23
- | Task | Issue |
24
- | Internal dependency | Issue blocking relationship (within project) |
25
- | Cross-topic dependency | Issue blocking relationship (across projects) |
26
-
27
- Each specification topic becomes its own Linear project. Cross-topic dependencies link issues between projects.
28
-
29
- ## Cross-Project Dependencies
30
-
31
- Cross-topic dependencies link issues between different Linear projects (different specifications/topics). This is how you express "billing depends on authentication being complete."
32
-
33
- ### Creating Cross-Project Dependencies
34
-
35
- Linear supports blocking relationships between issues, even across projects. Via MCP or the Linear UI:
36
-
37
- 1. Open the dependent issue (the one that's blocked)
38
- 2. Add a "Blocked by" relationship to the issue in the other project
39
- 3. Linear will show this issue as blocked until the dependency is complete
40
-
41
- ## Querying Dependencies
42
-
43
- Use these queries to understand the dependency graph for implementation blocking and `/link-dependencies`.
44
-
45
- ### Via MCP
46
-
47
- Query Linear for issues with blocking relationships:
48
-
49
- ```
50
- # Get all issues in a project
51
- linear_getIssues(projectId: "{project_id}")
52
-
53
- # Check if an issue has blockers
54
- linear_getIssue(issueId: "{issue_id}")
55
- # Look for blockedByIssues in the response
56
- ```
57
-
58
- ### Check if a Dependency is Complete
59
-
60
- Query the blocking issue and check its state:
61
- - `state.type === "completed"` means the dependency is met
62
- - Any other state means it's still blocking
63
-
64
- ### Find Issues Blocked by a Specific Issue
65
-
66
- Via the Linear API or MCP, query for issues where `blockedByIssues` contains the issue ID.
67
-
68
- ## Output Process
69
-
70
- ### 1. Create Linear Project
71
-
72
- Via MCP, create a project with:
73
-
74
- - **Name**: Match the specification topic name
75
- - **Description**: Brief summary + link to specification file
76
- - **Team**: As specified by user
77
-
78
- ### 2. Create Labels for Phases
79
-
80
- Create labels to denote phases (if they don't already exist):
81
-
82
- - `phase-1`
83
- - `phase-2`
84
- - etc.
85
-
86
- Document the phase goals and acceptance criteria in a pinned issue or the project description:
87
-
88
- ```
89
- Phase 1: Core Authentication
90
- Goal: Implement basic login/logout flow
91
- Acceptance:
92
- - [ ] User can log in with email/password
93
- - [ ] Session persists across page refresh
94
- - [ ] Logout clears session
95
-
96
- Phase 2: ...
97
- ```
98
-
99
- ### 3. Create Issues for Tasks
100
-
101
- For each task, create an issue and apply the appropriate phase label:
102
-
103
- **Title**: Clear action statement
104
-
105
- **Description** (use this structure):
106
- ```markdown
107
- ## Goal
108
- [What this task accomplishes - one sentence]
109
-
110
- ## Implementation
111
- [The "Do" from planning - specific files, methods, approach]
112
-
113
- ## Tests (Micro Acceptance)
114
- - `it does expected behavior`
115
- - `it handles edge case X`
116
-
117
- ## Edge Cases
118
- - [Specific edge cases for this task]
119
-
120
- ## Context
121
- Specification: `docs/workflow/specification/{topic}.md`
122
- [Optional: link to specific decision if relevant]
123
- ```
124
-
125
- **Labels**:
126
- - **Required**: `phase-1`, `phase-2`, etc. - denotes which phase the task belongs to
127
- - **Optional**:
128
- - `needs-info` - task requires additional information before implementation
129
- - `edge-case` - for edge case handling tasks
130
- - `foundation` - for setup/infrastructure tasks
131
- - `refactor` - for cleanup tasks
132
-
133
- ### Using `needs-info` Label
134
-
135
- When creating issues, if something is unclear or missing from the specification:
136
-
137
- 1. **Create the issue anyway** - don't block planning
138
- 2. **Apply `needs-info` label** - makes gaps visible
139
- 3. **Note what's missing** in description - be specific about what needs clarifying
140
- 4. **Continue planning** - don't stop and circle back
141
-
142
- This allows iterative refinement. Create all issues, identify gaps, circle back to specification if needed, then update issues with missing detail. Plans don't have to be perfect on first pass.
143
-
144
- ### 4. Create Plan Index File
145
-
146
- Create `docs/workflow/planning/{topic}.md`:
147
-
148
- ```markdown
149
- ---
150
- topic: {topic-name}
151
- status: planning
152
- format: linear
153
- specification: ../specification/{topic}.md
154
- cross_cutting_specs: # Omit if none
155
- - ../specification/{spec}.md
156
- spec_commit: {git-commit-hash}
157
- plan_id: {PROJECT_NAME}
158
- project_id: {ID from MCP response}
159
- team: {TEAM_NAME}
160
- created: YYYY-MM-DD # Use today's actual date
161
- updated: YYYY-MM-DD # Use today's actual date
162
- planning:
163
- phase: 1
164
- task: ~
165
- ---
166
-
167
- # Plan: {Topic Name}
168
-
169
- ## About This Plan
170
-
171
- This plan is managed in Linear. The source of truth for tasks and progress is the Linear project referenced above.
172
-
173
- ## How to Use
174
-
175
- **To view/edit the plan**: Open Linear and navigate to the project.
176
-
177
- **Implementation will**:
178
- 1. Read this file to find the Linear project
179
- 2. Check External Dependencies below
180
- 3. Query Linear for project issues
181
- 4. Work through tasks in phase order (by label)
182
- 5. Update issue status as tasks complete
183
-
184
- **To add tasks**: Create issues in the Linear project. They'll be picked up automatically.
185
-
186
- ## Key Decisions
187
-
188
- [Summary of key decisions from specification - for quick reference]
189
-
190
- ## Cross-Cutting References
191
-
192
- Architectural decisions from cross-cutting specifications that inform this plan:
193
-
194
- | Specification | Key Decisions | Applies To |
195
- |---------------|---------------|------------|
196
- | [Caching Strategy](../../specification/caching-strategy.md) | Cache API responses for 5 min | Tasks involving API calls |
197
- | [Rate Limiting](../../specification/rate-limiting.md) | 100 req/min per user | User-facing endpoints |
198
-
199
- *Remove this section if no cross-cutting specifications apply.*
200
-
201
- ## Phases
202
-
203
- ### Phase 1: {Name}
204
- status: draft
205
- label: phase-1
206
-
207
- **Goal**: {What this phase accomplishes}
208
- **Why this order**: {Why this comes at this position}
209
-
210
- **Acceptance**:
211
- - [ ] Criterion 1
212
- - [ ] Criterion 2
213
-
214
- #### Tasks
215
- | ID | Name | Edge Cases | Status |
216
- |----|------|------------|--------|
217
- | {issue-id} | {Task Name} | {list} | pending |
218
-
219
- ---
220
-
221
- ### Phase 2: {Name}
222
- status: draft
223
- label: phase-2
224
-
225
- ...
226
-
227
- ## External Dependencies
228
-
229
- [Dependencies on other topics - copy from specification's Dependencies section]
230
-
231
- - {topic}: {description}
232
- - {topic}: {description} → {issue-id} (resolved)
233
- ```
234
-
235
- The External Dependencies section tracks what this plan needs from other topics. See `../dependencies.md` for the format and states (unresolved, resolved, satisfied externally).
236
-
237
- ## Frontmatter
238
-
239
- The frontmatter contains all information needed to query Linear and tracks planning progress:
240
-
241
- ```yaml
242
- ---
243
- topic: {topic-name}
244
- status: planning | concluded
245
- format: linear
246
- specification: ../specification/{topic}.md
247
- cross_cutting_specs: # Omit if none
248
- - ../specification/{spec}.md
249
- spec_commit: {git-commit-hash}
250
- plan_id: USER-AUTH-FEATURE
251
- project_id: abc123-def456
252
- team: Engineering
253
- created: YYYY-MM-DD # Use today's actual date
254
- updated: YYYY-MM-DD # Use today's actual date
255
- planning:
256
- phase: 2
257
- task: 3
258
- ---
259
- ```
260
-
261
- ## Issue Content Guidelines
262
-
263
- Issues should be **fully self-contained**. Include all context directly so humans and agents can execute without referencing other files.
264
-
265
- **Include in each issue**:
266
- - Goal and rationale (the "why" from the specification)
267
- - What to implement (specific files/methods)
268
- - Test names (micro acceptance)
269
- - Edge cases for this specific task
270
- - Relevant decisions and constraints
271
- - Any code examples for complex patterns
272
-
273
- **Specification reference**: The specification at `docs/workflow/specification/{topic}.md` remains available for resolving ambiguity or getting additional context, but issues should contain all information needed for execution.
274
-
275
- The goal: anyone (Claude or human) could pick up the issue and execute it without opening another document.
276
-
277
- ## Benefits
278
-
279
- - Visual tracking with real-time progress updates
280
- - Team collaboration with shared visibility
281
- - Update tasks directly in Linear UI without editing markdown
282
- - Integrates with existing Linear workflows
283
-
284
- ## Resulting Structure
285
-
286
- After planning:
287
-
288
- ```
289
- docs/workflow/
290
- ├── discussion/{topic}.md # Discussion output
291
- ├── specification/{topic}.md # Specification output
292
- └── planning/{topic}.md # Planning output (format: linear - pointer)
293
-
294
- Linear:
295
- └── Project: {topic}
296
- ├── Issue: Task 1 [label: phase-1]
297
- ├── Issue: Task 2 [label: phase-1]
298
- └── Issue: Task 3 [label: phase-2]
299
- ```
300
-
301
- ## Implementation
302
-
303
- ### Reading Plans
304
-
305
- 1. Extract `plan_id` (Linear project name) from frontmatter
306
- 2. Query Linear MCP for project issues
307
- 3. Filter issues by phase label (e.g., `phase-1`, `phase-2`)
308
- 4. Process in phase order
309
-
310
- ### Updating Progress
311
-
312
- - Update issue status in Linear via MCP after each task
313
- - User sees real-time progress in Linear UI
314
-
315
- ### Cleanup (Restart)
316
-
317
- The official Linear MCP server does not support deletion. Ask the user to delete the Linear project manually via the Linear UI.
318
-
319
- > "The Linear project **{project name}** needs to be deleted before restarting. Please delete it in the Linear UI (Project Settings → Delete project), then confirm so I can proceed."
320
-
321
- **STOP.** Wait for the user to confirm.
322
-
323
- ### Fallback
324
-
325
- If Linear MCP is unavailable:
326
- - Inform the user
327
- - Cannot proceed without MCP access
328
- - Suggest checking MCP configuration or switching to local markdown
@@ -1,318 +0,0 @@
1
- # Output: Local Markdown
2
-
3
- *Output adapter for **[technical-planning](../../SKILL.md)***
4
-
5
- ---
6
-
7
- Use this format for simple features or when you want everything in a single version-controlled file with detailed task files.
8
-
9
- ## Benefits
10
-
11
- - No external tools or dependencies required
12
- - Plan Index File provides overview; task files provide detail
13
- - Human-readable and easy to edit
14
- - Works offline with any text editor
15
- - Simplest setup - just create markdown files
16
-
17
- ## Setup
18
-
19
- No external tools required. This format uses plain markdown files stored in the repository.
20
-
21
- ## Output Location
22
-
23
- ```
24
- docs/workflow/planning/
25
- ├── {topic}.md # Plan Index File
26
- └── {topic}/
27
- └── {task-id}.md # Task detail files
28
- ```
29
-
30
- The Plan Index File contains phases and task tables. Each authored task gets its own file in the `{topic}/` directory. Task filename = task ID for easy lookup.
31
-
32
- ## Plan Index Template
33
-
34
- Create `{topic}.md` with this structure:
35
-
36
- ```markdown
37
- ---
38
- topic: {feature-name}
39
- status: planning
40
- format: local-markdown
41
- specification: ../specification/{topic}.md
42
- cross_cutting_specs: # Omit if none
43
- - ../specification/{spec}.md
44
- spec_commit: {git-commit-hash}
45
- created: YYYY-MM-DD # Use today's actual date
46
- updated: YYYY-MM-DD # Use today's actual date
47
- planning:
48
- phase: 1
49
- task: ~
50
- ---
51
-
52
- # Plan: {Feature/Project Name}
53
-
54
- ## Overview
55
-
56
- **Goal**: What we're building and why (one sentence)
57
-
58
- **Done when**:
59
- - Measurable outcome 1
60
- - Measurable outcome 2
61
-
62
- **Key Decisions** (from specification):
63
- - Decision 1: Rationale
64
- - Decision 2: Rationale
65
-
66
- ## Cross-Cutting References
67
-
68
- Architectural decisions from cross-cutting specifications that inform this plan:
69
-
70
- | Specification | Key Decisions | Applies To |
71
- |---------------|---------------|------------|
72
- | [Caching Strategy](../../specification/caching-strategy.md) | Cache API responses for 5 min; use Redis | Tasks involving API calls |
73
- | [Rate Limiting](../../specification/rate-limiting.md) | 100 req/min per user; sliding window | User-facing endpoints |
74
-
75
- *Remove this section if no cross-cutting specifications apply.*
76
-
77
- ## Phases
78
-
79
- ### Phase 1: {Name}
80
- status: draft
81
-
82
- **Goal**: What this phase accomplishes
83
- **Why this order**: Why this comes at this position
84
-
85
- **Acceptance**:
86
- - [ ] Criterion 1
87
- - [ ] Criterion 2
88
-
89
- #### Tasks
90
- | ID | Name | Edge Cases | Status |
91
- |----|------|------------|--------|
92
- | {topic}-1-1 | {Task Name} | {list} | pending |
93
- | {topic}-1-2 | {Task Name} | {list} | pending |
94
-
95
- ---
96
-
97
- ### Phase 2: {Name}
98
- status: draft
99
-
100
- **Goal**: What this phase accomplishes
101
- **Why this order**: Why this comes at this position
102
-
103
- **Acceptance**:
104
- - [ ] Criterion 1
105
- - [ ] Criterion 2
106
-
107
- #### Tasks
108
- | ID | Name | Edge Cases | Status |
109
- |----|------|------------|--------|
110
-
111
- (Continue pattern for remaining phases)
112
-
113
- ---
114
-
115
- ## External Dependencies
116
-
117
- [Dependencies on other topics - copy from specification's Dependencies section]
118
-
119
- - {topic}: {description}
120
- - {topic}: {description} → {task-reference} (resolved)
121
- - ~~{topic}: {description}~~ → satisfied externally
122
-
123
- ## Log
124
-
125
- | Date | Change |
126
- |------|--------|
127
- | YYYY-MM-DD *(use today's actual date)* | Created from specification |
128
- ```
129
-
130
- ## Task File Template
131
-
132
- Each authored task is written to `{topic}/{task-id}.md`:
133
-
134
- ```markdown
135
- ---
136
- id: {topic}-{phase}-{seq}
137
- phase: {phase-number}
138
- status: pending
139
- created: YYYY-MM-DD # Use today's actual date
140
- ---
141
-
142
- # {Task Name}
143
-
144
- ## Goal
145
-
146
- {What this task accomplishes and why — include rationale from specification}
147
-
148
- ## Implementation
149
-
150
- {The "Do" — specific files, methods, approach}
151
-
152
- ## Tests
153
-
154
- - `it does expected behavior`
155
- - `it handles edge case`
156
-
157
- ## Edge Cases
158
-
159
- {Specific edge cases for this task}
160
-
161
- ## Acceptance Criteria
162
-
163
- - [ ] Test written and failing
164
- - [ ] Implementation complete
165
- - [ ] Tests passing
166
- - [ ] Committed
167
-
168
- ## Context
169
-
170
- {Relevant decisions and constraints from specification}
171
-
172
- Specification reference: `docs/workflow/specification/{topic}.md` (for ambiguity resolution)
173
- ```
174
-
175
- ## Cross-Topic Dependencies
176
-
177
- Cross-topic dependencies link tasks between different plan files. This is how you express "this feature depends on the billing system being implemented."
178
-
179
- ### In the External Dependencies Section
180
-
181
- Use the format `{topic}: {description} → {task-id}` where task-id points to a specific task:
182
-
183
- ```markdown
184
- ## External Dependencies
185
-
186
- - billing-system: Invoice generation → billing-1-2 (resolved)
187
- - authentication: User context → auth-2-1 (resolved)
188
- - payment-gateway: Payment processing (unresolved - not yet planned)
189
- ```
190
-
191
- ### Task References
192
-
193
- For local markdown plans, reference tasks using the task ID (e.g., `billing-1-2`). The task file is at `{topic}/{task-id}.md`.
194
-
195
- ## Querying Dependencies
196
-
197
- Use these queries to understand the dependency graph for implementation blocking and `/link-dependencies`.
198
-
199
- ### Find Plans With External Dependencies
200
-
201
- ```bash
202
- # Find all plans with external dependencies
203
- grep -l "## External Dependencies" docs/workflow/planning/*.md
204
-
205
- # Find unresolved dependencies (no arrow →)
206
- grep -A 10 "## External Dependencies" docs/workflow/planning/*.md | grep "^- " | grep -v "→"
207
- ```
208
-
209
- ### Find Dependencies on a Specific Topic
210
-
211
- ```bash
212
- # Find plans that depend on billing-system
213
- grep -l "billing-system:" docs/workflow/planning/*.md
214
- ```
215
-
216
- ### Check if a Task Exists
217
-
218
- ```bash
219
- # Check if task file exists
220
- ls docs/workflow/planning/billing-system/billing-1-2.md
221
- ```
222
-
223
- ### Check if a Task is Complete
224
-
225
- Read the task file and check the status in frontmatter:
226
-
227
- ```bash
228
- # Check task status
229
- grep "status:" docs/workflow/planning/billing-system/billing-1-2.md
230
- ```
231
-
232
- ## Frontmatter
233
-
234
- Plan Index Files use YAML frontmatter for metadata:
235
-
236
- ```yaml
237
- ---
238
- topic: {feature-name} # Matches filename (without .md)
239
- status: planning | concluded # Planning status
240
- format: local-markdown # Output format used
241
- specification: ../specification/{topic}.md
242
- cross_cutting_specs: # Omit if none
243
- - ../specification/{spec}.md
244
- spec_commit: {git-commit-hash} # Git commit when planning started
245
- created: YYYY-MM-DD # Use today's actual date
246
- updated: YYYY-MM-DD # Use today's actual date
247
- planning:
248
- phase: 2
249
- task: 3
250
- ---
251
- ```
252
-
253
- The `planning:` block tracks current progress position. It persists after the plan is concluded — `status:` indicates whether the plan is active or concluded.
254
-
255
- ## Flagging Incomplete Tasks
256
-
257
- When information is missing, mark in the task table:
258
-
259
- ```markdown
260
- | ID | Name | Edge Cases | Status |
261
- |----|------|------------|--------|
262
- | auth-1-3 | Configure rate limiting | [needs-info] threshold, per-user vs per-IP | pending |
263
- ```
264
-
265
- And in the task file, add a "Needs Clarification" section:
266
-
267
- ```markdown
268
- ## Needs Clarification
269
-
270
- - What's the rate limit threshold?
271
- - Per-user or per-IP?
272
- ```
273
-
274
- ## Resulting Structure
275
-
276
- After planning:
277
-
278
- ```
279
- docs/workflow/
280
- ├── discussion/{topic}.md # Discussion output
281
- ├── specification/{topic}.md # Specification output
282
- └── planning/
283
- ├── {topic}.md # Plan Index File (format: local-markdown)
284
- └── {topic}/
285
- ├── {topic}-1-1.md # Task detail files
286
- ├── {topic}-1-2.md
287
- └── {topic}-2-1.md
288
- ```
289
-
290
- ## Implementation
291
-
292
- ### Reading Plans
293
-
294
- 1. Read the Plan Index File to get overview and task tables
295
- 2. For each task to implement, read `{topic}/{task-id}.md`
296
- 3. Follow phase order as written in the index
297
- 4. Check task status in the index table
298
-
299
- ### Updating Progress
300
-
301
- - Update task file frontmatter `status: completed` when done
302
- - Update the task table in the Plan Index File
303
- - Check off phase acceptance criteria when all phase tasks complete
304
-
305
- ### Authoring Tasks (During Planning)
306
-
307
- When a task is approved:
308
- 1. Create `{topic}/{task-id}.md` with the task content
309
- 2. Update the task table: set `status: authored`
310
- 3. Update the `planning:` block in frontmatter
311
-
312
- ### Cleanup (Restart)
313
-
314
- Delete the task detail directory for this topic:
315
-
316
- ```bash
317
- rm -rf docs/workflow/planning/{topic}/
318
- ```