wolfpack-mcp 1.0.16 → 1.0.18

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 (2) hide show
  1. package/dist/index.js +26 -6
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -223,6 +223,18 @@ const CreateIssueCommentSchema = z.object({
223
223
  issue_id: z.string().describe('The issue UUID'),
224
224
  content: z.string().describe('Comment content (markdown)'),
225
225
  });
226
+ // Helper to detect if a work item description contains a plan
227
+ function hasPlan(description) {
228
+ if (!description)
229
+ return false;
230
+ // Check for markdown checklist items (plan indicators)
231
+ if (/- \[[ x]\]/.test(description))
232
+ return true;
233
+ // Check for --- separator with content after (agent-added section)
234
+ if (/\n---\n/.test(description))
235
+ return true;
236
+ return false;
237
+ }
226
238
  class WolfpackMCPServer {
227
239
  server;
228
240
  client;
@@ -246,12 +258,13 @@ class WolfpackMCPServer {
246
258
  {
247
259
  name: 'list_teams',
248
260
  description: 'List all teams (projects) you have access to. ' +
261
+ 'TERMINOLOGY: In this software, "team" and "project" are synonymous and interchangeable. All tool names and parameters use "team" (e.g., team_id), but the concepts are identical. ' +
249
262
  'IMPORTANT - PROJECT FOCUS RULES: ' +
250
- '1) Call this FIRST to identify which project you are working in. ' +
251
- '2) Once you identify a project, STAY WITHIN that project for all operations unless the user explicitly asks to switch projects. ' +
252
- '3) NEVER perform bulk actions across multiple projects - always work in one project at a time. ' +
253
- '4) If the user mentions a specific project, use that project for all subsequent operations. ' +
254
- '5) If unclear which project to use, ASK the user before proceeding. ' +
263
+ '1) Call this FIRST to identify which team/project you are working in. ' +
264
+ '2) Once you identify a team, STAY WITHIN that team for all operations unless the user explicitly asks to switch. ' +
265
+ '3) NEVER perform bulk actions across multiple teams - always work in one team at a time. ' +
266
+ '4) If the user mentions a specific team or project, use that for all subsequent operations. ' +
267
+ '5) If unclear which team to use, ASK the user before proceeding. ' +
255
268
  'Returns team IDs, slugs, and names. Single-team users have their team auto-selected; multi-team users must specify team_id in other tool calls.',
256
269
  inputSchema: {
257
270
  type: 'object',
@@ -790,8 +803,15 @@ class WolfpackMCPServer {
790
803
  const parsed = GetWorkItemSchema.parse(args);
791
804
  const workItem = await this.client.getWorkItem(parsed.work_item_id, parsed.team_id || this.client.getTeamId() || undefined);
792
805
  if (workItem) {
806
+ let text = JSON.stringify(workItem, null, 2);
807
+ // Add hint if no plan detected in description
808
+ if (!hasPlan(workItem.description)) {
809
+ text =
810
+ 'REMINDER: This work item has no plan. Before starting work, use update_work_progress to add a plan below a "---" separator. Preserve the original description and append your plan with markdown checkboxes (- [ ] task).\n\n' +
811
+ text;
812
+ }
793
813
  return {
794
- content: [{ type: 'text', text: JSON.stringify(workItem, null, 2) }],
814
+ content: [{ type: 'text', text }],
795
815
  };
796
816
  }
797
817
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wolfpack-mcp",
3
- "version": "1.0.16",
3
+ "version": "1.0.18",
4
4
  "description": "MCP server for Wolfpack AI-enhanced software delivery tools",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",