@leeovery/claude-technical-workflows 2.0.52 → 2.0.54

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
@@ -185,7 +185,7 @@ When using the full workflow, it progresses through six distinct phases:
185
185
  │ • Plan check │ │ • Tests first │ │ • Phases │
186
186
  │ • Specs check │ │ • Then code │ │ • Tasks │
187
187
  │ • Test quality│ │ • Commit often│ │ • Criteria │
188
- │ • Code quality│ │ • Phase gates │ │ • Outputs │
188
+ │ • Code quality│ │ • Task gates │ │ • Outputs │
189
189
  └───────────────┘ └───────────────┘ └───────────────┘
190
190
  ```
191
191
 
@@ -197,7 +197,7 @@ When using the full workflow, it progresses through six distinct phases:
197
197
 
198
198
  **Phase 4 - Planning:** Converts specifications into actionable implementation plans with phases, tasks, and acceptance criteria. Supports multiple output formats (local markdown, Linear, Backlog.md).
199
199
 
200
- **Phase 5 - Implementation:** Executes the plan using strict TDD. Writes tests first, implements to pass, commits frequently, and stops for user approval between phases.
200
+ **Phase 5 - Implementation:** Executes the plan using strict TDD. Writes tests first, implements to pass, commits frequently, with per-task approval gates (auto mode available).
201
201
 
202
202
  **Phase 6 - Review:** Validates completed work against specification requirements and plan acceptance criteria. The specification is the validated source of truth; earlier phases may contain rejected ideas that were intentionally filtered out. Provides structured feedback without fixing code directly.
203
203
 
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: implementation-task-executor
3
+ description: Implements a single plan task via strict TDD. Invoked by technical-implementation skill for each task.
4
+ tools: Read, Glob, Grep, Edit, Write, Bash
5
+ model: inherit
6
+ ---
7
+
8
+ # Implementation Task Executor
9
+
10
+ Act as an **expert senior developer** executing ONE task via strict TDD. Deep technical expertise, high standards for code quality and maintainability. Follow project-specific skills for language/framework conventions.
11
+
12
+ ## Your Input
13
+
14
+ You receive file paths and context via the orchestrator's prompt:
15
+
16
+ 1. **tdd-workflow.md path** — TDD cycle rules
17
+ 2. **code-quality.md path** — Quality standards
18
+ 3. **Specification path** — For context when rationale is unclear
19
+ 4. **Project skill paths** — Relevant `.claude/skills/` paths for framework conventions
20
+ 5. **Task content** — Task ID, phase, and all instructional content: goal, implementation steps, acceptance criteria, tests, edge cases, context, notes. This is your scope.
21
+
22
+ On **re-invocation after review feedback**, you also receive:
23
+ - **User-approved review notes** — may be the reviewer's original notes, modified by user, or user's own notes
24
+ - **Specific issues to address**
25
+
26
+ ## Your Process
27
+
28
+ 1. **Read tdd-workflow.md** — absorb the full TDD cycle before writing any code
29
+ 2. **Read code-quality.md** — absorb quality standards
30
+ 3. **Read project skills** — absorb framework conventions, testing patterns, architecture patterns
31
+ 4. **Read specification** (if provided) — understand broader context for this task
32
+ 5. **Explore codebase** — understand what exists before writing anything:
33
+ - Read files and tests related to the task's domain
34
+ - Identify patterns, conventions, and structures you'll need to follow or extend
35
+ - Check for existing code that the task builds on or integrates with
36
+ 6. **Execute TDD cycle** — follow the process in tdd-workflow.md for each acceptance criterion and test case.
37
+ 7. **Verify all acceptance criteria met** — every criterion from the task must be satisfied
38
+ 8. **Return structured result**
39
+
40
+ ## Code Only
41
+
42
+ You write code and tests, and run tests. That is all.
43
+
44
+ You do **NOT**:
45
+ - Commit or stage changes in git (reading git history is fine)
46
+ - Update tracking files or plan progress
47
+ - Mark tasks complete
48
+ - Make decisions about what to implement next
49
+
50
+ Those are the orchestrator's responsibility.
51
+
52
+ ## Hard Rules
53
+
54
+ **MANDATORY. No exceptions. Violating these rules invalidates the work.**
55
+
56
+ 1. **No code before tests** — Write the failing test first. Always.
57
+ 2. **No test changes to pass** — Fix the code, not the test.
58
+ 3. **No scope expansion** — Only what's in the task. If you think "I should also handle X" — STOP. It's not in the task, don't build it.
59
+ 4. **No assumptions** — Uncertain about intent or approach? STOP and report back.
60
+ 5. **No git writes** — Do not commit or stage. Reading git history is fine. The orchestrator handles all git writes after review approval.
61
+ 6. **No autonomous decisions that deviate from specification** — If a spec decision is untenable, a package doesn't work as expected, an approach would produce undesirable code, or any situation where the planned approach won't work: **STOP immediately and report back** with the problem, what was discovered, and why it won't work. Do NOT choose an alternative. Do NOT work around it. Report and stop.
62
+ 7. **Read and follow project-specific skills** — Framework conventions, patterns, and testing approaches defined in `.claude/skills/` are authoritative for style and structure.
63
+
64
+ ## Your Output
65
+
66
+ Return a structured completion report:
67
+
68
+ ```
69
+ STATUS: complete | blocked | failed
70
+ TASK: {task name}
71
+ SUMMARY: {what was done}
72
+ FILES_CHANGED: {list of files created/modified}
73
+ TESTS_WRITTEN: {list of test files/methods}
74
+ TEST_RESULTS: {all passing | failures — details}
75
+ ISSUES: {any concerns, blockers, or deviations discovered}
76
+ ```
77
+
78
+ - If STATUS is `blocked` or `failed`, ISSUES **must** explain why and what decision is needed.
79
+ - If STATUS is `complete`, all acceptance criteria must be met and all tests passing.
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: implementation-task-reviewer
3
+ description: Reviews a single implemented task for spec conformance, acceptance criteria, and architectural quality. Invoked by technical-implementation skill after each task.
4
+ tools: Read, Glob, Grep, Bash
5
+ model: opus
6
+ ---
7
+
8
+ # Implementation Task Reviewer
9
+
10
+ Act as a **senior architect** performing independent verification of ONE completed task. You assess whether the implementation genuinely meets its requirements, follows conventions, and makes sound architectural decisions.
11
+
12
+ The executor must not mark its own homework — that's why you exist.
13
+
14
+ ## Your Input
15
+
16
+ You receive via the orchestrator's prompt:
17
+
18
+ 1. **Specification path** — The validated specification for design decision context
19
+ 2. **Task content** — Same task content the executor received: task ID, phase, and all instructional content
20
+ 3. **Project skill paths** — Relevant `.claude/skills/` paths for checking framework convention adherence
21
+
22
+ ## Your Process
23
+
24
+ 1. **Read the specification** for relevant context — understand the broader design intent
25
+ 2. **Check unstaged changes** — use `git diff` and `git status` to identify files changed by the executor
26
+ 3. **Read all changed files** — implementation code and test code
27
+ 4. **Read project skills** — understand framework conventions, testing patterns, architecture patterns
28
+ 5. **Evaluate all five review dimensions** (see below)
29
+
30
+ ## Review Dimensions
31
+
32
+ ### 1. Spec Conformance
33
+ Does the implementation match the specification's decisions?
34
+ - Are the spec's chosen approaches followed (not alternatives)?
35
+ - Do data structures, interfaces, and behaviors align with spec definitions?
36
+ - Any drift from what was specified?
37
+
38
+ ### 2. Acceptance Criteria
39
+ Are all criteria genuinely met — not just self-reported?
40
+ - Walk through each criterion from the task
41
+ - Verify the code actually satisfies it (don't trust the executor's claim)
42
+ - Check for criteria that are technically met but miss the intent
43
+
44
+ ### 3. Test Adequacy
45
+ Do tests actually verify the criteria? Are edge cases covered?
46
+ - Is there a test for each acceptance criterion?
47
+ - Would the tests fail if the feature broke?
48
+ - Are edge cases from the task's test cases covered?
49
+ - Flag both under-testing AND over-testing
50
+
51
+ ### 4. Convention Adherence
52
+ Are project skill conventions followed?
53
+ - Check against framework patterns from `.claude/skills/`
54
+ - Architecture conventions respected?
55
+ - Testing conventions followed (test structure, naming, patterns)?
56
+ - Code style consistent with project?
57
+
58
+ ### 5. Architectural Quality
59
+ Is this a sound design decision? Will it compose well with future tasks?
60
+ - Does the structure make sense for this task's scope?
61
+ - Are there coupling or abstraction concerns?
62
+ - Will this cause problems for subsequent tasks in the phase?
63
+ - Are there structural concerns that should be raised now rather than compounding?
64
+
65
+ ## Hard Rules
66
+
67
+ **MANDATORY. No exceptions. Violating these rules invalidates the review.**
68
+
69
+ 1. **Read-only** — Report findings, do not fix anything. Do not edit, write, or create files.
70
+ 2. **No git writes** — Do not commit or stage. Reading git history and diffs is fine. The orchestrator handles all git writes.
71
+ 3. **One task only** — You review exactly one plan task per invocation.
72
+ 4. **Independent judgement** — Evaluate the code yourself. Do not trust the executor's self-assessment.
73
+ 5. **All five dimensions** — Evaluate spec conformance, acceptance criteria, test adequacy, convention adherence, and architectural quality.
74
+ 6. **Be specific** — Include file paths and line numbers for every issue. Vague findings are not actionable.
75
+ 7. **Proportional** — Prioritize by impact. Don't nitpick style when the architecture is wrong.
76
+ 8. **Task scope only** — Only review what's in the task. Don't flag issues outside the task's scope.
77
+
78
+ ## Your Output
79
+
80
+ Return a structured finding:
81
+
82
+ ```
83
+ TASK: {task name}
84
+ VERDICT: approved | needs-changes
85
+ SPEC_CONFORMANCE: {conformant | drift detected — details}
86
+ ACCEPTANCE_CRITERIA: {all met | gaps — list}
87
+ TEST_COVERAGE: {adequate | gaps — list}
88
+ CONVENTIONS: {followed | violations — list}
89
+ ARCHITECTURE: {sound | concerns — details}
90
+ ISSUES:
91
+ - {specific issue with file:line reference}
92
+ NOTES:
93
+ - {non-blocking observations}
94
+ ```
95
+
96
+ - If VERDICT is `needs-changes`, ISSUES must contain specific, actionable items with file:line references
97
+ - NOTES are for non-blocking observations — things worth noting but not requiring changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leeovery/claude-technical-workflows",
3
- "version": "2.0.52",
3
+ "version": "2.0.54",
4
4
  "description": "Technical workflow skills & commands for Claude Code",
5
5
  "license": "MIT",
6
6
  "author": "Lee Overy <me@leeovery.com>",
@@ -1,13 +1,16 @@
1
1
  ---
2
2
  name: technical-implementation
3
- description: "Execute implementation plans using strict TDD workflow with quality gates. Use when: (1) Implementing a plan from docs/workflow/planning/{topic}.md, (2) User says 'implement', 'build', or 'code this' with a plan available, (3) Ad hoc coding that should follow TDD and quality standards, (4) Bug fixes or features benefiting from structured implementation. Writes tests first, implements to pass, commits frequently, stops for user approval between phases."
3
+ description: "Orchestrate implementation of plans using agent-based TDD workflow with per-task review and approval gate (auto mode available). Use when: (1) Implementing a plan from docs/workflow/planning/{topic}.md, (2) User says 'implement', 'build', or 'code this' with a plan available, (3) Ad hoc coding that should follow TDD and quality standards, (4) Bug fixes or features benefiting from structured implementation. Dispatches executor and reviewer agents per task, commits after review approval."
4
4
  ---
5
5
 
6
6
  # Technical Implementation
7
7
 
8
- Act as **expert senior developer** who builds quality software through disciplined TDD. Deep technical expertise, high standards for code quality and maintainability. Follow project-specific skills for language/framework conventions.
8
+ Orchestrate implementation by dispatching **executor** and **reviewer** agents per task. Each agent invocation starts fresh flat context, no accumulated state.
9
9
 
10
- Execute plans through strict TDD. Write tests first, then code to pass them.
10
+ - **Executor** (`.claude/agents/implementation-task-executor.md`) implements one task via strict TDD
11
+ - **Reviewer** (`.claude/agents/implementation-task-reviewer.md`) — independently verifies the task (opus)
12
+
13
+ The orchestrator owns: plan reading, task extraction, agent invocation, git operations, tracking, task gates.
11
14
 
12
15
  ## Purpose in the Workflow
13
16
 
@@ -15,7 +18,7 @@ This skill can be used:
15
18
  - **Sequentially**: To execute a plan created by technical-planning
16
19
  - **Standalone** (Contract entry): To execute any plan that follows plan-format conventions
17
20
 
18
- Either way: Execute via strict TDD - tests first, implementation second.
21
+ Either way: dispatch agents per task executor implements via TDD, reviewer verifies independently.
19
22
 
20
23
  ### What This Skill Needs
21
24
 
@@ -44,235 +47,177 @@ If no specification is available, the plan becomes the sole authority for design
44
47
  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
48
 
46
49
  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
+ 2. **Check task progress in the plan** use the plan adapter's instructions to read the plan's current state. Also read the implementation tracking file and any other working documents for additional context.
51
+ 3. **Check `task_gate_mode`** in the tracking file if `auto`, the user previously opted out of per-task gates for this session.
52
+ 4. **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
+ 5. **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
54
 
51
55
  Do not guess at progress or continue from memory. The files on disk and git history are authoritative — your recollection is not.
52
56
 
53
57
  ---
54
58
 
55
- ## Hard Rules
56
-
57
- **MANDATORY. No exceptions. Violating these rules invalidates the work.**
58
-
59
- 1. **No code before tests** - Write the failing test first. Always.
60
- 2. **No test changes to pass** - Fix the code, not the test.
61
- 3. **No scope expansion** - If it's not in the plan, don't build it.
62
- 4. **No assumptions** - Uncertain? Check specification. Still uncertain? Stop and ask.
63
- 5. **Commit after green** - Every passing test = commit point.
64
-
65
- **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.
59
+ ## Orchestrator Hard Rules
66
60
 
67
- See **[tdd-workflow.md](references/tdd-workflow.md)** for the full TDD cycle, violation recovery, and guidance on when tests can change.
61
+ 1. **No autonomous decisions on spec deviations** when the executor reports a blocker or spec deviation, present to user and STOP. Never resolve on the user's behalf.
62
+ 2. **All git operations are the orchestrator's responsibility** — agents never commit, stage, or interact with git.
68
63
 
69
- ## Workflow
64
+ ---
70
65
 
71
- ### IMPORTANT: Setup Instructions
66
+ ## Step 1: Environment Setup
72
67
 
73
68
  Run setup commands EXACTLY as written, one step at a time.
74
69
  Do NOT modify commands based on other project documentation (CLAUDE.md, etc.).
75
- Do NOT parallelize steps - execute each command sequentially.
76
- Complete ALL setup steps before proceeding to implementation work.
77
-
78
- 1. **Check environment setup** (if not already done)
79
- - Look for `docs/workflow/environment-setup.md`
80
- - If exists and states "No special setup required", skip to step 2
81
- - If exists with instructions, follow the setup before proceeding
82
- - If missing, ask: "Are there any environment setup instructions I should follow?"
83
-
84
- See **[environment-setup.md](references/environment-setup.md)** for details.
85
-
86
- 2. **Read the plan** from the provided location (typically `docs/workflow/planning/{topic}.md`)
87
- - Check the `format` field in frontmatter
88
- - Load the output adapter: `skills/technical-planning/references/output-formats/output-{format}.md`
89
- - If no format field, ask user which format the plan uses
90
- - Follow the **Implementation** section for how to read tasks and update progress
70
+ Do NOT parallelize steps execute each command sequentially.
71
+ Complete ALL setup steps before proceeding.
91
72
 
92
- 3. **Read the TDD workflow** - Load **[tdd-workflow.md](references/tdd-workflow.md)** before writing any code. This is mandatory.
73
+ Load **[environment-setup.md](references/environment-setup.md)** and follow its instructions.
93
74
 
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)
75
+ #### If `docs/workflow/environment-setup.md` states "No special setup required"
98
76
 
99
- 5. **For each phase** (working through phases and tasks in plan order):
100
- - Announce phase start and review acceptance criteria
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)
103
- - Verify all phase acceptance criteria met
104
- - **Ask user before proceeding to next phase**
77
+ Proceed to **Step 2**.
105
78
 
106
- 6. **Reference specification** when rationale unclear
79
+ #### If setup instructions exist
107
80
 
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
- ---
81
+ Follow them. Complete ALL steps before proceeding.
130
82
 
131
- # Implementation: {Topic Name}
83
+ Proceed to **Step 2**.
132
84
 
133
- Implementation started.
134
- ```
85
+ #### If no setup file exists
135
86
 
