@planu/cli 0.29.0 → 0.30.1

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 (103) hide show
  1. package/dist/config/license-plans.json +7 -1
  2. package/dist/engine/ci-generator/planu-config.d.ts +7 -0
  3. package/dist/engine/ci-generator/planu-config.d.ts.map +1 -0
  4. package/dist/engine/ci-generator/planu-config.js +40 -0
  5. package/dist/engine/ci-generator/planu-config.js.map +1 -0
  6. package/dist/engine/ci-generator/planu-steps.d.ts +11 -0
  7. package/dist/engine/ci-generator/planu-steps.d.ts.map +1 -0
  8. package/dist/engine/ci-generator/planu-steps.js +292 -0
  9. package/dist/engine/ci-generator/planu-steps.js.map +1 -0
  10. package/dist/engine/spec-templates/catalog-industry.d.ts +4 -0
  11. package/dist/engine/spec-templates/catalog-industry.d.ts.map +1 -0
  12. package/dist/engine/spec-templates/catalog-industry.js +19 -0
  13. package/dist/engine/spec-templates/catalog-industry.js.map +1 -0
  14. package/dist/engine/spec-templates/catalog.d.ts +1 -1
  15. package/dist/engine/spec-templates/catalog.d.ts.map +1 -1
  16. package/dist/engine/spec-templates/catalog.js +3 -1
  17. package/dist/engine/spec-templates/catalog.js.map +1 -1
  18. package/dist/engine/spec-templates/custom-loader.d.ts +12 -0
  19. package/dist/engine/spec-templates/custom-loader.d.ts.map +1 -0
  20. package/dist/engine/spec-templates/custom-loader.js +99 -0
  21. package/dist/engine/spec-templates/custom-loader.js.map +1 -0
  22. package/dist/engine/spec-templates/index.d.ts +4 -2
  23. package/dist/engine/spec-templates/index.d.ts.map +1 -1
  24. package/dist/engine/spec-templates/index.js +4 -2
  25. package/dist/engine/spec-templates/index.js.map +1 -1
  26. package/dist/engine/spec-templates/query.d.ts +12 -4
  27. package/dist/engine/spec-templates/query.d.ts.map +1 -1
  28. package/dist/engine/spec-templates/query.js +29 -7
  29. package/dist/engine/spec-templates/query.js.map +1 -1
  30. package/dist/engine/spec-templates/renderer.d.ts +27 -2
  31. package/dist/engine/spec-templates/renderer.d.ts.map +1 -1
  32. package/dist/engine/spec-templates/renderer.js +119 -4
  33. package/dist/engine/spec-templates/renderer.js.map +1 -1
  34. package/dist/engine/spec-templates/templates-api-ui.d.ts.map +1 -1
  35. package/dist/engine/spec-templates/templates-api-ui.js +28 -1
  36. package/dist/engine/spec-templates/templates-api-ui.js.map +1 -1
  37. package/dist/engine/spec-templates/templates-auth-crud.d.ts.map +1 -1
  38. package/dist/engine/spec-templates/templates-auth-crud.js +27 -0
  39. package/dist/engine/spec-templates/templates-auth-crud.js.map +1 -1
  40. package/dist/engine/spec-templates/templates-data-security.d.ts.map +1 -1
  41. package/dist/engine/spec-templates/templates-data-security.js +26 -0
  42. package/dist/engine/spec-templates/templates-data-security.js.map +1 -1
  43. package/dist/engine/spec-templates/templates-industry-ecom.d.ts +6 -0
  44. package/dist/engine/spec-templates/templates-industry-ecom.d.ts.map +1 -0
  45. package/dist/engine/spec-templates/templates-industry-ecom.js +209 -0
  46. package/dist/engine/spec-templates/templates-industry-ecom.js.map +1 -0
  47. package/dist/engine/spec-templates/templates-industry-fintech.d.ts +8 -0
  48. package/dist/engine/spec-templates/templates-industry-fintech.d.ts.map +1 -0
  49. package/dist/engine/spec-templates/templates-industry-fintech.js +350 -0
  50. package/dist/engine/spec-templates/templates-industry-fintech.js.map +1 -0
  51. package/dist/engine/spec-templates/templates-industry-health-ecom.d.ts +3 -0
  52. package/dist/engine/spec-templates/templates-industry-health-ecom.d.ts.map +1 -0
  53. package/dist/engine/spec-templates/templates-industry-health-ecom.js +5 -0
  54. package/dist/engine/spec-templates/templates-industry-health-ecom.js.map +1 -0
  55. package/dist/engine/spec-templates/templates-industry-health.d.ts +6 -0
  56. package/dist/engine/spec-templates/templates-industry-health.d.ts.map +1 -0
  57. package/dist/engine/spec-templates/templates-industry-health.js +208 -0
  58. package/dist/engine/spec-templates/templates-industry-health.js.map +1 -0
  59. package/dist/engine/spec-templates/templates-industry-saas.d.ts +8 -0
  60. package/dist/engine/spec-templates/templates-industry-saas.d.ts.map +1 -0
  61. package/dist/engine/spec-templates/templates-industry-saas.js +323 -0
  62. package/dist/engine/spec-templates/templates-industry-saas.js.map +1 -0
  63. package/dist/engine/spec-templates/templates-perf-integration.d.ts.map +1 -1
  64. package/dist/engine/spec-templates/templates-perf-integration.js +27 -0
  65. package/dist/engine/spec-templates/templates-perf-integration.js.map +1 -1
  66. package/dist/resources/process.js +1 -1
  67. package/dist/tools/ci-planu-handler.d.ts +8 -0
  68. package/dist/tools/ci-planu-handler.d.ts.map +1 -0
  69. package/dist/tools/ci-planu-handler.js +44 -0
  70. package/dist/tools/ci-planu-handler.js.map +1 -0
  71. package/dist/tools/init-project/handler.d.ts.map +1 -1
  72. package/dist/tools/init-project/handler.js +24 -159
  73. package/dist/tools/init-project/handler.js.map +1 -1
  74. package/dist/tools/init-project/result-builder.d.ts +4 -0
  75. package/dist/tools/init-project/result-builder.d.ts.map +1 -0
  76. package/dist/tools/init-project/result-builder.js +150 -0
  77. package/dist/tools/init-project/result-builder.js.map +1 -0
  78. package/dist/tools/learn.d.ts.map +1 -1
  79. package/dist/tools/learn.js +67 -14
  80. package/dist/tools/learn.js.map +1 -1
  81. package/dist/tools/license-status.d.ts.map +1 -1
  82. package/dist/tools/license-status.js +17 -2
  83. package/dist/tools/license-status.js.map +1 -1
  84. package/dist/tools/register-ci-tools.d.ts.map +1 -1
  85. package/dist/tools/register-ci-tools.js +36 -0
  86. package/dist/tools/register-ci-tools.js.map +1 -1
  87. package/dist/tools/register-template-tools.d.ts.map +1 -1
  88. package/dist/tools/register-template-tools.js +21 -8
  89. package/dist/tools/register-template-tools.js.map +1 -1
  90. package/dist/tools/spec-templates.d.ts +1 -1
  91. package/dist/tools/spec-templates.d.ts.map +1 -1
  92. package/dist/tools/spec-templates.js +20 -6
  93. package/dist/tools/spec-templates.js.map +1 -1
  94. package/dist/types/ci.d.ts +51 -0
  95. package/dist/types/ci.d.ts.map +1 -1
  96. package/dist/types/project/core.d.ts +46 -5
  97. package/dist/types/project/core.d.ts.map +1 -1
  98. package/dist/types/spec-templates.d.ts +51 -1
  99. package/dist/types/spec-templates.d.ts.map +1 -1
  100. package/dist/types/vector-store.d.ts +7 -0
  101. package/dist/types/vector-store.d.ts.map +1 -1
  102. package/package.json +1 -1
  103. package/src/config/license-plans.json +7 -1
