@specforge/mcp 2.3.0 → 2.5.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.
@@ -0,0 +1,210 @@
1
+ // mcp/src/tools/core/blueprint.ts
2
+ import { createOperationRouter } from './router.js';
3
+ export const blueprintTool = {
4
+ name: 'blueprint',
5
+ description: `Manage specification blueprints (flowcharts, diagrams, mockups, ADRs). Operations:
6
+ - create: Create a new blueprint for a specification
7
+ - get: Get blueprint by ID with full content
8
+ - update: Update blueprint fields
9
+ - list: List blueprints for a specification (with optional category/status filters)
10
+ - delete: Delete a blueprint and all its ticket references
11
+ - link: Link a ticket to a blueprint for implementation context
12
+ - unlink: Remove a ticket-blueprint link
13
+ - get_for_ticket: Get all blueprints linked to a ticket`,
14
+ inputSchema: {
15
+ type: 'object',
16
+ properties: {
17
+ operation: {
18
+ type: 'string',
19
+ enum: ['create', 'get', 'update', 'list', 'delete', 'link', 'unlink', 'get_for_ticket'],
20
+ description: 'The operation to perform',
21
+ },
22
+ // IDs
23
+ blueprintId: {
24
+ type: 'string',
25
+ description: 'Blueprint ID (for get, update, delete, link, unlink)',
26
+ },
27
+ specificationId: {
28
+ type: 'string',
29
+ description: 'Specification ID (for create, list)',
30
+ },
31
+ ticketId: {
32
+ type: 'string',
33
+ description: 'Ticket ID (for link, unlink, get_for_ticket)',
34
+ },
35
+ referenceId: {
36
+ type: 'string',
37
+ description: 'Reference ID (for unlink - alternative to ticketId+blueprintId)',
38
+ },
39
+ // Blueprint fields
40
+ title: {
41
+ type: 'string',
42
+ description: 'Blueprint title',
43
+ },
44
+ description: {
45
+ type: 'string',
46
+ description: 'Blueprint description',
47
+ },
48
+ slug: {
49
+ type: 'string',
50
+ description: 'URL-friendly identifier',
51
+ },
52
+ category: {
53
+ type: 'string',
54
+ enum: ['flowchart', 'architecture', 'state', 'sequence', 'erd', 'mockup', 'adr', 'component', 'deployment', 'api'],
55
+ description: 'Blueprint category type',
56
+ },
57
+ content: {
58
+ type: 'string',
59
+ description: 'The blueprint content (Mermaid syntax, markdown, or ASCII art)',
60
+ },
61
+ format: {
62
+ type: 'string',
63
+ enum: ['markdown', 'mermaid', 'ascii', 'mixed'],
64
+ description: 'Content format (default: mermaid)',
65
+ },
66
+ tags: {
67
+ type: 'array',
68
+ items: { type: 'string' },
69
+ description: 'Categorization tags',
70
+ },
71
+ status: {
72
+ type: 'string',
73
+ enum: ['draft', 'review', 'approved', 'deprecated'],
74
+ description: 'Blueprint status',
75
+ },
76
+ order: {
77
+ type: 'number',
78
+ description: 'Display order within specification',
79
+ },
80
+ version: {
81
+ type: 'string',
82
+ description: 'Semantic version (e.g., "1.0.0")',
83
+ },
84
+ // Reference fields
85
+ context: {
86
+ type: 'string',
87
+ description: 'Why this blueprint is relevant to the ticket (for link)',
88
+ },
89
+ section: {
90
+ type: 'string',
91
+ description: 'Specific section in blueprint relevant to ticket (for link)',
92
+ },
93
+ // Response options
94
+ outputFormat: {
95
+ type: 'string',
96
+ enum: ['json', 'toon'],
97
+ description: 'Output format (default: json)',
98
+ },
99
+ includeContent: {
100
+ type: 'boolean',
101
+ description: 'Include full content in list results (default: false)',
102
+ },
103
+ // Pagination
104
+ limit: {
105
+ type: 'number',
106
+ description: 'Max items to return',
107
+ },
108
+ offset: {
109
+ type: 'number',
110
+ description: 'Number of items to skip',
111
+ },
112
+ },
113
+ required: ['operation'],
114
+ },
115
+ };
116
+ function validateRequired(args, ...fields) {
117
+ for (const field of fields) {
118
+ if (args[field] === undefined || args[field] === null || args[field] === '') {
119
+ throw new Error(`${field} is required`);
120
+ }
121
+ }
122
+ }
123
+ export function createBlueprintOperations(apiClient) {
124
+ return {
125
+ create: async (args, _userId) => {
126
+ validateRequired(args, 'specificationId', 'title');
127
+ return await apiClient.call('create_blueprint', {
128
+ specificationId: args.specificationId,
129
+ title: args.title,
130
+ description: args.description,
131
+ slug: args.slug,
132
+ category: args.category,
133
+ content: args.content,
134
+ format: args.format,
135
+ tags: args.tags,
136
+ status: args.status,
137
+ version: args.version,
138
+ });
139
+ },
140
+ get: async (args, _userId) => {
141
+ validateRequired(args, 'blueprintId');
142
+ return await apiClient.call('get_blueprint', {
143
+ blueprintId: args.blueprintId,
144
+ });
145
+ },
146
+ update: async (args, _userId) => {
147
+ validateRequired(args, 'blueprintId');
148
+ return await apiClient.call('update_blueprint', {
149
+ blueprintId: args.blueprintId,
150
+ title: args.title,
151
+ description: args.description,
152
+ slug: args.slug,
153
+ category: args.category,
154
+ content: args.content,
155
+ format: args.format,
156
+ tags: args.tags,
157
+ status: args.status,
158
+ order: args.order,
159
+ version: args.version,
160
+ });
161
+ },
162
+ list: async (args, _userId) => {
163
+ validateRequired(args, 'specificationId');
164
+ return await apiClient.call('list_blueprints', {
165
+ specificationId: args.specificationId,
166
+ category: args.category,
167
+ status: args.status,
168
+ limit: args.limit,
169
+ offset: args.offset,
170
+ });
171
+ },
172
+ delete: async (args, _userId) => {
173
+ validateRequired(args, 'blueprintId');
174
+ return await apiClient.call('delete_blueprint', {
175
+ blueprintId: args.blueprintId,
176
+ });
177
+ },
178
+ link: async (args, _userId) => {
179
+ validateRequired(args, 'ticketId', 'blueprintId');
180
+ return await apiClient.call('link_ticket_blueprint', {
181
+ ticketId: args.ticketId,
182
+ blueprintId: args.blueprintId,
183
+ context: args.context,
184
+ section: args.section,
185
+ });
186
+ },
187
+ unlink: async (args, _userId) => {
188
+ // Either referenceId or both ticketId and blueprintId required
189
+ if (!args.referenceId && (!args.ticketId || !args.blueprintId)) {
190
+ throw new Error('Either referenceId or both ticketId and blueprintId are required');
191
+ }
192
+ return await apiClient.call('unlink_ticket_blueprint', {
193
+ referenceId: args.referenceId,
194
+ ticketId: args.ticketId,
195
+ blueprintId: args.blueprintId,
196
+ });
197
+ },
198
+ get_for_ticket: async (args, _userId) => {
199
+ validateRequired(args, 'ticketId');
200
+ return await apiClient.call('get_ticket_blueprints', {
201
+ ticketId: args.ticketId,
202
+ });
203
+ },
204
+ };
205
+ }
206
+ export function createBlueprintHandler(apiClient) {
207
+ const operations = createBlueprintOperations(apiClient);
208
+ return createOperationRouter('blueprint', operations);
209
+ }
210
+ //# sourceMappingURL=blueprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blueprint.js","sourceRoot":"","sources":["../../../src/tools/core/blueprint.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export const specificationTool = {
27
27
  content: { type: 'string', description: 'Full markdown content' },
