@vibescope/mcp-server 0.2.9 → 0.3.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.
Files changed (95) hide show
  1. package/CHANGELOG.md +84 -84
  2. package/README.md +194 -194
  3. package/dist/api-client.d.ts +36 -0
  4. package/dist/api-client.js +34 -0
  5. package/dist/cli.d.ts +1 -1
  6. package/dist/cli.js +30 -38
  7. package/dist/handlers/discovery.js +2 -0
  8. package/dist/handlers/session.d.ts +11 -0
  9. package/dist/handlers/session.js +101 -0
  10. package/dist/handlers/tasks.d.ts +8 -0
  11. package/dist/handlers/tasks.js +163 -3
  12. package/dist/handlers/tool-docs.js +840 -828
  13. package/dist/handlers/validation.js +45 -2
  14. package/dist/index.js +73 -73
  15. package/dist/setup.js +6 -6
  16. package/dist/templates/agent-guidelines.js +185 -185
  17. package/dist/templates/help-content.js +1622 -1544
  18. package/dist/tools.js +126 -74
  19. package/dist/utils.d.ts +15 -11
  20. package/dist/utils.js +53 -28
  21. package/docs/TOOLS.md +2406 -2053
  22. package/package.json +51 -51
  23. package/scripts/generate-docs.ts +212 -212
  24. package/scripts/version-bump.ts +203 -203
  25. package/src/api-client.test.ts +723 -723
  26. package/src/api-client.ts +2561 -2499
  27. package/src/cli.test.ts +24 -8
  28. package/src/cli.ts +204 -212
  29. package/src/handlers/__test-setup__.ts +236 -236
  30. package/src/handlers/__test-utils__.ts +87 -87
  31. package/src/handlers/blockers.test.ts +468 -468
  32. package/src/handlers/blockers.ts +163 -163
  33. package/src/handlers/bodies-of-work.test.ts +704 -704
  34. package/src/handlers/bodies-of-work.ts +526 -526
  35. package/src/handlers/connectors.test.ts +834 -834
  36. package/src/handlers/connectors.ts +229 -229
  37. package/src/handlers/cost.test.ts +462 -462
  38. package/src/handlers/cost.ts +285 -285
  39. package/src/handlers/decisions.test.ts +382 -382
  40. package/src/handlers/decisions.ts +153 -153
  41. package/src/handlers/deployment.test.ts +551 -551
  42. package/src/handlers/deployment.ts +541 -541
  43. package/src/handlers/discovery.test.ts +206 -206
  44. package/src/handlers/discovery.ts +392 -390
  45. package/src/handlers/fallback.test.ts +537 -537
  46. package/src/handlers/fallback.ts +194 -194
  47. package/src/handlers/file-checkouts.test.ts +750 -750
  48. package/src/handlers/file-checkouts.ts +185 -185
  49. package/src/handlers/findings.test.ts +633 -633
  50. package/src/handlers/findings.ts +239 -239
  51. package/src/handlers/git-issues.test.ts +631 -631
  52. package/src/handlers/git-issues.ts +136 -136
  53. package/src/handlers/ideas.test.ts +644 -644
  54. package/src/handlers/ideas.ts +207 -207
  55. package/src/handlers/index.ts +84 -84
  56. package/src/handlers/milestones.test.ts +475 -475
  57. package/src/handlers/milestones.ts +180 -180
  58. package/src/handlers/organizations.test.ts +826 -826
  59. package/src/handlers/organizations.ts +315 -315
  60. package/src/handlers/progress.test.ts +269 -269
  61. package/src/handlers/progress.ts +77 -77
  62. package/src/handlers/project.test.ts +546 -546
  63. package/src/handlers/project.ts +239 -239
  64. package/src/handlers/requests.test.ts +303 -303
  65. package/src/handlers/requests.ts +99 -99
  66. package/src/handlers/roles.test.ts +305 -305
  67. package/src/handlers/roles.ts +219 -219
  68. package/src/handlers/session.test.ts +998 -875
  69. package/src/handlers/session.ts +839 -730
  70. package/src/handlers/sprints.test.ts +732 -732
  71. package/src/handlers/sprints.ts +537 -537
  72. package/src/handlers/tasks.test.ts +931 -907
  73. package/src/handlers/tasks.ts +1121 -945
  74. package/src/handlers/tool-categories.test.ts +66 -66
  75. package/src/handlers/tool-docs.ts +1109 -1096
  76. package/src/handlers/types.test.ts +259 -259
  77. package/src/handlers/types.ts +175 -175
  78. package/src/handlers/validation.test.ts +582 -582
  79. package/src/handlers/validation.ts +159 -113
  80. package/src/index.test.ts +674 -0
  81. package/src/index.ts +792 -792
  82. package/src/setup.test.ts +233 -233
  83. package/src/setup.ts +404 -403
  84. package/src/templates/agent-guidelines.ts +210 -210
  85. package/src/templates/help-content.ts +1751 -1673
  86. package/src/token-tracking.test.ts +463 -463
  87. package/src/token-tracking.ts +166 -166
  88. package/src/tools.test.ts +416 -0
  89. package/src/tools.ts +3607 -3555
  90. package/src/utils.test.ts +785 -683
  91. package/src/utils.ts +469 -436
  92. package/src/validators.test.ts +223 -223
  93. package/src/validators.ts +249 -249
  94. package/tsconfig.json +16 -16
  95. package/vitest.config.ts +14 -14
