@specforge/mcp 3.0.7 → 3.1.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 (120) hide show
  1. package/dist/cli/commands/index.d.ts +2 -0
  2. package/dist/cli/commands/index.d.ts.map +1 -1
  3. package/dist/cli/commands/index.js +2 -0
  4. package/dist/cli/commands/index.js.map +1 -1
  5. package/dist/cli/commands/init.d.ts.map +1 -1
  6. package/dist/cli/commands/init.js +184 -2
  7. package/dist/cli/commands/init.js.map +1 -1
  8. package/dist/cli/commands/init.types.d.ts +37 -0
  9. package/dist/cli/commands/init.types.d.ts.map +1 -1
  10. package/dist/cli/commands/init.types.js +18 -0
  11. package/dist/cli/commands/init.types.js.map +1 -1
  12. package/dist/cli/commands/plan.d.ts +18 -0
  13. package/dist/cli/commands/plan.d.ts.map +1 -0
  14. package/dist/cli/commands/plan.js +154 -0
  15. package/dist/cli/commands/plan.js.map +1 -0
  16. package/dist/cli/commands/plan.types.d.ts +60 -0
  17. package/dist/cli/commands/plan.types.d.ts.map +1 -0
  18. package/dist/cli/commands/plan.types.js +8 -0
  19. package/dist/cli/commands/plan.types.js.map +1 -0
  20. package/dist/cli/commands/spec-activate.d.ts +29 -0
  21. package/dist/cli/commands/spec-activate.d.ts.map +1 -0
  22. package/dist/cli/commands/spec-activate.js +155 -0
  23. package/dist/cli/commands/spec-activate.js.map +1 -0
  24. package/dist/cli/commands/spec-activate.types.d.ts +24 -0
  25. package/dist/cli/commands/spec-activate.types.d.ts.map +1 -0
  26. package/dist/cli/commands/spec-activate.types.js +8 -0
  27. package/dist/cli/commands/spec-activate.types.js.map +1 -0
  28. package/dist/cli/commands/status.d.ts.map +1 -1
  29. package/dist/cli/commands/status.js +89 -1
  30. package/dist/cli/commands/status.js.map +1 -1
  31. package/dist/cli/commands/status.types.d.ts +2 -0
  32. package/dist/cli/commands/status.types.d.ts.map +1 -1
  33. package/dist/cli/commands/status.types.js.map +1 -1
  34. package/dist/cli/config/agent-teams.types.d.ts +194 -0
  35. package/dist/cli/config/agent-teams.types.d.ts.map +1 -0
  36. package/dist/cli/config/agent-teams.types.js +36 -0
  37. package/dist/cli/config/agent-teams.types.js.map +1 -0
  38. package/dist/cli/config/index.d.ts +2 -0
  39. package/dist/cli/config/index.d.ts.map +1 -1
  40. package/dist/cli/config/index.js +2 -0
  41. package/dist/cli/config/index.js.map +1 -1
  42. package/dist/cli/config/loader.d.ts +36 -2
  43. package/dist/cli/config/loader.d.ts.map +1 -1
  44. package/dist/cli/config/loader.js +65 -0
  45. package/dist/cli/config/loader.js.map +1 -1
  46. package/dist/cli/config/validation.d.ts +69 -0
  47. package/dist/cli/config/validation.d.ts.map +1 -0
  48. package/dist/cli/config/validation.js +295 -0
  49. package/dist/cli/config/validation.js.map +1 -0
  50. package/dist/cli/config/writer.d.ts +39 -0
  51. package/dist/cli/config/writer.d.ts.map +1 -1
  52. package/dist/cli/config/writer.js +58 -0
  53. package/dist/cli/config/writer.js.map +1 -1
  54. package/dist/cli/index.d.ts.map +1 -1
  55. package/dist/cli/index.js +5 -1
  56. package/dist/cli/index.js.map +1 -1
  57. package/dist/lib/index.d.ts +3 -0
  58. package/dist/lib/index.d.ts.map +1 -1
  59. package/dist/lib/index.js +3 -0
  60. package/dist/lib/index.js.map +1 -1
  61. package/dist/lib/monorepo-detector.d.ts +31 -0
  62. package/dist/lib/monorepo-detector.d.ts.map +1 -0
  63. package/dist/lib/monorepo-detector.js +271 -0
  64. package/dist/lib/monorepo-detector.js.map +1 -0
  65. package/dist/lib/prompt-generator.d.ts +65 -0
  66. package/dist/lib/prompt-generator.d.ts.map +1 -0
  67. package/dist/lib/prompt-generator.js +172 -0
  68. package/dist/lib/prompt-generator.js.map +1 -0
  69. package/dist/lib/strategy-analyzer.d.ts +59 -0
  70. package/dist/lib/strategy-analyzer.d.ts.map +1 -0
  71. package/dist/lib/strategy-analyzer.js +137 -0
  72. package/dist/lib/strategy-analyzer.js.map +1 -0
  73. package/dist/tools/core/context-helper.d.ts +22 -0
  74. package/dist/tools/core/context-helper.d.ts.map +1 -1
  75. package/dist/tools/core/context-helper.js +37 -1
  76. package/dist/tools/core/context-helper.js.map +1 -1
  77. package/dist/tools/core/workspace-files.d.ts +49 -0
  78. package/dist/tools/core/workspace-files.d.ts.map +1 -0
  79. package/dist/tools/core/workspace-files.js +259 -0
  80. package/dist/tools/core/workspace-files.js.map +1 -0
  81. package/dist/tools/index.d.ts.map +1 -1
  82. package/dist/tools/index.js +147 -0
  83. package/dist/tools/index.js.map +1 -1
  84. package/package.json +3 -2
  85. package/src/cli/templates/agents/content/core/sfag-implementer.ts +113 -0
  86. package/src/cli/templates/agents/content/core/sfag-orchestrator.ts +107 -0
  87. package/src/cli/templates/agents/content/core/sfag-spec-creator.ts +126 -0
  88. package/src/cli/templates/agents/content/core/sfag-ticket-implementer.ts +132 -0
  89. package/src/cli/templates/agents/content/research/sfag-package-researcher.ts +153 -0
  90. package/src/cli/templates/agents/content/task-type/sfag-api-implementer.ts +132 -0
  91. package/src/cli/templates/agents/content/task-type/sfag-docs-writer.ts +183 -0
  92. package/src/cli/templates/agents/content/task-type/sfag-frontend-builder.ts +141 -0
  93. package/src/cli/templates/agents/content/task-type/sfag-infra-architect.ts +149 -0
  94. package/src/cli/templates/agents/content/task-type/sfag-schema-designer.ts +132 -0
  95. package/src/cli/templates/agents/content/task-type/sfag-test-writer.ts +171 -0
  96. package/src/cli/templates/agents/index.ts +74 -0
  97. package/src/cli/templates/commands.ts +179 -0
  98. package/src/cli/templates/content/sf-autonomous.ts +78 -0
  99. package/src/cli/templates/content/sf-blockers.ts +68 -0
  100. package/src/cli/templates/content/sf-commit.ts +78 -0
  101. package/src/cli/templates/content/sf-context.ts +64 -0
  102. package/src/cli/templates/content/sf-create-epics.ts +129 -0
  103. package/src/cli/templates/content/sf-create-spec.ts +136 -0
  104. package/src/cli/templates/content/sf-create-tickets.ts +148 -0
  105. package/src/cli/templates/content/sf-epic.ts +69 -0
  106. package/src/cli/templates/content/sf-help.ts +61 -0
  107. package/src/cli/templates/content/sf-import.ts +88 -0
  108. package/src/cli/templates/content/sf-init.ts +61 -0
  109. package/src/cli/templates/content/sf-next.ts +67 -0
  110. package/src/cli/templates/content/sf-reset.ts +78 -0
  111. package/src/cli/templates/content/sf-review.ts +67 -0
  112. package/src/cli/templates/content/sf-search.ts +64 -0
  113. package/src/cli/templates/content/sf-status.ts +67 -0
  114. package/src/cli/templates/content/sf-ticket.ts +76 -0
  115. package/src/cli/templates/content/sf-validate.ts +78 -0
  116. package/src/cli/templates/index.ts +16 -0
  117. package/src/cli/templates/skills/specforge-conventions.md +109 -0
  118. package/src/cli/templates/skills/specforge-orchestrator.md +401 -0
  119. package/src/cli/templates/skills/specforge-validator.md +122 -0
  120. package/src/cli/templates/skills/specforge-worker.md +378 -0
