@leeovery/claude-technical-workflows 2.0.52 → 2.0.53
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 +2 -2
- package/agents/implementation-task-executor.md +79 -0
- package/agents/implementation-task-reviewer.md +97 -0
- package/package.json +1 -1
- package/skills/technical-implementation/SKILL.md +114 -169
- package/skills/technical-implementation/references/steps/invoke-executor.md +42 -0
- package/skills/technical-implementation/references/steps/invoke-reviewer.md +40 -0
- package/skills/technical-implementation/references/steps/task-loop.md +164 -0
- package/skills/technical-implementation/references/task-normalisation.md +25 -0
- package/skills/technical-implementation/references/tdd-workflow.md +3 -3
- package/skills/technical-implementation/references/plan-execution.md +0 -49
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│ │ •
|
|
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,
|
|
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,13 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: technical-implementation
|
|
3
|
-
description: "
|
|
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
|
-
|
|
8
|
+
Orchestrate implementation by dispatching **executor** and **reviewer** agents per task. Each agent invocation starts fresh — flat context, no accumulated state.
|
|
9
9
|
|
|
10
|
-
|
|
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:
|
|
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. **
|
|
48
|
-
3. **Check
|
|
49
|
-
4. **
|
|
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
|
-
|
|
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
|
-
|
|
64
|
+
---
|
|
70
65
|
|
|
71
|
-
|
|
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
|
|
76
|
-
Complete ALL setup steps before proceeding
|
|
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
|
-
|
|
73
|
+
Load **[environment-setup.md](references/environment-setup.md)** and follow its instructions.
|
|
93
74
|
|
|
94
|
-
|
|
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
|
-
|
|
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
|
-
|
|
79
|
+
#### If setup instructions exist
|
|
107
80
|
|
|
108
|
-
|
|
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
|
-
|
|
83
|
+
→ Proceed to **Step 2**.
|
|
132
84
|
|
|
133
|
-
|
|
134
|
-
```
|
|
85
|
+
#### If no setup file exists
|
|
135
86
|
|
|
136
|
-
|
|
87
|
+
Ask:
|
|
137
88
|
|
|
138
|
-
|
|
89
|
+
> "No environment setup document found. Are there any setup instructions I should follow before implementing?"
|
|
139
90
|
|
|
140
|
-
|
|
91
|
+
**STOP.** Wait for user response.
|
|
141
92
|
|
|
142
|
-
|
|
93
|
+
Save their instructions to `docs/workflow/environment-setup.md` (or "No special setup required." if none needed). Commit.
|
|
143
94
|
|
|
144
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
107
|
+
→ Proceed to **Step 3**.
|
|
163
108
|
|
|
164
|
-
|
|
109
|
+
---
|
|
165
110
|
|
|
166
|
-
|
|
167
|
-
# Implementation: {Topic Name}
|
|
111
|
+
## Step 3: Project Skills Discovery
|
|
168
112
|
|
|
169
|
-
|
|
170
|
-
All tasks completed.
|
|
113
|
+
#### If `.claude/skills/` does not exist or is empty
|
|
171
114
|
|
|
172
|
-
|
|
173
|
-
|
|
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
|
-
|
|
119
|
+
→ Proceed to **Step 4**.
|
|
179
120
|
|
|
180
|
-
|
|
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
|
-
|
|
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
|
-
|
|
132
|
+
**STOP.** Wait for user to confirm which skills are relevant.
|
|
193
133
|
|
|
194
|
-
|
|
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
|
-
|
|
136
|
+
→ Proceed to **Step 4**.
|
|
200
137
|
|
|
201
|
-
|
|
138
|
+
---
|
|
202
139
|
|
|
203
|
-
|
|
140
|
+
## Step 4: Initialize Implementation Tracking
|
|
204
141
|
|
|
205
|
-
|
|
142
|
+
#### If `docs/workflow/implementation/{topic}.md` already exists
|
|
206
143
|
|
|
207
|
-
|
|
144
|
+
Reset `task_gate_mode` to `gated` in the tracking file before proceeding (fresh session = fresh gate).
|
|
208
145
|
|
|
209
|
-
|
|
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
|
-
|
|
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
|
-
|
|
155
|
+
**STOP.** Wait for user choice.
|
|
217
156
|
|
|
218
|
-
|
|
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
|
-
|
|
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
|
-
|
|
162
|
+
#### If no tracking file exists
|
|
224
163
|
|
|
225
|
-
|
|
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
|
-
|
|
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
|
-
|
|
231
|
-
|
|
183
|
+
# Implementation: {Topic Name}
|
|
184
|
+
|
|
185
|
+
Implementation started.
|
|
186
|
+
```
|
|
232
187
|
|
|
233
|
-
|
|
188
|
+
After creating the file, populate `project_skills` with the paths confirmed in Step 3 (empty array if none).
|
|
234
189
|
|
|
235
|
-
|
|
190
|
+
Commit: `impl({topic}): start implementation`
|
|
236
191
|
|
|
237
|
-
|
|
192
|
+
→ Proceed to **Step 5**.
|
|
238
193
|
|
|
239
|
-
|
|
240
|
-
- SOLID principles
|
|
241
|
-
- Cyclomatic complexity
|
|
242
|
-
- YAGNI enforcement
|
|
194
|
+
---
|
|
243
195
|
|
|
244
|
-
##
|
|
196
|
+
## Step 5: Task Loop
|
|
245
197
|
|
|
246
|
-
|
|
198
|
+
Load **[steps/task-loop.md](references/steps/task-loop.md)** and follow its instructions as written.
|
|
247
199
|
|
|
248
|
-
|
|
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
|
-
|
|
202
|
+
---
|
|
256
203
|
|
|
257
|
-
|
|
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
|
-
|
|
263
|
-
|
|
264
|
-
|
|
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
|
-
|
|
267
|
-
- Falls back to DB on cache miss
|
|
268
|
-
- Handles connection failures gracefully
|
|
211
|
+
Commit: `impl({topic}): complete implementation`
|
|
269
212
|
|
|
270
|
-
|
|
271
|
-
```
|
|
213
|
+
---
|
|
272
214
|
|
|
273
215
|
## References
|
|
274
216
|
|
|
275
|
-
- **[environment-setup.md](references/environment-setup.md)**
|
|
276
|
-
- **[
|
|
277
|
-
- **[
|
|
278
|
-
- **[
|
|
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
|
|
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:
|
|
67
|
+
## COMMIT: Orchestrator Responsibility
|
|
68
68
|
|
|
69
|
-
|
|
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
|