@leeovery/claude-technical-workflows 2.1.27 → 2.1.29
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 +90 -92
- package/agents/implementation-analysis-task-writer.md +6 -5
- package/agents/planning-review-integrity.md +71 -0
- package/agents/planning-review-traceability.md +74 -0
- package/agents/planning-task-designer.md +4 -4
- package/package.json +1 -1
- package/skills/link-dependencies/SKILL.md +3 -3
- package/skills/migrate/scripts/migrations/002-specification-frontmatter.sh +5 -0
- package/skills/migrate/scripts/migrations/003-planning-frontmatter.sh +5 -0
- package/skills/migrate/scripts/migrations/004-sources-object-format.sh +5 -0
- package/skills/migrate/scripts/migrations/005-plan-external-deps-frontmatter.sh +5 -0
- package/skills/migrate/scripts/migrations/006-directory-restructure.sh +167 -0
- package/skills/migrate/scripts/migrations/007-tasks-subdirectory.sh +86 -0
- package/skills/start-discussion/references/handle-selection.md +8 -0
- package/skills/start-feature/SKILL.md +2 -2
- package/skills/start-implementation/SKILL.md +1 -3
- package/skills/start-implementation/scripts/discovery.sh +7 -7
- package/skills/start-planning/references/invoke-skill.md +3 -3
- package/skills/start-planning/scripts/discovery.sh +8 -8
- package/skills/start-review/references/invoke-skill.md +3 -3
- package/skills/start-review/scripts/discovery.sh +3 -3
- package/skills/start-specification/references/confirm-continue.md +3 -3
- package/skills/start-specification/references/confirm-create.md +3 -3
- package/skills/start-specification/references/confirm-refine.md +1 -1
- package/skills/start-specification/references/confirm-unify.md +4 -4
- package/skills/start-specification/references/handoffs/continue-concluded.md +3 -1
- package/skills/start-specification/references/handoffs/continue.md +3 -1
- package/skills/start-specification/references/handoffs/create-with-incorporation.md +2 -2
- package/skills/start-specification/references/handoffs/create.md +1 -1
- package/skills/start-specification/references/handoffs/unify-with-incorporation.md +3 -3
- package/skills/start-specification/references/handoffs/unify.md +1 -1
- package/skills/start-specification/scripts/discovery.sh +6 -6
- package/skills/status/scripts/discovery.sh +7 -7
- package/skills/technical-discussion/SKILL.md +46 -8
- package/skills/technical-implementation/SKILL.md +66 -20
- package/skills/technical-implementation/references/{steps/analysis-loop.md → analysis-loop.md} +1 -1
- package/skills/technical-implementation/references/{steps/invoke-analysis.md → invoke-analysis.md} +5 -5
- package/skills/technical-implementation/references/{steps/invoke-executor.md → invoke-executor.md} +5 -5
- package/skills/technical-implementation/references/{steps/invoke-reviewer.md → invoke-reviewer.md} +2 -2
- package/skills/technical-implementation/references/{steps/invoke-synthesizer.md → invoke-synthesizer.md} +3 -3
- package/skills/technical-implementation/references/{steps/invoke-task-writer.md → invoke-task-writer.md} +4 -4
- package/skills/technical-implementation/references/{steps/task-loop.md → task-loop.md} +45 -38
- package/skills/technical-planning/SKILL.md +64 -22
- package/skills/technical-planning/references/{steps/analyze-task-graph.md → analyze-task-graph.md} +33 -16
- package/skills/technical-planning/references/author-tasks.md +100 -0
- package/skills/technical-planning/references/{steps/define-phases.md → define-phases.md} +15 -9
- package/skills/technical-planning/references/{steps/define-tasks.md → define-tasks.md} +10 -6
- package/skills/technical-planning/references/invoke-review-integrity.md +36 -0
- package/skills/technical-planning/references/invoke-review-traceability.md +37 -0
- package/skills/technical-planning/references/output-formats/local-markdown/about.md +6 -4
- package/skills/technical-planning/references/output-formats/local-markdown/authoring.md +3 -3
- package/skills/technical-planning/references/output-formats/local-markdown/reading.md +3 -3
- package/skills/technical-planning/references/output-formats/local-markdown/updating.md +1 -1
- package/skills/technical-planning/references/output-formats/tick/about.md +68 -0
- package/skills/technical-planning/references/output-formats/tick/authoring.md +106 -0
- package/skills/technical-planning/references/output-formats/tick/graph.md +62 -0
- package/skills/technical-planning/references/output-formats/tick/reading.md +61 -0
- package/skills/technical-planning/references/output-formats/tick/updating.md +25 -0
- package/skills/technical-planning/references/output-formats.md +11 -0
- package/skills/technical-planning/references/{steps/plan-construction.md → plan-construction.md} +33 -9
- package/skills/technical-planning/references/plan-review.md +122 -0
- package/skills/technical-planning/references/process-review-findings.md +171 -0
- package/skills/technical-planning/references/{steps/resolve-dependencies.md → resolve-dependencies.md} +18 -12
- package/skills/technical-planning/references/review-integrity.md +127 -0
- package/skills/technical-planning/references/review-traceability.md +105 -0
- package/skills/technical-planning/references/task-design.md +1 -1
- package/skills/technical-planning/references/{steps/verify-source-material.md → verify-source-material.md} +3 -3
- package/skills/technical-research/SKILL.md +20 -4
- package/skills/technical-review/SKILL.md +21 -4
- package/skills/technical-specification/SKILL.md +34 -8
- package/skills/technical-specification/references/specification-guide.md +228 -56
- package/skills/view-plan/SKILL.md +1 -1
- package/skills/technical-planning/references/steps/author-tasks.md +0 -72
- package/skills/technical-planning/references/steps/plan-review.md +0 -94
- package/skills/technical-planning/references/steps/review-integrity.md +0 -222
- package/skills/technical-planning/references/steps/review-traceability.md +0 -200
|
@@ -137,10 +137,10 @@ if [ -d "$DISCUSSION_DIR" ] && [ -n "$(ls -A "$DISCUSSION_DIR" 2>/dev/null)" ];
|
|
|
137
137
|
# Check if this discussion has a corresponding individual spec
|
|
138
138
|
has_individual_spec="false"
|
|
139
139
|
spec_status=""
|
|
140
|
-
if [ -f "$SPEC_DIR/${name}.md" ]; then
|
|
140
|
+
if [ -f "$SPEC_DIR/${name}/specification.md" ]; then
|
|
141
141
|
has_individual_spec="true"
|
|
142
142
|
# Extract spec status in real-time (not from cache)
|
|
143
|
-
spec_status=$(extract_field "$SPEC_DIR/${name}.md" "status")
|
|
143
|
+
spec_status=$(extract_field "$SPEC_DIR/${name}/specification.md" "status")
|
|
144
144
|
spec_status=${spec_status:-"in-progress"}
|
|
145
145
|
fi
|
|
146
146
|
|
|
@@ -163,10 +163,10 @@ echo ""
|
|
|
163
163
|
echo "specifications:"
|
|
164
164
|
|
|
165
165
|
if [ -d "$SPEC_DIR" ] && [ -n "$(ls -A "$SPEC_DIR" 2>/dev/null)" ]; then
|
|
166
|
-
for file in "$SPEC_DIR"
|
|
166
|
+
for file in "$SPEC_DIR"/*/specification.md; do
|
|
167
167
|
[ -f "$file" ] || continue
|
|
168
168
|
|
|
169
|
-
name=$(basename "$file"
|
|
169
|
+
name=$(basename "$(dirname "$file")")
|
|
170
170
|
status=$(extract_field "$file" "status")
|
|
171
171
|
status=${status:-"active"}
|
|
172
172
|
|
|
@@ -235,7 +235,7 @@ if [ -f "$CACHE_FILE" ]; then
|
|
|
235
235
|
while IFS= read -r grouping_name; do
|
|
236
236
|
# Clean the name (remove any trailing annotations, lowercase, spaces to hyphens)
|
|
237
237
|
clean_name=$(echo "$grouping_name" | sed 's/[[:space:]]*(.*)//' | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
|
|
238
|
-
if [ -f "$SPEC_DIR/${clean_name}.md" ]; then
|
|
238
|
+
if [ -f "$SPEC_DIR/${clean_name}/specification.md" ]; then
|
|
239
239
|
echo " - \"$clean_name\""
|
|
240
240
|
anchored_found=true
|
|
241
241
|
fi
|
|
@@ -285,7 +285,7 @@ if [ -d "$DISCUSSION_DIR" ] && [ -n "$(ls -A "$DISCUSSION_DIR" 2>/dev/null)" ];
|
|
|
285
285
|
# Count non-superseded specifications
|
|
286
286
|
spec_count=0
|
|
287
287
|
if [ -d "$SPEC_DIR" ] && [ -n "$(ls -A "$SPEC_DIR" 2>/dev/null)" ]; then
|
|
288
|
-
for file in "$SPEC_DIR"
|
|
288
|
+
for file in "$SPEC_DIR"/*/specification.md; do
|
|
289
289
|
[ -f "$file" ] || continue
|
|
290
290
|
spec_status=$(extract_field "$file" "status")
|
|
291
291
|
if [ "$spec_status" != "superseded" ]; then
|
|
@@ -251,9 +251,9 @@ spec_crosscutting=0
|
|
|
251
251
|
if [ -d "$SPEC_DIR" ] && [ -n "$(ls -A "$SPEC_DIR" 2>/dev/null)" ]; then
|
|
252
252
|
echo " exists: true"
|
|
253
253
|
echo " files:"
|
|
254
|
-
for file in "$SPEC_DIR"
|
|
254
|
+
for file in "$SPEC_DIR"/*/specification.md; do
|
|
255
255
|
[ -f "$file" ] || continue
|
|
256
|
-
name=$(basename "$file"
|
|
256
|
+
name=$(basename "$(dirname "$file")")
|
|
257
257
|
status=$(extract_field "$file" "status")
|
|
258
258
|
status=${status:-"in-progress"}
|
|
259
259
|
spec_type=$(extract_field "$file" "type")
|
|
@@ -316,15 +316,15 @@ plan_in_progress=0
|
|
|
316
316
|
if [ -d "$PLAN_DIR" ] && [ -n "$(ls -A "$PLAN_DIR" 2>/dev/null)" ]; then
|
|
317
317
|
echo " exists: true"
|
|
318
318
|
echo " files:"
|
|
319
|
-
for file in "$PLAN_DIR"
|
|
319
|
+
for file in "$PLAN_DIR"/*/plan.md; do
|
|
320
320
|
[ -f "$file" ] || continue
|
|
321
|
-
name=$(basename "$file"
|
|
321
|
+
name=$(basename "$(dirname "$file")")
|
|
322
322
|
status=$(extract_field "$file" "status")
|
|
323
323
|
status=${status:-"unknown"}
|
|
324
324
|
format=$(extract_field "$file" "format")
|
|
325
325
|
format=${format:-"unknown"}
|
|
326
326
|
specification=$(extract_field "$file" "specification")
|
|
327
|
-
specification=${specification:-"${name}.md"}
|
|
327
|
+
specification=${specification:-"${name}/specification.md"}
|
|
328
328
|
|
|
329
329
|
echo " - name: \"$name\""
|
|
330
330
|
echo " status: \"$status\""
|
|
@@ -389,11 +389,11 @@ if [ -d "$IMPL_DIR" ] && [ -n "$(ls -A "$IMPL_DIR" 2>/dev/null)" ]; then
|
|
|
389
389
|
|
|
390
390
|
# Count total tasks from plan directory (local-markdown format)
|
|
391
391
|
total_tasks=0
|
|
392
|
-
plan_file="$PLAN_DIR/${topic}.md"
|
|
392
|
+
plan_file="$PLAN_DIR/${topic}/plan.md"
|
|
393
393
|
if [ -f "$plan_file" ]; then
|
|
394
394
|
plan_format=$(extract_field "$plan_file" "format")
|
|
395
395
|
if [ "$plan_format" = "local-markdown" ] && [ -d "$PLAN_DIR/${topic}" ]; then
|
|
396
|
-
total_tasks=$(ls -1 "$PLAN_DIR/${topic}/"*.md 2>/dev/null | wc -l | tr -d ' ')
|
|
396
|
+
total_tasks=$(ls -1 "$PLAN_DIR/${topic}/tasks/"*.md 2>/dev/null | wc -l | tr -d ' ')
|
|
397
397
|
fi
|
|
398
398
|
fi
|
|
399
399
|
|
|
@@ -24,11 +24,28 @@ Either way: Capture decisions, rationale, competing approaches, and edge cases.
|
|
|
24
24
|
|
|
25
25
|
**Before proceeding**, confirm the required input is clear. If anything is missing or unclear, **STOP** and resolve with the user.
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
> "What topic would you like to discuss? This could be an architectural decision, a design problem, or edge cases to work through — anything that needs structured technical discussion."
|
|
27
|
+
#### If no topic provided
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
> *Output the next fenced block as a code block:*
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
What topic would you like to discuss? This could be an architectural decision,
|
|
33
|
+
a design problem, or edge cases to work through — anything that needs structured
|
|
34
|
+
technical discussion.
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**STOP.** Wait for user response.
|
|
38
|
+
|
|
39
|
+
#### If topic is broad or ambiguous
|
|
40
|
+
|
|
41
|
+
> *Output the next fenced block as a code block:*
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
You mentioned {topic}. To keep the discussion focused, is there a specific
|
|
45
|
+
aspect or decision you want to work through first?
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**STOP.** Wait for user response.
|
|
32
49
|
|
|
33
50
|
---
|
|
34
51
|
|
|
@@ -97,7 +114,24 @@ These are natural pauses, not every exchange. Document the reasoning and context
|
|
|
97
114
|
|
|
98
115
|
## Concluding a Discussion
|
|
99
116
|
|
|
100
|
-
When the user
|
|
117
|
+
When the user indicates they want to conclude:
|
|
118
|
+
|
|
119
|
+
> *Output the next fenced block as markdown (not a code block):*
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
· · · · · · · · · · · ·
|
|
123
|
+
- **`y`/`yes`** — Conclude discussion and mark as concluded
|
|
124
|
+
- **Comment** — Add context before concluding
|
|
125
|
+
· · · · · · · · · · · ·
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**STOP.** Wait for user response.
|
|
129
|
+
|
|
130
|
+
#### If comment
|
|
131
|
+
|
|
132
|
+
Incorporate the user's context into the discussion, commit, then re-present the sign-off prompt above.
|
|
133
|
+
|
|
134
|
+
#### If yes
|
|
101
135
|
|
|
102
136
|
1. Update frontmatter `status: concluded`
|
|
103
137
|
2. Final commit
|
|
@@ -105,18 +139,22 @@ When the user is ready to conclude the discussion:
|
|
|
105
139
|
|
|
106
140
|
**If other in-progress discussions exist:**
|
|
107
141
|
|
|
142
|
+
> *Output the next fenced block as a code block:*
|
|
143
|
+
|
|
108
144
|
```
|
|
109
145
|
Discussion concluded: {topic}
|
|
110
146
|
|
|
111
147
|
Remaining in-progress discussions:
|
|
112
|
-
|
|
113
|
-
|
|
148
|
+
• {topic-1}
|
|
149
|
+
• {topic-2}
|
|
114
150
|
|
|
115
|
-
To continue, clear your context and run
|
|
151
|
+
To continue, clear your context and run /start-discussion to pick up the next topic.
|
|
116
152
|
```
|
|
117
153
|
|
|
118
154
|
**If no in-progress discussions remain:**
|
|
119
155
|
|
|
156
|
+
> *Output the next fenced block as a code block:*
|
|
157
|
+
|
|
120
158
|
```
|
|
121
159
|
Discussion concluded: {topic}
|
|
122
160
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: technical-implementation
|
|
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."
|
|
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}/plan.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
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -30,14 +30,38 @@ Either way: dispatch agents per task — executor implements via TDD, reviewer v
|
|
|
30
30
|
|
|
31
31
|
**Before proceeding**, verify all required inputs are available and unambiguous. If anything is missing or unclear, **STOP** — do not proceed until resolved.
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
"I need an implementation plan to execute. Could you point me to the plan file (e.g., `docs/workflow/planning/{topic}.md`)?"
|
|
33
|
+
#### If no plan provided
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
> *Output the next fenced block as a code block:*
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
I need an implementation plan to execute. Could you point me to the plan file
|
|
39
|
+
(e.g., docs/workflow/planning/{topic}/plan.md)?
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**STOP.** Wait for user response.
|
|
43
|
+
|
|
44
|
+
#### If plan has no `format` field in frontmatter
|
|
38
45
|
|
|
39
|
-
|
|
40
|
-
|
|
46
|
+
> *Output the next fenced block as a code block:*
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
The plan at {path} doesn't specify an output format in its frontmatter.
|
|
50
|
+
Which format does this plan use?
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**STOP.** Wait for user response.
|
|
54
|
+
|
|
55
|
+
#### If plan status is not `concluded`
|
|
56
|
+
|
|
57
|
+
> *Output the next fenced block as a code block:*
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
The plan at {path} has status '{status}' — it hasn't completed the review
|
|
61
|
+
process. Should I proceed anyway, or should the plan be reviewed first?
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**STOP.** Wait for user response.
|
|
41
65
|
|
|
42
66
|
If no specification is available, the plan becomes the sole authority for design decisions.
|
|
43
67
|
|
|
@@ -89,9 +113,12 @@ Follow them. Complete ALL steps before proceeding.
|
|
|
89
113
|
|
|
90
114
|
#### If no setup file exists
|
|
91
115
|
|
|
92
|
-
|
|
116
|
+
> *Output the next fenced block as a code block:*
|
|
93
117
|
|
|
94
|
-
|
|
118
|
+
```
|
|
119
|
+
No environment setup document found. Are there any setup instructions
|
|
120
|
+
I should follow before implementing?
|
|
121
|
+
```
|
|
95
122
|
|
|
96
123
|
**STOP.** Wait for user response.
|
|
97
124
|
|
|
@@ -103,7 +130,7 @@ Save their instructions to `docs/workflow/environment-setup.md` (or "No special
|
|
|
103
130
|
|
|
104
131
|
## Step 2: Read Plan + Load Plan Adapter
|
|
105
132
|
|
|
106
|
-
1. Read the plan from the provided location (typically `docs/workflow/planning/{topic}.md`)
|
|
133
|
+
1. Read the plan from the provided location (typically `docs/workflow/planning/{topic}/plan.md`)
|
|
107
134
|
2. Plans can be stored in various formats. The `format` field in the plan's frontmatter identifies which format this plan uses.
|
|
108
135
|
3. Load the format's per-concern adapter files from `../technical-planning/references/output-formats/{format}/`:
|
|
109
136
|
- **reading.md** — how to read tasks from the plan
|
|
@@ -131,7 +158,7 @@ Create `docs/workflow/implementation/{topic}/tracking.md`:
|
|
|
131
158
|
```yaml
|
|
132
159
|
---
|
|
133
160
|
topic: {topic}
|
|
134
|
-
plan: ../../planning/{topic}.md
|
|
161
|
+
plan: ../../planning/{topic}/plan.md
|
|
135
162
|
format: {format from plan}
|
|
136
163
|
status: in-progress
|
|
137
164
|
task_gate_mode: gated
|
|
@@ -257,7 +284,7 @@ Recommendations: {any suggested tools with install commands}
|
|
|
257
284
|
|
|
258
285
|
## Step 6: Task Loop
|
|
259
286
|
|
|
260
|
-
Load **[
|
|
287
|
+
Load **[task-loop.md](references/task-loop.md)** and follow its instructions as written.
|
|
261
288
|
|
|
262
289
|
After the loop completes:
|
|
263
290
|
|
|
@@ -269,7 +296,7 @@ After the loop completes:
|
|
|
269
296
|
|
|
270
297
|
## Step 7: Analysis Loop
|
|
271
298
|
|
|
272
|
-
Load **[
|
|
299
|
+
Load **[analysis-loop.md](references/analysis-loop.md)** and follow its instructions as written.
|
|
273
300
|
|
|
274
301
|
→ If new tasks were created in the plan, return to **Step 6**.
|
|
275
302
|
|
|
@@ -279,6 +306,25 @@ Load **[steps/analysis-loop.md](references/steps/analysis-loop.md)** and follow
|
|
|
279
306
|
|
|
280
307
|
## Step 8: Mark Implementation Complete
|
|
281
308
|
|
|
309
|
+
Before marking complete, present the sign-off:
|
|
310
|
+
|
|
311
|
+
> *Output the next fenced block as markdown (not a code block):*
|
|
312
|
+
|
|
313
|
+
```
|
|
314
|
+
· · · · · · · · · · · ·
|
|
315
|
+
- **`y`/`yes`** — Mark implementation as completed
|
|
316
|
+
- **Comment** — Add context before completing
|
|
317
|
+
· · · · · · · · · · · ·
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**STOP.** Wait for user response.
|
|
321
|
+
|
|
322
|
+
#### If comment
|
|
323
|
+
|
|
324
|
+
Discuss the user's context. If additional work is needed, route back to **Step 6** or **Step 7** as appropriate. Otherwise, re-present the sign-off prompt above.
|
|
325
|
+
|
|
326
|
+
#### If yes
|
|
327
|
+
|
|
282
328
|
Update the tracking file (`docs/workflow/implementation/{topic}/tracking.md`):
|
|
283
329
|
- Set `status: completed`
|
|
284
330
|
- Set `completed: YYYY-MM-DD` (use today's actual date)
|
|
@@ -292,13 +338,13 @@ Commit: `impl({topic}): complete implementation`
|
|
|
292
338
|
|
|
293
339
|
- **[environment-setup.md](references/environment-setup.md)** — Environment setup before implementation
|
|
294
340
|
- **[linter-setup.md](references/linter-setup.md)** — Linter discovery and configuration
|
|
295
|
-
- **[
|
|
296
|
-
- **[
|
|
297
|
-
- **[
|
|
298
|
-
- **[
|
|
299
|
-
- **[
|
|
300
|
-
- **[
|
|
301
|
-
- **[
|
|
341
|
+
- **[task-loop.md](references/task-loop.md)** — Task execution loop, task gates, tracking, commits
|
|
342
|
+
- **[analysis-loop.md](references/analysis-loop.md)** — Analysis and refinement cycle
|
|
343
|
+
- **[invoke-executor.md](references/invoke-executor.md)** — How to invoke the executor agent
|
|
344
|
+
- **[invoke-reviewer.md](references/invoke-reviewer.md)** — How to invoke the reviewer agent
|
|
345
|
+
- **[invoke-analysis.md](references/invoke-analysis.md)** — How to invoke analysis agents
|
|
346
|
+
- **[invoke-synthesizer.md](references/invoke-synthesizer.md)** — How to invoke the synthesis agent
|
|
347
|
+
- **[invoke-task-writer.md](references/invoke-task-writer.md)** — How to invoke the task writer agent
|
|
302
348
|
- **[task-normalisation.md](references/task-normalisation.md)** — Normalised task shape for agent invocation
|
|
303
349
|
- **[tdd-workflow.md](references/tdd-workflow.md)** — TDD cycle (passed to executor agent)
|
|
304
350
|
- **[code-quality.md](references/code-quality.md)** — Quality standards (passed to executor agent)
|
package/skills/technical-implementation/references/{steps/invoke-analysis.md → invoke-analysis.md}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Invoke Analysis Agents
|
|
2
2
|
|
|
3
|
-
*Reference for **[technical-implementation](
|
|
3
|
+
*Reference for **[technical-implementation](../SKILL.md)***
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -27,7 +27,7 @@ Dispatch **all three in parallel** via the Task tool. Each agent receives the sa
|
|
|
27
27
|
1. **Implementation files** — the file list from scope identification
|
|
28
28
|
2. **Specification path** — from the plan's frontmatter (if available)
|
|
29
29
|
3. **Project skill paths** — from `project_skills` in the implementation tracking file
|
|
30
|
-
4. **code-quality.md path** —
|
|
30
|
+
4. **code-quality.md path** — `code-quality.md`
|
|
31
31
|
5. **Topic name** — the implementation topic
|
|
32
32
|
6. **Cycle number** — the current analysis cycle number (from `analysis_cycle` in the tracking file)
|
|
33
33
|
|
|
@@ -35,15 +35,15 @@ Each agent knows its own output path convention and writes findings independentl
|
|
|
35
35
|
|
|
36
36
|
### Agent 1: Duplication
|
|
37
37
|
|
|
38
|
-
- **Agent path**:
|
|
38
|
+
- **Agent path**: `../../../agents/implementation-analysis-duplication.md`
|
|
39
39
|
|
|
40
40
|
### Agent 2: Standards
|
|
41
41
|
|
|
42
|
-
- **Agent path**:
|
|
42
|
+
- **Agent path**: `../../../agents/implementation-analysis-standards.md`
|
|
43
43
|
|
|
44
44
|
### Agent 3: Architecture
|
|
45
45
|
|
|
46
|
-
- **Agent path**:
|
|
46
|
+
- **Agent path**: `../../../agents/implementation-analysis-architecture.md`
|
|
47
47
|
|
|
48
48
|
---
|
|
49
49
|
|
package/skills/technical-implementation/references/{steps/invoke-executor.md → invoke-executor.md}
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Invoke Executor
|
|
2
2
|
|
|
3
|
-
*Reference for **[technical-implementation](
|
|
3
|
+
*Reference for **[technical-implementation](../SKILL.md)***
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
This step invokes the `implementation-task-executor` agent (
|
|
7
|
+
This step invokes the `implementation-task-executor` agent (`../../../agents/implementation-task-executor.md`) to implement one task.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -12,11 +12,11 @@ This step invokes the `implementation-task-executor` agent (`../../../../agents/
|
|
|
12
12
|
|
|
13
13
|
**Every invocation** — initial or re-attempt — includes these file paths:
|
|
14
14
|
|
|
15
|
-
1. **tdd-workflow.md**:
|
|
16
|
-
2. **code-quality.md**:
|
|
15
|
+
1. **tdd-workflow.md**: `tdd-workflow.md`
|
|
16
|
+
2. **code-quality.md**: `code-quality.md`
|
|
17
17
|
3. **Specification path**: from the plan's frontmatter (if available)
|
|
18
18
|
4. **Project skill paths**: from `project_skills` in the implementation tracking file
|
|
19
|
-
5. **Task content**: normalised task content (see [task-normalisation.md](
|
|
19
|
+
5. **Task content**: normalised task content (see [task-normalisation.md](task-normalisation.md))
|
|
20
20
|
6. **Linter commands**: from `linters` in the implementation tracking file (if configured)
|
|
21
21
|
|
|
22
22
|
**Re-attempts after review feedback** additionally include:
|
package/skills/technical-implementation/references/{steps/invoke-reviewer.md → invoke-reviewer.md}
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Invoke Reviewer
|
|
2
2
|
|
|
3
|
-
*Reference for **[technical-implementation](
|
|
3
|
+
*Reference for **[technical-implementation](../SKILL.md)***
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
This step invokes the `implementation-task-reviewer` agent (
|
|
7
|
+
This step invokes the `implementation-task-reviewer` agent (`../../../agents/implementation-task-reviewer.md`) to independently verify a completed task.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Invoke Synthesizer
|
|
2
2
|
|
|
3
|
-
*Reference for **[technical-implementation](
|
|
3
|
+
*Reference for **[technical-implementation](../SKILL.md)***
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -10,11 +10,11 @@ This step invokes the synthesis agent to read analysis findings, deduplicate, an
|
|
|
10
10
|
|
|
11
11
|
## Invoke the Agent
|
|
12
12
|
|
|
13
|
-
**Agent path**:
|
|
13
|
+
**Agent path**: `../../../agents/implementation-analysis-synthesizer.md`
|
|
14
14
|
|
|
15
15
|
Pass via the orchestrator's prompt:
|
|
16
16
|
|
|
17
|
-
1. **Task normalization reference path** —
|
|
17
|
+
1. **Task normalization reference path** — `task-normalisation.md`
|
|
18
18
|
2. **Topic name** — the implementation topic
|
|
19
19
|
3. **Cycle number** — the current analysis cycle number
|
|
20
20
|
4. **Specification path** — from the plan's frontmatter (if available)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Invoke Task Writer
|
|
2
2
|
|
|
3
|
-
*Reference for **[technical-implementation](
|
|
3
|
+
*Reference for **[technical-implementation](../SKILL.md)***
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -10,15 +10,15 @@ This step invokes the task writer agent to create plan tasks from approved analy
|
|
|
10
10
|
|
|
11
11
|
## Invoke the Agent
|
|
12
12
|
|
|
13
|
-
**Agent path**:
|
|
13
|
+
**Agent path**: `../../../agents/implementation-analysis-task-writer.md`
|
|
14
14
|
|
|
15
15
|
Pass via the orchestrator's prompt:
|
|
16
16
|
|
|
17
17
|
1. **Topic name** — the implementation topic
|
|
18
18
|
2. **Staging file path** — `docs/workflow/implementation/{topic}/analysis-tasks-c{cycle-number}.md`
|
|
19
19
|
3. **Plan path** — the implementation plan path
|
|
20
|
-
4. **Plan format reading adapter path** —
|
|
21
|
-
5. **Plan format authoring adapter path** —
|
|
20
|
+
4. **Plan format reading adapter path** — `../../technical-planning/references/output-formats/{format}/reading.md`
|
|
21
|
+
5. **Plan format authoring adapter path** — `../../technical-planning/references/output-formats/{format}/authoring.md`
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Task Loop
|
|
2
2
|
|
|
3
|
-
*Reference for **[technical-implementation](
|
|
3
|
+
*Reference for **[technical-implementation](../SKILL.md)***
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -23,7 +23,7 @@ E. Update progress + commit
|
|
|
23
23
|
|
|
24
24
|
1. Follow the format's **reading.md** instructions to determine the next available task.
|
|
25
25
|
2. If no available tasks remain → skip to **When All Tasks Are Complete**.
|
|
26
|
-
3. Normalise the task content following **[task-normalisation.md](
|
|
26
|
+
3. Normalise the task content following **[task-normalisation.md](task-normalisation.md)**.
|
|
27
27
|
4. Reset `fix_attempts` to `0` in the implementation tracking file.
|
|
28
28
|
|
|
29
29
|
---
|
|
@@ -38,11 +38,13 @@ E. Update progress + commit
|
|
|
38
38
|
|
|
39
39
|
### Executor Blocked
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
> *Output the next fenced block as a code block:*
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
```
|
|
44
|
+
Task {id}: {Task Name} — {blocked/failed}
|
|
44
45
|
|
|
45
46
|
{executor's ISSUES content}
|
|
47
|
+
```
|
|
46
48
|
|
|
47
49
|
> *Output the next fenced block as markdown (not a code block):*
|
|
48
50
|
|
|
@@ -82,28 +84,25 @@ Present the executor's ISSUES to the user:
|
|
|
82
84
|
|
|
83
85
|
Increment `fix_attempts` in the implementation tracking file.
|
|
84
86
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
Announce the fix round (one line, no stop):
|
|
88
|
-
|
|
89
|
-
**Review for Task {id}: {Task Name} — needs changes** (attempt {N}/{max 3}, fix analysis included). Re-invoking executor.
|
|
90
|
-
|
|
91
|
-
→ Return to the top of **B. Execute Task** and re-invoke the executor with the full task content and the reviewer's notes (including fix analysis).
|
|
92
|
-
|
|
93
|
-
#### If `fix_gate_mode: gated`, or `fix_attempts >= 3`
|
|
94
|
-
|
|
95
|
-
If `fix_attempts >= 3`, the executor and reviewer have failed to converge. Prepend:
|
|
96
|
-
|
|
97
|
-
The executor and reviewer have not converged after {N} attempts. Escalating for human review.
|
|
98
|
-
|
|
99
|
-
Present the reviewer's findings and fix analysis to the user:
|
|
87
|
+
> *Output the next fenced block as a code block:*
|
|
100
88
|
|
|
101
|
-
|
|
89
|
+
```
|
|
90
|
+
@if(fix_attempts >= 3)
|
|
91
|
+
The executor and reviewer have not converged after {N} attempts. Escalating for human review.
|
|
92
|
+
@endif
|
|
93
|
+
Review for Task {id}: {Task Name} — needs changes (attempt {N})
|
|
102
94
|
|
|
103
95
|
{ISSUES from reviewer, including FIX, ALTERNATIVE, and CONFIDENCE for each}
|
|
104
96
|
|
|
105
97
|
Notes (non-blocking):
|
|
106
98
|
{NOTES from reviewer}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
#### If `fix_gate_mode: auto` and `fix_attempts < 3`
|
|
102
|
+
|
|
103
|
+
→ Return to the top of **B. Execute Task** and re-invoke the executor with the full task content and the reviewer's notes (including fix analysis).
|
|
104
|
+
|
|
105
|
+
#### If `fix_gate_mode: gated`, or `fix_attempts >= 3`
|
|
107
106
|
|
|
108
107
|
> *Output the next fenced block as markdown (not a code block):*
|
|
109
108
|
|
|
@@ -112,7 +111,8 @@ Notes (non-blocking):
|
|
|
112
111
|
- **`y`/`yes`** — Accept the review and fix analysis, pass to executor
|
|
113
112
|
- **`a`/`auto`** — Accept and auto-approve future fix analyses
|
|
114
113
|
- **`s`/`skip`** — Override the reviewer and proceed as-is
|
|
115
|
-
- **
|
|
114
|
+
- **Ask** — Ask questions about the review (doesn't accept or reject)
|
|
115
|
+
- **Comment** — Accept with adjustments — pass your own direction to the executor alongside the review
|
|
116
116
|
· · · · · · · · · · · ·
|
|
117
117
|
```
|
|
118
118
|
|
|
@@ -121,22 +121,31 @@ Notes (non-blocking):
|
|
|
121
121
|
- **`y`/`yes`**: → Return to the top of **B. Execute Task** and re-invoke the executor with the full task content and the reviewer's notes (including fix analysis).
|
|
122
122
|
- **`auto`**: Note that `fix_gate_mode` should be updated to `auto` during the next commit step. → Return to the top of **B. Execute Task** and re-invoke the executor with the full task content and the reviewer's notes (including fix analysis).
|
|
123
123
|
- **`skip`**: → Proceed to **D. Task Gate**.
|
|
124
|
+
- **Ask**: Answer the user's questions about the review. When complete, re-present the Review Changes options above. Repeat until the user selects a terminal option (`yes`, `auto`, `skip`, or Comment).
|
|
124
125
|
- **Comment**: → Return to the top of **B. Execute Task** and re-invoke the executor with the full task content, the reviewer's notes, and the user's commentary.
|
|
125
126
|
|
|
126
127
|
---
|
|
127
128
|
|
|
128
129
|
## D. Task Gate
|
|
129
130
|
|
|
130
|
-
After the reviewer approves a task,
|
|
131
|
-
|
|
132
|
-
### If `task_gate_mode: gated`
|
|
131
|
+
After the reviewer approves a task, present the result:
|
|
133
132
|
|
|
134
|
-
|
|
133
|
+
> *Output the next fenced block as a code block:*
|
|
135
134
|
|
|
136
|
-
|
|
135
|
+
```
|
|
136
|
+
Task {id}: {Task Name} — approved
|
|
137
137
|
|
|
138
138
|
Phase: {phase number} — {phase name}
|
|
139
139
|
{executor's SUMMARY — brief commentary, decisions, implementation notes}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Check the `task_gate_mode` field in the implementation tracking file.
|
|
143
|
+
|
|
144
|
+
#### If `task_gate_mode: auto`
|
|
145
|
+
|
|
146
|
+
→ Proceed to **E. Update Progress and Commit**.
|
|
147
|
+
|
|
148
|
+
#### If `task_gate_mode: gated`
|
|
140
149
|
|
|
141
150
|
> *Output the next fenced block as markdown (not a code block):*
|
|
142
151
|
|
|
@@ -144,8 +153,9 @@ Phase: {phase number} — {phase name}
|
|
|
144
153
|
· · · · · · · · · · · ·
|
|
145
154
|
**Options:**
|
|
146
155
|
- **`y`/`yes`** — Approve, commit, continue to next task
|
|
147
|
-
- **`a`/`auto`** — Approve this and all future
|
|
148
|
-
- **
|
|
156
|
+
- **`a`/`auto`** — Approve this and all future tasks automatically (skips review prompts and questions)
|
|
157
|
+
- **Ask** — Ask questions about the implementation (doesn't approve or reject)
|
|
158
|
+
- **Comment** — Request changes — pass feedback or commentary (triggers a fix round)
|
|
149
159
|
· · · · · · · · · · · ·
|
|
150
160
|
```
|
|
151
161
|
|
|
@@ -153,15 +163,8 @@ Phase: {phase number} — {phase name}
|
|
|
153
163
|
|
|
154
164
|
- **`y`/`yes`**: → Proceed to **E. Update Progress and Commit**.
|
|
155
165
|
- **`auto`**: Note that `task_gate_mode` should be updated to `auto` during the commit step. → Proceed to **E. Update Progress and Commit**.
|
|
156
|
-
- **
|
|
157
|
-
|
|
158
|
-
### If `task_gate_mode: auto`
|
|
159
|
-
|
|
160
|
-
Announce the result (one line, no stop):
|
|
161
|
-
|
|
162
|
-
**Task {id}: {Task Name} — approved** (phase {N}: {phase name}, {brief summary}). Committing.
|
|
163
|
-
|
|
164
|
-
→ Proceed to **E. Update Progress and Commit**.
|
|
166
|
+
- **Ask**: Answer the user's questions about the implementation. When complete, re-present the Task Gate options above. Repeat until the user selects a terminal option (`yes`, `auto`, or Comment).
|
|
167
|
+
- **Comment**: → Return to the top of **B. Execute Task** and re-invoke the executor with the full task content and the user's feedback.
|
|
165
168
|
|
|
166
169
|
---
|
|
167
170
|
|
|
@@ -195,6 +198,10 @@ This is the end of this iteration.
|
|
|
195
198
|
|
|
196
199
|
## When All Tasks Are Complete
|
|
197
200
|
|
|
198
|
-
|
|
201
|
+
> *Output the next fenced block as a code block:*
|
|
202
|
+
|
|
203
|
+
```
|
|
204
|
+
All tasks complete. {M} tasks implemented.
|
|
205
|
+
```
|
|
199
206
|
|
|
200
207
|
→ Return to the skill for **Step 7**.
|