@e0ipso/ai-task-manager 1.26.11 → 1.27.1

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@e0ipso/ai-task-manager",
3
- "version": "1.26.11",
3
+ "version": "1.27.1",
4
4
  "description": "Task management for AI coding assistants",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -0,0 +1,19 @@
1
+ # POST_EXECUTION Hook
2
+
3
+ ## Validation Gates
4
+
5
+ Before marking the blueprint as complete, verify:
6
+
7
+ - [ ] All linting rules must pass without errors. If no linter is configured, skip this step
8
+ - [ ] All tests must pass successfully. If no test suite is configured, skip this step
9
+ - [ ] Verify all tasks in the plan have `status: "completed"` in their frontmatter
10
+ - [ ] Verify that the AGENTS.md documentation or related documentes are still correct after this plan execution
11
+
12
+ ## Failure Behavior
13
+
14
+ If any validation gate fails:
15
+
16
+ - **Halt execution immediately** - do not proceed to summary generation or archival
17
+ - **Leave plan in `plans/` directory** for debugging and correction
18
+ - **Document the failure** in the plan file with details about which gate failed
19
+ - **Provide actionable next steps** for resolving the failure
@@ -1,162 +1,41 @@
1
1
  # POST_TASK_GENERATION_ALL Hook
2
2
 
3
- After all tasks have been generated use your internal Todo task to execute:
3
+ After all tasks have been generated, perform these two steps:
4
4
 
5
- - [ ] Complexity Analysis & Refinement
6
- - [ ] Update plan document with Blueprint information
5
+ ## 1. Review Task Complexity
7
6
 
8
- ## Complexity Analysis & Refinement
7
+ For each generated task, do a quick sanity check:
9
8
 
10
- ### Complexity Scoring Matrix (1-10 scale)
9
+ - **Too complex?** If a task spans 3+ technologies or requires 3+ skills, split it.
10
+ - **Too vague?** If acceptance criteria are unclear, sharpen them.
11
+ - **Too trivial?** If two tasks could be one without adding complexity, merge them.
11
12
 
12
- | Dimension | 1-2 | 3-4 | 5-6 | 7-8 | 9-10 |
13
- |-----------|-----|-----|-----|-----|------|
14
- | **Technical** | Basic ops | Single tech | 2-3 techs | Multiple complex | Cutting-edge |
15
- | **Decision** | No decisions | 1-2 minor | Trade-offs | Interdependent | Novel solutions |
16
- | **Integration** | Single file | 2-3 files | Multi-module | Many systems | 15+ services |
17
- | **Scope** | Atomic action | Small feature | Complete feature | Major feature | Entire subsystem |
18
- | **Uncertainty** | Crystal clear | Minor ambiguity | Some clarification | Research required | Experimental |
13
+ Target: every task should be completable with 1-2 skills and have clear acceptance criteria.
19
14
 
20
- **Composite Score** = MAX(Technical×1.0, Decision×0.9, Integration×0.8, Scope×0.7, Uncertainty×1.1)
15
+ ## 2. Update Plan with Blueprint
21
16
 
22
- ### Decomposition Rules
17
+ After finalizing tasks, append to the plan document:
23
18
 
24
- **Thresholds:**
25
- - Composite ≥6: Consider decomposition
26
- - Any dimension ≥8: Mandatory decomposition
27
- - Multiple dimensions ≥6: High priority
19
+ ### Dependency Diagram
28
20
 
