@zigrivers/scaffold 3.5.3 → 3.7.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 (89) hide show
  1. package/README.md +150 -8
  2. package/content/knowledge/backend/backend-api-design.md +103 -0
  3. package/content/knowledge/backend/backend-architecture.md +100 -0
  4. package/content/knowledge/backend/backend-async-patterns.md +101 -0
  5. package/content/knowledge/backend/backend-auth-patterns.md +100 -0
  6. package/content/knowledge/backend/backend-conventions.md +105 -0
  7. package/content/knowledge/backend/backend-data-modeling.md +102 -0
  8. package/content/knowledge/backend/backend-deployment.md +100 -0
  9. package/content/knowledge/backend/backend-dev-environment.md +102 -0
  10. package/content/knowledge/backend/backend-observability.md +102 -0
  11. package/content/knowledge/backend/backend-project-structure.md +100 -0
  12. package/content/knowledge/backend/backend-requirements.md +103 -0
  13. package/content/knowledge/backend/backend-security.md +104 -0
  14. package/content/knowledge/backend/backend-testing.md +101 -0
  15. package/content/knowledge/backend/backend-worker-patterns.md +100 -0
  16. package/content/knowledge/cli/cli-architecture.md +101 -0
  17. package/content/knowledge/cli/cli-conventions.md +117 -0
  18. package/content/knowledge/cli/cli-dev-environment.md +121 -0
  19. package/content/knowledge/cli/cli-distribution-patterns.md +106 -0
  20. package/content/knowledge/cli/cli-interactivity-patterns.md +116 -0
  21. package/content/knowledge/cli/cli-output-patterns.md +107 -0
  22. package/content/knowledge/cli/cli-project-structure.md +124 -0
  23. package/content/knowledge/cli/cli-requirements.md +101 -0
  24. package/content/knowledge/cli/cli-shell-integration.md +130 -0
  25. package/content/knowledge/cli/cli-testing.md +134 -0
  26. package/content/knowledge/web-app/web-app-api-patterns.md +224 -0
  27. package/content/knowledge/web-app/web-app-architecture.md +116 -0
  28. package/content/knowledge/web-app/web-app-auth-patterns.md +256 -0
  29. package/content/knowledge/web-app/web-app-conventions.md +121 -0
  30. package/content/knowledge/web-app/web-app-data-patterns.md +218 -0
  31. package/content/knowledge/web-app/web-app-deployment-workflow.md +143 -0
  32. package/content/knowledge/web-app/web-app-deployment.md +134 -0
  33. package/content/knowledge/web-app/web-app-design-system.md +158 -0
  34. package/content/knowledge/web-app/web-app-dev-environment.md +173 -0
  35. package/content/knowledge/web-app/web-app-observability.md +221 -0
  36. package/content/knowledge/web-app/web-app-project-structure.md +160 -0
  37. package/content/knowledge/web-app/web-app-rendering-strategies.md +133 -0
  38. package/content/knowledge/web-app/web-app-requirements.md +112 -0
  39. package/content/knowledge/web-app/web-app-security.md +193 -0
  40. package/content/knowledge/web-app/web-app-session-patterns.md +214 -0
  41. package/content/knowledge/web-app/web-app-testing.md +249 -0
  42. package/content/knowledge/web-app/web-app-ux-patterns.md +162 -0
  43. package/content/methodology/backend-overlay.yml +73 -0
  44. package/content/methodology/cli-overlay.yml +69 -0
  45. package/content/methodology/web-app-overlay.yml +79 -0
  46. package/dist/cli/commands/init.d.ts +26 -0
  47. package/dist/cli/commands/init.d.ts.map +1 -1
  48. package/dist/cli/commands/init.js +354 -7
  49. package/dist/cli/commands/init.js.map +1 -1
  50. package/dist/cli/commands/init.test.js +136 -0
  51. package/dist/cli/commands/init.test.js.map +1 -1
  52. package/dist/config/schema.d.ts +800 -32
  53. package/dist/config/schema.d.ts.map +1 -1
  54. package/dist/config/schema.js +48 -5
  55. package/dist/config/schema.js.map +1 -1
  56. package/dist/config/schema.test.js +156 -1
  57. package/dist/config/schema.test.js.map +1 -1
  58. package/dist/core/assembly/overlay-loader.d.ts.map +1 -1
  59. package/dist/core/assembly/overlay-loader.js +2 -1
  60. package/dist/core/assembly/overlay-loader.js.map +1 -1
  61. package/dist/core/assembly/overlay-loader.test.js +34 -0
  62. package/dist/core/assembly/overlay-loader.test.js.map +1 -1
  63. package/dist/e2e/game-pipeline.test.js +1 -0
  64. package/dist/e2e/game-pipeline.test.js.map +1 -1
  65. package/dist/e2e/project-type-overlays.test.d.ts +15 -0
  66. package/dist/e2e/project-type-overlays.test.d.ts.map +1 -0
  67. package/dist/e2e/project-type-overlays.test.js +534 -0
  68. package/dist/e2e/project-type-overlays.test.js.map +1 -0
  69. package/dist/types/config.d.ts +13 -2
  70. package/dist/types/config.d.ts.map +1 -1
  71. package/dist/types/index.d.ts +0 -1
  72. package/dist/types/index.d.ts.map +1 -1
  73. package/dist/types/index.js +0 -1
  74. package/dist/types/index.js.map +1 -1
  75. package/dist/wizard/questions.d.ts +30 -1
  76. package/dist/wizard/questions.d.ts.map +1 -1
  77. package/dist/wizard/questions.js +181 -36
  78. package/dist/wizard/questions.js.map +1 -1
  79. package/dist/wizard/questions.test.js +334 -4
  80. package/dist/wizard/questions.test.js.map +1 -1
  81. package/dist/wizard/wizard.d.ts +26 -0
  82. package/dist/wizard/wizard.d.ts.map +1 -1
  83. package/dist/wizard/wizard.js +31 -2
  84. package/dist/wizard/wizard.js.map +1 -1
  85. package/package.json +1 -1
  86. package/dist/types/wizard.d.ts +0 -14
  87. package/dist/types/wizard.d.ts.map +0 -1
  88. package/dist/types/wizard.js +0 -2
  89. package/dist/types/wizard.js.map +0 -1