@@ -22,4 +22,6 @@ export { registerInvitationsCommand } from './invitations.js';
22
22
  export { registerCheckCircularCommand } from './check-circular.js';
23
23
  export { registerTreeCommand } from './tree.js';
24
24
  export { registerCriticalPathCommand } from './critical-path.js';
25
+ export { registerSpecActivateCommand } from './spec-activate.js';
26
+ export { registerPlanCommand } from './plan.js';
25
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
@@ -22,4 +22,6 @@ export { registerInvitationsCommand } from './invitations.js';
22
22
  export { registerCheckCircularCommand } from './check-circular.js';
23
23
  export { registerTreeCommand } from './tree.js';
24
24
  export { registerCriticalPathCommand } from './critical-path.js';
25
+ export { registerSpecActivateCommand } from './spec-activate.js';
26
+ export { registerPlanCommand } from './plan.js';
25
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BpC,OAAO,EACL,WAAW,EAUZ,MAAM,iBAAiB,CAAC;AAiRzB;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkMpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwB1D"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6BpC,OAAO,EACL,WAAW,EAaZ,MAAM,iBAAiB,CAAC;AAmbzB;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsOpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2B1D"}
@@ -7,12 +7,14 @@
7
7
  import inquirer from 'inquirer';
8
8
  import ora from 'ora';