@@ -1,1096 +1,1109 @@
1
- /**
2
- * Tool Documentation
3
- *
4
- * Externalized documentation for all MCP tools.
5
- * This file is lazy-loaded by get_tool_info to save tokens.
6
- *
7
- * Token savings: ~8,000 tokens per schema load when this isn't bundled.
8
- */
9
-
10
- export const TOOL_INFO: Record<string, string> = {
11
- start_work_session: `# start_work_session
12
- Initialize agent session and get assigned work.
13
-
14
- **Parameters:**
15
- - project_id (optional): Project UUID
16
- - git_url (optional): Git URL to find project
17
- - mode: 'lite' (default) or 'full' for complete context
18
-
19
- **Returns:** session_id, persona, project info, next_task
20
-
21
- **Example:** start_work_session(git_url: "https://github.com/org/repo")`,
22
-
23
- get_help: `# get_help
24
- Get workflow guidance on specific topics.
25
-
26
- **Parameters:**
27
- - topic (required): One of: getting_started, tasks, validation, deployment, git, blockers, milestones, fallback, session, tokens, topics
28
-
29
- **Example:** get_help(topic: "deployment")`,
30
-
31
- get_token_usage: `# get_token_usage
32
- Get token usage statistics for current session.
33
-
34
- **Returns:** total calls, total tokens, breakdown by tool, averages`,
35
-
36
- heartbeat: `# heartbeat
37
- Send heartbeat to maintain active status. Call every 30-60 seconds.
38
-
39
- **Parameters:**
40
- - session_id (optional): Uses current session if not provided
41
- - current_worktree_path (optional): Report your current git worktree path (e.g., "../project-task-abc123")`,
42
-
43
- end_work_session: `# end_work_session
44
- End session and release claimed tasks.
45
-
46
- **Parameters:**
47
- - session_id (optional): Uses current session if not provided
48
-
49
- **Returns:** Session summary with tasks completed, time spent`,
50
-
51
- get_project_context: `# get_project_context
52
- Get full project context including goals, instructions, tasks, blockers, decisions.
53
-
54
- **Parameters:**
55
- - project_id (optional): Project UUID
56
- - git_url (optional): Git URL to find project
57
-
58
- Without params, lists all projects.`,
59
-
60
- get_git_workflow: `# get_git_workflow
61
- Get git workflow config and branching instructions.
62
-
63
- **Parameters:**
64
- - project_id (required): Project UUID
65
- - task_id (optional): Include branch naming suggestion
66
-
67
- **Returns:** workflow type, branch names, auto-settings`,
68
-
69
- create_project: `# create_project
70
- Create a new project to track.
71
-
72
- **Parameters:**
73
- - name (required): Project display name
74
- - description: Brief description
75
- - goal: What "done" looks like
76
- - git_url: Repository URL
77
- - tech_stack: Array of technologies`,
78
-
79
- update_project: `# update_project
80
- Update project settings.
81
-
82
- **Parameters:**
83
- - project_id (required): Project UUID
84
- - name, description, goal, git_url, tech_stack, status
85
- - git_workflow: none, trunk-based, github-flow, git-flow
86
- - git_main_branch, git_develop_branch, git_auto_branch, git_auto_tag`,
87
-
88
- update_project_readme: `# update_project_readme
89
- Sync README content to the dashboard.
90
-
91
- **Parameters:**
92
- - project_id (required): Project UUID
93
- - readme_content (required): Markdown content`,
94
-
95
- get_task: `# get_task
96
- Get a single task by ID with optional subtasks and milestones.
97
-
98
- **Parameters:**
99
- - task_id (required): Task UUID
100
- - include_subtasks (optional): Include subtasks array (default: false)
101
- - include_milestones (optional): Include milestones array (default: false)`,
102
-
103
- search_tasks: `# search_tasks
104
- Search tasks by text query. Supports pagination.
105
-
106
- **Parameters:**
107
- - project_id (required): Project UUID
108
- - query (required): Search query (min 2 chars)
109
- - status (optional): Array of statuses to filter
110
- - limit (optional): Max results per page (1-20, default: 10)
111
- - offset (optional): Number of results to skip (default: 0)
112
-
113
- **Returns:**
114
- - tasks: Array of matching tasks
115
- - total_matches: Total number of matching tasks
116
- - has_more: Whether more results exist beyond current page
117
- - offset: Current offset
118
- - limit: Current limit`,
119
-
120
- get_tasks_by_priority: `# get_tasks_by_priority
121
- Get tasks filtered by priority. Supports pagination.
122
-
123
- **Parameters:**
124
- - project_id (required): Project UUID
125
- - priority (optional): Exact priority (1-5)
126
- - priority_max (optional): Max priority for range query
127
- - status (optional): Filter by status (default: pending)
128
- - limit (optional): Max results per page (1-20, default: 10)
129
- - offset (optional): Number of results to skip (default: 0)
130
-
131
- **Returns:**
132
- - tasks: Array of matching tasks
133
- - total_count: Total number of matching tasks
134
- - has_more: Whether more results exist beyond current page
135
- - offset: Current offset
136
- - limit: Current limit`,
137
-
138
- get_recent_tasks: `# get_recent_tasks
139
- Get tasks ordered by creation date. Supports pagination.
140
-
141
- **Parameters:**
142
- - project_id (required): Project UUID
143
- - order (optional): 'newest' or 'oldest' (default: newest)
144
- - status (optional): Filter by status
145
- - limit (optional): Max results per page (1-20, default: 10)
146
- - offset (optional): Number of results to skip (default: 0)
147
-
148
- **Returns:**
149
- - tasks: Array of matching tasks
150
- - total_count: Total number of matching tasks
151
- - has_more: Whether more results exist beyond current page
152
- - offset: Current offset
153
- - limit: Current limit`,
154
-
155
- get_task_stats: `# get_task_stats
156
- Get aggregate task statistics. Most token-efficient way to understand project state.
157
-
158
- **Parameters:**
159
- - project_id (required): Project UUID
160
-
161
- **Returns:** Counts by status and priority, no task data`,
162
-
163
- get_next_task: `# get_next_task
164
- Get highest priority pending task not claimed by another agent.
165
-
166
- **Parameters:**
167
- - project_id (required): Project UUID
168
-
169
- **Returns:** task or null, may suggest fallback activity`,
170
-
171
- add_task: `# add_task
172
- Create a new task.
173
-
174
- **Parameters:**
175
- - project_id (required): Project UUID
176
- - title (required): Task title
177
- - description: Detailed description
178
- - priority: 1-5 (1=highest, default 3)
179
- - estimated_minutes: Time estimate`,
180
-
181
- update_task: `# update_task
182
- Update task status, progress, or details.
183
-
184
- **Parameters:**
185
- - task_id (required): Task UUID
186
- - status: pending, in_progress, completed, cancelled
187
- - progress_percentage: 0-100
188
- - progress_note: Brief note (auto-logged)
189
- - title, description, priority, estimated_minutes, git_branch
190
-
191
- **Best practice:** Include progress_note with progress_percentage`,
192
-
193
- complete_task: `# complete_task
194
- Mark task as done.
195
-
196
- **Parameters:**
197
- - task_id (required): Task UUID
198
- - summary: What was done
199
-
200
- **Returns:** next_task, validation_count, blockers_count, deployment_priority`,
201
-
202
- delete_task: `# delete_task
203
- Delete a task.
204
-
205
- **Parameters:**
206
- - task_id (required): Task UUID`,
207
-
208
- cancel_task: `# cancel_task
209
- Cancel a task with an optional reason. Use this when a task should be marked as cancelled rather than deleted (e.g., PR was closed, work was superseded). The task remains visible with a cancelled status for historical tracking.
210
-
211
- **Parameters:**
212
- - task_id (required): Task UUID
213
- - cancelled_reason (optional): One of: pr_closed, superseded, user_cancelled, validation_failed, obsolete, blocked
214
- - cancellation_note (optional): Additional context about the cancellation
215
-
216
- **Returns:** task_id, cancelled_reason, message, sprint info (if auto-completed)
217
-
218
- **Example:** cancel_task(task_id: "abc", cancelled_reason: "pr_closed", cancellation_note: "PR was closed without merging")`,
219
-
220
- batch_update_tasks: `# batch_update_tasks
221
- Update multiple tasks at once.
222
-
223
- **Parameters:**
224
- - updates (required): Array of {task_id, status?, progress_percentage?, progress_note?, priority?}`,
225
-
226
- batch_complete_tasks: `# batch_complete_tasks
227
- Complete multiple tasks at once.
228
-
229
- **Parameters:**
230
- - completions (required): Array of {task_id, summary?}`,
231
-
232
- add_task_reference: `# add_task_reference
233
- Add a reference URL to a task.
234
-
235
- **Parameters:**
236
- - task_id (required): Task UUID
237
- - url (required): Reference URL
238
- - label (optional): Display label`,
239
-
240
- remove_task_reference: `# remove_task_reference
241
- Remove a reference URL from a task.
242
-
243
- **Parameters:**
244
- - task_id (required): Task UUID
245
- - url (required): URL to remove`,
246
-
247
- add_milestone: `# add_milestone
248
- Add a milestone/step to a task.
249
-
250
- **Parameters:**
251
- - task_id (required): Task UUID
252
- - title (required): Milestone title
253
- - description (optional): Details
254
- - order_index (optional): Position (0-based)`,
255
-
256
- update_milestone: `# update_milestone
257
- Update a milestone.
258
-
259
- **Parameters:**
260
- - milestone_id (required): Milestone UUID
261
- - title, description, status (pending/in_progress/completed), order_index`,
262
-
263
- complete_milestone: `# complete_milestone
264
- Mark milestone as completed.
265
-
266
- **Parameters:**
267
- - milestone_id (required): Milestone UUID`,
268
-
269
- delete_milestone: `# delete_milestone
270
- Delete a milestone.
271
-
272
- **Parameters:**
273
- - milestone_id (required): Milestone UUID`,
274
-
275
- get_milestones: `# get_milestones
276
- Get all milestones for a task.
277
-
278
- **Parameters:**
279
- - task_id (required): Task UUID`,
280
-
281
- log_progress: `# log_progress
282
- Record a progress update.
283
-
284
- **Parameters:**
285
- - project_id (required): Project UUID
286
- - summary (required): Brief summary
287
- - task_id (optional): Link to task
288
- - details (optional): Extended notes`,
289
-
290
- get_activity_feed: `# get_activity_feed
291
- Get combined activity feed.
292
-
293
- **Parameters:**
294
- - project_id (required): Project UUID
295
- - types (optional): Array of task, progress, blocker, decision
296
- - created_by (optional): agent or user
297
- - since (optional): ISO date string
298
- - limit (optional): Max items (default 50)`,
299
-
300
- add_blocker: `# add_blocker
301
- Record a blocker preventing progress.
302
-
303
- **Parameters:**
304
- - project_id (required): Project UUID
305
- - description (required): What is blocking`,
306
-
307
- resolve_blocker: `# resolve_blocker
308
- Mark a blocker as resolved.
309
-
310
- **Parameters:**
311
- - blocker_id (required): Blocker UUID
312
- - resolution_note (optional): How it was resolved`,
313
-
314
- get_blockers: `# get_blockers
315
- Get blockers for a project.
316
-
317
- **Parameters:**
318
- - project_id (required): Project UUID
319
- - status (optional): open or resolved (default: open)`,
320
-
321
- delete_blocker: `# delete_blocker
322
- Delete a blocker.
323
-
324
- **Parameters:**
325
- - blocker_id (required): Blocker UUID`,
326
-
327
- log_decision: `# log_decision
328
- Record an architectural decision.
329
-
330
- **Parameters:**
331
- - project_id (required): Project UUID
332
- - title (required): Decision title
333
- - description (required): What was decided
334
- - rationale (optional): Why
335
- - alternatives_considered (optional): Array of alternatives`,
336
-
337
- get_decisions: `# get_decisions
338
- Get recorded decisions.
339
-
340
- **Parameters:**
341
- - project_id (required): Project UUID`,
342
-
343
- delete_decision: `# delete_decision
344
- Delete a decision.
345
-
346
- **Parameters:**
347
- - decision_id (required): Decision UUID`,
348
-
349
- add_idea: `# add_idea
350
- Record an improvement idea.
351
-
352
- **Parameters:**
353
- - project_id (required): Project UUID
354
- - title (required): Idea title
355
- - description (optional): Details
356
- - status (optional): raw, exploring, planned, in_development, shipped`,
357
-
358
- update_idea: `# update_idea
359
- Update an idea.
360
-
361
- **Parameters:**
362
- - idea_id (required): Idea UUID
363
- - title, description, status, doc_url`,
364
-
365
- get_ideas: `# get_ideas
366
- Get recorded ideas.
367
-
368
- **Parameters:**
369
- - project_id (required): Project UUID
370
- - status (optional): Filter by status`,
371
-
372
- delete_idea: `# delete_idea
373
- Delete an idea.
374
-
375
- **Parameters:**
376
- - idea_id (required): Idea UUID`,
377
-
378
- convert_idea_to_task: `# convert_idea_to_task
379
- Convert an idea to a task. Creates a new task from the idea's title and description.
380
-
381
- **Parameters:**
382
- - idea_id (required): Idea UUID to convert
383
- - priority (optional): Task priority 1-5 (default: 3)
384
- - estimated_minutes (optional): Estimated time
385
- - update_status (optional): Update idea to 'in_development' (default: true)
386
-
387
- **Returns:**
388
- - task_id: Created task UUID
389
- - Links idea and task together`,
390
-
391
- add_finding: `# add_finding
392
- Record an audit/review finding.
393
-
394
- **Parameters:**
395
- - project_id (required): Project UUID
396
- - title (required): Finding title
397
- - category: performance, security, code_quality, accessibility, documentation, architecture, testing, other
398
- - description: Details with impact and suggested fix
399
- - severity: info, low, medium, high, critical
400
- - file_path, line_number, related_task_id (optional)`,
401
-
402
- get_findings: `# get_findings
403
- Get audit findings.
404
-
405
- **Parameters:**
406
- - project_id (required): Project UUID
407
- - category, severity, status (optional filters)
408
- - limit (optional): Max items`,
409
-
410
- update_finding: `# update_finding
411
- Update a finding.
412
-
413
- **Parameters:**
414
- - finding_id (required): Finding UUID
415
- - status: open, addressed, dismissed, wontfix
416
- - resolution_note, title, description, severity`,
417
-
418
- delete_finding: `# delete_finding
419
- Delete a finding.
420
-
421
- **Parameters:**
422
- - finding_id (required): Finding UUID`,
423
-
424
- get_tasks_awaiting_validation: `# get_tasks_awaiting_validation
425
- Get completed tasks needing validation.
426
-
427
- **Parameters:**
428
- - project_id (required): Project UUID
429
-
430
- **Returns:** Tasks with reviewing status (who's reviewing, when started)`,
431
-
432
- claim_validation: `# claim_validation
433
- Claim a completed task for review. Shows "being reviewed" on dashboard.
434
-
435
- **Parameters:**
436
- - task_id (required): Task UUID to claim
437
-
438
- **Note:** Claim before reviewing to prevent duplicate work.`,
439
-
440
- validate_task: `# validate_task
441
- Validate a completed task.
442
-
443
- **Parameters:**
444
- - task_id (required): Task UUID
445
- - approved (required): true/false
446
- - validation_notes: What was checked, issues found`,
447
-
448
- request_deployment: `# request_deployment
449
- Request a deployment.
450
-
451
- **Parameters:**
452
- - project_id (required): Project UUID
453
- - environment: development, staging, production
454
- - version_bump: patch, minor, major
455
- - notes, git_ref (optional)`,
456
-
457
- claim_deployment_validation: `# claim_deployment_validation
458
- Claim pending deployment for validation.
459
-
460
- **Parameters:**
461
- - project_id (required): Project UUID
462
-
463
- Next: Run build+tests, then call report_validation`,
464
-
465
- report_validation: `# report_validation
466
- Report build/test results.
467
-
468
- **Parameters:**
469
- - project_id (required): Project UUID
470
- - build_passed (required): boolean
471
- - tests_passed (required): boolean
472
- - error_message (if failed)`,
473
-
474
- check_deployment_status: `# check_deployment_status
475
- Get active deployment status.
476
-
477
- **Parameters:**
478
- - project_id (required): Project UUID`,
479
-
480
- start_deployment: `# start_deployment
481
- Start deployment (requires 'ready' status).
482
-
483
- **Parameters:**
484
- - project_id (required): Project UUID`,
485
-
486
- complete_deployment: `# complete_deployment
487
- Mark deployment complete.
488
-
489
- **Parameters:**
490
- - project_id (required): Project UUID
491
- - success (required): boolean
492
- - summary: What was deployed or why failed`,
493
-
494
- cancel_deployment: `# cancel_deployment
495
- Cancel active deployment.
496
-
497
- **Parameters:**
498
- - project_id (required): Project UUID
499
- - reason (optional): Why cancelled`,
500
-
501
- schedule_deployment: `# schedule_deployment
502
- Schedule a deployment for a specific time.
503
-
504
- **Parameters:**
505
- - project_id (required): Project UUID
506
- - scheduled_at (required): ISO 8601 datetime
507
- - schedule_type (optional): once, daily, weekly, monthly (default: once)
508
- - auto_trigger (optional): Whether agents auto-trigger (default: true)
509
- - environment (optional): development, staging, production (default: production)
510
- - version_bump (optional): patch, minor, major (default: patch)
511
- - notes (optional): Notes about the deployment
512
- - git_ref (optional): Git branch or commit
513
-
514
- **Example:** schedule_deployment(project_id, scheduled_at: "2025-01-15T10:00:00Z", schedule_type: "weekly")`,
515
-
516
- get_scheduled_deployments: `# get_scheduled_deployments
517
- List scheduled deployments for a project.
518
-
519
- **Parameters:**
520
- - project_id (required): Project UUID
521
- - include_disabled (optional): Include disabled schedules (default: false)`,
522
-
523
- update_scheduled_deployment: `# update_scheduled_deployment
524
- Update a scheduled deployment's configuration.
525
-
526
- **Parameters:**
527
- - schedule_id (required): Schedule UUID
528
- - scheduled_at (optional): New scheduled time
529
- - schedule_type (optional): once, daily, weekly, monthly
530
- - auto_trigger (optional): Whether to auto-trigger
531
- - enabled (optional): Enable or disable
532
- - environment, version_bump, notes, git_ref (optional)`,
533
-
534
- delete_scheduled_deployment: `# delete_scheduled_deployment
535
- Delete a scheduled deployment.
536
-
537
- **Parameters:**
538
- - schedule_id (required): Schedule UUID`,
539
-
540
- trigger_scheduled_deployment: `# trigger_scheduled_deployment
541
- Manually trigger a scheduled deployment.
542
-
543
- Creates a new deployment using the schedule's configuration.
544
- Updates schedule: last_triggered_at, trigger_count, next scheduled_at (for recurring).
545
-
546
- **Parameters:**
547
- - schedule_id (required): Schedule UUID`,
548
-
549
- check_due_deployments: `# check_due_deployments
550
- Check for scheduled deployments that are due.
551
-
552
- Returns schedules where: enabled AND auto_trigger AND scheduled_at <= NOW()
553
-
554
- Use this to find deployments to trigger when working on a project.
555
-
556
- **Parameters:**
557
- - project_id (required): Project UUID`,
558
-
559
- start_fallback_activity: `# start_fallback_activity
560
- Start background activity when no tasks.
561
-
562
- **Parameters:**
563
- - project_id (required): Project UUID
564
- - activity (required): feature_ideation, code_review, performance_audit, ux_review, cost_analysis, security_review, test_coverage, documentation_review, dependency_audit, validate_completed_tasks`,
565
-
566
- stop_fallback_activity: `# stop_fallback_activity
567
- Stop current fallback activity.
568
-
569
- **Parameters:**
570
- - project_id (required): Project UUID
571
- - summary (optional): What was accomplished`,
572
-
573
- get_activity_history: `# get_activity_history
574
- Get background activity history.
575
-
576
- **Parameters:**
577
- - project_id (required): Project UUID
578
- - activity_type (optional): Filter by type
579
- - limit (optional): Max items`,
580
-
581
- get_activity_schedules: `# get_activity_schedules
582
- Get activity schedules.
583
-
584
- **Parameters:**
585
- - project_id (required): Project UUID`,
586
-
587
- get_pending_requests: `# get_pending_requests
588
- Get unacknowledged user requests.
589
-
590
- **Parameters:**
591
- - project_id (required): Project UUID`,
592
-
593
- acknowledge_request: `# acknowledge_request
594
- Mark a request as handled.
595
-
596
- **Parameters:**
597
- - request_id (required): Request UUID`,
598
-
599
- answer_question: `# answer_question
600
- Answer a user question from dashboard.
601
-
602
- **Parameters:**
603
- - request_id (required): Request UUID
604
- - answer (required): Your answer`,
605
-
606
- discover_tools: `# discover_tools
607
- List available tools by category.
608
-
609
- **Parameters:**
610
- - category (optional): Filter to specific category
611
-
612
- Without category, returns all categories with tool counts.
613
- With category, returns tools in that category with brief descriptions.`,
614
-
615
- get_tool_info: `# get_tool_info
616
- Get detailed info for a specific tool.
617
-
618
- **Parameters:**
619
- - tool_name (required): Name of the tool
620
-
621
- Returns: full documentation, parameters, examples, best practices.`,
622
-
623
- // Organization tools
624
- list_organizations: `# list_organizations
625
- List organizations the current user belongs to.
626
-
627
- **Parameters:** None
628
-
629
- **Returns:** Array of organizations with role and joined_at`,
630
-
631
- create_organization: `# create_organization
632
- Create a new organization. You become the owner.
633
-
634
- **Parameters:**
635
- - name (required): Organization display name
636
- - description (optional): Brief description
637
- - slug (optional): URL-friendly identifier (auto-generated if not provided)
638
-
639
- **Example:** create_organization(name: "Acme Corp", description: "Our development team")`,
640
-
641
- update_organization: `# update_organization
642
- Update organization details. Requires admin role.
643
-
644
- **Parameters:**
645
- - organization_id (required): Organization UUID
646
- - name, description, logo_url (optional updates)`,
647
-
648
- delete_organization: `# delete_organization
649
- Delete an organization. Requires owner role. Removes all shares.
650
-
651
- **Parameters:**
652
- - organization_id (required): Organization UUID
653
-
654
- **Warning:** This will remove all project shares with this organization.`,
655
-
656
- list_org_members: `# list_org_members
657
- List members of an organization.
658
-
659
- **Parameters:**
660
- - organization_id (required): Organization UUID
661
-
662
- **Returns:** Array of members with role and joined_at`,
663
-
664
- invite_member: `# invite_member
665
- Invite a user to an organization by email. Requires admin role.
666
-
667
- **Parameters:**
668
- - organization_id (required): Organization UUID
669
- - email (required): Email address to invite
670
- - role (optional): admin, member, or viewer (default: member)
671
-
672
- **Returns:** Invite details with token`,
673
-
674
- update_member_role: `# update_member_role
675
- Change a member's role. Requires admin role.
676
-
677
- **Parameters:**
678
- - organization_id (required): Organization UUID
679
- - user_id (required): User UUID to update
680
- - role (required): admin, member, or viewer
681
-
682
- **Note:** Cannot change your own role or the owner's role.`,
683
-
684
- remove_member: `# remove_member
685
- Remove a member from an organization. Requires admin role.
686
-
687
- **Parameters:**
688
- - organization_id (required): Organization UUID
689
- - user_id (required): User UUID to remove
690
-
691
- **Note:** Cannot remove the owner. Their org-scoped API keys are invalidated.`,
692
-
693
- leave_organization: `# leave_organization
694
- Leave an organization.
695
-
696
- **Parameters:**
697
- - organization_id (required): Organization UUID
698
-
699
- **Note:** Owner cannot leave. Must transfer ownership or delete organization.`,
700
-
701
- share_project_with_org: `# share_project_with_org
702
- Share a project with an organization. You must own the project.
703
-
704
- **Parameters:**
705
- - project_id (required): Project UUID
706
- - organization_id (required): Organization UUID to share with
707
- - permission (optional): read, write, or admin (default: read)
708
-
709
- **Permission levels:**
710
- - read: View project and tasks
711
- - write: Add/update tasks, log progress
712
- - admin: All write permissions plus deployments`,
713
-
714
- update_project_share: `# update_project_share
715
- Update the permission level for a project share.
716
-
717
- **Parameters:**
718
- - project_id (required): Project UUID
719
- - organization_id (required): Organization UUID
720
- - permission (required): read, write, or admin`,
721
-
722
- unshare_project: `# unshare_project
723
- Remove a project share from an organization.
724
-
725
- **Parameters:**
726
- - project_id (required): Project UUID
727
- - organization_id (required): Organization UUID
728
-
729
- **Note:** Org members will lose access immediately.`,
730
-
731
- list_project_shares: `# list_project_shares
732
- List all organizations a project is shared with.
733
-
734
- **Parameters:**
735
- - project_id (required): Project UUID
736
-
737
- **Returns:** Array of shares with organization info and permission level`,
738
-
739
- // Cost monitoring tools
740
- get_cost_summary: `# get_cost_summary
741
- Get cost summary (daily/weekly/monthly) for a project.
742
-
743
- **Parameters:**
744
- - project_id (required): Project UUID
745
- - period: 'daily' | 'weekly' | 'monthly' (default: daily)
746
- - limit: Max records to return (default: 30)
747
-
748
- **Returns:** Cost summary with totals and breakdown by model`,
749
-
750
- get_cost_alerts: `# get_cost_alerts
751
- Get cost alerts for the current user.
752
-
753
- **Parameters:**
754
- - project_id (optional): Filter by project
755
-
756
- **Returns:** Array of configured cost alerts`,
757
-
758
- add_cost_alert: `# add_cost_alert
759
- Add a cost threshold alert.
760
-
761
- **Parameters:**
762
- - project_id (optional): Specific project or null for all
763
- - threshold_amount (required): Amount in USD
764
- - threshold_period (required): 'daily' | 'weekly' | 'monthly'
765
- - alert_type: 'warning' | 'critical' (default: warning)
766
-
767
- **Example:** add_cost_alert(threshold_amount: 50, threshold_period: "daily", alert_type: "warning")`,
768
-
769
- update_cost_alert: `# update_cost_alert
770
- Update an existing cost alert.
771
-
772
- **Parameters:**
773
- - alert_id (required): Alert UUID
774
- - threshold_amount: New amount in USD
775
- - threshold_period: New period
776
- - alert_type: New alert type
777
- - enabled: Enable/disable the alert`,
778
-
779
- delete_cost_alert: `# delete_cost_alert
780
- Delete a cost alert.
781
-
782
- **Parameters:**
783
- - alert_id (required): Alert UUID to delete`,
784
-
785
- get_task_costs: `# get_task_costs
786
- Get cost breakdown by task for a project.
787
-
788
- **Parameters:**
789
- - project_id (required): Project UUID
790
- - limit: Max tasks to return (default: 20)
791
-
792
- **Returns:** Tasks sorted by estimated cost with model breakdown`,
793
-
794
- // Subtasks
795
- add_subtask: `# add_subtask
796
- Add a subtask to break down a larger task.
797
-
798
- **Parameters:**
799
- - parent_task_id (required): UUID of the parent task
800
- - title (required): Subtask title
801
- - description (optional): Detailed description
802
- - priority (optional): 1-5 (defaults to parent priority)
803
- - estimated_minutes (optional): Time estimate
804
-
805
- **Note:** Max depth is 1 (subtasks cannot have their own subtasks).`,
806
-
807
- get_subtasks: `# get_subtasks
808
- Get subtasks for a parent task.
809
-
810
- **Parameters:**
811
- - parent_task_id (required): UUID of the parent task
812
- - status (optional): Filter by status
813
-
814
- **Returns:** Subtasks with aggregate completion stats.`,
815
-
816
- // Bodies of work
817
- create_body_of_work: `# create_body_of_work
818
- Create a new body of work to group tasks into phases.
819
-
820
- **Parameters:**
821
- - project_id (required): Project UUID
822
- - title (required): Title for the body of work
823
- - description (optional): Description
824
- - auto_deploy_on_completion (optional): Auto-deploy when all tasks complete (default: false)
825
- - deploy_environment (optional): Target environment (default: production)
826
- - deploy_version_bump (optional): Version bump (default: minor)
827
- - deploy_trigger (optional): When to trigger auto-deploy (default: all_completed_validated)`,
828
-
829
- update_body_of_work: `# update_body_of_work
830
- Update a body of work's settings.
831
-
832
- **Parameters:**
833
- - body_of_work_id (required): Body of work UUID
834
- - title, description (optional)
835
- - auto_deploy_on_completion, deploy_environment, deploy_version_bump, deploy_trigger (optional)`,
836
-
837
- get_body_of_work: `# get_body_of_work
838
- Get a body of work with all its tasks organized by phase.
839
-
840
- **Parameters:**
841
- - body_of_work_id (required): Body of work UUID
842
-
843
- **Returns:** Body of work with tasks grouped by pre/core/post phases.`,
844
-
845
- get_bodies_of_work: `# get_bodies_of_work
846
- List bodies of work for a project.
847
-
848
- **Parameters:**
849
- - project_id (required): Project UUID
850
- - status (optional): Filter by status (draft, active, completed, cancelled)
851
- - limit (optional): Max items (default 50)`,
852
-
853
- delete_body_of_work: `# delete_body_of_work
854
- Delete a body of work. Tasks are preserved but no longer grouped.
855
-
856
- **Parameters:**
857
- - body_of_work_id (required): Body of work UUID`,
858
-
859
- add_task_to_body_of_work: `# add_task_to_body_of_work
860
- Add a task to a body of work in a specific phase.
861
-
862
- **Parameters:**
863
- - body_of_work_id (required): Body of work UUID
864
- - task_id (required): Task UUID to add
865
- - phase (optional): pre, core, or post (default: core)
866
- - order_index (optional): Order within phase`,
867
-
868
- remove_task_from_body_of_work: `# remove_task_from_body_of_work
869
- Remove a task from its body of work.
870
-
871
- **Parameters:**
872
- - task_id (required): Task UUID to remove
873
-
874
- **Note:** The task is preserved, just no longer grouped.`,
875
-
876
- activate_body_of_work: `# activate_body_of_work
877
- Activate a draft body of work to start execution.
878
-
879
- **Parameters:**
880
- - body_of_work_id (required): Body of work UUID
881
-
882
- **Note:** Requires at least one task. Once active, tasks follow phase order.`,
883
-
884
- add_task_dependency: `# add_task_dependency
885
- Add a dependency between tasks in a body of work.
886
-
887
- **Parameters:**
888
- - body_of_work_id (required): Body of work UUID
889
- - task_id (required): Task that depends on another
890
- - depends_on_task_id (required): Task that must complete first
891
-
892
- **Note:** Prevents circular dependencies.`,
893
-
894
- remove_task_dependency: `# remove_task_dependency
895
- Remove a dependency between tasks.
896
-
897
- **Parameters:**
898
- - task_id (required): Task UUID
899
- - depends_on_task_id (required): Dependency task UUID`,
900
-
901
- get_task_dependencies: `# get_task_dependencies
902
- Get task dependencies for a body of work or specific task.
903
-
904
- **Parameters:**
905
- - body_of_work_id (optional): Body of work UUID
906
- - task_id (optional): Specific task UUID`,
907
-
908
- get_next_body_of_work_task: `# get_next_body_of_work_task
909
- Get the next available task from a body of work.
910
-
911
- **Parameters:**
912
- - body_of_work_id (required): Body of work UUID
913
-
914
- **Note:** Considers phase order (pre → core → post) and dependencies.`,
915
-
916
- // Sprints
917
- create_sprint: `# create_sprint
918
- Create a new sprint with time bounds and velocity tracking.
919
-
920
- **Parameters:**
921
- - project_id (required): Project UUID
922
- - title (required): Sprint title (e.g., "Sprint 5")
923
- - start_date (required): Start date (YYYY-MM-DD)
924
- - end_date (required): End date (YYYY-MM-DD)
925
- - goal (optional): Sprint goal statement
926
- - auto_deploy_on_completion, deploy_environment, deploy_version_bump (optional)`,
927
-
928
- update_sprint: `# update_sprint
929
- Update a sprint's details.
930
-
931
- **Parameters:**
932
- - sprint_id (required): Sprint UUID
933
- - title, goal, start_date, end_date (optional)
934
- - auto_deploy_on_completion, deploy_environment, deploy_version_bump (optional)`,
935
-
936
- get_sprint: `# get_sprint
937
- Get a sprint with all its tasks organized by phase.
938
-
939
- **Parameters:**
940
- - sprint_id (required): Sprint UUID
941
-
942
- **Returns:** Sprint with progress percentage, velocity points, committed points.`,
943
-
944
- get_sprints: `# get_sprints
945
- List sprints for a project with velocity metrics.
946
-
947
- **Parameters:**
948
- - project_id (required): Project UUID
949
- - status (optional): planning, active, in_review, retrospective, completed, cancelled
950
- - limit (optional): Max sprints (default 20)`,
951
-
952
- delete_sprint: `# delete_sprint
953
- Delete a sprint. Tasks are preserved but no longer grouped.
954
-
955
- **Parameters:**
956
- - sprint_id (required): Sprint UUID`,
957
-
958
- start_sprint: `# start_sprint
959
- Start a sprint. Transitions from 'planning' to 'active'.
960
-
961
- **Parameters:**
962
- - sprint_id (required): Sprint UUID
963
-
964
- **Note:** Locks committed_points at current total story points.`,
965
-
966
- complete_sprint: `# complete_sprint
967
- Complete a sprint. Handles retrospective phase and auto-deployment.
968
-
969
- **Parameters:**
970
- - sprint_id (required): Sprint UUID
971
- - retrospective_notes (optional): Sprint retrospective notes
972
- - skip_retrospective (optional): Skip retrospective phase (default: false)`,
973
-
974
- add_task_to_sprint: `# add_task_to_sprint
975
- Add a task to a sprint with optional story points.
976
-
977
- **Parameters:**
978
- - sprint_id (required): Sprint UUID
979
- - task_id (required): Task UUID to add
980
- - story_points (optional): Story point estimate
981
- - phase (optional): pre, core, or post (default: core)`,
982
-
983
- remove_task_from_sprint: `# remove_task_from_sprint
984
- Remove a task from a sprint.
985
-
986
- **Parameters:**
987
- - sprint_id (required): Sprint UUID
988
- - task_id (required): Task UUID to remove
989
-
990
- **Note:** Task returns to backlog.`,
991
-
992
- get_sprint_backlog: `# get_sprint_backlog
993
- Get tasks that can be added to a sprint.
994
-
995
- **Parameters:**
996
- - project_id (required): Project UUID
997
- - sprint_id (optional): Exclude tasks already in this sprint
998
-
999
- **Returns:** Tasks not assigned to any body of work or sprint.`,
1000
-
1001
- get_sprint_velocity: `# get_sprint_velocity
1002
- Get velocity metrics for completed sprints.
1003
-
1004
- **Parameters:**
1005
- - project_id (required): Project UUID
1006
- - limit (optional): Number of sprints to analyze (default 10)
1007
-
1008
- **Returns:** Committed vs completed points, average velocity.`,
1009
-
1010
- // Git issues
1011
- add_git_issue: `# add_git_issue
1012
- Record a git-related issue (merge conflict, push failure, etc.).
1013
-
1014
- **Parameters:**
1015
- - project_id (required): Project UUID
1016
- - issue_type (required): merge_conflict, push_failed, rebase_needed, branch_diverged, pr_not_mergeable
1017
- - branch (required): Branch where the issue occurred
1018
- - target_branch, conflicting_files, error_message, pr_url, task_id (optional)`,
1019
-
1020
- resolve_git_issue: `# resolve_git_issue
1021
- Mark a git issue as resolved.
1022
-
1023
- **Parameters:**
1024
- - git_issue_id (required): Git issue UUID
1025
- - resolution_note (optional): How the issue was resolved
1026
- - auto_resolved (optional): Whether auto-resolved`,
1027
-
1028
- get_git_issues: `# get_git_issues
1029
- Get git issues for a project.
1030
-
1031
- **Parameters:**
1032
- - project_id (required): Project UUID
1033
- - status (optional): open or resolved (default: open)
1034
- - issue_type (optional): Filter by issue type
1035
- - branch (optional): Filter by branch
1036
- - limit (optional): Max issues (default 50)`,
1037
-
1038
- delete_git_issue: `# delete_git_issue
1039
- Delete a git issue.
1040
-
1041
- **Parameters:**
1042
- - git_issue_id (required): Git issue UUID`,
1043
-
1044
- // Deployment requirements
1045
- add_deployment_requirement: `# add_deployment_requirement
1046
- Add a pre-deployment requirement.
1047
-
1048
- **Parameters:**
1049
- - project_id (required): Project UUID
1050
- - type (required): migration, env_var, config, manual, breaking_change, agent_task
1051
- - title (required): Brief description
1052
- - description (optional): Detailed instructions
1053
- - stage (optional): preparation, deployment, or verification (default: preparation)
1054
- - file_path (optional): File path reference
1055
- - blocking (optional): Whether converted task blocks other work`,
1056
-
1057
- complete_deployment_requirement: `# complete_deployment_requirement
1058
- Mark a deployment requirement as completed.
1059
-
1060
- **Parameters:**
1061
- - requirement_id (required): Requirement UUID`,
1062
-
1063
- get_deployment_requirements: `# get_deployment_requirements
1064
- Get pending deployment requirements.
1065
-
1066
- **Parameters:**
1067
- - project_id (required): Project UUID
1068
- - stage (optional): preparation, deployment, verification, or all
1069
- - status (optional): pending, completed, converted_to_task, or all (default: pending)`,
1070
-
1071
- // Knowledge base
1072
- query_knowledge_base: `# query_knowledge_base
1073
- Query aggregated project knowledge in a single call. Reduces token usage by combining multiple data sources.
1074
-
1075
- **Parameters:**
1076
- - project_id (required): Project UUID
1077
- - scope: 'summary' (default) or 'detailed' (includes rationales, descriptions)
1078
- - categories: Array of categories to include (default: all)
1079
- - findings: Audit findings (security, performance, code quality)
1080
- - qa: Questions and answers
1081
- - decisions: Architectural decisions
1082
- - completed_tasks: Tasks with completion summaries
1083
- - blockers: Resolved blockers with resolution notes
1084
- - progress: Recent progress logs
1085
- - limit: Max items per category (default: 5, max: 20)
1086
- - search_query: Optional text search across all knowledge
1087
-
1088
- **Returns:**
1089
- - project: name, goal, tech_stack
1090
- - stats: counts for each category, findings by severity
1091
- - Category data based on selection
1092
-
1093
- **Token savings:** Replaces multiple tool calls (get_findings, get_decisions, get_blockers, etc.) with one call.
1094
-
1095
- **Example:** query_knowledge_base(project_id, categories: ["findings", "decisions"], limit: 10)`,
1096
- };
1
+ /**
2
+ * Tool Documentation
3
+ *
4
+ * Externalized documentation for all MCP tools.
5
+ * This file is lazy-loaded by get_tool_info to save tokens.
6
+ *
7
+ * Token savings: ~8,000 tokens per schema load when this isn't bundled.
8
+ */
9
+
10
+ export const TOOL_INFO: Record<string, string> = {
11
+ start_work_session: `# start_work_session
12
+ Initialize agent session and get assigned work.
13
+
14
+ **Parameters:**
15
+ - project_id (optional): Project UUID
16
+ - git_url (optional): Git URL to find project
17
+ - mode: 'lite' (default) or 'full' for complete context
18
+
19
+ **Returns:** session_id, persona, project info, next_task
20
+
21
+ **Example:** start_work_session(git_url: "https://github.com/org/repo")`,
22
+
23
+ get_help: `# get_help
24
+ Get workflow guidance on specific topics.
25
+
26
+ **Parameters:**
27
+ - topic (required): One of: getting_started, tasks, validation, deployment, git, blockers, milestones, fallback, session, tokens, topics
28
+
29
+ **Example:** get_help(topic: "deployment")`,
30
+
31
+ get_token_usage: `# get_token_usage
32
+ Get token usage statistics for current session.
33
+
34
+ **Returns:** total calls, total tokens, breakdown by tool, averages`,
35
+
36
+ heartbeat: `# heartbeat
37
+ Send heartbeat to maintain active status. Call every 30-60 seconds.
38
+
39
+ **Parameters:**
40
+ - session_id (optional): Uses current session if not provided
41
+ - current_worktree_path (optional): Report your current git worktree path (e.g., "../project-task-abc123")`,
42
+
43
+ end_work_session: `# end_work_session
44
+ End session and release claimed tasks.
45
+
46
+ **Parameters:**
47
+ - session_id (optional): Uses current session if not provided
48
+
49
+ **Returns:** Session summary with tasks completed, time spent`,
50
+
51
+ get_project_context: `# get_project_context
52
+ Get full project context including goals, instructions, tasks, blockers, decisions.
53
+
54
+ **Parameters:**
55
+ - project_id (optional): Project UUID
56
+ - git_url (optional): Git URL to find project
57
+
58
+ Without params, lists all projects.`,
59
+
60
+ get_git_workflow: `# get_git_workflow
61
+ Get git workflow config and branching instructions.
62
+
63
+ **Parameters:**
64
+ - project_id (required): Project UUID
65
+ - task_id (optional): Include branch naming suggestion
66
+
67
+ **Returns:** workflow type, branch names, auto-settings`,
68
+
69
+ create_project: `# create_project
70
+ Create a new project to track.
71
+
72
+ **Parameters:**
73
+ - name (required): Project display name
74
+ - description: Brief description
75
+ - goal: What "done" looks like
76
+ - git_url: Repository URL
77
+ - tech_stack: Array of technologies`,
78
+
79
+ update_project: `# update_project
80
+ Update project settings.
81
+
82
+ **Parameters:**
83
+ - project_id (required): Project UUID
84
+ - name, description, goal, git_url, tech_stack, status
85
+ - git_workflow: none, trunk-based, github-flow, git-flow
86
+ - git_main_branch, git_develop_branch, git_auto_branch, git_auto_tag`,
87
+
88
+ update_project_readme: `# update_project_readme
89
+ Sync README content to the dashboard.
90
+
91
+ **Parameters:**
92
+ - project_id (required): Project UUID
93
+ - readme_content (required): Markdown content`,
94
+
95
+ get_task: `# get_task
96
+ Get a single task by ID with optional subtasks and milestones.
97
+
98
+ **Parameters:**
99
+ - task_id (required): Task UUID
100
+ - include_subtasks (optional): Include subtasks array (default: false)
101
+ - include_milestones (optional): Include milestones array (default: false)`,
102
+
103
+ search_tasks: `# search_tasks
104
+ Search tasks by text query. Supports pagination.
105
+
106
+ **Parameters:**
107
+ - project_id (required): Project UUID
108
+ - query (required): Search query (min 2 chars)
109
+ - status (optional): Array of statuses to filter
110
+ - limit (optional): Max results per page (1-20, default: 10)
111
+ - offset (optional): Number of results to skip (default: 0)
112
+
113
+ **Returns:**
114
+ - tasks: Array of matching tasks
115
+ - total_matches: Total number of matching tasks
116
+ - has_more: Whether more results exist beyond current page
117
+ - offset: Current offset
118
+ - limit: Current limit`,
119
+
120
+ get_tasks_by_priority: `# get_tasks_by_priority
121
+ Get tasks filtered by priority. Supports pagination.
122
+
123
+ **Parameters:**
124
+ - project_id (required): Project UUID
125
+ - priority (optional): Exact priority (1-5)
126
+ - priority_max (optional): Max priority for range query
127
+ - status (optional): Filter by status (default: pending)
128
+ - limit (optional): Max results per page (1-20, default: 10)
129
+ - offset (optional): Number of results to skip (default: 0)
130
+
131
+ **Returns:**
132
+ - tasks: Array of matching tasks
133
+ - total_count: Total number of matching tasks
134
+ - has_more: Whether more results exist beyond current page
135
+ - offset: Current offset
136
+ - limit: Current limit`,
137
+
138
+ get_recent_tasks: `# get_recent_tasks
139
+ Get tasks ordered by creation date. Supports pagination.
140
+
141
+ **Parameters:**
142
+ - project_id (required): Project UUID
143
+ - order (optional): 'newest' or 'oldest' (default: newest)
144
+ - status (optional): Filter by status
145
+ - limit (optional): Max results per page (1-20, default: 10)
146
+ - offset (optional): Number of results to skip (default: 0)
147
+
148
+ **Returns:**
149
+ - tasks: Array of matching tasks
150
+ - total_count: Total number of matching tasks
151
+ - has_more: Whether more results exist beyond current page
152
+ - offset: Current offset
153
+ - limit: Current limit`,
154
+
155
+ get_task_stats: `# get_task_stats
156
+ Get aggregate task statistics. Most token-efficient way to understand project state.
157
+
158
+ **Parameters:**
159
+ - project_id (required): Project UUID
160
+
161
+ **Returns:** Counts by status and priority, no task data`,
162
+
163
+ get_next_task: `# get_next_task
164
+ Get highest priority pending task not claimed by another agent.
165
+
166
+ **Parameters:**
167
+ - project_id (required): Project UUID
168
+
169
+ **Returns:** task or null, may suggest fallback activity`,
170
+
171
+ add_task: `# add_task
172
+ Create a new task.
173
+
174
+ **Parameters:**
175
+ - project_id (required): Project UUID
176
+ - title (required): Task title
177
+ - description: Detailed description
178
+ - priority: 1-5 (1=highest, default 3)
179
+ - estimated_minutes: Time estimate`,
180
+
181
+ update_task: `# update_task
182
+ Update task status, progress, or details.
183
+
184
+ **Parameters:**
185
+ - task_id (required): Task UUID
186
+ - status: pending, in_progress, completed, cancelled
187
+ - progress_percentage: 0-100
188
+ - progress_note: Brief note (auto-logged)
189
+ - title, description, priority, estimated_minutes, git_branch
190
+
191
+ **Best practice:** Include progress_note with progress_percentage`,
192
+
193
+ complete_task: `# complete_task
194
+ Mark task as done.
195
+
196
+ **Parameters:**
197
+ - task_id (required): Task UUID
198
+ - summary: What was done
199
+
200
+ **Returns:** next_task, validation_count, blockers_count, deployment_priority`,
201
+
202
+ delete_task: `# delete_task
203
+ Delete a task.
204
+
205
+ **Parameters:**
206
+ - task_id (required): Task UUID`,
207
+
208
+ cancel_task: `# cancel_task
209
+ Cancel a task with an optional reason. Use this when a task should be marked as cancelled rather than deleted (e.g., PR was closed, work was superseded). The task remains visible with a cancelled status for historical tracking.
210
+
211
+ **Parameters:**
212
+ - task_id (required): Task UUID
213
+ - cancelled_reason (optional): One of: pr_closed, superseded, user_cancelled, validation_failed, obsolete, blocked
214
+ - cancellation_note (optional): Additional context about the cancellation
215
+
216
+ **Returns:** task_id, cancelled_reason, message, sprint info (if auto-completed)
217
+
218
+ **Example:** cancel_task(task_id: "abc", cancelled_reason: "pr_closed", cancellation_note: "PR was closed without merging")`,
219
+
220
+ release_task: `# release_task
221
+ Release a claimed task back to pending status. Use when you need to give up a task you've started but cannot complete (e.g., context limits reached, conflicts with other work, user requested different approach).
222
+
223
+ **Parameters:**
224
+ - task_id (required): Task UUID
225
+ - reason (optional): Explanation for releasing the task
226
+
227
+ **Returns:** success, task_id, message, hint
228
+
229
+ **Example:** release_task(task_id: "abc", reason: "Context limit reached, need fresh session")
230
+
231
+ **Note:** Only in_progress tasks can be released. The task becomes available for other agents to claim via get_next_task().`,
232
+
233
+ batch_update_tasks: `# batch_update_tasks
234
+ Update multiple tasks at once.
235
+
236
+ **Parameters:**
237
+ - updates (required): Array of {task_id, status?, progress_percentage?, progress_note?, priority?}`,
238
+
239
+ batch_complete_tasks: `# batch_complete_tasks
240
+ Complete multiple tasks at once.
241
+
242
+ **Parameters:**
243
+ - completions (required): Array of {task_id, summary?}`,
244
+
245
+ add_task_reference: `# add_task_reference
246
+ Add a reference URL to a task.
247
+
248
+ **Parameters:**
249
+ - task_id (required): Task UUID
250
+ - url (required): Reference URL
251
+ - label (optional): Display label`,
252
+
253
+ remove_task_reference: `# remove_task_reference
254
+ Remove a reference URL from a task.
255
+
256
+ **Parameters:**
257
+ - task_id (required): Task UUID
258
+ - url (required): URL to remove`,
259
+
260
+ add_milestone: `# add_milestone
261
+ Add a milestone/step to a task.
262
+
263
+ **Parameters:**
264
+ - task_id (required): Task UUID
265
+ - title (required): Milestone title
266
+ - description (optional): Details
267
+ - order_index (optional): Position (0-based)`,
268
+
269
+ update_milestone: `# update_milestone
270
+ Update a milestone.
271
+
272
+ **Parameters:**
273
+ - milestone_id (required): Milestone UUID
274
+ - title, description, status (pending/in_progress/completed), order_index`,
275
+
276
+ complete_milestone: `# complete_milestone
277
+ Mark milestone as completed.
278
+
279
+ **Parameters:**
280
+ - milestone_id (required): Milestone UUID`,
281
+
282
+ delete_milestone: `# delete_milestone
283
+ Delete a milestone.
284
+
285
+ **Parameters:**
286
+ - milestone_id (required): Milestone UUID`,
287
+
288
+ get_milestones: `# get_milestones
289
+ Get all milestones for a task.
290
+
291
+ **Parameters:**
292
+ - task_id (required): Task UUID`,
293
+
294
+ log_progress: `# log_progress
295
+ Record a progress update.
296
+
297
+ **Parameters:**
298
+ - project_id (required): Project UUID
299
+ - summary (required): Brief summary
300
+ - task_id (optional): Link to task
301
+ - details (optional): Extended notes`,
302
+
303
+ get_activity_feed: `# get_activity_feed
304
+ Get combined activity feed.
305
+
306
+ **Parameters:**
307
+ - project_id (required): Project UUID
308
+ - types (optional): Array of task, progress, blocker, decision
309
+ - created_by (optional): agent or user
310
+ - since (optional): ISO date string
311
+ - limit (optional): Max items (default 50)`,
312
+
313
+ add_blocker: `# add_blocker
314
+ Record a blocker preventing progress.
315
+
316
+ **Parameters:**
317
+ - project_id (required): Project UUID
318
+ - description (required): What is blocking`,
319
+
320
+ resolve_blocker: `# resolve_blocker
321
+ Mark a blocker as resolved.
322
+
323
+ **Parameters:**
324
+ - blocker_id (required): Blocker UUID
325
+ - resolution_note (optional): How it was resolved`,
326
+
327
+ get_blockers: `# get_blockers
328
+ Get blockers for a project.
329
+
330
+ **Parameters:**
331
+ - project_id (required): Project UUID
332
+ - status (optional): open or resolved (default: open)`,
333
+
334
+ delete_blocker: `# delete_blocker
335
+ Delete a blocker.
336
+
337
+ **Parameters:**
338
+ - blocker_id (required): Blocker UUID`,
339
+
340
+ log_decision: `# log_decision
341
+ Record an architectural decision.
342
+
343
+ **Parameters:**
344
+ - project_id (required): Project UUID
345
+ - title (required): Decision title
346
+ - description (required): What was decided
347
+ - rationale (optional): Why
348
+ - alternatives_considered (optional): Array of alternatives`,
349
+
350
+ get_decisions: `# get_decisions
351
+ Get recorded decisions.
352
+
353
+ **Parameters:**
354
+ - project_id (required): Project UUID`,
355
+
356
+ delete_decision: `# delete_decision
357
+ Delete a decision.
358
+
359
+ **Parameters:**
360
+ - decision_id (required): Decision UUID`,
361
+
362
+ add_idea: `# add_idea
363
+ Record an improvement idea.
364
+
365
+ **Parameters:**
366
+ - project_id (required): Project UUID
367
+ - title (required): Idea title
368
+ - description (optional): Details
369
+ - status (optional): raw, exploring, planned, in_development, shipped`,
370
+
371
+ update_idea: `# update_idea
372
+ Update an idea.
373
+
374
+ **Parameters:**
375
+ - idea_id (required): Idea UUID
376
+ - title, description, status, doc_url`,
377
+
378
+ get_ideas: `# get_ideas
379
+ Get recorded ideas.
380
+
381
+ **Parameters:**
382
+ - project_id (required): Project UUID
383
+ - status (optional): Filter by status`,
384
+
385
+ delete_idea: `# delete_idea
386
+ Delete an idea.
387
+
388
+ **Parameters:**
389
+ - idea_id (required): Idea UUID`,
390
+
391
+ convert_idea_to_task: `# convert_idea_to_task
392
+ Convert an idea to a task. Creates a new task from the idea's title and description.
393
+
394
+ **Parameters:**
395
+ - idea_id (required): Idea UUID to convert
396
+ - priority (optional): Task priority 1-5 (default: 3)
397
+ - estimated_minutes (optional): Estimated time
398
+ - update_status (optional): Update idea to 'in_development' (default: true)
399
+
400
+ **Returns:**
401
+ - task_id: Created task UUID
402
+ - Links idea and task together`,
403
+
404
+ add_finding: `# add_finding
405
+ Record an audit/review finding.
406
+
407
+ **Parameters:**
408
+ - project_id (required): Project UUID
409
+ - title (required): Finding title
410
+ - category: performance, security, code_quality, accessibility, documentation, architecture, testing, other
411
+ - description: Details with impact and suggested fix
412
+ - severity: info, low, medium, high, critical
413
+ - file_path, line_number, related_task_id (optional)`,
414
+
415
+ get_findings: `# get_findings
416
+ Get audit findings.
417
+
418
+ **Parameters:**
419
+ - project_id (required): Project UUID
420
+ - category, severity, status (optional filters)
421
+ - limit (optional): Max items`,
422
+
423
+ update_finding: `# update_finding
424
+ Update a finding.
425
+
426
+ **Parameters:**
427
+ - finding_id (required): Finding UUID
428
+ - status: open, addressed, dismissed, wontfix
429
+ - resolution_note, title, description, severity`,
430
+
431
+ delete_finding: `# delete_finding
432
+ Delete a finding.
433
+
434
+ **Parameters:**
435
+ - finding_id (required): Finding UUID`,
436
+
437
+ get_tasks_awaiting_validation: `# get_tasks_awaiting_validation
438
+ Get completed tasks needing validation.
439
+
440
+ **Parameters:**
441
+ - project_id (required): Project UUID
442
+
443
+ **Returns:** Tasks with reviewing status (who's reviewing, when started)`,
444
+
445
+ claim_validation: `# claim_validation
446
+ Claim a completed task for review. Shows "being reviewed" on dashboard.
447
+
448
+ **Parameters:**
449
+ - task_id (required): Task UUID to claim
450
+
451
+ **Note:** Claim before reviewing to prevent duplicate work.`,
452
+
453
+ validate_task: `# validate_task
454
+ Validate a completed task.
455
+
456
+ **Parameters:**
457
+ - task_id (required): Task UUID
458
+ - approved (required): true/false
459
+ - validation_notes: What was checked, issues found`,
460
+
461
+ request_deployment: `# request_deployment
462
+ Request a deployment.
463
+
464
+ **Parameters:**
465
+ - project_id (required): Project UUID
466
+ - environment: development, staging, production
467
+ - version_bump: patch, minor, major
468
+ - notes, git_ref (optional)`,
469
+
470
+ claim_deployment_validation: `# claim_deployment_validation
471
+ Claim pending deployment for validation.
472
+
473
+ **Parameters:**
474
+ - project_id (required): Project UUID
475
+
476
+ Next: Run build+tests, then call report_validation`,
477
+
478
+ report_validation: `# report_validation
479
+ Report build/test results.
480
+
481
+ **Parameters:**
482
+ - project_id (required): Project UUID
483
+ - build_passed (required): boolean
484
+ - tests_passed (required): boolean
485
+ - error_message (if failed)`,
486
+
487
+ check_deployment_status: `# check_deployment_status
488
+ Get active deployment status.
489
+
490
+ **Parameters:**
491
+ - project_id (required): Project UUID`,
492
+
493
+ start_deployment: `# start_deployment
494
+ Start deployment (requires 'ready' status).
495
+
496
+ **Parameters:**
497
+ - project_id (required): Project UUID`,
498
+
499
+ complete_deployment: `# complete_deployment
500
+ Mark deployment complete.
501
+
502
+ **Parameters:**
503
+ - project_id (required): Project UUID
504
+ - success (required): boolean
505
+ - summary: What was deployed or why failed`,
506
+
507
+ cancel_deployment: `# cancel_deployment
508
+ Cancel active deployment.
509
+
510
+ **Parameters:**
511
+ - project_id (required): Project UUID
512
+ - reason (optional): Why cancelled`,
513
+
514
+ schedule_deployment: `# schedule_deployment
515
+ Schedule a deployment for a specific time.
516
+
517
+ **Parameters:**
518
+ - project_id (required): Project UUID
519
+ - scheduled_at (required): ISO 8601 datetime
520
+ - schedule_type (optional): once, daily, weekly, monthly (default: once)
521
+ - auto_trigger (optional): Whether agents auto-trigger (default: true)
522
+ - environment (optional): development, staging, production (default: production)
523
+ - version_bump (optional): patch, minor, major (default: patch)
524
+ - notes (optional): Notes about the deployment
525
+ - git_ref (optional): Git branch or commit
526
+
527
+ **Example:** schedule_deployment(project_id, scheduled_at: "2025-01-15T10:00:00Z", schedule_type: "weekly")`,
528
+
529
+ get_scheduled_deployments: `# get_scheduled_deployments
530
+ List scheduled deployments for a project.
531
+
532
+ **Parameters:**
533
+ - project_id (required): Project UUID
534
+ - include_disabled (optional): Include disabled schedules (default: false)`,
535
+
536
+ update_scheduled_deployment: `# update_scheduled_deployment
537
+ Update a scheduled deployment's configuration.
538
+
539
+ **Parameters:**
540
+ - schedule_id (required): Schedule UUID
541
+ - scheduled_at (optional): New scheduled time
542
+ - schedule_type (optional): once, daily, weekly, monthly
543
+ - auto_trigger (optional): Whether to auto-trigger
544
+ - enabled (optional): Enable or disable
545
+ - environment, version_bump, notes, git_ref (optional)`,
546
+
547
+ delete_scheduled_deployment: `# delete_scheduled_deployment
548
+ Delete a scheduled deployment.
549
+
550
+ **Parameters:**
551
+ - schedule_id (required): Schedule UUID`,
552
+
553
+ trigger_scheduled_deployment: `# trigger_scheduled_deployment
554
+ Manually trigger a scheduled deployment.
555
+
556
+ Creates a new deployment using the schedule's configuration.
557
+ Updates schedule: last_triggered_at, trigger_count, next scheduled_at (for recurring).
558
+
559
+ **Parameters:**
560
+ - schedule_id (required): Schedule UUID`,
561
+
562
+ check_due_deployments: `# check_due_deployments
563
+ Check for scheduled deployments that are due.
564
+
565
+ Returns schedules where: enabled AND auto_trigger AND scheduled_at <= NOW()
566
+
567
+ Use this to find deployments to trigger when working on a project.
568
+
569
+ **Parameters:**
570
+ - project_id (required): Project UUID`,
571
+
572
+ start_fallback_activity: `# start_fallback_activity
573
+ Start background activity when no tasks.
574
+
575
+ **Parameters:**
576
+ - project_id (required): Project UUID
577
+ - activity (required): feature_ideation, code_review, performance_audit, ux_review, cost_analysis, security_review, test_coverage, documentation_review, dependency_audit, validate_completed_tasks`,
578
+
579
+ stop_fallback_activity: `# stop_fallback_activity
580
+ Stop current fallback activity.
581
+
582
+ **Parameters:**
583
+ - project_id (required): Project UUID
584
+ - summary (optional): What was accomplished`,
585
+
586
+ get_activity_history: `# get_activity_history
587
+ Get background activity history.
588
+
589
+ **Parameters:**
590
+ - project_id (required): Project UUID
591
+ - activity_type (optional): Filter by type
592
+ - limit (optional): Max items`,
593
+
594
+ get_activity_schedules: `# get_activity_schedules
595
+ Get activity schedules.
596
+
597
+ **Parameters:**
598
+ - project_id (required): Project UUID`,
599
+
600
+ get_pending_requests: `# get_pending_requests
601
+ Get unacknowledged user requests.
602
+
603
+ **Parameters:**
604
+ - project_id (required): Project UUID`,
605
+
606
+ acknowledge_request: `# acknowledge_request
607
+ Mark a request as handled.
608
+
609
+ **Parameters:**
610
+ - request_id (required): Request UUID`,
611
+
612
+ answer_question: `# answer_question
613
+ Answer a user question from dashboard.
614
+
615
+ **Parameters:**
616
+ - request_id (required): Request UUID
617
+ - answer (required): Your answer`,
618
+
619
+ discover_tools: `# discover_tools
620
+ List available tools by category.
621
+
622
+ **Parameters:**
623
+ - category (optional): Filter to specific category
624
+
625
+ Without category, returns all categories with tool counts.
626
+ With category, returns tools in that category with brief descriptions.`,
627
+
628
+ get_tool_info: `# get_tool_info
629
+ Get detailed info for a specific tool.
630
+
631
+ **Parameters:**
632
+ - tool_name (required): Name of the tool
633
+
634
+ Returns: full documentation, parameters, examples, best practices.`,
635
+
636
+ // Organization tools
637
+ list_organizations: `# list_organizations
638
+ List organizations the current user belongs to.
639
+
640
+ **Parameters:** None
641
+
642
+ **Returns:** Array of organizations with role and joined_at`,
643
+
644
+ create_organization: `# create_organization
645
+ Create a new organization. You become the owner.
646
+
647
+ **Parameters:**
648
+ - name (required): Organization display name
649
+ - description (optional): Brief description
650
+ - slug (optional): URL-friendly identifier (auto-generated if not provided)
651
+
652
+ **Example:** create_organization(name: "Acme Corp", description: "Our development team")`,
653
+
654
+ update_organization: `# update_organization
655
+ Update organization details. Requires admin role.
656
+
657
+ **Parameters:**
658
+ - organization_id (required): Organization UUID
659
+ - name, description, logo_url (optional updates)`,
660
+
661
+ delete_organization: `# delete_organization
662
+ Delete an organization. Requires owner role. Removes all shares.
663
+
664
+ **Parameters:**
665
+ - organization_id (required): Organization UUID
666
+
667
+ **Warning:** This will remove all project shares with this organization.`,
668
+
669
+ list_org_members: `# list_org_members
670
+ List members of an organization.
671
+
672
+ **Parameters:**
673
+ - organization_id (required): Organization UUID
674
+
675
+ **Returns:** Array of members with role and joined_at`,
676
+
677
+ invite_member: `# invite_member
678
+ Invite a user to an organization by email. Requires admin role.
679
+
680
+ **Parameters:**
681
+ - organization_id (required): Organization UUID
682
+ - email (required): Email address to invite
683
+ - role (optional): admin, member, or viewer (default: member)
684
+
685
+ **Returns:** Invite details with token`,
686
+
687
+ update_member_role: `# update_member_role
688
+ Change a member's role. Requires admin role.
689
+
690
+ **Parameters:**
691
+ - organization_id (required): Organization UUID
692
+ - user_id (required): User UUID to update
693
+ - role (required): admin, member, or viewer
694
+
695
+ **Note:** Cannot change your own role or the owner's role.`,
696
+
697
+ remove_member: `# remove_member
698
+ Remove a member from an organization. Requires admin role.
699
+
700
+ **Parameters:**
701
+ - organization_id (required): Organization UUID
702
+ - user_id (required): User UUID to remove
703
+
704
+ **Note:** Cannot remove the owner. Their org-scoped API keys are invalidated.`,
705
+
706
+ leave_organization: `# leave_organization
707
+ Leave an organization.
708
+
709
+ **Parameters:**
710
+ - organization_id (required): Organization UUID
711
+
712
+ **Note:** Owner cannot leave. Must transfer ownership or delete organization.`,
713
+
714
+ share_project_with_org: `# share_project_with_org
715
+ Share a project with an organization. You must own the project.
716
+
717
+ **Parameters:**
718
+ - project_id (required): Project UUID
719
+ - organization_id (required): Organization UUID to share with
720
+ - permission (optional): read, write, or admin (default: read)
721
+
722
+ **Permission levels:**
723
+ - read: View project and tasks
724
+ - write: Add/update tasks, log progress
725
+ - admin: All write permissions plus deployments`,
726
+
727
+ update_project_share: `# update_project_share
728
+ Update the permission level for a project share.
729
+
730
+ **Parameters:**
731
+ - project_id (required): Project UUID
732
+ - organization_id (required): Organization UUID
733
+ - permission (required): read, write, or admin`,
734
+
735
+ unshare_project: `# unshare_project
736
+ Remove a project share from an organization.
737
+
738
+ **Parameters:**
739
+ - project_id (required): Project UUID
740
+ - organization_id (required): Organization UUID
741
+
742
+ **Note:** Org members will lose access immediately.`,
743
+
744
+ list_project_shares: `# list_project_shares
745
+ List all organizations a project is shared with.
746
+
747
+ **Parameters:**
748
+ - project_id (required): Project UUID
749
+
750
+ **Returns:** Array of shares with organization info and permission level`,
751
+
752
+ // Cost monitoring tools
753
+ get_cost_summary: `# get_cost_summary
754
+ Get cost summary (daily/weekly/monthly) for a project.
755
+
756
+ **Parameters:**
757
+ - project_id (required): Project UUID
758
+ - period: 'daily' | 'weekly' | 'monthly' (default: daily)
759
+ - limit: Max records to return (default: 30)
760
+
761
+ **Returns:** Cost summary with totals and breakdown by model`,
762
+
763
+ get_cost_alerts: `# get_cost_alerts
764
+ Get cost alerts for the current user.
765
+
766
+ **Parameters:**
767
+ - project_id (optional): Filter by project
768
+
769
+ **Returns:** Array of configured cost alerts`,
770
+
771
+ add_cost_alert: `# add_cost_alert
772
+ Add a cost threshold alert.
773
+
774
+ **Parameters:**
775
+ - project_id (optional): Specific project or null for all
776
+ - threshold_amount (required): Amount in USD
777
+ - threshold_period (required): 'daily' | 'weekly' | 'monthly'
778
+ - alert_type: 'warning' | 'critical' (default: warning)
779
+
780
+ **Example:** add_cost_alert(threshold_amount: 50, threshold_period: "daily", alert_type: "warning")`,
781
+
782
+ update_cost_alert: `# update_cost_alert
783
+ Update an existing cost alert.
784
+
785
+ **Parameters:**
786
+ - alert_id (required): Alert UUID
787
+ - threshold_amount: New amount in USD
788
+ - threshold_period: New period
789
+ - alert_type: New alert type
790
+ - enabled: Enable/disable the alert`,
791
+
792
+ delete_cost_alert: `# delete_cost_alert
793
+ Delete a cost alert.
794
+
795
+ **Parameters:**
796
+ - alert_id (required): Alert UUID to delete`,
797
+
798
+ get_task_costs: `# get_task_costs
799
+ Get cost breakdown by task for a project.
800
+
801
+ **Parameters:**
802
+ - project_id (required): Project UUID
803
+ - limit: Max tasks to return (default: 20)
804
+
805
+ **Returns:** Tasks sorted by estimated cost with model breakdown`,
806
+
807
+ // Subtasks
808
+ add_subtask: `# add_subtask
809
+ Add a subtask to break down a larger task.
810
+
811
+ **Parameters:**
812
+ - parent_task_id (required): UUID of the parent task
813
+ - title (required): Subtask title
814
+ - description (optional): Detailed description
815
+ - priority (optional): 1-5 (defaults to parent priority)
816
+ - estimated_minutes (optional): Time estimate
817
+
818
+ **Note:** Max depth is 1 (subtasks cannot have their own subtasks).`,
819
+
820
+ get_subtasks: `# get_subtasks
821
+ Get subtasks for a parent task.
822
+
823
+ **Parameters:**
824
+ - parent_task_id (required): UUID of the parent task
825
+ - status (optional): Filter by status
826
+
827
+ **Returns:** Subtasks with aggregate completion stats.`,
828
+
829
+ // Bodies of work
830
+ create_body_of_work: `# create_body_of_work
831
+ Create a new body of work to group tasks into phases.
832
+
833
+ **Parameters:**
834
+ - project_id (required): Project UUID
835
+ - title (required): Title for the body of work
836
+ - description (optional): Description
837
+ - auto_deploy_on_completion (optional): Auto-deploy when all tasks complete (default: false)
838
+ - deploy_environment (optional): Target environment (default: production)
839
+ - deploy_version_bump (optional): Version bump (default: minor)
840
+ - deploy_trigger (optional): When to trigger auto-deploy (default: all_completed_validated)`,
841
+
842
+ update_body_of_work: `# update_body_of_work
843
+ Update a body of work's settings.
844
+
845
+ **Parameters:**
846
+ - body_of_work_id (required): Body of work UUID
847
+ - title, description (optional)
848
+ - auto_deploy_on_completion, deploy_environment, deploy_version_bump, deploy_trigger (optional)`,
849
+
850
+ get_body_of_work: `# get_body_of_work
851
+ Get a body of work with all its tasks organized by phase.
852
+
853
+ **Parameters:**
854
+ - body_of_work_id (required): Body of work UUID
855
+
856
+ **Returns:** Body of work with tasks grouped by pre/core/post phases.`,
857
+
858
+ get_bodies_of_work: `# get_bodies_of_work
859
+ List bodies of work for a project.
860
+
861
+ **Parameters:**
862
+ - project_id (required): Project UUID
863
+ - status (optional): Filter by status (draft, active, completed, cancelled)
864
+ - limit (optional): Max items (default 50)`,
865
+
866
+ delete_body_of_work: `# delete_body_of_work
867
+ Delete a body of work. Tasks are preserved but no longer grouped.
868
+
869
+ **Parameters:**
870
+ - body_of_work_id (required): Body of work UUID`,
871
+
872
+ add_task_to_body_of_work: `# add_task_to_body_of_work
873
+ Add a task to a body of work in a specific phase.
874
+
875
+ **Parameters:**
876
+ - body_of_work_id (required): Body of work UUID
877
+ - task_id (required): Task UUID to add
878
+ - phase (optional): pre, core, or post (default: core)
879
+ - order_index (optional): Order within phase`,
880
+
881
+ remove_task_from_body_of_work: `# remove_task_from_body_of_work
882
+ Remove a task from its body of work.
883
+
884
+ **Parameters:**
885
+ - task_id (required): Task UUID to remove
886
+
887
+ **Note:** The task is preserved, just no longer grouped.`,
888
+
889
+ activate_body_of_work: `# activate_body_of_work
890
+ Activate a draft body of work to start execution.
891
+
892
+ **Parameters:**
893
+ - body_of_work_id (required): Body of work UUID
894
+
895
+ **Note:** Requires at least one task. Once active, tasks follow phase order.`,
896
+
897
+ add_task_dependency: `# add_task_dependency
898
+ Add a dependency between tasks in a body of work.
899
+
900
+ **Parameters:**
901
+ - body_of_work_id (required): Body of work UUID
902
+ - task_id (required): Task that depends on another
903
+ - depends_on_task_id (required): Task that must complete first
904
+
905
+ **Note:** Prevents circular dependencies.`,
906
+
907
+ remove_task_dependency: `# remove_task_dependency
908
+ Remove a dependency between tasks.
909
+
910
+ **Parameters:**
911
+ - task_id (required): Task UUID
912
+ - depends_on_task_id (required): Dependency task UUID`,
913
+
914
+ get_task_dependencies: `# get_task_dependencies
915
+ Get task dependencies for a body of work or specific task.
916
+
917
+ **Parameters:**
918
+ - body_of_work_id (optional): Body of work UUID
919
+ - task_id (optional): Specific task UUID`,
920
+
921
+ get_next_body_of_work_task: `# get_next_body_of_work_task
922
+ Get the next available task from a body of work.
923
+
924
+ **Parameters:**
925
+ - body_of_work_id (required): Body of work UUID
926
+
927
+ **Note:** Considers phase order (pre → core → post) and dependencies.`,
928
+
929
+ // Sprints
930
+ create_sprint: `# create_sprint
931
+ Create a new sprint with time bounds and velocity tracking.
932
+
933
+ **Parameters:**
934
+ - project_id (required): Project UUID
935
+ - title (required): Sprint title (e.g., "Sprint 5")
936
+ - start_date (required): Start date (YYYY-MM-DD)
937
+ - end_date (required): End date (YYYY-MM-DD)
938
+ - goal (optional): Sprint goal statement
939
+ - auto_deploy_on_completion, deploy_environment, deploy_version_bump (optional)`,
940
+
941
+ update_sprint: `# update_sprint
942
+ Update a sprint's details.
943
+
944
+ **Parameters:**
945
+ - sprint_id (required): Sprint UUID
946
+ - title, goal, start_date, end_date (optional)
947
+ - auto_deploy_on_completion, deploy_environment, deploy_version_bump (optional)`,
948
+
949
+ get_sprint: `# get_sprint
950
+ Get a sprint with all its tasks organized by phase.
951
+
952
+ **Parameters:**
953
+ - sprint_id (required): Sprint UUID
954
+
955
+ **Returns:** Sprint with progress percentage, velocity points, committed points.`,
956
+
957
+ get_sprints: `# get_sprints
958
+ List sprints for a project with velocity metrics.
959
+
960
+ **Parameters:**
961
+ - project_id (required): Project UUID
962
+ - status (optional): planning, active, in_review, retrospective, completed, cancelled
963
+ - limit (optional): Max sprints (default 20)`,
964
+
965
+ delete_sprint: `# delete_sprint
966
+ Delete a sprint. Tasks are preserved but no longer grouped.
967
+
968
+ **Parameters:**
969
+ - sprint_id (required): Sprint UUID`,
970
+
971
+ start_sprint: `# start_sprint
972
+ Start a sprint. Transitions from 'planning' to 'active'.
973
+
974
+ **Parameters:**
975
+ - sprint_id (required): Sprint UUID
976
+
977
+ **Note:** Locks committed_points at current total story points.`,
978
+
979
+ complete_sprint: `# complete_sprint
980
+ Complete a sprint. Handles retrospective phase and auto-deployment.
981
+
982
+ **Parameters:**
983
+ - sprint_id (required): Sprint UUID
984
+ - retrospective_notes (optional): Sprint retrospective notes
985
+ - skip_retrospective (optional): Skip retrospective phase (default: false)`,
986
+
987
+ add_task_to_sprint: `# add_task_to_sprint
988
+ Add a task to a sprint with optional story points.
989
+
990
+ **Parameters:**
991
+ - sprint_id (required): Sprint UUID
992
+ - task_id (required): Task UUID to add
993
+ - story_points (optional): Story point estimate
994
+ - phase (optional): pre, core, or post (default: core)`,
995
+
996
+ remove_task_from_sprint: `# remove_task_from_sprint
997
+ Remove a task from a sprint.
998
+
999
+ **Parameters:**
1000
+ - sprint_id (required): Sprint UUID
1001
+ - task_id (required): Task UUID to remove
1002
+
1003
+ **Note:** Task returns to backlog.`,
1004
+
1005
+ get_sprint_backlog: `# get_sprint_backlog
1006
+ Get tasks that can be added to a sprint.
1007
+
1008
+ **Parameters:**
1009
+ - project_id (required): Project UUID
1010
+ - sprint_id (optional): Exclude tasks already in this sprint
1011
+
1012
+ **Returns:** Tasks not assigned to any body of work or sprint.`,
1013
+
1014
+ get_sprint_velocity: `# get_sprint_velocity
1015
+ Get velocity metrics for completed sprints.
1016
+
1017
+ **Parameters:**
1018
+ - project_id (required): Project UUID
1019
+ - limit (optional): Number of sprints to analyze (default 10)
1020
+
1021
+ **Returns:** Committed vs completed points, average velocity.`,
1022
+
1023
+ // Git issues
1024
+ add_git_issue: `# add_git_issue
1025
+ Record a git-related issue (merge conflict, push failure, etc.).
1026
+
1027
+ **Parameters:**
1028
+ - project_id (required): Project UUID
1029
+ - issue_type (required): merge_conflict, push_failed, rebase_needed, branch_diverged, pr_not_mergeable
1030
+ - branch (required): Branch where the issue occurred
1031
+ - target_branch, conflicting_files, error_message, pr_url, task_id (optional)`,
1032
+
1033
+ resolve_git_issue: `# resolve_git_issue
1034
+ Mark a git issue as resolved.
1035
+
1036
+ **Parameters:**
1037
+ - git_issue_id (required): Git issue UUID
1038
+ - resolution_note (optional): How the issue was resolved
1039
+ - auto_resolved (optional): Whether auto-resolved`,
1040
+
1041
+ get_git_issues: `# get_git_issues
1042
+ Get git issues for a project.
1043
+
1044
+ **Parameters:**
1045
+ - project_id (required): Project UUID
1046
+ - status (optional): open or resolved (default: open)
1047
+ - issue_type (optional): Filter by issue type
1048
+ - branch (optional): Filter by branch
1049
+ - limit (optional): Max issues (default 50)`,
1050
+
1051
+ delete_git_issue: `# delete_git_issue
1052
+ Delete a git issue.
1053
+
1054
+ **Parameters:**
1055
+ - git_issue_id (required): Git issue UUID`,
1056
+
1057
+ // Deployment requirements
1058
+ add_deployment_requirement: `# add_deployment_requirement
1059
+ Add a pre-deployment requirement.
1060
+
1061
+ **Parameters:**
1062
+ - project_id (required): Project UUID
1063
+ - type (required): migration, env_var, config, manual, breaking_change, agent_task
1064
+ - title (required): Brief description
1065
+ - description (optional): Detailed instructions
1066
+ - stage (optional): preparation, deployment, or verification (default: preparation)
1067
+ - file_path (optional): File path reference
1068
+ - blocking (optional): Whether converted task blocks other work`,
1069
+
1070
+ complete_deployment_requirement: `# complete_deployment_requirement
1071
+ Mark a deployment requirement as completed.
1072
+
1073
+ **Parameters:**
1074
+ - requirement_id (required): Requirement UUID`,
1075
+
1076
+ get_deployment_requirements: `# get_deployment_requirements
1077
+ Get pending deployment requirements.
1078
+
1079
+ **Parameters:**
1080
+ - project_id (required): Project UUID
1081
+ - stage (optional): preparation, deployment, verification, or all
1082
+ - status (optional): pending, completed, converted_to_task, or all (default: pending)`,
1083
+
1084
+ // Knowledge base
1085
+ query_knowledge_base: `# query_knowledge_base
1086
+ Query aggregated project knowledge in a single call. Reduces token usage by combining multiple data sources.
1087
+
1088
+ **Parameters:**
1089
+ - project_id (required): Project UUID
1090
+ - scope: 'summary' (default) or 'detailed' (includes rationales, descriptions)
1091
+ - categories: Array of categories to include (default: all)
1092
+ - findings: Audit findings (security, performance, code quality)
1093
+ - qa: Questions and answers
1094
+ - decisions: Architectural decisions
1095
+ - completed_tasks: Tasks with completion summaries
1096
+ - blockers: Resolved blockers with resolution notes
1097
+ - progress: Recent progress logs
1098
+ - limit: Max items per category (default: 5, max: 20)
1099
+ - search_query: Optional text search across all knowledge
1100
+
1101
+ **Returns:**
1102
+ - project: name, goal, tech_stack
1103
+ - stats: counts for each category, findings by severity
1104
+ - Category data based on selection
1105
+
1106
+ **Token savings:** Replaces multiple tool calls (get_findings, get_decisions, get_blockers, etc.) with one call.
1107
+
1108
+ **Example:** query_knowledge_base(project_id, categories: ["findings", "decisions"], limit: 10)`,
1109
+ };