29
- **Patterns by Driver:**
30
- | Driver | Pattern | Strategy |
31
- |--------|---------|----------|
32
- | Technical | Technology Layering | Split by tech boundaries |
33
- | Decision | Decision-Implementation | Separate analysis from execution |
34
- | Integration | Integration Isolation | Core feature + integrations |
35
- | Scope | Functional | Split by user workflows |
36
- | Uncertainty | Research-Implementation | Prototype then implement |
37
-
38
- ### AIDVR Process
39
- 1. **Assess**: Confirm need (score >5)
40
- 2. **Identify**: Find natural breakpoints
41
- 3. **Decompose**: Apply pattern
42
- 4. **Validate**: Check criteria
43
- 5. **Reconstruct**: Update dependencies
44
-
45
- ### Safety Controls
46
-
47
- **Limits:**
48
- - Max 3 decomposition rounds per task
49
- - No decomposition if score ≤3
50
- - Min 2-hour work per subtask
51
- - Stop if complexity not decreasing
52
-
53
- **Stop Conditions:**
54
- 1. Atomic boundary reached
55
- 2. <1 skill per subtask
56
- 3. Overhead > benefit
57
- 4. Resource fragmentation
58
- 5. <2 hour granularity
59
- 6. 3 iterations reached
60
- 7. Score ≤3
61
- 8. No complexity reduction
62
-
63
- ### Validation Checklist
64
-
65
- **Per Subtask:**
66
- - [ ] Complexity ≤5 (target ≤4)
67
- - [ ] Skills ≤2
68
- - [ ] Clear acceptance criteria
69
- - [ ] Dependencies acyclic
70
- - [ ] Score ≥2 (min viability)
71
-
72
- **Decomposition Quality:**
73
- - [ ] Coverage: All requirements included
74
- - [ ] Coherence: Single purpose per task
75
- - [ ] Consistency: Lower scores than parent
76
- - [ ] Coordination: Integration plan exists
77
-
78
- ### Error Handling
79
-
80
- | Issue | Detection | Resolution |
81
- |-------|-----------|------------|
82
- | Infinite loop | No reduction after 2 rounds | Stop, mark needs-clarification |
83
- | Circular dependency | Task reaches itself | Break shortest cycle |
84
- | Over-decomposition | Score <2 or <2hrs | Merge with sibling |
85
- | Orphaned task | Missing dependencies | Create or remove dependency |
86
- | Scope creep | Subtasks > original | Remove excess scope |
87
- | Skill conflicts | >2 skills needed | Decompose by skill boundary |
88
- | High complexity | >7 after max rounds | Escalate with documentation |
89
-
90
- ### Documentation Format
91
-
92
- In `complexity_notes`:
93
- ```
94
- Original: 8.2 → Round 1 → [4.1, 3.8, 4.5] → PASSED
95
- ```
96
-
97
- **Quality Gates Before Proceeding:**
98
- - All tasks ≤5 complexity or escalated
99
- - No unresolved errors
100
- - Iterations documented
101
- - Validation complete
102
-
103
- ## Update plan document with Blueprint information
104
-
105
- After creating all tasks with their dependencies, update the original plan document with two critical sections: a task dependency visualization and a phase-based execution blueprint.
106
-
107
- ### Section 1: Dependency Visualization
108
-
109
- If any tasks have dependencies, create a Mermaid diagram showing the dependency graph:
21
+ If tasks have dependencies, add a Mermaid graph:
110
22
 
111
23
  ```mermaid
112
24
  graph TD
113
- 001[Task 001: Database Schema] --> 002[Task 002: API Endpoints]
114
- 001 --> 003[Task 003: Data Models]
115
- 002 --> 004[Task 004: Frontend Integration]
116
- 003 --> 004
25
+ 001[Task 001: Description] --> 002[Task 002: Description]
117
26
  ```
118
27
 
119
- Note: Ensure the graph is acyclic (no circular dependencies).
120
-
121
- ### Section 2: Phase-Based Execution Blueprint
122
-
123
- #### Core Concept
124
- The execution blueprint organizes tasks into sequential phases where:
125
- - **Within a phase**: All tasks execute in parallel
126
- - **Between phases**: Execution is strictly sequential
127
- - **Phase progression**: Requires all tasks in current phase to complete AND validation gates to pass
128
-
129
- #### Phase Definition Rules
130
- 1. **Phase 1**: Contains all tasks with zero dependencies
131
- 2. **Phase N**: Contains tasks whose dependencies are ALL satisfied by tasks in phases 1 through N-1
132
- 3. **Parallelism Priority**: Maximize the number of tasks that can run simultaneously in each phase
133
- 4. **Completeness**: Every task must be assigned to exactly one phase
134
-
135
- #### Blueprint Structure
136
-
137
- Use the template in .ai/task-manager/config/templates/BLUEPRINT_TEMPLATE.md for the execution blueprint structure.
138
-
139
- ### Validation Requirements
140
-
141
- #### Phase Transition Rules
142
- 1. All tasks in the current phase must have status: "completed"
143
- 2. All validation gates defined in `/config/hooks/POST_PHASE.md` for the current phase must pass
144
- 3. No task in a future phase can begin until these conditions are met
28
+ Verify there are no circular dependencies.
145
29
 
