@e0ipso/ai-task-manager 1.20.0 β†’ 1.22.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/README.md CHANGED
@@ -49,10 +49,11 @@ Comprehensive guides covering:
49
49
 
50
50
  **Manual Workflow (Full Control):**
51
51
  1. **πŸ“ Create a plan** β†’ `/tasks:create-plan Create user authentication system`
52
- 2. **πŸ“‹ Generate tasks** β†’ `/tasks:generate-tasks 1`
53
- 3. **πŸš€ Execute blueprint** β†’ `/tasks:execute-blueprint 1`
54
- 4. **πŸ“Š Monitor progress** β†’ `npx @e0ipso/ai-task-manager status`
55
- 5. **πŸ—‚οΈ Manage plans** β†’ `npx @e0ipso/ai-task-manager plan show 1`
52
+ 2. **πŸ” Refine the plan** β†’ `/tasks:refine-plan 1` (have a second assistant review the plan, ask clarifying questions, and update the document before tasks are created)
53
+ 3. **πŸ“‹ Generate tasks** β†’ `/tasks:generate-tasks 1`
54
+ 4. **πŸš€ Execute blueprint** β†’ `/tasks:execute-blueprint 1`
55
+ 5. **πŸ“Š Monitor progress** β†’ `npx @e0ipso/ai-task-manager status`
56
+ 6. **πŸ—‚οΈ Manage plans** β†’ `npx @e0ipso/ai-task-manager plan show 1`
56
57
 
57
58
  ## πŸ€– Supported Assistants
58
59
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAsB,MAAM,SAAS,CAAC;AAqDpF;;;;;;;;GAQG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAkGvE;AA8LD;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3D,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB,CAAC,CAmBD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAsB,MAAM,SAAS,CAAC;AAqDpF;;;;;;;;GAQG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CA4GvE;AAuMD;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3D,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB,CAAC,CAmBD"}
package/dist/index.js CHANGED
@@ -141,6 +141,11 @@ async function init(options) {
141
141
  console.log(` ${chalk_1.default.blue('●')} ${resolvePath(baseDir, `.${assistant}/${commandsPath}/tasks/create-plan.${templateFormat}`)}`);
142
142
  console.log(` ${chalk_1.default.blue('●')} ${resolvePath(baseDir, `.${assistant}/${commandsPath}/tasks/execute-blueprint.${templateFormat}`)}`);
143
143
  console.log(` ${chalk_1.default.blue('●')} ${resolvePath(baseDir, `.${assistant}/${commandsPath}/tasks/generate-tasks.${templateFormat}`)}`);
144
+ // Only show agents for Claude
145
+ if (assistant === 'claude') {
146
+ console.log(chalk_1.default.cyan(` ${assistant.charAt(0).toUpperCase() + assistant.slice(1)} Agents:`));
147
+ console.log(` ${chalk_1.default.blue('●')} ${resolvePath(baseDir, `.${assistant}/agents/plan-creator.md`)}`);
148
+ }
144
149
  }
145
150
  // ========== FOOTER SECTION ==========
146
151
  console.log(`\n${chalk_1.default.green('βœ“')} AI Task Manager initialized successfully!`);
