@leeovery/claude-technical-workflows 2.0.50 → 2.0.52

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.
@@ -23,7 +23,6 @@ Either way: Execute via strict TDD - tests first, implementation second.
23
23
  - **Plan format** (required) - How to parse tasks (from plan frontmatter)
24
24
  - **Specification content** (optional) - For context when task rationale is unclear
25
25
  - **Environment setup** (optional) - First-time setup instructions
26
- - **Scope** (optional) - Specific phase/task to work on
27
26
 
28
27
  **Before proceeding**, verify all required inputs are available and unambiguous. If anything is missing or unclear, **STOP** — do not proceed until resolved.
29
28
 
@@ -38,6 +37,21 @@ Either way: Execute via strict TDD - tests first, implementation second.
38
37
 
39
38
  If no specification is available, the plan becomes the sole authority for design decisions.
40
39
 
40
+ ---
41
+
42
+ ## Resuming After Context Refresh
43
+
44
+ Context refresh (compaction) summarizes the conversation, losing procedural detail. When you detect a context refresh has occurred — the conversation feels abruptly shorter, you lack memory of recent steps, or a summary precedes this message — follow this recovery protocol:
45
+
46
+ 1. **Re-read this skill file completely.** Do not rely on your summary of it. The full process, steps, and rules must be reloaded.
47
+ 2. **Read all tracking and state files** for the current topic — plan index files, review tracking files, implementation tracking files, or any working documents this skill creates. These are your source of truth for progress.
48
+ 3. **Check git state.** Run `git status` and `git log --oneline -10` to see recent commits. Commit messages follow a conventional pattern that reveals what was completed.
49
+ 4. **Announce your position** to the user before continuing: what step you believe you're at, what's been completed, and what comes next. Wait for confirmation.
50
+
51
+ Do not guess at progress or continue from memory. The files on disk and git history are authoritative — your recollection is not.
52
+
53
+ ---
54
+
41
55
  ## Hard Rules
42
56
 
43
57
  **MANDATORY. No exceptions. Violating these rules invalidates the work.**
@@ -77,19 +91,90 @@ Complete ALL setup steps before proceeding to implementation work.
77
91
 
78
92
  3. **Read the TDD workflow** - Load **[tdd-workflow.md](references/tdd-workflow.md)** before writing any code. This is mandatory.
79
93
 