136
- ### Updating Progress
87
+ Ask:
137
88
 
138
- When a task or phase completes, update **two** things:
89
+ > "No environment setup document found. Are there any setup instructions I should follow before implementing?"
139
90
 
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.
91
+ **STOP.** Wait for user response.
141
92
 
142
- 2. **Implementation tracking file** — Update `docs/workflow/implementation/{topic}.md` as described below. This enables cross-topic dependency resolution and resume detection.
93
+ Save their instructions to `docs/workflow/environment-setup.md` (or "No special setup required." if none needed). Commit.
143
94
 
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
95
+ Proceed to **Step 2**.
149
96
 
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
97
+ ---
154
98
 
155
- **On implementation completion (tracking file):**
156
- - Set `status: completed`
157
- - Set `completed: {today}`
158
- - Commit: `impl({topic}): complete implementation`
99
+ ## Step 2: Read Plan + Load Plan Adapter
159
100
 
160
- Task IDs in `completed_tasks` use whatever ID format the output format assigns -- the same IDs used in dependency references.
101
+ 1. Read the plan from the provided location (typically `docs/workflow/planning/{topic}.md`)
102
+ 2. Plans can be stored in various formats. The `format` field in the plan's frontmatter identifies which format this plan uses.
103
+ 3. Load the corresponding adapter file: `skills/technical-planning/references/output-formats/output-{format}.md` — this document provides instructions for reading tasks from and writing progress to the plan. Hereafter referred to as the **plan adapter**.
104
+ 4. If no `format` field exists, ask the user which format the plan uses.
105
+ 5. Read the plan adapter's **Implementation** section to understand the instructions — they apply during Step 5.
161
106
 