146
- #### Blueprint Verification
147
- Before finalizing, ensure:
148
- - [ ] Every task appears in exactly one phase
149
- - [ ] No task appears in a phase before all its dependencies
150
- - [ ] Phase 1 contains only tasks with no dependencies
151
- - [ ] Each phase maximizes parallel execution opportunities
152
- - [ ] All phases reference their validation gates
153
- - [ ] The execution summary accurately reflects the blueprint
30
+ ### Execution Phases
154
31
 
155
- ### Important Notes
32
+ Group tasks into phases:
33
+ - **Phase 1**: Tasks with no dependencies (run in parallel)
34
+ - **Phase N**: Tasks whose dependencies are all in earlier phases
156
35
 
157
- ### Error Handling
36
+ Use the template in `.ai/task-manager/config/templates/BLUEPRINT_TEMPLATE.md` for structure.
158
37
 
159
- If dependency analysis reveals issues:
160
- - **Circular dependencies**: Document the cycle and mark affected tasks for review
161
- - **Orphaned tasks**: Tasks that cannot be scheduled due to missing dependencies
162
- - **Ambiguous dependencies**: Note assumptions made and flag for clarification
38
+ Before finalizing, verify:
39
+ - Every task is in exactly one phase
40
+ - No task runs before its dependencies complete
41
+ - Phase 1 has only zero-dependency tasks
@@ -11,19 +11,13 @@ This hook executes before task assignment to determine the most appropriate agen
11
11
  - Select the most appropriate sub-agent (if any are available). If no sub-agent is appropriate, use the general-purpose one.
12
12
  - Consider task-specific requirements from the task document
13
13
 
14
- <details>
15
- <summary>
16
- [IMPORTANT] Only for assistants that support assistant skills: Claude
17
- </summary>
18
-
19
- Analyze the set of tasks skills in order to engage any relevant assistant skills as necessary (either global or project skills).
20
- </details>
14
+ [IMPORTANT] Analyze the set of tasks skills in order to engage any relevant assistant skills as necessary (either global
15
+ or project skills).
21
16
 
22
17
 
23
18
  ## Available Sub-Agents
24
- Analyze the sub-agents available in your current assistant's agents directory. If none are available
25
- or the available ones do not match the task's requirements, then use a generic
26
- agent.
19
+ Analyze the sub-agents available in your current assistant's agents directory. If none are available or the available
20
+ ones do not match the task's requirements, then use a generic agent.
27
21
 
28
22
  ## Matching Criteria
29
23
  Select agents based on:
@@ -38,27 +32,7 @@ Read task skills and select appropriate task-specific agent:
38
32
 
