@leeovery/claude-technical-workflows 2.1.34 → 2.1.35
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 +1 -2
- package/agents/planning-task-author.md +46 -16
- package/agents/review-findings-synthesizer.md +14 -18
- package/agents/review-task-verifier.md +3 -4
- package/package.json +1 -1
- package/skills/begin-implementation/SKILL.md +5 -1
- package/skills/begin-planning/SKILL.md +5 -1
- package/skills/migrate/SKILL.md +2 -1
- package/skills/migrate/scripts/migrate.sh +31 -28
- package/skills/migrate/scripts/migrations/001-discussion-frontmatter.sh +1 -15
- package/skills/migrate/scripts/migrations/002-specification-frontmatter.sh +0 -14
- package/skills/migrate/scripts/migrations/003-planning-frontmatter.sh +0 -14
- package/skills/migrate/scripts/migrations/004-sources-object-format.sh +0 -12
- package/skills/migrate/scripts/migrations/005-plan-external-deps-frontmatter.sh +0 -12
- package/skills/migrate/scripts/migrations/006-directory-restructure.sh +2 -22
- package/skills/migrate/scripts/migrations/007-tasks-subdirectory.sh +1 -17
- package/skills/migrate/scripts/migrations/008-review-directory-structure.sh +0 -10
- package/skills/migrate/scripts/migrations/009-review-per-plan-storage.sh +117 -0
- package/skills/migrate/scripts/migrations/010-gitignore-sessions.sh +67 -0
- package/skills/start-discussion/SKILL.md +1 -1
- package/skills/start-discussion/references/handle-selection.md +1 -1
- package/skills/start-discussion/references/research-analysis.md +3 -3
- package/skills/start-discussion/scripts/discovery.sh +1 -1
- package/skills/start-review/references/display-plans.md +2 -2
- package/skills/start-review/references/invoke-skill.md +20 -26
- package/skills/start-review/references/select-plans.md +1 -1
- package/skills/start-review/scripts/discovery.sh +15 -64
- package/skills/start-specification/SKILL.md +1 -1
- package/skills/start-specification/references/analysis-flow.md +2 -2
- package/skills/start-specification/references/display-analyze.md +1 -1
- package/skills/start-specification/references/display-groupings.md +3 -3
- package/skills/start-specification/references/display-specs-menu.md +1 -1
- package/skills/start-specification/scripts/discovery.sh +1 -1
- package/skills/technical-planning/SKILL.md +4 -3
- package/skills/technical-planning/references/author-tasks.md +119 -35
- package/skills/technical-planning/references/output-formats/tick/about.md +3 -2
- package/skills/technical-planning/references/output-formats/tick/graph.md +2 -0
- package/skills/technical-planning/references/output-formats/tick/reading.md +2 -0
- package/skills/technical-planning/references/plan-construction.md +11 -15
- package/skills/technical-planning/references/review-integrity.md +1 -1
- package/skills/technical-review/SKILL.md +3 -13
- package/skills/technical-review/references/invoke-review-synthesizer.md +3 -3
- package/skills/technical-review/references/invoke-task-verifiers.md +5 -12
- package/skills/technical-review/references/produce-review.md +2 -4
- package/skills/technical-review/references/review-actions-loop.md +14 -22
- package/skills/technical-review/references/template.md +1 -21
- package/agents/review-product-assessor.md +0 -112
- package/skills/technical-review/references/invoke-product-assessor.md +0 -57
|
@@ -4,13 +4,25 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
This step uses the `planning-task-author` agent (`../../../agents/planning-task-author.md`) to write full detail for
|
|
7
|
+
This step uses the `planning-task-author` agent (`../../../agents/planning-task-author.md`) to write full detail for all tasks in a phase. One sub-agent authors all tasks, writing to a scratch file. The orchestrator then handles per-task approval and format-specific writing to the plan.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Section 1: Prepare the Scratch File
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Scratch file path: `docs/workflow/.cache/planning/{topic}/phase-{N}.md`
|
|
14
|
+
|
|
15
|
+
Create the `docs/workflow/.cache/planning/{topic}/` directory if it does not exist.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Section 2: Invoke the Agent (Batch)
|
|
20
|
+
|
|
21
|
+
> *Output the next fenced block as a code block:*
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Authoring {count} tasks for Phase {N}: {Phase Name}...
|
|
25
|
+
```
|
|
14
26
|
|
|
15
27
|
Invoke `planning-task-author` with these file paths:
|
|
16
28
|
|
|
@@ -19,36 +31,65 @@ Invoke `planning-task-author` with these file paths:
|
|
|
19
31
|
3. **Cross-cutting specs**: paths from the Plan Index File's `cross_cutting_specs:` field (if any)
|
|
20
32
|
4. **task-design.md**: `task-design.md`
|
|
21
33
|
5. **All approved phases**: the complete phase structure from the Plan Index File body
|
|
22
|
-
6. **Task list for current phase**: the approved task table
|
|
23
|
-
7. **
|
|
24
|
-
8. **Output format authoring reference**: path to the format's `authoring.md` (e.g., `output-formats/{format}/authoring.md`)
|
|
34
|
+
6. **Task list for current phase**: the approved task table (ALL tasks in the phase)
|
|
35
|
+
7. **Scratch file path**: `docs/workflow/.cache/planning/{topic}/phase-{N}.md`
|
|
25
36
|
|
|
26
|
-
|
|
37
|
+
The agent writes all tasks to the scratch file and returns.
|
|
27
38
|
|
|
28
|
-
|
|
39
|
+
---
|
|
29
40
|
|
|
30
|
-
|
|
41
|
+
## Section 3: Validate Scratch File
|
|
31
42
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
43
|
+
Read the scratch file and count tasks. Verify task count matches the task table in the Plan Index File for this phase.
|
|
44
|
+
|
|
45
|
+
#### If mismatch
|
|
46
|
+
|
|
47
|
+
Re-invoke the agent with the same inputs.
|
|
48
|
+
|
|
49
|
+
#### If valid
|
|
50
|
+
|
|
51
|
+
→ Proceed to **Section 4**.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Section 4: Check Gate Mode
|
|
35
56
|
|
|
36
57
|
Check `author_gate_mode` in the Plan Index File frontmatter.
|
|
37
58
|
|
|
38
59
|
#### If `author_gate_mode: auto`
|
|
39
60
|
|
|
40
|
-
**Auto mode removes the approval pause — not the sequential process.** Each task is still invoked, authored, and logged one at a time, in order. Do not batch, skip ahead, or create multiple tasks concurrently.
|
|
41
|
-
|
|
42
61
|
> *Output the next fenced block as a code block:*
|
|
43
62
|
|
|
44
63
|
```
|
|
45
|
-
|
|
64
|
+
Phase {N}: {count} tasks authored. Auto-approved. Writing to plan.
|
|
46
65
|
```
|
|
47
66
|
|
|
48
|
-
→
|
|
67
|
+
→ Jump to **Section 6**.
|
|
49
68
|
|
|
50
69
|
#### If `author_gate_mode: gated`
|
|
51
70
|
|
|
71
|
+
→ Enter **Section 5**.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Section 5: Approval Loop
|
|
76
|
+
|
|
77
|
+
For each task in the scratch file, in order:
|
|
78
|
+
|
|
79
|
+
#### If task status is `approved`
|
|
80
|
+
|
|
81
|
+
Skip — already approved from a previous pass.
|
|
82
|
+
|
|
83
|
+
#### If task status is `pending`
|
|
84
|
+
|
|
85
|
+
Present the full task content:
|
|
86
|
+
|
|
87
|
+
> *Output the next fenced block as markdown (not a code block):*
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
{task detail from scratch file}
|
|
91
|
+
```
|
|
92
|
+
|
|
52
93
|
**Task {M} of {total}: {Task Name}**
|
|
53
94
|
|
|
54
95
|
> *Output the next fenced block as markdown (not a code block):*
|
|
@@ -56,8 +97,8 @@ Task {M} of {total}: {Task Name} — authored. Logging to plan.
|
|
|
56
97
|
```
|
|
57
98
|
· · · · · · · · · · · ·
|
|
58
99
|
**To proceed:**
|
|
59
|
-
- **`y`/`yes`** — Approved. I'll
|
|
60
|
-
- **`a`/`auto`** — Approve this and all remaining
|
|
100
|
+
- **`y`/`yes`** — Approved. I'll write it to the plan.
|
|
101
|
+
- **`a`/`auto`** — Approve this and all remaining tasks automatically
|
|
61
102
|
- **Or tell me what to change.**
|
|
62
103
|
- **Or navigate** — a different phase or task, or the leading edge.
|
|
63
104
|
· · · · · · · · · · · ·
|
|
@@ -65,36 +106,69 @@ Task {M} of {total}: {Task Name} — authored. Logging to plan.
|
|
|
65
106
|
|
|
66
107
|
**STOP.** Wait for the user's response.
|
|
67
108
|
|
|
109
|
+
#### If approved (`y`/`yes`)
|
|
110
|
+
|
|
111
|
+
Mark the task `approved` in the scratch file. Continue to the next task.
|
|
112
|
+
|
|
113
|
+
#### If `auto`
|
|
114
|
+
|
|
115
|
+
Mark the task `approved` in the scratch file. Set all remaining `pending` tasks to `approved`. Update `author_gate_mode: auto` in the Plan Index File frontmatter.
|
|
116
|
+
|
|
117
|
+
→ Jump to **Section 6**.
|
|
118
|
+
|
|
68
119
|
#### If the user provides feedback
|
|
69
120
|
|
|
70
|
-
|
|
71
|
-
- **Previous output**: the current task detail
|
|
72
|
-
- **User feedback**: what the user wants changed
|
|
121
|
+
Mark the task `rejected` in the scratch file and add the feedback as a blockquote:
|
|
73
122
|
|
|
74
|
-
|
|
123
|
+
```markdown
|
|
124
|
+
## {task-id} | rejected
|
|
125
|
+
|
|
126
|
+
> **Feedback**: {user's feedback here}
|
|
127
|
+
|
|
128
|
+
### Task {seq}: {Task Name}
|
|
129
|
+
...
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Continue to the next task.
|
|
75
133
|
|
|
76
134
|
#### If the user navigates
|
|
77
135
|
|
|
78
|
-
→ Return to **Plan Construction**.
|
|
136
|
+
→ Return to **Plan Construction**. The scratch file preserves approval state.
|
|
79
137
|
|
|
80
|
-
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
### Section 5b: Revision
|
|
81
141
|
|
|
82
|
-
|
|
142
|
+
After completing the approval loop, check for rejected tasks.
|
|
83
143
|
|
|
84
|
-
|
|
144
|
+
#### If no rejected tasks
|
|
85
145
|
|
|
86
|
-
|
|
146
|
+
→ Proceed to **Section 6**.
|
|
87
147
|
|
|
88
|
-
|
|
148
|
+
#### If rejected tasks exist
|
|
89
149
|
|
|
90
|
-
|
|
150
|
+
> *Output the next fenced block as a code block:*
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
{N} tasks need revision. Re-invoking author agent...
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
→ Return to **Section 2**. The agent receives the scratch file with rejected tasks and feedback, rewrites only those, and the flow continues through validation, gate check, and approval as normal.
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Section 6: Write to Plan
|
|
91
161
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
162
|
+
> **CHECKPOINT**: If `author_gate_mode: gated`, verify all tasks in the scratch file are marked `approved` before writing.
|
|
163
|
+
|
|
164
|
+
For each approved task in the scratch file, in order:
|
|
165
|
+
|
|
166
|
+
1. Read the task content from the scratch file
|
|
167
|
+
2. Write to the output format (format-specific — see the format's **[authoring.md](output-formats/{format}/authoring.md)**)
|
|
168
|
+
3. Update the task table in the Plan Index File: set `status: authored` and set `Ext ID` to the external identifier for the task as exposed by the output format
|
|
169
|
+
4. If the Plan Index File frontmatter `ext_id` is empty, set it to the external identifier for the plan as exposed by the output format
|
|
170
|
+
5. If the current phase's `ext_id` is empty, set it to the external identifier for the phase as exposed by the output format
|
|
171
|
+
6. Advance the `planning:` block in frontmatter to the next pending task (or next phase if this was the last task)
|
|
98
172
|
7. Commit: `planning({topic}): author task {task-id} ({task name})`
|
|
99
173
|
|
|
100
174
|
> *Output the next fenced block as a code block:*
|
|
@@ -103,4 +177,14 @@ See **[plan-index-schema.md](plan-index-schema.md)** for field definitions and l
|
|
|
103
177
|
Task {M} of {total}: {Task Name} — authored.
|
|
104
178
|
```
|
|
105
179
|
|
|
180
|
+
Repeat for each task.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Section 7: Cleanup
|
|
185
|
+
|
|
186
|
+
Delete the scratch file: `rm docs/workflow/.cache/planning/{topic}/phase-{N}.md`
|
|
187
|
+
|
|
188
|
+
Remove the `docs/workflow/.cache/planning/{topic}/` directory if empty.
|
|
189
|
+
|
|
106
190
|
→ Return to **Plan Construction**.
|
|
@@ -39,8 +39,9 @@ tick init
|
|
|
39
39
|
Add to `.gitignore`:
|
|
40
40
|
|
|
41
41
|
```
|
|
42
|
-
.tick
|
|
42
|
+
.tick/cache.db
|
|
43
43
|
.tick/lock
|
|
44
|
+
.tick/.tasks-*.jsonl.tmp
|
|
44
45
|
```
|
|
45
46
|
|
|
46
47
|
## Structure Mapping
|
|
@@ -66,7 +67,7 @@ Tasks are stored in a `.tick/` directory at the project root:
|
|
|
66
67
|
```
|
|
67
68
|
.tick/
|
|
68
69
|
├── tasks.jsonl # Append-only source of truth (git-friendly)
|
|
69
|
-
├── .
|
|
70
|
+
├── cache.db # SQLite query cache (auto-rebuilt, do not commit)
|
|
70
71
|
└── lock # File lock for concurrent access
|
|
71
72
|
```
|
|
72
73
|
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Tick has native support for priority and blocking dependencies with cycle detection. This file is used by the graphing agent after all tasks have been authored.
|
|
4
4
|
|
|
5
|
+
**Natural ordering principle**: Tasks execute in natural order (by priority, then creation date) when no dependencies override it. The dependency grapher only adds edges that change execution order — if tasks are already in the right sequence, explicit dependencies add noise without value. See also the dependency grapher agent's "When NOT to add a dependency" rules.
|
|
6
|
+
|
|
5
7
|
## Priority
|
|
6
8
|
|
|
7
9
|
| Level | Name | Value |
|
|
@@ -59,3 +59,5 @@ tick ready --parent <topic-id>
|
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
If `tick ready` returns no results, either all tasks are complete or remaining tasks are blocked.
|
|
62
|
+
|
|
63
|
+
**Natural ordering convention**: `tick ready` always returns results in the correct execution order — by priority, then creation date. Consumers should take the first result as the next task. Because creation date preserves authoring order, sequential intra-phase tasks execute in natural order without needing explicit dependencies. Only add dependencies when the correct order differs from the natural order.
|
|
@@ -118,31 +118,27 @@ Phase {N}: {Phase Name} — task list confirmed. Proceeding to authoring.
|
|
|
118
118
|
|
|
119
119
|
## Author Tasks for the Phase
|
|
120
120
|
|
|
121
|
-
|
|
121
|
+
Tasks are authored in a single batch per phase. One sub-agent authors all tasks for the phase, writing to a scratch file. The orchestrator then handles approval and writing to the plan format. Never invoke multiple authoring agents concurrently. Never batch beyond a single phase.
|
|
122
122
|
|
|
123
|
-
|
|
123
|
+
#### If all tasks in the phase have status `authored`
|
|
124
124
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
**Never** invoke multiple Step B agents concurrently. **Never** batch or skip ahead.
|
|
128
|
-
|
|
129
|
-
#### If the task status is `authored`
|
|
130
|
-
|
|
131
|
-
Already written.
|
|
125
|
+
All tasks already written.
|
|
132
126
|
|
|
133
127
|
> *Output the next fenced block as a code block:*
|
|
134
128
|
|
|
135
129
|
```
|
|
136
|
-
|
|
130
|
+
Phase {N}: {Phase Name} — all tasks already authored.
|
|
137
131
|
```
|
|
138
132
|
|
|
139
|
-
Continue to the next
|
|
133
|
+
→ Continue to the next phase.
|
|
134
|
+
|
|
135
|
+
#### If any tasks in the phase have status `pending`
|
|
140
136
|
|
|
141
|
-
|
|
137
|
+
→ Go to **Step B** for the entire phase.
|
|
142
138
|
|
|
143
|
-
|
|
139
|
+
After Step B returns, all tasks in the phase are authored.
|
|
144
140
|
|
|
145
|
-
|
|
141
|
+
If the user navigates mid-approval, the scratch file preserves approval state. On return, resume from the first non-approved task.
|
|
146
142
|
|
|
147
143
|
#### When all tasks in the phase are authored
|
|
148
144
|
|
|
@@ -178,4 +174,4 @@ Load **[define-tasks.md](define-tasks.md)** and follow its instructions as writt
|
|
|
178
174
|
|
|
179
175
|
## Step B: Author Tasks
|
|
180
176
|
|
|
181
|
-
Load **[author-tasks.md](author-tasks.md)** and follow its instructions as written. This step authors **
|
|
177
|
+
Load **[author-tasks.md](author-tasks.md)** and follow its instructions as written. This step authors **all tasks for the phase** via a batch agent and returns.
|
|
@@ -47,7 +47,7 @@ Read the plan end-to-end — carefully, as if you were about to implement it. Fo
|
|
|
47
47
|
- Task dependencies are explicit and correct — each dependency reflects a genuine data or capability requirement
|
|
48
48
|
- No circular dependencies exist in the task graph
|
|
49
49
|
- Priority assignments reflect graph position — foundation tasks and tasks that unblock others are prioritised appropriately
|
|
50
|
-
-
|
|
50
|
+
- Tasks within a phase execute in natural order (by task ID) unless dependencies or priorities override it. Do not flag missing dependencies for sequential intra-phase tasks where natural order already produces the correct sequence. Only flag dependency issues where: execution would happen in the wrong order without an explicit dependency, a cross-phase dependency is missing, or a convergence point (task needing multiple predecessors) lacks explicit edges.
|
|
51
51
|
|
|
52
52
|
5. **Task Self-Containment**
|
|
53
53
|
- Each task contains all context needed for execution
|
|
@@ -129,25 +129,15 @@ Load **[invoke-task-verifiers.md](references/invoke-task-verifiers.md)** and fol
|
|
|
129
129
|
|
|
130
130
|
---
|
|
131
131
|
|
|
132
|
-
## Step 4:
|
|
133
|
-
|
|
134
|
-
Load **[invoke-product-assessor.md](references/invoke-product-assessor.md)** and follow its instructions as written.
|
|
135
|
-
|
|
136
|
-
**STOP.** Do not proceed until the product assessor has returned.
|
|
137
|
-
|
|
138
|
-
→ Proceed to **Step 5**.
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## Step 5: Produce Review
|
|
132
|
+
## Step 4: Produce Review
|
|
143
133
|
|
|
144
134
|
Load **[produce-review.md](references/produce-review.md)** and follow its instructions as written.
|
|
145
135
|
|
|
146
|
-
→ Proceed to **Step
|
|
136
|
+
→ Proceed to **Step 5**.
|
|
147
137
|
|
|
148
138
|
---
|
|
149
139
|
|
|
150
|
-
## Step
|
|
140
|
+
## Step 5: Review Actions
|
|
151
141
|
|
|
152
142
|
Load **[review-actions-loop.md](references/review-actions-loop.md)** and follow its instructions.
|
|
153
143
|
|
|
@@ -26,9 +26,9 @@ Dispatch **one agent** via the Task tool.
|
|
|
26
26
|
|
|
27
27
|
The synthesizer receives:
|
|
28
28
|
|
|
29
|
-
1. **
|
|
30
|
-
2. **Review
|
|
31
|
-
3. **Specification path
|
|
29
|
+
1. **Plan topic** — the plan being synthesized
|
|
30
|
+
2. **Review path** — path to `r{N}/` directory (review summary + QA files)
|
|
31
|
+
3. **Specification path** — from the plan's frontmatter
|
|
32
32
|
4. **Cycle number** — the review remediation cycle number
|
|
33
33
|
|
|
34
34
|
---
|
|
@@ -35,13 +35,7 @@ From each plan in scope, list every task across all phases:
|
|
|
35
35
|
Ensure the review output directory exists:
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
mkdir -p docs/workflow/review/{
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
For multi-plan reviews, also create per-plan subdirectories:
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
mkdir -p docs/workflow/review/{scope}/r{N}/{plan-topic}
|
|
38
|
+
mkdir -p docs/workflow/review/{topic}/r{N}
|
|
45
39
|
```
|
|
46
40
|
|
|
47
41
|
---
|
|
@@ -66,10 +60,9 @@ Each verifier receives:
|
|
|
66
60
|
3. **Plan path** — the full plan for phase context
|
|
67
61
|
4. **Project skill paths** — from Step 2 discovery
|
|
68
62
|
5. **Review checklist path** — `skills/technical-review/references/review-checklist.md`
|
|
69
|
-
6. **
|
|
63
|
+
6. **Topic** — the plan topic name (used for output directory)
|
|
70
64
|
7. **Review number** — version number (e.g., 1 for `r1/`)
|
|
71
|
-
8. **
|
|
72
|
-
9. **Task index** — sequential number for file naming (1, 2, 3...)
|
|
65
|
+
8. **Task index** — sequential number for file naming (1, 2, 3...)
|
|
73
66
|
|
|
74
67
|
If any verifier fails (error, timeout), record the failure and continue — aggregate what's available.
|
|
75
68
|
|
|
@@ -85,7 +78,7 @@ FINDINGS_COUNT: {N blocking issues}
|
|
|
85
78
|
SUMMARY: {1 sentence}
|
|
86
79
|
```
|
|
87
80
|
|
|
88
|
-
Full findings are written to `docs/workflow/review/{
|
|
81
|
+
Full findings are written to `docs/workflow/review/{topic}/r{N}/qa-task-{index}.md`.
|
|
89
82
|
|
|
90
83
|
---
|
|
91
84
|
|
|
@@ -93,7 +86,7 @@ Full findings are written to `docs/workflow/review/{scope}/r{N}/qa-task-{index}.
|
|
|
93
86
|
|
|
94
87
|
Once all batches have completed:
|
|
95
88
|
|
|
96
|
-
1. Read all `docs/workflow/review/{
|
|
89
|
+
1. Read all `docs/workflow/review/{topic}/r{N}/qa-task-*.md` files
|
|
97
90
|
2. Synthesize findings from file contents:
|
|
98
91
|
- Collect all tasks with `STATUS: Incomplete` or `STATUS: Issues Found` as blocking issues
|
|
99
92
|
- Collect all test issues (under/over-tested)
|
|
@@ -4,17 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
Aggregate findings
|
|
7
|
+
Aggregate QA findings into a review document using the **[template.md](template.md)**.
|
|
8
8
|
|
|
9
|
-
Write the review to `docs/workflow/review/{
|
|
9
|
+
Write the review to `docs/workflow/review/{topic}/r{N}/review.md`. The review is always per-plan. The review number `r{N}` is passed in from the entry point.
|
|
10
10
|
|
|
11
11
|
**QA Verdict** (from Step 3):
|
|
12
12
|
- **Approve** — All acceptance criteria met, no blocking issues
|
|
13
13
|
- **Request Changes** — Missing requirements, broken functionality, inadequate tests
|
|
14
14
|
- **Comments Only** — Minor suggestions, non-blocking observations
|
|
15
15
|
|
|
16
|
-
**Product Assessment** (from Step 4) — always advisory, presented alongside the verdict.
|
|
17
|
-
|
|
18
16
|
Commit: `review({topic}): complete review`
|
|
19
17
|
|
|
20
18
|
Present the review to the user.
|
|
@@ -122,23 +122,19 @@ No actionable tasks synthesized.
|
|
|
122
122
|
|
|
123
123
|
## C. Approval Gate
|
|
124
124
|
|
|
125
|
-
Read the staging file from `docs/workflow/implementation/{
|
|
125
|
+
Read the staging file from `docs/workflow/implementation/{topic}/review-tasks-c{cycle-number}.md`.
|
|
126
126
|
|
|
127
127
|
Check `gate_mode` in the staging file frontmatter (`gated` or `auto`).
|
|
128
128
|
|
|
129
|
-
Present an overview
|
|
129
|
+
Present an overview:
|
|
130
130
|
|
|
131
131
|
> *Output the next fenced block as a code block:*
|
|
132
132
|
|
|
133
133
|
```
|
|
134
134
|
Review synthesis cycle {N}: {K} proposed tasks
|
|
135
135
|
|
|
136
|
-
{plan-topic}:
|
|
137
136
|
1. {title} ({severity})
|
|
138
137
|
2. {title} ({severity})
|
|
139
|
-
|
|
140
|
-
{plan-topic-2}:
|
|
141
|
-
3. {title} ({severity})
|
|
142
138
|
```
|
|
143
139
|
|
|
144
140
|
Then present each task with `status: pending` individually:
|
|
@@ -146,7 +142,7 @@ Then present each task with `status: pending` individually:
|
|
|
146
142
|
> *Output the next fenced block as markdown (not a code block):*
|
|
147
143
|
|
|
148
144
|
```
|
|
149
|
-
**Task {current}/{total}: {title}** ({severity})
|
|
145
|
+
**Task {current}/{total}: {title}** ({severity})
|
|
150
146
|
Sources: {sources}
|
|
151
147
|
|
|
152
148
|
**Problem**: {problem}
|
|
@@ -225,7 +221,7 @@ After all tasks processed:
|
|
|
225
221
|
Commit the staging file updates:
|
|
226
222
|
|
|
227
223
|
```
|
|
228
|
-
review({
|
|
224
|
+
review({topic}): synthesis cycle {N} — tasks skipped
|
|
229
225
|
```
|
|
230
226
|
|
|
231
227
|
**STOP.** Do not proceed — terminal condition.
|
|
@@ -234,22 +230,18 @@ review({scope}): synthesis cycle {N} — tasks skipped
|
|
|
234
230
|
|
|
235
231
|
## D. Create Tasks in Plan
|
|
236
232
|
|
|
237
|
-
For
|
|
238
|
-
|
|
239
|
-
Process plans sequentially — each writes to a different plan.
|
|
240
|
-
|
|
241
|
-
For each plan:
|
|
233
|
+
For approved tasks in the staging file, invoke the task writer.
|
|
242
234
|
|
|
243
|
-
1. Filter staging file to tasks with `
|
|
235
|
+
1. Filter staging file to tasks with `status: approved`
|
|
244
236
|
2. Load **[invoke-review-task-writer.md](invoke-review-task-writer.md)** and follow its instructions
|
|
245
|
-
3. Wait for the task writer to return
|
|
237
|
+
3. Wait for the task writer to return
|
|
246
238
|
|
|
247
|
-
**STOP.** Do not proceed until
|
|
239
|
+
**STOP.** Do not proceed until the task writer has returned.
|
|
248
240
|
|
|
249
241
|
Commit all changes (staging file, plan tasks, Plan Index Files):
|
|
250
242
|
|
|
251
243
|
```
|
|
252
|
-
review({
|
|
244
|
+
review({topic}): add review remediation ({K} tasks)
|
|
253
245
|
```
|
|
254
246
|
|
|
255
247
|
→ Proceed to **E. Re-open Implementation + Plan Mode Handoff**.
|
|
@@ -269,19 +261,19 @@ For each plan that received new tasks:
|
|
|
269
261
|
3. Commit tracking changes:
|
|
270
262
|
|
|
271
263
|
```
|
|
272
|
-
review({
|
|
264
|
+
review({topic}): re-open implementation tracking
|
|
273
265
|
```
|
|
274
266
|
|
|
275
267
|
Then enter plan mode and write the following plan:
|
|
276
268
|
|
|
277
269
|
```
|
|
278
|
-
# Review Actions Complete: {
|
|
270
|
+
# Review Actions Complete: {topic}
|
|
279
271
|
|
|
280
272
|
Review findings have been synthesized into {N} implementation tasks.
|
|
281
273
|
|
|
282
274
|
## Summary
|
|
283
275
|
|
|
284
|
-
{
|
|
276
|
+
{Summary, e.g., "tick-core: 3 tasks in Phase 9"}
|
|
285
277
|
|
|
286
278
|
## Instructions
|
|
287
279
|
|
|
@@ -290,9 +282,9 @@ Review findings have been synthesized into {N} implementation tasks.
|
|
|
290
282
|
|
|
291
283
|
## Context
|
|
292
284
|
|
|
293
|
-
-
|
|
285
|
+
- Plan updated: {topic}
|
|
294
286
|
- Tasks created: {total count}
|
|
295
|
-
- Implementation tracking: re-opened
|
|
287
|
+
- Implementation tracking: re-opened
|
|
296
288
|
|
|
297
289
|
## How to proceed
|
|
298
290
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
```markdown
|
|
10
10
|
# Implementation Review: {Topic / Product}
|
|
11
11
|
|
|
12
|
-
**
|
|
12
|
+
**Plan**: {topic}
|
|
13
13
|
**QA Verdict**: Approve | Request Changes | Comments Only
|
|
14
14
|
|
|
15
15
|
## Summary
|
|
@@ -34,26 +34,6 @@
|
|
|
34
34
|
### Required Changes (if any)
|
|
35
35
|
1. [Specific actionable change]
|
|
36
36
|
|
|
37
|
-
## Product Assessment
|
|
38
|
-
|
|
39
|
-
### Robustness
|
|
40
|
-
[Where would this break under real-world usage?]
|
|
41
|
-
|
|
42
|
-
### Gaps
|
|
43
|
-
[What's obviously missing now the product exists?]
|
|
44
|
-
|
|
45
|
-
### Cross-Plan Consistency (multi/all only)
|
|
46
|
-
[Are patterns consistent across features?]
|
|
47
|
-
|
|
48
|
-
### Integration Seams (multi/all only)
|
|
49
|
-
[Do independently-built features connect cleanly?]
|
|
50
|
-
|
|
51
|
-
### Strengthening Opportunities
|
|
52
|
-
[Priority improvements for production readiness]
|
|
53
|
-
|
|
54
|
-
### What's Next
|
|
55
|
-
[What does this enable? What should be built next?]
|
|
56
|
-
|
|
57
37
|
## Recommendations
|
|
58
38
|
[Combined non-blocking suggestions]
|
|
59
39
|
```
|