9
9
  import fs from 'node:fs';
10
- import { resolveConfig, loadGlobalConfig, loadProjectConfig, saveProjectConfig, saveMcpConfig, addToGitignore, getConfigPaths, } from '../config/index.js';
10
+ import path from 'node:path';
11
+ import { fileURLToPath } from 'node:url';
12
+ import { resolveConfig, loadGlobalConfig, loadProjectConfig, saveProjectConfig, saveMcpConfig, setAgentTeamsConfig, addToGitignore, getConfigPaths, } from '../config/index.js';
11
13
  import { withErrorHandler, CliError, NetworkError, ValidationError } from '../middleware/error-handler.js';
12
14
  import { printSuccess, printWarning, printBlank, printHeader, printField, printHint, } from '../ui/output.js';
13
15
  import { colors } from '../ui/colors.js';
14
16
  import { ApiClient } from '../../client/api-client.js';
15
- import { FORMAT_CHOICES, DEFAULT_FORMAT, } from './init.types.js';
17
+ import { FORMAT_CHOICES, DEFAULT_FORMAT, STRATEGY_CHOICES, SKILL_TEMPLATE_FILES, } from './init.types.js';
16
18
  /**
17
19
  * Fetch user's projects from API
18
20
  */
@@ -228,6 +230,150 @@ function showSettings() {
228
230
  }
229
231
  printBlank();
230
232
  }