@@ -0,0 +1,534 @@
1
+ /**
2
+ * E2E integration tests for project-type overlay flow:
3
+ * init → config.yml → overlay resolution → knowledge injection
4
+ *
5
+ * Tests the full pipeline for web-app, backend, and cli project types:
6
+ * 1. Init creates config with project-type-specific config block
7
+ * 2. Config validates through ConfigSchema
8
+ * 3. Overlay loads and resolves against real pipeline meta-prompts
9
+ * 4. Knowledge entries are injected into the correct steps
10
+ *
11
+ * Follows the same pattern as game-pipeline.test.ts: real temp dirs, mocked
12
+ * detectProjectMode and discoverMetaPrompts.
13
+ */
14
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
15
+ import fs from 'node:fs';
16
+ import path from 'node:path';
17
+ import os from 'node:os';
18
+ import yaml from 'js-yaml';
19
+ // ---------------------------------------------------------------------------
20
+ // Hoisted mocks — must appear before real imports
21
+ // ---------------------------------------------------------------------------
22
+ vi.mock('../../src/project/detector.js', () => ({
23
+ detectProjectMode: vi.fn(() => ({
24
+ mode: 'greenfield',
25
+ signals: [],
26
+ methodologySuggestion: 'deep',
27
+ sourceFileCount: 0,
28
+ })),
29
+ }));
30
+ vi.mock('../../src/core/assembly/meta-prompt-loader.js', () => ({
31
+ discoverMetaPrompts: vi.fn(() => new Map()),
32
+ discoverAllMetaPrompts: vi.fn(() => new Map()),
33
+ }));
34
+ // ---------------------------------------------------------------------------
35
+ // Real imports (after mock declarations)
36
+ // ---------------------------------------------------------------------------
37
+ import { runWizard } from '../wizard/wizard.js';
38
+ import { loadConfig } from '../config/loader.js';
39
+ import { ConfigSchema } from '../config/schema.js';
40
+ import { loadAllPresets } from '../core/assembly/preset-loader.js';
41
+ import { resolveOverlayState } from '../core/assembly/overlay-state-resolver.js';
42
+ import { loadOverlay } from '../core/assembly/overlay-loader.js';
43
+ import { getPackagePipelineDir, getPackageMethodologyDir } from '../utils/fs.js';
44
+ // ---------------------------------------------------------------------------
45
+ // Helpers
46
+ // ---------------------------------------------------------------------------
47
+ function makeTempDir() {
48
+ return fs.mkdtempSync(path.join(os.tmpdir(), 'scaffold-e2e-overlay-'));
49
+ }
50
+ function createMockOutput() {
51
+ return {
52
+ success: vi.fn(),
53
+ info: vi.fn(),
54
+ warn: vi.fn(),
55
+ error: vi.fn(),
56
+ result: vi.fn(),
57
+ prompt: vi.fn().mockResolvedValue(''),
58
+ confirm: vi.fn().mockResolvedValue(false),
59
+ select: vi.fn().mockResolvedValue(''),
60
+ multiSelect: vi.fn().mockResolvedValue([]),
61
+ multiInput: vi.fn().mockResolvedValue([]),
62
+ startSpinner: vi.fn(),
63
+ stopSpinner: vi.fn(),
64
+ startProgress: vi.fn(),
65
+ updateProgress: vi.fn(),
66
+ stopProgress: vi.fn(),
67
+ };
68
+ }
69
+ /**
70
+ * Discover real meta-prompts from the package pipeline directory.
71
+ * Uses vi.importActual to bypass the vi.mock and get the real loader.
72
+ */
73
+ async function discoverRealMetaPrompts() {
74
+ const pipelineDir = getPackagePipelineDir();
75
+ const actual = await vi.importActual('../core/assembly/meta-prompt-loader.js');
76
+ return actual.discoverMetaPrompts(pipelineDir);
77
+ }
78
+ /**
79
+ * Resolve an overlay with a given project type and methodology against the real pipeline.
80
+ */
81
+ async function resolveProjectOverlay(projectType, methodology = 'deep') {
82
+ const methodologyDir = getPackageMethodologyDir();
83
+ const realMetaPrompts = await discoverRealMetaPrompts();
84
+ const knownSteps = [...realMetaPrompts.keys()];
85
+ const presets = loadAllPresets(methodologyDir, knownSteps);
86
+ const output = createMockOutput();
87
+ const preset = methodology === 'mvp' ? presets.mvp : presets.deep;
88
+ const overlayState = resolveOverlayState({
89
+ config: {
90
+ version: 2,
91
+ methodology,
92
+ platforms: ['claude-code'],
93
+ project: { projectType },
94
+ },
95
+ methodologyDir,
96
+ metaPrompts: realMetaPrompts,
97
+ presetSteps: preset?.steps ?? {},
98
+ output,
99
+ });
100
+ return { overlayState, realMetaPrompts };
101
+ }
102
+ // ---------------------------------------------------------------------------
103
+ // Tests — Web-app
104
+ // ---------------------------------------------------------------------------
105
+ describe('web-app overlay integration', () => {
106
+ let tmpDir;
107
+ beforeEach(() => {
108
+ tmpDir = makeTempDir();
109
+ });
110
+ afterEach(() => {
111
+ fs.rmSync(tmpDir, { recursive: true, force: true });
112
+ vi.restoreAllMocks();
113
+ });
114
+ // Test 1: Config with web-app + webAppConfig validates through ConfigSchema
115
+ it('web-app config with webAppConfig validates through ConfigSchema', () => {
116
+ const result = ConfigSchema.safeParse({
117
+ version: 2,
118
+ methodology: 'deep',
119
+ platforms: ['claude-code'],
120
+ project: {
121
+ projectType: 'web-app',
122
+ webAppConfig: { renderingStrategy: 'ssr' },
123
+ },
124
+ });
125
+ expect(result.success).toBe(true);
126
+ if (result.success) {
127
+ const project = result.data.project;
128
+ expect(project['projectType']).toBe('web-app');
129
+ const wac = project['webAppConfig'];
130
+ expect(wac['renderingStrategy']).toBe('ssr');
131
+ expect(wac['deployTarget']).toBe('serverless'); // default
132
+ }
133
+ });
134
+ // Test 2: Init with projectType web-app creates config with webAppConfig
135
+ it('init with projectType web-app creates config.yml with webAppConfig defaults', async () => {
136
+ const output = createMockOutput();
137
+ const result = await runWizard({
138
+ projectRoot: tmpDir,
139
+ projectType: 'web-app',
140
+ webRendering: 'ssr',
141
+ methodology: 'deep',
142
+ force: false,
143
+ auto: true,
144
+ output,
145
+ });
146
+ expect(result.success).toBe(true);
147
+ const { config } = loadConfig(tmpDir, []);
148
+ expect(config).not.toBeNull();
149
+ expect(config.methodology).toBe('deep');
150
+ expect(config.project?.projectType).toBe('web-app');
151
+ expect(config.project?.webAppConfig).toBeDefined();
152
+ expect(config.project?.webAppConfig?.renderingStrategy).toBe('ssr');
153
+ });
154
+ // Test 3: config.yml round-trips through YAML correctly
155
+ it('config.yml round-trips projectType and webAppConfig through YAML', async () => {
156
+ const output = createMockOutput();
157
+ await runWizard({
158
+ projectRoot: tmpDir,
159
+ projectType: 'web-app',
160
+ webRendering: 'spa',
161
+ methodology: 'deep',
162
+ force: false,
163
+ auto: true,
164
+ output,
165
+ });
166
+ const configPath = path.join(tmpDir, '.scaffold', 'config.yml');
167
+ const raw = yaml.load(fs.readFileSync(configPath, 'utf8'));
168
+ const project = raw['project'];
169
+ expect(project['projectType']).toBe('web-app');
170
+ expect(project['webAppConfig']).toBeDefined();
171
+ const wac = project['webAppConfig'];
172
+ expect(wac['renderingStrategy']).toBe('spa');
173
+ });
174
+ // Test 4: Overlay loads successfully from content/methodology
175
+ it('web-app overlay loads without errors', () => {
176
+ const methodologyDir = getPackageMethodologyDir();
177
+ const overlayPath = path.join(methodologyDir, 'web-app-overlay.yml');
178
+ const { overlay, errors } = loadOverlay(overlayPath);
179
+ expect(errors).toHaveLength(0);
180
+ expect(overlay).not.toBeNull();
181
+ expect(overlay.projectType).toBe('web-app');
182
+ expect(Object.keys(overlay.knowledgeOverrides).length).toBeGreaterThan(0);
183
+ });
184
+ // Test 5: Overlay injects web-app knowledge into architecture step
185
+ it('overlay injects web-app-architecture into system-architecture step', async () => {
186
+ const { overlayState } = await resolveProjectOverlay('web-app');
187
+ expect(overlayState.knowledge['system-architecture']).toBeDefined();
188
+ expect(overlayState.knowledge['system-architecture']).toContain('web-app-architecture');
189
+ expect(overlayState.knowledge['system-architecture']).toContain('web-app-deployment');
190
+ });
191
+ // Test 6: Overlay injects knowledge into tech-stack step
192
+ it('overlay injects web-app knowledge into tech-stack step', async () => {
193
+ const { overlayState } = await resolveProjectOverlay('web-app');
194
+ expect(overlayState.knowledge['tech-stack']).toBeDefined();
195
+ expect(overlayState.knowledge['tech-stack']).toContain('web-app-rendering-strategies');
196
+ expect(overlayState.knowledge['tech-stack']).toContain('web-app-deployment');
197
+ expect(overlayState.knowledge['tech-stack']).toContain('web-app-auth-patterns');
198
+ });
199
+ // Test 7: Overlay injects knowledge into testing steps
200
+ it('overlay injects web-app-testing into TDD and e2e steps', async () => {
201
+ const { overlayState } = await resolveProjectOverlay('web-app');
202
+ expect(overlayState.knowledge['tdd']).toBeDefined();
203
+ expect(overlayState.knowledge['tdd']).toContain('web-app-testing');
204
+ expect(overlayState.knowledge['add-e2e-testing']).toBeDefined();
205
+ expect(overlayState.knowledge['add-e2e-testing']).toContain('web-app-testing');
206
+ });
207
+ // Test 8: Overlay injects knowledge into foundational steps
208
+ it('overlay injects web-app knowledge into foundational steps', async () => {
209
+ const { overlayState } = await resolveProjectOverlay('web-app');
210
+ expect(overlayState.knowledge['create-prd']).toContain('web-app-requirements');
211
+ expect(overlayState.knowledge['coding-standards']).toContain('web-app-conventions');
212
+ expect(overlayState.knowledge['project-structure']).toContain('web-app-project-structure');
213
+ });
214
+ // Test 9: No step overrides (web-app overlay is knowledge-only)
215
+ it('web-app overlay does not override step enablement', async () => {
216
+ const { overlayState } = await resolveProjectOverlay('web-app');
217
+ // web-app overlay has no step-overrides section
218
+ // All steps should match the deep preset exactly
219
+ const methodologyDir = getPackageMethodologyDir();
220
+ const realMetaPrompts = await discoverRealMetaPrompts();
221
+ const knownSteps = [...realMetaPrompts.keys()];
222
+ const presets = loadAllPresets(methodologyDir, knownSteps);
223
+ const deepSteps = presets.deep?.steps ?? {};
224
+ for (const [stepName, entry] of Object.entries(deepSteps)) {
225
+ expect(overlayState.steps[stepName]?.enabled, `${stepName} enablement should match preset`).toBe(entry.enabled);
226
+ }
227
+ });
228
+ // Test 10: MVP methodology with web-app overlay works
229
+ it('MVP methodology with web-app overlay injects knowledge', async () => {
230
+ const { overlayState } = await resolveProjectOverlay('web-app', 'mvp');
231
+ expect(overlayState.knowledge['system-architecture']).toContain('web-app-architecture');
232
+ expect(overlayState.knowledge['tech-stack']).toContain('web-app-rendering-strategies');
233
+ });
234
+ });
235
+ // ---------------------------------------------------------------------------
236
+ // Tests — Backend
237
+ // ---------------------------------------------------------------------------
238
+ describe('backend overlay integration', () => {
239
+ let tmpDir;
240
+ beforeEach(() => {
241
+ tmpDir = makeTempDir();
242
+ });
243
+ afterEach(() => {
244
+ fs.rmSync(tmpDir, { recursive: true, force: true });
245
+ vi.restoreAllMocks();
246
+ });
247
+ // Test 1: Config with backend + backendConfig validates through ConfigSchema
248
+ it('backend config with backendConfig validates through ConfigSchema', () => {
249
+ const result = ConfigSchema.safeParse({
250
+ version: 2,
251
+ methodology: 'deep',
252
+ platforms: ['claude-code'],
253
+ project: {
254
+ projectType: 'backend',
255
+ backendConfig: { apiStyle: 'rest' },
256
+ },
257
+ });
258
+ expect(result.success).toBe(true);
259
+ if (result.success) {
260
+ const project = result.data.project;
261
+ expect(project['projectType']).toBe('backend');
262
+ const bc = project['backendConfig'];
263
+ expect(bc['apiStyle']).toBe('rest');
264
+ expect(bc['dataStore']).toEqual(['relational']); // default
265
+ expect(bc['deployTarget']).toBe('container'); // default
266
+ }
267
+ });
268
+ // Test 2: Init with projectType backend creates config with backendConfig
269
+ it('init with projectType backend creates config.yml with backendConfig defaults', async () => {
270
+ const output = createMockOutput();
271
+ const result = await runWizard({
272
+ projectRoot: tmpDir,
273
+ projectType: 'backend',
274
+ backendApiStyle: 'rest',
275
+ methodology: 'deep',
276
+ force: false,
277
+ auto: true,
278
+ output,
279
+ });
280
+ expect(result.success).toBe(true);
281
+ const { config } = loadConfig(tmpDir, []);
282
+ expect(config).not.toBeNull();
283
+ expect(config.project?.projectType).toBe('backend');
284
+ expect(config.project?.backendConfig).toBeDefined();
285
+ expect(config.project?.backendConfig?.apiStyle).toBe('rest');
286
+ });
287
+ // Test 3: config.yml round-trips through YAML correctly
288
+ it('config.yml round-trips projectType and backendConfig through YAML', async () => {
289
+ const output = createMockOutput();
290
+ await runWizard({
291
+ projectRoot: tmpDir,
292
+ projectType: 'backend',
293
+ backendApiStyle: 'graphql',
294
+ methodology: 'deep',
295
+ force: false,
296
+ auto: true,
297
+ output,
298
+ });
299
+ const configPath = path.join(tmpDir, '.scaffold', 'config.yml');
300
+ const raw = yaml.load(fs.readFileSync(configPath, 'utf8'));
301
+ const project = raw['project'];
302
+ expect(project['projectType']).toBe('backend');
303
+ expect(project['backendConfig']).toBeDefined();
304
+ const bc = project['backendConfig'];
305
+ expect(bc['apiStyle']).toBe('graphql');
306
+ });
307
+ // Test 4: Overlay loads successfully from content/methodology
308
+ it('backend overlay loads without errors', () => {
309
+ const methodologyDir = getPackageMethodologyDir();
310
+ const overlayPath = path.join(methodologyDir, 'backend-overlay.yml');
311
+ const { overlay, errors } = loadOverlay(overlayPath);
312
+ expect(errors).toHaveLength(0);
313
+ expect(overlay).not.toBeNull();
314
+ expect(overlay.projectType).toBe('backend');
315
+ expect(Object.keys(overlay.knowledgeOverrides).length).toBeGreaterThan(0);
316
+ });
317
+ // Test 5: Overlay injects backend knowledge into architecture step
318
+ it('overlay injects backend-architecture into system-architecture step', async () => {
319
+ const { overlayState } = await resolveProjectOverlay('backend');
320
+ expect(overlayState.knowledge['system-architecture']).toBeDefined();
321
+ expect(overlayState.knowledge['system-architecture']).toContain('backend-architecture');
322
+ expect(overlayState.knowledge['system-architecture']).toContain('backend-async-patterns');
323
+ });
324
+ // Test 6: Overlay injects knowledge into tech-stack step
325
+ it('overlay injects backend knowledge into tech-stack step', async () => {
326
+ const { overlayState } = await resolveProjectOverlay('backend');
327
+ expect(overlayState.knowledge['tech-stack']).toBeDefined();
328
+ expect(overlayState.knowledge['tech-stack']).toContain('backend-architecture');
329
+ expect(overlayState.knowledge['tech-stack']).toContain('backend-api-design');
330
+ expect(overlayState.knowledge['tech-stack']).toContain('backend-auth-patterns');
331
+ });
332
+ // Test 7: Overlay injects knowledge into testing steps
333
+ it('overlay injects backend-testing into TDD and e2e steps', async () => {
334
+ const { overlayState } = await resolveProjectOverlay('backend');
335
+ expect(overlayState.knowledge['tdd']).toBeDefined();
336
+ expect(overlayState.knowledge['tdd']).toContain('backend-testing');
337
+ expect(overlayState.knowledge['add-e2e-testing']).toBeDefined();
338
+ expect(overlayState.knowledge['add-e2e-testing']).toContain('backend-testing');
339
+ });
340
+ // Test 8: Overlay injects knowledge into foundational steps
341
+ it('overlay injects backend knowledge into foundational steps', async () => {
342
+ const { overlayState } = await resolveProjectOverlay('backend');
343
+ expect(overlayState.knowledge['create-prd']).toContain('backend-requirements');
344
+ expect(overlayState.knowledge['coding-standards']).toContain('backend-conventions');
345
+ expect(overlayState.knowledge['project-structure']).toContain('backend-project-structure');
346
+ });
347
+ // Test 9: Overlay injects knowledge into operations step
348
+ it('overlay injects backend knowledge into operations step', async () => {
349
+ const { overlayState } = await resolveProjectOverlay('backend');
350
+ expect(overlayState.knowledge['operations']).toBeDefined();
351
+ expect(overlayState.knowledge['operations']).toContain('backend-deployment');
352
+ expect(overlayState.knowledge['operations']).toContain('backend-observability');
353
+ expect(overlayState.knowledge['operations']).toContain('backend-async-patterns');
354
+ });
355
+ // Test 10: MVP methodology with backend overlay works
356
+ it('MVP methodology with backend overlay injects knowledge', async () => {
357
+ const { overlayState } = await resolveProjectOverlay('backend', 'mvp');
358
+ expect(overlayState.knowledge['system-architecture']).toContain('backend-architecture');
359
+ expect(overlayState.knowledge['tech-stack']).toContain('backend-api-design');
360
+ });
361
+ });
362
+ // ---------------------------------------------------------------------------
363
+ // Tests — CLI
364
+ // ---------------------------------------------------------------------------
365
+ describe('cli overlay integration', () => {
366
+ let tmpDir;
367
+ beforeEach(() => {
368
+ tmpDir = makeTempDir();
369
+ });
370
+ afterEach(() => {
371
+ fs.rmSync(tmpDir, { recursive: true, force: true });
372
+ vi.restoreAllMocks();
373
+ });
374
+ // Test 1: Config with cli + cliConfig validates through ConfigSchema
375
+ it('cli config with cliConfig validates through ConfigSchema', () => {
376
+ const result = ConfigSchema.safeParse({
377
+ version: 2,
378
+ methodology: 'deep',
379
+ platforms: ['claude-code'],
380
+ project: {
381
+ projectType: 'cli',
382
+ cliConfig: { interactivity: 'hybrid' },
383
+ },
384
+ });
385
+ expect(result.success).toBe(true);
386
+ if (result.success) {
387
+ const project = result.data.project;
388
+ expect(project['projectType']).toBe('cli');
389
+ const cc = project['cliConfig'];
390
+ expect(cc['interactivity']).toBe('hybrid');
391
+ expect(cc['distributionChannels']).toEqual(['package-manager']); // default
392
+ expect(cc['hasStructuredOutput']).toBe(false); // default
393
+ }
394
+ });
395
+ // Test 2: Init with projectType cli creates config with cliConfig
396
+ it('init with projectType cli creates config.yml with cliConfig defaults', async () => {
397
+ const output = createMockOutput();
398
+ const result = await runWizard({
399
+ projectRoot: tmpDir,
400
+ projectType: 'cli',
401
+ cliInteractivity: 'hybrid',
402
+ methodology: 'deep',
403
+ force: false,
404
+ auto: true,
405
+ output,
406
+ });
407
+ expect(result.success).toBe(true);
408
+ const { config } = loadConfig(tmpDir, []);
409
+ expect(config).not.toBeNull();
410
+ expect(config.project?.projectType).toBe('cli');
411
+ expect(config.project?.cliConfig).toBeDefined();
412
+ expect(config.project?.cliConfig?.interactivity).toBe('hybrid');
413
+ });
414
+ // Test 3: config.yml round-trips through YAML correctly
415
+ it('config.yml round-trips projectType and cliConfig through YAML', async () => {
416
+ const output = createMockOutput();
417
+ await runWizard({
418
+ projectRoot: tmpDir,
419
+ projectType: 'cli',
420
+ cliInteractivity: 'args-only',
421
+ methodology: 'deep',
422
+ force: false,
423
+ auto: true,
424
+ output,
425
+ });
426
+ const configPath = path.join(tmpDir, '.scaffold', 'config.yml');
427
+ const raw = yaml.load(fs.readFileSync(configPath, 'utf8'));
428
+ const project = raw['project'];
429
+ expect(project['projectType']).toBe('cli');
430
+ expect(project['cliConfig']).toBeDefined();
431
+ const cc = project['cliConfig'];
432
+ expect(cc['interactivity']).toBe('args-only');
433
+ });
434
+ // Test 4: Overlay loads successfully from content/methodology
435
+ it('cli overlay loads without errors', () => {
436
+ const methodologyDir = getPackageMethodologyDir();
437
+ const overlayPath = path.join(methodologyDir, 'cli-overlay.yml');
438
+ const { overlay, errors } = loadOverlay(overlayPath);
439
+ expect(errors).toHaveLength(0);
440
+ expect(overlay).not.toBeNull();
441
+ expect(overlay.projectType).toBe('cli');
442
+ expect(Object.keys(overlay.knowledgeOverrides).length).toBeGreaterThan(0);
443
+ });
444
+ // Test 5: Overlay injects cli knowledge into architecture step
445
+ it('overlay injects cli-architecture into system-architecture step', async () => {
446
+ const { overlayState } = await resolveProjectOverlay('cli');
447
+ expect(overlayState.knowledge['system-architecture']).toBeDefined();
448
+ expect(overlayState.knowledge['system-architecture']).toContain('cli-architecture');
449
+ expect(overlayState.knowledge['system-architecture']).toContain('cli-interactivity-patterns');
450
+ });
451
+ // Test 6: Overlay injects knowledge into tech-stack step
452
+ it('overlay injects cli knowledge into tech-stack step', async () => {
453
+ const { overlayState } = await resolveProjectOverlay('cli');
454
+ expect(overlayState.knowledge['tech-stack']).toBeDefined();
455
+ expect(overlayState.knowledge['tech-stack']).toContain('cli-architecture');
456
+ expect(overlayState.knowledge['tech-stack']).toContain('cli-distribution-patterns');
457
+ });
458
+ // Test 7: Overlay injects knowledge into testing steps
459
+ it('overlay injects cli-testing into TDD and e2e steps', async () => {
460
+ const { overlayState } = await resolveProjectOverlay('cli');
461
+ expect(overlayState.knowledge['tdd']).toBeDefined();
462
+ expect(overlayState.knowledge['tdd']).toContain('cli-testing');
463
+ expect(overlayState.knowledge['add-e2e-testing']).toBeDefined();
464
+ expect(overlayState.knowledge['add-e2e-testing']).toContain('cli-testing');
465
+ });
466
+ // Test 8: Overlay injects knowledge into foundational steps
467
+ it('overlay injects cli knowledge into foundational steps', async () => {
468
+ const { overlayState } = await resolveProjectOverlay('cli');
469
+ expect(overlayState.knowledge['create-prd']).toContain('cli-requirements');
470
+ expect(overlayState.knowledge['coding-standards']).toContain('cli-conventions');
471
+ expect(overlayState.knowledge['project-structure']).toContain('cli-project-structure');
472
+ });
473
+ // Test 9: Overlay injects knowledge into operations step
474
+ it('overlay injects cli knowledge into operations step', async () => {
475
+ const { overlayState } = await resolveProjectOverlay('cli');
476
+ expect(overlayState.knowledge['operations']).toBeDefined();
477
+ expect(overlayState.knowledge['operations']).toContain('cli-distribution-patterns');
478
+ expect(overlayState.knowledge['operations']).toContain('cli-shell-integration');
479
+ });
480
+ // Test 10: MVP methodology with cli overlay works
481
+ it('MVP methodology with cli overlay injects knowledge', async () => {
482
+ const { overlayState } = await resolveProjectOverlay('cli', 'mvp');
483
+ expect(overlayState.knowledge['system-architecture']).toContain('cli-architecture');
484
+ expect(overlayState.knowledge['tech-stack']).toContain('cli-distribution-patterns');
485
+ });
486
+ });
487
+ // ---------------------------------------------------------------------------
488
+ // Cross-type validation tests
489
+ // ---------------------------------------------------------------------------
490
+ describe('project-type overlay cross-validation', () => {
491
+ it('each overlay type injects distinct knowledge entries (no accidental overlap)', async () => {
492
+ const [webResult, backendResult, cliResult] = await Promise.all([
493
+ resolveProjectOverlay('web-app'),
494
+ resolveProjectOverlay('backend'),
495
+ resolveProjectOverlay('cli'),
496
+ ]);
497
+ // system-architecture should have type-specific entries for each
498
+ const webArch = webResult.overlayState.knowledge['system-architecture'] ?? [];
499
+ const backendArch = backendResult.overlayState.knowledge['system-architecture'] ?? [];
500
+ const cliArch = cliResult.overlayState.knowledge['system-architecture'] ?? [];
501
+ expect(webArch).toContain('web-app-architecture');
502
+ expect(webArch).not.toContain('backend-architecture');
503
+ expect(webArch).not.toContain('cli-architecture');
504
+ expect(backendArch).toContain('backend-architecture');
505
+ expect(backendArch).not.toContain('web-app-architecture');
506
+ expect(backendArch).not.toContain('cli-architecture');
507
+ expect(cliArch).toContain('cli-architecture');
508
+ expect(cliArch).not.toContain('web-app-architecture');
509
+ expect(cliArch).not.toContain('backend-architecture');
510
+ });
511
+ it('config schema rejects cross-typed config blocks', () => {
512
+ // gameConfig on web-app
513
+ expect(ConfigSchema.safeParse({
514
+ version: 2, methodology: 'deep', platforms: ['claude-code'],
515
+ project: { projectType: 'web-app', gameConfig: { engine: 'unity' } },
516
+ }).success).toBe(false);
517
+ // webAppConfig on backend
518
+ expect(ConfigSchema.safeParse({
519
+ version: 2, methodology: 'deep', platforms: ['claude-code'],
520
+ project: { projectType: 'backend', webAppConfig: { renderingStrategy: 'spa' } },
521
+ }).success).toBe(false);
522
+ // backendConfig on cli
523
+ expect(ConfigSchema.safeParse({
524
+ version: 2, methodology: 'deep', platforms: ['claude-code'],
525
+ project: { projectType: 'cli', backendConfig: { apiStyle: 'rest' } },
526
+ }).success).toBe(false);
527
+ // cliConfig on game
528
+ expect(ConfigSchema.safeParse({
529
+ version: 2, methodology: 'deep', platforms: ['claude-code'],
530
+ project: { projectType: 'game', cliConfig: { interactivity: 'hybrid' } },
531
+ }).success).toBe(false);
532
+ });
533
+ });
534
+ //# sourceMappingURL=project-type-overlays.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-type-overlays.test.js","sourceRoot":"","sources":["../../src/e2e/project-type-overlays.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import type { MethodologyName, DepthLevel } from './enums.js';
2
+ import type { z } from 'zod';
3
+ import { ProjectTypeSchema, WebAppConfigSchema, BackendConfigSchema, CliConfigSchema } from '../config/schema.js';
2
4
  /** Step enablement entry used in presets and overlays. */
