@planu/cli 0.74.0 → 0.75.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 (69) hide show
  1. package/README.md +1 -1
  2. package/dist/config/license-plans.json +6 -1
  3. package/dist/engine/elicitation/index.d.ts +1 -0
  4. package/dist/engine/elicitation/index.d.ts.map +1 -1
  5. package/dist/engine/elicitation/index.js +1 -0
  6. package/dist/engine/elicitation/index.js.map +1 -1
  7. package/dist/engine/elicitation/question-generator.d.ts +13 -0
  8. package/dist/engine/elicitation/question-generator.d.ts.map +1 -0
  9. package/dist/engine/elicitation/question-generator.js +112 -0
  10. package/dist/engine/elicitation/question-generator.js.map +1 -0
  11. package/dist/index.js +41 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/tools/configure-oauth-handler.d.ts +4 -0
  14. package/dist/tools/configure-oauth-handler.d.ts.map +1 -0
  15. package/dist/tools/configure-oauth-handler.js +57 -0
  16. package/dist/tools/configure-oauth-handler.js.map +1 -0
  17. package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.d.ts.map +1 -1
  18. package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.js +30 -5
  19. package/dist/tools/create-spec-hu/ac-adapters/architecture-adapter.js.map +1 -1
  20. package/dist/tools/create-spec-hu/frontend-architecture-hu-adapter.d.ts +8 -0
  21. package/dist/tools/create-spec-hu/frontend-architecture-hu-adapter.d.ts.map +1 -0
  22. package/dist/tools/create-spec-hu/frontend-architecture-hu-adapter.js +95 -0
  23. package/dist/tools/create-spec-hu/frontend-architecture-hu-adapter.js.map +1 -0
  24. package/dist/tools/create-spec-hu.d.ts.map +1 -1
  25. package/dist/tools/create-spec-hu.js +4 -0
  26. package/dist/tools/create-spec-hu.js.map +1 -1
  27. package/dist/tools/elicit-requirements-handler.d.ts +4 -0
  28. package/dist/tools/elicit-requirements-handler.d.ts.map +1 -0
  29. package/dist/tools/elicit-requirements-handler.js +68 -0
  30. package/dist/tools/elicit-requirements-handler.js.map +1 -0
  31. package/dist/tools/generate-spec-from-design.d.ts +3 -0
  32. package/dist/tools/generate-spec-from-design.d.ts.map +1 -0
  33. package/dist/tools/generate-spec-from-design.js +90 -0
  34. package/dist/tools/generate-spec-from-design.js.map +1 -0
  35. package/dist/tools/register-elicitation-tools.d.ts +3 -0
  36. package/dist/tools/register-elicitation-tools.d.ts.map +1 -0
  37. package/dist/tools/register-elicitation-tools.js +33 -0
  38. package/dist/tools/register-elicitation-tools.js.map +1 -0
  39. package/dist/tools/register-generate-spec-from-design.d.ts +3 -0
  40. package/dist/tools/register-generate-spec-from-design.d.ts.map +1 -0
  41. package/dist/tools/register-generate-spec-from-design.js +45 -0
  42. package/dist/tools/register-generate-spec-from-design.js.map +1 -0
  43. package/dist/tools/register-oauth-tools.d.ts +3 -0
  44. package/dist/tools/register-oauth-tools.d.ts.map +1 -0
  45. package/dist/tools/register-oauth-tools.js +24 -0
  46. package/dist/tools/register-oauth-tools.js.map +1 -0
  47. package/dist/transports/http-transport.d.ts.map +1 -1
  48. package/dist/transports/http-transport.js +17 -0
  49. package/dist/transports/http-transport.js.map +1 -1
  50. package/dist/transports/oauth-validator.d.ts +6 -0
  51. package/dist/transports/oauth-validator.d.ts.map +1 -0
  52. package/dist/transports/oauth-validator.js +76 -0
  53. package/dist/transports/oauth-validator.js.map +1 -0
  54. package/dist/types/design-to-spec.d.ts +11 -0
  55. package/dist/types/design-to-spec.d.ts.map +1 -1
  56. package/dist/types/index.d.ts +2 -0
  57. package/dist/types/index.d.ts.map +1 -1
  58. package/dist/types/index.js +2 -0
  59. package/dist/types/index.js.map +1 -1
  60. package/dist/types/oauth.d.ts +17 -0
  61. package/dist/types/oauth.d.ts.map +1 -0
  62. package/dist/types/oauth.js +3 -0
  63. package/dist/types/oauth.js.map +1 -0
  64. package/dist/types/spec-elicitation.d.ts +24 -0
  65. package/dist/types/spec-elicitation.d.ts.map +1 -0
  66. package/dist/types/spec-elicitation.js +3 -0
  67. package/dist/types/spec-elicitation.js.map +1 -0
  68. package/package.json +1 -1
  69. package/src/config/license-plans.json +6 -1
