@magic-ingredients/tiny-brain-local 0.11.0 → 0.12.2

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.
Files changed (47) hide show
  1. package/dist/cli/cli-factory.d.ts.map +1 -1
  2. package/dist/cli/cli-factory.js +49 -0
  3. package/dist/cli/cli-factory.js.map +1 -1
  4. package/dist/cli/commands/track-commit.command.d.ts +40 -0
  5. package/dist/cli/commands/track-commit.command.d.ts.map +1 -0
  6. package/dist/cli/commands/track-commit.command.js +144 -0
  7. package/dist/cli/commands/track-commit.command.js.map +1 -0
  8. package/dist/prompts/planning/planning.prompt.js +41 -41
  9. package/dist/prompts/planning/planning.prompt.js.map +1 -1
  10. package/dist/services/agent-manager.d.ts.map +1 -1
  11. package/dist/services/agent-manager.js +5 -2
  12. package/dist/services/agent-manager.js.map +1 -1
  13. package/dist/services/analyse-service.d.ts +30 -0
  14. package/dist/services/analyse-service.d.ts.map +1 -1
  15. package/dist/services/analyse-service.js +176 -3
  16. package/dist/services/analyse-service.js.map +1 -1
  17. package/dist/services/repo-service.d.ts +26 -2
  18. package/dist/services/repo-service.d.ts.map +1 -1
  19. package/dist/services/repo-service.js +192 -8
  20. package/dist/services/repo-service.js.map +1 -1
  21. package/dist/tools/persona/as.tool.d.ts.map +1 -1
  22. package/dist/tools/persona/as.tool.js +11 -3
  23. package/dist/tools/persona/as.tool.js.map +1 -1
  24. package/dist/tools/plan/plan.tool.d.ts +2 -0
  25. package/dist/tools/plan/plan.tool.d.ts.map +1 -1
  26. package/dist/tools/plan/plan.tool.js +278 -71
  27. package/dist/tools/plan/plan.tool.js.map +1 -1
  28. package/dist/utils/package-version.d.ts +11 -0
  29. package/dist/utils/package-version.d.ts.map +1 -0
  30. package/dist/utils/package-version.js +26 -0
  31. package/dist/utils/package-version.js.map +1 -0
  32. package/package.json +4 -3
  33. package/templates/adr/0001-record-architecture-decisions.md +223 -0
  34. package/templates/adr/ADR_CREATION_INSTRUCTIONS.md +234 -0
  35. package/templates/adr/README.md +243 -0
  36. package/templates/adr/adr-schema.json +74 -0
  37. package/templates/adr/adr-template.md +136 -0
  38. package/templates/prd/PRD_CREATION_INSTRUCTIONS.md +268 -0
  39. package/templates/prd/README.md +252 -0
  40. package/templates/prd/_template/feature-template.md +105 -0
  41. package/templates/prd/_template/prd-template.md +126 -0
  42. package/templates/prd/example-task-management/features/task-collaboration.md +84 -0
  43. package/templates/prd/example-task-management/features/task-crud.md +222 -0
  44. package/templates/prd/example-task-management/features/task-workflow.md +62 -0
  45. package/templates/prd/example-task-management/prd.md +177 -0
  46. package/templates/prd/feature-schema.json +54 -0
  47. package/templates/prd/prd-schema.json +60 -0
@@ -1,12 +1,18 @@
1
1
  import { z } from 'zod';
2
2
  import { createSuccessResult, createErrorResult } from '../index.js';
3
3
  import { PlanningService } from '@magic-ingredients/tiny-brain-core';
4
+ import { toKebabCase } from '@magic-ingredients/tiny-brain-core';
4
5
  import { DashboardLauncher } from '../../services/dashboard-launcher.service.js';
