@e0ipso/ai-task-manager 2.1.0 → 2.2.0
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/package.json
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e0ipso/ai-task-manager",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Task management for AI coding assistants",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"ai-task-manager": "dist/cli.js"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
-
"build": "tsc && npm run build:skills",
|
|
10
|
+
"build": "tsc && npm run build:skills && npm run build:skill-prompts",
|
|
11
11
|
"build:skills": "tsc --noEmit -p tsconfig.skill-scripts.json && node scripts/build-skills.cjs",
|
|
12
|
+
"build:skill-prompts": "node scripts/build-skill-prompts.cjs",
|
|
12
13
|
"dev": "tsc --watch",
|
|
13
14
|
"start": "node dist/cli.js",
|
|
14
15
|
"test": "jest",
|
|
@@ -22,15 +22,22 @@ The user supplies the numeric plan ID conversationally. Treat it as the only aut
|
|
|
22
22
|
|
|
23
23
|
### 1. Locate the task-manager root
|
|
24
24
|
|
|
25
|
-
Run `scripts/find-task-manager-root.cjs` from the user's working directory.
|
|
25
|
+
Run `scripts/find-task-manager-root.cjs` from the user's working directory.
|
|
26
|
+
The script walks up looking for `.ai/task-manager/.init-metadata.json` and
|
|
27
|
+
prints the absolute path of the resolved root on success.
|
|
26
28
|
|
|
27
|
-
If the script exits non-zero, the working directory is not inside an
|
|
29
|
+
If the script exits non-zero, the working directory is not inside an
|
|
30
|
+
initialized task-manager workspace. Stop and ask the user to run the project
|
|
31
|
+
initializer (e.g. `npx @e0ipso/ai-task-manager init`) before continuing. Do
|
|
32
|
+
not attempt to execute a plan outside of a valid root.
|
|
28
33
|
|
|
29
34
|
For every subsequent step, treat the path printed by this script as `<root>`.
|
|
30
35
|
|
|
31
36
|
### 2. Resolve the plan
|
|
32
37
|
|
|
33
|
-
Run `scripts/validate-plan-blueprint.cjs <plan-id> planFile` to obtain the
|
|
38
|
+
Run `scripts/validate-plan-blueprint.cjs <plan-id> planFile` to obtain the
|
|
39
|
+
absolute path of the plan file. The same script also accepts these field
|
|
40
|
+
names (single-field output mode) and exposes them on demand:
|
|
34
41
|
|
|
35
42
|
- `planDir` — absolute path of the plan directory
|
|
36
43
|
- `taskCount` — number of existing task files in that plan's `tasks/`
|
|
@@ -38,7 +45,8 @@ Run `scripts/validate-plan-blueprint.cjs <plan-id> planFile` to obtain the absol
|
|
|
38
45
|
- `taskManagerRoot` — absolute path of `<root>`
|
|
39
46
|
- `planId` — the resolved numeric plan ID
|
|
40
47
|
|
|
41
|
-
If the script exits non-zero, stop and ask the user to confirm the plan ID.
|
|
48
|
+
If the script exits non-zero, stop and ask the user to confirm the plan ID.
|
|
49
|
+
Do not guess a different ID.
|
|
42
50
|
|
|
43
51
|
### 3. Validate tasks and blueprint existence
|
|
44
52
|
|
|
@@ -42,9 +42,14 @@ These indicators are purely informational. Do not pause or wait for user input w
|
|
|
42
42
|
|
|
43
43
|
#### 1. Locate the task-manager root
|
|
44
44
|
|
|
45
|
-
Run `scripts/find-task-manager-root.cjs` from the user's working directory.
|
|
45
|
+
Run `scripts/find-task-manager-root.cjs` from the user's working directory.
|
|
46
|
+
The script walks up looking for `.ai/task-manager/.init-metadata.json` and
|
|
47
|
+
prints the absolute path of the resolved root on success.
|
|
46
48
|
|
|
47
|
-
If the script exits non-zero, the working directory is not inside an
|
|
49
|
+
If the script exits non-zero, the working directory is not inside an
|
|
50
|
+
initialized task-manager workspace. Stop and ask the user to run the project
|
|
51
|
+
initializer (e.g. `npx @e0ipso/ai-task-manager init`) before continuing. Do
|
|
52
|
+
not attempt to execute the full workflow outside of a valid root.
|
|
48
53
|
|
|
49
54
|
For every subsequent step, treat the path printed by this script as `<root>`.
|
|
50
55
|
|
|
@@ -128,45 +133,58 @@ Read these files in order:
|
|
|
128
133
|
|
|
129
134
|
#### 3. Analyze and decompose the plan
|
|
130
135
|
|
|
131
|
-
Read the entire plan. Identify all concrete deliverables explicitly stated
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
-
|
|
145
|
-
|
|
136
|
+
Read the entire plan. Identify all concrete deliverables **explicitly stated**.
|
|
137
|
+
Decompose each deliverable into atomic tasks only when genuinely needed.
|
|
138
|
+
|
|
139
|
+
**Task minimization (mandatory):**
|
|
140
|
+
|
|
141
|
+
- Create only the minimum number of tasks necessary. Target a 20–30%
|
|
142
|
+
reduction from comprehensive lists by questioning the necessity of each
|
|
143
|
+
candidate.
|
|
144
|
+
- **Direct Implementation Only**: a task corresponds to an explicit
|
|
145
|
+
requirement, not a "nice-to-have".
|
|
146
|
+
- **DRY Task Principle**: each task has a unique, non-overlapping purpose.
|
|
147
|
+
- **Question Everything**: for each task, ask "Is this absolutely necessary
|
|
148
|
+
to meet the plan objectives?"
|
|
149
|
+
- **Avoid Gold-plating**: resist comprehensive features the plan does not
|
|
150
|
+
require.
|
|
151
|
+
|
|
152
|
+
**Antipatterns to avoid:**
|
|
153
|
+
|
|
154
|
+
- Separating "error handling" from the main implementation when it can be
|
|
155
|
+
inline.
|
|
156
|
+
- Splitting trivially small operations into multiple tasks (e.g. "validate
|
|
157
|
+
input" + "process input" as separate units).
|
|
158
|
+
- Adding tasks for "future extensibility" or "best practices" the plan does
|
|
159
|
+
not mention.
|
|
146
160
|
- Comprehensive test suites for trivial functionality.
|
|
147
161
|
|
|
148
162
|
#### 4. Apply granularity and skill rules
|
|
149
163
|
|
|
150
164
|
Each task must be:
|
|
151
165
|
|
|
152
|
-
- Single-purpose — one clear deliverable.
|
|
153
|
-
- Atomic — cannot be meaningfully split further.
|
|
154
|
-
- Skill-specific — executable by an agent with 1–2 technical skills.
|
|
155
|
-
- Verifiable — has explicit acceptance criteria.
|
|
166
|
+
- **Single-purpose** — one clear deliverable.
|
|
167
|
+
- **Atomic** — cannot be meaningfully split further.
|
|
168
|
+
- **Skill-specific** — executable by an agent with 1–2 technical skills.
|
|
169
|
+
- **Verifiable** — has explicit acceptance criteria.
|
|
156
170
|
|
|
157
|
-
Skill assignment (kebab-case, automatically inferred
|
|
171
|
+
Skill assignment (kebab-case, automatically inferred from the task's
|
|
172
|
+
technical requirements):
|
|
158
173
|
|
|
159
|
-
- 1 skill — single-domain task (e.g
|
|
160
|
-
- 2 skills — complementary domains (e.g
|
|
174
|
+
- 1 skill — single-domain task (e.g. `["css"]`, `["jest"]`).
|
|
175
|
+
- 2 skills — complementary domains (e.g. `["api-endpoints", "database"]`,
|
|
176
|
+
`["react-components", "jest"]`).
|
|
161
177
|
- 3+ skills indicates the task should be broken down further.
|
|
162
178
|
|
|
163
|
-
#### 5. Test philosophy
|
|
179
|
+
#### 5. Test philosophy: "write a few tests, mostly integration"
|
|
164
180
|
|
|
165
|
-
When generating test tasks,
|
|
181
|
+
When generating test tasks, keep this constraint:
|
|
166
182
|
|
|
167
|
-
Meaningful tests verify custom business logic, critical paths,
|
|
183
|
+
**Definition.** Meaningful tests verify custom business logic, critical paths,
|
|
184
|
+
and edge cases specific to this application. Test *your* code, not the
|
|
185
|
+
framework or library.
|
|
168
186
|
|
|
169
|
-
When TO write tests
|
|
187
|
+
**When TO write tests:**
|
|
170
188
|
|
|
171
189
|
- Custom business logic and algorithms.
|
|
172
190
|
- Critical user workflows and data transformations.
|
|
@@ -174,7 +192,7 @@ When TO write tests:
|
|
|
174
192
|
- Integration points between components.
|
|
175
193
|
- Complex validation logic or calculations.
|
|
176
194
|
|
|
177
|
-
When NOT to write tests
|
|
195
|
+
**When NOT to write tests:**
|
|
178
196
|
|
|
179
197
|
- Third-party library functionality.
|
|
180
198
|
- Framework features.
|
|
@@ -182,7 +200,16 @@ When NOT to write tests:
|
|
|
182
200
|
- Trivial getters/setters or static configuration.
|
|
183
201
|
- Obvious functionality that would break immediately if incorrect.
|
|
184
202
|
|
|
185
|
-
|
|
203
|
+
**Test task creation rules:**
|
|
204
|
+
|
|
205
|
+
- Combine related test scenarios into a single task (e.g. "Test user
|
|
206
|
+
authentication flow" not separate tasks for login, logout, validation).
|
|
207
|
+
- Favor integration and critical-path coverage over per-method unit tests.
|
|
208
|
+
- Avoid one test task per CRUD operation.
|
|
209
|
+
- Question whether simple functions need a dedicated test task.
|
|
210
|
+
|
|
211
|
+
If any test task is generated, restate this section verbatim or near-verbatim
|
|
212
|
+
in that task's "Implementation Notes" so the executing agent applies it.
|
|
186
213
|
|
|
187
214
|
#### 6. Dependency analysis
|
|
188
215
|
|
|
@@ -207,7 +234,8 @@ Write each task to:
|
|
|
207
234
|
<root>/plans/<plan-dir-name>/tasks/{padded-id}--{slug}.md
|
|
208
235
|
```
|
|
209
236
|
|
|
210
|
-
Each file must conform to `<root>/config/templates/TASK_TEMPLATE.md`,
|
|
237
|
+
Each file must conform to `<root>/config/templates/TASK_TEMPLATE.md`,
|
|
238
|
+
including required frontmatter fields:
|
|
211
239
|
|
|
212
240
|
- `id` (integer)
|
|
213
241
|
- `group` (string)
|
|
@@ -218,20 +246,27 @@ Each file must conform to `<root>/config/templates/TASK_TEMPLATE.md`, including
|
|
|
218
246
|
|
|
219
247
|
Optional frontmatter for high-complexity or decomposed tasks:
|
|
220
248
|
|
|
221
|
-
- `complexity_score` (number, 1–10, include only if >4
|
|
249
|
+
- `complexity_score` (number, 1–10, include only if >4 or for decomposed
|
|
250
|
+
tasks)
|
|
222
251
|
- `complexity_notes` (string)
|
|
223
252
|
|
|
224
|
-
The body sections (Objective, Skills Required, Acceptance Criteria, Technical
|
|
253
|
+
The body sections (Objective, Skills Required, Acceptance Criteria, Technical
|
|
254
|
+
Requirements, Input Dependencies, Output Artifacts, Implementation Notes)
|
|
255
|
+
must be filled with task-specific content. Place detailed implementation
|
|
256
|
+
guidance inside a `<details>` block under "Implementation Notes" — write it
|
|
257
|
+
so a non-thinking LLM could execute the task from that section alone.
|
|
225
258
|
|
|
226
259
|
#### 9. Validation checklist
|
|
227
260
|
|
|
228
261
|
Before declaring task generation complete, verify:
|
|
229
262
|
|
|
230
|
-
- Each task has 1–2 appropriate technical skills assigned and inferred from
|
|
231
|
-
|
|
232
|
-
-
|
|
263
|
+
- Each task has 1–2 appropriate technical skills assigned and inferred from
|
|
264
|
+
its objectives.
|
|
265
|
+
- Dependencies form an acyclic graph; no orphan or circular references.
|
|
266
|
+
- Task IDs are unique, sequential, and start from the value returned by
|
|
267
|
+
`get-next-task-id.cjs`.
|
|
233
268
|
- Groups are consistent and meaningful.
|
|
234
|
-
- Every explicitly stated deliverable in the plan is covered.
|
|
269
|
+
- Every **explicitly stated** deliverable in the plan is covered.
|
|
235
270
|
- No redundant or overlapping tasks.
|
|
236
271
|
- Minimization applied (20–30% reduction target).
|
|
237
272
|
- Test tasks focus on business logic, not framework functionality.
|
|
@@ -310,9 +345,9 @@ Read `<root>/config/hooks/PRE_PHASE.md` and execute its instructions before star
|
|
|
310
345
|
##### 5b. Task dispatch
|
|
311
346
|
Identify all tasks scheduled for this phase whose dependencies are fully satisfied. Read `<root>/config/hooks/PRE_TASK_EXECUTION.md` and execute its instructions before starting any implementation work.
|
|
312
347
|
|
|
313
|
-
Deploy all selected agents simultaneously. Each agent MUST:
|
|
348
|
+
Deploy all selected agents simultaneously using your internal Task tool. Each agent MUST:
|
|
314
349
|
|
|
315
|
-
1. Read and execute `<root>/config/hooks/PRE_TASK_EXECUTION.md` before starting implementation.
|
|
350
|
+
1. Read and execute `<root>/config/hooks/PRE_TASK_EXECUTION.md` before starting any implementation work.
|
|
316
351
|
2. Execute the task according to its requirements.
|
|
317
352
|
3. Monitor execution progress and capture outputs and artifacts.
|
|
318
353
|
4. Update task status in real-time.
|