@damper/mcp 0.10.7 → 0.11.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/dist/index.js +20 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -84,6 +84,7 @@ const TaskDetailSchema = z.object({
|
|
|
84
84
|
description: z.string().nullable().optional(),
|
|
85
85
|
type: z.string(),
|
|
86
86
|
implementationPlan: z.string().nullable().optional(),
|
|
87
|
+
userStories: z.string().nullable().optional(),
|
|
87
88
|
status: z.string(),
|
|
88
89
|
priority: z.string().nullable().optional(),
|
|
89
90
|
effort: z.string().nullable().optional(),
|
|
@@ -235,6 +236,8 @@ server.registerTool('get_task', {
|
|
|
235
236
|
parts.push(meta.join(' | '));
|
|
236
237
|
if (t.description)
|
|
237
238
|
parts.push(`\n## Description\n${t.description}`);
|
|
239
|
+
if (t.userStories)
|
|
240
|
+
parts.push(`\n## User Stories\n${t.userStories}`);
|
|
238
241
|
if (t.implementationPlan)
|
|
239
242
|
parts.push(`\n## Plan\n${t.implementationPlan}`);
|
|
240
243
|
// Show subtasks
|
|
@@ -284,6 +287,8 @@ server.registerTool('update_task', {
|
|
|
284
287
|
description: z.string().optional().describe('Task description (shown on public roadmap). Write for end users: 1-3 sentences on what changes and why it matters. ' +
|
|
285
288
|
'No code references, file paths, or jargon.'),
|
|
286
289
|
implementationPlan: z.string().optional().describe('Implementation plan (markdown, internal only - never shown publicly)'),
|
|
290
|
+
userStories: z.string().optional().describe('User stories describing how users interact with the feature (markdown, internal only). ' +
|
|
291
|
+
'Format: "As a [role], I [action] so that [benefit]." Include UI flows, buttons clicked, pages visited, API calls made.'),
|
|
287
292
|
reviewInstructions: z.string().optional().describe('Review instructions (markdown, internal only). What the reviewer should test, verify, or check. ' +
|
|
288
293
|
'Write specific, actionable steps — not a restatement of what was done.'),
|
|
289
294
|
priority: z.enum(['high', 'medium', 'low']).nullable().optional().describe('Task priority'),
|
|
@@ -297,6 +302,7 @@ server.registerTool('update_task', {
|
|
|
297
302
|
title: z.string(),
|
|
298
303
|
description: z.string().nullable().optional(),
|
|
299
304
|
implementationPlan: z.string().nullable().optional(),
|
|
305
|
+
userStories: z.string().nullable().optional(),
|
|
300
306
|
reviewInstructions: z.string().nullable().optional(),
|
|
301
307
|
priority: z.string().nullable().optional(),
|
|
302
308
|
effort: z.string().nullable().optional(),
|
|
@@ -310,7 +316,7 @@ server.registerTool('update_task', {
|
|
|
310
316
|
idempotentHint: true,
|
|
311
317
|
openWorldHint: false,
|
|
312
318
|
},
|
|
313
|
-
}, async ({ taskId, title, description, implementationPlan, reviewInstructions, priority, effort, quarter, labels, isPublic }) => {
|
|
319
|
+
}, async ({ taskId, title, description, implementationPlan, userStories, reviewInstructions, priority, effort, quarter, labels, isPublic }) => {
|
|
314
320
|
const body = {};
|
|
315
321
|
if (title !== undefined)
|
|
316
322
|
body.title = title;
|
|
@@ -318,6 +324,8 @@ server.registerTool('update_task', {
|
|
|
318
324
|
body.description = description;
|
|
319
325
|
if (implementationPlan !== undefined)
|
|
320
326
|
body.implementationPlan = implementationPlan;
|
|
327
|
+
if (userStories !== undefined)
|
|
328
|
+
body.userStories = userStories;
|
|
321
329
|
if (reviewInstructions !== undefined)
|
|
322
330
|
body.reviewInstructions = reviewInstructions;
|
|
323
331
|
if (priority !== undefined)
|
|
@@ -338,6 +346,8 @@ server.registerTool('update_task', {
|
|
|
338
346
|
updates.push('description');
|
|
339
347
|
if (implementationPlan !== undefined)
|
|
340
348
|
updates.push('plan');
|
|
349
|
+
if (userStories !== undefined)
|
|
350
|
+
updates.push('userStories');
|
|
341
351
|
if (reviewInstructions !== undefined)
|
|
342
352
|
updates.push('reviewInstructions');
|
|
343
353
|
if (priority !== undefined)
|
|
@@ -357,6 +367,7 @@ server.registerTool('update_task', {
|
|
|
357
367
|
title: result.title,
|
|
358
368
|
description: result.description,
|
|
359
369
|
implementationPlan: result.implementationPlan,
|
|
370
|
+
userStories: result.userStories,
|
|
360
371
|
reviewInstructions: result.reviewInstructions,
|
|
361
372
|
priority: result.priority,
|
|
362
373
|
effort: result.effort,
|
|
@@ -380,6 +391,8 @@ server.registerTool('create_task', {
|
|
|
380
391
|
status: z.enum(['planned', 'in_progress', 'in_review', 'done']).optional(),
|
|
381
392
|
priority: z.enum(['high', 'medium', 'low']).optional().describe('Task priority'),
|
|
382
393
|
implementationPlan: z.string().optional().describe('Implementation plan (markdown, internal only - never shown publicly)'),
|
|
394
|
+
userStories: z.string().optional().describe('User stories describing how users interact with the feature (markdown, internal only). ' +
|
|
395
|
+
'Format: "As a [role], I [action] so that [benefit]." Include UI flows, buttons clicked, pages visited, API calls made.'),
|
|
383
396
|
isPublic: z.boolean().optional().describe('Whether task is visible on public roadmap (default: true)'),
|
|
384
397
|
}),
|
|
385
398
|
outputSchema: z.object({
|
|
@@ -898,6 +911,12 @@ All content you generate — titles, descriptions, changelogs, notes — should
|
|
|
898
911
|
- 1-3 sentences explaining what changes and why it matters to users
|
|
899
912
|
- Focus on the user benefit, not implementation details
|
|
900
913
|
|
|
914
|
+
**User stories** (internal, never shown publicly):
|
|
915
|
+
- Describe how users interact with the feature — UI flows, buttons clicked, pages visited, API endpoints called
|
|
916
|
+
- Format: "As a [role], I [action] so that [benefit]"
|
|
917
|
+
- Include step-by-step flows where helpful
|
|
918
|
+
- Bridges the gap between description (what) and implementation plan (how)
|
|
919
|
+
|
|
901
920
|
**Subtask titles:**
|
|
902
921
|
- Short imperative phrase: "Add validation to login form"
|
|
903
922
|
- Specific enough to track independently
|