233
+ /**
234
+ * Prompt user for Agent Teams configuration
235
+ */
236
+ async function promptForAgentTeams() {
237
+ const { configure } = await inquirer.prompt([
238
+ {
239
+ type: 'confirm',
240
+ name: 'configure',
241
+ message: 'Configure Agent Teams?',
242
+ default: false,
243
+ },
244
+ ]);
245
+ if (!configure) {
246
+ return null;
247
+ }
248
+ const answers = await inquirer.prompt([
249
+ {
250
+ type: 'list',
251
+ name: 'strategy',
252
+ message: 'Team strategy:',
253
+ choices: STRATEGY_CHOICES,
254
+ default: 'auto',
255
+ },
256
+ {
257
+ type: 'number',
258
+ name: 'maxWorkersPerTeam',
259
+ message: 'Max workers per team (1-10):',
260
+ default: 3,
261
+ validate: (val) => {
262
+ if (!Number.isInteger(val) || val < 1 || val > 10) {
263
+ return 'Must be an integer between 1 and 10';
264
+ }
265
+ return true;
266
+ },
267
+ },
268
+ {
269
+ type: 'number',
270
+ name: 'maxParallelTeams',
271
+ message: 'Max parallel teams (1-5):',
272
+ default: 3,
273
+ validate: (val) => {
274
+ if (!Number.isInteger(val) || val < 1 || val > 5) {
275
+ return 'Must be an integer between 1 and 5';
276
+ }
277
+ return true;
278
+ },
279
+ },
280
+ {
281
+ type: 'list',
282
+ name: 'branchPrefix',
283
+ message: 'Branch prefix:',
284
+ choices: [
285
+ { name: 'ticket/ (Recommended)', value: 'ticket/' },
286
+ { name: 'epic/', value: 'epic/' },
287
+ { name: 'spec/', value: 'spec/' },
288
+ ],
289
+ default: 'ticket/',
290
+ },
291
+ ]);
292
+ return {
293
+ enabled: true,
294
+ strategy: answers.strategy,
295
+ maxWorkersPerTeam: answers.maxWorkersPerTeam,
296
+ maxParallelTeams: answers.maxParallelTeams,
297
+ branchPrefix: answers.branchPrefix,
298
+ };
299
+ }
300
+ /**
301
+ * Get the path to the skill templates directory bundled with the CLI.
302
+ *
303
+ * Templates live in src/cli/templates/skills/ (not compiled by tsc).
304
+ * We resolve from the current file's location to the package root,
305
+ * then navigate into the source templates directory.
306
+ */
307
+ function getTemplatesDir() {
308
+ const __filename = fileURLToPath(import.meta.url);
309
+ const __dirname = path.dirname(__filename);
310
+ // From dist/cli/commands/ or src/cli/commands/ -> package root -> src/cli/templates/skills/
311
+ const packageRoot = path.resolve(__dirname, '..', '..', '..');
312
+ return path.join(packageRoot, 'src', 'cli', 'templates', 'skills');
313
+ }
314
+ /**
315
+ * Scaffold skill files from templates into the user's project
316
+ */
317
+ async function scaffoldSkillFiles(projectName, skipPrompts) {
318
+ const templatesDir = getTemplatesDir();
319
+ const targetDir = path.resolve(process.cwd(), '.claude', 'skills');
320
+ // Verify templates exist
321
+ if (!fs.existsSync(templatesDir)) {
322
+ printWarning('Skill templates not found. Skipping scaffolding.');
323
+ return;
324
+ }
325
+ try {
326
+ // Ensure target directory exists
327
+ fs.mkdirSync(targetDir, { recursive: true });
328
+ }
329
+ catch {
330
+ printWarning('Could not create .claude/skills/ directory. Skipping skill scaffolding.');
331
+ return;
332
+ }
333
+ const scaffolded = [];
334
+ for (const file of SKILL_TEMPLATE_FILES) {
335
+ const sourcePath = path.join(templatesDir, file);
336
+ const targetPath = path.join(targetDir, file);
337
+ if (!fs.existsSync(sourcePath)) {
338
+ continue;
339
+ }
340
+ // Check if file already exists
341
+ if (fs.existsSync(targetPath) && !skipPrompts) {
342
+ const { overwrite } = await inquirer.prompt([
343
+ {
344
+ type: 'confirm',
345
+ name: 'overwrite',
346
+ message: `Skill file ${file} already exists. Overwrite?`,
347
+ default: false,
348
+ },
349
+ ]);
350
+ if (!overwrite) {
351
+ continue;
352
+ }
353
+ }
354
+ try {
355
+ // Read template content
356
+ let content = fs.readFileSync(sourcePath, 'utf-8');
357
+ // Interpolate {{PROJECT_NAME}} if available
358
+ if (projectName) {
359
+ content = content.replace(/\{\{PROJECT_NAME\}\}/g, projectName);
360
+ }
361
+ fs.writeFileSync(targetPath, content);
362
+ scaffolded.push(file);
363
+ }
364
+ catch {
365
+ // Skip files that fail to read/write
366
+ continue;
367
+ }
368
+ }
369
+ if (scaffolded.length > 0) {
370
+ printBlank();
371
+ printSuccess(`Scaffolded ${scaffolded.length} skill file(s) to .claude/skills/`);
372
+ for (const file of scaffolded) {
373
+ console.log(` ${colors.muted('•')} ${file}`);
374
+ }
375
+ }
376
+ }
231
377
  /**
232
378
  * Init command implementation
233
379
  */
