@zigrivers/scaffold 3.4.1 → 3.5.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 (194) hide show
  1. package/README.md +91 -0
  2. package/content/knowledge/game/game-accessibility.md +328 -0
  3. package/content/knowledge/game/game-ai-patterns.md +542 -0
  4. package/content/knowledge/game/game-asset-pipeline.md +359 -0
  5. package/content/knowledge/game/game-audio-design.md +342 -0
  6. package/content/knowledge/game/game-binary-vcs-strategy.md +396 -0
  7. package/content/knowledge/game/game-design-document.md +260 -0
  8. package/content/knowledge/game/game-domain-patterns.md +297 -0
  9. package/content/knowledge/game/game-economy-design.md +355 -0
  10. package/content/knowledge/game/game-engine-selection.md +242 -0
  11. package/content/knowledge/game/game-input-systems.md +357 -0
  12. package/content/knowledge/game/game-level-content-design.md +455 -0
  13. package/content/knowledge/game/game-liveops-analytics.md +280 -0
  14. package/content/knowledge/game/game-localization.md +323 -0
  15. package/content/knowledge/game/game-milestone-definitions.md +337 -0
  16. package/content/knowledge/game/game-modding-ugc.md +390 -0
  17. package/content/knowledge/game/game-narrative-design.md +404 -0
  18. package/content/knowledge/game/game-networking.md +391 -0
  19. package/content/knowledge/game/game-performance-budgeting.md +378 -0
  20. package/content/knowledge/game/game-platform-certification.md +417 -0
  21. package/content/knowledge/game/game-project-structure.md +360 -0
  22. package/content/knowledge/game/game-save-systems.md +452 -0
  23. package/content/knowledge/game/game-testing-strategy.md +470 -0
  24. package/content/knowledge/game/game-ui-patterns.md +475 -0
  25. package/content/knowledge/game/game-vr-ar-design.md +313 -0
  26. package/content/knowledge/review/review-art-bible.md +305 -0
  27. package/content/knowledge/review/review-game-design.md +303 -0
  28. package/content/knowledge/review/review-game-economy.md +272 -0
  29. package/content/knowledge/review/review-netcode.md +280 -0
  30. package/content/knowledge/review/review-platform-cert.md +341 -0
  31. package/content/methodology/custom-defaults.yml +25 -0
  32. package/content/methodology/deep.yml +25 -0
  33. package/content/methodology/game-overlay.yml +145 -0
  34. package/content/methodology/mvp.yml +25 -0
  35. package/content/pipeline/architecture/ai-behavior-design.md +87 -0
  36. package/content/pipeline/architecture/netcode-spec.md +86 -0
  37. package/content/pipeline/architecture/review-netcode.md +78 -0
  38. package/content/pipeline/foundation/performance-budgets.md +91 -0
  39. package/content/pipeline/modeling/narrative-bible.md +84 -0
  40. package/content/pipeline/pre/game-design-document.md +89 -0
  41. package/content/pipeline/pre/review-gdd.md +74 -0
  42. package/content/pipeline/quality/analytics-telemetry.md +98 -0
  43. package/content/pipeline/quality/live-ops-plan.md +99 -0
  44. package/content/pipeline/quality/platform-cert-prep.md +129 -0
  45. package/content/pipeline/quality/playtest-plan.md +83 -0
  46. package/content/pipeline/specification/art-bible.md +87 -0
  47. package/content/pipeline/specification/audio-design.md +96 -0
  48. package/content/pipeline/specification/content-structure-design.md +141 -0
  49. package/content/pipeline/specification/economy-design.md +104 -0
  50. package/content/pipeline/specification/game-accessibility.md +82 -0
  51. package/content/pipeline/specification/game-ui-spec.md +97 -0
  52. package/content/pipeline/specification/input-controls-spec.md +81 -0
  53. package/content/pipeline/specification/localization-plan.md +113 -0
  54. package/content/pipeline/specification/modding-ugc-spec.md +116 -0
  55. package/content/pipeline/specification/online-services-spec.md +104 -0
  56. package/content/pipeline/specification/review-economy.md +87 -0
  57. package/content/pipeline/specification/review-game-ui.md +73 -0
  58. package/content/pipeline/specification/save-system-spec.md +116 -0
  59. package/dist/cli/commands/adopt.d.ts.map +1 -1
  60. package/dist/cli/commands/adopt.js +25 -0
  61. package/dist/cli/commands/adopt.js.map +1 -1
  62. package/dist/cli/commands/adopt.test.js +28 -1
  63. package/dist/cli/commands/adopt.test.js.map +1 -1
  64. package/dist/cli/commands/build.test.js +3 -0
  65. package/dist/cli/commands/build.test.js.map +1 -1
  66. package/dist/cli/commands/init.d.ts +1 -0
  67. package/dist/cli/commands/init.d.ts.map +1 -1
  68. package/dist/cli/commands/init.js +6 -0
  69. package/dist/cli/commands/init.js.map +1 -1
  70. package/dist/cli/commands/init.test.js +12 -1
  71. package/dist/cli/commands/init.test.js.map +1 -1
  72. package/dist/cli/commands/knowledge.test.js +8 -0
  73. package/dist/cli/commands/knowledge.test.js.map +1 -1
  74. package/dist/cli/commands/next.d.ts.map +1 -1
  75. package/dist/cli/commands/next.js +19 -5
  76. package/dist/cli/commands/next.js.map +1 -1
  77. package/dist/cli/commands/next.test.js +56 -0
  78. package/dist/cli/commands/next.test.js.map +1 -1
  79. package/dist/cli/commands/rework.d.ts.map +1 -1
  80. package/dist/cli/commands/rework.js +11 -2
  81. package/dist/cli/commands/rework.js.map +1 -1
  82. package/dist/cli/commands/rework.test.js +5 -0
  83. package/dist/cli/commands/rework.test.js.map +1 -1
  84. package/dist/cli/commands/run.d.ts.map +1 -1
  85. package/dist/cli/commands/run.js +54 -4
  86. package/dist/cli/commands/run.js.map +1 -1
  87. package/dist/cli/commands/run.test.js +384 -0
  88. package/dist/cli/commands/run.test.js.map +1 -1
  89. package/dist/cli/commands/skip.test.js +3 -0
  90. package/dist/cli/commands/skip.test.js.map +1 -1
  91. package/dist/cli/commands/status.d.ts.map +1 -1
  92. package/dist/cli/commands/status.js +16 -3
  93. package/dist/cli/commands/status.js.map +1 -1
  94. package/dist/cli/commands/status.test.js +55 -0
  95. package/dist/cli/commands/status.test.js.map +1 -1
  96. package/dist/cli/output/auto.d.ts +3 -0
  97. package/dist/cli/output/auto.d.ts.map +1 -1
  98. package/dist/cli/output/auto.js +9 -0
  99. package/dist/cli/output/auto.js.map +1 -1
  100. package/dist/cli/output/context.d.ts +6 -0
  101. package/dist/cli/output/context.d.ts.map +1 -1
  102. package/dist/cli/output/context.js.map +1 -1
  103. package/dist/cli/output/context.test.js +87 -0
  104. package/dist/cli/output/context.test.js.map +1 -1
  105. package/dist/cli/output/error-display.test.js +3 -0
  106. package/dist/cli/output/error-display.test.js.map +1 -1
  107. package/dist/cli/output/interactive.d.ts +3 -0
  108. package/dist/cli/output/interactive.d.ts.map +1 -1
  109. package/dist/cli/output/interactive.js +76 -0
  110. package/dist/cli/output/interactive.js.map +1 -1
  111. package/dist/cli/output/json.d.ts +3 -0
  112. package/dist/cli/output/json.d.ts.map +1 -1
  113. package/dist/cli/output/json.js +9 -0
  114. package/dist/cli/output/json.js.map +1 -1
  115. package/dist/config/loader.d.ts.map +1 -1
  116. package/dist/config/loader.js +3 -2
  117. package/dist/config/loader.js.map +1 -1
  118. package/dist/config/schema.d.ts +641 -15
  119. package/dist/config/schema.d.ts.map +1 -1
  120. package/dist/config/schema.js +26 -1
  121. package/dist/config/schema.js.map +1 -1
  122. package/dist/config/schema.test.js +192 -1
  123. package/dist/config/schema.test.js.map +1 -1
  124. package/dist/core/assembly/overlay-loader.d.ts +24 -0
  125. package/dist/core/assembly/overlay-loader.d.ts.map +1 -0
  126. package/dist/core/assembly/overlay-loader.js +190 -0
  127. package/dist/core/assembly/overlay-loader.js.map +1 -0
  128. package/dist/core/assembly/overlay-loader.test.d.ts +2 -0
  129. package/dist/core/assembly/overlay-loader.test.d.ts.map +1 -0
  130. package/dist/core/assembly/overlay-loader.test.js +106 -0
  131. package/dist/core/assembly/overlay-loader.test.js.map +1 -0
  132. package/dist/core/assembly/overlay-resolver.d.ts +15 -0
  133. package/dist/core/assembly/overlay-resolver.d.ts.map +1 -0
  134. package/dist/core/assembly/overlay-resolver.js +58 -0
  135. package/dist/core/assembly/overlay-resolver.js.map +1 -0
  136. package/dist/core/assembly/overlay-resolver.test.d.ts +2 -0
  137. package/dist/core/assembly/overlay-resolver.test.d.ts.map +1 -0
  138. package/dist/core/assembly/overlay-resolver.test.js +246 -0
  139. package/dist/core/assembly/overlay-resolver.test.js.map +1 -0
  140. package/dist/core/assembly/overlay-state-resolver.d.ts +26 -0
  141. package/dist/core/assembly/overlay-state-resolver.d.ts.map +1 -0
  142. package/dist/core/assembly/overlay-state-resolver.js +63 -0
  143. package/dist/core/assembly/overlay-state-resolver.js.map +1 -0
  144. package/dist/core/assembly/overlay-state-resolver.test.d.ts +2 -0
  145. package/dist/core/assembly/overlay-state-resolver.test.d.ts.map +1 -0
  146. package/dist/core/assembly/overlay-state-resolver.test.js +256 -0
  147. package/dist/core/assembly/overlay-state-resolver.test.js.map +1 -0
  148. package/dist/core/assembly/preset-loader.d.ts +1 -0
  149. package/dist/core/assembly/preset-loader.d.ts.map +1 -1
  150. package/dist/core/assembly/preset-loader.js +2 -0
  151. package/dist/core/assembly/preset-loader.js.map +1 -1
  152. package/dist/core/dependency/eligibility.test.js +3 -0
  153. package/dist/core/dependency/eligibility.test.js.map +1 -1
  154. package/dist/e2e/game-pipeline.test.d.ts +10 -0
  155. package/dist/e2e/game-pipeline.test.d.ts.map +1 -0
  156. package/dist/e2e/game-pipeline.test.js +298 -0
  157. package/dist/e2e/game-pipeline.test.js.map +1 -0
  158. package/dist/e2e/init.test.js +3 -0
  159. package/dist/e2e/init.test.js.map +1 -1
  160. package/dist/project/adopt.d.ts +3 -1
  161. package/dist/project/adopt.d.ts.map +1 -1
  162. package/dist/project/adopt.js +29 -1
  163. package/dist/project/adopt.js.map +1 -1
  164. package/dist/project/adopt.test.js +51 -1
  165. package/dist/project/adopt.test.js.map +1 -1
  166. package/dist/types/config.d.ts +50 -4
  167. package/dist/types/config.d.ts.map +1 -1
  168. package/dist/types/config.test.d.ts +2 -0
  169. package/dist/types/config.test.d.ts.map +1 -0
  170. package/dist/types/config.test.js +97 -0
  171. package/dist/types/config.test.js.map +1 -0
  172. package/dist/utils/eligible.d.ts +3 -2
  173. package/dist/utils/eligible.d.ts.map +1 -1
  174. package/dist/utils/eligible.js +18 -4
  175. package/dist/utils/eligible.js.map +1 -1
  176. package/dist/utils/errors.d.ts +4 -0
  177. package/dist/utils/errors.d.ts.map +1 -1
  178. package/dist/utils/errors.js +31 -0
  179. package/dist/utils/errors.js.map +1 -1
  180. package/dist/utils/errors.test.js +4 -1
  181. package/dist/utils/errors.test.js.map +1 -1
  182. package/dist/wizard/questions.d.ts +4 -0
  183. package/dist/wizard/questions.d.ts.map +1 -1
  184. package/dist/wizard/questions.js +59 -1
  185. package/dist/wizard/questions.js.map +1 -1
  186. package/dist/wizard/questions.test.js +178 -4
  187. package/dist/wizard/questions.test.js.map +1 -1
  188. package/dist/wizard/wizard.d.ts +1 -0
  189. package/dist/wizard/wizard.d.ts.map +1 -1
  190. package/dist/wizard/wizard.js +4 -1
  191. package/dist/wizard/wizard.js.map +1 -1
  192. package/dist/wizard/wizard.test.js +102 -4
  193. package/dist/wizard/wizard.test.js.map +1 -1
  194. package/package.json +1 -1