package/README.md CHANGED
@@ -242,7 +242,7 @@ claude mcp add planu node /absolute/path/to/planu/dist/index.js
242
242
  ```
243
243
  src/
244
244
  ├── index.ts # MCP server entry point
245
- ├── tools/ # MCP tool handlers (169 tools, 9 streams A-I)
245
+ ├── tools/ # MCP tool handlers (174 tools, 9 streams A-I)
246
246
  ├── resources/ # MCP resources (read-only)
247
247
  ├── engine/ # Business logic (estimator, analyzer, validator)
248
248
  ├── storage/ # JSON persistence layer
@@ -178,7 +178,12 @@
178
178
  "generate_infrastructure",
179
179
  "spec_usage_report",
180
180
  "triage_feedback",
181
- "resolve_feedback"
181
+ "resolve_feedback",
182
+ "a2a_register",
183
+ "a2a_delegate",
184
+ "generate_spec_from_design",
185
+ "configure_oauth",
186
+ "elicit_requirements"
182
187
  ],
183
188
  "alwaysAllowed": [
184
189
  "activate_license",
@@ -1,4 +1,5 @@
1
1
  export * from './builder.js';
2
2
  export * from './response-parser.js';
3
3
  export * from './fallback.js';
4
+ export * from './question-generator.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/elicitation/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/elicitation/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC"}
@@ -2,4 +2,5 @@
2
2
  export * from './builder.js';
3
3
  export * from './response-parser.js';
4
4
  export * from './fallback.js';
5
+ export * from './question-generator.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/elicitation/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/elicitation/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ElicitationQuestion, ElicitationSession } from '../../types/index.js';
2
+ export type { ElicitationQuestion, ElicitationSession };
3
+ /** Generate standard clarification questions for a feature spec */
4
+ export declare function generateSpecQuestions(title: string, description: string, context?: {
5
+ framework?: string;
6
+ hasDatabase?: boolean;
7
+ isApi?: boolean;
8
+ }): ElicitationQuestion[];
9
+ /** Format questions as a readable prompt for the LLM to present to the user */
10
+ export declare function formatQuestionsAsPrompt(session: ElicitationSession): string;
11
+ /** Parse answers from free-form text (numbered list format) */
12
+ export declare function parseAnswers(questions: ElicitationQuestion[], answersText: string): Record<string, string>;
13
+ //# sourceMappingURL=question-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"question-generator.d.ts","sourceRoot":"","sources":["../../../src/engine/elicitation/question-generator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEpF,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;AAExD,mEAAmE;AACnE,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACvE,mBAAmB,EAAE,CA2EvB;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CA2B3E;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAC1B,SAAS,EAAE,mBAAmB,EAAE,EAChC,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBxB"}
@@ -0,0 +1,112 @@
1
+ // src/engine/elicitation/question-generator.ts
2
+ // SPEC-163: Generates structured clarification questions for spec creation.
3
+ /** Generate standard clarification questions for a feature spec */
4
+ export function generateSpecQuestions(title, description, context) {
5
+ const questions = [];
6
+ const lowerDesc = description.toLowerCase();
7
+ questions.push({
8
+ id: 'users',
9
+ category: 'users',
10
+ question: `Who are the primary users of "${title}"?`,
11
+ hint: 'e.g., "authenticated users", "admin only", "all visitors"',
12
+ required: true,
13
+ answerType: 'text',
14
+ });
15
+ questions.push({
16
+ id: 'success',
17
+ category: 'success',
18
+ question: 'How will you know when this feature is successfully implemented?',
19
+ hint: "Describe the outcome from the user's perspective",
20
+ required: true,
21
+ answerType: 'text',
22
+ });
23
+ questions.push({
24
+ id: 'scope',
25
+ category: 'scope',
26
+ question: 'What is the scope of this change?',
27
+ required: true,
28
+ answerType: 'choice',
29
+ choices: [
30
+ 'Small change in one place',
31
+ 'Medium feature across 2-3 areas',
32
+ 'Large cross-module change',
33
+ 'Major architectural change',
34
+ ],
35
+ });
36
+ questions.push({
37
+ id: 'edge_cases',
38
+ category: 'behavior',
39
+ question: 'What should happen in error or edge cases?',
40
+ hint: 'e.g., "show error message", "redirect to login", "fail silently"',
41
+ required: false,
42
+ answerType: 'text',
43
+ });
44
+ if (context?.hasDatabase === true || lowerDesc.includes('data') || lowerDesc.includes('store')) {
45
+ questions.push({
46
+ id: 'data',
47
+ category: 'data',
48
+ question: 'What data needs to be stored or retrieved for this feature?',
49
+ hint: 'List the key fields/entities involved',
50
+ required: false,
51
+ answerType: 'text',
52
+ });
53
+ }
54
+ if (context?.isApi === true || lowerDesc.includes('api') || lowerDesc.includes('endpoint')) {
55
+ questions.push({
56
+ id: 'api_contract',
57
+ category: 'constraints',
58
+ question: 'Does this require a new API endpoint or changes to existing ones?',
59
+ required: false,
60
+ answerType: 'yes-no',
61
+ });
62
+ }
63
+ questions.push({
64
+ id: 'performance',
65
+ category: 'constraints',
66
+ question: 'Are there performance requirements (response time, load, etc.)?',
67
+ required: false,
68
+ answerType: 'text',
69
+ });
70
+ return questions;
71
+ }
72
+ /** Format questions as a readable prompt for the LLM to present to the user */
73
+ export function formatQuestionsAsPrompt(session) {
74
+ const lines = [
75
+ `## Clarification needed for: "${session.title}"`,
76
+ '',
77
+ 'Please answer the following questions to help create a detailed spec:',
78
+ '',
79
+ ];
80
+ session.questions.forEach((q, i) => {
81
+ const required = q.required ? ' *(required)*' : ' *(optional)*';
82
+ lines.push(`**${i + 1}. ${q.question}**${required}`);
83
+ if (q.hint !== undefined) {
84
+ lines.push(` > Hint: ${q.hint}`);
85
+ }
86
+ if (q.choices !== undefined) {
87
+ lines.push(' Options:');
88
+ q.choices.forEach((c) => lines.push(` - ${c}`));
89
+ }
90
+ lines.push('');
91
+ });
92
+ lines.push('---');
93
+ lines.push('*Reply with your answers (e.g., "1. Admin users 2. User sees dashboard with charts...")*');
94
+ return lines.join('\n');
95
+ }
96
+ /** Parse answers from free-form text (numbered list format) */
97
+ export function parseAnswers(questions, answersText) {
98
+ const answers = {};
99
+ const lines = answersText.split('\n');
100
+ lines.forEach((line) => {
101
+ const match = /^(\d+)[.)]\s*(.+)/.exec(line.trim());
102
+ if (match?.[1] !== undefined && match[2] !== undefined) {
103
+ const idx = parseInt(match[1], 10) - 1;
104
+ const question = questions[idx];
105
+ if (idx >= 0 && question !== undefined) {
106
+ answers[question.id] = match[2].trim();
107
+ }
108
+ }
109
+ });
110
+ return answers;
111
+ }
112
+ //# sourceMappingURL=question-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"question-generator.js","sourceRoot":"","sources":["../../../src/engine/elicitation/question-generator.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -84,6 +84,19 @@ import { registerGenerateProposalTool } from './tools/generate-proposal.js';
84
84
  import { registerExportPdfTool } from './tools/export-pdf.js';