80
- 4. **Validate scope** (if specific phase or task was requested)
81
- - If the requested phase or task doesn't exist in the plan, STOP immediately
82
- - Ask the user for clarification - don't assume or proceed with a different scope
83
- - Wait for the user to either correct the scope or ask you to stop
94
+ 4. **Initialize or resume implementation tracking**
95
+ - Check if `docs/workflow/implementation/{topic}.md` exists
96
+ - **If not**: Create it with the initial tracking frontmatter (see [Implementation Tracking](#implementation-tracking) below), set `status: in-progress`, `started: {today}`. Commit: `impl({topic}): start implementation`
97
+ - **If exists**: Read it to determine current position (see [Resuming After Context Refresh](#resuming-after-context-refresh) below)
84
98
 
85
- 5. **For each phase**:
99
+ 5. **For each phase** (working through phases and tasks in plan order):
86
100
  - Announce phase start and review acceptance criteria
87
101
  - For each task: follow the TDD cycle loaded in step 3
102
+ - After each task completes: update progress in **both** the output format (as loaded in step 2) **and** the implementation tracking file (see below)
88
103
  - Verify all phase acceptance criteria met
89
104
  - **Ask user before proceeding to next phase**
90
105
 
91
106
  6. **Reference specification** when rationale unclear
92
107
 
108
+ ## Implementation Tracking
109
+
110
+ Each topic has a tracking file at `docs/workflow/implementation/{topic}.md` that records progress programmatically (frontmatter) and as a human-readable summary (body).
111
+
112
+ ### Initial Tracking File
113
+
114
+ When starting implementation for a topic, create:
115
+
116
+ ```yaml
117
+ ---
118
+ topic: {topic}
119
+ plan: ../planning/{topic}.md
120
+ format: {format from plan}
121
+ status: in-progress
122
+ current_phase: 1
123
+ current_task: ~
124
+ completed_phases: []
125
+ completed_tasks: []
126
+ started: YYYY-MM-DD
127
+ updated: YYYY-MM-DD
128
+ completed: ~
129
+ ---
130
+
131
+ # Implementation: {Topic Name}
132
+
133
+ Implementation started.
134
+ ```
135
+
136
+ ### Updating Progress
137
+
138
+ When a task or phase completes, update **two** things:
139
+
140
+ 1. **Output format progress** — Follow the output adapter's Implementation section (loaded in workflow step 2) to mark tasks/phases complete in the plan index file and any format-specific files. This is the plan's own progress tracking.
141
+
142
+ 2. **Implementation tracking file** — Update `docs/workflow/implementation/{topic}.md` as described below. This enables cross-topic dependency resolution and resume detection.
143
+
144
+ **After each task completes (tracking file):**
145
+ - Append the task ID to `completed_tasks`
146
+ - Update `current_task` to the next task (or `~` if phase done)
147
+ - Update `updated` date
148
+ - Update the body progress section
149
+
150
+ **After each phase completes (tracking file):**
151
+ - Append the phase number to `completed_phases`
152
+ - Update `current_phase` to the next phase (or leave as last)
153
+ - Update the body progress section
154
+
155
+ **On implementation completion (tracking file):**
156
+ - Set `status: completed`
157
+ - Set `completed: {today}`
158
+ - Commit: `impl({topic}): complete implementation`
159
+
160
+ Task IDs in `completed_tasks` use whatever ID format the output format assigns -- the same IDs used in dependency references.
161
+
162
+ ### Body Progress Section
163
+
164
+ The body provides a human-readable summary for context refresh:
165
+
166
+ ```markdown
167
+ # Implementation: {Topic Name}
168
+
169
+ ## Phase 1: Foundation
170
+ All tasks completed.
171
+
172
+ ## Phase 2: Core Logic (current)
173
+ - Task 2.1: Service layer - done
174
+ - Task 2.2: Validation - done
175
+ - Task 2.3: Controllers (next)
176
+ ```
177
+
93
178
  ## Progress Announcements
94
179
 
95
180
  Keep user informed of progress:
@@ -22,6 +22,7 @@ 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
+ - **Recommended output format** (optional) - A format suggestion for consistency with existing plans
25
26
  - **Cross-cutting references** (optional) - Cross-cutting specifications that inform technical decisions in this plan
26
27
 
27
28
  **Before proceeding**, verify the required input is available and unambiguous. If anything is missing or unclear, **STOP** — do not proceed until resolved.
@@ -34,6 +35,19 @@ Either way: Transform specifications into actionable phases, tasks, and acceptan
34
35
 
35
36
  ---
36
37
 
38
+ ## Resuming After Context Refresh
39
+
40
+ Context refresh (compaction) summarizes the conversation, losing procedural detail. When you detect a context refresh has occurred — the conversation feels abruptly shorter, you lack memory of recent steps, or a summary precedes this message — follow this recovery protocol:
41
+
42
+ 1. **Re-read this skill file completely.** Do not rely on your summary of it. The full process, steps, and rules must be reloaded.
43
+ 2. **Read all tracking and state files** for the current topic — plan index files, review tracking files, implementation tracking files, or any working documents this skill creates. These are your source of truth for progress.
44
+ 3. **Check git state.** Run `git status` and `git log --oneline -10` to see recent commits. Commit messages follow a conventional pattern that reveals what was completed.
45
+ 4. **Announce your position** to the user before continuing: what step you believe you're at, what's been completed, and what comes next. Wait for confirmation.
46
+
47
+ Do not guess at progress or continue from memory. The files on disk and git history are authoritative — your recollection is not.
48
+
49
+ ---
50
+
37
51
  ## The Process
38
52
 
39
53
  This process constructs a plan from a specification. A plan consists of:
@@ -97,7 +111,21 @@ Read **[output-formats.md](references/output-formats.md)**, find the entry match
97
111
 
98
112
  #### If no Plan Index File exists
99
113
 
100
- First, choose the Output Format. Present the formats from **[output-formats.md](references/output-formats.md)** to the user — including description, pros, cons, and "best for". Number each format and ask the user to pick.
114
+ First, choose the Output Format.
115
+
116
+ **If a recommended output format was provided** (non-empty, not "none"):
117
+
118
+ Present the recommendation:
119
+
120
+ > "Existing plans use **{format}**. Use the same format for consistency?
121
+ > - **yes** — use {format}
122
+ > - **no** — see all available formats"
123
+
124
+ **STOP.** Wait for user choice. If declined, fall through to the full list below.
125
+
126
+ **If no recommendation, or user declined:**
127
+
128
+ Present the formats from **[output-formats.md](references/output-formats.md)** to the user — including description, pros, cons, and "best for". Number each format and ask the user to pick.
101
129
 
102
130
  **STOP.** Wait for the user to choose.
103
131
 
@@ -118,6 +146,7 @@ cross_cutting_specs: # Omit if none
118
146
  spec_commit: {output of git rev-parse HEAD}
119
147
  created: YYYY-MM-DD # Use today's actual date
120
148
  updated: YYYY-MM-DD # Use today's actual date
149
+ external_dependencies: []
121
150
  planning:
122
151
  phase: 1
123
152
  task: ~
@@ -18,22 +18,26 @@ External dependencies are things a feature needs from other topics or systems th
18
18
 
19
19
  ## Format
20
20
 
21
- In Plan Index Files, external dependencies appear in a dedicated section:
22
-
23
- ```markdown
24
- ## External Dependencies
25
-
26
- - billing-system: Invoice generation for order completion
27
- - user-authentication: User context for permissions → {task-id} (resolved)
28
- - ~~payment-gateway: Payment processing~~ → satisfied externally
21
+ In Plan Index Files, external dependencies are stored in the **frontmatter** as a YAML array:
22
+
23
+ ```yaml
24
+ external_dependencies:
25
+ - topic: billing-system
26
+ description: Invoice generation for order completion
27
+ state: unresolved
28
+ - topic: user-authentication
29
+ description: User context for permissions
30
+ state: resolved
31
+ task_id: auth-1-3
32
+ - topic: payment-gateway
33
+ description: Payment processing
34
+ state: satisfied_externally
29
35
  ```
30
36
 
31
- If there are no external dependencies, still include the section:
32
-
33
- ```markdown
34
- ## External Dependencies
37
+ If there are no external dependencies, use an empty array:
35
38
 
36
- No external dependencies.
39
+ ```yaml
40
+ external_dependencies: []
37
41
  ```
38
42
 
39
43
  This makes it explicit for downstream stages that dependencies were considered and none exist.
@@ -42,16 +46,16 @@ This makes it explicit for downstream stages that dependencies were considered a
42
46
 
43
47
  | State | Format | Meaning |
44
48
  |-------|--------|---------|
45
- | Unresolved | `- {topic}: {description}` | Dependency exists but not yet linked to a task |
46
- | Resolved | `- {topic}: {description} {task-id}` | Linked to specific task in another plan |
47
- | Satisfied externally | `- ~~{topic}: {description}~~ → satisfied externally` | Implemented outside workflow |
49
+ | `unresolved` | `state: unresolved` | Dependency exists but not yet linked to a task |
50
+ | `resolved` | `state: resolved` + `task_id: {id}` | Linked to specific task in another plan |
51
+ | `satisfied_externally` | `state: satisfied_externally` | Implemented outside workflow |
48
52
 
49
53
  ## Lifecycle
50
54
 
51
55
  ```
52
56
  SPECIFICATION PLANNING
53
57
  ───────────────────────────────────────────────────────────────────
54
- Dependencies section → Copied to Plan Index File as unresolved
58
+ Dependencies section → Added to plan frontmatter as unresolved
55
59
  (natural language) ↓
56
60
  Resolved when linked to specific task ID
57
61
  (via planning or /link-dependencies)
@@ -59,11 +63,11 @@ Dependencies section → Copied to Plan Index File as unresolved
59
63
 
60
64
  ## Resolution
61
65
 
62
- Dependencies move from unresolved → resolved when:
66
+ Dependencies move from `unresolved``resolved` when:
63
67
  - The dependency topic is planned and you identify the specific task
64
68
  - The `/link-dependencies` command finds and wires the match
65
69
 
66
- Dependencies become "satisfied externally" when:
70
+ Dependencies become `satisfied_externally` when:
67
71
  - The user confirms it was implemented outside the workflow
68
72
  - It already exists in the codebase
69
73
  - It's a third-party system that's already available
@@ -10,29 +10,29 @@ Orient the user:
10
10
 
11
11
  After all phases are detailed and written, handle external dependencies — things this plan needs from other topics or systems.
12
12
 
13
+ Dependencies are stored in the plan's **frontmatter** as `external_dependencies`. See [dependencies.md](../dependencies.md) for the format and states.
14
+
13
15
  #### If the specification has a Dependencies section
14
16
 
15
17
  The specification's Dependencies section lists what this feature needs from outside its own scope. These must be documented in the plan so implementation knows what is blocked and what is available.
16
18
 
17
- 1. **Document each dependency** in the plan's External Dependencies section using the format described in [dependencies.md](../dependencies.md). Initially, record each as unresolved.
19
+ 1. **Document each dependency** in the plan's `external_dependencies` frontmatter field using the format described in [dependencies.md](../dependencies.md). Initially, record each as `state: unresolved`.
18
20
 
19
21
  2. **Resolve where possible** — For each dependency, check whether a plan already exists for that topic:
20
- - If a plan exists, identify the specific task(s) that satisfy the dependency. Query the output format to find relevant tasks. If ambiguous, ask the user which tasks apply. Update the dependency entry from unresolved → resolved with the task reference.
21
- - If no plan exists, leave the dependency as unresolved. It will be linked later via `/link-dependencies` or when that topic is planned.
22
+ - If a plan exists, identify the specific task(s) that satisfy the dependency. Query the output format to find relevant tasks. If ambiguous, ask the user which tasks apply. Update the dependency entry from `state: unresolved``state: resolved` with the `task_id`.
23
+ - If no plan exists, leave the dependency as `state: unresolved`. It will be linked later via `/link-dependencies` or when that topic is planned.
22
24
 
23
- 3. **Reverse check** — Check whether any existing plans have unresolved dependencies that reference *this* topic. Now that this plan exists with specific tasks:
24
- - Scan other plan files for External Dependencies entries that mention this topic
25
+ 3. **Reverse check** — Check whether any existing plans have unresolved dependencies in their `external_dependencies` frontmatter that reference *this* topic. Now that this plan exists with specific tasks:
26
+ - Scan other plan files' `external_dependencies` for entries that mention this topic
25
27
  - For each match, identify which task(s) in the current plan satisfy that dependency
26
- - Update the other plan's dependency entry with the task reference (unresolved resolved)
28
+ - Update the other plan's `external_dependencies` entry with the task reference (`state: resolved`, `task_id`)
27
29
 
28
30
  #### If the specification has no Dependencies section
29
31
 
30
- Document this explicitly in the plan:
31
-
32
- ```markdown
33
- ## External Dependencies
32
+ Set the frontmatter field to an empty array:
34
33
 
35
- No external dependencies.
34
+ ```yaml
35
+ external_dependencies: []
36
36
  ```
37
37
 
38
38
  This makes it clear that dependencies were considered and none exist — not that they were overlooked.
@@ -28,6 +28,21 @@ Either way: Explore feasibility (technical, business, market), validate assumpti
28
28
  - **Topic is vague or could go many directions?**
29
29
  > "You mentioned {topic}. That could cover a lot of ground — is there a specific angle you'd like to start with, or should I explore broadly?"
30
30
 
31
+ ---
32
+
33
+ ## Resuming After Context Refresh
34
+
35
+ Context refresh (compaction) summarizes the conversation, losing procedural detail. When you detect a context refresh has occurred — the conversation feels abruptly shorter, you lack memory of recent steps, or a summary precedes this message — follow this recovery protocol:
36
+
37
+ 1. **Re-read this skill file completely.** Do not rely on your summary of it. The full process, steps, and rules must be reloaded.
38
+ 2. **Read all tracking and state files** for the current topic — plan index files, review tracking files, implementation tracking files, or any working documents this skill creates. These are your source of truth for progress.
39
+ 3. **Check git state.** Run `git status` and `git log --oneline -10` to see recent commits. Commit messages follow a conventional pattern that reveals what was completed.
40
+ 4. **Announce your position** to the user before continuing: what step you believe you're at, what's been completed, and what comes next. Wait for confirmation.
41
+
42
+ Do not guess at progress or continue from memory. The files on disk and git history are authoritative — your recollection is not.
43
+
44
+ ---
45
+
31
46
  ## Your Expertise
32
47
 
33
48
  You bring knowledge across the full landscape:
@@ -41,6 +41,21 @@ Either way: Verify every plan task was implemented, tested adequately, and meets
41
41
 
42
42
  The specification is optional — the review can proceed with just the plan.
43
43
 
44
+ ---
45
+
46
+ ## Resuming After Context Refresh
47
+
48
+ Context refresh (compaction) summarizes the conversation, losing procedural detail. When you detect a context refresh has occurred — the conversation feels abruptly shorter, you lack memory of recent steps, or a summary precedes this message — follow this recovery protocol:
49
+
50
+ 1. **Re-read this skill file completely.** Do not rely on your summary of it. The full process, steps, and rules must be reloaded.
51
+ 2. **Read all tracking and state files** for the current topic — plan index files, review tracking files, implementation tracking files, or any working documents this skill creates. These are your source of truth for progress.
52
+ 3. **Check git state.** Run `git status` and `git log --oneline -10` to see recent commits. Commit messages follow a conventional pattern that reveals what was completed.
53
+ 4. **Announce your position** to the user before continuing: what step you believe you're at, what's been completed, and what comes next. Wait for confirmation.
54
+
55
+ Do not guess at progress or continue from memory. The files on disk and git history are authoritative — your recollection is not.
56
+
57
+ ---
58
+
44
59
  ## Review Approach
45
60
 
46
61
  Start from the **plan** - it contains the granular tasks and acceptance criteria.
@@ -39,6 +39,21 @@ Either way: Transform unvalidated reference material into a specification that's
39
39
 
40
40
  **Multiple sources:** When multiple sources are provided, extract exhaustively from ALL of them. Content may be scattered across sources - a decision in one may have constraints or details in another. The specification consolidates everything into a single standalone document.
41
41
 
42
+ ---
43
+
44
+ ## Resuming After Context Refresh
45
+
46
+ Context refresh (compaction) summarizes the conversation, losing procedural detail. When you detect a context refresh has occurred — the conversation feels abruptly shorter, you lack memory of recent steps, or a summary precedes this message — follow this recovery protocol:
47
+
48
+ 1. **Re-read this skill file completely.** Do not rely on your summary of it. The full process, steps, and rules must be reloaded.
49
+ 2. **Read all tracking and state files** for the current topic — plan index files, review tracking files, implementation tracking files, or any working documents this skill creates. These are your source of truth for progress.
50
+ 3. **Check git state.** Run `git status` and `git log --oneline -10` to see recent commits. Commit messages follow a conventional pattern that reveals what was completed.
51
+ 4. **Announce your position** to the user before continuing: what step you believe you're at, what's been completed, and what comes next. Wait for confirmation.
52
+
53
+ Do not guess at progress or continue from memory. The files on disk and git history are authoritative — your recollection is not.
54
+
55
+ ---
56
+
42
57
  ## The Process
43
58
 
44
59
  **Load**: [specification-guide.md](references/specification-guide.md)
@@ -295,12 +295,6 @@ Ask: **"Is there a standalone thing to build, or does this inform how we build o
295
295
 
296
296
  **Trust nothing without validation**: Synthesize and present, but never assume source material is correct.
297
297
 
298
- ## After Context Refresh
299
-
300
- Read the specification. It contains validated, approved content. Trust it - you built it together with the user.
301
-
302
- If working notes exist, they show where you left off.
303
-
304
298
  ## Dependencies Section
305
299
 
306
300
  At the end of every specification, add a **Dependencies** section that identifies **prerequisites** - systems that must exist before this feature can be built.