taskplane 0.1.16 → 0.1.18
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/extensions/taskplane/execution.ts +67 -2
- package/package.json +1 -1
- package/skills/create-taskplane-task/SKILL.md +363 -326
- package/skills/create-taskplane-task/references/prompt-template.md +245 -246
- package/templates/agents/task-reviewer.md +109 -81
- package/templates/agents/task-worker.md +159 -140
|
@@ -1,326 +1,363 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: create-taskplane-task
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
**task-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
task
|
|
19
|
-
|
|
20
|
-
├─ task-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
- `
|
|
37
|
-
- `
|
|
38
|
-
- `
|
|
39
|
-
- `
|
|
40
|
-
- `
|
|
41
|
-
- `
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
- A task about
|
|
61
|
-
- A task about
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
- **
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
|
118
|
-
|
|
|
119
|
-
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
| **
|
|
127
|
-
| **
|
|
128
|
-
| **
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
| **
|
|
149
|
-
| **
|
|
150
|
-
| **
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
| **
|
|
164
|
-
| **
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
**
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
---
|
|
299
|
-
|
|
300
|
-
##
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
-
|
|
321
|
-
|
|
322
|
-
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
1
|
+
---
|
|
2
|
+
name: create-taskplane-task
|
|
3
|
+
version: 1.1.0
|
|
4
|
+
description: Creates structured Taskplane task packets (PROMPT.md, STATUS.md) for autonomous agent execution via the task-runner and task-orchestrator extensions. Use when asked to "create a task", "create a taskplane task", "stage a task", "prepare a task for execution", "write a PROMPT.md", "set up work for the agent", "queue a task", or whenever the user wants to define work that will be executed autonomously by another agent instance.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Create Taskplane Task
|
|
8
|
+
|
|
9
|
+
Creates structured task packets (PROMPT.md + STATUS.md) for autonomous execution
|
|
10
|
+
via the **task-runner extension** and parallel batch execution via the
|
|
11
|
+
**task-orchestrator extension**. The extensions handle the execution loop,
|
|
12
|
+
fresh-context management, cross-model reviews, wave scheduling, and live
|
|
13
|
+
dashboard — so PROMPT.md stays focused on WHAT to do, not HOW to execute.
|
|
14
|
+
|
|
15
|
+
## Architecture
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
create-taskplane-task skill → Creates PROMPT.md + STATUS.md
|
|
19
|
+
task-runner extension → Executes the task autonomously
|
|
20
|
+
├─ task-worker.md agent → Worker system prompt (checkpoint discipline, resume logic)
|
|
21
|
+
├─ task-reviewer.md agent → Reviewer system prompt (review formats, criteria)
|
|
22
|
+
└─ task-runner.yaml config → Project-specific settings, paths, standards
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The skill only creates files. All execution behavior lives in the extension and agents.
|
|
26
|
+
|
|
27
|
+
## Prerequisites
|
|
28
|
+
|
|
29
|
+
**If `.pi/task-runner.yaml` does not exist**, the project has not been initialized.
|
|
30
|
+
Tell the user to run `taskplane init` first — the skill cannot create tasks
|
|
31
|
+
without knowing where task areas live.
|
|
32
|
+
|
|
33
|
+
## Configuration
|
|
34
|
+
|
|
35
|
+
**Read `.pi/task-runner.yaml` before creating any task.** It contains:
|
|
36
|
+
- `task_areas` — folder paths, prefixes, CONTEXT.md locations per area
|
|
37
|
+
- `reference_docs` — available Tier 3 docs for "Context to Read First"
|
|
38
|
+
- `standards` — project coding rules and standards docs
|
|
39
|
+
- `testing.commands` — how to run tests
|
|
40
|
+
- `self_doc_targets` — where agents log discoveries
|
|
41
|
+
- `protected_docs` — docs requiring user approval to modify
|
|
42
|
+
- `never_load` — docs to exclude from task execution context
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Task Creation Workflow
|
|
47
|
+
|
|
48
|
+
### Step 1: Determine Location & Next ID
|
|
49
|
+
|
|
50
|
+
The user will rarely specify which area to use — **figure it out from context.**
|
|
51
|
+
|
|
52
|
+
**When there's only one area** (typical for new projects), use it directly.
|
|
53
|
+
|
|
54
|
+
**When there are multiple areas**, match the task to the right area:
|
|
55
|
+
|
|
56
|
+
1. Read `.pi/task-runner.yaml` → `task_areas` to get all areas
|
|
57
|
+
2. Read each area's `CONTEXT.md` — the "Current State" section describes what
|
|
58
|
+
that area owns (its domain, services, file scope)
|
|
59
|
+
3. Match the task description to the area whose scope best fits:
|
|
60
|
+
- A task about PTO accrual → `time-off` area
|
|
61
|
+
- A task about the orchestrator itself → `task-system` area
|
|
62
|
+
- A task about login flows → `identity-access` area
|
|
63
|
+
4. If ambiguous (task spans multiple areas), prefer the area that owns the
|
|
64
|
+
primary file being modified, or ask the user
|
|
65
|
+
|
|
66
|
+
**After selecting the area:**
|
|
67
|
+
|
|
68
|
+
1. Read that area's `CONTEXT.md` and find the `Next Task ID` counter
|
|
69
|
+
2. Use that ID for the new task
|
|
70
|
+
3. **Increment the counter** in the same CONTEXT.md edit
|
|
71
|
+
|
|
72
|
+
**Note:** Task area structures evolve over time. A new project starts with a
|
|
73
|
+
single `taskplane-tasks/` folder and one area. As the project grows, users add
|
|
74
|
+
domains and platform areas in `task-runner.yaml`. The skill adapts — it always
|
|
75
|
+
reads the config to discover what areas exist rather than assuming a layout.
|
|
76
|
+
|
|
77
|
+
### Step 2: Assess Complexity & Size
|
|
78
|
+
|
|
79
|
+
See [Complexity Assessment](#complexity-assessment) and [Task Sizing](#task-sizing).
|
|
80
|
+
|
|
81
|
+
### Step 3: Create Task Folder
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
{area.path}/{PREFIX-###-slug}/
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Step 4: Create PROMPT.md
|
|
88
|
+
|
|
89
|
+
Use the template in [references/prompt-template.md](references/prompt-template.md).
|
|
90
|
+
|
|
91
|
+
### Step 5: Create STATUS.md
|
|
92
|
+
|
|
93
|
+
Use the STATUS.md template in [references/prompt-template.md](references/prompt-template.md).
|
|
94
|
+
(If omitted, the task-runner extension auto-generates it from PROMPT.md.)
|
|
95
|
+
|
|
96
|
+
### Step 6: Update Tracking
|
|
97
|
+
|
|
98
|
+
- **CONTEXT.md** — Increment `Next Task ID` (done in Step 1)
|
|
99
|
+
- **PROGRESS.md** — Add row to "Active Tasks" table
|
|
100
|
+
|
|
101
|
+
### Step 7: Report Launch Command
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
/task {area.path}/{PREFIX-###-slug}/PROMPT.md
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Complexity Assessment
|
|
110
|
+
|
|
111
|
+
Evaluate the task to determine cross-model review level.
|
|
112
|
+
|
|
113
|
+
### Review Levels
|
|
114
|
+
|
|
115
|
+
| Level | Label | Reviewer Calls |
|
|
116
|
+
|-------|-------|----------------|
|
|
117
|
+
| 0 | None | Zero — doc updates, config, boilerplate |
|
|
118
|
+
| 1 | Plan Only | Plan review before implementation |
|
|
119
|
+
| 2 | Plan + Code | Plan review + code review after implementation |
|
|
120
|
+
| 3 | Full | Plan + code + test review |
|
|
121
|
+
|
|
122
|
+
### Scoring (0-2 per dimension, sum for level)
|
|
123
|
+
|
|
124
|
+
| Dimension | 0 (Low) | 1 (Medium) | 2 (High) |
|
|
125
|
+
|-----------|---------|------------|----------|
|
|
126
|
+
| **Blast radius** | Single file | Single service | Multiple services |
|
|
127
|
+
| **Pattern novelty** | Existing patterns | Adapting patterns | New patterns |
|
|
128
|
+
| **Security** | No auth/data | Touches auth | Modifies auth/encryption |
|
|
129
|
+
| **Reversibility** | Easy revert | Needs migration | Data model change |
|
|
130
|
+
|
|
131
|
+
- Score 0-1 → Level 0 · Score 2-3 → Level 1 · Score 4-5 → Level 2 · Score 6-8 → Level 3
|
|
132
|
+
|
|
133
|
+
### Per-Step Override
|
|
134
|
+
|
|
135
|
+
Individual steps can override the task-level review:
|
|
136
|
+
|
|
137
|
+
```markdown
|
|
138
|
+
### Step 3: Add RBAC middleware
|
|
139
|
+
> **Review override: code review** — This step touches authorization.
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Task Sizing
|
|
145
|
+
|
|
146
|
+
| Size | Duration | Action |
|
|
147
|
+
|------|----------|--------|
|
|
148
|
+
| **S** | < 2 hours | Create as-is |
|
|
149
|
+
| **M** | 2-4 hours | Ideal size — create as-is |
|
|
150
|
+
| **L** | 4-8 hours | Split if possible |
|
|
151
|
+
| **XL** | 8+ hours | **Must split** into M/L tasks with dependencies |
|
|
152
|
+
|
|
153
|
+
**Rule of thumb:** More than ~3 major implementation steps → split it.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Tiered Context Loading
|
|
158
|
+
|
|
159
|
+
PROMPT.md tells the worker what to load. Less is better.
|
|
160
|
+
|
|
161
|
+
| Tier | What | Loaded By |
|
|
162
|
+
|------|------|-----------|
|
|
163
|
+
| **1** | PROMPT.md + STATUS.md | Always (automatic) |
|
|
164
|
+
| **2** | Area CONTEXT.md | When referenced in "Context to Read First" |
|
|
165
|
+
| **3** | Specific reference docs | Only the docs this task needs |
|
|
166
|
+
|
|
167
|
+
Populate "Context to Read First" in PROMPT.md using docs from
|
|
168
|
+
`task-runner.yaml → reference_docs`. List only what the task actually needs.
|
|
169
|
+
|
|
170
|
+
Docs in `task-runner.yaml → never_load` must NOT appear in any task.
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## STATUS.md Hydration
|
|
175
|
+
|
|
176
|
+
STATUS.md is the worker's ONLY memory between iterations. It needs enough
|
|
177
|
+
structure so progress survives when an iteration ends mid-step — but not so much
|
|
178
|
+
structure that it becomes a rigid script the worker follows mechanically.
|
|
179
|
+
|
|
180
|
+
### Philosophy: Adaptive Planning, Not Exhaustive Scripting
|
|
181
|
+
|
|
182
|
+
Hydration exists because workers discover things at runtime they couldn't know
|
|
183
|
+
upfront: the actual function signatures, the edge cases that emerge from reading
|
|
184
|
+
source, the reviewer feedback that reshapes approach. The goal is **adaptability
|
|
185
|
+
in the face of unknowns** — not granularity for its own sake.
|
|
186
|
+
|
|
187
|
+
**The right level of detail depends on predictability:**
|
|
188
|
+
|
|
189
|
+
| How predictable is the work? | Approach |
|
|
190
|
+
|------------------------------|----------|
|
|
191
|
+
| You know exactly what files/methods/tests are needed | List them as checkboxes |
|
|
192
|
+
| You know the general shape but details depend on source code | Write intent-level checkboxes; trust the worker to figure out implementation specifics |
|
|
193
|
+
| You genuinely don't know what's needed until a prior step runs | Use `⚠️ Hydrate` marker |
|
|
194
|
+
|
|
195
|
+
**Anti-pattern to avoid:** Creating 15+ micro-checkboxes that spell out every
|
|
196
|
+
function name, parameter, and assertion before the worker has even read the
|
|
197
|
+
source code. This wastes task-creation time, produces items that frequently need
|
|
198
|
+
revision anyway, and turns the worker into a checkbox-follower instead of a
|
|
199
|
+
problem-solver.
|
|
200
|
+
|
|
201
|
+
### Task Creator Responsibilities
|
|
202
|
+
|
|
203
|
+
**Match STATUS.md to PROMPT.md granularity — no more, no less.** PROMPT.md steps
|
|
204
|
+
should express *outcomes* the worker needs to achieve, not dictate *how* to
|
|
205
|
+
achieve them.
|
|
206
|
+
|
|
207
|
+
Good granularity examples:
|
|
208
|
+
|
|
209
|
+
| PROMPT.md says | STATUS.md should have |
|
|
210
|
+
|----------------|-----------------------|
|
|
211
|
+
| "Implement CRUD operations for Projects" | `- [ ] Implement Create, Read, Update, Delete for Projects` (one checkbox — the worker can figure out 4 methods) |
|
|
212
|
+
| "Add repo-aware fields to persistence schema" | `- [ ] Add repo fields to schema and update serialization` |
|
|
213
|
+
| "Test merge failure scenarios" | `- [ ] Add tests for merge failure paths` |
|
|
214
|
+
| "Update merge flow to work per-repo" | `- [ ] Refactor merge to partition by repo` and `- [ ] Aggregate per-repo results` (two checkboxes — these are genuinely distinct outcomes) |
|
|
215
|
+
|
|
216
|
+
Over-hydrated examples (avoid):
|
|
217
|
+
|
|
218
|
+
| ❌ Too granular | ✅ Better |
|
|
219
|
+
|----------------|-----------|
|
|
220
|
+
| 10 checkboxes naming every function, parameter, and import to change | 2-3 checkboxes describing the behavioral changes |
|
|
221
|
+
| Separate checkboxes for "create file", "add imports", "add function", "export function" | One checkbox: "Create helper module with X capability" |
|
|
222
|
+
| One checkbox per test assertion | One checkbox per test scenario or category |
|
|
223
|
+
|
|
224
|
+
**Use `⚠️ Hydrate` markers** for steps that genuinely depend on runtime
|
|
225
|
+
discoveries — where the task creator cannot know the items upfront:
|
|
226
|
+
|
|
227
|
+
```markdown
|
|
228
|
+
### Step 2: Handle migration
|
|
229
|
+
**Status:** ⬜ Not Started
|
|
230
|
+
> ⚠️ Hydrate: Expand based on schema gaps identified in Step 1
|
|
231
|
+
|
|
232
|
+
- [ ] Implement v1→v2 compatibility (details depend on Step 1 findings)
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**When to use markers vs. pre-hydration:**
|
|
236
|
+
|
|
237
|
+
| Situation | Approach |
|
|
238
|
+
|-----------|----------|
|
|
239
|
+
| Outcomes are known at creation time | Pre-hydrate with outcome-level checkboxes |
|
|
240
|
+
| Details depend on analysis/discovery in a prior step | `⚠️ Hydrate` marker |
|
|
241
|
+
| Details depend on what exists on disk | `⚠️ Hydrate` marker |
|
|
242
|
+
| Reviewer feedback adds new items | Worker adds items (handled by worker agent) |
|
|
243
|
+
|
|
244
|
+
### Worker Hydration at Runtime
|
|
245
|
+
|
|
246
|
+
Workers may expand checkboxes when entering a step — but should apply the same
|
|
247
|
+
principle: **add checkboxes for distinct outcomes discovered during exploration,
|
|
248
|
+
not for every individual code change.** The worker agent has hydration rules
|
|
249
|
+
(commit-before-implement, REVISE-triggered expansion). The goal is a useful
|
|
250
|
+
resumability checkpoint, not a line-by-line implementation journal.
|
|
251
|
+
|
|
252
|
+
### Constraint: No New Steps at Runtime
|
|
253
|
+
|
|
254
|
+
**Workers MUST NOT add, remove, or renumber steps during execution.** The
|
|
255
|
+
task-runner extension parses the step list from PROMPT.md once at `/task` launch
|
|
256
|
+
and iterates that fixed list. Steps added to STATUS.md at runtime will appear in
|
|
257
|
+
the dashboard but **silently never execute**.
|
|
258
|
+
|
|
259
|
+
Hydration expands checkboxes *within* existing steps only. If a worker discovers
|
|
260
|
+
work that doesn't fit any step, it should add sub-checkboxes to the closest
|
|
261
|
+
existing step and log the overflow in the STATUS.md Discoveries table.
|
|
262
|
+
|
|
263
|
+
**Task creators:** ensure PROMPT.md has all necessary steps upfront. If a task's
|
|
264
|
+
scope might expand during execution, prefer fewer broad steps (the worker will
|
|
265
|
+
hydrate them) over many narrow steps that might need restructuring.
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## PROMPT.md Amendment Policy
|
|
270
|
+
|
|
271
|
+
The template includes an `## Amendments` placeholder at the bottom of PROMPT.md.
|
|
272
|
+
Original content above the `---` divider is immutable — workers use that section
|
|
273
|
+
only for issues like missing prerequisites or contradictory instructions, not
|
|
274
|
+
scope expansion or style preferences.
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Dependencies Format
|
|
279
|
+
|
|
280
|
+
The orchestrator **machine-parses** this section using regex — stick to the exact
|
|
281
|
+
patterns below. Non-standard formatting (e.g., missing bold markers, inline prose
|
|
282
|
+
without a task ID pattern) may cause silent dependency misses or `PARSE_MALFORMED`
|
|
283
|
+
errors at batch time.
|
|
284
|
+
|
|
285
|
+
```markdown
|
|
286
|
+
## Dependencies
|
|
287
|
+
|
|
288
|
+
- **Task:** TO-014 (PTO policy engine must exist)
|
|
289
|
+
- **Task:** employee-management/EM-003 (area-qualified when ID may be ambiguous)
|
|
290
|
+
- **External:** All backend services running (ports 8080-8085)
|
|
291
|
+
- **None**
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
Notes:
|
|
295
|
+
- Use unqualified `TASK-ID` when globally unique
|
|
296
|
+
- Use `area-name/TASK-ID` for cross-area clarity or when orchestrator reports `DEP_AMBIGUOUS`
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Checklist (Definition of Ready)
|
|
301
|
+
|
|
302
|
+
Verify every task against this before reporting the launch command:
|
|
303
|
+
|
|
304
|
+
- [ ] `Next Task ID` read from CONTEXT.md and incremented
|
|
305
|
+
- [ ] Folder created at correct `task_areas` path with name `{PREFIX}-{###}-{slug}`
|
|
306
|
+
- [ ] Complexity assessed, review level assigned (0-3)
|
|
307
|
+
- [ ] Size assessed (S/M/L) — split if XL
|
|
308
|
+
- [ ] PROMPT.md created from template with all required sections:
|
|
309
|
+
- [ ] `## Mission` with what AND why
|
|
310
|
+
- [ ] `## Dependencies` section
|
|
311
|
+
- [ ] `## Context to Read First` lists only needed Tier 3 docs
|
|
312
|
+
- [ ] `## File Scope` lists files/dirs the task will touch
|
|
313
|
+
- [ ] Each step has checkboxes with verifiable outcomes
|
|
314
|
+
- [ ] Explicit testing step with commands
|
|
315
|
+
- [ ] `## Do NOT` guardrails
|
|
316
|
+
- [ ] "Must Update" and "Check If Affected" doc lists
|
|
317
|
+
- [ ] `## Git Commit Convention` section (from template)
|
|
318
|
+
- [ ] `## Amendments` placeholder at bottom
|
|
319
|
+
- [ ] STATUS.md created with matching step structure
|
|
320
|
+
- [ ] Checkboxes match PROMPT.md granularity (1:1 where items are known)
|
|
321
|
+
- [ ] `⚠️ Hydrate` markers for discovery-dependent steps
|
|
322
|
+
- [ ] PROGRESS.md updated (add to "Active Tasks")
|
|
323
|
+
- [ ] Launch command reported: `/task {path}/PROMPT.md`
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## Git Commit Convention
|
|
328
|
+
|
|
329
|
+
The prompt template includes a `## Git Commit Convention` section with the full
|
|
330
|
+
format table (`feat(TASK-ID):`, `fix(TASK-ID):`, `checkpoint: TASK-ID`, etc.).
|
|
331
|
+
Always include it — without task ID prefixes, there's no way to trace commits
|
|
332
|
+
back to the task that produced them (`git log --grep="PM-004"` only works if
|
|
333
|
+
the prefix is there).
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Orchestrator Awareness
|
|
338
|
+
|
|
339
|
+
Tasks are often executed in parallel batches by the task-orchestrator extension,
|
|
340
|
+
not just individually via task-runner. Two fields in PROMPT.md become load-bearing
|
|
341
|
+
in batch mode:
|
|
342
|
+
|
|
343
|
+
- **`## Dependencies`** — determines wave ordering. Tasks with unmet deps are
|
|
344
|
+
deferred to later waves. Incorrect or missing deps cause parallel execution of
|
|
345
|
+
tasks that should be serial, leading to merge conflicts or stale reads.
|
|
346
|
+
- **`## File Scope`** — determines lane affinity. Tasks with overlapping file
|
|
347
|
+
scope are assigned to the same lane (serial) to avoid merge conflicts. Without
|
|
348
|
+
file scope, the orchestrator distributes tasks randomly across lanes.
|
|
349
|
+
|
|
350
|
+
When creating multiple tasks for a batch, think about which tasks touch the same
|
|
351
|
+
files and make sure their file scopes reflect that.
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## Key Principles
|
|
356
|
+
|
|
357
|
+
- **Documentation in every task.** Without "Must Update" and "Check If Affected"
|
|
358
|
+
lists, docs drift from reality and future tasks work from stale context.
|
|
359
|
+
- **Testing step required.** Workers can't distinguish pre-existing failures from
|
|
360
|
+
regressions they caused — every task needs a clean test pass to stay unblocked.
|
|
361
|
+
- **Self-contained PROMPT.md.** The worker starts with a fresh context and no
|
|
362
|
+
memory of the conversation that created the task. Everything it needs to begin
|
|
363
|
+
must be in PROMPT.md and the referenced docs.
|