85
85
  import { registerEcosystemTools } from './tools/register-ecosystem-tools.js';
86
86
  import { registerFeedbackTools } from './tools/register-feedback-tools.js';
87
+ import { registerA2ATools } from './tools/register-a2a-tools.js';
88
+ import { registerAuditTrailTools } from './tools/register-audit-trail-tools.js';
89
+ import { registerDecomposeTools } from './tools/register-decompose-tools.js';
90
+ import { registerFederationTools } from './tools/register-federation-tools.js';
91
+ import { registerInfrastructureTools } from './tools/register-infrastructure-tools.js';
92
+ import { registerObservabilityTools } from './tools/register-observability-tools.js';
93
+ import { registerRbacTools } from './tools/register-rbac-tools.js';
94
+ import { registerSpecObservabilityTools } from './tools/register-spec-observability-tools.js';
95
+ import { registerVersioningTools } from './tools/register-versioning-tools.js';
96
+ import { registerWellKnownTools } from './tools/register-well-known-tools.js';
97
+ import { registerGenerateSpecFromDesignTool } from './tools/register-generate-spec-from-design.js';
98
+ import { registerOAuthTools } from './tools/register-oauth-tools.js';
99
+ import { registerElicitationTools } from './tools/register-elicitation-tools.js';
87
100
  import { registerReconcileRulesTool } from './tools/reconcile-rules.js';
88
101
  import { registerReconcileSkillsTool } from './tools/reconcile-skills.js';
89
102
  import { registerReconcileHooksTool } from './tools/reconcile-hooks.js';