28
28
  background: { type: 'string', description: 'Problem context and why this exists' },
29
29
  scope: { type: 'string', description: "What's in/out of scope" },
30
- status: { type: 'string', enum: ['draft', 'planning', 'ready', 'in_progress', 'completed'] },
30
+ status: { type: 'string', enum: ['draft', 'planning', 'ready', 'in_progress', 'ready_for_review', 'reviewed', 'completed'] },
31
31
  priority: { type: 'string', enum: ['high', 'medium', 'low'] },
32
32
  tags: { type: 'array', items: { type: 'string' }, description: 'Categorization tags' },
33
33
  estimatedHours: { type: 'number', description: 'Total estimated effort' },
@@ -1 +1 @@
1
- {"version":3,"file":"specification.js","sourceRoot":"","sources":["../../../src/tools/core/specification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specification.js","sourceRoot":"","sources":["../../../src/tools/core/specification.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-guide.d.ts","sourceRoot":"","sources":["../../../src/tools/core/workflow-guide.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAQvD,eAAO,MAAM,iBAAiB,EAAE,IA0B/B,CAAC;AA0TF,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,GACnB,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAkFlC;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,oEAG9D"}
1
+ {"version":3,"file":"workflow-guide.d.ts","sourceRoot":"","sources":["../../../src/tools/core/workflow-guide.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAQvD,eAAO,MAAM,iBAAiB,EAAE,IA0B/B,CAAC;AAonBF,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,GACnB,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAwHlC;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,oEAG9D"}
@@ -41,11 +41,34 @@ function validateRequired(args, ...fields) {
41
41
  }
42
42
  }
43
43
  }
44
+ /**
45
+ * Transform API response to normalized working context
46
+ */
47
+ function normalizeWorkingContext(response) {
48
+ const context = {
49
+ projectId: response.project?.id,
50
+ specificationId: response.specification?.id,
51
+ epicId: response.epic?.id,
52
+ ticketId: response.ticket?.id,
53
+ };
54
+ // Map implementationSession to activeSession if it's active
55
+ if (response.implementationSession &&
56
+ (response.implementationSession.status === 'active' || response.implementationSession.status === 'paused')) {
57
+ context.activeSession = {
58
+ sessionId: response.implementationSession.id,
59
+ ticketId: response.ticket?.id || '',
60
+ ticketTitle: response.ticket?.title || '',
61
+ startedAt: response.implementationSession.startedAt,
62
+ };
63
+ }
64
+ return context;
65
+ }
44
66
  /**
45
67
  * Determine the current and next step based on context and progress
46
68
  */
47
69
  function determineStep(context, progress) {
48
70
  const hasActiveSession = context.activeSession != null;
71
+ const hasProject = context.projectId != null;
49
72
  const hasSpec = context.specificationId != null;
50
73
  const hasEpic = context.epicId != null;
51
74
  const hasTicket = context.ticketId != null;
@@ -63,11 +86,18 @@ function determineStep(context, progress) {
63
86
  nextStep: 'Continue with session - implement the ticket and complete when done',
64
87
  };
65
88
  }
66
- // Creation workflow logic
89
+ // No project set - need to initialize first
90
+ if (!hasProject) {
91
+ return {
92
+ currentStep: 'no_project',
93
+ nextStep: 'Run `specforge-mcp init` or use context.set to select a project',
94
+ };
95
+ }
96
+ // Project set but no specification - guide to create one (creation workflow)
67
97
  if (!hasSpec) {
68
98
  return {
69
- currentStep: 'no_specification',
70
- nextStep: 'Create or select a specification to work on',
99
+ currentStep: 'create_specification',
100
+ nextStep: 'Create a new specification using spec.create with title and description',
71
101
  };
72
102
  }
73
103
  if (!progress) {
@@ -114,13 +144,205 @@ function determineStep(context, progress) {
114
144
  nextStep: 'Check workflow status and context',
115
145
  };
116
146
  }
147
+ /**
148
+ * Valid status transitions for specification workflow
149
+ */
150
+ const VALID_TRANSITIONS = {
151
+ draft: ['planning'],
152
+ planning: ['ready'],
153
+ ready: ['in_progress'],
154
+ in_progress: ['ready_for_review'],
155
+ ready_for_review: ['reviewed', 'in_progress'], // Can go back to in_progress
156
+ reviewed: ['completed', 'ready_for_review'], // Can go back to ready_for_review
157
+ completed: [],
158
+ };
159
+ /**
160
+ * Validate status transition (warn only, don't block)
161
+ */
162
+ function validateStatusTransition(currentStatus, newStatus) {
163
+ const allowedNext = VALID_TRANSITIONS[currentStatus] || [];
164
+ if (allowedNext.includes(newStatus)) {
165
+ return { valid: true };
166
+ }
167
+ return {
168
+ valid: true, // Still allow it
169
+ warning: `Non-standard transition from '${currentStatus}' to '${newStatus}'. Expected: ${allowedNext.join(' or ')}`,
170
+ };
171
+ }
172
+ /**
173
+ * Get content completeness check for a specification
174
+ * Checks blueprints, code references, and type references
175
+ */
176
+ async function getContentCompleteness(apiClient, specificationId, ticketCount) {
177
+ const missingItems = [];
178
+ // Get blueprint count
179
+ let blueprintCount = 0;
180
+ try {
181
+ const blueprints = (await apiClient.call('list_blueprints', { specificationId }));
182
+ blueprintCount = blueprints?.items?.length || 0;
183
+ }
184
+ catch {
185
+ // Blueprints API might not be available
186
+ }
187
+ // Get ticket stats (code/type references)
188
+ let withCodeRefs = 0;
189
+ let withTypeRefs = 0;
190
+ try {
191
+ const tickets = (await apiClient.call('list_tickets', {
192
+ specificationId,
193
+ responseMode: 'minimal',
194
+ }));
195
+ for (const ticket of tickets?.items || []) {
196
+ if (ticket.codeReferences) {
197
+ try {
198
+ const refs = JSON.parse(ticket.codeReferences);
199
+ if (Array.isArray(refs) && refs.length > 0)
200
+ withCodeRefs++;
201
+ }
202
+ catch {
203
+ // Invalid JSON, skip
204
+ }
205
+ }
206
+ if (ticket.typeReferences) {
207
+ try {
208
+ const refs = JSON.parse(ticket.typeReferences);
209
+ if (Array.isArray(refs) && refs.length > 0)
210
+ withTypeRefs++;
211
+ }
212
+ catch {
213
+ // Invalid JSON, skip
214
+ }
215
+ }
216
+ }
217
+ }
218
+ catch {
219
+ // Tickets API might fail
220
+ }
221
+ // Check blueprints
222
+ if (blueprintCount === 0) {
223
+ missingItems.push('No blueprints defined - add architecture/flow diagrams');
224
+ }
225
+ // Check code references (at least 50% of tickets should have them)
226
+ const codeRefRatio = ticketCount > 0 ? withCodeRefs / ticketCount : 0;
227
+ if (codeRefRatio < 0.5) {
228
+ missingItems.push(`Only ${withCodeRefs}/${ticketCount} tickets have code snippets`);
229
+ }
230
+ // Check type references (at least 30% of tickets)
231
+ const typeRefRatio = ticketCount > 0 ? withTypeRefs / ticketCount : 0;
232
+ if (typeRefRatio < 0.3) {
233
+ missingItems.push(`Only ${withTypeRefs}/${ticketCount} tickets have type references`);
234
+ }
235
+ return {
236
+ blueprints: { has: blueprintCount > 0, count: blueprintCount },
237
+ codeReferences: {
238
+ has: codeRefRatio >= 0.5,
239
+ ticketsWithRefs: withCodeRefs,
240
+ totalTickets: ticketCount,
241
+ },
242
+ typeReferences: {
243
+ has: typeRefRatio >= 0.3,
244
+ ticketsWithRefs: withTypeRefs,
245
+ totalTickets: ticketCount,
246
+ },
247
+ isComplete: missingItems.length === 0,
248
+ missingItems,
249
+ };
250
+ }
251
+ /**
252
+ * Determine recommended workflow flow based on specification status and progress
253
+ */
254
+ function determineRecommendedFlow(context, progress, specStatus, completeness) {
255
+ const hasProject = context.projectId != null;
256
+ const hasSpec = context.specificationId != null;
257
+ // No project - need to init
258
+ if (!hasProject) {
259
+ return null; // No recommendation, need init first
260
+ }
261
+ // No spec or draft - creation flow
262
+ if (!hasSpec || specStatus === 'draft') {
263
+ return {
264
+ flow: 'creation',
265
+ reason: 'Create a specification to define your work.',
266
+ };
267
+ }
268
+ // Planning phase - creation flow with completeness check
269
+ if (specStatus === 'planning') {
270
+ const hasTickets = progress && progress.tickets.total > 0;
271
+ if (!hasTickets) {
272
+ return {
273
+ flow: 'creation',
274
+ reason: 'Plan and create epics/tickets for the specification.',
275
+ };
276
+ }
277
+ // Check content completeness before recommending ready
278
+ if (completeness && !completeness.isComplete) {
279
+ return {
280
+ flow: 'creation',
281
+ reason: 'Specification needs more detail before implementation.',
282
+ prerequisites: completeness.missingItems,
283
+ };
284
+ }
285
+ return {
286
+ flow: 'creation',
287
+ reason: 'Planning complete. Content looks good - set status to ready.',
288
+ };
289
+ }
290
+ // Ready - ready for implementation
291
+ if (specStatus === 'ready') {
292
+ return {
293
+ flow: 'implementation',
294
+ reason: 'Specification ready. Start implementing tickets.',
295
+ prerequisites: ['Set spec status to in_progress when starting'],
296
+ };
297
+ }
298
+ // In progress - implementation flow
299
+ if (specStatus === 'in_progress') {
300
+ const allDone = progress && progress.tickets.done === progress.tickets.total && progress.tickets.total > 0;
301
+ if (allDone) {
302
+ return {
303
+ flow: 'review',
304
+ reason: 'All tickets done. Move to ready_for_review status.',
305
+ prerequisites: ['Set spec status to ready_for_review'],
306
+ };
307
+ }
308
+ return {
309
+ flow: 'implementation',
310
+ reason: `${progress ? progress.tickets.total - progress.tickets.done : 'Unknown'} tickets remaining.`,
311
+ prerequisites: progress && progress.tickets.ready === 0 ? ['Resolve blocked tickets'] : undefined,
312
+ };
313
+ }
314
+ // Ready for review - review flow
315
+ if (specStatus === 'ready_for_review') {
316
+ return {
317
+ flow: 'review',
318
+ reason: 'Review implementation: verify code integration and ticket completion.',
319
+ prerequisites: [
320
+ 'Run full test suite',
321
+ 'Check all acceptance criteria',
322
+ 'Verify documentation',
323
+ ],
324
+ };
325
+ }
326
+ // Reviewed - finalize flow
327
+ if (specStatus === 'reviewed') {
328
+ return {
329
+ flow: 'finalize',
330
+ reason: 'Implementation reviewed. Create PR and complete the specification.',
331
+ };
332
+ }
333
+ // Completed - done
334
+ if (specStatus === 'completed') {
335
+ return null; // No recommendation, already done
336
+ }
337
+ return null;
338
+ }
117
339
  /**
118
340
  * Generate actionable next step recommendation
119
341
  */
120
342
  function generateNextAction(status) {
121
343
  const { currentStep, currentState } = status;
122
344
  switch (currentStep) {
123
- case 'no_specification':
345
+ case 'create_specification':
124
346
  return {
125
347
  step: 'create_specification',
126
348
  reason: 'No specification is selected in the working context',
@@ -266,13 +488,16 @@ export function createWorkflowGuideOperations(apiClient) {
266
488
  return workflow;
267
489
  },
268
490
  status: async (args, _userId) => {
269
- // Get working context
270
- const context = (await apiClient.call('get_working_context', {}));
491
+ // Get working context and normalize the response
492
+ const rawContext = (await apiClient.call('get_working_context', {}));
493
+ const context = normalizeWorkingContext(rawContext);
271
494
  // Determine workflow type from context
272
495
  const hasActiveSession = context.activeSession != null;
273
496
  const workflowType = hasActiveSession ? 'implementation' : 'creation';
274
- // Get progress if we have a specification
497
+ // Get progress and spec status if we have a specification
275
498
  let progress = null;
499
+ let specStatus;
500
+ let completeness = null;
276
501
  const specId = args.specificationId || context.specificationId;
277
502
  if (specId) {
278
503
  try {
@@ -280,6 +505,7 @@ export function createWorkflowGuideOperations(apiClient) {
280
505
  specificationId: specId,
281
506
  summary: true,
282
507
  }));
508
+ specStatus = spec.status;
283
509
  progress = {
284
510
  epics: {
285
511
  total: spec.epicCount ?? 0,
@@ -292,6 +518,24 @@ export function createWorkflowGuideOperations(apiClient) {
292
518
  active: spec.activeTicketCount ?? 0,
293
519
  },
294
520
  };
521
+ // Auto-status update: if all tickets done and status is in_progress, update to ready_for_review
522
+ const allTicketsDone = progress.tickets.done === progress.tickets.total && progress.tickets.total > 0;
523
+ if (specStatus === 'in_progress' && allTicketsDone) {
524
+ try {
525
+ await apiClient.call('update_specification', {
526
+ specificationId: specId,
527
+ status: 'ready_for_review',
528
+ });
529
+ specStatus = 'ready_for_review';
530
+ }
531
+ catch {
532
+ // Failed to auto-update, continue with current status
533
+ }
534
+ }
535
+ // Fetch completeness data when in planning phase with tickets
536
+ if (specStatus === 'planning' && progress.tickets.total > 0) {
537
+ completeness = await getContentCompleteness(apiClient, specId, progress.tickets.total);
538
+ }
295
539
  }
296
540
  catch {
297
541
  // Specification might not exist yet
@@ -300,9 +544,14 @@ export function createWorkflowGuideOperations(apiClient) {
300
544
  }
301
545
  // Determine current and next step
302
546
  const { currentStep, nextStep } = determineStep(context, progress);
547
+ // Determine recommended flow based on spec status
548
+ const recommendedFlow = determineRecommendedFlow(context, progress, specStatus, completeness);
303
549
  return {
304
550
  workflow: workflowType,
551
+ recommendedFlow,
305
552
  currentState: {
553
+ specificationStatus: specStatus,
554
+ contentCompleteness: completeness,
306
555
  activeSession: context.activeSession,
307
556
  workingContext: {
308
557
  projectId: context.projectId,
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-guide.js","sourceRoot":"","sources":["../../../src/tools/core/workflow-guide.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-guide.js","sourceRoot":"","sources":["../../../src/tools/core/workflow-guide.ts"],"names":[],"mappings":"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"}