6
+ import { promises as fs } from 'fs';
7
+ import path from 'path';
5
8
  const PlanArgsSchema = z.object({
6
- operation: z.enum(['accept', 'update', 'status', 'report', 'list', 'archive', 'switch', 'start-dashboard', 'stop-dashboard', 'dashboard-status']),
9
+ operation: z.enum(['accept', 'feature', 'implement', 'update', 'status', 'report', 'list', 'archive', 'switch', 'start-dashboard', 'stop-dashboard', 'dashboard-status']),
7
10
  // For 'accept' operation
8
11
  planName: z.string().optional(),
9
12
  planDetails: z.string().optional(),
13
+ // For 'feature' operation
14
+ featureName: z.string().optional(),
15
+ featureDetails: z.string().optional(),
10
16
  // For 'update' operation
11
17
  planId: z.string().optional(),
12
18
  updates: z
@@ -16,36 +22,36 @@ const PlanArgsSchema = z.object({
16
22
  .array(z.object({
17
23
  description: z.string(),
18
24
  severity: z.enum(['low', 'medium', 'high']),
19
- todoId: z.string().optional(),
25
+ taskId: z.string().optional(),
20
26
  }))
21
27
  .optional(),
22
- addPhase: z
28
+ addFeature: z
23
29
  .object({
24
30
  title: z.string(),
25
31
  description: z.string(),
26
32
  })
27
33
  .optional(),
28
- updatePhase: z
34
+ updateFeature: z
29
35
  .object({
30
- phaseNumber: z.number(),
36
+ featureNumber: z.number(),
31
37
  status: z.enum(['pending', 'in_progress', 'completed']).optional(),
32
- addTodo: z.string().optional(),
33
- completeTodo: z.string().optional(),
38
+ addTask: z.string().optional(),
39
+ completeTask: z.string().optional(),
34
40
  // Bulk operations
35
- addTodos: z.array(z.string()).optional(),
36
- completeTodos: z.array(z.string()).optional(),
41
+ addTasks: z.array(z.string()).optional(),
42
+ completeTasks: z.array(z.string()).optional(),
37
43
  })
38
44
  .optional(),
39
- // Support for updating multiple phases
40
- updatePhases: z
45
+ // Support for updating multiple features
46
+ updateFeatures: z
41
47
  .array(z.object({
42
- phaseNumber: z.number(),
48
+ featureNumber: z.number(),
43
49
  status: z.enum(['pending', 'in_progress', 'completed']).optional(),
44
- addTodo: z.string().optional(),
45
- completeTodo: z.string().optional(),
50
+ addTask: z.string().optional(),
51
+ completeTask: z.string().optional(),
46
52
  // Bulk operations
47
- addTodos: z.array(z.string()).optional(),
48
- completeTodos: z.array(z.string()).optional(),
53
+ addTasks: z.array(z.string()).optional(),
54
+ completeTasks: z.array(z.string()).optional(),
49
55
  }))
50
56
  .optional(),
51
57
  })
@@ -69,17 +75,53 @@ const PlanArgsSchema = z.object({
69
75
  // Dashboard is now managed by MCP server and auto-started on initialization
70
76
  // We keep a reference for manual control
71
77
  let dashboardLauncher = null;
78
+ /**
79
+ * Find a unique slug for PRD directory by checking if it exists
80
+ * If slug exists, append -2, -3, etc. until finding an available one
81
+ */
82
+ async function findUniqueSlug(baseSlug) {
83
+ const repoRoot = process.cwd();
84
+ let slug = baseSlug;
85
+ let counter = 2;
86
+ // Check if base slug is available
87
+ try {
88
+ const checkPath = path.join(repoRoot, 'docs/prd', slug);
89
+ await fs.access(checkPath);
90
+ // Directory exists, need to find alternative
91
+ }
92
+ catch {
93
+ // Directory doesn't exist, slug is available
94
+ return slug;
95
+ }
96
+ // Try with counter until we find an available slug
97
+ while (counter < 100) { // Safety limit
98
+ slug = `${baseSlug}-${counter}`;
99
+ try {
100
+ const checkPath = path.join(repoRoot, 'docs/prd', slug);
101
+ await fs.access(checkPath);
102
+ counter++;
103
+ }
104
+ catch {
105
+ // Directory doesn't exist, this slug is available
106
+ return slug;
107
+ }
108
+ }
109
+ // Fallback to timestamp-based if we can't find a unique slug
110
+ return `${baseSlug}-${Date.now()}`;
111
+ }
72
112
  export class PlanTool {
73
113
  static getToolDefinition() {
74
114
  return {
75
115
  name: 'plan',
76
116
  description: `📋 LIVING DOCUMENT PLANNER 📋
77
117
 
78
- COLLABORATIVE PLANNING: Captures user-AI planning discussions and creates structured, trackable plans.
118
+ PRD-BASED PLANNING: Creates Product Requirement Documents (PRDs) with structured features and task tracking.
79
119
 
80
120
  ✅ OPERATIONS:
81
- • accept: Create plan from collaborative discussion (planName + planDetails)
82
- update: Add phases, todos, or update status (usually automatic)
121
+ • accept: Create PRD from collaborative discussion (planName + planDetails)
122
+ feature: Add a feature to the active PRD (featureName + featureDetails)
123
+ • implement: Start implementation workflow (exits plan mode)
124
+ • update: Add features, tasks, or update status (usually automatic)
83
125
  • status: Show current plan progress and summary
84
126
  • report: Generate and display comprehensive markdown report
85
127
  • list: List all plans (active, completed, archived)
@@ -89,44 +131,66 @@ export class PlanTool {
89
131
  • stop-dashboard: Stop the running dashboard
90
132
  • dashboard-status: Check if dashboard is running
91
133
 
92
- 💡 WORKFLOW:
93
- 1. User & AI collaborate on planning in chat
94
- 2. AI invokes 'accept' with planName + full planning discussion
95
- 3. Tool extracts phases, todos, and structure automatically
96
- 4. Creates persona-specific JSON plan document
97
- 5. Tracks updates and progress across conversations
134
+ 💡 PRD WORKFLOW:
135
+ 1. Plan Mode Describe PRD with user
136
+ 2. 'accept' operation Creates PRD markdown in docs/prd/{prd-name}/
137
+ 3. Describe Feature Interactive feature planning
138
+ 4. 'feature' operation → Creates feature.md in docs/prd/{prd-name}/features/
139
+ 5. Repeat 3-4 for all features
140
+ 6. 'implement' operation → Exit plan mode, implement task-by-task
141
+ 7. Auto-commit after each task → Update tracking doc → Dashboard update
142
+
143
+ 📁 FILE STRUCTURE:
144
+ docs/prd/{prd-name}/
145
+ prd.md # Main PRD with YAML frontmatter
146
+ features/
147
+ {feature-name}.md # Feature plan with tasks
148
+
149
+ ~/.tiny-brain/{persona}/plans/
150
+ {plan-id}.json # Progress tracking document
98
151
 
99
152
  🎯 FEATURES:
100
- Automatic extraction of phases and todos from discussions
101
- Smart parsing of collaborative planning conversations
153
+ PRD stored as markdown in repository
154
+ Feature-based organization with task tracking
155
+ • Automatic extraction of features and tasks from discussions
156
+ • Commit SHA tracking for completed tasks
157
+ • Real-time progress visibility in dashboard
102
158
  • Cross-chat plan continuity and progress tracking
103
- • Living documents that evolve with your project
104
159
 
105
- 📝 UPDATE BEST PRACTICES:
106
- After accepting a plan, use the returned JSON structure to make precise updates
107
- Match todo content exactly as shown in the structure
108
- Update phases based on actual progress made
109
- Complete todos by referencing their exact content from the plan structure
110
- • Use bulk operations to update multiple items at once:
111
- - completeTodos: ["todo1", "todo2"] to complete multiple todos
112
- - addTodos: ["task1", "task2"] to add multiple todos
113
- - updatePhases: [{...}, {...}] to update multiple phases`,
160
+ 📝 BEST PRACTICES:
161
+ Use plan mode for PRD creation and feature planning
162
+ One PRD per major product initiative
163
+ Break down features into implementable tasks
164
+ Commit after completing each task for accurate tracking
165
+ • Use bulk operations for multiple updates:
166
+ - completeTasks: ["task1", "task2"] to complete multiple tasks
167
+ - addTasks: ["task1", "task2"] to add multiple tasks
168
+ - updateFeatures: [{...}, {...}] to update multiple features`,
114
169
  inputSchema: {
115
170
  type: 'object',
116
171
  properties: {
117
172
  operation: {
118
173
  type: 'string',
119
- enum: ['accept', 'update', 'status', 'report', 'list', 'archive', 'switch', 'watch', 'stop-watch'],
174
+ enum: ['accept', 'feature', 'implement', 'update', 'status', 'report', 'list', 'archive', 'switch', 'start-dashboard', 'stop-dashboard', 'dashboard-status'],
120
175
  description: 'The planning operation to perform',
121
176
  },
122
177
  // For 'accept' operation
123
178
  planName: {
124
179
  type: 'string',
125
- description: 'Name/title for the new plan (required for accept)',
180
+ description: 'Name/title for the new PRD (required for accept)',
126
181
  },
127
182
  planDetails: {
128
183
  type: 'string',
129
- description: 'Large chunk of text containing the collaborative planning discussion between user and AI (required for accept)',
184
+ description: 'Large chunk of text containing the collaborative PRD planning discussion between user and AI (required for accept)',
185
+ },
186
+ // For 'feature' operation
187
+ featureName: {
188
+ type: 'string',
189
+ description: 'Name/title for the new feature (required for feature operation)',
190
+ },
191
+ featureDetails: {
192
+ type: 'string',
193
+ description: 'Detailed description of the feature including requirements and acceptance criteria (required for feature operation)',
130
194
  },
131
195
  // For 'update' operation
132
196
  planId: {
@@ -144,29 +208,29 @@ export class PlanTool {
144
208
  properties: {
145
209
  description: { type: 'string' },
146
210
  severity: { type: 'string', enum: ['low', 'medium', 'high'] },
147
- todoId: { type: 'string' },
211
+ taskId: { type: 'string' },
148
212
  },
149
213
  required: ['description', 'severity'],
150
214
  },
151
215
  },
152
- addPhase: {
216
+ addFeature: {
153
217
  type: 'object',
154
218
  properties: {
155
219
  title: { type: 'string' },
156
220
  description: { type: 'string' },
157
221
  },
158
222
  },
159
- updatePhase: {
223
+ updateFeature: {
160
224
  type: 'object',
161
225
  properties: {
162
- phaseNumber: { type: 'number' },
226
+ featureNumber: { type: 'number' },
163
227
  status: { type: 'string', enum: ['pending', 'in_progress', 'completed'] },
164
- addTodo: { type: 'string' },
165
- completeTodo: { type: 'string' },
228
+ addTask: { type: 'string' },
229
+ completeTask: { type: 'string' },
166
230
  },
167
231
  },
168
232
  },
169
- description: 'Updates to apply to the plan. Use exact todo content from plan structure for completeTodo. Update phases based on actual work completed.',
233
+ description: 'Updates to apply to the plan. Use exact task content from plan structure for completeTask. Update features based on actual work completed.',
170
234
  },
171
235
  // For 'status' operation
172
236
  verbose: {
@@ -224,6 +288,10 @@ export class PlanTool {
224
288
  switch (validatedArgs.operation) {
225
289
  case 'accept':
226
290
  return await PlanTool.handleAccept(validatedArgs, context);
291
+ case 'feature':
292
+ return await PlanTool.handleFeature(validatedArgs, context);
293
+ case 'implement':
294
+ return await PlanTool.handleImplement(validatedArgs, context);
227
295
  case 'update':
228
296
  return await PlanTool.handleUpdate(validatedArgs, context);
229
297
  case 'status':
@@ -270,6 +338,38 @@ export class PlanTool {
270
338
  overview: args.planDetails,
271
339
  planDetails: args.planDetails, // Service will extract phases from this
272
340
  });
341
+ // Create PRD markdown in repository
342
+ // Generate human-readable slug from plan title
343
+ const baseSlug = toKebabCase(plan.title);
344
+ const prdSlug = await findUniqueSlug(baseSlug);
345
+ const prdPath = `docs/prd/${prdSlug}`;
346
+ const now = new Date().toISOString();
347
+ try {
348
+ const prdDirPath = await planningService.createPRDMarkdown(prdPath, {
349
+ id: plan.id,
350
+ title: plan.title,
351
+ version: '1.0.0',
352
+ status: 'not_started',
353
+ created: now,
354
+ updated: now,
355
+ author: 'Claude Code',
356
+ }, {
357
+ purpose: args.planDetails,
358
+ userNeeds: 'To be defined during feature planning',
359
+ design: 'To be defined during feature planning',
360
+ releaseCriteria: 'To be defined during feature planning',
361
+ successMetrics: 'To be defined during feature planning',
362
+ constraints: 'To be defined during feature planning',
363
+ });
364
+ // Update plan with PRD reference
365
+ plan.prdId = prdSlug;
366
+ plan.prdDirPath = `${prdPath}/prd.md`;
367
+ context.logger?.info?.(`Created PRD markdown at ${prdDirPath}`);
368
+ }
369
+ catch (error) {
370
+ context.logger?.warn?.(`Failed to create PRD markdown: ${error}`);
371
+ // Continue anyway - the JSON plan was created successfully
372
+ }
273
373
  // Set the new plan as active
274
374
  const setActiveResult = await planningService.setActivePlan({ planId: plan.id });
275
375
  if (!setActiveResult) {
@@ -283,9 +383,10 @@ export class PlanTool {
283
383
  `✅ Created plan: "${plan.title}"`,
284
384
  `Plan ID: ${plan.id}`,
285
385
  `Persona: ${context.activePersona?.id || 'unknown'}`,
386
+ plan.prdDirPath ? `📋 PRD: ${plan.prdDirPath}` : '',
286
387
  '',
287
- `Extracted ${plan.phases.length} phases:`,
288
- ...plan.phases.map((phase, i) => `${i + 1}. ${phase.title}`),
388
+ `Extracted ${plan.features.length} features:`,
389
+ ...plan.features.map((feature, i) => `${i + 1}. ${feature.title}`),
289
390
  '',
290
391
  '## Plan Structure (for AI reference)',
291
392
  '```json',
@@ -294,9 +395,9 @@ export class PlanTool {
294
395
  '',
295
396
  '## How to Update This Plan',
296
397
  'When calling plan update, reference the structure above to:',
297
- '1. Complete todos by exact content match: `completeTodo: "exact todo text"`',
298
- '2. Update phase status: `updatePhase: { phaseNumber: 1, status: "completed" }`',
299
- '3. Add new todos: `updatePhase: { phaseNumber: 1, addTodo: "new task" }`',
398
+ '1. Complete tasks by exact content match: `completeTask: "exact task text"`',
399
+ '2. Update feature status: `updateFeature: { featureNumber: 1, status: "completed" }`',
400
+ '3. Add new tasks: `updateFeature: { featureNumber: 1, addTask: "new task" }`',
300
401
  '',
301
402
  'Example update calls:',
302
403
  '',
@@ -305,10 +406,10 @@ export class PlanTool {
305
406
  JSON.stringify({
306
407
  operation: 'update',
307
408
  updates: {
308
- updatePhase: {
309
- phaseNumber: 1,
409
+ updateFeature: {
410
+ featureNumber: 1,
310
411
  status: 'in_progress',
311
- completeTodo: 'First todo content from structure above',
412
+ completeTask: 'First task content from structure above',
312
413
  },
313
414
  },
314
415
  }, null, 2),
@@ -319,30 +420,30 @@ export class PlanTool {
319
420
  JSON.stringify({
320
421
  operation: 'update',
321
422
  updates: {
322
- updatePhase: {
323
- phaseNumber: 1,
423
+ updateFeature: {
424
+ featureNumber: 1,
324
425
  status: 'completed',
325
- completeTodos: ['First todo content', 'Second todo content', 'Third todo content'],
426
+ completeTasks: ['First task content', 'Second task content', 'Third task content'],
326
427
  },
327
428
  },
328
429
  }, null, 2),
329
430
  '```',
330
431
  '',
331
- '**Multiple phase updates:**',
432
+ '**Multiple feature updates:**',
332
433
  '```json',
333
434
  JSON.stringify({
334
435
  operation: 'update',
335
436
  updates: {
336
- updatePhases: [
437
+ updateFeatures: [
337
438
  {
338
- phaseNumber: 1,
439
+ featureNumber: 1,
339
440
  status: 'completed',
340
- completeTodos: ['Todo 1', 'Todo 2'],
441
+ completeTasks: ['Task 1', 'Task 2'],
341
442
  },
342
443
  {
343
- phaseNumber: 2,
444
+ featureNumber: 2,
344
445
  status: 'in_progress',
345
- addTodos: ['New task 1', 'New task 2'],
446
+ addTasks: ['New task 1', 'New task 2'],
346
447
  },
347
448
  ],
348
449
  },
@@ -357,6 +458,112 @@ export class PlanTool {
357
458
  return createErrorResult(`Failed to create plan: ${error instanceof Error ? error.message : 'Unknown error'}`);
358
459
  }
359
460
  }
461
+ static async handleFeature(args, context) {
462
+ if (!args.featureName || !args.featureDetails) {
463
+ return createErrorResult('Feature name and feature details are required to add a feature.');
464
+ }
465
+ try {
466
+ if (!context.activePersona) {
467
+ return createErrorResult('Active persona is required');
468
+ }
469
+ const planningService = new PlanningService(context);
470
+ // Get the active plan
471
+ const plan = await planningService.getActivePlan();
472
+ if (!plan) {
473
+ return createErrorResult('No active plan found. Use "plan accept" to create a plan first.');
474
+ }
475
+ // Check if plan has PRD reference
476
+ if (!plan.prdId || !plan.prdDirPath) {
477
+ return createErrorResult('Active plan does not have a PRD. This plan may have been created before PRD support was added.');
478
+ }
479
+ // Generate feature ID from name
480
+ const featureId = args.featureName.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, '');
481
+ const now = new Date().toISOString();
482
+ // Create feature markdown file
483
+ const prdPath = plan.prdDirPath.replace('/prd.md', '');
484
+ try {
485
+ const featureFilePath = await planningService.createFeatureMarkdown(prdPath, {
486
+ id: featureId,
487
+ prd_id: plan.prdId,
488
+ title: args.featureName,
489
+ status: 'pending',
490
+ created: now,
491
+ updated: now,
492
+ }, {
493
+ description: args.featureDetails,
494
+ acceptanceCriteria: ['Define acceptance criteria for this feature'],
495
+ dependencies: [],
496
+ testingStrategy: 'Define testing strategy',
497
+ });
498
+ context.logger?.info?.(`Created feature markdown at ${featureFilePath}`);
499
+ const response = [
500
+ `✅ Created feature: "${args.featureName}"`,
501
+ `Feature ID: ${featureId}`,
502
+ `Plan: ${plan.title}`,
503
+ `📄 Feature file: ${prdPath}/features/${featureId}.md`,
504
+ '',
505
+ 'Next steps:',
506
+ '1. Review and refine the feature description',
507
+ '2. Define tasks in the feature markdown file',
508
+ '3. When ready, use "plan implement" to start implementation',
509
+ ].join('\n');
510
+ return createSuccessResult(response);
511
+ }
512
+ catch (error) {
513
+ return createErrorResult(`Failed to create feature markdown: ${error instanceof Error ? error.message : 'Unknown error'}`);
514
+ }
515
+ }
516
+ catch (error) {
517
+ return createErrorResult(`Failed to add feature: ${error instanceof Error ? error.message : 'Unknown error'}`);
518
+ }
519
+ }
520
+ static async handleImplement(_args, context) {
521
+ try {
522
+ if (!context.activePersona) {
523
+ return createErrorResult('Active persona is required');
524
+ }
525
+ const planningService = new PlanningService(context);
526
+ // Get the active plan
527
+ const plan = await planningService.getActivePlan();
528
+ if (!plan) {
529
+ return createErrorResult('No active plan found. Use "plan accept" to create a plan first.');
530
+ }
531
+ // Check if plan has PRD reference
532
+ if (!plan.prdId || !plan.prdDirPath) {
533
+ return createErrorResult('Active plan does not have a PRD. This plan may have been created before PRD support was added.');
534
+ }
535
+ // Check if plan has any features
536
+ if (!plan.features || plan.features.length === 0) {
537
+ return createErrorResult('Active plan has no features to implement. Use "plan feature" to add features first.');
538
+ }
539
+ // Build implementation guidance message
540
+ const response = [
541
+ `🚀 Ready to implement: "${plan.title}"`,
542
+ ``,
543
+ `📋 PRD: ${plan.prdDirPath}`,
544
+ ``,
545
+ `## Features to Implement`,
546
+ ...plan.features.map((feature, i) => {
547
+ const taskCount = feature.tasks?.length || 0;
548
+ const completedCount = feature.tasks?.filter(t => t.completedAt).length || 0;
549
+ const statusEmoji = feature.status === 'completed' ? '✅' : feature.status === 'in_progress' ? '🔄' : '📋';
550
+ return `${statusEmoji} **Feature ${i + 1}: ${feature.title}** (${completedCount}/${taskCount} tasks complete)`;
551
+ }),
552
+ ``,
553
+ `## Next Steps`,
554
+ `1. Review the PRD and feature files in ${plan.prdDirPath.replace('/prd.md', '')}`,
555
+ `2. Start implementing tasks from the first incomplete feature`,
556
+ `3. After completing each task, commit your changes`,
557
+ `4. Use "plan update" to mark tasks as complete`,
558
+ ``,
559
+ `💡 **Tip**: Work on one task at a time, commit frequently, and update the plan after each completion.`,
560
+ ].join('\n');
561
+ return createSuccessResult(response);
562
+ }
563
+ catch (error) {
564
+ return createErrorResult(`Failed to prepare implementation: ${error instanceof Error ? error.message : 'Unknown error'}`);
565
+ }
566
+ }
360
567
  static async handleUpdate(args, context) {
361
568
  try {
362
569
  // Get the plan to update
@@ -418,12 +625,12 @@ export class PlanTool {
418
625
  const tempPlan = {
419
626
  ...planSummary,
420
627
  overview: '',
421
- phases: [],
628
+ features: [],
422
629
  metadata: {
423
- totalPhases: planSummary.currentState.overallProgress.totalPhases,
424
- completedPhases: planSummary.currentState.overallProgress.completedPhases,
425
- totalTodos: planSummary.currentState.overallProgress.totalTodos,
426
- completedTodos: planSummary.currentState.overallProgress.completedTodos,
630
+ totalFeatures: planSummary.currentState.overallProgress.totalFeatures,
631
+ completedFeatures: planSummary.currentState.overallProgress.completedFeatures,
632
+ totalTasks: planSummary.currentState.overallProgress.totalTasks,
633
+ completedTasks: planSummary.currentState.overallProgress.completedTasks,
427
634
  lastChanges: [],
428
635
  contributors: [],
429
636
  tags: [],
@@ -513,7 +720,7 @@ export class PlanTool {
513
720
  const statusEmoji = plan.type === 'active' ? '🟢' : plan.status === 'complete' ? '✅' : '📦';
514
721
  const activeMarker = isActive ? ' ⭐ [ACTIVE]' : '';
515
722
  lines.push(`${statusEmoji} **${plan.title}** (${plan.id})${activeMarker}`);
516
- lines.push(` Progress: ${plan.currentState.overallProgress.percentComplete}% - ${plan.currentState.overallProgress.completedPhases}/${plan.phases.length} phases, ${plan.currentState.overallProgress.completedTodos}/${plan.currentState.overallProgress.totalTodos} tasks`);
723
+ lines.push(` Progress: ${plan.currentState.overallProgress.percentComplete}% - ${plan.currentState.overallProgress.completedFeatures}/${plan.features.length} features, ${plan.currentState.overallProgress.completedTasks}/${plan.currentState.overallProgress.totalTasks} tasks`);
517
724
  lines.push(` Last updated: ${new Date(plan.lastUpdated).toLocaleDateString()}`);
518
725
  lines.push('');
519
726
  }
@@ -573,7 +780,7 @@ export class PlanTool {
573
780
  `✅ Switched active plan to: "${switchedPlan.title}"`,
574
781
  `Plan ID: ${switchedPlan.id}`,
575
782
  `Status: ${switchedPlan.status}`,
576
- `Progress: ${state.overallProgress.percentComplete}% (${state.overallProgress.completedPhases}/${state.overallProgress.totalPhases} phases, ${state.overallProgress.completedTodos}/${state.overallProgress.totalTodos} tasks)`,
783
+ `Progress: ${state.overallProgress.percentComplete}% (${state.overallProgress.completedFeatures}/${state.overallProgress.totalFeatures} features, ${state.overallProgress.completedTasks}/${state.overallProgress.totalTasks} tasks)`,
577
784
  '',
578
785
  'Use "plan operation=status" to see the current status.',
579
786
  ].join('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"plan.tool.js","sourceRoot":"","sources":["../../../src/tools/plan/plan.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.tool.js","sourceRoot":"","sources":["../../../src/tools/plan/plan.tool.ts"],"names":[],"mappings":"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"}