@@ -162,6 +175,21 @@ const SERVER_INSTRUCTIONS = [
162
175
  '- When creating multiple specs at once, present ALL specs for review and let the user approve/reject each one individually.',
163
176
  '- The reviewNotes field stores a history of all feedback — implementers can see what was requested and why.',
164
177
  '',
178
+ 'SKILL DISCOVERY — proactive search, mandatory in these situations:',
179
+ '1. AFTER init_project: call skill_search for EACH technology in the detected stack.',
180
+ ' - Use the actual detected values: language, framework, database, key stack entries.',
181
+ ' - Works for ANY stack: Python, Go, Rust, Java, Ruby, PHP, .NET — not just JavaScript.',
182
+ ' - Example: stack has [Django, PostgreSQL, Celery] → call skill_search("django"), skill_search("postgresql").',
183
+ ' - Example: stack has [Next.js, Tailwind, Prisma] → call skill_search("nextjs"), skill_search("prisma").',
184
+ ' - Present the top 5 results grouped by technology and offer to install the most relevant.',
185
+ '2. BEFORE implementing any repeatable pattern: call skill_search with the pattern name.',
186
+ ' - "add authentication" → skill_search("authentication " + detected_framework)',
187
+ ' - "setup CI/CD" → skill_search("github actions") or skill_search("gitlab ci")',
188
+ '3. When the user mentions any technology by name: call skill_search with that term.',
189
+ '- If a matching skill is found: show it, offer to install with skill_install.',
190
+ '- If no skill found: proceed normally and note there are no community skills for that technology yet.',
191
+ '- Explain: "Skills are community-curated guides that encode best practices for this technology."',
192
+ '',
165
193
  'RESPONSE FORMAT — MANDATORY for all tool results:',
166
194
  '- NEVER show raw JSON.stringify output to the user — always format as readable markdown',
167
195
  '- Use emojis for visual hierarchy: ✅ success, ⚠️ warning, ❌ error, 🚀 next steps, 📊 stats',
@@ -227,6 +255,19 @@ function createMcpServer() {
227
255
  registerExportPdfTool(s);
228
256
  registerEcosystemTools(s);
229
257
  registerFeedbackTools(s);
258
+ registerA2ATools(s);
259
+ registerAuditTrailTools(s);
260
+ registerDecomposeTools(s);
261
+ registerFederationTools(s);
262
+ registerInfrastructureTools(s);
263
+ registerObservabilityTools(s);
264
+ registerRbacTools(s);
265
+ registerSpecObservabilityTools(s);
266
+ registerVersioningTools(s);
267
+ registerWellKnownTools(s);
268
+ registerGenerateSpecFromDesignTool(s);
269
+ registerOAuthTools(s);
270
+ registerElicitationTools(s);
230
271
  registerReconcileRulesTool(s);
231
272
  registerReconcileSkillsTool(s);
232
273
  registerReconcileHooksTool(s);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ToolResult, ConfigureOAuthArgs } from '../types/index.js';
2
+ export type { ConfigureOAuthArgs };
3
+ export declare function handleConfigureOAuth(args: ConfigureOAuthArgs): Promise<ToolResult>;
4
+ //# sourceMappingURL=configure-oauth-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-oauth-handler.d.ts","sourceRoot":"","sources":["../../src/tools/configure-oauth-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAe,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAOrF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAoCnC,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8BxF"}
@@ -0,0 +1,57 @@
1
+ // configure-oauth-handler.ts — Handler for the configure_oauth MCP tool (SPEC-161).
2
+ // Reads and displays the current OAuth config status (without exposing secrets).
3
+ import { loadOAuthConfig, extractBearerToken, validateToken, } from '../transports/oauth-validator.js';
4
+ function buildStatusLines(config) {
5
+ const exampleCurl = config.enabled
6
+ ? 'curl -H "Authorization: Bearer <your-token>" http://localhost:3000/mcp'
7
+ : 'curl http://localhost:3000/mcp # No auth required — set SDD_OAUTH_API_KEY to enable';
8
+ const envVars = {
9
+ SDD_OAUTH_API_KEY: 'Set this to enable simple API-key auth (overrides JWT mode)',
10
+ SDD_OAUTH_JWT_SECRET: 'Set this to enable HMAC-signed JWT validation (HS256)',
11
+ SDD_OAUTH_ISSUER: 'Optional: expected "iss" claim in JWT (e.g. https://myapp.com)',
12
+ SDD_OAUTH_AUDIENCE: 'Optional: expected "aud" claim in JWT (e.g. planu-mcp)',
13
+ };
14
+ const lines = [
15
+ `OAuth status: ${config.enabled ? 'ENABLED' : 'DISABLED'}`,
16
+ `Mode: ${config.mode}`,
17
+ ];
18
+ if (config.issuer) {
19
+ lines.push(`Issuer: ${config.issuer}`);
20
+ }
21
+ if (config.audience) {
22
+ lines.push(`Audience: ${config.audience}`);
23
+ }
24
+ lines.push('', 'Environment variables:');
25
+ for (const [key, desc] of Object.entries(envVars)) {
26
+ const isSet = process.env[key] !== undefined;
27
+ lines.push(` ${key}: ${isSet ? '(set)' : '(not set)'} — ${desc}`);
28
+ }
29
+ lines.push('', `Example: ${exampleCurl}`);
30
+ return lines;
31
+ }
32
+ export async function handleConfigureOAuth(args) {
33
+ const config = loadOAuthConfig();
34
+ if (args.action === 'status') {
35
+ const lines = buildStatusLines(config);
36
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
37
+ }
38
+ // action === 'test'
39
+ const token = extractBearerToken(args.token ? `Bearer ${args.token}` : undefined);
40
+ if (!token) {
41
+ return {
42
+ content: [{ type: 'text', text: 'Token test result: INVALID — No token provided for test' }],
43
+ };
44
+ }
45
+ const testResult = await validateToken(token, config);
46
+ if (testResult.valid) {
47
+ return {
48
+ content: [{ type: 'text', text: 'Token test result: VALID — token accepted successfully' }],
49
+ };
50
+ }
51
+ return {
52
+ content: [
53
+ { type: 'text', text: `Token test result: INVALID — ${testResult.reason ?? 'Rejected'}` },
54
+ ],
55
+ };
56
+ }
57
+ //# sourceMappingURL=configure-oauth-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-oauth-handler.js","sourceRoot":"","sources":["../../src/tools/configure-oauth-handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"architecture-adapter.d.ts","sourceRoot":"","sources":["../../../../src/tools/create-spec-hu/ac-adapters/architecture-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAyH7E"}
1
+ {"version":3,"file":"architecture-adapter.d.ts","sourceRoot":"","sources":["../../../../src/tools/create-spec-hu/ac-adapters/architecture-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAuJ7E"}
@@ -91,15 +91,40 @@ export function generateArchitectureAcs(knowledge) {
91
91
  '- [ ] Failure compensation logic (retry / compensate) defined for each activity',
92
92
  '- [ ] Determinism enforced: no random, time, or I/O calls inside workflow/actor code',
93
93
  ];
94
- // Frontend/rendering patterns — no specialized backend ACs generated
95
- case 'microfrontends':
96
- case 'jamstack':
97
- case 'islands':
98
94
  case 'spa':
99
95
  case 'mpa':
96
+ return [
97
+ '- [ ] Route-level code splitting implemented — no single bundle with the full app',
98
+ '- [ ] Client-side navigation does not cause memory leaks (event listeners cleaned up on unmount)',
99
+ '- [ ] Global state shape documented — no implicit dependencies between unrelated features',
100
+ ];
100
101
  case 'ssr':
101
- case 'ssg':
102
102
  case 'isr':
103
+ return [
104
+ '- [ ] Component is hydration-safe: no browser-only APIs called during server render',
105
+ '- [ ] Dynamic data fetched at the correct lifecycle (server-side for SEO-critical content)',
106
+ '- [ ] Cache strategy documented for ISR pages (revalidate interval or on-demand tag)',
107
+ ];
108
+ case 'ssg':
109
+ case 'jamstack':
110
+ return [
111
+ '- [ ] All dynamic content uses client-side hydration or an API route — no stale static data',
112
+ '- [ ] Build output audited: no sensitive data embedded in generated HTML/JSON',
113
+ '- [ ] Critical path CSS inlined — no render-blocking external stylesheets',
114
+ ];
115
+ case 'microfrontends':
116
+ return [
117
+ '- [ ] MFE boundary clearly defined — no direct imports across micro-frontend packages',
118
+ '- [ ] Shared dependencies (React, design system) loaded once via module federation or import map',
119
+ '- [ ] MFE communicates with host via custom events or a defined contract — not window globals',
120
+ ];
121
+ case 'islands':
122
+ return [
123
+ '- [ ] Island component is self-contained — no shared mutable state with the static shell',
124
+ '- [ ] Island hydration deferred until visible (client:visible or equivalent) when not above-fold',
125
+ '- [ ] Each island ships minimal JS — no full app runtime included in a leaf island',
126
+ ];
127
+ // No specialized ACs for organizational patterns — handled by other adapters
103
128
  case 'monorepo':
104
129
  case 'multi-repo':
105
130
  case 'cell-based':
@@ -1 +1 @@
1
- {"version":3,"file":"architecture-adapter.js","sourceRoot":"","sources":["../../../../src/tools/create-spec-hu/ac-adapters/architecture-adapter.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,gFAAgF;AAKhF;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAA2B;IACjE,MAAM,OAAO,GAAwB,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC;IAEpE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,OAAO;YACV,OAAO;gBACL,sGAAsG;gBACtG,uGAAuG;gBACvG,sFAAsF;aACvF,CAAC;QAEJ,KAAK,eAAe;YAClB,OAAO;gBACL,wFAAwF;gBACxF,0EAA0E;gBAC1E,4EAA4E;aAC7E,CAAC;QAEJ,KAAK,cAAc,CAAC;QACpB,KAAK,gBAAgB;YACnB,OAAO;gBACL,iFAAiF;gBACjF,uFAAuF;gBACvF,6FAA6F;aAC9F,CAAC;QAEJ,KAAK,YAAY;YACf,OAAO;gBACL,4EAA4E;gBAC5E,gFAAgF;gBAChF,yFAAyF;aAC1F,CAAC;QAEJ,KAAK,UAAU,CAAC;QAChB,KAAK,kBAAkB,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO;gBACL,mFAAmF;gBACnF,4EAA4E;aAC7E,CAAC;QAEJ,KAAK,MAAM;YACT,OAAO;gBACL,2EAA2E;gBAC3E,kEAAkE;gBAClE,+EAA+E;aAChF,CAAC;QAEJ,KAAK,MAAM;YACT,OAAO;gBACL,uFAAuF;gBACvF,+DAA+D;gBAC/D,8FAA8F;aAC/F,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO;gBACL,iGAAiG;gBACjG,8CAA8C;gBAC9C,oFAAoF;aACrF,CAAC;QAEJ,KAAK,UAAU;YACb,OAAO;gBACL,6EAA6E;gBAC7E,0EAA0E;gBAC1E,gEAAgE;aACjE,CAAC;QAEJ,KAAK,KAAK;YACR,OAAO;gBACL,0FAA0F;gBAC1F,gFAAgF;gBAChF,+EAA+E;aAChF,CAAC;QAEJ,KAAK,KAAK,CAAC;QACX,KAAK,aAAa;YAChB,OAAO;gBACL,uFAAuF;gBACvF,yEAAyE;gBACzE,gFAAgF;aACjF,CAAC;QAEJ,KAAK,oBAAoB;YACvB,OAAO;gBACL,+EAA+E;gBAC/E,qFAAqF;gBACrF,mFAAmF;aACpF,CAAC;QAEJ,KAAK,aAAa,CAAC;QACnB,KAAK,UAAU;YACb,OAAO;gBACL,6EAA6E;gBAC7E,iFAAiF;gBACjF,sFAAsF;aACvF,CAAC;QAEJ,qEAAqE;QACrE,KAAK,gBAAgB,CAAC;QACtB,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC;QAEZ;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"architecture-adapter.js","sourceRoot":"","sources":["../../../../src/tools/create-spec-hu/ac-adapters/architecture-adapter.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,gFAAgF;AAKhF;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAA2B;IACjE,MAAM,OAAO,GAAwB,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC;IAEpE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,OAAO;YACV,OAAO;gBACL,sGAAsG;gBACtG,uGAAuG;gBACvG,sFAAsF;aACvF,CAAC;QAEJ,KAAK,eAAe;YAClB,OAAO;gBACL,wFAAwF;gBACxF,0EAA0E;gBAC1E,4EAA4E;aAC7E,CAAC;QAEJ,KAAK,cAAc,CAAC;QACpB,KAAK,gBAAgB;YACnB,OAAO;gBACL,iFAAiF;gBACjF,uFAAuF;gBACvF,6FAA6F;aAC9F,CAAC;QAEJ,KAAK,YAAY;YACf,OAAO;gBACL,4EAA4E;gBAC5E,gFAAgF;gBAChF,yFAAyF;aAC1F,CAAC;QAEJ,KAAK,UAAU,CAAC;QAChB,KAAK,kBAAkB,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO;gBACL,mFAAmF;gBACnF,4EAA4E;aAC7E,CAAC;QAEJ,KAAK,MAAM;YACT,OAAO;gBACL,2EAA2E;gBAC3E,kEAAkE;gBAClE,+EAA+E;aAChF,CAAC;QAEJ,KAAK,MAAM;YACT,OAAO;gBACL,uFAAuF;gBACvF,+DAA+D;gBAC/D,8FAA8F;aAC/F,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO;gBACL,iGAAiG;gBACjG,8CAA8C;gBAC9C,oFAAoF;aACrF,CAAC;QAEJ,KAAK,UAAU;YACb,OAAO;gBACL,6EAA6E;gBAC7E,0EAA0E;gBAC1E,gEAAgE;aACjE,CAAC;QAEJ,KAAK,KAAK;YACR,OAAO;gBACL,0FAA0F;gBAC1F,gFAAgF;gBAChF,+EAA+E;aAChF,CAAC;QAEJ,KAAK,KAAK,CAAC;QACX,KAAK,aAAa;YAChB,OAAO;gBACL,uFAAuF;gBACvF,yEAAyE;gBACzE,gFAAgF;aACjF,CAAC;QAEJ,KAAK,oBAAoB;YACvB,OAAO;gBACL,+EAA+E;gBAC/E,qFAAqF;gBACrF,mFAAmF;aACpF,CAAC;QAEJ,KAAK,aAAa,CAAC;QACnB,KAAK,UAAU;YACb,OAAO;gBACL,6EAA6E;gBAC7E,iFAAiF;gBACjF,sFAAsF;aACvF,CAAC;QAEJ,KAAK,KAAK,CAAC;QACX,KAAK,KAAK;YACR,OAAO;gBACL,mFAAmF;gBACnF,kGAAkG;gBAClG,2FAA2F;aAC5F,CAAC;QAEJ,KAAK,KAAK,CAAC;QACX,KAAK,KAAK;YACR,OAAO;gBACL,qFAAqF;gBACrF,4FAA4F;gBAC5F,sFAAsF;aACvF,CAAC;QAEJ,KAAK,KAAK,CAAC;QACX,KAAK,UAAU;YACb,OAAO;gBACL,6FAA6F;gBAC7F,+EAA+E;gBAC/E,2EAA2E;aAC5E,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO;gBACL,uFAAuF;gBACvF,kGAAkG;gBAClG,+FAA+F;aAChG,CAAC;QAEJ,KAAK,SAAS;YACZ,OAAO;gBACL,0FAA0F;gBAC1F,kGAAkG;gBAClG,oFAAoF;aACrF,CAAC;QAEJ,6EAA6E;QAC7E,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC;QAEZ;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ProjectKnowledge } from '../../types/index.js';
2
+ /**
3
+ * Returns frontend architecture acceptance criteria when atomic design,
4
+ * component library, or design token patterns are detected.
5
+ * Auto-injected into create_spec HU output (SPEC-147).
6
+ */
7
+ export declare function buildFrontendArchitectureHuSection(knowledge: ProjectKnowledge | null | undefined): string[];
8
+ //# sourceMappingURL=frontend-architecture-hu-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-architecture-hu-adapter.d.ts","sourceRoot":"","sources":["../../../src/tools/create-spec-hu/frontend-architecture-hu-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA+E7D;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,SAAS,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAC7C,MAAM,EAAE,CAmDV"}
@@ -0,0 +1,95 @@
1
+ // tools/create-spec-hu/frontend-architecture-hu-adapter.ts
2
+ // SPEC-147: Inject frontend architecture ACs when atomic design, design systems,
3
+ // or component-driven patterns are detected.
4
+ const ATOMIC_DESIGN_DIR_KEYWORDS = ['atoms', 'molecules', 'organisms', 'templates', 'pages'];
5
+ const COMPONENT_LIBRARY_KEYWORDS = [
6
+ 'storybook',
7
+ 'chromatic',
8
+ 'ladle',
9
+ 'histoire',
10
+ 'react-styleguidist',
11
+ ];
12
+ const DESIGN_TOKEN_KEYWORDS = ['style-dictionary', 'theo', 'design-tokens', 'token-transformer'];
13
+ /** Returns true when the project follows atomic design structure. */
14
+ function hasAtomicDesign(knowledge) {
15
+ const stack = Array.isArray(knowledge.stack) ? knowledge.stack.map((s) => s.toLowerCase()) : [];
16
+ if (stack.some((s) => ATOMIC_DESIGN_DIR_KEYWORDS.some((k) => s.includes(k)))) {
17
+ return true;
18
+ }
19
+ const conventions = knowledge.conventions;
20
+ const designSystem = (conventions?.['design-system-type'] ?? '').toLowerCase();
21
+ if (designSystem.includes('atomic')) {
22
+ return true;
23
+ }
24
+ return false;
25
+ }
26
+ /** Returns true when a component documentation tool (Storybook, etc.) is detected. */
27
+ function hasComponentLibrary(knowledge) {
28
+ const stack = Array.isArray(knowledge.stack) ? knowledge.stack.map((s) => s.toLowerCase()) : [];
29
+ const tooling = knowledge.tooling;
30
+ const toolingValues = Object.values(tooling ?? {})
31
+ .join(' ')
32
+ .toLowerCase();
33
+ return (COMPONENT_LIBRARY_KEYWORDS.some((k) => stack.some((s) => s.includes(k)) || toolingValues.includes(k)) ||
34
+ (Array.isArray(knowledge.externalServices) &&
35
+ knowledge.externalServices.some((s) => COMPONENT_LIBRARY_KEYWORDS.some((k) => s.toLowerCase().includes(k)))));
36
+ }
37
+ /** Returns true when design tokens tooling is present. */
38
+ function hasDesignTokens(knowledge) {
39
+ const stack = Array.isArray(knowledge.stack) ? knowledge.stack.map((s) => s.toLowerCase()) : [];
40
+ return DESIGN_TOKEN_KEYWORDS.some((k) => stack.some((s) => s.includes(k)));
41
+ }
42
+ /** Returns true when the project is frontend-focused. */
43
+ function isFrontendProject(knowledge) {
44
+ const frontendPatterns = ['spa', 'ssr', 'ssg', 'isr', 'jamstack', 'islands', 'mpa'];
45
+ if (frontendPatterns.includes(knowledge.architecture.primary)) {
46
+ return true;
47
+ }
48
+ const stack = Array.isArray(knowledge.stack) ? knowledge.stack.map((s) => s.toLowerCase()) : [];
49
+ const frontendFrameworks = [
50
+ 'react',
51
+ 'vue',
52
+ 'angular',
53
+ 'svelte',
54
+ 'solid',
55
+ 'astro',
56
+ 'next',
57
+ 'nuxt',
58
+ 'remix',
59
+ 'qwik',
60
+ ];
61
+ if (frontendFrameworks.some((f) => stack.some((s) => s.includes(f)))) {
62
+ return true;
63
+ }
64
+ const apps = Array.isArray(knowledge.apps) ? knowledge.apps : [];
65
+ return apps.some((a) => a.type === 'frontend');
66
+ }
67
+ /**
68
+ * Returns frontend architecture acceptance criteria when atomic design,
69
+ * component library, or design token patterns are detected.
70
+ * Auto-injected into create_spec HU output (SPEC-147).
71
+ */
72
+ export function buildFrontendArchitectureHuSection(knowledge) {
73
+ if (!knowledge || !isFrontendProject(knowledge)) {
74
+ return [];
75
+ }
76
+ const sections = [];
77
+ const atomic = hasAtomicDesign(knowledge);
78
+ const componentLib = hasComponentLibrary(knowledge);
79
+ const designTokens = hasDesignTokens(knowledge);
80
+ if (!atomic && !componentLib && !designTokens) {
81
+ return [];
82
+ }
83
+ sections.push('', '## Frontend Architecture Constraints', '');
84
+ if (atomic) {
85
+ sections.push('> This project uses **Atomic Design** — components are organized by complexity (atoms → molecules → organisms).', '', '**Component Structure Criteria:**', '- [ ] Atoms are stateless and accept only props — no internal API calls or side effects', '- [ ] Molecules compose atoms only — no direct access to global state or stores', '- [ ] Organisms may connect to global state, but must export a pure presentational variant for testing', '- [ ] New components placed at the correct atomic level — not in a generic `components/` catch-all', '- [ ] No duplicate component created when an existing atom/molecule covers the same use case', '');
86
+ }
87
+ if (componentLib) {
88
+ sections.push('**Component Documentation Criteria (Storybook / Component Library):**', '- [ ] New UI component has at least one Story covering its default and edge-case states', '- [ ] Story uses realistic mock data — no `undefined` or `null` props that hide visual bugs', '- [ ] Accessibility check passes in Storybook (a11y addon or axe) with no critical violations', '');
89
+ }
90
+ if (designTokens) {
91
+ sections.push('**Design Token Criteria:**', '- [ ] Colors, spacing, and typography use design tokens — no hardcoded hex values or px sizes', '- [ ] New token added to the token schema before use in components', '- [ ] Token names follow the existing naming convention (e.g. `color.brand.primary`, `spacing.md`)', '');
92
+ }
93
+ return sections;
94
+ }
95
+ //# sourceMappingURL=frontend-architecture-hu-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-architecture-hu-adapter.js","sourceRoot":"","sources":["../../../src/tools/create-spec-hu/frontend-architecture-hu-adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-spec-hu.d.ts","sourceRoot":"","sources":["../../src/tools/create-spec-hu.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,IAAI,EAEJ,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAsC3B,OAAO,EACL,cAAc,EACd,gCAAgC,EAChC,oCAAoC,GACrC,MAAM,wCAAwC,CAAC;AAoBhD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,EACnC,WAAW,CAAC,EAAE,OAAO,EACrB,SAAS,CAAC,EAAE,SAAS,EACrB,WAAW,CAAC,EAAE,gBAAgB,GAC7B,MAAM,CAiJR"}
1
+ {"version":3,"file":"create-spec-hu.d.ts","sourceRoot":"","sources":["../../src/tools/create-spec-hu.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,IAAI,EAEJ,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAuC3B,OAAO,EACL,cAAc,EACd,gCAAgC,EAChC,oCAAoC,GACrC,MAAM,wCAAwC,CAAC;AAoBhD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,EACnC,WAAW,CAAC,EAAE,OAAO,EACrB,SAAS,CAAC,EAAE,SAAS,EACrB,WAAW,CAAC,EAAE,gBAAgB,GAC7B,MAAM,CAqJR"}
@@ -23,6 +23,7 @@ import { buildBuildToolHuSection } from './create-spec-hu/build-tool-hu-adapter.
23
23
  import { buildAiNativeHuSection } from './create-spec-hu/ai-native-hu-adapter.js';
24
24
  import { buildFrontendPerfHuSection } from './create-spec-hu/frontend-perf-hu-adapter.js';
25
25
  import { buildServerlessHuSection } from './create-spec-hu/serverless-hu-adapter.js';
26
+ import { buildFrontendArchitectureHuSection } from './create-spec-hu/frontend-architecture-hu-adapter.js';
26
27
  import { generateHUBody, buildLintingRulesSection, buildEnvVariablesSection, } from './create-spec-hu/hu-body-generators.js';
27
28
  export { generateHUBody, generateIosAccessibilityCriteria, generateAndroidAccessibilityCriteria, } from './create-spec-hu/hu-body-generators.js';
28
29
  // Keywords that trigger the Linting Rules section
@@ -137,6 +138,8 @@ export function generateHUContent(spec, description, knowledge, requestDocs, tea
137
138
  const frontendPerfHuSection = buildFrontendPerfHuSection(knowledge);
138
139
  // SPEC-177: Serverless state constraints — no in-memory mutable state for cross-request data
139
140
  const serverlessSection = buildServerlessHuSection(knowledge);
141
+ // SPEC-147: Frontend architecture constraints — atomic design, component library, design tokens
142
+ const frontendArchitectureSection = buildFrontendArchitectureHuSection(knowledge);
140
143
  return [
141
144
  ...header,
142
145
  ...depWarningsSection,
@@ -160,6 +163,7 @@ export function generateHUContent(spec, description, knowledge, requestDocs, tea
160
163
  ...aiNativeSection,
161
164
  ...frontendPerfHuSection,
162
165
  ...serverlessSection,
166
+ ...frontendArchitectureSection,
163
167
  ...doraSection,
164
168
  ...goldenPathSection,
165
169
  ...selfServiceSection,
@@ -1 +1 @@
1
- {"version":3,"file":"create-spec-hu.js","sourceRoot":"","sources":["../../src/tools/create-spec-hu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-spec-hu.js","sourceRoot":"","sources":["../../src/tools/create-spec-hu.ts"],"names":[],"mappings":"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"}