@@ -365,6 +511,35 @@ export async function initAction(options) {
365
511
  if (addedMcp) {
366
512
  printSuccess('Added .mcp.json to .gitignore');
367
513
  }
514
+ // Agent Teams configuration
515
+ // Skip prompts when fully non-interactive (all flags provided) or --yes
516
+ const isNonInteractive = !!(options.yes || (options.project && options.spec && options.format));
517
+ let agentTeamsConfig = null;
518
+ if (isNonInteractive) {
519
+ // Skip Agent Teams prompts entirely in non-interactive mode
520
+ agentTeamsConfig = {
521
+ enabled: false,
522
+ strategy: 'auto',
523
+ maxWorkersPerTeam: 3,
524
+ maxParallelTeams: 3,
525
+ branchPrefix: 'ticket/',
526
+ };
527
+ }
528
+ else {
529
+ printBlank();
530
+ agentTeamsConfig = await promptForAgentTeams();
531
+ }
532
+ if (agentTeamsConfig?.enabled) {
533
+ setAgentTeamsConfig({
534
+ enabled: agentTeamsConfig.enabled,
535
+ strategy: agentTeamsConfig.strategy,
536
+ maxParallelTeams: agentTeamsConfig.maxParallelTeams,
537
+ branchPrefix: agentTeamsConfig.branchPrefix,
538
+ });
539
+ printSuccess('Saved Agent Teams configuration to .specforge.json');
540
+ }
541
+ // Scaffold skill files
542
+ await scaffoldSkillFiles(selectedProject.name, isNonInteractive);
368
543
  // Success summary
369
544
  printBlank();
370
545
  printHeader('Configuration Complete');
@@ -375,6 +550,10 @@ export async function initAction(options) {
375
550
  }
376
551
  printField('Format', selectedFormat);
377
552
  printField('Auto-context', 'enabled');
553
+ if (agentTeamsConfig?.enabled) {
554
+ printField('Agent Teams', 'enabled');
555
+ printField('Strategy', agentTeamsConfig.strategy);
556
+ }
378
557
  printBlank();
379
558
  console.log(colors.warning('Restart Claude Code to activate SpecForge MCP.'));
380
559
  printBlank();
@@ -396,6 +575,7 @@ export function registerInitCommand(program) {
396
575
  .option('--format <format>', 'Output format: json or toon (default: toon)')
397
576
  .option('-f, --force', 'Overwrite existing configuration files')
398
577
  .option('-s, --show', 'Display current configuration settings')
578
+ .option('-y, --yes', 'Skip interactive prompts, use defaults')
399
579
  .addHelpText('after', `
400
580
  Examples:
401
581
  $ specforge init # Interactive setup
@@ -403,10 +583,12 @@ Examples:
403
583
  $ specforge init --project proj_abc123 # Set project non-interactively
404
584
  $ specforge init --project proj_abc --spec spec_xyz --format toon
405
585
  $ specforge init --force # Overwrite existing config
586
+ $ specforge init --yes # Use defaults, skip prompts
406
587
 
407
588
  This command creates:
408
589
  .mcp.json - Claude Code MCP server configuration
409
590
  .specforge.json - Project-specific SpecForge settings
591
+ .claude/skills/ - Agent Teams skill files (orchestrator, worker, etc.)
410
592
 
411
593
  After running init, restart Claude Code to activate the MCP server.
412
594
  `)
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,44 @@ export interface InitOptions {
18
18
  force?: boolean;
19
19
  /** Show current configuration settings */
20
20
  show?: boolean;
21
+ /** Skip all interactive prompts, use defaults */
22
+ yes?: boolean;
21
23
  }
24
+ /**
25
+ * Agent Teams configuration collected during init
26
+ */
27
+ export interface AgentTeamsInitOptions {
28
+ /** Whether to configure Agent Teams */
29
+ enabled: boolean;
30
+ /** Execution strategy */
31
+ strategy: 'auto' | 'single' | 'parallel' | 'phased';
32
+ /** Max workers per team (1-10) */
33
+ maxWorkersPerTeam: number;
34
+ /** Max parallel teams (1-5) */
35
+ maxParallelTeams: number;
36
+ /** Branch prefix for ticket branches */
37
+ branchPrefix: string;
38
+ }
39
+ /**
40
+ * Strategy choices for Agent Teams init prompt
41
+ */
42
+ export declare const STRATEGY_CHOICES: ({
43
+ name: string;
44
+ value: "auto";
45
+ } | {
46
+ name: string;
47
+ value: "single";
48
+ } | {
49
+ name: string;
50
+ value: "parallel";
51
+ } | {
52
+ name: string;
53
+ value: "phased";
54
+ })[];
55
+ /**
56
+ * Skill template files to scaffold
57
+ */
58
+ export declare const SKILL_TEMPLATE_FILES: readonly ["specforge-orchestrator.md", "specforge-worker.md", "specforge-validator.md", "specforge-conventions.md"];
22
59
  /**
23
60
  * Project returned from list_projects API call
24
61
  */
@@ -1 +1 @@
1
- {"version":3,"file":"init.types.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.types.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.types.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,24 @@
4
4
  * Type definitions for the init command including options,
5
5
  * API responses, and selection interfaces.
6
6
  */
7
+ /**
8
+ * Strategy choices for Agent Teams init prompt
9
+ */
10
+ export const STRATEGY_CHOICES = [
11
+ { name: 'auto (Recommended)', value: 'auto' },
12
+ { name: 'single - Sequential, one worker', value: 'single' },
13
+ { name: 'parallel - All epic teams run concurrently', value: 'parallel' },
14
+ { name: 'phased - Dependency-ordered phases', value: 'phased' },
15
+ ];
16
+ /**
17
+ * Skill template files to scaffold
18
+ */
19
+ export const SKILL_TEMPLATE_FILES = [
20
+ 'specforge-orchestrator.md',
21
+ 'specforge-worker.md',
22
+ 'specforge-validator.md',
23
+ 'specforge-conventions.md',
24
+ ];
7
25
  /**
8
26
  * Format display names with descriptions
9
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"init.types.js","sourceRoot":"","sources":["../../../src/cli/commands/init.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6KH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C;QACE,IAAI,EAAE,uCAAuC;QAC7C,KAAK,EAAE,MAAM;KACd;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,MAAM;KACd;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB,MAAM,CAAC"}
1
+ {"version":3,"file":"init.types.js","sourceRoot":"","sources":["../../../src/cli/commands/init.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6CH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAe,EAAE;IACtD,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,QAAiB,EAAE;IACrE,EAAE,IAAI,EAAE,4CAA4C,EAAE,KAAK,EAAE,UAAmB,EAAE;IAClF,EAAE,IAAI,EAAE,oCAAoC,EAAE,KAAK,EAAE,QAAiB,EAAE;CACzE,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,2BAA2B;IAC3B,qBAAqB;IACrB,wBAAwB;IACxB,0BAA0B;CAClB,CAAC;AAyJX;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C;QACE,IAAI,EAAE,uCAAuC;QAC7C,KAAK,EAAE,MAAM;KACd;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,MAAM;KACd;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB,MAAM,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Plan Command
3
+ *
4
+ * Dry-run visualization of the Agent Teams implementation plan.
5
+ * Calls get_implementation_plan via MCP and displays an ASCII tree
6
+ * showing team-worker mapping, execution phases, and dependency status.
7
+ */
8
+ import { Command } from 'commander';
9
+ import type { PlanOptions } from './plan.types.js';
10
+ /**
11
+ * Plan command action handler
12
+ */
13
+ export declare function planAction(options: PlanOptions): Promise<void>;
14
+ /**
15
+ * Register plan command with Commander
16
+ */
17
+ export declare function registerPlanCommand(program: Command): void;
18
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/plan.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,OAAO,KAAK,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAC;AAyFvE;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyB1D"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Plan Command
3
+ *
4
+ * Dry-run visualization of the Agent Teams implementation plan.
5
+ * Calls get_implementation_plan via MCP and displays an ASCII tree
6
+ * showing team-worker mapping, execution phases, and dependency status.
7
+ */
8
+ import ora from 'ora';
9
+ import { resolveConfig } from '../config/index.js';
10
+ import { loadProjectConfig, getActiveSpecification } from '../config/loader.js';
11
+ import { withErrorHandler, CliError, NetworkError } from '../middleware/error-handler.js';
12
+ import { printBlank, printJson } from '../ui/output.js';
13
+ import { colors } from '../ui/colors.js';
14
+ import { ApiClient } from '../../client/api-client.js';
15
+ /**
16
+ * Resolve the specification ID from options or active spec config
17
+ */
18
+ function resolveSpecificationId(options, configSpecId) {
19
+ if (options.spec) {
20
+ return options.spec;
21
+ }
22
+ // Try active specification from .specforge.json
23
+ const projectConfig = loadProjectConfig();
24
+ const activeSpec = getActiveSpecification(projectConfig);
25
+ if (activeSpec?.id) {
26
+ return activeSpec.id;
27
+ }
28
+ // Fall back to specificationId from resolved config
29
+ if (configSpecId) {
30
+ return configSpecId;
31
+ }
32
+ throw new CliError('No active specification', 1, "Run 'specforge spec activate <id>' to set an active specification, or use --spec <id>");
33
+ }
34
+ /**
35
+ * Render the ASCII tree visualization of the implementation plan
36
+ */
37
+ function renderPlanTree(plan) {
38
+ printBlank();
39
+ // Strategy header
40
+ console.log(`${colors.bold('Strategy:')} ${colors.primary(plan.strategy)} ${colors.muted(`(${plan.reasoning})`)}`);
41
+ printBlank();
42
+ if (plan.teams.length === 0) {
43
+ console.log(colors.muted('No teams to display. The specification may have no remaining work.'));
44
+ printBlank();
45
+ return;
46
+ }
47
+ // Build a lookup: team name -> phase number
48
+ const teamPhaseMap = new Map();
49
+ for (const phase of plan.executionOrder) {
50
+ for (const teamName of phase.teams) {
51
+ teamPhaseMap.set(teamName, phase.phase);
52
+ }
53
+ }
54
+ // Render by execution phase
55
+ for (const phase of plan.executionOrder) {
56
+ const phaseLabel = phase.phase === 1
57
+ ? 'parallel'
58
+ : `after phase ${phase.phase - 1}`;
59
+ console.log(colors.bold(`Phase ${phase.phase}`) + colors.muted(` (${phaseLabel}):`));
60
+ // Find teams in this phase
61
+ const phaseTeams = plan.teams.filter(t => phase.teams.includes(t.name));
62
+ for (const team of phaseTeams) {
63
+ console.log(` ${colors.bold('Team:')} ${colors.primary(team.name)} ${colors.muted(`(${team.suggestedWorkers} worker${team.suggestedWorkers === 1 ? '' : 's'})`)}`);
64
+ for (const task of team.tasks) {
65
+ const isBlocked = task.blockedBy.length > 0;
66
+ if (isBlocked) {
67
+ const deps = task.blockedBy.join(', ');
68
+ console.log(` ${colors.warning('[BLOCKED]')} ${task.slug}: ${task.title} ${colors.muted(`(by ${deps})`)}`);
69
+ }
70
+ else {
71
+ console.log(` ${colors.success('[READY]')} ${task.slug}: ${task.title}`);
72
+ }
73
+ }
74
+ }
75
+ printBlank();
76
+ }
77
+ // Summary line
78
+ console.log(`${colors.bold('Total:')} ${plan.estimatedTotalTickets} tickets, ` +
79
+ `${plan.estimatedParallelizableTickets} parallelizable`);
80
+ printBlank();
81
+ }
82
+ /**
83
+ * Plan command action handler
84
+ */
85
+ export async function planAction(options) {
86
+ const config = resolveConfig();
87
+ if (!config.apiKey) {
88
+ throw new CliError('Not authenticated', 1, 'Run `specforge login` to authenticate first');
89
+ }
90
+ const specificationId = resolveSpecificationId(options, config.specificationId);
91
+ const spinner = ora({
92
+ text: 'Generating implementation plan...',
93
+ color: 'cyan',
94
+ }).start();
95
+ try {
96
+ const client = new ApiClient({
97
+ apiKey: config.apiKey,
98
+ apiUrl: config.apiUrl,
99
+ debug: config.debug,
100
+ });
101
+ const plan = await client.call('get_implementation_plan', {
102
+ specificationId,
103
+ ...(options.strategy && options.strategy !== 'auto' ? { strategy: options.strategy } : {}),
104
+ });
105
+ spinner.stop();
106
+ if (options.json) {
107
+ printJson(plan);
108
+ }
109
+ else {
110
+ renderPlanTree(plan);
111
+ }
112
+ }
113
+ catch (error) {
114
+ spinner.fail('Failed to generate implementation plan');
115
+ const message = error instanceof Error ? error.message : 'Unknown error';
116
+ if (message.includes('401') || message.includes('Unauthorized')) {
117
+ throw new CliError('Authentication failed', 1, 'Your API key may be invalid. Run `specforge login` to re-authenticate');
118
+ }
119
+ if (message.includes('404') || message.includes('Not Found') || message.includes('not found')) {
120
+ throw new CliError(`Specification not found: ${specificationId}`, 1, "Run 'specforge specs' to list available specifications.");
121
+ }
122
+ throw new NetworkError(`Failed to generate plan: ${message}`);
123
+ }
124
+ }
125
+ /**
126
+ * Register plan command with Commander
127
+ */
128
+ export function registerPlanCommand(program) {
129
+ program
130
+ .command('plan')
131
+ .description('Preview Agent Teams implementation plan (dry-run)')
132
+ .option('--strategy <type>', 'Override strategy: epic-as-team | spec-as-team | single-session | auto')
133
+ .option('--spec <id>', 'Specification ID (overrides active spec)')
134
+ .option('--json', 'Output raw JSON plan')
135
+ .addHelpText('after', `
136
+ Examples:
137
+ $ specforge plan # Preview plan for active spec
138
+ $ specforge plan --strategy epic-as-team # Force epic-as-team strategy
139
+ $ specforge plan --spec ff1f8edb-4976-458b-acb0 # Plan for a specific spec
140
+ $ specforge plan --json # Output raw JSON for scripting
141
+
142
+ Output shows:
143
+ - Strategy name and reasoning
144
+ - Execution phases with team groupings
145
+ - Ticket-to-worker mapping with dependency indicators
146
+ - [READY] for tickets that can start immediately
147
+ - [BLOCKED] for tickets waiting on dependencies
148
+
149
+ This is a dry-run visualization - it does NOT execute anything.
150
+ Use 'specforge spec activate <specId>' to set the active specification.
151
+ `)
152
+ .action(withErrorHandler(planAction));
153
+ }
154
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/cli/commands/plan.ts"],"names":[],"mappings":"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"}