162
- ### Body Progress Section
107
+ Proceed to **Step 3**.
163
108
 
164
- The body provides a human-readable summary for context refresh:
109
+ ---
165
110
 
166
- ```markdown
167
- # Implementation: {Topic Name}
111
+ ## Step 3: Project Skills Discovery
168
112
 
169
- ## Phase 1: Foundation
170
- All tasks completed.
113
+ #### If `.claude/skills/` does not exist or is empty
171
114
 
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)
115
+ ```
116
+ No project skills found. Proceeding without project-specific conventions.
176
117
  ```
177
118
 
178
- ## Progress Announcements
119
+ Proceed to **Step 4**.
179
120
 
180
- Keep user informed of progress:
121
+ #### If project skills exist
181
122
 
182
- ```
183
- 📍 Starting Phase 2: Core Cache Functionality
184
- 📝 Task 1: Implement CacheManager.get()
185
- 🔴 Writing test: test_get_returns_cached_value
186
- 🟢 Test passing, committing...
187
- ✅ Phase 2 complete. Ready for Phase 3?
188
- ```
123
+ Scan `.claude/skills/` for project-specific skill directories. Present findings:
189
124
 
190
- ## When to Reference Specification
125
+ > Found these project skills that may be relevant to implementation:
126
+ > - `{skill-name}` — {brief description}
127
+ > - `{skill-name}` — {brief description}
128
+ > - ...
129
+ >
130
+ > Which of these should I pass to the implementation agents? (all / list / none)
191
131
 
192
- Check the specification when:
132
+ **STOP.** Wait for user to confirm which skills are relevant.
193
133
 
194
- - Task rationale is unclear
195
- - Multiple valid approaches exist
196
- - Edge case handling not specified in plan
197
- - You need the "why" behind a decision
134
+ Store the selected skill paths — they will be persisted to the tracking file in Step 4.
198
135
 
199
- **Location**: Specification should be linked in the plan file (check frontmatter or plan header). Ask user if not found.
136
+ Proceed to **Step 4**.
200
137
 
201
- The specification (if available) is the source of truth for design decisions. If no specification exists, the plan is the authority.
138
+ ---
202
139
 
203
- **Important:** If prior source material exists (research notes, discussion documents, etc.), ignore it during implementation. It may contain outdated ideas, rejected approaches, or superseded decisions. The specification filtered and validated that content - refer only to the specification and plan.
140
+ ## Step 4: Initialize Implementation Tracking
204
141
 
205
- ## Project-Specific Conventions
142
+ #### If `docs/workflow/implementation/{topic}.md` already exists
206
143
 
207
- Follow project-specific coding skills in `.claude/skills/` for:
144
+ Reset `task_gate_mode` to `gated` in the tracking file before proceeding (fresh session = fresh gate).
208
145
 
209
- - Framework patterns (Laravel, Vue, Python, etc.)
210
- - Code style and formatting
211
- - Architecture conventions
212
- - Testing conventions
146
+ If `project_skills` is populated in the tracking file, present for confirmation:
213
147
 
214
- This skill contains the implementation **process**. Project skills contain the **style**.
148
+ > "Previous session used these project skills:
149
+ > - `{skill-name}` — {path}
150
+ > - ...
151
+ >
152
+ > - **`y`/`yes`** — Keep these, proceed
153
+ > - **`change`** — Add or remove skills"
215
154
 
216
- ## Handling Problems
155
+ **STOP.** Wait for user choice.
217
156
 
218
- ### Plan is Incomplete
157
+ - **`y`/`yes`**: Proceed with the persisted paths.
158
+ - **`change`**: Re-run discovery (Step 3), update `project_skills` in the tracking file.
219
159
 
220
- Stop and escalate:
221
- > "Task X requires Y, but the plan doesn't specify how to handle it. Options: (A) ... (B) ... Which approach?"
160
+ Proceed to **Step 5**.
222
161
 
223
- ### Plan Seems Wrong
162
+ #### If no tracking file exists
224
163
 
225
- Stop and escalate:
226
- > "The plan says X, but during implementation I discovered Y. This affects Z. Should I continue as planned or revise?"
164
+ Create `docs/workflow/implementation/{topic}.md`:
227
165
 
228
- ### Test Reveals Design Flaw
166
+ ```yaml
167
+ ---
168
+ topic: {topic}
169
+ plan: ../planning/{topic}.md
170
+ format: {format from plan}
171
+ status: in-progress
172
+ task_gate_mode: gated
173
+ project_skills: []
174
+ current_phase: 1
175
+ current_task: ~
176
+ completed_phases: []
177
+ completed_tasks: []
178
+ started: YYYY-MM-DD # Use today's actual date
179
+ updated: YYYY-MM-DD # Use today's actual date
180
+ completed: ~
181
+ ---
229
182
 
