@leeovery/claude-technical-workflows 2.0.9 → 2.0.11

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/README.md CHANGED
@@ -5,25 +5,16 @@
5
5
  </p>
6
6
 
7
7
  <p align="center">
8
- <a href="#how-do-i-use-this">How to Use</a> •
8
+ <a href="#what-is-this">What is this?</a> •
9
+ <a href="#how-do-i-use-it">How to Use</a> •
9
10
  <a href="#installation">Installation</a> •
10
- <a href="#the-six-phase-workflow">Workflow</a> •
11
11
  <a href="#skills">Skills</a> •
12
- <a href="#commands">Commands</a> •
13
- <a href="#how-it-works">How It Works</a> •
14
12
  <a href="#contributing">Contributing</a>
15
13
  </p>
16
14
 
17
15
  ---
18
16
 
19
- ## Versions
20
-
21
- | Version | Package Manager | Status | Branch |
22
- |---------|-----------------|------------|------------------------------------------------------------------------|
23
- | 2.x | npm | **Active** | `main` |
24
- | 1.x | Composer | Deprecated | [`v1`](https://github.com/leeovery/claude-technical-workflows/tree/v1) |
25
-
26
- ## About
17
+ ## What is this?
27
18
 
28
19
  A six-phase workflow for Claude Code that captures context, decisions, and rationale before any code is written, then implements and validates the work against those artifacts.
29
20
 
@@ -47,7 +38,22 @@ Review → Validate against spec
47
38
 
48
39
  **Model compatibility:** These skills have been developed and refined for Claude Code running on **Opus 4.5**. Different models may exhibit different edge cases, and future model releases may require adjustments to the prompts and workflows.
49
40
 
50
- ## How do I use this?
41
+ ### Quick Install
42
+
43
+ **Marketplace** (cached globally):
44
+ ```
45
+ /plugin marketplace add leeovery/claude-plugins-marketplace
46
+ /plugin install claude-technical-workflows@claude-plugins-marketplace
47
+ ```
48
+
49
+ **npm** (copied to your repo):
50
+ ```bash
51
+ npm install -D @leeovery/claude-technical-workflows
52
+ ```
53
+
54
+ See [Installation](#installation) for details and trade-offs.
55
+
56
+ ## How do I use it?
51
57
 
52
58
  You have two entry points:
53
59
 
@@ -84,12 +90,10 @@ Run the command directly or ask Claude to run it. Each command gathers the conte
84
90
 
85
91
  ## Installation
86
92
 
87
- Two installation methods are available:
88
-
89
- | Method | Best for | Trade-off |
90
- |--------|----------|-----------|
91
- | **Marketplace** | Local Claude Code | Simple install, skills cached globally |
92
- | **npm** | Claude Code for Web | Skills copied to repo, requires npm |
93
+ | Method | Where files live | Best for |
94
+ |--------|------------------|----------|
95
+ | **Marketplace** | `~/.claude/plugins/` (global cache) | Quick setup, don't need files in repo |
96
+ | **npm** | `.claude/` in your project | Ownership, version control, Claude Code for Web |
93
97
 
94
98
  ### Option 1: Claude Marketplace
95
99
 
@@ -98,15 +102,15 @@ Two installation methods are available:
98
102
  /plugin install claude-technical-workflows@claude-plugins-marketplace
99
103
  ```
100
104
 
101
- > **Note:** Marketplace plugins are cached globally (`~/.claude/plugins/`) and won't be available in Claude Code for Web since files aren't in your repository.
105
+ Skills are cached globally. They won't be available in Claude Code for Web since files aren't in your repository.
102
106
 
103
- ### Option 2: npm (Recommended for Web)
107
+ ### Option 2: npm
104
108
 
105
109
  ```bash
106
110
  npm install -D @leeovery/claude-technical-workflows
107
111
  ```
108
112
 
109
- Skills are copied to `.claude/` in your project and can be committed to your repository—making them available in Claude Code for Web.
113
+ Skills are copied to `.claude/` and can be committed—giving you ownership and making them available everywhere including Claude Code for Web.
110
114
 
111
115
  <details>
112
116
  <summary>pnpm users</summary>
@@ -1,36 +1,218 @@
1
1
  ---
2
- description: Start a technical discussion using the technical-discussion skill. Gathers information about the topic and creates discussion documentation in docs/workflow/discussion/
2
+ description: Start a technical discussion. Discovers research and existing discussions, offers multiple entry paths, and invokes the technical-discussion skill.
3
3
  ---
4
4
 
5
5
  Invoke the **technical-discussion** skill for this conversation.
6
6
 
7
- Before beginning, ask the user these questions to properly set up the discussion:
7
+ ## Instructions
8
8
 
9
- ## Essential Information
9
+ Follow these steps EXACTLY as written. Do not skip steps or combine them. Present output using the EXACT format shown in examples - do not simplify or alter the formatting.
10
10
 
11
- 1. **Discussion Topic**: What are we discussing? (This will be used as the filename in `docs/workflow/discussion/{topic}.md`)
11
+ Before beginning, discover existing work and determine the best entry path.
12
12
 
13
- 2. **Context & Background**:
14
- - What sparked this discussion?
15
- - What problem are we trying to solve?
16
- - Why are we discussing this now?
13
+ ## Important
17
14
 
18
- 3. **Foundational Knowledge**:
19
- - Is there any background information I need to understand before we begin?
20
- - Are there specific concepts, technologies, or architectures I should know about?
21
- - Any constraints, requirements, or limitations I should be aware of?
15
+ Use simple, individual commands. Never combine multiple operations into bash loops or one-liners. Execute commands one at a time.
22
16
 
23
- 4. **Codebase Review**:
24
- - Are there specific files in this repository I should read first?
25
- - Should I explore any particular directories or components?
26
- - Is there existing code related to this discussion?
17
+ ## Step 1: Discover Existing Work
27
18
 
28
- ## After Gathering Information
19
+ Scan the codebase for research and discussions:
29
20
 
30
- Once I have this information:
21
+ 1. **Find research**: Look in `docs/workflow/research/`
22
+ - Run `ls docs/workflow/research/` to list research files
23
+ - Note which files exist (may include `exploration.md` and semantic files like `market-landscape.md`)
24
+
25
+ 2. **Find discussions**: Look in `docs/workflow/discussion/`
26
+ - Run `ls docs/workflow/discussion/` to list discussion files
27
+ - Each file is named `{topic}.md`
28
+
29
+ 3. **Check discussion status**: For each discussion file
30
+ - Run `head -10 docs/workflow/discussion/{topic}.md` to extract the `Status:` field
31
+ - Status values: `Exploring`, `Deciding`, or `Concluded`
32
+ - Do NOT use bash loops - run separate commands for each file
33
+
34
+ ## Step 2: Present Workflow State and Options
35
+
36
+ Present the workflow state and available options based on what was discovered.
37
+
38
+ **Format:**
39
+ ```
40
+ 📂 Workflow state:
41
+ 📚 Research: {count} files found / None found
42
+ 💬 Discussions: {count} existing / None yet
43
+ ```
44
+
45
+ Then present the appropriate options:
46
+
47
+ **If research AND discussions exist:**
48
+ ```
49
+ How would you like to proceed?
50
+
51
+ 1. **From research** - Analyze research and suggest undiscussed topics
52
+ 2. **Continue discussion** - Resume an existing discussion
53
+ 3. **Fresh topic** - Start a new discussion
54
+ ```
55
+
56
+ **If ONLY research exists:**
57
+ ```
58
+ How would you like to proceed?
59
+
60
+ 1. **From research** - Analyze research and suggest topics to discuss
61
+ 2. **Fresh topic** - Start a new discussion
62
+ ```
63
+
64
+ **If ONLY discussions exist:**
65
+ ```
66
+ How would you like to proceed?
67
+
68
+ 1. **Continue discussion** - Resume an existing discussion
69
+ 2. **Fresh topic** - Start a new discussion
70
+ ```
71
+
72
+ **If NOTHING exists:**
73
+ ```
74
+ Starting fresh - no prior research or discussions found.
75
+
76
+ What topic would you like to discuss?
77
+ ```
78
+ Then skip to Step 5 (Fresh topic path).
79
+
80
+ Wait for the user to choose before proceeding.
81
+
82
+ ## Step 3A: "From research" Path
83
+
84
+ Read each research file and analyze the content to extract key themes and potential discussion topics. For each theme:
85
+ - Note the source file and relevant line numbers
86
+ - Summarize what the theme is about in 1-2 sentences
87
+
88
+ Cross-reference with existing discussions to identify what has and hasn't been discussed.
89
+
90
+ **Present findings:**
91
+ ```
92
+ 🔍 Analyzing research documents...
93
+
94
+ 💡 Topics identified:
95
+
96
+ ✨ {Theme name}
97
+ Source: {filename}.md (lines {start}-{end})
98
+ "{Brief 1-2 sentence summary of the theme and what needs deciding}"
99
+
100
+ ✨ {Another theme}
101
+ Source: {filename}.md (lines {start}-{end})
102
+ "{Brief summary}"
103
+
104
+ ✅ {Already discussed theme} → discussed in {topic}.md
105
+ Source: {filename}.md (lines {start}-{end})
106
+ "{Brief summary}"
107
+
108
+ Which topic would you like to discuss? (Or describe something else)
109
+ ```
110
+
111
+ **Key:**
112
+ - ✨ = Undiscussed topic (potential new discussion)
113
+ - ✅ = Already has a corresponding discussion
114
+
115
+ **Important:** Keep track of the source file and line numbers for the chosen topic - this will be passed to the skill.
116
+
117
+ Wait for the user to choose before proceeding to Step 4.
118
+
119
+ ## Step 3B: "Continue discussion" Path
120
+
121
+ List existing discussions with their status:
122
+
123
+ ```
124
+ 💬 Existing discussions:
125
+
126
+ ⚡ {topic}.md — {Status}
127
+ "{Brief description from context section}"
128
+
129
+ ⚡ {topic}.md — {Status}
130
+ "{Brief description}"
131
+
132
+ ✅ {topic}.md — Concluded
133
+ "{Brief description}"
134
+
135
+ Which discussion would you like to continue?
136
+ ```
137
+
138
+ **Key:**
139
+ - ⚡ = In progress (Exploring or Deciding)
140
+ - ✅ = Concluded (can still be continued/reopened)
141
+
142
+ Wait for the user to choose, then proceed to Step 4.
143
+
144
+ ## Step 3C: "Fresh topic" Path
145
+
146
+ Proceed directly to Step 4.
147
+
148
+ ## Step 4: Gather Context
149
+
150
+ Gather context based on the chosen path.
151
+
152
+ **If starting new discussion (from research or fresh):**
153
+
154
+ ```
155
+ ## New discussion: {topic}
156
+
157
+ Before we begin:
158
+
159
+ 1. What's the core problem or decision we need to work through?
160
+
161
+ 2. Any constraints or context I should know about?
162
+
163
+ 3. Are there specific files in the codebase I should review first?
164
+ ```
165
+
166
+ Wait for responses before proceeding.
167
+
168
+ **If continuing existing discussion:**
169
+
170
+ Read the existing discussion document first, then ask:
171
+
172
+ ```
173
+ ## Continuing: {topic}
174
+
175
+ I've read the existing discussion.
176
+
177
+ What would you like to focus on in this session?
178
+ ```
179
+
180
+ Wait for response before proceeding.
181
+
182
+ ## Step 5: Invoke Discussion Skill
183
+
184
+ Begin the discussion session with appropriate context based on the path taken.
185
+
186
+ **If from research:**
187
+ ```
188
+ Discussion session for: {topic}
189
+ Output: docs/workflow/discussion/{topic}.md
190
+
191
+ ## Research Reference
192
+ Source: docs/workflow/research/{filename}.md (lines {start}-{end})
193
+ Summary: {the 1-2 sentence summary from Step 3A}
194
+
195
+ Begin discussion using the technical-discussion skill.
196
+ ```
197
+
198
+ **If continuing or fresh:**
199
+ ```
200
+ Discussion session for: {topic}
201
+ Source: {existing discussion | fresh}
202
+ Output: docs/workflow/discussion/{topic}.md
203
+
204
+ Begin discussion using the technical-discussion skill.
205
+ ```
206
+
207
+ **Setup:**
31
208
  - Ensure discussion directory exists: `docs/workflow/discussion/`
32
- - Start documenting the discussion following the technical-discussion skill structure
33
- - Create file: `docs/workflow/discussion/{topic}.md`
209
+ - If new: Create file using the template structure
210
+ - If continuing: Work with existing file
34
211
  - Commit frequently at natural discussion breaks
35
212
 
36
- Ask these questions clearly and wait for responses before proceeding with the discussion.
213
+ ## Notes
214
+
215
+ - Ask questions clearly and wait for responses before proceeding
216
+ - Discussion captures WHAT and WHY - don't jump to specifications or implementation
217
+ - The goal is to work through edge cases, debates, and decisions before planning
218
+ - Commit the discussion document frequently during the session
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leeovery/claude-technical-workflows",
3
- "version": "2.0.9",
3
+ "version": "2.0.11",
4
4
  "description": "Technical workflow skills & commands for Claude Code",
5
5
  "license": "MIT",
6
6
  "author": "Lee Overy <me@leeovery.com>",
@@ -22,12 +22,18 @@ You're at step 5. Execute the plan. Don't re-debate decisions.
22
22
 
23
23
  ## Hard Rules
24
24
 
25
+ **MANDATORY. No exceptions. Violating these rules invalidates the work.**
26
+
25
27
  1. **No code before tests** - Write the failing test first. Always.
26
- 2. **No test changes to pass** - If code doesn't pass, fix the code. Tests can only be fixed if genuinely broken or poorly designed, never to accommodate broken code.
28
+ 2. **No test changes to pass** - Fix the code, not the test.
27
29
  3. **No scope expansion** - If it's not in the plan, don't build it.
28
30
  4. **No assumptions** - Uncertain? Check specification. Still uncertain? Stop and ask.
29
31
  5. **Commit after green** - Every passing test = commit point.
30
32
 
33
+ **Pragmatic TDD**: The discipline is test-first sequencing, not artificial minimalism. Write complete, functional implementations - don't fake it with hardcoded returns. "Minimal" means no gold-plating beyond what the test requires.
34
+
35
+ See **[tdd-workflow.md](references/tdd-workflow.md)** for the full TDD cycle, violation recovery, and guidance on when tests can change.
36
+
31
37
  ## Workflow
32
38
 
33
39
  ### IMPORTANT: Setup Instructions
@@ -50,24 +56,20 @@ Complete ALL setup steps before proceeding to implementation work.
50
56
  - Load the output adapter: `skills/technical-planning/references/output-{format}.md`
51
57
  - Follow the **Implementation** section for how to read tasks and update progress
52
58
 
53
- 3. **Validate scope** (if specific phase or task was requested)
59
+ 3. **Read the TDD workflow** - Load **[tdd-workflow.md](references/tdd-workflow.md)** before writing any code. This is mandatory.
60
+
61
+ 4. **Validate scope** (if specific phase or task was requested)
54
62
  - If the requested phase or task doesn't exist in the plan, STOP immediately
55
63
  - Ask the user for clarification - don't assume or proceed with a different scope
56
64
  - Wait for the user to either correct the scope or ask you to stop
57
65
 
58
- 4. **For each phase**:
59
- - Announce phase start
60
- - Review phase acceptance criteria
61
- - For each task:
62
- - Derive test from task's micro acceptance criteria
63
- - Write failing test
64
- - Implement minimal code to pass
65
- - Refactor if needed (only when green)
66
- - Commit
66
+ 5. **For each phase**:
67
+ - Announce phase start and review acceptance criteria
68
+ - For each task: follow the TDD cycle loaded in step 3
67
69
  - Verify all phase acceptance criteria met
68
70
  - **Ask user before proceeding to next phase**
69
71
 
70
- 5. **Reference specification** when rationale unclear
72
+ 6. **Reference specification** when rationale unclear
71
73
 
72
74
  ## Progress Announcements
73
75
 
@@ -62,7 +62,7 @@ Each output adapter contains prerequisites and installation instructions for tha
62
62
 
63
63
  ## Example Setup Document
64
64
 
65
- ```markdown
65
+ ````markdown
66
66
  # Environment Setup
67
67
 
68
68
  Instructions for setting up the implementation environment.
@@ -100,4 +100,4 @@ Run tests to verify setup:
100
100
  ```bash
101
101
  php artisan test
102
102
  ```
103
- ```
103
+ ````
@@ -21,7 +21,7 @@ Plans live in `docs/workflow/planning/{topic}.md` with phases and tasks.
21
21
 
22
22
  For each phase:
23
23
  1. Announce phase start with acceptance criteria
24
- 2. For each task: derive test write failing test → implement → commit
24
+ 2. For each task: follow the TDD cycle in **[tdd-workflow.md](tdd-workflow.md)**
25
25
  3. Verify all acceptance criteria met
26
26
  4. **Wait for user confirmation before next phase**
27
27
 
@@ -8,56 +8,76 @@
8
8
 
9
9
  RED → GREEN → REFACTOR → COMMIT
10
10
 
11
- Repeat for each task.
11
+ Repeat for each task. **Never skip steps. Never reorder.**
12
+
13
+ ### Pragmatic TDD
14
+
15
+ This is pragmatic TDD, not purist. The mandatory discipline is **test-first sequencing**:
16
+ - You MUST write a failing test before implementation
17
+ - You MUST see it fail for the right reason
18
+ - You MUST NOT change tests to make broken code pass
19
+
20
+ But write **complete, functional implementations** - don't artificially minimize with hardcoded returns or fake values that you'll "fix later". "Minimal" means no gold-plating beyond what the test requires, not "return 42 and triangulate".
21
+
22
+ ## TDD Violation Recovery
23
+
24
+ **If you catch yourself violating TDD, stop immediately and recover:**
25
+
26
+ | Violation | Recovery |
27
+ |-----------|----------|
28
+ | Wrote code before test | DELETE the code. Write the failing test. Then rewrite the code. |
29
+ | Multiple failing tests | Comment out all but one. Fix that one. Uncomment next. |
30
+ | Test passes immediately | Suspicious. Verify the test actually exercises your code. Check for false positives. |
31
+ | Changed test to make code pass | REVERT the test change. Fix the implementation instead. |
32
+ | "While I'm here" improvement | STOP. Is it in the plan? No? Don't do it. |
33
+
34
+ **These are not suggestions. Skipping recovery corrupts the entire TDD discipline.**
12
35
 
13
36
  ## RED: Write Failing Test
14
37
 
15
38
  1. Read task's micro acceptance criteria
16
39
  2. Write test asserting that behavior
17
- 3. Run test - must fail
18
- 4. Verify it fails for the right reason
40
+ 3. Run test - **MUST fail**
41
+ 4. Verify it fails for the **right reason** (not syntax error, not missing import)
19
42
 
20
43
  **Derive tests from plan**: Task's micro acceptance becomes your first test. Edge cases become additional tests.
21
44
 
22
45
  **Write test names first**: List all test names before writing bodies. Confirm coverage matches acceptance criteria.
23
46
 
24
- ## GREEN: Minimal Implementation
47
+ **No implementation code exists yet.** If you're tempted to "just sketch out the class first" - don't. The test comes first. Always.
25
48
 
26
- Write the simplest code that passes:
27
- - No extra features
49
+ ## GREEN: Implementation
50
+
51
+ Write complete, functional code that passes:
52
+ - No extra features beyond what the test requires
28
53
  - No "while I'm here" improvements
29
54
  - No edge cases not yet tested
30
55
 
31
- If you think "I should also handle X" - stop. Write a test for X first.
56
+ If you think "I should also handle X" - STOP. Write a test for X first.
32
57
 
33
- **One test at a time**: Write → Pass → Commit → Next
58
+ **One test at a time**: Write test Run (fails) Implement → Run (passes) → Commit → Next
34
59
 
35
60
  ## REFACTOR: Only When Green
36
61
 
37
62
  **Do**: Remove duplication, improve naming, extract methods
38
63
  **Don't**: Touch code outside current task, optimize prematurely
39
64
 
40
- Run tests after. If they fail, undo.
65
+ Run tests after. If they fail, undo the refactor.
41
66
 
42
67
  ## COMMIT: After Every Green
43
68
 
44
- Commit with descriptive message referencing the task.
69
+ Commit with descriptive message referencing the task. This is non-negotiable - it creates recovery points.
45
70
 
46
71
  ## When Tests CAN Change
47
72
 
48
- - Genuine bug in test
49
- - Tests implementation not behavior
73
+ - Genuine bug in test logic
74
+ - Test asserts implementation details, not behavior
50
75
  - Missing setup/fixtures
51
76
 
52
77
  ## When Tests CANNOT Change
53
78
 
54
- - To make broken code pass (fix the code)
55
- - To avoid difficult work (the test is the requirement)
56
- - To skip temporarily (fix or escalate)
57
-
58
- ## Red Flags
79
+ - To make broken code pass → **fix the code**
80
+ - To avoid difficult implementation → **the test IS the requirement**
81
+ - To skip temporarily → **fix it now or escalate**
59
82
 
60
- - Wrote code before test delete code, write test first
61
- - Multiple failing tests → work on one at a time
62
- - Test passes immediately → investigate
63
- - Changing tests frequently → design unclear, review plan
83
+ Changing a test to pass is admitting the implementation is wrong and hiding it. Don't.