39
33
  ```bash
40
34
  # Extract skills from task frontmatter
41
- TASK_SKILLS=$(awk '
42
- /^---$/ { if (++delim == 2) exit }
43
- /^skills:/ {
44
- in_skills = 1
45
- # Check if skills are on the same line
46
- if (match($0, /\[.*\]/)) {
47
- gsub(/^skills:[ \t]*\[/, "")
48
- gsub(/\].*$/, "")
49
- gsub(/[ \t]/, "")
50
- print
51
- in_skills = 0
52
- }
53
- next
54
- }
55
- in_skills && /^[^ ]/ { in_skills = 0 }
56
- in_skills && /^[ \t]*-/ {
57
- gsub(/^[ \t]*-[ \t]*/, "")
58
- gsub(/^"/, ""); gsub(/"$/, "")
59
- print
60
- }
61
- ' "$TASK_FILE" | tr ',' '\n' | sed 's/^[ \t]*//;s/[ \t]*$//' | grep -v '^$')
35
+ TASK_SKILLS=$(node "$root/config/scripts/extract-task-skills.cjs" "$TASK_FILE")
62
36
 
63
37
  echo "Task skills required: $TASK_SKILLS"
64
38
 
@@ -75,4 +49,4 @@ done
75
49
  if [ "$AGENT_FOUND" = false ]; then
76
50
  echo "Using general-purpose agent for task execution"
77
51
  fi
78
- ```
52
+ ```
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Extract skills from a task file's YAML frontmatter.
5
+ *
6
+ * Usage: node extract-task-skills.cjs <task-file>
7
+ * Output: One skill per line, trimmed, empty lines removed.
8
+ *
9
+ * Supports both inline array and block list formats:
10
+ * skills: [skill-a, skill-b]
11
+ * skills:
12
+ * - skill-a
13
+ * - "skill-b"
14
+ */
15
+
16
+ 'use strict';
17
+
18
+ const fs = require('fs');
19
+ const path = require('path');
20
+
21
+ const taskFile = process.argv[2];
22
+ if (!taskFile) {
23
+ console.error('Usage: node extract-task-skills.cjs <task-file>');
24
+ process.exit(1);
25
+ }
26
+
27
+ const content = fs.readFileSync(path.resolve(taskFile), 'utf8');
28
+ const lines = content.split('\n');
29
+
30
+ let inFrontmatter = false;
31
+ let frontmatterClosed = false;
32
+ let inSkills = false;
33
+ const skills = [];
34
+
35
+ for (const line of lines) {
36
+ if (frontmatterClosed) break;
37
+
38
+ if (line.trim() === '---') {
39
+ if (!inFrontmatter) {
40
+ inFrontmatter = true;
41
+ continue;
42
+ }
43
+ // Second delimiter – end of frontmatter
44
+ frontmatterClosed = true;
45
+ break;
46
+ }
47
+
48
+ if (!inFrontmatter) continue;
49
+
50
+ // Detect "skills:" key
51
+ if (/^skills\s*:/.test(line)) {
52
+ inSkills = true;
53
+
54
+ // Check for inline array: skills: [a, b, c]
55
+ const inlineMatch = line.match(/\[(.*)]/);
56
+ if (inlineMatch) {
57
+ inlineMatch[1]
58
+ .split(',')
59
+ .map(s => s.trim().replace(/^["']|["']$/g, ''))
60
+ .filter(Boolean)
61
+ .forEach(s => skills.push(s));
62
+ inSkills = false;
63
+ }
64
+ continue;
65
+ }
66
+
67
+ if (inSkills) {
68
+ // A non-indented, non-empty line ends the block list
69
+ if (/^\S/.test(line)) {
70
+ inSkills = false;
71
+ continue;
72
+ }
73
+ // List item: " - skill-name"
74
+ const itemMatch = line.match(/^\s*-\s*(.*)/);
75
+ if (itemMatch) {
76
+ const value = itemMatch[1].trim().replace(/^["']|["']$/g, '');
77
+ if (value) skills.push(value);
78
+ }
79
+ }
80
+ }
81
+
82
+ if (skills.length > 0) {
83
+ console.log(skills.join('\n'));
84
+ }
@@ -10,7 +10,9 @@ ensuring you have all necessary context before proceeding. Use the plan-creator
10
10
 
11
11
  ---
12
12
 
13
- Ultrathink, think harder, and use tools.
13
+ Use tools for the planning. You are encouraged to write your own specialized tools to research, analyze, and debug
14
+ any work order from the user. You are not restricted to the stack of the current project to create your own
15
+ specialized tools.
14
16
 
15
17
  ## Find the AI Task Manager root
16
18
 
@@ -34,7 +36,7 @@ const findRoot = (currentDir) => {
34
36
  }
35
37
 
36
38
  const parentDir = path.dirname(currentDir);
37
- if (parentDir !== currentDir) {
39
+ if (parentDir.length < currentDir.length) {
38
40
  findRoot(parentDir);
39
41
  } else {
40
42
  process.exit(1);
@@ -55,7 +55,7 @@ const findRoot = (currentDir) => {
55
55
  }
56
56
 
57
57
  const parentDir = path.dirname(currentDir);
58
- if (parentDir !== currentDir) {
58
+ if (parentDir.length < currentDir.length) {
59
59
  findRoot(parentDir);
60
60
  } else {
61
61
  process.exit(1);
@@ -123,6 +123,7 @@ Use your internal Todo task tool to track the execution of all phases, and the f
123
123
  - [ ] Execute $root/.ai/task-manager/config/hooks/PRE_PHASE.md hook before Phase 3.
124
124
  - [ ] Phase 3: Execute 1 task(s) in parallel.
125
125
  - [ ] Execute $root/.ai/task-manager/config/hooks/POST_PHASE.md hook after Phase 3.
126
+ - [ ] Execute $root/.ai/task-manager/config/hooks/POST_EXECUTION.md hook after all phases complete.
126
127
  - [ ] Update the Plan 7 with execution summary using $root/.ai/task-manager/config/hooks/EXECUTION_SUMMARY_TEMPLATE.md.
127
128
  - [ ] Archive Plan 7.
128
129
 
@@ -198,9 +199,16 @@ This structured output enables automated workflow coordination and must be inclu
198
199
 
199
200
  Upon successful completion of all phases and validation gates, perform the following additional steps:
200
201
 
202
+ - [ ] Post-Execution Validation
201
203
  - [ ] Execution Summary Generation
202
204
  - [ ] Plan Archival
203
205
 
206
+ ### 0. Post-Execution Validation
207
+
208
+ Read and execute $root/.ai/task-manager/config/hooks/POST_EXECUTION.md
209
+
210
+ If validation fails, halt execution. The plan remains in `plans/` for debugging.
211
+
204
212
  ### 1. Execution Summary Generation
205
213
 
206
214
  Append an execution summary section to the plan document with the format described in $root/.ai/task-manager/config/templates/[EXECUTION_SUMMARY_TEMPLATE.md
@@ -30,7 +30,7 @@ const findRoot = (currentDir) => {
30
30
  }
31
31
 
32
32
  const parentDir = path.dirname(currentDir);
33
- if (parentDir !== currentDir) {
33
+ if (parentDir.length < currentDir.length) {
34
34
  findRoot(parentDir);
35
35
  } else {
36
36
  process.exit(1);
@@ -3,7 +3,11 @@ argument-hint: "[testCommand]"
3
3
  description: Fix the tests your task execution broke.
4
4
  ---
5
5
 
6
- Fix all failing tests in this repository. Ultrathink, think harder, and use tools.
6
+ Fix all failing tests in this repository.
7
+
8
+ Use tools for debugging. You are encouraged to write your own specialized tools to research, analyze, and debug
9
+ failing tests. You are not restricted to the stack of the current project to create your own
10
+ specialized tools.
7
11
 
8
12
  Execute this command to run the tests:
9
13
 
@@ -31,7 +31,7 @@ const findRoot = (currentDir) => {
31
31
  }
32
32
 
33
33
  const parentDir = path.dirname(currentDir);
34
- if (parentDir !== currentDir) {
34
+ if (parentDir.length < currentDir.length) {
35
35
  findRoot(parentDir);
36
36
  } else {
37
37
  process.exit(1);
@@ -443,9 +443,16 @@ This structured output enables automated workflow coordination and must be inclu
443
443
 
444
444
  Upon successful completion of all phases and validation gates, perform the following additional steps:
445
445
 
446
+ - [ ] Post-Execution Validation
446
447
  - [ ] Execution Summary Generation
447
448
  - [ ] Plan Archival
448
449
 
450
+ #### Post-Execution Validation
451
+
452
+ Read and execute $root/.ai/task-manager/config/hooks/POST_EXECUTION.md
453
+
454
+ If validation fails, halt execution. The plan remains in `plans/` for debugging.
455
+
449
456
  #### Execution Summary Generation
450
457
 
451
458
  Append an execution summary section to the plan document with the format described in $root/.ai/task-manager/config/templates/EXECUTION_SUMMARY_TEMPLATE.md
@@ -7,8 +7,6 @@ description: Generate tasks to implement the plan with the provided ID.
7
7
 
8
8
  ---
9
9
 
10
- Ultrathink, think harder, and use tools.
11
-
12
10
  ## Find the AI Task Manager root
13
11
 
14
12
  ```bash
@@ -31,7 +29,7 @@ const findRoot = (currentDir) => {
31
29
  }
32
30
 
33
31
  const parentDir = path.dirname(currentDir);
34
- if (parentDir !== currentDir) {
32
+ if (parentDir.length < currentDir.length) {
35
33
  findRoot(parentDir);
36
34
  } else {
37
35
  process.exit(1);
@@ -11,7 +11,9 @@ user, and update the plan with the refinements. Use the plan-creator sub-agent f
11
11
 
12
12
  ---
13
13
 
14
- Ultrathink, think harder, and use tools.
14
+ Use tools for the plan refinement. You are encouraged to write your own specialized tools to research, analyze, and
15
+ debug any plan refinement. You are not restricted to the stack of the current project to create your own specialized
16
+ tools.
15
17
 
16
18
  ## Find the AI Task Manager root
17
19
 
@@ -35,7 +37,7 @@ const findRoot = (currentDir) => {
35
37
  }
36
38
 
37
39
  const parentDir = path.dirname(currentDir);
38
- if (parentDir !== currentDir) {
40
+ if (parentDir.length < currentDir.length) {
39
41
  findRoot(parentDir);
40
42
  } else {
41
43
  process.exit(1);