@@ -1,4 +1,9 @@
1
1
  import type { MethodologyName, DepthLevel } from './enums.js';
2
+ /** Step enablement entry used in presets and overlays. */
3
+ export interface StepEnablementEntry {
4
+ enabled: boolean;
5
+ conditional?: 'if-needed';
6
+ }
2
7
  /** Per-step override in custom methodology config. */
3
8
  export interface CustomStepConfig {
4
9
  enabled?: boolean;
@@ -9,10 +14,54 @@ export interface CustomConfig {
9
14
  default_depth?: DepthLevel;
10
15
  steps?: Record<string, CustomStepConfig>;
11
16
  }
17
+ /** Valid project types. */
18
+ export type ProjectType = 'web-app' | 'mobile-app' | 'backend' | 'cli' | 'library' | 'game';
19
+ /** Game engine options. */
20
+ export type GameEngine = 'unity' | 'unreal' | 'godot' | 'custom';
21
+ /** Game-specific configuration. Only valid when projectType === 'game'. */
22
+ export interface GameConfig {
23
+ engine: GameEngine;
24
+ multiplayerMode: 'none' | 'local' | 'online' | 'hybrid';
25
+ narrative: 'none' | 'light' | 'heavy';
26
+ contentStructure: 'discrete' | 'open-world' | 'procedural' | 'endless' | 'mission-based';
27
+ economy: 'none' | 'progression' | 'monetized' | 'both';
28
+ onlineServices: Array<'leaderboards' | 'accounts' | 'matchmaking' | 'live-ops'>;
29
+ persistence: 'none' | 'settings-only' | 'profile' | 'progression' | 'cloud';
30
+ targetPlatforms: Array<'pc' | 'web' | 'ios' | 'android' | 'ps5' | 'xbox' | 'switch' | 'vr' | 'ar'>;
31
+ supportedLocales: string[];
32
+ hasModding: boolean;
33
+ npcAiComplexity: 'none' | 'simple' | 'complex';
34
+ }
35
+ /** Override entry for knowledge injection. */
36
+ export interface KnowledgeOverride {
37
+ append: string[];
38
+ }
39
+ /** Override entry for reads remapping. */
40
+ export interface ReadsOverride {
41
+ replace?: Record<string, string>;
42
+ append?: string[];
43
+ }
44
+ /** Override entry for dependency remapping. */
45
+ export interface DependencyOverride {
46
+ replace?: Record<string, string>;
47
+ append?: string[];
48
+ }
49
+ /** Project-type overlay definition (e.g., game-overlay.yml). */
50
+ export interface ProjectTypeOverlay {
51
+ name: string;
52
+ description: string;
53
+ projectType: ProjectType;
54
+ stepOverrides: Record<string, StepEnablementEntry>;
55
+ knowledgeOverrides: Record<string, KnowledgeOverride>;
56
+ readsOverrides: Record<string, ReadsOverride>;
57
+ dependencyOverrides: Record<string, DependencyOverride>;
58
+ }
12
59
  /** Project characteristics from config.yml. */
13
60
  export interface ProjectConfig {
14
61
  name?: string;
15
62
  platforms?: Array<'web' | 'mobile' | 'desktop'>;
63
+ projectType?: ProjectType;
64
+ gameConfig?: GameConfig;
16
65
  [key: string]: unknown;
17
66
  }
18
67
  /**
@@ -32,9 +81,6 @@ export interface MethodologyPreset {
32
81
  name: string;
33
82
  description: string;
34
83
  default_depth: DepthLevel;
35
- steps: Record<string, {
36
- enabled: boolean;
37
- conditional?: 'if-needed';
38
- }>;
84
+ steps: Record<string, StepEnablementEntry>;
39
85
  }
40
86
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
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;AAE7D,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,+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,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;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC,CAAA;CACvE"}
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;AAE7D,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,2BAA2B;AAC3B,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAA;AAE3F,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,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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../../src/types/config.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,97 @@
1
+ // src/types/config.test.ts
2
+ import { describe, it, expect } from 'vitest';
3
+ describe('GameConfig type', () => {
4
+ it('accepts a valid game config', () => {
5
+ const config = {
6
+ engine: 'unity',
7
+ multiplayerMode: 'none',
8
+ narrative: 'none',
9
+ contentStructure: 'discrete',
10
+ economy: 'none',
11
+ onlineServices: [],
12
+ persistence: 'progression',
13
+ targetPlatforms: ['pc'],
14
+ supportedLocales: ['en'],
15
+ hasModding: false,
16
+ npcAiComplexity: 'none',
17
+ };
18
+ expect(config.engine).toBe('unity');
19
+ });
20
+ it('accepts a project without projectType (backwards compatible)', () => {
21
+ const project = { name: 'my-web-app' };
22
+ expect(project.projectType).toBeUndefined();
23
+ });
24
+ });
25
+ describe('StepEnablementEntry type', () => {
26
+ it('accepts enabled-only entry', () => {
27
+ const entry = { enabled: true };
28
+ expect(entry.enabled).toBe(true);
29
+ expect(entry.conditional).toBeUndefined();
30
+ });
31
+ it('accepts entry with conditional', () => {
32
+ const entry = { enabled: true, conditional: 'if-needed' };
33
+ expect(entry.conditional).toBe('if-needed');
34
+ });
35
+ });
36
+ describe('ProjectTypeOverlay type', () => {
37
+ it('accepts a valid overlay', () => {
38
+ const overlay = {
39
+ name: 'game',
40
+ description: 'Game development overlay',
41
+ projectType: 'game',
42
+ stepOverrides: {
43
+ 'game-design-document': { enabled: true },
44
+ 'design-system': { enabled: false },
45
+ },
46
+ knowledgeOverrides: {
47
+ 'tech-stack': { append: ['game-engine-selection'] },
48
+ },
49
+ readsOverrides: {
50
+ 'story-tests': { replace: { 'ux-spec': 'game-ui-spec' }, append: [] },
51
+ },
52
+ dependencyOverrides: {
53
+ 'user-stories': { replace: {}, append: ['review-gdd'] },
54
+ },
55
+ };
56
+ expect(overlay.name).toBe('game');
57
+ expect(overlay.projectType).toBe('game');
58
+ expect(overlay.stepOverrides['game-design-document']?.enabled).toBe(true);
59
+ });
60
+ });
61
+ describe('KnowledgeOverride type', () => {
62
+ it('accepts a valid knowledge override', () => {
63
+ const override = { append: ['game-testing-strategy'] };
64
+ expect(override.append).toHaveLength(1);
65
+ expect(override.append[0]).toBe('game-testing-strategy');
66
+ });
67
+ });
68
+ describe('ReadsOverride type', () => {
69
+ it('accepts a reads override with replace and append', () => {
70
+ const override = {
71
+ replace: { 'ux-spec': 'game-ui-spec' },
72
+ append: ['game-design-document'],
73
+ };
74
+ expect(override.replace?.['ux-spec']).toBe('game-ui-spec');
75
+ expect(override.append).toHaveLength(1);
76
+ });
77
+ it('accepts a reads override with only append', () => {
78
+ const override = { append: ['extra-doc'] };
79
+ expect(override.replace).toBeUndefined();
80
+ expect(override.append).toHaveLength(1);
81
+ });
82
+ });
83
+ describe('DependencyOverride type', () => {
84
+ it('accepts a dependency override with replace and append', () => {
85
+ const override = {
86
+ replace: { 'review-ux': 'review-game-ui' },
87
+ append: ['review-gdd'],
88
+ };
89
+ expect(override.replace?.['review-ux']).toBe('review-game-ui');
90
+ expect(override.append).toHaveLength(1);
91
+ });
92
+ it('accepts a dependency override with only replace', () => {
93
+ const override = { replace: { 'a': 'b' } };
94
+ expect(override.append).toBeUndefined();
95
+ });
96
+ });
97
+ //# sourceMappingURL=config.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/types/config.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import type { StepStateEntry } from '../types/index.js';
2
2
  /**
3
3
  * Build a computeEligibleFn for the given project root.
4
- * Discovers meta-prompts, loads the methodology preset, and returns a function
5
- * that computes next-eligible steps from current state.steps.
4
+ * Discovers meta-prompts, loads the methodology preset, applies project-type
5
+ * overlay, and returns a function that computes next-eligible steps from
6
+ * current state.steps.
6
7
  */
7
8
  export declare function buildComputeEligibleFn(projectRoot: string): (steps: Record<string, StepStateEntry>) => string[];
8
9
  //# sourceMappingURL=eligible.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eligible.d.ts","sourceRoot":"","sources":["../../src/utils/eligible.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,GAClB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,MAAM,EAAE,CAuBrD"}
1
+ {"version":3,"file":"eligible.d.ts","sourceRoot":"","sources":["../../src/utils/eligible.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,GAClB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,MAAM,EAAE,CAmCrD"}
@@ -4,14 +4,17 @@
4
4
  // next_eligible accurate after each mutation.
5
5
  import { discoverMetaPrompts } from '../core/assembly/meta-prompt-loader.js';
6
6
  import { loadAllPresets } from '../core/assembly/preset-loader.js';
7
+ import { resolveOverlayState } from '../core/assembly/overlay-state-resolver.js';
7
8
  import { buildGraph } from '../core/dependency/graph.js';
8
9
  import { computeEligible } from '../core/dependency/eligibility.js';
9
10
  import { loadConfig } from '../config/loader.js';
11
+ import { createOutputContext } from '../cli/output/context.js';
10
12
  import { getPackagePipelineDir, getPackageMethodologyDir } from './fs.js';
11
13
  /**
12
14
  * Build a computeEligibleFn for the given project root.
13
- * Discovers meta-prompts, loads the methodology preset, and returns a function
14
- * that computes next-eligible steps from current state.steps.
15
+ * Discovers meta-prompts, loads the methodology preset, applies project-type
16
+ * overlay, and returns a function that computes next-eligible steps from
17
+ * current state.steps.
15
18
  */
16
19
  export function buildComputeEligibleFn(projectRoot) {
17
20
  const pipelineDir = getPackagePipelineDir(projectRoot);
@@ -26,10 +29,21 @@ export function buildComputeEligibleFn(projectRoot) {
26
29
  : methodology === 'custom'
27
30
  ? presets.custom ?? presets.deep
28
31
  : presets.deep;
29
- const presetStepsMap = new Map(Object.entries(preset?.steps ?? {}));
32
+ // Apply project-type overlay if configured
33
+ const output = createOutputContext('auto');
34
+ const overlayState = config
35
+ ? resolveOverlayState({
36
+ config,
37
+ methodologyDir,
38
+ metaPrompts,
39
+ presetSteps: preset?.steps ?? {},
40
+ output,
41
+ })
42
+ : { steps: preset?.steps ?? {} };
43
+ const overlayStepsMap = new Map(Object.entries(overlayState.steps));
30
44
  const metaPromptList = [...metaPrompts.values()].map(m => m.frontmatter);
31
45
  return (steps) => {
32
- const graph = buildGraph(metaPromptList, presetStepsMap);
46
+ const graph = buildGraph(metaPromptList, overlayStepsMap);
33
47
  return computeEligible(graph, steps);
34
48
  };
35
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eligible.js","sourceRoot":"","sources":["../../src/utils/eligible.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,gEAAgE;AAChE,qEAAqE;AACrE,8CAA8C;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAGzE;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAAmB;IAEnB,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAA;IACtD,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAA;IACpD,MAAM,UAAU,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;IAE1C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IACtD,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,MAAM,CAAA;IAEjD,MAAM,cAAc,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,CAAA;IAC1D,MAAM,MAAM,GAAG,WAAW,KAAK,KAAK;QAClC,CAAC,CAAC,OAAO,CAAC,GAAG;QACb,CAAC,CAAC,WAAW,KAAK,QAAQ;YACxB,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;YAChC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAA;IAElB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAA;IACnE,MAAM,cAAc,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;IAExE,OAAO,CAAC,KAAqC,EAAE,EAAE;QAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;QACxD,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACtC,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"eligible.js","sourceRoot":"","sources":["../../src/utils/eligible.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,gEAAgE;AAChE,qEAAqE;AACrE,8CAA8C;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAGzE;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAAmB;IAEnB,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAA;IACtD,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAA;IACpD,MAAM,UAAU,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;IAE1C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IACtD,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,MAAM,CAAA;IAEjD,MAAM,cAAc,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,CAAA;IAC1D,MAAM,MAAM,GAAG,WAAW,KAAK,KAAK;QAClC,CAAC,CAAC,OAAO,CAAC,GAAG;QACb,CAAC,CAAC,WAAW,KAAK,QAAQ;YACxB,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;YAChC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAA;IAElB,2CAA2C;IAC3C,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,YAAY,GAAG,MAAM;QACzB,CAAC,CAAC,mBAAmB,CAAC;YACpB,MAAM;YACN,cAAc;YACd,WAAW;YACX,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;YAChC,MAAM;SACP,CAAC;QACF,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,CAAA;IAElC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;IACnE,MAAM,cAAc,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;IAExE,OAAO,CAAC,KAAqC,EAAE,EAAE;QAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,EAAE,eAAe,CAAC,CAAA;QACzD,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACtC,CAAC,CAAA;AACH,CAAC"}
@@ -40,4 +40,8 @@ export declare function presetParseError(file: string, detail: string): Scaffold
40
40
  export declare function presetInvalidStep(step: string, preset: string): ScaffoldError;
41
41
  export declare function presetMissingStep(step: string, preset: string): ScaffoldWarning;
42
42
  export declare function presetUnmetDependency(step: string, dependency: string, preset: string): ScaffoldWarning;
43
+ export declare function overlayMissing(name: string, path: string): ScaffoldError;
44
+ export declare function overlayParseError(path: string, detail: string): ScaffoldError;
45
+ export declare function overlayMalformedEntry(step: string, field: string, file: string): ScaffoldWarning;
46
+ export declare function overlayMalformedSection(section: string, file: string): ScaffoldWarning;
43
47
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAEA,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAA;CACtD;AAED,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAA;CACtD;AAID,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAQ/D;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAQ7D;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAQlF;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAQjE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,CAMrF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAQvE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAO3G;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAO1E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAQ7E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAW7G;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAO9D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAO/D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAOhF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAQhF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAMpF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAQhG;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAQxD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAQ3E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAQjF;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAQpF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAO3E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CAM7E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAO5F;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAQ7E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAO5E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAO7E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAM/E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAOvG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAQxE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAO7E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAMhG;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAMtF"}
@@ -237,4 +237,35 @@ export function presetUnmetDependency(step, dependency, preset) {
237
237
  context: { step, dependency, preset },
238
238
  };
239
239
  }
240
+ export function overlayMissing(name, path) {
241
+ return {
242
+ code: 'OVERLAY_MISSING',
243
+ message: `Project-type overlay "${name}" not found at ${path}`,
244
+ exitCode: 1,
245
+ recovery: 'Reinstall scaffold to restore built-in overlays',
246
+ context: { name, file: path },
247
+ };
248
+ }
249
+ export function overlayParseError(path, detail) {
250
+ return {
251
+ code: 'OVERLAY_PARSE_ERROR',
252
+ message: `Failed to parse project-type overlay: ${detail}`,
253
+ exitCode: 1,
254
+ context: { file: path, detail },
255
+ };
256
+ }
257
+ export function overlayMalformedEntry(step, field, file) {
258
+ return {
259
+ code: 'OVERLAY_MALFORMED_ENTRY',
260
+ message: `Overlay entry "${step}" has invalid "${field}" — ignoring entry`,
261
+ context: { step, field, file },
262
+ };
263
+ }
264
+ export function overlayMalformedSection(section, file) {
265
+ return {
266
+ code: 'OVERLAY_MALFORMED_SECTION',
267
+ message: `Overlay section "${section}" must be a YAML object — ignoring`,
268
+ context: { section, file },
269
+ };
270
+ }
240
271
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect } from 'vitest';
2
- import { configMissing, configUnknownField, lockHeld, fieldInvalidMethodology, psmAlreadyInProgress, configEmpty, configParseError, configNotObject, fieldMissing, fieldWrongType, fieldEmptyValue, fieldInvalidDepth, frontmatterMissing, frontmatterUnclosed, frontmatterYamlError, frontmatterNameInvalid, frontmatterUnknownField, stateSchemaVersion, stateMissing, stateParseError, lockWriteFailed, lockStaleCleared, decisionParseError, presetMissing, presetParseError, presetInvalidStep, presetMissingStep, } from './errors.js';
2
+ import { configMissing, configUnknownField, lockHeld, fieldInvalidMethodology, psmAlreadyInProgress, configEmpty, configParseError, configNotObject, fieldMissing, fieldWrongType, fieldEmptyValue, fieldInvalidDepth, frontmatterMissing, frontmatterUnclosed, frontmatterYamlError, frontmatterNameInvalid, frontmatterUnknownField, stateSchemaVersion, stateMissing, stateParseError, lockWriteFailed, lockStaleCleared, decisionParseError, presetMissing, presetParseError, presetInvalidStep, presetMissingStep, overlayMissing, overlayParseError, overlayMalformedEntry, } from './errors.js';
3
3
  describe('error factories — shape', () => {
4
4
  it('all error objects have code, message, exitCode', () => {
5
5
  const errors = [
@@ -26,6 +26,8 @@ describe('error factories — shape', () => {
26
26
  presetMissing('mvp', '/path/preset.yml'),
27
27
  presetParseError('/path/preset.yml', 'bad yaml'),
28
28
  presetInvalidStep('unknown-step', 'mvp'),
29
+ overlayMissing('game', '/path/overlay.yml'),
30
+ overlayParseError('/path/overlay.yml', 'bad yaml'),
29
31
  ];
30
32
  for (const err of errors) {
31
33
  expect(err).toHaveProperty('code');
@@ -42,6 +44,7 @@ describe('error factories — shape', () => {
42
44
  frontmatterUnknownField('bar', '/path/cmd.md'),
43
45
  lockStaleCleared('host', 1234),
44
46
  presetMissingStep('step-x', 'mvp'),
47
+ overlayMalformedEntry('step-a', 'enabled', '/path/overlay.yml'),
45
48
  ];
46
49
  for (const warn of warnings) {
47
50
  expect(warn).toHaveProperty('code');
@@ -1 +1 @@
1
- {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../src/utils/errors.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../src/utils/errors.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import type { OutputContext } from '../cli/output/context.js';
2
+ import type { ProjectType, GameConfig } from '../types/index.js';
2
3
  export interface WizardAnswers {
3
4
  methodology: 'deep' | 'mvp' | 'custom';
4
5
  depth: 1 | 2 | 3 | 4 | 5;
5
6
  platforms: Array<'claude-code' | 'codex' | 'gemini'>;
6
7
  traits: string[];
8
+ projectType?: ProjectType;
9
+ gameConfig?: GameConfig;
7
10
  }
8
11
  /**
9
12
  * Ask user the wizard questions interactively.
@@ -13,6 +16,7 @@ export declare function askWizardQuestions(options: {
13
16
  output: OutputContext;
14
17
  suggestion: 'deep' | 'mvp';
15
18
  methodology?: string;
19
+ projectType?: string;
16
20
  auto: boolean;
17
21
  }): Promise<WizardAnswers>;
18
22
  //# sourceMappingURL=questions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../src/wizard/questions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE7D,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;IACtC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACxB,SAAS,EAAE,KAAK,CAAC,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAA;IACpD,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,MAAM,EAAE,aAAa,CAAA;IACrB,UAAU,EAAE,MAAM,GAAG,KAAK,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,OAAO,CAAA;CACd,GAAG,OAAO,CAAC,aAAa,CAAC,CA6CzB"}
1
+ {"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../src/wizard/questions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGhE,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;IACtC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACxB,SAAS,EAAE,KAAK,CAAC,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAA;IACpD,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,MAAM,EAAE,aAAa,CAAA;IACrB,UAAU,EAAE,MAAM,GAAG,KAAK,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,OAAO,CAAA;CACd,GAAG,OAAO,CAAC,aAAa,CAAC,CA4JzB"}
@@ -1,3 +1,4 @@
1
+ import { GameConfigSchema } from '../config/schema.js';
1
2
  /**
2
3
  * Ask user the wizard questions interactively.
3
4
  * In auto mode, use defaults immediately.
@@ -44,6 +45,63 @@ export async function askWizardQuestions(options) {
44
45
  if (isMobile)
45
46
  traits.push('mobile');
46
47
  }
47
- return { methodology, depth, platforms, traits };
48
+ // Project type question (skip if --project-type was provided)
49
+ let projectType;
50
+ if (options.projectType) {
51
+ projectType = options.projectType;
52
+ }
53
+ else if (!auto) {
54
+ const selected = await output.select('What type of project is this?', ['web-app', 'mobile-app', 'backend', 'cli', 'library', 'game'], 'web-app');
55
+ projectType = selected;
56
+ }
57
+ // Game config questions (only when projectType === 'game')
58
+ let gameConfig;
59
+ if (projectType === 'game' && auto) {
60
+ // --project-type game --auto: use Zod defaults
61
+ const defaults = GameConfigSchema.parse({ engine: 'custom' });
62
+ gameConfig = defaults;
63
+ }
64
+ else if (projectType === 'game' && !auto) {
65
+ // Core questions — always asked for games
66
+ const engine = await output.select('Game engine:', ['unity', 'unreal', 'godot', 'custom']);
67
+ const multiplayerMode = await output.select('Multiplayer mode:', ['none', 'local', 'online', 'hybrid'], 'none');
68
+ const targetPlatforms = await output.multiSelect('Target platforms:', ['pc', 'web', 'ios', 'android', 'ps5', 'xbox', 'switch', 'vr', 'ar'], ['pc']);
69
+ // Conditional follow-ups
70
+ let onlineServices = [];
71
+ if (multiplayerMode === 'online' || multiplayerMode === 'hybrid') {
72
+ onlineServices = await output.multiSelect('Online services:', ['leaderboards', 'accounts', 'matchmaking', 'live-ops'], []);
73
+ }
74
+ const contentStructure = await output.select('Content structure:', ['discrete', 'open-world', 'procedural', 'endless', 'mission-based'], 'discrete');
75
+ const economy = await output.select('Economy model:', ['none', 'progression', 'monetized', 'both'], 'none');
76
+ // Advanced options — defaults derived from Zod schema to prevent drift
77
+ const schemaDefaults = GameConfigSchema.parse({ engine });
78
+ let narrative = schemaDefaults.narrative;
79
+ let supportedLocales = schemaDefaults.supportedLocales;
80
+ let npcAiComplexity = schemaDefaults.npcAiComplexity;
81
+ let hasModding = schemaDefaults.hasModding;
82
+ let persistence = schemaDefaults.persistence;
83
+ const showAdvanced = await output.confirm('Configure advanced game options?', false);
84
+ if (showAdvanced) {
85
+ narrative = await output.select('Narrative depth:', ['none', 'light', 'heavy'], 'none');
86
+ supportedLocales = await output.multiInput('Supported locales (comma-separated):', ['en']);
87
+ npcAiComplexity = await output.select('NPC AI complexity:', ['none', 'simple', 'complex'], 'none');
88
+ hasModding = await output.confirm('Mod support?', false);
89
+ persistence = await output.select('Persistence level:', ['none', 'settings-only', 'profile', 'progression', 'cloud'], 'progression');
90
+ }
91
+ gameConfig = {
92
+ engine,
93
+ multiplayerMode,
94
+ targetPlatforms,
95
+ onlineServices,
96
+ contentStructure,
97
+ economy,
98
+ narrative,
99
+ supportedLocales,
100
+ npcAiComplexity,
101
+ hasModding,
102
+ persistence,
103
+ };
104
+ }
105
+ return { methodology, depth, platforms, traits, projectType, gameConfig };
48
106
  }
49
107
  //# sourceMappingURL=questions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/wizard/questions.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAKxC;IACC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAE5C,4DAA4D;IAC5D,IAAI,WAAW,GAA8B,UAA4B,CAAA;IACzE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,WAAW,GAAG,OAAO,CAAC,WAAwC,CAAA;IAChE,CAAC;SAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,oDAAoD;QACpD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAChC,yCAAyC,UAAU,IAAI,EACvD,UAAU,CACX,CAAA;QACD,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,WAAW,GAAG,MAAmC,CAAA;QACnD,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,IAAI,KAAK,GAAsB,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzF,IAAI,WAAW,KAAK,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAS,kBAAkB,EAAE,GAAG,CAAC,CAAA;QACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACjC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;YAAE,KAAK,GAAG,MAA2B,CAAA;IACrE,CAAC;IAED,gEAAgE;IAChE,MAAM,SAAS,GAA8C,CAAC,aAAa,CAAC,CAAA;IAC5E,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAA;QACtE,IAAI,QAAQ;YAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACrC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;QACxE,IAAI,SAAS;YAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,8BAA8B;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAA;QACvE,IAAI,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;QAC7E,IAAI,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;AAClD,CAAC"}
1
+ {"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/wizard/questions.ts"],"names":[],"mappings":"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"}