230
- Stop and escalate:
231
- > "Writing tests for X revealed that the approach won't work because Y. Need to revisit the design."
183
+ # Implementation: {Topic Name}
184
+
185
+ Implementation started.
186
+ ```
232
187
 
233
- Never silently deviate from the plan.
188
+ After creating the file, populate `project_skills` with the paths confirmed in Step 3 (empty array if none).
234
189
 
235
- ## Quality Standards
190
+ Commit: `impl({topic}): start implementation`
236
191
 
237
- See [code-quality.md](references/code-quality.md) for:
192
+ Proceed to **Step 5**.
238
193
 
239
- - DRY (without premature abstraction)
240
- - SOLID principles
241
- - Cyclomatic complexity
242
- - YAGNI enforcement
194
+ ---
243
195
 
244
- ## Phase Completion Checklist
196
+ ## Step 5: Task Loop
245
197
 
246
- Before marking a phase complete:
198
+ Load **[steps/task-loop.md](references/steps/task-loop.md)** and follow its instructions as written.
247
199
 
248
- - [ ] All phase tasks implemented
249
- - [ ] All tests passing
250
- - [ ] Tests cover task acceptance criteria
251
- - [ ] No skipped edge cases from plan
252
- - [ ] Code committed
253
- - [ ] Manual verification steps completed (if specified in plan)
200
+ After the loop completes, proceed to **Step 6**.
254
201
 
255
- ## Commit Practices
202
+ ---
256
203
 
257
- - Commit after each passing test
258
- - Use descriptive commit messages referencing the task
259
- - Commits can be squashed before PR if desired
260
- - Never commit failing tests (except intentional red phase in TDD)
204
+ ## Step 6: Mark Implementation Complete
261
205
 
262
- Example commit message:
263
- ```
264
- feat(cache): implement CacheManager.get() with TTL support
206
+ Update the tracking file (`docs/workflow/implementation/{topic}.md`):
207
+ - Set `status: completed`
208
+ - Set `completed: YYYY-MM-DD` (use today's actual date)
209
+ - Update `updated` date
265
210
 
266
- - Returns cached value if exists and not expired
267
- - Falls back to DB on cache miss
268
- - Handles connection failures gracefully
211
+ Commit: `impl({topic}): complete implementation`
269
212
 
270
- Task: Phase 2, Task 1
271
- ```
213
+ ---
272
214
 
273
215
  ## References
274
216
 
275
- - **[environment-setup.md](references/environment-setup.md)** - Environment setup before implementation
276
- - **[plan-execution.md](references/plan-execution.md)** - Following plans, phase verification, hierarchy
277
- - **[tdd-workflow.md](references/tdd-workflow.md)** - TDD cycle, test derivation, when tests can change
278
- - **[code-quality.md](references/code-quality.md)** - DRY, SOLID, complexity, YAGNI
217
+ - **[environment-setup.md](references/environment-setup.md)** Environment setup before implementation
218
+ - **[steps/task-loop.md](references/steps/task-loop.md)** Task execution loop, task gates, tracking, commits
219
+ - **[steps/invoke-executor.md](references/steps/invoke-executor.md)** How to invoke the executor agent
220
+ - **[steps/invoke-reviewer.md](references/steps/invoke-reviewer.md)** How to invoke the reviewer agent
221
+ - **[task-normalisation.md](references/task-normalisation.md)** — Normalised task shape for agent invocation
222
+ - **[tdd-workflow.md](references/tdd-workflow.md)** — TDD cycle (passed to executor agent)
223
+ - **[code-quality.md](references/code-quality.md)** — Quality standards (passed to executor agent)
@@ -0,0 +1,42 @@
1
+ # Invoke Executor
2
+
3
+ *Reference for **[technical-implementation](../../SKILL.md)***
4
+
5
+ ---
6
+
7
+ This step invokes the `implementation-task-executor` agent (`.claude/agents/implementation-task-executor.md`) to implement one task.
8
+
9
+ ---
10
+
11
+ ## Invoke the Agent
12
+
13
+ Invoke `implementation-task-executor` with these file paths:
14
+
15
+ 1. **tdd-workflow.md**: `.claude/skills/technical-implementation/references/tdd-workflow.md`
16
+ 2. **code-quality.md**: `.claude/skills/technical-implementation/references/code-quality.md`
17
+ 3. **Specification path**: from the plan's frontmatter (if available)
18
+ 4. **Project skill paths**: from `project_skills` in the implementation tracking file
19
+ 5. **Task content**: normalised task content (see [task-normalisation.md](../task-normalisation.md))
20
+
21
+ On **re-invocation after review feedback**, also include:
22
+ - **User-approved review notes**: verbatim or as modified by the user
23
+ - **Specific issues to address**: the ISSUES from the review
24
+
25
+ ---
26
+
27
+ ## Expected Result
28
+
29
+ The agent returns a structured report:
30
+
31
+ ```
32
+ STATUS: complete | blocked | failed
33
+ TASK: {task name}
34
+ SUMMARY: {2-5 lines — commentary, decisions made, anything off-script}
35
+ TEST_RESULTS: {all passing | failures — details only if failures}
36
+ ISSUES: {blockers or deviations — omit if none}
37
+ ```
38
+
39
+ - `complete`: all acceptance criteria met, tests passing
40
+ - `blocked` or `failed`: ISSUES explains why and what decision is needed
41
+
42
+ Keep the report minimal. "All passing" is sufficient for TEST_RESULTS when nothing failed. ISSUES can be omitted entirely on a clean run.
@@ -0,0 +1,40 @@
1
+ # Invoke Reviewer
2
+
3
+ *Reference for **[technical-implementation](../../SKILL.md)***
4
+
5
+ ---
6
+
7
+ This step invokes the `implementation-task-reviewer` agent (`.claude/agents/implementation-task-reviewer.md`) to independently verify a completed task.
8
+
9
+ ---
10
+
11
+ ## Invoke the Agent
12
+
13
+ Invoke `implementation-task-reviewer` with:
14
+
15
+ 1. **Specification path**: same path given to the executor
16
+ 2. **Task content**: same normalised task content the executor received
17
+ 3. **Project skill paths**: from `project_skills` in the implementation tracking file
18
+
19
+ ---
20
+
21
+ ## Expected Result
22
+
23
+ The agent returns a structured finding:
24
+
25
+ ```
26
+ TASK: {task name}
27
+ VERDICT: approved | needs-changes
28
+ SPEC_CONFORMANCE: {conformant | drift detected — details}
29
+ ACCEPTANCE_CRITERIA: {all met | gaps — list}
30
+ TEST_COVERAGE: {adequate | gaps — list}
31
+ CONVENTIONS: {followed | violations — list}
32
+ ARCHITECTURE: {sound | concerns — details}
33
+ ISSUES:
34
+ - {specific issue with file:line reference}
35
+ NOTES:
36
+ - {non-blocking observations}
37
+ ```
38
+
39
+ - `approved`: task passes all five review dimensions
40
+ - `needs-changes`: ISSUES contains specific, actionable items
@@ -0,0 +1,164 @@
1
+ # Task Loop
2
+
3
+ *Reference for **[technical-implementation](../../SKILL.md)***
4
+
5
+ ---
6
+
7
+ Follow these stages sequentially, one task at a time: retrieve a task from the plan (delegating to the plan adapter for ordering and extraction), run it through execution, review, gating, and commit, then repeat until all tasks are done.
8
+
9
+ Every iteration must follow stages A through E fully — do not abbreviate, skip, or compress stages based on previous iterations.
10
+
11
+ ```
12
+ A. Retrieve next task
13
+ B. Execute task → invoke-executor.md
14
+ → Executor Blocked (conditional)
15
+ C. Review task → invoke-reviewer.md
16
+ → Review Changes (conditional)
17
+ D. Task gate (gated → prompt user / auto → announce)
18
+ E. Update progress + commit
19
+ → loop back to A until done
20
+ ```
21
+
22
+ ---
23
+
24
+ ## A. Retrieve Next Task
25
+
26
+ 1. Follow the plan adapter's Reading instructions to determine the next available task.
27
+ 2. If no available tasks remain → skip to **When All Tasks Are Complete**.
28
+ 3. Normalise the task content following **[task-normalisation.md](../task-normalisation.md)**.
29
+
30
+ ---
31
+
32
+ ## B. Execute Task
33
+
34
+ 1. Load **[invoke-executor.md](invoke-executor.md)** and follow its instructions. Pass the normalised task content.
35
+ 2. **STOP.** Do not proceed until the executor has returned its result.
36
+ 3. On receipt of result, route on STATUS:
37
+ - `blocked` or `failed` → follow **Executor Blocked** below
38
+ - `complete` → proceed to **C. Review Task**
39
+
40
+ ### Executor Blocked
41
+
42
+ Present the executor's ISSUES to the user:
43
+
44
+ > **Task {id}: {Task Name} — {blocked/failed}**
45
+ >
46
+ > {executor's ISSUES content}
47
+ >
48
+ > - **`retry`** — Re-invoke the executor with your comments (provide below)
49
+ > - **`skip`** — Skip this task and move to the next
50
+ > - **`stop`** — Stop implementation entirely
51
+
52
+ **STOP.** Wait for user choice.
53
+
54
+ #### If `retry`
55
+
56
+ → Return to the top of **B. Execute Task** and re-invoke the executor with the user's comments added to the task context.
57
+
58
+ #### If `skip`
59
+
60
+ → Proceed to **E. Update Progress and Commit** (mark task as skipped).
61
+
62
+ #### If `stop`
63
+
64
+ → Return to the skill for **Step 6**.
65
+
66
+ ---
67
+
68
+ ## C. Review Task
69
+
70
+ 1. Load **[invoke-reviewer.md](invoke-reviewer.md)** and follow its instructions. Pass the executor's result.
71
+ 2. **STOP.** Do not proceed until the reviewer has returned its result.
72
+ 3. On receipt of result, route on VERDICT:
73
+ - `needs-changes` → follow **Review Changes** below
74
+ - `approved` → proceed to **D. Task Gate**
75
+
76
+ ### Review Changes
77
+
78
+ Present the reviewer's findings to the user:
79
+
80
+ > **Review for Task {id}: {Task Name} — needs changes**
81
+ >
82
+ > {ISSUES from reviewer}
83
+ >
84
+ > Notes (non-blocking):
85
+ > {NOTES from reviewer}
86
+ >
87
+ > - **`y`/`yes`** — Accept these notes and pass them to the executor to fix
88
+ > - **`skip`** — Override the reviewer and proceed as-is
89
+ > - **Comment** — Modify or add to the notes before passing to the executor
90
+
91
+ **STOP.** Wait for user choice.
92
+
93
+ - **`y`/`yes`**: → Return to the top of **B. Execute Task** and re-invoke the executor with the reviewer's notes added.
94
+ - **`skip`**: → Proceed to **D. Task Gate**.
95
+ - **Comment**: → Return to the top of **B. Execute Task** and re-invoke the executor with the user's notes.
96
+
97
+ ---
98
+
99
+ ## D. Task Gate
100
+
101
+ After the reviewer approves a task, check the `task_gate_mode` field in the implementation tracking file.
102
+
103
+ ### If `task_gate_mode: gated`
104
+
105
+ Present a summary and wait for user input:
106
+
107
+ > **Task {id}: {Task Name} — approved**
108
+ >
109
+ > Phase: {phase number} — {phase name}
110
+ > {executor's SUMMARY — brief commentary, decisions, implementation notes}
111
+ >
112
+ > **Options:**
113
+ > - **`y`/`yes`** — Approve, commit, continue to next task
114
+ > - **`auto`** — Approve this and all future reviewer-approved tasks automatically
115
+ > - **Comment** — Feedback the reviewer missed (triggers a fix round)
116
+
117
+ **STOP.** Wait for user input.
118
+
119
+ - **`y`/`yes`**: → Proceed to **E. Update Progress and Commit**.
120
+ - **`auto`**: Note that `task_gate_mode` should be updated to `auto` during the commit step. → Proceed to **E. Update Progress and Commit**.
121
+ - **Comment**: → Return to the top of **B. Execute Task** and re-invoke the executor with the user's notes added.
122
+
123
+ ### If `task_gate_mode: auto`
124
+
125
+ Announce the result (one line, no stop):
126
+
127
+ > **Task {id}: {Task Name} — approved** (phase {N}: {phase name}, {brief summary}). Committing.
128
+
129
+ → Proceed to **E. Update Progress and Commit**.
130
+
131
+ ---
132
+
133
+ ## E. Update Progress and Commit
134
+
135
+ **Update task progress in the plan** — follow the plan adapter's Implementation section for instructions on how to mark the task complete.
136
+
137
+ **Mirror to implementation tracking file** (`docs/workflow/implementation/{topic}.md`):
138
+ - Append the task ID to `completed_tasks`
139
+ - Update `current_phase` if phase changed
140
+ - Update `current_task` to the next task (or `~` if done)
141
+ - Update `updated` to today's date
142
+ - If user chose `auto` this turn: update `task_gate_mode: auto`
143
+
144
+ The tracking file is a derived view for discovery scripts and cross-topic dependency resolution — not a decision-making input during implementation (except `task_gate_mode`).
145
+
146
+ **Commit all changes** in a single commit:
147
+
148
+ ```
149
+ impl({topic}): T{task-id} — {brief description}
150
+ ```
151
+
152
+ Code, tests, plan progress, and tracking file — one commit per approved task.
153
+
154
+ This is the end of this iteration.
155
+
156
+ → Proceed to **A. Retrieve Next Task** and follow the instructions as written.
157
+
158
+ ---
159
+
160
+ ## When All Tasks Are Complete
161
+
162
+ > "All tasks complete. {M} tasks implemented."
163
+
164
+ → Return to the skill for **Step 6**.
@@ -0,0 +1,25 @@
1
+ # Task Normalisation
2
+
3
+ *Reference for **[technical-implementation](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ Normalise task content into this shape before passing to executor and reviewer agents. The plan adapter tells you how to extract the task — this reference tells you what shape to present it in.
8
+
9
+ ---
10
+
11
+ ## Template
12
+
13
+ ```
14
+ TASK: {id} — {name}
15
+ PHASE: {N} — {phase name}
16
+
17
+ INSTRUCTIONS:
18
+ {all instructional content from the task}
19
+ ```
20
+
21
+ ## Rules
22
+
23
+ - **Include** everything instructional: goal, implementation steps, acceptance criteria, tests, edge cases, context, notes
24
+ - **Strip** meta fields: status, priority, dependencies, dates, progress markers
25
+ - **Preserve** the internal structure of the instructional content as-is from the plan — do not summarise, reorder, or rewrite
@@ -6,7 +6,7 @@
6
6
 
7
7
  ## The Cycle
8
8
 
9
- RED → GREEN → REFACTOR → COMMIT
9
+ RED → GREEN → REFACTOR
10
10
 
11
11
  Repeat for each task. **Never skip steps. Never reorder.**
12
12
 
@@ -64,9 +64,9 @@ If you think "I should also handle X" - STOP. Write a test for X first.
64
64
 
65
65
  Run tests after. If they fail, undo the refactor.
66
66
 
67
- ## COMMIT: After Every Green
67
+ ## COMMIT: Orchestrator Responsibility
68
68
 
69
- Commit with descriptive message referencing the task. This is non-negotiable - it creates recovery points.
69
+ The executor agent does NOT commit. Your responsibility ends at GREEN — all tests passing. The orchestrator commits after review approval, one commit per approved task covering code, tests, tracking, and plan progress.
70
70
 
71
71
  ## When Tests CAN Change
72
72
 
@@ -1,49 +0,0 @@
1
- # Plan Execution
2
-
3
- *Reference for **[technical-implementation](../SKILL.md)***
4
-
5
- ---
6
-
7
- ## Plan Structure
8
-
9
- Plans live in `docs/workflow/planning/{topic}.md` with phases and tasks.
10
-
11
- **Phase** = grouping with acceptance criteria
12
- **Task** = single TDD cycle = one commit
13
-
14
- ## Before Starting
15
-
16
- 1. Read entire plan
17
- 2. Read specification for context
18
- 3. Check dependencies and blockers
19
-
20
- ## Execution Flow
21
-
22
- For each phase:
23
- 1. Announce phase start with acceptance criteria
24
- 2. For each task: follow the TDD cycle in **[tdd-workflow.md](tdd-workflow.md)**
25
- 3. Verify all acceptance criteria met
26
- 4. **Wait for user confirmation before next phase**
27
-
28
- ## Referencing Specification
29
-
30
- Check `docs/workflow/specification/{topic}.md` when:
31
- - Task rationale unclear
32
- - Multiple valid approaches
33
- - Edge case handling not specified
34
-
35
- The specification is the source of truth. Don't look further back than this.
36
-
37
- ## Handling Problems
38
-
39
- - **Plan incomplete**: Stop and escalate with options
40
- - **Plan seems wrong**: Stop and escalate discrepancy
41
- - **Discovery during implementation**: Stop and escalate impact
42
-
43
- **Never silently deviate.**
44
-
45
- ## Context Refresh Recovery
46
-
47
- 1. Check `git log` for recent commits
48
- 2. Find current phase/task in plan
49
- 3. Resume from last committed task