@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.
- package/dist/cli/cli-factory.d.ts.map +1 -1
- package/dist/cli/cli-factory.js +49 -0
- package/dist/cli/cli-factory.js.map +1 -1
- package/dist/cli/commands/track-commit.command.d.ts +40 -0
- package/dist/cli/commands/track-commit.command.d.ts.map +1 -0
- package/dist/cli/commands/track-commit.command.js +144 -0
- package/dist/cli/commands/track-commit.command.js.map +1 -0
- package/dist/prompts/planning/planning.prompt.js +41 -41
- package/dist/prompts/planning/planning.prompt.js.map +1 -1
- package/dist/services/agent-manager.d.ts.map +1 -1
- package/dist/services/agent-manager.js +5 -2
- package/dist/services/agent-manager.js.map +1 -1
- package/dist/services/analyse-service.d.ts +30 -0
- package/dist/services/analyse-service.d.ts.map +1 -1
- package/dist/services/analyse-service.js +176 -3
- package/dist/services/analyse-service.js.map +1 -1
- package/dist/services/repo-service.d.ts +26 -2
- package/dist/services/repo-service.d.ts.map +1 -1
- package/dist/services/repo-service.js +192 -8
- package/dist/services/repo-service.js.map +1 -1
- package/dist/tools/persona/as.tool.d.ts.map +1 -1
- package/dist/tools/persona/as.tool.js +11 -3
- package/dist/tools/persona/as.tool.js.map +1 -1
- package/dist/tools/plan/plan.tool.d.ts +2 -0
- package/dist/tools/plan/plan.tool.d.ts.map +1 -1
- package/dist/tools/plan/plan.tool.js +278 -71
- package/dist/tools/plan/plan.tool.js.map +1 -1
- package/dist/utils/package-version.d.ts +11 -0
- package/dist/utils/package-version.d.ts.map +1 -0
- package/dist/utils/package-version.js +26 -0
- package/dist/utils/package-version.js.map +1 -0
- package/package.json +4 -3
- package/templates/adr/0001-record-architecture-decisions.md +223 -0
- package/templates/adr/ADR_CREATION_INSTRUCTIONS.md +234 -0
- package/templates/adr/README.md +243 -0
- package/templates/adr/adr-schema.json +74 -0
- package/templates/adr/adr-template.md +136 -0
- package/templates/prd/PRD_CREATION_INSTRUCTIONS.md +268 -0
- package/templates/prd/README.md +252 -0
- package/templates/prd/_template/feature-template.md +105 -0
- package/templates/prd/_template/prd-template.md +126 -0
- package/templates/prd/example-task-management/features/task-collaboration.md +84 -0
- package/templates/prd/example-task-management/features/task-crud.md +222 -0
- package/templates/prd/example-task-management/features/task-workflow.md +62 -0
- package/templates/prd/example-task-management/prd.md +177 -0
- package/templates/prd/feature-schema.json +54 -0
- 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
|
-
|
|
25
|
+
taskId: z.string().optional(),
|
|
20
26
|
}))
|
|
21
27
|
.optional(),
|
|
22
|
-
|
|
28
|
+
addFeature: z
|
|
23
29
|
.object({
|
|
24
30
|
title: z.string(),
|
|
25
31
|
description: z.string(),
|
|
26
32
|
})
|
|
27
33
|
.optional(),
|
|
28
|
-
|
|
34
|
+
updateFeature: z
|
|
29
35
|
.object({
|
|
30
|
-
|
|
36
|
+
featureNumber: z.number(),
|
|
31
37
|
status: z.enum(['pending', 'in_progress', 'completed']).optional(),
|
|
32
|
-
|
|
33
|
-
|
|
38
|
+
addTask: z.string().optional(),
|
|
39
|
+
completeTask: z.string().optional(),
|
|
34
40
|
// Bulk operations
|
|
35
|
-
|
|
36
|
-
|
|
41
|
+
addTasks: z.array(z.string()).optional(),
|
|
42
|
+
completeTasks: z.array(z.string()).optional(),
|
|
37
43
|
})
|
|
38
44
|
.optional(),
|
|
39
|
-
// Support for updating multiple
|
|
40
|
-
|
|
45
|
+
// Support for updating multiple features
|
|
46
|
+
updateFeatures: z
|
|
41
47
|
.array(z.object({
|
|
42
|
-
|
|
48
|
+
featureNumber: z.number(),
|
|
43
49
|
status: z.enum(['pending', 'in_progress', 'completed']).optional(),
|
|
44
|
-
|
|
45
|
-
|
|
50
|
+
addTask: z.string().optional(),
|
|
51
|
+
completeTask: z.string().optional(),
|
|
46
52
|
// Bulk operations
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
⚡
|
|
118
|
+
⚡ PRD-BASED PLANNING: Creates Product Requirement Documents (PRDs) with structured features and task tracking.
|
|
79
119
|
|
|
80
120
|
✅ OPERATIONS:
|
|
81
|
-
• accept: Create
|
|
82
|
-
•
|
|
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.
|
|
94
|
-
2.
|
|
95
|
-
3.
|
|
96
|
-
4. Creates
|
|
97
|
-
5.
|
|
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
|
-
•
|
|
101
|
-
•
|
|
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
|
-
📝
|
|
106
|
-
•
|
|
107
|
-
•
|
|
108
|
-
•
|
|
109
|
-
•
|
|
110
|
-
• Use bulk operations
|
|
111
|
-
-
|
|
112
|
-
-
|
|
113
|
-
-
|
|
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', '
|
|
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
|
|
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
|
-
|
|
211
|
+
taskId: { type: 'string' },
|
|
148
212
|
},
|
|
149
213
|
required: ['description', 'severity'],
|
|
150
214
|
},
|
|
151
215
|
},
|
|
152
|
-
|
|
216
|
+
addFeature: {
|
|
153
217
|
type: 'object',
|
|
154
218
|
properties: {
|
|
155
219
|
title: { type: 'string' },
|
|
156
220
|
description: { type: 'string' },
|
|
157
221
|
},
|
|
158
222
|
},
|
|
159
|
-
|
|
223
|
+
updateFeature: {
|
|
160
224
|
type: 'object',
|
|
161
225
|
properties: {
|
|
162
|
-
|
|
226
|
+
featureNumber: { type: 'number' },
|
|
163
227
|
status: { type: 'string', enum: ['pending', 'in_progress', 'completed'] },
|
|
164
|
-
|
|
165
|
-
|
|
228
|
+
addTask: { type: 'string' },
|
|
229
|
+
completeTask: { type: 'string' },
|
|
166
230
|
},
|
|
167
231
|
},
|
|
168
232
|
},
|
|
169
|
-
description: 'Updates to apply to the plan. Use exact
|
|
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.
|
|
288
|
-
...plan.
|
|
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
|
|
298
|
-
'2. Update
|
|
299
|
-
'3. Add new
|
|
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
|
-
|
|
309
|
-
|
|
409
|
+
updateFeature: {
|
|
410
|
+
featureNumber: 1,
|
|
310
411
|
status: 'in_progress',
|
|
311
|
-
|
|
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
|
-
|
|
323
|
-
|
|
423
|
+
updateFeature: {
|
|
424
|
+
featureNumber: 1,
|
|
324
425
|
status: 'completed',
|
|
325
|
-
|
|
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
|
|
432
|
+
'**Multiple feature updates:**',
|
|
332
433
|
'```json',
|
|
333
434
|
JSON.stringify({
|
|
334
435
|
operation: 'update',
|
|
335
436
|
updates: {
|
|
336
|
-
|
|
437
|
+
updateFeatures: [
|
|
337
438
|
{
|
|
338
|
-
|
|
439
|
+
featureNumber: 1,
|
|
339
440
|
status: 'completed',
|
|
340
|
-
|
|
441
|
+
completeTasks: ['Task 1', 'Task 2'],
|
|
341
442
|
},
|
|
342
443
|
{
|
|
343
|
-
|
|
444
|
+
featureNumber: 2,
|
|
344
445
|
status: 'in_progress',
|
|
345
|
-
|
|
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
|
-
|
|
628
|
+
features: [],
|
|
422
629
|
metadata: {
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
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.
|
|
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.
|
|
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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"}
|