@@ -3,6 +3,19 @@
3
3
  import { licenseStore } from '../storage/index.js';
4
4
  import { getTierLimits, loadLicensePlans } from '../engine/license-validator.js';
5
5
  import { getCurrentTier } from './license-gate.js';
6
+ import { readFileSync } from 'node:fs';
7
+ import { join, dirname } from 'node:path';
8
+ import { fileURLToPath } from 'node:url';
9
+ function getVersion() {
10
+ try {
11
+ const dir = dirname(fileURLToPath(import.meta.url));
12
+ const pkg = JSON.parse(readFileSync(join(dir, '../../package.json'), 'utf-8'));
13
+ return pkg.version;
14
+ }
15
+ catch {
16
+ return 'unknown';
17
+ }
18
+ }
6
19
  export async function handleLicenseStatus(_args) {
7
20
  const state = await licenseStore.getLicenseState();
8
21
  const tier = await getCurrentTier();
@@ -13,7 +26,8 @@ export async function handleLicenseStatus(_args) {
13
26
  lines.push(`## Planu License Status`);
14
27
  lines.push('');
15
28
  const tierLabel = tier.charAt(0).toUpperCase() + tier.slice(1);
16
- const totalTools = config.freeTools.length + config.proTools.length;
29
+ const totalTools = config.freeTools.length + config.proTools.length + config.alwaysAllowed.length;
30
+ lines.push(`**Version:** ${getVersion()}`);
17
31
  lines.push(`**Plan:** ${tierLabel}`);
18
32
  if (state) {
19
33
  lines.push(`**Customer:** ${state.customerName} (${state.customerEmail})`);
@@ -22,7 +36,8 @@ export async function handleLicenseStatus(_args) {
22
36
  lines.push(`**Last validated:** ${state.lastValidatedAt}`);
23
37
  }
24
38
  if (tier === 'free') {
25
- lines.push(`**Tools available:** ${String(config.freeTools.length)} of ${String(totalTools)}`);
39
+ const freeAvailable = config.freeTools.length + config.alwaysAllowed.length;
40
+ lines.push(`**Tools available:** ${String(freeAvailable)} of ${String(totalTools)}`);
26
41
  }
27
42
  else {
28
43
  lines.push(`**Tools available:** ${String(totalTools)} of ${String(totalTools)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"license-status.js","sourceRoot":"","sources":["../../src/tools/license-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"license-status.js","sourceRoot":"","sources":["../../src/tools/license-status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-ci-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-ci-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsEvD"}
1
+ {"version":3,"file":"register-ci-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-ci-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiHvD"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { handleGenerateCI } from './ci-generator.js';
3
+ import { handleGeneratePlanuCI } from './ci-planu-handler.js';
3
4
  import { safeLicensed } from './safe-handler.js';
4
5
  export function registerCITools(server) {
5
6
  server.registerTool('generate_ci', {
@@ -46,5 +47,40 @@ export function registerCITools(server) {
46
47
  },
47
48
  annotations: { readOnlyHint: true },
48
49
  }, safeLicensed('generate_ci', async (args) => handleGenerateCI(args)));
50
+ server.registerTool('generate_planu_ci', {
51
+ description: 'Generate a Planu-specific GitHub Actions CI workflow that validates specs, detects drift between code and specs, posts results as PR comments, generates badges, and supports .planu.yml configuration. Produces ready-to-use workflow YAML + config file.',
52
+ inputSchema: {
53
+ projectId: z.string().describe('Project ID'),
54
+ specsDir: z
55
+ .string()
56
+ .optional()
57
+ .describe('Directory containing specs (default: "docs/sdd/specs")'),
58
+ detectDrift: z
59
+ .boolean()
60
+ .optional()
61
+ .describe('Enable drift detection between code changes and specs (default: true)'),
62
+ failOnDrift: z
63
+ .boolean()
64
+ .optional()
65
+ .describe('Exit with code 1 when drift/issues detected above threshold (default: true)'),
66
+ severityThreshold: z
67
+ .enum(['critical', 'warning', 'info'])
68
+ .optional()
69
+ .describe('Severity threshold for CI failure: critical | warning | info (default: "warning"). critical = only mandatory broken specs; warning = any drift or incomplete criteria; info = always passes'),
70
+ postComment: z
71
+ .boolean()
72
+ .optional()
73
+ .describe('Post/update a markdown results comment on PRs (default: true)'),
74
+ badge: z
75
+ .boolean()
76
+ .optional()
77
+ .describe('Generate a shields.io badge endpoint for README (default: true)'),
78
+ workingDirectory: z
79
+ .string()
80
+ .optional()
81
+ .describe('Working directory for monorepo projects (default: ".")'),
82
+ },
83
+ annotations: { readOnlyHint: true },
84
+ }, safeLicensed('generate_planu_ci', (args) => Promise.resolve(handleGeneratePlanuCI(args))));
49
85
  }
50
86
  //# sourceMappingURL=register-ci-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-ci-tools.js","sourceRoot":"","sources":["../../src/tools/register-ci-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EACT,qPAAqP;QACvP,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACrE,IAAI,EAAE,CAAC;iBACJ,KAAK,CACJ,CAAC;iBACE,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;iBACzC,QAAQ,CAAC,wCAAwC,CAAC,CACtD;iBACA,QAAQ,EAAE;iBACV,QAAQ,CACP,iGAAiG,CAClG;YACH,QAAQ,EAAE,CAAC;iBACR,KAAK,CACJ,CAAC;iBACE,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC;iBAC/D,QAAQ,CAAC,6DAA6D,CAAC,CAC3E;iBACA,QAAQ,EAAE;iBACV,QAAQ,CACP,6HAA6H,CAC9H;YACH,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,gGAAgG,CACjG;YACH,aAAa,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,8GAA8G,CAC/G;YACH,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,+EAA+E,CAChF;YACH,WAAW,EAAE,CAAC;iBACX,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;iBACnC,QAAQ,EAAE;iBACV,QAAQ,CACP,oGAAoG,CACrG;YACH,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,8FAA8F,CAC/F;YACH,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,8FAA8F,CAC/F;SACJ;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"register-ci-tools.js","sourceRoot":"","sources":["../../src/tools/register-ci-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-template-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-template-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkBzE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyE7D"}
1
+ {"version":3,"file":"register-template-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-template-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqBzE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwF7D"}
@@ -13,7 +13,9 @@ const TEMPLATE_CATEGORIES = [
13
13
  'data',
14
14
  'security',
15
15
  'performance',
16
+ 'industry',
16
17
  ];
18
+ const COMPLEXITY_SCORES = ['S', 'M', 'L', 'XL'];
17
19
  /**
18
20
  * Registers spec template tools on the MCP server.
19
21
  * - list_templates: free, tracked
@@ -22,29 +24,36 @@ const TEMPLATE_CATEGORIES = [
22
24
  export function registerTemplateTools(server) {
23
25
  // list_templates — browse and discover templates
24
26
  server.registerTool('list_templates', {
25
- description: 'Browse the built-in spec template catalog. Returns available templates with descriptions, ' +
26
- 'categories, tags, and required variables. Use apply_template to create a spec from a template.',
27
+ description: 'Browse the built-in and custom spec template catalog. Returns available templates with descriptions, ' +
28
+ 'categories, tags, complexity scores, and required variables. ' +
29
+ 'Custom templates in data/global/spec-templates/custom/ are included automatically. ' +
30
+ 'Use apply_template to create a spec from a template.',
27
31
  inputSchema: {
28
32
  category: z
29
33
  .enum(TEMPLATE_CATEGORIES)
30
34
  .optional()
31
- .describe('Filter templates by category. Type: auth | crud | api | ui | infra | testing | integration | data | security | performance'),
35
+ .describe('Filter templates by category. Type: auth | crud | api | ui | infra | testing | integration | data | security | performance | industry'),
32
36
  search: z
33
37
  .string()
34
38
  .optional()
35
39
  .describe('Full-text search across template names, descriptions, and tags (case-insensitive)'),
40
+ complexityScore: z
41
+ .enum(COMPLEXITY_SCORES)
42
+ .optional()
43
+ .describe('Filter by complexity score. Type: S (<16h) | M (16-40h) | L (40-80h) | XL (>80h)'),
36
44
  },
37
45
  annotations: { title: 'List Spec Templates', readOnlyHint: true },
38
- }, safeTracked('list_templates', (args) => Promise.resolve(handleListTemplates(args))));
46
+ }, safeTracked('list_templates', async (args) => handleListTemplates(args)));
39
47
  // apply_template — create spec files from a template
40
48
  server.registerTool('apply_template', {
41
- description: 'Create HU.md, FICHA-TECNICA.md, and PROGRESS.md from a built-in spec template. ' +
42
- 'Templates are language-agnostic and cover common feature patterns (auth, CRUD, API, etc.). ' +
43
- 'Use list_templates first to discover available templates and their required variables.',
49
+ description: 'Create HU.md, FICHA-TECNICA.md, and PROGRESS.md from a spec template. ' +
50
+ 'Templates are language-agnostic and cover common feature patterns (auth, CRUD, API, etc.) and industry verticals (fintech, healthtech, e-commerce, SaaS). ' +
51
+ 'Use list_templates first to discover available templates and their required variables. ' +
52
+ 'Supports partial criteria selection via includeCriteria parameter.',
44
53
  inputSchema: {
45
54
  templateId: z
46
55
  .string()
47
- .describe('ID of the template to apply (e.g. "auth-jwt", "crud-entity"). Use list_templates to get valid IDs.'),
56
+ .describe('ID of the template to apply (e.g. "auth-jwt", "fintech-kyc"). Use list_templates to get valid IDs.'),
48
57
  projectPath: z
49
58
  .string()
50
59
  .describe('Absolute path to the project root where specs will be created'),
@@ -64,6 +73,10 @@ export function registerTemplateTools(server) {
64
73
  .string()
65
74
  .optional()
66
75
  .describe('Custom absolute path for the output directory. Overrides the default planu/specs/{feature}/{template-id}/ layout.'),
76
+ includeCriteria: z
77
+ .array(z.string())
78
+ .optional()
79
+ .describe('List of criteria IDs to include (e.g. ["AC-1", "AC-3"]). Omit to include all criteria. Required criteria are always included even if omitted from this list.'),
67
80
  },
68
81
  annotations: { title: 'Apply Spec Template', destructiveHint: false },
69
82
  }, safeLicensed('apply_template', async (args) => handleApplyTemplate(args)));
@@ -1 +1 @@
1
- {"version":3,"file":"register-template-tools.js","sourceRoot":"","sources":["../../src/tools/register-template-tools.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAGtF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,mBAAmB,GAAG;IAC1B,MAAM;IACN,MAAM;IACN,KAAK;IACL,IAAI;IACJ,OAAO;IACP,SAAS;IACT,aAAa;IACb,MAAM;IACN,UAAU;IACV,aAAa;CACL,CAAC;AAEX;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,iDAAiD;IACjD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,4FAA4F;YAC5F,gGAAgG;QAClG,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,mBAAmB,CAAC;iBACzB,QAAQ,EAAE;iBACV,QAAQ,CACP,4HAA4H,CAC7H;YACH,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,mFAAmF,CACpF;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,IAAI,EAAE;KAClE,EACD,WAAW,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CACpF,CAAC;IAEF,qDAAqD;IACrD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,iFAAiF;YACjF,6FAA6F;YAC7F,wFAAwF;QAC1F,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,CACP,oGAAoG,CACrG;YACH,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,+DAA+D,CAAC;YAC5E,SAAS,EAAE,CAAC;iBACT,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,GAAG,EAAE,CAAC;qBACH,MAAM,EAAE;qBACR,QAAQ,CAAC,6DAA6D,CAAC;gBAC1E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;aACrF,CAAC,CACH;iBACA,QAAQ,CACP,kGAAkG,CACnG;YACH,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,iIAAiI,CAClI;YACH,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,mHAAmH,CACpH;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,KAAK,EAAE;KACtE,EACD,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAC1E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"register-template-tools.js","sourceRoot":"","sources":["../../src/tools/register-template-tools.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAGtF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,mBAAmB,GAAG;IAC1B,MAAM;IACN,MAAM;IACN,KAAK;IACL,IAAI;IACJ,OAAO;IACP,SAAS;IACT,aAAa;IACb,MAAM;IACN,UAAU;IACV,aAAa;IACb,UAAU;CACF,CAAC;AAEX,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAU,CAAC;AAEzD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,iDAAiD;IACjD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,uGAAuG;YACvG,+DAA+D;YAC/D,qFAAqF;YACrF,sDAAsD;QACxD,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,mBAAmB,CAAC;iBACzB,QAAQ,EAAE;iBACV,QAAQ,CACP,uIAAuI,CACxI;YACH,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,mFAAmF,CACpF;YACH,eAAe,EAAE,CAAC;iBACf,IAAI,CAAC,iBAAiB,CAAC;iBACvB,QAAQ,EAAE;iBACV,QAAQ,CACP,kFAAkF,CACnF;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,IAAI,EAAE;KAClE,EACD,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CACzE,CAAC;IAEF,qDAAqD;IACrD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,wEAAwE;YACxE,4JAA4J;YAC5J,yFAAyF;YACzF,oEAAoE;QACtE,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,CACP,oGAAoG,CACrG;YACH,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,+DAA+D,CAAC;YAC5E,SAAS,EAAE,CAAC;iBACT,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,GAAG,EAAE,CAAC;qBACH,MAAM,EAAE;qBACR,QAAQ,CAAC,6DAA6D,CAAC;gBAC1E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;aACrF,CAAC,CACH;iBACA,QAAQ,CACP,kGAAkG,CACnG;YACH,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,iIAAiI,CAClI;YACH,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,mHAAmH,CACpH;YACH,eAAe,EAAE,CAAC;iBACf,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CACP,8JAA8J,CAC/J;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,KAAK,EAAE;KACtE,EACD,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAC1E,CAAC;AACJ,CAAC"}
@@ -2,7 +2,7 @@ import type { ListTemplatesInput, ApplyTemplateInput, ToolResult } from '../type
2
2
  /**
3
3
  * Returns the list of available spec templates, optionally filtered.
4
4
  */
5
- export declare function handleListTemplates(args: ListTemplatesInput): ToolResult;
5
+ export declare function handleListTemplates(args: ListTemplatesInput): Promise<ToolResult>;
6
6
  /**
7
7
  * Applies a template to create HU.md + FICHA-TECNICA.md + PROGRESS.md.
8
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"spec-templates.d.ts","sourceRoot":"","sources":["../../src/tools/spec-templates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAElB,UAAU,EACX,MAAM,mBAAmB,CAAC;AAQ3B;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,UAAU,CAyCxE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8DvF"}
1
+ {"version":3,"file":"spec-templates.d.ts","sourceRoot":"","sources":["../../src/tools/spec-templates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAElB,UAAU,EACX,MAAM,mBAAmB,CAAC;AAQ3B;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CA0DvF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAkEvF"}
@@ -1,13 +1,13 @@
1
1
  // tools/spec-templates.ts — Handlers for list_templates and apply_template tools.
2
2
  import { mkdir, writeFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
- import { listTemplates, findTemplate, renderTemplate, findMissingRequired, } from '../engine/spec-templates/index.js';
4
+ import { listTemplates, findTemplateWithCustom, renderTemplate, findMissingRequired, } from '../engine/spec-templates/index.js';
5
5
  /**
6
6
  * Returns the list of available spec templates, optionally filtered.
7
7
  */
8
- export function handleListTemplates(args) {
8
+ export async function handleListTemplates(args) {
9
9
  try {
10
- const result = listTemplates(args.category, args.search);
10
+ const { result, warnings } = await listTemplates(args.category, args.search, args.complexityScore);
11
11
  const lines = [
12
12
  '# Available Spec Templates',
13
13
  '',
@@ -20,15 +20,25 @@ export function handleListTemplates(args) {
20
20
  else {
21
21
  for (const t of result.templates) {
22
22
  lines.push(`## ${t.name} (\`${t.id}\`)`);
23
- lines.push(`- **Category:** ${t.category}`);
23
+ lines.push(`- **Category:** ${t.category}${t.subcategory !== undefined ? ` (${t.subcategory})` : ''}`);
24
+ lines.push(`- **Complexity:** ${t.complexityScore}`);
25
+ lines.push(`- **Criteria:** ${t.criteriaCount}`);
24
26
  lines.push(`- **Description:** ${t.description}`);
25
27
  lines.push(`- **Tags:** ${t.tags.join(', ')}`);
26
28
  lines.push(`- **Variables:** ${t.variableCount} total, ${t.requiredVariableCount} required`);
27
29
  lines.push('');
28
30
  }
29
31
  }
32
+ if (warnings.length > 0) {
33
+ lines.push('### Custom Template Warnings');
34
+ for (const w of warnings) {
35
+ lines.push(`- **${w.file}**: ${w.error}`);
36
+ }
37
+ lines.push('');
38
+ }
30
39
  lines.push('---');
31
40
  lines.push('Use `apply_template` with a template `id` to create a spec from a template.');
41
+ lines.push('Custom templates: place JSON files in `data/global/spec-templates/custom/`.');
32
42
  return {
33
43
  content: [{ type: 'text', text: lines.join('\n') }],
34
44
  };
@@ -46,7 +56,7 @@ export function handleListTemplates(args) {
46
56
  */
47
57
  export async function handleApplyTemplate(args) {
48
58
  try {
49
- const template = findTemplate(args.templateId);
59
+ const template = await findTemplateWithCustom(args.templateId);
50
60
  if (template === undefined) {
51
61
  return {
52
62
  content: [
@@ -70,7 +80,7 @@ export async function handleApplyTemplate(args) {
70
80
  isError: true,
71
81
  };
72
82
  }
73
- const rendered = renderTemplate(template, args.variables);
83
+ const rendered = renderTemplate(template, args.variables, args.includeCriteria);
74
84
  const outputDir = resolveOutputDir(args);
75
85
  await mkdir(outputDir, { recursive: true });
76
86
  const specPath = join(outputDir, 'HU.md');
@@ -82,11 +92,15 @@ export async function handleApplyTemplate(args) {
82
92
  const result = {
83
93
  templateId: template.id,
84
94
  templateName: template.name,
95
+ complexityScore: template.complexityScore,
85
96
  specPath,
86
97
  fichaTecnicaPath,
87
98
  progressPath,
88
99
  variablesApplied: args.variables.length,
100
+ criteriaIncluded: rendered.criteriaIncluded,
101
+ criteriaTotal: rendered.criteriaTotal,
89
102
  missingRequired: [],
103
+ warnings: rendered.warnings,
90
104
  message: buildSuccessMessage(template.name, outputDir),
91
105
  };
92
106
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"spec-templates.js","sourceRoot":"","sources":["../../src/tools/spec-templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec-templates.js","sourceRoot":"","sources":["../../src/tools/spec-templates.ts"],"names":[],"mappings":"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"}
@@ -102,4 +102,55 @@ export interface GenerateCIInput {
102
102
  javaVersion?: string;
103
103
  workflowName?: string;
104
104
  }
105
+ /** Severity threshold for drift detection in CI */
106
+ export type CISeverityThreshold = 'critical' | 'warning' | 'info';
107
+ /** Configuration for .planu.yml file */
108
+ export interface PlanuCIConfig {
109
+ specs: {
110
+ directory: string;
111
+ include?: string[];
112
+ exclude?: string[];
113
+ };
114
+ ci: {
115
+ failOnDrift: boolean;
116
+ severityThreshold: CISeverityThreshold;
117
+ postComment: boolean;
118
+ badge: boolean;
119
+ };
120
+ license?: {
121
+ key: string;
122
+ };
123
+ }
124
+ /** Input for generating a planu-check CI workflow */
125
+ export interface GeneratePlanuCIInput {
126
+ projectId: string;
127
+ specsDir?: string;
128
+ detectDrift?: boolean;
129
+ failOnDrift?: boolean;
130
+ severityThreshold?: CISeverityThreshold;
131
+ postComment?: boolean;
132
+ badge?: boolean;
133
+ workingDirectory?: string;
134
+ }
135
+ /** Result of generating a planu-check CI workflow */
136
+ export interface GeneratePlanuCIResult {
137
+ workflowYaml: string;
138
+ workflowPath: string;
139
+ planuConfigYaml: string;
140
+ badgeMarkdown: string;
141
+ features: PlanuCIFeature[];
142
+ }
143
+ /** Features included in the generated planu CI workflow */
144
+ export type PlanuCIFeature = 'validate' | 'detect-drift' | 'pr-comment' | 'fail-on-drift' | 'badge' | 'planu-config';
145
+ /** Options for generating a .planu.yml config file */
146
+ export interface PlanuConfigOptions {
147
+ specsDir: string;
148
+ failOnDrift: boolean;
149
+ severityThreshold: CISeverityThreshold;
150
+ postComment: boolean;
151
+ badge: boolean;
152
+ include?: string[];
153
+ exclude?: string[];
154
+ licenseKeyRef?: string;
155
+ }
105
156
  //# sourceMappingURL=ci.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/types/ci.ts"],"names":[],"mappings":"AAEA,sDAAsD;AACtD,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,IAAI,GACJ,MAAM,GACN,MAAM,GACN,QAAQ,GACR,MAAM,GACN,KAAK,GACL,QAAQ,GACR,MAAM,GACN,SAAS,CAAC;AAEd,8CAA8C;AAC9C,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/C,sDAAsD;AACtD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7D,oCAAoC;AACpC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,cAAc,GAAG,mBAAmB,GAAG,UAAU,CAAC;AAExF,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,+BAA+B;AAC/B,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,2BAA2B;AAC3B,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,+BAA+B;AAC/B,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,6BAA6B;AAC7B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;CAC7D;AAED,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gCAAgC;AAChC,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,gDAAgD;AAChD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,qDAAqD;AACrD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC7B;AAED,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,WAAW,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,WAAW,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,YAAY,EAAE,cAAc,CAAC;CAC9B;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/types/ci.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
- import type { SupportedLocale, ExperienceLevel, DatabaseEngine, DatabaseCategory, ArchitecturePattern, Difficulty, ExecutionMode } from '../common.js';
1
+ import type { AgentPlatform, SupportedLocale, ExperienceLevel, DatabaseEngine, DatabaseCategory, ArchitecturePattern, Difficulty, ExecutionMode } from '../common.js';
2
2
  import type { Estimation, Actuals } from '../estimation.js';
3
- import type { EnvSetupGuide, LintingAnalysis } from '../env.js';
3
+ import type { EnvSetupGuide, LintingAnalysis, BeginnerEnvStep } from '../env.js';
4
4
  import type { ApiContract, AdvancedTestingDetectionResult } from '../testing.js';
5
- import type { McpServerInfo } from '../mcp.js';
6
- import type { QualityProfile } from '../analysis.js';
5
+ import type { McpServerInfo, RecommendedSkill } from '../mcp.js';
6
+ import type { QualityProfile, QualityRule } from '../analysis.js';
7
+ import type { ArchitecturePatternInfo, DddConfig, AgileProcessDetection } from '../architecture.js';
8
+ import type { ProjectPrivacyConfig } from '../privacy.js';
9
+ import type { OrchestratorInfo, ComposeMultiplatformInfo, ProjectCategory } from './platform-specialty.js';
7
10
  import type { OtelDetectionResult } from '../analysis-detection.js';
8
11
  import type { LlmDetectionResult } from '../llm-security.js';
9
12
  import type { SupplyChainReport } from '../supply-chain.js';
@@ -13,7 +16,6 @@ import type { HypermediaFramework, TurboSubtype, RenderingMode, BuildToolDetecti
13
16
  import type { EdgeDbDetectionResult } from '../edge-db.js';
14
17
  import type { AiNativeDetectionResult } from '../ai-native.js';
15
18
  import type { MobilePlatform, MobileFramework, MobileArchPattern, MobilePackageManager } from './platform-mobile.js';
16
- import type { ProjectCategory } from './platform-specialty.js';
17
19
  import type { DetectedLibraries } from './library-groups.js';
18
20
  export type { DetectedLibraries };
19
21
  export type AgentFramework = 'claude-sdk' | 'crewai' | 'langgraph' | 'vercel-ai' | 'mastra' | 'autogen' | 'semantic-kernel' | 'openai-assistants';
@@ -238,4 +240,43 @@ export interface PlanuConfig {
238
240
  createdAt: string;
239
241
  updatedAt: string;
240
242
  }
243
+ export interface GeneratedRulesInfo {
244
+ rulesFile: {
245
+ path: string;
246
+ content: string;
247
+ };
248
+ additionalFiles: {
249
+ path: string;
250
+ content: string;
251
+ }[];
252
+ }
253
+ export interface InitProjectResultInput {
254
+ projectId: string;
255
+ projectPath: string;
256
+ isUpdate: boolean;
257
+ knowledge: ProjectKnowledge;
258
+ claudeMdRules: QualityRule[];
259
+ completeness: ProjectCompleteness;
260
+ modernPatterns: ArchitecturePatternInfo[];
261
+ dddConfig: DddConfig;
262
+ agileDetection: AgileProcessDetection;
263
+ orchestratorInfo: OrchestratorInfo;
264
+ composeMultiplatform: ComposeMultiplatformInfo;
265
+ privacyConfig: ProjectPrivacyConfig;
266
+ envExampleGenerated: number | null;
267
+ beginnerEnvGuide: BeginnerEnvStep[] | null;
268
+ contextRequestPrompt: string | null;
269
+ missingAreas: string[];
270
+ recommendedSkills: RecommendedSkill[];
271
+ platform: AgentPlatform;
272
+ generatedRules: GeneratedRulesInfo;
273
+ rulesWritten: boolean;
274
+ additionalFilesWritten: string[];
275
+ planuConfigGenerated: boolean;
276
+ planuConfigPath: string;
277
+ migrationResult: {
278
+ migratedCount: number;
279
+ errors: string[];
280
+ } | null;
281
+ }
241
282
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/types/project/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/types/project/core.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,27 @@
1
1
  /** Category of a spec template (maps to common feature types across all stacks). */
2
- export type TemplateCategory = 'auth' | 'crud' | 'api' | 'ui' | 'infra' | 'testing' | 'integration' | 'data' | 'security' | 'performance';
2
+ export type TemplateCategory = 'auth' | 'crud' | 'api' | 'ui' | 'infra' | 'testing' | 'integration' | 'data' | 'security' | 'performance' | 'industry';
3
+ /** Template complexity score: S (<16h), M (16-40h), L (40-80h), XL (>80h). */
4
+ export type TemplateComplexity = 'S' | 'M' | 'L' | 'XL';
5
+ /** Industry subcategory for industry templates. */
6
+ export type IndustrySubcategory = 'fintech' | 'healthtech' | 'ecommerce' | 'saas';
7
+ /** Base estimation range attached to a template. */
8
+ export interface EstimationBase {
9
+ /** Minimum hours estimate. */
10
+ hoursMin: number;
11
+ /** Maximum hours estimate. */
12
+ hoursMax: number;
13
+ /** Additional notes about the estimation. */
14
+ notes: string;
15
+ }
16
+ /** A named criterion in a template, supporting partial selection. */
17
+ export interface TemplateCriterion {
18
+ /** Criterion identifier (e.g. "AC-01"). */
19
+ id: string;
20
+ /** Short title of the criterion. */
21
+ title: string;
22
+ /** Whether this criterion is required and cannot be omitted. */
23
+ required: boolean;
24
+ }
3
25
  /** A variable placeholder used in template content. */
4
26
  export interface TemplateVariable {
5
27
  /** Key name used in the template (e.g. "EntityName"). */
@@ -26,10 +48,18 @@ export interface SpecTemplateEntry {
26
48
  name: string;
27
49
  /** Category of the template. */
28
50
  category: TemplateCategory;
51
+ /** Industry subcategory (only for industry templates). */
52
+ subcategory?: IndustrySubcategory;
29
53
  /** Short description of what this template covers. */
30
54
  description: string;
31
55
  /** Language-agnostic tags for discoverability. */
32
56
  tags: string[];
57
+ /** Complexity score: S (<16h), M (16-40h), L (40-80h), XL (>80h). */
58
+ complexityScore: TemplateComplexity;
59
+ /** Base estimation range for this template. */
60
+ estimationBase: EstimationBase;
61
+ /** Structured criteria list for partial selection support. */
62
+ criteria: TemplateCriterion[];
33
63
  /** Variables that users need to provide when applying the template. */
34
64
  variables: TemplateVariable[];
35
65
  /** Template content for HU.md (Handlebars-style {{VariableKey}} placeholders). */
@@ -50,8 +80,11 @@ export interface TemplateListItem {
50
80
  id: string;
51
81
  name: string;
52
82
  category: TemplateCategory;
83
+ subcategory?: IndustrySubcategory;
53
84
  description: string;
54
85
  tags: string[];
86
+ complexityScore: TemplateComplexity;
87
+ criteriaCount: number;
55
88
  variableCount: number;
56
89
  requiredVariableCount: number;
57
90
  }
@@ -59,6 +92,7 @@ export interface TemplateListItem {
59
92
  export interface ListTemplatesInput {
60
93
  category?: TemplateCategory;
61
94
  search?: string;
95
+ complexityScore?: TemplateComplexity;
62
96
  }
63
97
  /** A resolved variable value provided by the user when applying a template. */
64
98
  export interface TemplateVariableValue {
@@ -72,16 +106,32 @@ export interface ApplyTemplateInput {
72
106
  variables: TemplateVariableValue[];
73
107
  feature?: string;
74
108
  outputDir?: string;
109
+ /** Optional list of criteria IDs to include (e.g. ["AC-01", "AC-03"]). Omit to include all. */
110
+ includeCriteria?: string[];
75
111
  }
76
112
  /** Result returned by the apply_template tool. */
77
113
  export interface ApplyTemplateResult {
78
114
  templateId: string;
79
115
  templateName: string;
116
+ complexityScore: TemplateComplexity;
80
117
  specPath: string;
81
118
  fichaTecnicaPath: string;
82
119
  progressPath: string;
83
120
  variablesApplied: number;
121
+ criteriaIncluded: number;
122
+ criteriaTotal: number;
84
123
  missingRequired: string[];
124
+ warnings: string[];
85
125
  message: string;
86
126
  }
127
+ /** Warning entry for a malformed custom template. */
128
+ export interface CustomTemplateWarning {
129
+ file: string;
130
+ error: string;
131
+ }
132
+ /** Result from loading custom templates. */
133
+ export interface CustomTemplateLoadResult {
134
+ templates: SpecTemplateEntry[];
135
+ warnings: CustomTemplateWarning[];
136
+ }
87
137
  //# sourceMappingURL=spec-templates.d.ts.map