@leeovery/claude-technical-workflows 2.1.36 → 2.1.38
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 +5 -4
- package/package.json +1 -1
- package/skills/begin-review/SKILL.md +90 -0
- package/skills/continue-feature/SKILL.md +18 -9
- package/skills/continue-feature/references/detect-phase.md +17 -10
- package/skills/continue-feature/references/invoke-implementation.md +2 -2
- package/skills/continue-feature/references/invoke-planning.md +2 -2
- package/skills/continue-feature/references/invoke-review.md +43 -0
- package/skills/continue-feature/references/invoke-specification.md +2 -2
- package/skills/continue-feature/references/phase-bridge.md +3 -4
- package/skills/continue-feature/scripts/discovery.sh +18 -1
- package/skills/migrate/scripts/migrations/010-gitignore-sessions.sh +2 -0
- package/skills/start-review/SKILL.md +1 -1
- package/skills/start-review/references/display-plans.md +3 -3
- package/skills/start-review/scripts/discovery.sh +24 -0
- package/skills/technical-implementation/references/task-loop.md +9 -2
- package/skills/technical-planning/references/output-formats/tick/updating.md +32 -0
package/README.md
CHANGED
|
@@ -129,7 +129,7 @@ Not every task needs the full workflow. These skills gather inputs flexibly and
|
|
|
129
129
|
/start-feature
|
|
130
130
|
│
|
|
131
131
|
▼
|
|
132
|
-
Discussion ──▶ Specification ──▶ Planning ──▶ Implementation
|
|
132
|
+
Discussion ──▶ Specification ──▶ Planning ──▶ Implementation ──▶ Review
|
|
133
133
|
```
|
|
134
134
|
|
|
135
135
|
**How it works:** After each phase completes, a plan mode bridge clears context and advances to the next phase automatically. You approve each transition with "clear context and continue" — this keeps each phase in a clean context window.
|
|
@@ -254,7 +254,7 @@ skills/
|
|
|
254
254
|
│
|
|
255
255
|
├── # Entry-point skills (user-invocable)
|
|
256
256
|
├── migrate/ # Keep workflow files in sync with system design
|
|
257
|
-
├── start-feature/ # Pipeline: discussion → spec → plan → impl
|
|
257
|
+
├── start-feature/ # Pipeline: discussion → spec → plan → impl → review
|
|
258
258
|
├── continue-feature/ # Pipeline: route feature to next phase
|
|
259
259
|
├── link-dependencies/ # Standalone: wire cross-topic deps
|
|
260
260
|
├── start-research/ # Begin research
|
|
@@ -268,7 +268,8 @@ skills/
|
|
|
268
268
|
│
|
|
269
269
|
├── # Bridge skills (model-invocable — pipeline pre-flight)
|
|
270
270
|
├── begin-planning/ # Pre-flight for planning in pipeline
|
|
271
|
-
|
|
271
|
+
├── begin-implementation/ # Pre-flight for implementation in pipeline
|
|
272
|
+
└── begin-review/ # Pre-flight for review in pipeline
|
|
272
273
|
|
|
273
274
|
agents/
|
|
274
275
|
├── review-task-verifier.md # Verifies single task implementation for review
|
|
@@ -334,7 +335,7 @@ Independent skills that gather inputs flexibly (inline context, files, or prompt
|
|
|
334
335
|
|
|
335
336
|
| Skill | Description |
|
|
336
337
|
|---------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|
|
|
337
|
-
| [**/start-feature**](skills/start-feature/) | Start a new feature through the full pipeline. Gathers context, creates a discussion, then bridges through specification → planning → implementation. |
|
|
338
|
+
| [**/start-feature**](skills/start-feature/) | Start a new feature through the full pipeline. Gathers context, creates a discussion, then bridges through specification → planning → implementation → review. |
|
|
338
339
|
| [**/continue-feature**](skills/continue-feature/) | Continue a feature through its next pipeline phase. Routes automatically based on artifact state. Used manually or from plan mode bridges. |
|
|
339
340
|
| [**/link-dependencies**](skills/link-dependencies/) | Link external dependencies across topics. Scans plans and wires up unresolved cross-topic dependencies. |
|
|
340
341
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: begin-review
|
|
3
|
+
description: "Bridge skill for the feature pipeline. Runs pre-flight checks for review and invokes the technical-review skill. Called by continue-feature — not directly by users."
|
|
4
|
+
user-invocable: false
|
|
5
|
+
allowed-tools: Bash(.claude/skills/start-review/scripts/discovery.sh)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Invoke the **technical-review** skill for this conversation with pre-flight context.
|
|
9
|
+
|
|
10
|
+
> **⚠️ ZERO OUTPUT RULE**: Do not narrate your processing. Produce no output until a step or reference file explicitly specifies display content. No "proceeding with...", no discovery summaries, no routing decisions, no transition text. Your first output must be content explicitly called for by the instructions.
|
|
11
|
+
|
|
12
|
+
## Instructions
|
|
13
|
+
|
|
14
|
+
Follow these steps EXACTLY as written. Do not skip steps or combine them.
|
|
15
|
+
|
|
16
|
+
This skill is a **bridge** — it runs pre-flight checks for review and hands off to the processing skill. The topic has already been selected by the caller.
|
|
17
|
+
|
|
18
|
+
**CRITICAL**: This guidance is mandatory.
|
|
19
|
+
|
|
20
|
+
- After each user interaction, STOP and wait for their response before proceeding
|
|
21
|
+
- Never assume or anticipate user choices
|
|
22
|
+
- Complete each step fully before moving to the next
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Step 1: Run Discovery
|
|
27
|
+
|
|
28
|
+
!`.claude/skills/start-review/scripts/discovery.sh`
|
|
29
|
+
|
|
30
|
+
If the above shows a script invocation rather than YAML output, the dynamic content preprocessor did not run. Execute the script before continuing:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
.claude/skills/start-review/scripts/discovery.sh
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
If YAML content is already displayed, it has been run on your behalf.
|
|
37
|
+
|
|
38
|
+
Parse the output to find the plan matching the provided topic. Extract:
|
|
39
|
+
|
|
40
|
+
- **Plan details**: status, format, plan_id, specification, specification_exists
|
|
41
|
+
- **Implementation status**: implementation_status
|
|
42
|
+
- **Review state**: review_count, latest_review_version
|
|
43
|
+
|
|
44
|
+
If the plan is missing, this is an error — report it and stop.
|
|
45
|
+
|
|
46
|
+
If `implementation_status` is `"none"`, this is an error:
|
|
47
|
+
|
|
48
|
+
> *Output the next fenced block as a code block:*
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
Review Pre-Flight Failed
|
|
52
|
+
|
|
53
|
+
"{topic:(titlecase)}" has no implementation to review.
|
|
54
|
+
|
|
55
|
+
Implementation must be completed or in-progress before review.
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**STOP.** Do not proceed — terminal condition.
|
|
59
|
+
|
|
60
|
+
→ Proceed to **Step 2**.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Step 2: Determine Review Version
|
|
65
|
+
|
|
66
|
+
Check the topic's review state from discovery output:
|
|
67
|
+
|
|
68
|
+
- If `review_count` is 0 → review version is `r1`
|
|
69
|
+
- If `review_count` > 0 → review version is `r{latest_review_version + 1}`
|
|
70
|
+
|
|
71
|
+
→ Proceed to **Step 3**.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Step 3: Invoke the Skill
|
|
76
|
+
|
|
77
|
+
Construct the handoff and invoke the [technical-review](../technical-review/SKILL.md) skill:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Review session
|
|
81
|
+
Plans to review:
|
|
82
|
+
- topic: {topic}
|
|
83
|
+
plan: docs/workflow/planning/{topic}/plan.md
|
|
84
|
+
format: {format}
|
|
85
|
+
plan_id: {plan_id} (if applicable)
|
|
86
|
+
specification: {specification} (exists: {true|false})
|
|
87
|
+
review_version: r{N}
|
|
88
|
+
|
|
89
|
+
Invoke the technical-review skill.
|
|
90
|
+
```
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: continue-feature
|
|
3
3
|
description: "Continue a feature through the pipeline. Routes to the next phase (specification, planning, or implementation) based on artifact state. Can be invoked manually or from plan mode bridges."
|
|
4
|
-
allowed-tools: Bash(.claude/skills/continue-feature/scripts/discovery.sh), Bash(.claude/hooks/workflows/write-session-state.sh)
|
|
4
|
+
allowed-tools: Bash(.claude/skills/continue-feature/scripts/discovery.sh), Bash(.claude/hooks/workflows/write-session-state.sh), Bash(.claude/skills/start-review/scripts/discovery.sh)
|
|
5
5
|
hooks:
|
|
6
6
|
PreToolUse:
|
|
7
7
|
- hooks:
|
|
@@ -33,7 +33,8 @@ Context refresh (compaction) summarizes the conversation, losing procedural deta
|
|
|
33
33
|
1. **Re-read this skill file completely.** Do not rely on your summary of it. The full process, steps, and rules must be reloaded.
|
|
34
34
|
2. **Identify the topic.** Check conversation history for the topic name. If unknown, ask the user.
|
|
35
35
|
3. **Determine current step from artifacts** (check top-down, first match wins):
|
|
36
|
-
-
|
|
36
|
+
- Review exists for topic → resume at **Step 7** (phase bridge — pipeline complete)
|
|
37
|
+
- Implementation tracking exists with `status: completed`, no review → resume at **Step 6** (invoke begin-review)
|
|
37
38
|
- Implementation tracking exists with `status: in-progress` → resume at **Step 5** (re-invoke begin-implementation)
|
|
38
39
|
- Plan exists with `status: concluded` → resume at **Step 5** (invoke begin-implementation)
|
|
39
40
|
- Plan exists with other status → resume at **Step 4** (re-invoke begin-planning)
|
|
@@ -109,7 +110,7 @@ Present the discovered state as context, then ask the user to select:
|
|
|
109
110
|
Continue Feature
|
|
110
111
|
|
|
111
112
|
This skill continues a feature through the pipeline phases:
|
|
112
|
-
Discussion → Specification → Planning → Implementation
|
|
113
|
+
Discussion → Specification → Planning → Implementation → Review
|
|
113
114
|
|
|
114
115
|
It's designed for features started with /start-feature, but works
|
|
115
116
|
with any topic that has workflow artifacts.
|
|
@@ -142,7 +143,7 @@ Select by number, or enter a topic name directly:
|
|
|
142
143
|
|
|
143
144
|
Load **[detect-phase.md](references/detect-phase.md)** and follow its instructions.
|
|
144
145
|
|
|
145
|
-
→ The reference file will route you to **Step 3**, **Step 4**, **Step 5**, or a terminal condition. Follow its routing.
|
|
146
|
+
→ The reference file will route you to **Step 3**, **Step 4**, **Step 5**, **Step 6**, or a terminal condition. Follow its routing.
|
|
146
147
|
|
|
147
148
|
---
|
|
148
149
|
|
|
@@ -150,7 +151,7 @@ Load **[detect-phase.md](references/detect-phase.md)** and follow its instructio
|
|
|
150
151
|
|
|
151
152
|
Load **[invoke-specification.md](references/invoke-specification.md)** and follow its instructions.
|
|
152
153
|
|
|
153
|
-
**CRITICAL**: When the specification concludes (status becomes "concluded"), you MUST proceed to **Step
|
|
154
|
+
**CRITICAL**: When the specification concludes (status becomes "concluded"), you MUST proceed to **Step 7** below. Do not end the session — the feature pipeline continues to the phase bridge.
|
|
154
155
|
|
|
155
156
|
---
|
|
156
157
|
|
|
@@ -158,7 +159,7 @@ Load **[invoke-specification.md](references/invoke-specification.md)** and follo
|
|
|
158
159
|
|
|
159
160
|
Load **[invoke-planning.md](references/invoke-planning.md)** and follow its instructions.
|
|
160
161
|
|
|
161
|
-
**CRITICAL**: When the plan concludes (status becomes "concluded"), you MUST proceed to **Step
|
|
162
|
+
**CRITICAL**: When the plan concludes (status becomes "concluded"), you MUST proceed to **Step 7** below. Do not end the session — the feature pipeline continues to the phase bridge.
|
|
162
163
|
|
|
163
164
|
---
|
|
164
165
|
|
|
@@ -166,12 +167,20 @@ Load **[invoke-planning.md](references/invoke-planning.md)** and follow its inst
|
|
|
166
167
|
|
|
167
168
|
Load **[invoke-implementation.md](references/invoke-implementation.md)** and follow its instructions.
|
|
168
169
|
|
|
169
|
-
**CRITICAL**: When implementation completes (tracking status becomes "completed"), you MUST proceed to **Step
|
|
170
|
+
**CRITICAL**: When implementation completes (tracking status becomes "completed"), you MUST proceed to **Step 7** below. Do not end the session — the feature pipeline continues to the phase bridge.
|
|
170
171
|
|
|
171
172
|
---
|
|
172
173
|
|
|
173
|
-
## Step 6: Phase
|
|
174
|
+
## Step 6: Review Phase
|
|
175
|
+
|
|
176
|
+
Load **[invoke-review.md](references/invoke-review.md)** and follow its instructions.
|
|
177
|
+
|
|
178
|
+
**CRITICAL**: When review concludes, you MUST proceed to **Step 7** below. Do not end the session — the feature pipeline continues to the phase bridge.
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Step 7: Phase Bridge
|
|
174
183
|
|
|
175
184
|
Load **[phase-bridge.md](references/phase-bridge.md)** and follow its instructions.
|
|
176
185
|
|
|
177
|
-
The bridge will enter plan mode with instructions to invoke continue-feature for the topic in the next session.
|
|
186
|
+
The bridge will enter plan mode with instructions to invoke continue-feature for the topic in the next session, or show a terminal message if the pipeline is complete.
|
|
@@ -14,23 +14,26 @@ Either use the `next_phase` from discovery output (if discovery was run), or com
|
|
|
14
14
|
|
|
15
15
|
Check artifacts in this order (first match wins):
|
|
16
16
|
|
|
17
|
-
1.
|
|
18
|
-
- If
|
|
17
|
+
1. Check `docs/workflow/review/{topic}/r*/review.md`
|
|
18
|
+
- If any review exists → next_phase is **"done"**
|
|
19
|
+
|
|
20
|
+
2. Read `docs/workflow/implementation/{topic}/tracking.md`
|
|
21
|
+
- If exists with `status: completed` → next_phase is **"review"**
|
|
19
22
|
- If exists with `status: in-progress` → next_phase is **"implementation"**
|
|
20
23
|
|
|
21
|
-
|
|
24
|
+
3. Read `docs/workflow/planning/{topic}/plan.md`
|
|
22
25
|
- If exists with `status: concluded` → next_phase is **"implementation"**
|
|
23
26
|
- If exists with other status → next_phase is **"planning"**
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
4. Read `docs/workflow/specification/{topic}/specification.md`
|
|
26
29
|
- If exists with `status: concluded` → next_phase is **"planning"**
|
|
27
30
|
- If exists with other status → next_phase is **"specification"**
|
|
28
31
|
|
|
29
|
-
|
|
32
|
+
5. Check `docs/workflow/discussion/{topic}.md`
|
|
30
33
|
- If exists with `status: concluded` → next_phase is **"specification"**
|
|
31
34
|
- If exists with other status → next_phase is **"discussion"**
|
|
32
35
|
|
|
33
|
-
|
|
36
|
+
6. If none found → next_phase is **"unknown"**
|
|
34
37
|
|
|
35
38
|
## Routing
|
|
36
39
|
|
|
@@ -46,17 +49,21 @@ Check artifacts in this order (first match wins):
|
|
|
46
49
|
|
|
47
50
|
→ Proceed to **Step 5**.
|
|
48
51
|
|
|
52
|
+
#### If next_phase is "review"
|
|
53
|
+
|
|
54
|
+
→ Proceed to **Step 6**.
|
|
55
|
+
|
|
49
56
|
#### If next_phase is "done"
|
|
50
57
|
|
|
51
58
|
> *Output the next fenced block as a code block:*
|
|
52
59
|
|
|
53
60
|
```
|
|
54
|
-
|
|
61
|
+
Pipeline Complete
|
|
55
62
|
|
|
56
|
-
"{topic:(titlecase)}" has completed
|
|
63
|
+
"{topic:(titlecase)}" has completed all pipeline phases
|
|
64
|
+
(implementation and review).
|
|
57
65
|
|
|
58
|
-
|
|
59
|
-
specification and plan.
|
|
66
|
+
Use /start-review to re-review or synthesize findings.
|
|
60
67
|
```
|
|
61
68
|
|
|
62
69
|
**STOP.** Do not proceed — terminal condition.
|
|
@@ -21,7 +21,7 @@ Saving session state so Claude can pick up where it left off and continue the fe
|
|
|
21
21
|
"{topic}" \
|
|
22
22
|
"skills/technical-implementation/SKILL.md" \
|
|
23
23
|
"docs/workflow/implementation/{topic}/tracking.md" \
|
|
24
|
-
--pipeline "This session is part of the feature pipeline. After implementation completes, return to the continue-feature skill and execute Step
|
|
24
|
+
--pipeline "This session is part of the feature pipeline. After implementation completes, return to the continue-feature skill and execute Step 7 (Phase Bridge). Load: skills/continue-feature/references/phase-bridge.md"
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
## Handoff
|
|
@@ -33,7 +33,7 @@ Implementation pre-flight for: {topic}
|
|
|
33
33
|
Plan: docs/workflow/planning/{topic}/plan.md
|
|
34
34
|
|
|
35
35
|
PIPELINE CONTINUATION — When implementation completes (tracking status: completed),
|
|
36
|
-
you MUST return to the continue-feature skill and execute Step
|
|
36
|
+
you MUST return to the continue-feature skill and execute Step 7 (Phase Bridge).
|
|
37
37
|
Load: skills/continue-feature/references/phase-bridge.md
|
|
38
38
|
Do not end the session after implementation — the feature pipeline continues.
|
|
39
39
|
|
|
@@ -21,7 +21,7 @@ Saving session state so Claude can pick up where it left off and continue the fe
|
|
|
21
21
|
"{topic}" \
|
|
22
22
|
"skills/technical-planning/SKILL.md" \
|
|
23
23
|
"docs/workflow/planning/{topic}/plan.md" \
|
|
24
|
-
--pipeline "This session is part of the feature pipeline. After the plan concludes, return to the continue-feature skill and execute Step
|
|
24
|
+
--pipeline "This session is part of the feature pipeline. After the plan concludes, return to the continue-feature skill and execute Step 7 (Phase Bridge). Load: skills/continue-feature/references/phase-bridge.md"
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
## Handoff
|
|
@@ -33,7 +33,7 @@ Planning pre-flight for: {topic}
|
|
|
33
33
|
Specification: docs/workflow/specification/{topic}/specification.md
|
|
34
34
|
|
|
35
35
|
PIPELINE CONTINUATION — When planning concludes (plan status: concluded),
|
|
36
|
-
you MUST return to the continue-feature skill and execute Step
|
|
36
|
+
you MUST return to the continue-feature skill and execute Step 7 (Phase Bridge).
|
|
37
37
|
Load: skills/continue-feature/references/phase-bridge.md
|
|
38
38
|
Do not end the session after planning — the feature pipeline continues.
|
|
39
39
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Invoke Review
|
|
2
|
+
|
|
3
|
+
*Reference for **[continue-feature](../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Invoke the begin-review bridge skill for this topic.
|
|
8
|
+
|
|
9
|
+
## Save Session State
|
|
10
|
+
|
|
11
|
+
Before invoking the processing skill, save a session bookmark.
|
|
12
|
+
|
|
13
|
+
> *Output the next fenced block as a code block:*
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
Saving session state so Claude can pick up where it left off and continue the feature pipeline if the conversation is compacted.
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
.claude/hooks/workflows/write-session-state.sh \
|
|
21
|
+
"{topic}" \
|
|
22
|
+
"skills/technical-review/SKILL.md" \
|
|
23
|
+
"docs/workflow/review/{topic}/r{N}/review.md" \
|
|
24
|
+
--pipeline "This session is part of the feature pipeline. After the review concludes, return to the continue-feature skill and execute Step 7 (Phase Bridge). Load: skills/continue-feature/references/phase-bridge.md"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Handoff
|
|
28
|
+
|
|
29
|
+
Invoke the [begin-review](../../begin-review/SKILL.md) skill:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
Review pre-flight for: {topic}
|
|
33
|
+
Plan: docs/workflow/planning/{topic}/plan.md
|
|
34
|
+
|
|
35
|
+
PIPELINE CONTINUATION — When review concludes,
|
|
36
|
+
you MUST return to the continue-feature skill and execute Step 7 (Phase Bridge).
|
|
37
|
+
Load: skills/continue-feature/references/phase-bridge.md
|
|
38
|
+
Do not end the session after review — the feature pipeline continues.
|
|
39
|
+
|
|
40
|
+
Invoke the begin-review skill.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The bridge skill handles discovery, validation, version detection, and the handoff to technical-review.
|
|
@@ -31,7 +31,7 @@ Saving session state so Claude can pick up where it left off and continue the fe
|
|
|
31
31
|
"{topic}" \
|
|
32
32
|
"skills/technical-specification/SKILL.md" \
|
|
33
33
|
"docs/workflow/specification/{topic}/specification.md" \
|
|
34
|
-
--pipeline "This session is part of the feature pipeline. After the specification concludes, return to the continue-feature skill and execute Step
|
|
34
|
+
--pipeline "This session is part of the feature pipeline. After the specification concludes, return to the continue-feature skill and execute Step 7 (Phase Bridge). Load: skills/continue-feature/references/phase-bridge.md"
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
## Handoff
|
|
@@ -47,7 +47,7 @@ Source material:
|
|
|
47
47
|
Topic name: {topic}
|
|
48
48
|
|
|
49
49
|
PIPELINE CONTINUATION — When this specification concludes (status: concluded),
|
|
50
|
-
you MUST return to the continue-feature skill and execute Step
|
|
50
|
+
you MUST return to the continue-feature skill and execute Step 7 (Phase Bridge).
|
|
51
51
|
Load: skills/continue-feature/references/phase-bridge.md
|
|
52
52
|
Do not end the session after the specification — the feature pipeline continues.
|
|
53
53
|
|
|
@@ -12,9 +12,10 @@ Check which step just completed to determine what continue-feature will route to
|
|
|
12
12
|
|
|
13
13
|
- Just completed **specification** (Step 3) → next session routes to planning
|
|
14
14
|
- Just completed **planning** (Step 4) → next session routes to implementation
|
|
15
|
-
- Just completed **implementation** (Step 5) →
|
|
15
|
+
- Just completed **implementation** (Step 5) → next session routes to review
|
|
16
|
+
- Just completed **review** (Step 6) → pipeline is done
|
|
16
17
|
|
|
17
|
-
#### If
|
|
18
|
+
#### If review just completed
|
|
18
19
|
|
|
19
20
|
> *Output the next fenced block as a code block:*
|
|
20
21
|
|
|
@@ -22,8 +23,6 @@ Check which step just completed to determine what continue-feature will route to
|
|
|
22
23
|
Feature Complete
|
|
23
24
|
|
|
24
25
|
"{topic:(titlecase)}" has completed all pipeline phases.
|
|
25
|
-
|
|
26
|
-
Run /start-review to validate the implementation.
|
|
27
26
|
```
|
|
28
27
|
|
|
29
28
|
**STOP.** Do not proceed — terminal condition.
|
|
@@ -15,6 +15,7 @@ DISC_DIR="docs/workflow/discussion"
|
|
|
15
15
|
SPEC_DIR="docs/workflow/specification"
|
|
16
16
|
PLAN_DIR="docs/workflow/planning"
|
|
17
17
|
IMPL_DIR="docs/workflow/implementation"
|
|
18
|
+
REVIEW_DIR="docs/workflow/review"
|
|
18
19
|
|
|
19
20
|
# Helper: Extract a frontmatter field value from a file
|
|
20
21
|
# Usage: extract_field <file> <field_name>
|
|
@@ -132,13 +133,26 @@ else
|
|
|
132
133
|
impl_status=${impl_status:-"in-progress"}
|
|
133
134
|
fi
|
|
134
135
|
|
|
136
|
+
# Review state
|
|
137
|
+
review_exists="false"
|
|
138
|
+
if [ -d "$REVIEW_DIR/${topic}" ]; then
|
|
139
|
+
for rdir in "$REVIEW_DIR/${topic}"/r*/; do
|
|
140
|
+
[ -d "$rdir" ] || continue
|
|
141
|
+
[ -f "${rdir}review.md" ] || continue
|
|
142
|
+
review_exists="true"
|
|
143
|
+
break
|
|
144
|
+
done
|
|
145
|
+
fi
|
|
146
|
+
|
|
135
147
|
#
|
|
136
148
|
# Compute next_phase (check from top down, first match wins)
|
|
137
149
|
#
|
|
138
150
|
next_phase=""
|
|
139
151
|
|
|
140
|
-
if [ "$impl_exists" = "true" ] && [ "$impl_status" = "completed" ]; then
|
|
152
|
+
if [ "$impl_exists" = "true" ] && [ "$impl_status" = "completed" ] && [ "$review_exists" = "true" ]; then
|
|
141
153
|
next_phase="done"
|
|
154
|
+
elif [ "$impl_exists" = "true" ] && [ "$impl_status" = "completed" ] && [ "$review_exists" = "false" ]; then
|
|
155
|
+
next_phase="review"
|
|
142
156
|
elif [ "$impl_exists" = "true" ] && [ "$impl_status" = "in-progress" ]; then
|
|
143
157
|
next_phase="implementation"
|
|
144
158
|
elif [ "$plan_exists" = "true" ] && [ "$plan_status" = "concluded" ]; then
|
|
@@ -191,6 +205,9 @@ else
|
|
|
191
205
|
echo " status: \"$impl_status\""
|
|
192
206
|
fi
|
|
193
207
|
|
|
208
|
+
echo " review:"
|
|
209
|
+
echo " exists: $review_exists"
|
|
210
|
+
|
|
194
211
|
echo " next_phase: \"$next_phase\""
|
|
195
212
|
echo " actionable: $actionable"
|
|
196
213
|
|
|
@@ -53,6 +53,8 @@ done
|
|
|
53
53
|
if [ -f "$GITIGNORE" ] && grep -qxF "$NEW_ENTRY" "$GITIGNORE"; then
|
|
54
54
|
report_skip "$GITIGNORE"
|
|
55
55
|
else
|
|
56
|
+
# Ensure file ends with newline before appending
|
|
57
|
+
[ -f "$GITIGNORE" ] && [ -n "$(tail -c 1 "$GITIGNORE")" ] && echo >> "$GITIGNORE"
|
|
56
58
|
echo "$NEW_ENTRY" >> "$GITIGNORE"
|
|
57
59
|
report_update "$GITIGNORE" "added .cache/ to gitignore"
|
|
58
60
|
fi
|
|
@@ -128,7 +128,7 @@ Review Overview
|
|
|
128
128
|
All {N} implemented plans have been reviewed.
|
|
129
129
|
|
|
130
130
|
1. {topic:(titlecase)}
|
|
131
|
-
└─ Review: r{
|
|
131
|
+
└─ Review: x{review_count} — r{latest_review_version} ({latest_review_verdict})
|
|
132
132
|
└─ Synthesis: @if(has_synthesis) completed @else pending @endif
|
|
133
133
|
|
|
134
134
|
2. ...
|
|
@@ -21,7 +21,7 @@ Review Overview
|
|
|
21
21
|
└─ Plan: concluded ({format})
|
|
22
22
|
└─ Implementation: {impl_status:[completed|in-progress]}
|
|
23
23
|
└─ Spec: {spec:[exists|missing]}
|
|
24
|
-
└─ Review: @if(
|
|
24
|
+
└─ Review: @if(review_count > 0) x{review_count} — r{latest_review_version} ({latest_review_verdict}) @else (no review) @endif
|
|
25
25
|
|
|
26
26
|
2. ...
|
|
27
27
|
```
|
|
@@ -57,8 +57,8 @@ Key:
|
|
|
57
57
|
in-progress — implementation still ongoing
|
|
58
58
|
|
|
59
59
|
Review status:
|
|
60
|
-
|
|
61
|
-
(
|
|
60
|
+
x{N} — number of reviews completed
|
|
61
|
+
(no review) — not yet reviewed
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
**Then route based on what's reviewable:**
|
|
@@ -85,6 +85,25 @@ if [ -d "$PLAN_DIR" ] && [ -n "$(ls -A "$PLAN_DIR" 2>/dev/null)" ]; then
|
|
|
85
85
|
impl_status=${impl_status_val:-"in-progress"}
|
|
86
86
|
fi
|
|
87
87
|
|
|
88
|
+
# Check review status for this plan
|
|
89
|
+
review_count=0
|
|
90
|
+
latest_review_version=0
|
|
91
|
+
latest_review_verdict=""
|
|
92
|
+
if [ -d "$REVIEW_DIR/$name" ]; then
|
|
93
|
+
for rdir in "$REVIEW_DIR/$name"/r*/; do
|
|
94
|
+
[ -d "$rdir" ] || continue
|
|
95
|
+
[ -f "${rdir}review.md" ] || continue
|
|
96
|
+
rnum=${rdir##*r}
|
|
97
|
+
rnum=${rnum%/}
|
|
98
|
+
review_count=$((review_count + 1))
|
|
99
|
+
if [ "$rnum" -gt "$latest_review_version" ] 2>/dev/null; then
|
|
100
|
+
latest_review_version=$rnum
|
|
101
|
+
latest_review_verdict=$(grep -m1 '\*\*QA Verdict\*\*:' "${rdir}review.md" 2>/dev/null | \
|
|
102
|
+
sed -E 's/.*\*\*QA Verdict\*\*:[[:space:]]*//' || true)
|
|
103
|
+
fi
|
|
104
|
+
done
|
|
105
|
+
fi
|
|
106
|
+
|
|
88
107
|
echo " - name: \"$name\""
|
|
89
108
|
echo " topic: \"$topic\""
|
|
90
109
|
echo " status: \"$status\""
|
|
@@ -96,6 +115,11 @@ if [ -d "$PLAN_DIR" ] && [ -n "$(ls -A "$PLAN_DIR" 2>/dev/null)" ]; then
|
|
|
96
115
|
echo " plan_id: \"$plan_id\""
|
|
97
116
|
fi
|
|
98
117
|
echo " implementation_status: \"$impl_status\""
|
|
118
|
+
echo " review_count: $review_count"
|
|
119
|
+
if [ "$review_count" -gt 0 ]; then
|
|
120
|
+
echo " latest_review_version: $latest_review_version"
|
|
121
|
+
echo " latest_review_verdict: \"$latest_review_verdict\""
|
|
122
|
+
fi
|
|
99
123
|
|
|
100
124
|
plan_count=$((plan_count + 1))
|
|
101
125
|
if [ "$impl_status" != "none" ]; then
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
Follow stages A through E sequentially for each task. Do not abbreviate, skip, or compress stages based on previous iterations.
|
|
8
8
|
|
|
9
9
|
```
|
|
10
|
-
A. Retrieve next task
|
|
10
|
+
A. Retrieve next task + mark in-progress
|
|
11
11
|
B. Execute task → invoke-executor.md
|
|
12
12
|
→ Executor Blocked (conditional)
|
|
13
13
|
C. Review task → invoke-reviewer.md
|
|
14
14
|
→ Review Changes with fix analysis (conditional, fix_gate_mode)
|
|
15
15
|
D. Task gate (gated → prompt user / auto → announce)
|
|
16
|
-
E. Update progress + commit
|
|
16
|
+
E. Update progress + phase check + commit
|
|
17
17
|
→ loop back to A until done
|
|
18
18
|
```
|
|
19
19
|
|
|
@@ -25,6 +25,8 @@ E. Update progress + commit
|
|
|
25
25
|
2. If no available tasks remain → skip to **When All Tasks Are Complete**.
|
|
26
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
|
+
5. Mark the task as **in-progress** — follow the format's **updating.md** "In Progress" status transition.
|
|
29
|
+
6. If the format's updating.md includes a **Phase / Parent Status** section: check whether the task's phase parent needs to be started. If so, follow the format's phase start instructions.
|
|
28
30
|
|
|
29
31
|
---
|
|
30
32
|
|
|
@@ -172,10 +174,15 @@ Check the `task_gate_mode` field in the implementation tracking file.
|
|
|
172
174
|
|
|
173
175
|
**Update task progress in the plan** — follow the format's **updating.md** instructions to mark the task complete.
|
|
174
176
|
|
|
177
|
+
**Check for phase completion** — use the format's **reading.md** to list remaining tasks in the current phase. If no tasks remain open or in-progress:
|
|
178
|
+
- If the format's updating.md includes a **Phase / Parent Status** section, follow its phase completion instructions
|
|
179
|
+
- Append the phase number to `completed_phases` in the tracking file
|
|
180
|
+
|
|
175
181
|
**Mirror to implementation tracking file** (`docs/workflow/implementation/{topic}/tracking.md`):
|
|
176
182
|
- Append the task ID to `completed_tasks`
|
|
177
183
|
- Update `current_phase` if phase changed
|
|
178
184
|
- Update `current_task` to the next task (or `~` if done)
|
|
185
|
+
- Update `completed_phases` if a phase completed this iteration
|
|
179
186
|
- Update `updated` to today's date
|
|
180
187
|
- If user chose `auto` at the task gate this turn: update `task_gate_mode: auto`
|
|
181
188
|
- If user chose `auto` at the fix gate this turn: update `fix_gate_mode: auto`
|
|
@@ -25,3 +25,35 @@ To update a task's properties:
|
|
|
25
25
|
- **Priority**: `tick update <task-id> --priority 1`
|
|
26
26
|
- **Parent**: `tick update <task-id> --parent <new-parent-id>` (pass empty string to clear)
|
|
27
27
|
- **Dependencies**: See [graph.md](graph.md)
|
|
28
|
+
|
|
29
|
+
## Phase / Parent Status
|
|
30
|
+
|
|
31
|
+
Phase tasks are parent tasks in the tick hierarchy. Update their status to reflect child task progress.
|
|
32
|
+
|
|
33
|
+
### Start Phase
|
|
34
|
+
|
|
35
|
+
When the first task in a phase begins and the phase parent is still `open`:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
tick start <phase-id>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Check the phase parent's status with `tick show <phase-id>`. If status is `open`, start it.
|
|
42
|
+
|
|
43
|
+
### Complete Phase
|
|
44
|
+
|
|
45
|
+
When all child tasks in a phase are `done` or `cancelled` (none remain `open` or `in_progress`):
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
tick done <phase-id>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
After completing a task, check: `tick list --parent <phase-id> --status open` and `tick list --parent <phase-id> --status in_progress`. If both return empty, the phase is complete.
|
|
52
|
+
|
|
53
|
+
### Cancel Phase
|
|
54
|
+
|
|
55
|
+
If all child tasks are `cancelled` (none `done`):
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
tick cancel <phase-id>
|
|
59
|
+
```
|