3
5
  export interface StepEnablementEntry {
4
6
  enabled: boolean;
@@ -14,8 +16,14 @@ export interface CustomConfig {
14
16
  default_depth?: DepthLevel;
15
17
  steps?: Record<string, CustomStepConfig>;
16
18
  }
17
- /** Valid project types. */
18
- export type ProjectType = 'web-app' | 'mobile-app' | 'backend' | 'cli' | 'library' | 'game';
19
+ /** Valid project types — derived from Zod schema (single source of truth). */
20
+ export type ProjectType = z.infer<typeof ProjectTypeSchema>;
21
+ /** Web app configuration — derived from Zod schema (single source of truth). */
22
+ export type WebAppConfig = z.infer<typeof WebAppConfigSchema>;
23
+ /** Backend configuration — derived from Zod schema (single source of truth). */
24
+ export type BackendConfig = z.infer<typeof BackendConfigSchema>;
25
+ /** CLI tool configuration — derived from Zod schema (single source of truth). */
26
+ export type CliConfig = z.infer<typeof CliConfigSchema>;
19
27
  /** Game engine options. */
20
28
  export type GameEngine = 'unity' | 'unreal' | 'godot' | 'custom';
21
29
  /** Game-specific configuration. Only valid when projectType === 'game'. */
@@ -62,6 +70,9 @@ export interface ProjectConfig {
62
70
  platforms?: Array<'web' | 'mobile' | 'desktop'>;
63
71
  projectType?: ProjectType;
64
72
  gameConfig?: GameConfig;
73
+ webAppConfig?: WebAppConfig;
74
+ backendConfig?: BackendConfig;
75
+ cliConfig?: CliConfig;
65
76
  [key: string]: unknown;
66
77
  }
67
78
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAEjH,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB;AAED,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,UAAU,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CACzC;AAED,8EAA8E;AAC9E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,gFAAgF;AAChF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,iFAAiF;AACjF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,2BAA2B;AAC3B,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEhE,2EAA2E;AAC3E,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAA;IAClB,eAAe,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACvD,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,eAAe,CAAA;IACxF,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,WAAW,GAAG,MAAM,CAAA;IACtD,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC,CAAA;IAC/E,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAA;IAC3E,eAAe,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,CAAA;IAClG,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,UAAU,EAAE,OAAO,CAAA;IACnB,eAAe,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAA;CAC/C;AAED,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,+CAA+C;AAC/C,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,gEAAgE;AAChE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAClD,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IACrD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC7C,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;CACxD;AAED,+CAA+C;AAC/C,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAA;IAC/C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,CAAA;IACV,WAAW,EAAE,eAAe,CAAA;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,SAAS,EAAE,KAAK,CAAC,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAA;IACpD,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,+FAA+F;AAC/F,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,UAAU,CAAA;IACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;CAC3C"}
@@ -8,7 +8,6 @@ export * from './decision.js';
8
8
  export * from './lock.js';
9
9
  export * from './cli.js';
10
10
  export * from './adapter.js';
11
- export * from './wizard.js';
12
11
  export * from './errors.js';
13
12
  export * from './claude-md.js';
14
13
  export * from './rework.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA"}