@@ -280,21 +285,28 @@ async function createAssistantStructure(assistant, baseDir) {
280
285
  if (!(await exists(sourceDir))) {
281
286
  throw new Error(`Template directory not found: ${sourceDir}`);
282
287
  }
283
- // Copy entire template directory structure
284
- await fs.copy(sourceDir, assistantDir);
285
- // OpenCode uses 'command' (singular) instead of 'commands' (plural)
286
- if (assistant === 'opencode') {
287
- const commandsDir = resolvePath(assistantDir, 'commands');
288
- const commandDir = resolvePath(assistantDir, 'command');
289
- if (await exists(commandsDir)) {
290
- await fs.move(commandsDir, commandDir);
288
+ // Determine correct commands directory name based on assistant type
289
+ // OpenCode uses 'command' (singular) while Claude and Gemini use 'commands' (plural)
290
+ const commandsPath = assistant === 'opencode' ? 'command' : 'commands';
291
+ // Copy template structure with correct directory naming
292
+ const sourceCommandsDir = resolvePath(sourceDir, 'commands');
293
+ const targetCommandsDir = resolvePath(assistantDir, commandsPath);
294
+ // Copy the commands directory to the correct location
295
+ if (await exists(sourceCommandsDir)) {
296
+ await fs.copy(sourceCommandsDir, targetCommandsDir);
297
+ }
298
+ // Copy agent files for Claude (agents are Claude-specific)
299
+ if (assistant === 'claude') {
300
+ const sourceAgentsDir = resolvePath(sourceDir, 'agents');
301
+ const targetAgentsDir = resolvePath(assistantDir, 'agents');
302
+ if (await exists(sourceAgentsDir)) {
303
+ await fs.copy(sourceAgentsDir, targetAgentsDir);
291
304
  }
292
305
  }
293
306
  // Determine template format based on assistant type
294
307
  const templateFormat = (0, utils_1.getTemplateFormat)(assistant);
295
308
  // If target format is different from source (md), process files in place
296
309
  if (templateFormat !== 'md') {
297
- const commandsPath = assistant === 'opencode' ? 'command' : 'commands';
298
310
  const tasksDir = resolvePath(assistantDir, `${commandsPath}/tasks`);
299
311
  const files = await fs.readdir(tasksDir);
300
312
  for (const file of files.filter(f => f.endsWith('.md'))) {
@@ -375,7 +387,7 @@ async function displayWorkflowHelp() {
375
387
  console.log('');
376
388
  console.log(` ${chalk_1.default.blue('2.')} Provide additional context if the assistant needs it`);
377
389
  console.log('');
378
- console.log(` ${chalk_1.default.blue('3.')} ${chalk_1.default.yellow.bold('MANUALLY REVIEW THE PLAN')} ${chalk_1.default.yellow("(don't skip this!")}`);
390
+ console.log(` ${chalk_1.default.blue('3.')} ${chalk_1.default.yellow.bold('MANUALLY REVIEW THE PLAN')} ${chalk_1.default.yellow("(don't skip this!)")}`);
379
391
  console.log(` ${chalk_1.default.gray('Find it in: .ai/task-manager/plans/01--*/plan-[0-9]*--*.md')}`);
380
392
  console.log('');
381
393
  console.log(` ${chalk_1.default.blue('4.')} Create the tasks for the plan:`);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e0ipso/ai-task-manager",
3
- "version": "1.20.0",
3
+ "version": "1.22.0",
4
4
  "description": "Task management for AI coding assistants",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -51,15 +51,40 @@ const printInfo = (message) => {
51
51
 
52
52
  // Function to find plan directory
53
53
  const findPlanDirectory = (planId) => {
54
- try {
55
- // Use find command similar to bash script
56
- const findCommand = `find .ai/task-manager/plans .ai/task-manager/archive -type d -name "${planId}--*" 2>/dev/null || true`;
57
- const result = execSync(findCommand, { encoding: 'utf8' }).trim();
58
- const directories = result.split('\n').filter(dir => dir.length > 0);
59
- return directories.length > 0 ? directories[0] : null;
60
- } catch (error) {
61
- return null;
54
+ const searchLocations = [
55
+ '.ai/task-manager/plans',
56
+ '.ai/task-manager/archive'
57
+ ];
58
+
59
+ // Generate ID variations to try (exact, padded, unpadded)
60
+ const idVariations = [
61
+ planId, // Try exact match first
62
+ planId.padStart(2, '0'), // Try padded version (3 β†’ 03)
63
+ planId.replace(/^0+/, '') || '0' // Try unpadded version (03 β†’ 3)
64
+ ];
65
+
66
+ // Remove duplicates from variations array
67
+ const uniqueVariations = [...new Set(idVariations)];
68
+
69
+ // Search for each variation in each location
70
+ for (const id of uniqueVariations) {
71
+ for (const location of searchLocations) {
72
+ try {
73
+ const findCommand = `find ${location} -type d -name "${id}--*" 2>/dev/null || true`;
74
+ const result = execSync(findCommand, { encoding: 'utf8' }).trim();
75
+ const directories = result.split('\n').filter(dir => dir.length > 0);
76
+
77
+ if (directories.length > 0) {
78
+ return directories[0]; // Early return on first match
79
+ }
80
+ } catch (error) {
81
+ // Continue trying other variations/locations
82
+ continue;
83
+ }
84
+ }
62
85
  }
86
+
87
+ return null; // No matches found
63
88
  };
64
89
 
65
90
  // Function to find task file with padded/unpadded ID handling
@@ -94,6 +94,16 @@ function findPlanById(planId) {
94
94
 
95
95
  debugLog(`Task manager root found: ${taskManagerRoot}`);
96
96
 
97
+ // Convert planId to numeric for flexible matching (handles both "2" and "02")
98
+ const numericPlanId = parseInt(planId, 10);
99
+
100
+ if (isNaN(numericPlanId)) {
101
+ errorLog(`Invalid plan ID: ${planId}. Plan ID must be numeric.`);
102
+ return null;
103
+ }
104
+
105
+ debugLog(`Searching for plan with numeric ID: ${numericPlanId} (input was: ${planId})`);
106
+
97
107
  const plansDir = path.join(taskManagerRoot, 'plans');
98
108
  const archiveDir = path.join(taskManagerRoot, 'archive');
99
109
 
@@ -111,24 +121,31 @@ function findPlanById(planId) {
111
121
  debugLog(`Found ${entries.length} entries in ${dir}`);
112
122
 
113
123
  for (const entry of entries) {
114
- // Match directory pattern: [plan-id]--*
115
- if (entry.isDirectory() && entry.name.match(new RegExp(`^${planId}--`))) {
116
- const planDirPath = path.join(dir, entry.name);
117
- debugLog(`Found matching plan directory: ${planDirPath}`);
124
+ // Match directory pattern: [plan-id]--* (with flexible ID matching)
125
+ if (entry.isDirectory()) {
126
+ // Extract numeric ID from directory name, stripping leading zeros
127
+ const dirMatch = entry.name.match(/^0*(\d+)--/);
128
+ if (dirMatch && parseInt(dirMatch[1], 10) === numericPlanId) {
129
+ const planDirPath = path.join(dir, entry.name);
130
+ debugLog(`Found matching plan directory: ${planDirPath} (extracted ID: ${dirMatch[1]} matches input: ${numericPlanId})`);
118
131
 
119
132
  try {
120
133
  const planDirEntries = fs.readdirSync(planDirPath, { withFileTypes: true });
121
134
 
122
- // Look for plan file: plan-[plan-id]--*.md
135
+ // Look for plan file: plan-[plan-id]--*.md (with flexible ID matching)
123
136
  for (const planEntry of planDirEntries) {
124
- if (planEntry.isFile() && planEntry.name.match(new RegExp(`^plan-${planId}--.*\\.md$`))) {
125
- const planFilePath = path.join(planDirPath, planEntry.name);
126
- debugLog(`Found plan file: ${planFilePath}`);
127
-
128
- return {
129
- planFile: planFilePath,
130
- planDir: planDirPath
131
- };
137
+ if (planEntry.isFile()) {
138
+ // Extract numeric ID from filename, stripping leading zeros
139
+ const fileMatch = planEntry.name.match(/^plan-0*(\d+)--.*\.md$/);
140
+ if (fileMatch && parseInt(fileMatch[1], 10) === numericPlanId) {
141
+ const planFilePath = path.join(planDirPath, planEntry.name);
142
+ debugLog(`Found plan file: ${planFilePath} (extracted ID: ${fileMatch[1]} matches input: ${numericPlanId})`);
143
+
144
+ return {
145
+ planFile: planFilePath,
146
+ planDir: planDirPath
147
+ };
148
+ }
132
149
  }
133
150
  }
134
151
 
@@ -136,6 +153,7 @@ function findPlanById(planId) {
136
153
  } catch (err) {
137
154
  errorLog(`Failed to read plan directory ${planDirPath}: ${err.message}`);
138
155
  }
156
+ }
139
157
  }
140
158
  }
141
159
  } catch (err) {
@@ -300,7 +318,9 @@ function validatePlanBlueprint(planId, fieldName) {
300
318
  errorLog(`Valid fields: ${validFields.join(', ')}`);
301
319
  process.exit(1);
302
320
  }
303
- console.log(result[fieldName]);
321
+ // Use process.stdout.write to avoid util.inspect colorization
322
+ // Convert to string explicitly to ensure plain text output
323
+ process.stdout.write(String(result[fieldName]) + '\n');
304
324
  } else {
305
325
  // Output full JSON for backward compatibility
306
326
  console.log(JSON.stringify(result, null, 2));
@@ -21,44 +21,51 @@ created: [YYYY-MM-DD]
21
21
 
22
22
  ## Context
23
23
 
24
- ### Current State
25
- [Describe the existing situation, problems, or gaps that this plan addresses. Include specific details about what exists now, current limitations, and why change is needed.]
24
+ ### Current State vs Target State
25
+ [Create a table that compares the current state with the target state in the different aspects of the implementation. Include a column on why the change is necessary.]
26
26
 
27
- ### Target State
28
- [Describe the desired end state after plan completion. Be specific about the expected outcomes and how success will be measured.]
27
+ Example:
28
+
29
+ | Current State | Target State | Why? |
30
+ |--------------------------| ------------ |---------------------------|
31
+ | Users have to click twice | Users can click once | We want to improve the UX |
32
+ | The button is small | The button is bigger | Fix site design |
33
+ | ... | ... | ... |
29
34
 
30
35
  ### Background
31
36
  [Any additional context, requirements, constraints, any solutions that we tried that didn't work, or relevant history that informs the implementation approach.]
32
37
 
33
- ## Technical Implementation Approach
34
-
35
- [Provide an overview of the implementation strategy, key architectural decisions, and technical approach. Break down into major components or phases using ### subheadings.]
38
+ ## Architectural Approach
39
+ [Provide an overview of the implementation strategy, key architectural decisions, and technical approach. Break down into major components or phases using ### subheadings. Add a mermaid diagram summary.]
36
40
 
37
- ### [Component/Phase 1 Name]
41
+ ### [Component/Stage 1 Name]
38
42
  **Objective**: [What this component accomplishes and why it's important]
39
43
 
40
- [Detailed explanation of implementation approach, key technical decisions, specifications, and rationale for design choices.]
44
+ [Detailed & concise explanation of implementation approach, key technical decisions, specifications, and rationale for design choices.]
41
45
 
42
- ### [Component/Phase 2 Name]
46
+ ### [Component/Stage 2 Name]
43
47
  **Objective**: [What this component accomplishes and why it's important]
44
48
 
45
- [Detailed explanation of implementation approach, key technical decisions, specifications, and rationale for design choices.]
49
+ [Detailed & concise explanation of implementation approach, key technical decisions, specifications, and rationale for design choices.]
46
50
 
47
51
  ### [Additional Components as Needed]
48
52
  [Continue with additional technical components or phases following the same pattern]
49
53
 
50
54
  ## Risk Considerations and Mitigation Strategies
51
55
 
52
- ### Technical Risks
56
+ <details>
57
+ <summary>Technical Risks</summary>
53
58
  - **[Specific Technical Risk]**: [Description of the technical challenge or limitation]
54
59
  - **Mitigation**: [Specific strategy to address this technical risk]
60
+ </details>
55
61
 
56
- ### Implementation Risks
62
+ <details>
63
+ <summary>Implementation Risks</summary>
57
64
  - **[Specific Implementation Risk]**: [Description of implementation-related challenge]
58
65
  - **Mitigation**: [Specific strategy to address this implementation risk]
66
+ </details>
59
67
 
60
- ### [Additional Risk Categories as Needed]
61
- [Continue with other risk categories such as Integration Risks, Quality Risks, Resource Risks, etc.]
68
+ [Additional Risk Categories as Needed: continue with other risk categories such as Integration Risks, Quality Risks, Resource Risks, etc.]
62
69
 
63
70
  ## Success Criteria
64
71
 
@@ -67,11 +74,6 @@ created: [YYYY-MM-DD]
67
74
  2. [Measurable outcome 2]
68
75
  3. [Measurable outcome 3]
69
76
 
70
- ### Quality Assurance Metrics
71
- 1. [Quality measure 1]
72
- 2. [Quality measure 2]
73
- 3. [Quality measure 3]
74
-
75
77
  ## Resource Requirements
76
78
 
77
79
  ### Development Skills
@@ -86,8 +88,5 @@ created: [YYYY-MM-DD]
86
88
  ## Integration Strategy
87
89
  [Optional section - how this work integrates with existing systems]
88
90
 
89
- ## Implementation Order
90
- [Optional section - high-level sequence without detailed phases]
91
-
92
91
  ## Notes
93
92
  [Optional section - any additional considerations, constraints, or important context]
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: plan-creator
3
+ description: |
4
+ Use this agent to create comprehensive strategic plan documents combining business strategy and technical architecture. Specializes in context gathering, YAGNI enforcement, and producing actionable blueprints with visual communication.
5
+ ---
6
+
7
+ You are a strategic planning specialist who creates actionable plan documents that balance comprehensive context with disciplined scope control.
8
+
9
+ ## Core Mission
10
+
11
+ Create strategic blueprints that define WHAT to build and WHY, not HOW. Your plans must:
12
+ - Gather complete context through targeted clarification
13
+ - Enforce YAGNI (reduce scope by 20-30%)
14
+ - Use mermaid diagrams for visual clarity
15
+ - Follow template structure precisely
16
+ - Define measurable success criteria
17
+
18
+ ## Critical Workflow
19
+
20
+ **1. Context Gathering**
21
+ - Read CLAUDE.md, README.md, package.json
22
+ - Search codebase for similar patterns
23
+ - Ask specific, categorized clarification questions when gaps exist
24
+ - STOP and wait for answers before planning
25
+
26
+ **2. YAGNI Enforcement**
27
+ For each component ask: Is this explicitly required? If not, exclude it.
28
+
29
+ Eliminate these anti-patterns:
30
+ - Over-engineering: ❌ "Add comprehensive analytics" β†’ βœ… "Log core events"
31
+ - Premature optimization: ❌ "Implement caching/load balancing/CDN" β†’ βœ… "Structure for future caching"
32
+ - Feature speculation: ❌ "Users might want X" β†’ βœ… Only explicit requirements, or ask for clarifications
33
+ - Gold-plating: ❌ "15+ admin features" β†’ βœ… "3 specified operations"
34
+
35
+ **3. Plan Structure** (follow template exactly)
36
+ - **Executive Summary**: 2-3 paragraphs (what/why/how/benefits)
37
+ - **Context**: Current state, target state, background
38
+ - **Technical Approach**: 3-7 components with objectives and architectural decisions
39
+ - **Risks**: 3-5 risks with mitigation strategies
40
+ - **Success Criteria**: Measurable, verifiable metrics
41
+ - **Mermaid Diagrams**: 1-2 diagrams (architecture/flow/state/data model)
42
+
43
+ **4. Quality Standards**
44
+ - Use active voice and specific terms
45
+ - Detail level: βœ… "JWT with 15-min tokens" βœ… "Rate limit: 5 fails = 15-min lockout"
46
+ - Detail level: ❌ "function authenticateUser(username, password)" (too detailed) ❌ "Build auth system" (too vague)
47
+
48
+ ## Absolute Prohibitions
49
+
50
+ **NEVER Include**:
51
+ - Time estimates ("2-3 weeks", "Phase 1 (Week 1-2)")
52
+ - Task lists ("Task 1: Create schema, Task 2: Build API")
53
+ - Code snippets or function signatures
54
+ - Specific variable names or file paths
55
+ - Speculative "nice to have" features
56
+
57
+ ## Template Compliance Checklist
58
+
59
+ - [ ] YAML frontmatter: id, summary, created
60
+ - [ ] Original Work Order (verbatim quote)
61
+ - [ ] Plan Clarifications (if asked questions)
62
+ - [ ] Executive Summary (2-3 paragraphs)
63
+ - [ ] Context (current/target/background)
64
+ - [ ] Technical Implementation (3-7 components with objectives)
65
+ - [ ] Risks (3-5 with mitigations)
66
+ - [ ] Success Criteria (measurable)
67
+ - [ ] Resource Requirements
68
+ - [ ] 1-2 mermaid diagrams
69
+ - [ ] Structured output summary
70
+
71
+ ## Execution Steps
72
+
73
+ 1. Execute PRE_PLAN.md hook if exists
74
+ 2. Analyze user input and search codebase
75
+ 3. Ask clarification questions if needed (STOP until answered)
76
+ 4. Generate Plan ID: `node .ai/task-manager/config/scripts/get-next-plan-id.cjs`
77
+ 5. Create plan at `.ai/task-manager/plans/[ID]--[name]/plan-[ID]--[name].md`
78
+ 6. Execute POST_PLAN.md hook if exists
79
+ 7. Output:
80
+ ```
81
+ ---
82
+ Plan Summary:
83
+ - Plan ID: [numeric-id]
84
+ - Plan File: [full-path]
85
+ ```
86
+
87
+ ## Excellence Markers
88
+
89
+ βœ… Strategic clarity (what/why clear to all readers)
90
+ βœ… Technical soundness (well-reasoned architecture)
91
+ βœ… Scope discipline (only necessary features)
92
+ βœ… Risk awareness (challenges + mitigations)
93
+ βœ… Visual communication (diagrams clarify complexity)
94
+ βœ… Measurable success (verifiable criteria)
95
+ βœ… Template adherence (precise structure)
@@ -1,9 +1,13 @@
1
1
  ---
2
- argument-hint: [user-prompt]
2
+ argument-hint: "[user-prompt]"
3
3
  description: Create a comprehensive plan to accomplish the request from the user.
4
4
  ---
5
5
  # Comprehensive Plan Creation
6
6
 
7
+ You are a strategic planning specialist who creates actionable plan documents that balance comprehensive context with
8
+ disciplined scope control. Your role is to think hard to create detailed, actionable plans based on user input while
9
+ ensuring you have all necessary context before proceeding. Use the plan-creator sub-agent for this if it is available.
10
+
7
11
  ## Assistant Configuration
8
12
 
9
13
  Before proceeding with this command, you MUST load and respect the assistant's configuration:
@@ -20,8 +24,6 @@ The output above contains your global and project-level configuration rules. You
20
24
 
21
25
  Think harder and use tools.
22
26
 
23
- You are a comprehensive task planning assistant. Your role is to think hard to create detailed, actionable plans based on user input while ensuring you have all necessary context before proceeding.
24
-
25
27
  Include .ai/task-manager/config/TASK_MANAGER.md for the directory structure of tasks.
26
28
 
27
29
  ## Instructions
@@ -34,17 +36,14 @@ $ARGUMENTS
34
36
 
35
37
  If no user input is provided stop immediately and show an error message to the user.
36
38
 
37
- ### Process
39
+ ### Process Checklist
38
40
 
39
- Use your internal Todo task tool to track the plan generation:
41
+ Use your internal Todo task tool to track the following plan generation:
40
42
 
41
43
  - [ ] Read and execute .ai/task-manager/config/hooks/PRE_PLAN.md
42
44
  - [ ] User input and context analysis
43
45
  - [ ] Clarification questions
44
- - [ ] Plan generation: Executive Summary
45
- - [ ] Plan generation: Detailed Steps
46
- - [ ] Plan generation: Risk Considerations
47
- - [ ] Plan generation: Success Metrics
46
+ - [ ] Plan generation
48
47
  - [ ] Read and execute .ai/task-manager/config/hooks/POST_PLAN.md
49
48
 
50
49
  #### Step 1: Context Analysis
@@ -59,32 +58,21 @@ Before creating any plan, analyze the user's request for:
59
58
  #### Step 2: Clarification Phase
60
59
  If any critical context is missing:
61
60
  1. Identify specific gaps in the information provided
62
- 2. Ask targeted follow-up questions grouped by category
63
- 3. Wait for user responses before proceeding to planning
64
- 4. Frame questions clearly with examples when helpful
65
- 5. Be extra cautious. Users miss important context very often. Don't hesitate to ask for clarifications.
66
-
67
- Example clarifying questions:
68
- - "Q: What is your primary goal with [specific aspect]?"
69
- - "Q: Do you have any existing [resources/code/infrastructure] I should consider?"
70
- - "Q: What is your timeline for completing this?"
71
- - "Q: Are there specific constraints I should account for?"
72
- - "Q: Do you want me to write tests for this?"
73
- - "Q: Are there other systems, projects, or modules that perform a similar task?"
61
+ 2. Ask targeted follow-up questions
62
+ 3. Frame questions clearly with examples when helpful
63
+ 4. Be extra cautious. Users miss important context very often. Don't hesitate to ask for additional clarifications.
74
64
 
75
65
  Try to answer your own questions first by inspecting the codebase, docs, and assistant documents like CLAUDE.md, GEMINI.md, AGENTS.md ...
76
66
 
77
- #### Step 3: Plan Generation
78
- Only after confirming sufficient context, create a plan that includes:
79
- 1. **Executive Summary**: Brief overview of the approach
80
- 2. **Detailed Steps**: Numbered, actionable tasks with clear outcomes
81
- 3. **Risk Considerations**: Potential challenges and mitigation strategies
82
- 4. **Success Metrics**: How to measure completion and quality
67
+ IMPORTANT: Once you have the user's answers go back to Step 2. Do this in a loop until you have no more questions. Ask as many rounds of questions as necessary, it is very important you have all the information you need to achieve your task.
83
68
 
84
- Remember that a plan needs to be reviewed by a human. Be concise and to the point. Also, include mermaid diagrams to illustrate the plan.
69
+ #### Step 3: Plan Generation
70
+ Only after confirming sufficient context, create a plan according the the .ai/task-manager/config/templates/PLAN_TEMPLATE.md
85
71
 
86
72
  ##### CRITICAL: Output Format
87
73
 
74
+ Remember that a plan needs to be reviewed by a human. Be concise and to the point. Also, include mermaid diagrams to illustrate the plan.
75
+
88
76
  **Output Behavior: CRITICAL - Structured Output for Command Coordination**
89
77
 
90
78
  Always end your output with a standardized summary in this exact format, for command coordination:
@@ -107,6 +95,7 @@ Use the template in .ai/task-manager/config/templates/PLAN_TEMPLATE.md
107
95
  Do not include the following in your plan output.
108
96
  - Avoid time estimations
109
97
  - Avoid task lists and mentions of phases (those are things we'll introduce later)
98
+ - Avoid code examples
110
99
 
111
100
  ###### Frontmatter Structure
112
101
 
@@ -144,8 +133,8 @@ The schema for this frontmatter is:
144
133
  ```
145
134
 
146
135
  ### Plan ID Generation
136
+ Execute this script to determine the plan ID:
147
137
 
148
- **Auto-generate the next plan ID:**
149
138
  ```bash
150
139
  node .ai/task-manager/config/scripts/get-next-plan-id.cjs
151
140
  ```
@@ -1,6 +1,6 @@
1
1
  ---
2
- argument-hint: [plan-ID]
3
- description: Execute the task in the plan
2
+ argument-hint: "[plan-ID]"
3
+ description: Execute the task in the plan.
4
4
  ---
5
5
  # Task Execution
6
6
 
@@ -57,309 +57,23 @@ BLUEPRINT_EXISTS=$(node .ai/task-manager/config/scripts/validate-plan-blueprint.
57
57
 
58
58
  If either `$TASK_COUNT` is 0 or `$BLUEPRINT_EXISTS` is "no":
59
59
  - Display notification to user: "⚠️ Tasks or execution blueprint not found. Generating tasks automatically..."
60
- - Execute the following task generation process inline:
60
+ - Execute the embedded task generation process below
61
61
 
62
62
  ## Embedded Task Generation
63
63
 
64
- Think harder and use tools.
64
+ Follow ALL instructions from `generate-tasks.md` exactly for plan ID $1.
65
65
 
66
- You are a comprehensive task planning assistant. Your role is to create detailed, actionable plans based on user input while ensuring you have all necessary context before proceeding.
67
-
68
- Include /TASK_MANAGER.md for the directory structure of tasks.
69
-
70
- ## Instructions
71
-
72
- You will think hard to analyze the provided plan document and decompose it into atomic, actionable tasks with clear dependencies and groupings.
73
-
74
- Use your internal Todo task tool to track the following process:
75
-
76
- - [ ] Read and process plan $1
77
- - [ ] Use the Task Generation Process to create tasks according to the Task Creation Guidelines
78
- - [ ] Read and run the .ai/task-manager/config/hooks/POST_TASK_GENERATION_ALL.md
79
-
80
- ### Input
81
- - A plan document. See .ai/task-manager/config/TASK_MANAGER.md fo find the plan with ID $1
82
- - The plan contains high-level objectives and implementation steps
83
-
84
- ### Input Error Handling
85
- If the plan does not exist. Stop immediately and show an error to the user.
86
-
87
- ### Task Creation Guidelines
88
-
89
- #### Task Minimization Principles
90
- **Core Constraint:** Create only the minimum number of tasks necessary to satisfy the plan requirements. Target a 20-30% reduction from comprehensive task lists by questioning the necessity of each component.
91
-
92
- **Minimization Rules:**
93
- - **Direct Implementation Only**: Create tasks for explicitly stated requirements, not "nice-to-have" features
94
- - **DRY Task Principle**: Each task should have a unique, non-overlapping purpose
95
- - **Question Everything**: For each task, ask "Is this absolutely necessary to meet the plan objectives?"
96
- - **Avoid Gold-plating**: Resist the urge to add comprehensive features not explicitly required
97
-
98
- **Antipatterns to Avoid:**
99
- - Creating separate tasks for "error handling" when it can be included in the main implementation
100
- - Breaking simple operations into multiple tasks (e.g., separate "validate input" and "process input" tasks)
101
- - Adding tasks for "future extensibility" or "best practices" not mentioned in the plan
102
- - Creating comprehensive test suites for trivial functionality
103
-
104
- #### Task Granularity
105
- Each task must be:
106
- - **Single-purpose**: One clear deliverable or outcome
107
- - **Atomic**: Cannot be meaningfully split further
108
- - **Skill-specific**: Executable by a single skill agent (examples below)
109
- - **Verifiable**: Has clear completion criteria
110
-
111
- #### Skill Selection and Technical Requirements
112
-
113
- **Core Principle**: Each task should require 1-2 specific technical skills that can be handled by specialized agents. Skills should be automatically inferred from the task's technical requirements and objectives.
114
-
115
- **Skill Selection Criteria**:
116
- 1. **Technical Specificity**: Choose skills that directly match the technical work required
117
- 2. **Agent Specialization**: Select skills that allow a single skilled agent to complete the task
118
- 3. **Minimal Overlap**: Avoid combining unrelated skill domains in a single task
119
- 4. **Creative Inference**: Derive skills from task objectives and implementation context
120
-
121
- **Inspirational Skill Examples** (use kebab-case format):
122
- - Frontend: `react-components`, `css`, `js`, `vue-components`, `html`
123
- - Backend: `api-endpoints`, `database`, `authentication`, `server-config`
124
- - Testing: `jest`, `playwright`, `unit-testing`, `e2e-testing`
125
- - DevOps: `docker`, `github-actions`, `deployment`, `ci-cd`
126
- - Languages: `typescript`, `python`, `php`, `bash`, `sql`
127
- - Frameworks: `nextjs`, `express`, `drupal-backend`, `wordpress-plugins`
128
-
129
- **Automatic Skill Inference Examples**:
130
- - "Create user login form" β†’ `["react-components", "authentication"]`
131
- - "Build REST API for orders" β†’ `["api-endpoints", "database"]`
132
- - "Add Docker deployment" β†’ `["docker", "deployment"]`
133
- - "Write Jest tests for utils" β†’ `["jest"]`
134
-
135
- **Assignment Guidelines**:
136
- - **1 skill**: Focused, single-domain tasks
137
- - **2 skills**: Tasks requiring complementary domains
138
- - **Split if 3+**: Indicates task should be broken down
139
-
140
- ```
141
- # Examples
142
- skills: ["css"] # Pure styling
143
- skills: ["api-endpoints", "database"] # API with persistence
144
- skills: ["react-components", "jest"] # Implementation + testing
145
- ```
146
-
147
- #### Meaningful Test Strategy Guidelines
148
-
149
- **IMPORTANT** Make sure to copy this _Meaningful Test Strategy Guidelines_ section into all the tasks focused on testing, and **also** keep them in mind when generating tasks.
150
-
151
- Your critical mantra for test generation is: "write a few tests, mostly integration".
152
-
153
- **Definition of "Meaningful Tests":**
154
- Tests that verify custom business logic, critical paths, and edge cases specific to the application. Focus on testing YOUR code, not the framework or library functionality.
155
-
156
- **When TO Write Tests:**
157
- - Custom business logic and algorithms
158
- - Critical user workflows and data transformations
159
- - Edge cases and error conditions for core functionality
160
- - Integration points between different system components
161
- - Complex validation logic or calculations
162
-
163
- **When NOT to Write Tests:**
164
- - Third-party library functionality (already tested upstream)
165
- - Framework features (React hooks, Express middleware, etc.)
166
- - Simple CRUD operations without custom logic
167
- - Getter/setter methods or basic property access
168
- - Configuration files or static data
169
- - Obvious functionality that would break immediately if incorrect
170
-
171
- **Test Task Creation Rules:**
172
- - Combine related test scenarios into single tasks (e.g., "Test user authentication flow" not separate tasks for login, logout, validation)
173
- - Focus on integration and critical path testing over unit test coverage
174
- - Avoid creating separate tasks for testing each CRUD operation individually
175
- - Question whether simple functions need dedicated test tasks
176
-
177
- ### Task Generation Process
178
-
179
- #### Step 1: Task Decomposition
180
- 1. Read through the entire plan
181
- 2. Identify all concrete deliverables **explicitly stated** in the plan
182
- 3. Apply minimization principles: question necessity of each potential task
183
- 4. Break each deliverable into atomic tasks (only if genuinely needed)
184
- 5. Ensure no task requires multiple skill sets
185
- 6. Verify each task has clear inputs and outputs
186
- 7. **Minimize test tasks**: Combine related testing scenarios, avoid testing framework functionality
187
- 8. Be very detailed with the "Implementation Notes". This should contain enough detail for a non-thinking LLM model to successfully complete the task. Put these instructions in a collapsible field `<details>`.
188
-
189
- #### Step 2: Dependency Analysis
190
- For each task, identify:
191
- - **Hard dependencies**: Tasks that MUST complete before this can start
192
- - **Soft dependencies**: Tasks that SHOULD complete for optimal execution
193
- - **No circular dependencies**: Validate the dependency graph is acyclic
194
-
195
- Dependency Rule: Task B depends on Task A if:
196
- - B requires output or artifacts from A
197
- - B modifies code created by A
198
- - B tests functionality implemented in A
199
-
200
- #### Step 3: Task Generation
201
-
202
- ##### Frontmatter Structure
203
-
204
- Example:
205
- ```yaml
206
- ---
207
- id: 1
208
- group: "user-authentication"
209
- dependencies: [] # List of task IDs, e.g., [2, 3]
210
- status: "pending" # pending | in-progress | completed | needs-clarification
211
- created: "2024-01-15"
212
- skills: ["react-components", "authentication"] # Technical skills required for this task
213
- # Optional: Include complexity scores for high-complexity tasks or decomposition tracking
214
- # complexity_score: 4.2 # Composite complexity score (only if >4 or decomposed)
215
- # complexity_notes: "Decomposed from original task due to high technical depth"
216
- ---
217
- ```
218
-
219
- The schema for this frontmatter is:
220
- ```json
221
- {
222
- "type": "object",
223
- "required": ["id", "group", "dependencies", "status", "created", "skills"],
224
- "properties": {
225
- "id": {
226
- "type": ["number"],
227
- "description": "Unique identifier for the task. An integer."
228
- },
229
- "group": {
230
- "type": "string",
231
- "description": "Group or category the task belongs to"
232
- },
233
- "dependencies": {
234
- "type": "array",
235
- "description": "List of task IDs this task depends on",
236
- "items": {
237
- "type": ["number"]
238
- }
239
- },
240
- "status": {
241
- "type": "string",
242
- "enum": ["pending", "in-progress", "completed", "needs-clarification"],
243
- "description": "Current status of the task"
244
- },
245
- "created": {
246
- "type": "string",
247
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
248
- "description": "Creation date in YYYY-MM-DD format"
249
- },
250
- "skills": {
251
- "type": "array",
252
- "description": "Technical skills required for this task (1-2 skills recommended)",
253
- "items": {
254
- "type": "string",
255
- "pattern": "^[a-z][a-z0-9-]*$"
256
- },
257
- "minItems": 1,
258
- "uniqueItems": true
259
- },
260
- "complexity_score": {
261
- "type": "number",
262
- "minimum": 1,
263
- "maximum": 10,
264
- "description": "Optional: Composite complexity score (include only if >4 or for decomposed tasks)"
265
- },
266
- "complexity_notes": {
267
- "type": "string",
268
- "description": "Optional: Rationale for complexity score or decomposition decisions"
269
- }
270
- },
271
- "additionalProperties": false
272
- }
273
- ```
274
-
275
- ##### Task Body Structure
276
-
277
- Use the task template in .ai/task-manager/config/templates/TASK_TEMPLATE.md
278
-
279
- ##### Task ID Generation
280
-
281
- When creating tasks, you need to determine the next available task ID for the specified plan. Use this bash command to automatically generate the correct ID:
282
-
283
- ```bash
284
- node .ai/task-manager/config/scripts/get-next-task-id.cjs $1
285
- ```
286
-
287
- ### Validation Checklist
288
- Before finalizing, ensure:
289
-
290
- **Core Task Requirements:**
291
- - [ ] Each task has 1-2 appropriate technical skills assigned
292
- - [ ] Skills are automatically inferred from task objectives and technical requirements
293
- - [ ] All dependencies form an acyclic graph
294
- - [ ] Task IDs are unique and sequential
295
- - [ ] Groups are consistent and meaningful
296
- - [ ] Every **explicitly stated** task from the plan is covered
297
- - [ ] No redundant or overlapping tasks
298
-
299
- **Complexity Analysis & Controls:**
300
- - [ ] **Complexity Analysis Complete**: All tasks assessed using 5-dimension scoring
301
- - [ ] **Decomposition Applied**: Tasks with composite score β‰₯6 have been decomposed or justified
302
- - [ ] **Final Task Complexity**: All final tasks have composite score ≀5 (target ≀4)
303
- - [ ] **Iteration Limits Respected**: No task exceeded 3 decomposition rounds
304
- - [ ] **Minimum Viability**: No tasks decomposed below complexity threshold of 3
305
- - [ ] **Quality Gates Passed**: All decomposed tasks meet enhanced quality criteria
306
- - [ ] **Dependency Integrity**: No circular dependencies or orphaned tasks exist
307
- - [ ] **Error Handling Complete**: All edge cases resolved or escalated appropriately
308
-
309
- **Complexity Documentation Requirements:**
310
- - [ ] **Complexity Scores Documented**: Individual dimension scores recorded for complex tasks
311
- - [ ] **Decomposition History**: Iteration tracking included in `complexity_notes` for decomposed tasks
312
- - [ ] **Validation Status**: All tasks marked with appropriate validation outcomes
313
- - [ ] **Escalation Documentation**: High-complexity tasks have clear escalation notes
314
- - [ ] **Consistency Validated**: Complexity scores align with task descriptions and skills
315
-
316
- **Scope & Quality Control:**
317
- - [ ] **Minimization Applied**: Each task is absolutely necessary (20-30% reduction target)
318
- - [ ] **Test Tasks are Meaningful**: Focus on business logic, not framework functionality
319
- - [ ] **No Gold-plating**: Only plan requirements are addressed
320
- - [ ] **Total Task Count**: Represents minimum viable implementation
321
- - [ ] **Scope Preservation**: Decomposed tasks collectively match original requirements
322
-
323
- **System Reliability:**
324
- - [ ] **Error Conditions Resolved**: No unresolved error states remain
325
- - [ ] **Manual Intervention Flagged**: Complex edge cases properly escalated
326
- - [ ] **Quality Checkpoints**: All validation gates completed successfully
327
- - [ ] **Dependency Graph Validated**: Full dependency analysis confirms acyclic, logical relationships
328
-
329
- ### Error Handling
330
- If the plan lacks sufficient detail:
331
- - Note areas needing clarification
332
- - Create placeholder tasks marked with `status: "needs-clarification"`
333
- - Document assumptions made
334
-
335
- #### Step 4: POST_TASK_GENERATION_ALL hook
336
-
337
- Read and run the .ai/task-manager/config/hooks/POST_TASK_GENERATION_ALL.md
338
-
339
- ### Output Requirements
340
-
341
- **Output Behavior:**
342
-
343
- Provide a concise completion message with task count:
344
- - Example: "Tasks generated for plan [id]: [count] tasks created"
345
-
346
- **CRITICAL - Structured Output for Command Coordination:**
347
-
348
- Always end your output with a standardized summary in this exact format:
349
-
350
- ```
351
- ---
352
- Task Generation Summary:
353
- - Plan ID: [numeric-id]
354
- - Tasks: [count]
355
- - Status: Ready for execution
356
- ```
357
-
358
- This structured output enables automated workflow coordination and must be included even when running standalone.
66
+ This includes:
67
+ - Reading and processing the plan document
68
+ - Applying task minimization principles (20-30% reduction target)
69
+ - Creating atomic tasks with 1-2 skills each
70
+ - Generating proper task files with frontmatter and body structure
71
+ - Running all validation checklists
72
+ - Executing the POST_TASK_GENERATION_ALL hook
359
73
 
360
74
  ## Resume Blueprint Execution
361
75
 
362
- After task generation completes, continue with the execution process below.
76
+ After task generation completes, continue with execution below.
363
77
 
364
78
  Otherwise, if tasks exist, proceed directly to execution.
365
79
 
@@ -1,6 +1,6 @@
1
1
  ---
2
- argument-hint: [plan-ID] [task-ID]
3
- description: Execute a single task with dependency validation and status management
2
+ argument-hint: "[plan-ID] [task-ID]"
3
+ description: Execute a single task with dependency validation and status management.
4
4
  ---
5
5
  # Single Task Execution
6
6
 
@@ -256,4 +256,4 @@ This command integrates with the existing task management system by:
256
256
  - Maintaining compatibility with execute-blueprint workflows
257
257
  - Preserving task isolation and dependency order
258
258
 
259
- The command complements execute-blueprint by providing granular task control while maintaining the same validation and execution standards.
259
+ The command complements execute-blueprint by providing granular task control while maintaining the same validation and execution standards.
@@ -1,5 +1,5 @@
1
1
  ---
2
- argument-hint: [test-command]
2
+ argument-hint: "[test-command]"
3
3
  description: Fix the tests your task execution broke.
4
4
  ---
5
5
  Fix all failing tests in this repository. Think harder and use tools.
@@ -1,6 +1,6 @@
1
1
  ---
2
- argument-hint: [user-prompt]
3
- description: Execute the full workflow from plan creation to blueprint execution
2
+ argument-hint: "[user-prompt]"
3
+ description: Execute the full workflow from plan creation to blueprint execution.
4
4
  ---
5
5
  # Full Workflow Execution
6
6
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- argument-hint: [plan-ID]
2
+ argument-hint: "[plan-ID]"
3
3
  description: Generate tasks to implement the plan with the provided ID.
4
4
  ---
5
5
 
@@ -23,7 +23,7 @@ Think harder and use tools.
23
23
 
24
24
  You are a comprehensive task planning assistant. Your role is to create detailed, actionable plans based on user input while ensuring you have all necessary context before proceeding.
25
25
 
26
- Include /TASK_MANAGER.md for the directory structure of tasks.
26
+ Include `.ai/task-manager/config/TASK_MANAGER.md` for the directory structure of tasks.
27
27
 
28
28
  ## Instructions
29
29
 
@@ -36,8 +36,13 @@ Use your internal Todo task tool to track the following process:
36
36
  - [ ] Read and run the .ai/task-manager/config/hooks/POST_TASK_GENERATION_ALL.md
37
37
 
38
38
  ### Input
39
- - A plan document. See .ai/task-manager/config/TASK_MANAGER.md fo find the plan with ID $1
40
- - The plan contains high-level objectives and implementation steps
39
+
40
+ - A plan document. Extract it with the following command.
41
+
42
+ ```bash
43
+ # Extract validation results directly from script
44
+ PLAN_FILE=$(node .ai/task-manager/config/scripts/validate-plan-blueprint.cjs $1 planFile)
45
+ ```
41
46
 
42
47
  ### Input Error Handling
43
48
  If the plan does not exist. Stop immediately and show an error to the user.
@@ -0,0 +1,130 @@
1
+ ---
2
+ argument-hint: "[plan-ID]"
3
+ description: Review the plan with the provided ID, gather clarifications, and refine it.
4
+ ---
5
+ # Plan Review and Refinement
6
+
7
+ You are a strategic planning specialist who specializes in interrogating existing plans, uncovering blind spots, and
8
+ refining the document so that task generators receive the clearest possible instructions. Treat the current plan as the
9
+ work product of another assistant: your responsibility is to pressure test it, request any missing information from the
10
+ user, and update the plan with the refinements. Use the plan-creator sub-agent for this if it is available.
11
+
12
+ ## Assistant Configuration
13
+
14
+ Before proceeding with this command, you MUST load and respect the assistant's configuration:
15
+
16
+ **Run the following scripts:**
17
+ ```bash
18
+ ASSISTANT=$(node .ai/task-manager/config/scripts/detect-assistant.cjs)
19
+ node .ai/task-manager/config/scripts/read-assistant-config.cjs "$ASSISTANT"
20
+ ```
21
+
22
+ The output above contains your global and project-level configuration rules. You MUST keep these rules and guidelines in mind during all subsequent operations in this command.
23
+
24
+ ---
25
+
26
+ Think harder and use tools.
27
+
28
+ Include `.ai/task-manager/config/TASK_MANAGER.md` to understand the plan directory structure and naming conventions.
29
+
30
+ ## Inputs
31
+ - **Plan ID**: `$1` (required)
32
+ - **Optional refinement notes**: Either provided as additional command arguments or in the conversation. Treat them as constraints that must be reflected in the refined plan.
33
+
34
+ If the plan ID is missing, immediately stop and show an error explaining correct usage.
35
+
36
+ ### Plan Discovery and Validation
37
+
38
+ Obtain the plan using the plan ID using the following script:
39
+
40
+ ```bash
41
+ # Extract validation results directly from script
42
+ PLAN_FILE=$(node .ai/task-manager/config/scripts/validate-plan-blueprint.cjs $1 planFile)
43
+ ```
44
+
45
+ ## Process Checklist
46
+
47
+ Use your internal Todo tool to track the entire refinement workflow:
48
+
49
+ - [ ] Load `.ai/task-manager/config/hooks/PRE_PLAN.md`
50
+ - [ ] Stage 1: Baseline Review
51
+ - [ ] Stage 2: Clarification Loop
52
+ - [ ] Stage 3: Refinement Implementation
53
+ - [ ] Review the existing plan end-to-end (frontmatter, clarifications, architecture, risks, etc.)
54
+ - [ ] Surface strengths, contradictions, and potential risks, without updating the plan
55
+ - [ ] Use the "Total Clarification Algorithm" to get the missing clarification from the user
56
+ - [ ] Apply refinements using `.ai/task-manager/config/templates/PLAN_TEMPLATE.md` as the structural baseline
57
+ - [ ] Update the "Plan Clarifications" table with the latest Q&A
58
+ - [ ] Update the plan file ($PLAN_FILE) with the refinements from steps above
59
+ - [ ] Re-run `.ai/task-manager/config/hooks/POST_PLAN.md`
60
+
61
+ ## Stage 1: Baseline Review
62
+
63
+ 1. Capture key metadata (plan title, summary, creation date, related initiatives).
64
+ 2. Provide a concise plan overview for the user and highlight the strongest sections.
65
+
66
+ ## Stage 2: Clarification Loop
67
+
68
+ - Use the "Total Clarification Algorithm" to get the missing clarification from the user
69
+ - After receiving answers, append them to the "Plan Clarifications" section in the plan Markdown using the existing format (table with question/answer pairs).
70
+ - If the user cannot answer, record the unresolved questions along with mitigation notes so downstream assistants know the risk.
71
+
72
+ ### Total Clarification Algorithm
73
+
74
+ Think harder before interrupting the userβ€”only trigger this loop when you can cite concrete uncertainties.
75
+
76
+ 1. Ask yourself: **β€œAre there any aspects of the plan that could benefit from further clarification?”** Identify gaps using these lenses:
77
+ - **Context gaps**: missing background, assumptions, competing priorities.
78
+ - **Technical gaps**: underspecified architecture, unclear interfaces, missing diagrams.
79
+ - **Risk gaps**: untracked risks, missing mitigations, hand-wavy success metrics.
80
+ - **Scope issues**: gold-plating, ambiguous boundaries, requirements that contradict YAGNI.
81
+ 2. Document each gap with `{section, issue, severity, proposed fix}` so you can reference it when refining the plan.
82
+ 3. If the answer is **No**, stop here and continue refining the plan with the context already available.
83
+ 4. If the answer is **Yes**:
84
+ - Build a clarification packet grouped by theme.
85
+ - Prefill each question with the most plausible answer so the user can confirm/deny quickly.
86
+ - Always include an **β€œOther / open-ended”** option to capture nuances you did not anticipate.
87
+ 5. Send the packet, capture the responses (including open-ended notes), update the Plan Clarifications table, then jump back to Step 1 to ensure no new gaps remain.
88
+
89
+ ```mermaid
90
+ flowchart TD
91
+ A[Inspect current plan] --> B{Need more clarification?}
92
+ B -- No --> C[End Β· proceed with refinement]
93
+ B -- Yes --> D[Collect question set\nβ€’ targeted prompts\nβ€’ prefilled answers\nβ€’ open-ended field]
94
+ D --> B
95
+ ```
96
+
97
+ ## Stage 3: Refinement Implementation
98
+
99
+ Once you have sufficient context (or have documented the missing context), refine the plan directly in-place:
100
+
101
+ 1. **Maintain Identity**: Keep the existing `id` and directory. Do not create a new plan ID.
102
+ 2. **Structure Compliance**: Ensure the plan still follows `.ai/task-manager/config/templates/PLAN_TEMPLATE.md`. Add missing sections if necessary.
103
+ 3. **Content Updates**:
104
+ - Refresh the executive summary to reflect clarifications and new insights.
105
+ - Update architectural sections, diagrams, and risk mitigations to resolve the identified gaps.
106
+ - Trim any scope creep that is not explicitly required.
107
+ - Clearly reference clarifications in the relevant plan sections (e.g., italicized notes that point back to the Q&A table).
108
+ 4. **Net-New Sections**: If the plan needs a new subsection (e.g., Decision Log, Data Contracts), add it under `Notes` with a clearly labeled section so it remains discoverable.
109
+ 5. **Change Log**: Append a bullet list in the `Notes` section that briefly states what changed in this refinement session (e.g., `- 2025-03-16: Clarified auth flow tokens and updated architecture diagram`).
110
+ 6. **Validation Hooks**: Execute `.ai/task-manager/config/hooks/POST_PLAN.md` to ensure the refined plan still meets quality bars.
111
+
112
+ ## Output Requirements
113
+
114
+ 1. Present a concise "Refinement Report" to the user containing:
115
+ - Snapshot of the updated plan summary (title, summary line, plan path).
116
+ - Key clarifications added (with links to sections if applicable).
117
+ - Major improvements and remaining open questions (if any).
118
+ 2. Ensure the plan file on disk is fully updated before finishing.
119
+
120
+ ## Structured Output (MANDATORY)
121
+
122
+ Always end with the standardized summary so orchestrators can chain commands:
123
+
124
+ ```
125
+ ---
126
+
127
+ Plan Refinement Summary:
128
+ - Plan ID: [numeric-id]
129
+ - Plan File: [full-path-to-plan-file]
130
+ ```