@damper/mcp 0.3.15 → 0.3.17
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 +18 -19
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -240,10 +240,12 @@ server.registerTool('get_task', {
|
|
|
240
240
|
// Tool: Update task
|
|
241
241
|
server.registerTool('update_task', {
|
|
242
242
|
title: 'Update Task',
|
|
243
|
-
description: 'Update task fields like description, implementation plan, priority, effort, quarter, labels, or visibility. ' +
|
|
244
|
-
'Useful for refining task details as you learn more about the work.'
|
|
243
|
+
description: 'Update task fields like title, description, implementation plan, priority, effort, quarter, labels, or visibility. ' +
|
|
244
|
+
'Useful for refining task details as you learn more about the work. ' +
|
|
245
|
+
'Use title to set a concise task name after planning (especially for CLI-created tasks with placeholder titles).',
|
|
245
246
|
inputSchema: z.object({
|
|
246
247
|
taskId: z.string().describe('Task ID'),
|
|
248
|
+
title: z.string().optional().describe('Concise task title (e.g., "Fix SSO redirect login flow")'),
|
|
247
249
|
description: z.string().optional().describe('Task description'),
|
|
248
250
|
implementationPlan: z.string().optional().describe('Implementation plan (markdown)'),
|
|
249
251
|
priority: z.enum(['high', 'medium', 'low']).nullable().optional().describe('Task priority'),
|
|
@@ -269,8 +271,10 @@ server.registerTool('update_task', {
|
|
|
269
271
|
idempotentHint: true,
|
|
270
272
|
openWorldHint: false,
|
|
271
273
|
},
|
|
272
|
-
}, async ({ taskId, description, implementationPlan, priority, effort, quarter, labels, isPublic }) => {
|
|
274
|
+
}, async ({ taskId, title, description, implementationPlan, priority, effort, quarter, labels, isPublic }) => {
|
|
273
275
|
const body = {};
|
|
276
|
+
if (title !== undefined)
|
|
277
|
+
body.title = title;
|
|
274
278
|
if (description !== undefined)
|
|
275
279
|
body.description = description;
|
|
276
280
|
if (implementationPlan !== undefined)
|
|
@@ -287,6 +291,8 @@ server.registerTool('update_task', {
|
|
|
287
291
|
body.isPublic = isPublic;
|
|
288
292
|
const result = await api('PATCH', `/api/agent/tasks/${taskId}`, body);
|
|
289
293
|
const updates = [];
|
|
294
|
+
if (title !== undefined)
|
|
295
|
+
updates.push(`title="${title}"`);
|
|
290
296
|
if (description !== undefined)
|
|
291
297
|
updates.push('description');
|
|
292
298
|
if (implementationPlan !== undefined)
|
|
@@ -372,10 +378,8 @@ server.registerTool('start_task', {
|
|
|
372
378
|
'Project context contains architecture and patterns you MUST follow.\n\n' +
|
|
373
379
|
'**Workflow after starting:**\n' +
|
|
374
380
|
'1. Read relevant context sections (architecture, conventions, etc.)\n' +
|
|
375
|
-
'2.
|
|
376
|
-
'3.
|
|
377
|
-
'4. add_note: "Session end: <summary, next steps>"\n' +
|
|
378
|
-
'5. complete_task (done) or abandon_task (stopping)',
|
|
381
|
+
'2. Do work, log commits with add_commit\n' +
|
|
382
|
+
'3. complete_task (done) or abandon_task (stopping)',
|
|
379
383
|
inputSchema: z.object({
|
|
380
384
|
taskId: z.string(),
|
|
381
385
|
force: z.boolean().optional().describe('Take over lock from another agent'),
|
|
@@ -430,13 +434,11 @@ server.registerTool('start_task', {
|
|
|
430
434
|
// Tool: Add note
|
|
431
435
|
server.registerTool('add_note', {
|
|
432
436
|
title: 'Add Note',
|
|
433
|
-
description: 'Add
|
|
437
|
+
description: 'Add a note to a task. Use ONLY for non-obvious approach decisions and blockers.\n\n' +
|
|
434
438
|
'**When to use:**\n' +
|
|
435
|
-
'- Session start: "Session started: implementing X"\n' +
|
|
436
439
|
'- Decisions: "Decision: Using X because Y"\n' +
|
|
437
|
-
'-
|
|
438
|
-
'**
|
|
439
|
-
'**Important:** Always log session end before complete_task or abandon_task.',
|
|
440
|
+
'- Blockers: "Blocked: X needs Y before we can proceed"\n\n' +
|
|
441
|
+
'**Do NOT use for:** Session start/end ceremony, commit logging (use `add_commit`), or restating what code changes do.',
|
|
440
442
|
inputSchema: z.object({
|
|
441
443
|
taskId: z.string(),
|
|
442
444
|
note: z.string(),
|
|
@@ -569,16 +571,15 @@ const DocumentationSchema = z.object({
|
|
|
569
571
|
// Tool: Complete task
|
|
570
572
|
server.registerTool('complete_task', {
|
|
571
573
|
title: 'Complete Task',
|
|
572
|
-
description: 'Mark task done with summary. Optionally log final commits at completion.\n\n' +
|
|
574
|
+
description: 'Mark task done with a brief one-line summary. Optionally log final commits at completion.\n\n' +
|
|
573
575
|
'**Before calling:**\n' +
|
|
574
576
|
'1. Push all commits\n' +
|
|
575
|
-
'2.
|
|
576
|
-
'3. Check if project context docs need updating\n\n' +
|
|
577
|
+
'2. Check if project context docs need updating\n\n' +
|
|
577
578
|
'**Commits:** Pass commits array to log them at completion (convenience for final commits).\n\n' +
|
|
578
579
|
'Returns documentation update suggestions.',
|
|
579
580
|
inputSchema: z.object({
|
|
580
581
|
taskId: z.string(),
|
|
581
|
-
summary: z.string().describe('
|
|
582
|
+
summary: z.string().describe('Brief one-line summary of what was done'),
|
|
582
583
|
commits: z.array(z.object({
|
|
583
584
|
hash: z.string().describe('Commit hash (short or full)'),
|
|
584
585
|
message: z.string().describe('Commit message'),
|
|
@@ -607,8 +608,7 @@ server.registerTool('abandon_task', {
|
|
|
607
608
|
title: 'Abandon Task',
|
|
608
609
|
description: 'Release lock and return task to planned status. Use when stopping work.\n\n' +
|
|
609
610
|
'**Before calling:**\n' +
|
|
610
|
-
'1. Push any WIP commits\n' +
|
|
611
|
-
'2. add_note: "Session end: <progress, blockers, next steps>"\n\n' +
|
|
611
|
+
'1. Push any WIP commits\n\n' +
|
|
612
612
|
'**Summary parameter:** What was done, what remains, blockers. Helps the next agent.',
|
|
613
613
|
inputSchema: z.object({
|
|
614
614
|
taskId: z.string(),
|
|
@@ -686,7 +686,6 @@ This project uses Damper MCP for task tracking. **You MUST follow this workflow.
|
|
|
686
686
|
- \`publish_changelog\` - Publish with optional email notifications and Twitter posting
|
|
687
687
|
|
|
688
688
|
### At Session End (MANDATORY)
|
|
689
|
-
- ALWAYS call \`add_note\` with session summary before stopping
|
|
690
689
|
- ALWAYS call \`complete_task\` (if done) or \`abandon_task\` (if stopping early)
|
|
691
690
|
- NEVER leave a started task without completing or abandoning it
|
|
692
691
|
- If you learned something about the codebase, consider updating project context
|