@leeovery/claude-technical-workflows 2.1.29 → 2.1.31
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/agents/implementation-analysis-task-writer.md +10 -18
- package/agents/planning-phase-designer.md +4 -24
- package/agents/planning-task-designer.md +5 -9
- package/package.json +1 -1
- package/skills/technical-implementation/references/invoke-task-writer.md +1 -0
- package/skills/technical-planning/SKILL.md +3 -25
- package/skills/technical-planning/references/author-tasks.md +9 -5
- package/skills/technical-planning/references/define-phases.md +2 -1
- package/skills/technical-planning/references/define-tasks.md +36 -3
- package/skills/technical-planning/references/plan-construction.md +14 -0
- package/skills/technical-planning/references/plan-index-schema.md +103 -0
|
@@ -18,6 +18,7 @@ You receive via the orchestrator's prompt:
|
|
|
18
18
|
3. **Plan path** — the implementation plan path
|
|
19
19
|
4. **Plan format reading adapter path** — how to read tasks from the plan (for determining next phase number)
|
|
20
20
|
5. **Plan format authoring adapter path** — how to create tasks in the plan
|
|
21
|
+
6. **plan-index-schema.md** — Canonical plan index structure
|
|
21
22
|
|
|
22
23
|
## Your Process
|
|
23
24
|
|
|
@@ -32,26 +33,17 @@ You receive via the orchestrator's prompt:
|
|
|
32
33
|
|
|
33
34
|
The Plan Index File (`docs/workflow/planning/{topic}/plan.md`) is the single source of truth for planning progress. After creating task files, you **must** append the new phase and task table to its body.
|
|
34
35
|
|
|
35
|
-
Append at the end of the Plan Index File body:
|
|
36
|
+
Append at the end of the Plan Index File body, following the **Phase Entry** and **Task Table** templates from plan-index-schema:
|
|
36
37
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
| ID | Name | Edge Cases | Status | Ext ID |
|
|
45
|
-
|----|------|------------|--------|--------|
|
|
46
|
-
| {topic}-{phase}-1 | {Task Title} | — | authored | {ext-id} |
|
|
47
|
-
| {topic}-{phase}-2 | {Task Title} | — | authored | {ext-id} |
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
- Use `status: approved` for the phase (it's pre-approved by the user in the approval gate)
|
|
51
|
-
- Use `authored` for each task status (the task files are fully written)
|
|
52
|
-
- Use `—` for edge cases (analysis tasks don't have separate edge case annotations)
|
|
38
|
+
- Phase heading: `### Phase {N}: Analysis ({cycle description})`
|
|
39
|
+
- Phase `status`: `approved` (pre-approved by user in approval gate)
|
|
40
|
+
- Phase `ext_id`: external identifier for the phase from the output format
|
|
41
|
+
- Phase goal: `Address findings from implementation analysis cycle {N}.`
|
|
42
|
+
- Omit `approved_at` and acceptance criteria (analysis phases don't use them)
|
|
43
|
+
- Task `Status`: `authored` (task files are fully written)
|
|
44
|
+
- Task `Ext ID`: external identifier for the task from the output format
|
|
53
45
|
- Task IDs must match the IDs used in the created task files
|
|
54
|
-
-
|
|
46
|
+
- If the Plan Index File frontmatter `ext_id` is empty, set it to the external identifier for the plan from the output format
|
|
55
47
|
|
|
56
48
|
## Hard Rules
|
|
57
49
|
|
|
@@ -18,6 +18,7 @@ You receive file paths via the orchestrator's prompt:
|
|
|
18
18
|
3. **Cross-cutting spec paths** (if any) — Architectural decisions that influence planning
|
|
19
19
|
4. **phase-design.md** — Phase design principles
|
|
20
20
|
5. **task-design.md** — Task design principles (for phase granularity awareness)
|
|
21
|
+
6. **plan-index-schema.md** — Canonical plan index structure
|
|
21
22
|
|
|
22
23
|
On **amendment**, you also receive:
|
|
23
24
|
- **Previous output** — Your prior phase structure
|
|
@@ -30,7 +31,8 @@ On **amendment**, you also receive:
|
|
|
30
31
|
3. Read any cross-cutting specifications
|
|
31
32
|
4. Read `phase-design.md` — absorb the phase design principles
|
|
32
33
|
5. Read `task-design.md` — understand task granularity (needed to judge phase scope)
|
|
33
|
-
6.
|
|
34
|
+
6. Read `plan-index-schema.md` — understand the plan index structure
|
|
35
|
+
7. Design the phase structure
|
|
34
36
|
|
|
35
37
|
If this is an **amendment**: read your previous output and the user's feedback, then revise accordingly.
|
|
36
38
|
|
|
@@ -51,29 +53,7 @@ Phase {N}: {Phase Name}
|
|
|
51
53
|
|
|
52
54
|
**Phase structure (for the Plan Index File):**
|
|
53
55
|
|
|
54
|
-
|
|
55
|
-
## Phases
|
|
56
|
-
|
|
57
|
-
### Phase 1: {Phase Name}
|
|
58
|
-
status: draft
|
|
59
|
-
|
|
60
|
-
**Goal**: {What this phase accomplishes}
|
|
61
|
-
**Why this order**: {Why this comes at this position}
|
|
62
|
-
|
|
63
|
-
**Acceptance**:
|
|
64
|
-
- [ ] {First verifiable criterion}
|
|
65
|
-
- [ ] {Second verifiable criterion}
|
|
66
|
-
|
|
67
|
-
### Phase 2: {Phase Name}
|
|
68
|
-
status: draft
|
|
69
|
-
|
|
70
|
-
**Goal**: {What this phase accomplishes}
|
|
71
|
-
**Why this order**: {Why this comes at this position}
|
|
72
|
-
|
|
73
|
-
**Acceptance**:
|
|
74
|
-
- [ ] {First verifiable criterion}
|
|
75
|
-
- [ ] {Second verifiable criterion}
|
|
76
|
-
```
|
|
56
|
+
Begin with a `## Phases` heading, then follow the **Phase Entry** template from plan-index-schema for each phase. Set `status: draft`. Leave `ext_id` empty. Omit `approved_at`.
|
|
77
57
|
|
|
78
58
|
Continue for all phases.
|
|
79
59
|
|
|
@@ -19,6 +19,7 @@ You receive file paths via the orchestrator's prompt:
|
|
|
19
19
|
4. **task-design.md** — Task design principles
|
|
20
20
|
5. **All approved phases** — The complete phase structure (from the Plan Index File)
|
|
21
21
|
6. **Target phase number** — Which phase to break into tasks
|
|
22
|
+
7. **plan-index-schema.md** — Canonical plan index structure
|
|
22
23
|
|
|
23
24
|
On **amendment**, you also receive:
|
|
24
25
|
- **Previous output** — Your prior task list
|
|
@@ -31,7 +32,8 @@ On **amendment**, you also receive:
|
|
|
31
32
|
3. Read any cross-cutting specifications
|
|
32
33
|
4. Read `task-design.md` — absorb the task design principles
|
|
33
34
|
5. Read the approved phases — understand the full plan structure and where this phase fits
|
|
34
|
-
6.
|
|
35
|
+
6. Read `plan-index-schema.md` — understand the plan index structure
|
|
36
|
+
7. Design the task list for the target phase
|
|
35
37
|
|
|
36
38
|
If this is an **amendment**: read your previous output and the user's feedback, then revise accordingly.
|
|
37
39
|
|
|
@@ -53,15 +55,9 @@ Phase {N}: {Phase Name}
|
|
|
53
55
|
|
|
54
56
|
**Task table format (for the Plan Index File):**
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
#### Tasks
|
|
58
|
-
| ID | Name | Edge Cases | Status | Ext ID |
|
|
59
|
-
|----|------|------------|--------|--------|
|
|
60
|
-
| {topic}-{phase}-1 | {Task Name} | {list} | pending | |
|
|
61
|
-
| {topic}-{phase}-2 | {Task Name} | {list} | pending | |
|
|
62
|
-
```
|
|
58
|
+
Follow the **Task Table** template from plan-index-schema. Use placeholder IDs `{topic}-{phase}-{seq}`. Set `Status` to `pending`. Leave `Ext ID` empty.
|
|
63
59
|
|
|
64
|
-
|
|
60
|
+
The orchestrator will use the topic name from the Plan Index File.
|
|
65
61
|
|
|
66
62
|
## Rules
|
|
67
63
|
|
package/package.json
CHANGED
|
@@ -19,6 +19,7 @@ Pass via the orchestrator's prompt:
|
|
|
19
19
|
3. **Plan path** — the implementation plan path
|
|
20
20
|
4. **Plan format reading adapter path** — `../../technical-planning/references/output-formats/{format}/reading.md`
|
|
21
21
|
5. **Plan format authoring adapter path** — `../../technical-planning/references/output-formats/{format}/authoring.md`
|
|
22
|
+
6. **plan-index-schema.md** — `../../technical-planning/references/plan-index-schema.md`
|
|
22
23
|
|
|
23
24
|
---
|
|
24
25
|
|
|
@@ -62,7 +62,7 @@ Context refresh (compaction) summarizes the conversation, losing procedural deta
|
|
|
62
62
|
2. **Read all tracking and state files** for the current topic — plan index files, review tracking files, implementation tracking files, or any working documents this skill creates. These are your source of truth for progress.
|
|
63
63
|
3. **Check git state.** Run `git status` and `git log --oneline -10` to see recent commits. Commit messages follow a conventional pattern that reveals what was completed.
|
|
64
64
|
4. **Announce your position** to the user before continuing: what step you believe you're at, what's been completed, and what comes next. Wait for confirmation.
|
|
65
|
-
5. **Check `author_gate_mode
|
|
65
|
+
5. **Check `task_list_gate_mode`, `author_gate_mode`, and `finding_gate_mode`** in the Plan Index File frontmatter — if `auto`, the user previously opted in during this session. Preserve these values.
|
|
66
66
|
|
|
67
67
|
Do not guess at progress or continue from memory. The files on disk and git history are authoritative — your recollection is not.
|
|
68
68
|
|
|
@@ -118,7 +118,7 @@ Found existing plan for **{topic}** (previously reached phase {N}, task {M}).
|
|
|
118
118
|
|
|
119
119
|
If the specification changed, update `spec_commit` in the Plan Index File frontmatter to the current commit hash.
|
|
120
120
|
|
|
121
|
-
Reset `author_gate_mode
|
|
121
|
+
Reset `task_list_gate_mode`, `author_gate_mode`, and `finding_gate_mode` to `gated` in the Plan Index File frontmatter (fresh invocation = fresh gates).
|
|
122
122
|
|
|
123
123
|
→ Proceed to **Step 1**.
|
|
124
124
|
|
|
@@ -172,29 +172,7 @@ Once selected:
|
|
|
172
172
|
|
|
173
173
|
1. Read **[output-formats.md](references/output-formats.md)**, find the chosen format entry, and load the format's **[about.md](references/output-formats/{format}/about.md)** and **[authoring.md](references/output-formats/{format}/authoring.md)**
|
|
174
174
|
2. Capture the current git commit hash: `git rev-parse HEAD`
|
|
175
|
-
3. Create the Plan Index File at `docs/workflow/planning/{topic}/plan.md`
|
|
176
|
-
|
|
177
|
-
```yaml
|
|
178
|
-
---
|
|
179
|
-
topic: {topic-name}
|
|
180
|
-
status: planning
|
|
181
|
-
format: {chosen-format}
|
|
182
|
-
specification: ../specification/{topic}/specification.md
|
|
183
|
-
cross_cutting_specs: # Omit if none
|
|
184
|
-
- ../specification/{spec}/specification.md
|
|
185
|
-
spec_commit: {output of git rev-parse HEAD}
|
|
186
|
-
created: YYYY-MM-DD # Use today's actual date
|
|
187
|
-
updated: YYYY-MM-DD # Use today's actual date
|
|
188
|
-
external_dependencies: []
|
|
189
|
-
author_gate_mode: gated
|
|
190
|
-
finding_gate_mode: gated
|
|
191
|
-
planning:
|
|
192
|
-
phase: 1
|
|
193
|
-
task: ~
|
|
194
|
-
---
|
|
195
|
-
|
|
196
|
-
# Plan: {Topic Name}
|
|
197
|
-
```
|
|
175
|
+
3. Create the Plan Index File at `docs/workflow/planning/{topic}/plan.md` using the **Frontmatter** and **Title** templates from **[plan-index-schema.md](references/plan-index-schema.md)**. Set `status: planning`, `spec_commit` to the captured git hash, and today's actual date for `created` and `updated`.
|
|
198
176
|
|
|
199
177
|
3. Commit: `planning({topic}): initialize plan`
|
|
200
178
|
|
|
@@ -55,7 +55,7 @@ Task {M} of {total}: {Task Name} — authored. Logging to plan.
|
|
|
55
55
|
· · · · · · · · · · · ·
|
|
56
56
|
**To proceed:**
|
|
57
57
|
- **`y`/`yes`** — Approved. I'll log it to the plan.
|
|
58
|
-
- **`a`/`auto`** — Approve this and all remaining
|
|
58
|
+
- **`a`/`auto`** — Approve this and all remaining task authoring gates automatically
|
|
59
59
|
- **Or tell me what to change.**
|
|
60
60
|
- **Or navigate** — a different phase or task, or the leading edge.
|
|
61
61
|
· · · · · · · · · · · ·
|
|
@@ -85,11 +85,15 @@ Note that `author_gate_mode` should be updated to `auto` during the commit step
|
|
|
85
85
|
|
|
86
86
|
> **CHECKPOINT**: If `author_gate_mode: gated`, verify before logging: (1) You presented this exact content, (2) The user explicitly approved with `y`/`yes` or equivalent — not a question, comment, or "okay" in passing, (3) You are writing exactly what was approved with no modifications.
|
|
87
87
|
|
|
88
|
+
See **[plan-index-schema.md](plan-index-schema.md)** for field definitions and lifecycle.
|
|
89
|
+
|
|
88
90
|
1. Write the task to the output format (format-specific — see authoring.md)
|
|
89
|
-
2.
|
|
90
|
-
3.
|
|
91
|
-
4.
|
|
92
|
-
5.
|
|
91
|
+
2. 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.
|
|
92
|
+
3. If the current phase's `ext_id` is empty, set it to the external identifier for the phase as exposed by the output format.
|
|
93
|
+
4. 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.
|
|
94
|
+
5. Advance the `planning:` block in frontmatter to the next pending task (or next phase if this was the last task)
|
|
95
|
+
6. If user chose `auto` at this gate: update `author_gate_mode: auto` in the Plan Index File frontmatter
|
|
96
|
+
7. Commit: `planning({topic}): author task {task-id} ({task name})`
|
|
93
97
|
|
|
94
98
|
> *Output the next fenced block as a code block:*
|
|
95
99
|
|
|
@@ -41,6 +41,7 @@ Invoke `planning-phase-designer` with these file paths:
|
|
|
41
41
|
3. **Cross-cutting specs**: paths from the Plan Index File's `cross_cutting_specs:` field (if any)
|
|
42
42
|
4. **phase-design.md**: `phase-design.md`
|
|
43
43
|
5. **task-design.md**: `task-design.md`
|
|
44
|
+
6. **plan-index-schema.md**: `plan-index-schema.md`
|
|
44
45
|
|
|
45
46
|
The agent returns a complete phase structure. Write it directly to the Plan Index File body.
|
|
46
47
|
|
|
@@ -88,7 +89,7 @@ Update the Plan Index File with the revised output, re-present, and ask again. R
|
|
|
88
89
|
|
|
89
90
|
**If the phase structure is new or was amended:**
|
|
90
91
|
|
|
91
|
-
1. Update each phase in the Plan Index File: set `status: approved` and `approved_at: YYYY-MM-DD` (use today's actual date)
|
|
92
|
+
1. Update each phase in the Plan Index File: set `status: approved` and `approved_at: YYYY-MM-DD` (use today's actual date). See **Phase Entry** in plan-index-schema for field definitions.
|
|
92
93
|
2. Commit: `planning({topic}): approve phase structure`
|
|
93
94
|
|
|
94
95
|
**If the phase structure was already approved and unchanged:** No updates needed.
|
|
@@ -28,6 +28,7 @@ Invoke `planning-task-designer` with these file paths:
|
|
|
28
28
|
4. **task-design.md**: `task-design.md`
|
|
29
29
|
5. **All approved phases**: the complete phase structure from the Plan Index File body
|
|
30
30
|
6. **Target phase number**: the phase being broken into tasks
|
|
31
|
+
7. **plan-index-schema.md**: `plan-index-schema.md`
|
|
31
32
|
|
|
32
33
|
### Present the Output
|
|
33
34
|
|
|
@@ -42,7 +43,31 @@ planning:
|
|
|
42
43
|
|
|
43
44
|
Commit: `planning({topic}): draft Phase {N} task list`
|
|
44
45
|
|
|
45
|
-
Present the task overview to the user
|
|
46
|
+
Present the task overview to the user:
|
|
47
|
+
|
|
48
|
+
> *Output the next fenced block as markdown (not a code block):*
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
{task overview from planning-task-designer agent}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Then check the gate mode.
|
|
55
|
+
|
|
56
|
+
### Check Gate Mode
|
|
57
|
+
|
|
58
|
+
Check `task_list_gate_mode` in the Plan Index File frontmatter.
|
|
59
|
+
|
|
60
|
+
#### If `task_list_gate_mode: auto`
|
|
61
|
+
|
|
62
|
+
> *Output the next fenced block as a code block:*
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
Phase {N}: {Phase Name} — task list approved. Proceeding to authoring.
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
→ Skip to **If approved** below.
|
|
69
|
+
|
|
70
|
+
#### If `task_list_gate_mode: gated`
|
|
46
71
|
|
|
47
72
|
**STOP.** Ask:
|
|
48
73
|
|
|
@@ -52,6 +77,7 @@ Present the task overview to the user as rendered markdown (not in a code block)
|
|
|
52
77
|
· · · · · · · · · · · ·
|
|
53
78
|
**To proceed:**
|
|
54
79
|
- **`y`/`yes`** — Approved.
|
|
80
|
+
- **`a`/`auto`** — Approve this and all remaining task list gates automatically
|
|
55
81
|
- **Or tell me what to change** — reorder, split, merge, add, edit, or remove tasks.
|
|
56
82
|
- **Or navigate** — a different phase or task, or the leading edge.
|
|
57
83
|
· · · · · · · · · · · ·
|
|
@@ -65,12 +91,19 @@ Re-invoke `planning-task-designer` with all original inputs PLUS:
|
|
|
65
91
|
|
|
66
92
|
Update the Plan Index File with the revised task table, re-present, and ask again. Repeat until approved.
|
|
67
93
|
|
|
68
|
-
#### If
|
|
94
|
+
#### If `auto`
|
|
95
|
+
|
|
96
|
+
Note that `task_list_gate_mode` should be updated to `auto` during the commit step below.
|
|
97
|
+
|
|
98
|
+
→ Proceed to **If approved** below.
|
|
99
|
+
|
|
100
|
+
#### If approved (`y`/`yes` or `auto`)
|
|
69
101
|
|
|
70
102
|
**If the task list is new or was amended:**
|
|
71
103
|
|
|
72
104
|
1. Advance the `planning:` block to the first task in this phase
|
|
73
|
-
2.
|
|
105
|
+
2. If user chose `auto` at this gate: update `task_list_gate_mode: auto` in the Plan Index File frontmatter
|
|
106
|
+
3. Commit: `planning({topic}): approve Phase {N} task list`
|
|
74
107
|
|
|
75
108
|
**If the task list was already approved and unchanged:** No updates needed.
|
|
76
109
|
|
|
@@ -79,6 +79,20 @@ After Step A returns with an approved task table, continue to **Author Tasks for
|
|
|
79
79
|
{task list from the phase's task table}
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
+
Check `task_list_gate_mode` in the Plan Index File frontmatter.
|
|
83
|
+
|
|
84
|
+
#### If `task_list_gate_mode: auto` (existing task table)
|
|
85
|
+
|
|
86
|
+
> *Output the next fenced block as a code block:*
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
Phase {N}: {Phase Name} — task list confirmed. Proceeding to authoring.
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
→ Continue to **Author Tasks for the Phase** below.
|
|
93
|
+
|
|
94
|
+
#### If `task_list_gate_mode: gated` (existing task table)
|
|
95
|
+
|
|
82
96
|
> *Output the next fenced block as markdown (not a code block):*
|
|
83
97
|
|
|
84
98
|
```
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Plan Index Schema
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-planning](../SKILL.md)** and its agents*
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This file defines the canonical structure for Plan Index Files (`docs/workflow/planning/{topic}/plan.md`). All agents and references that create or update plan index content **must** follow these templates.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Frontmatter
|
|
12
|
+
|
|
13
|
+
```yaml
|
|
14
|
+
---
|
|
15
|
+
topic: {topic-name}
|
|
16
|
+
status: {status}
|
|
17
|
+
format: {chosen-format}
|
|
18
|
+
ext_id:
|
|
19
|
+
specification: ../specification/{topic}/specification.md
|
|
20
|
+
cross_cutting_specs:
|
|
21
|
+
- ../specification/{spec}/specification.md
|
|
22
|
+
spec_commit: {commit-hash}
|
|
23
|
+
created: YYYY-MM-DD
|
|
24
|
+
updated: YYYY-MM-DD
|
|
25
|
+
external_dependencies: []
|
|
26
|
+
task_list_gate_mode: gated
|
|
27
|
+
author_gate_mode: gated
|
|
28
|
+
finding_gate_mode: gated
|
|
29
|
+
planning:
|
|
30
|
+
phase: 1
|
|
31
|
+
task: ~
|
|
32
|
+
---
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
| Field | Set when |
|
|
36
|
+
|-------|----------|
|
|
37
|
+
| `topic` | Plan creation (Step 1) |
|
|
38
|
+
| `status` | Plan creation → `planning`; conclusion → `concluded` |
|
|
39
|
+
| `format` | Plan creation — user-chosen output format |
|
|
40
|
+
| `ext_id` | First task authored — external identifier for the plan |
|
|
41
|
+
| `specification` | Plan creation — relative path to source specification |
|
|
42
|
+
| `cross_cutting_specs` | Plan creation — relative paths to cross-cutting specs (omit key if none) |
|
|
43
|
+
| `spec_commit` | Plan creation — `git rev-parse HEAD`; updated on continue if spec changed |
|
|
44
|
+
| `created` | Plan creation — today's date |
|
|
45
|
+
| `updated` | Plan creation — today's date; update on each commit |
|
|
46
|
+
| `external_dependencies` | Dependency resolution (Step 6) |
|
|
47
|
+
| `task_list_gate_mode` | Plan creation → `gated`; user opts in → `auto` |
|
|
48
|
+
| `author_gate_mode` | Plan creation → `gated`; user opts in → `auto` |
|
|
49
|
+
| `finding_gate_mode` | Plan creation → `gated`; user opts in → `auto` |
|
|
50
|
+
| `planning.phase` | Tracks current phase position |
|
|
51
|
+
| `planning.task` | Tracks current task position (`~` when between tasks) |
|
|
52
|
+
| `review_cycle` | Added by plan-review when review cycle begins |
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Title
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
# Plan: {Topic Name}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Phase Entry
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
### Phase {N}: {Phase Name}
|
|
68
|
+
status: {status}
|
|
69
|
+
ext_id:
|
|
70
|
+
approved_at: {YYYY-MM-DD}
|
|
71
|
+
|
|
72
|
+
**Goal**: {What this phase accomplishes}
|
|
73
|
+
|
|
74
|
+
**Why this order**: {Why this comes at this position}
|
|
75
|
+
|
|
76
|
+
**Acceptance**:
|
|
77
|
+
- [ ] {First verifiable criterion}
|
|
78
|
+
- [ ] {Second verifiable criterion}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
| Field | Set when |
|
|
82
|
+
|-------|----------|
|
|
83
|
+
| `status` | Phase design → `draft`; approval → `approved` |
|
|
84
|
+
| `ext_id` | First task in phase authored — external identifier for the phase |
|
|
85
|
+
| `approved_at` | Phase approval — today's date. Omit while `draft`. |
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Task Table
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
#### Tasks
|
|
93
|
+
| ID | Name | Status | Ext ID |
|
|
94
|
+
|----|------|--------|--------|
|
|
95
|
+
| {topic}-{phase}-{seq} | {Task Name} | {status} | |
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
| Field | Set when |
|
|
99
|
+
|-------|----------|
|
|
100
|
+
| `ID` | Task design — format: `{topic}-{phase}-{seq}` |
|
|
101
|
+
| `Name` | Task design — descriptive task name |
|
|
102
|
+
| `Status` | Task design → `pending`; authoring → `authored` |
|
|
103
|
+
| `Ext ID` | Task authored — external identifier for the task |
|