forgecraft-mcp 1.2.0 → 1.4.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 (185) hide show
  1. package/README.md +525 -525
  2. package/dist/artifacts/commit-hooks.d.ts +1 -1
  3. package/dist/artifacts/commit-hooks.d.ts.map +1 -1
  4. package/dist/artifacts/commit-hooks.js +2 -0
  5. package/dist/artifacts/commit-hooks.js.map +1 -1
  6. package/dist/cli/commands.d.ts +35 -1
  7. package/dist/cli/commands.d.ts.map +1 -1
  8. package/dist/cli/commands.js +109 -2
  9. package/dist/cli/commands.js.map +1 -1
  10. package/dist/cli/help.d.ts.map +1 -1
  11. package/dist/cli/help.js +51 -44
  12. package/dist/cli/help.js.map +1 -1
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +10 -1
  15. package/dist/cli.js.map +1 -1
  16. package/dist/registry/renderer-skeletons.js +92 -92
  17. package/dist/shared/gs-score-logger.js +6 -6
  18. package/dist/shared/result-utils.d.ts +27 -0
  19. package/dist/shared/result-utils.d.ts.map +1 -0
  20. package/dist/shared/result-utils.js +41 -0
  21. package/dist/shared/result-utils.js.map +1 -0
  22. package/dist/tools/add-module.js +123 -123
  23. package/dist/tools/advice-registry.js +18 -18
  24. package/dist/tools/check-cascade-report.js +64 -64
  25. package/dist/tools/close-cycle-helpers.d.ts +21 -2
  26. package/dist/tools/close-cycle-helpers.d.ts.map +1 -1
  27. package/dist/tools/close-cycle-helpers.js +66 -10
  28. package/dist/tools/close-cycle-helpers.js.map +1 -1
  29. package/dist/tools/close-cycle.d.ts +2 -2
  30. package/dist/tools/close-cycle.d.ts.map +1 -1
  31. package/dist/tools/close-cycle.js +1 -1
  32. package/dist/tools/close-cycle.js.map +1 -1
  33. package/dist/tools/configure-mcp.d.ts +3 -0
  34. package/dist/tools/configure-mcp.d.ts.map +1 -1
  35. package/dist/tools/configure-mcp.js +10 -0
  36. package/dist/tools/configure-mcp.js.map +1 -1
  37. package/dist/tools/consolidate-status.d.ts +81 -0
  38. package/dist/tools/consolidate-status.d.ts.map +1 -0
  39. package/dist/tools/consolidate-status.js +251 -0
  40. package/dist/tools/consolidate-status.js.map +1 -0
  41. package/dist/tools/forgecraft-dispatch.d.ts.map +1 -1
  42. package/dist/tools/forgecraft-dispatch.js +13 -0
  43. package/dist/tools/forgecraft-dispatch.js.map +1 -1
  44. package/dist/tools/forgecraft-router.d.ts +8 -0
  45. package/dist/tools/forgecraft-router.d.ts.map +1 -1
  46. package/dist/tools/forgecraft-router.js +21 -1
  47. package/dist/tools/forgecraft-router.js.map +1 -1
  48. package/dist/tools/forgecraft-schema-params.d.ts +13 -4
  49. package/dist/tools/forgecraft-schema-params.d.ts.map +1 -1
  50. package/dist/tools/forgecraft-schema-params.js +21 -0
  51. package/dist/tools/forgecraft-schema-params.js.map +1 -1
  52. package/dist/tools/forgecraft-schema.d.ts +14 -5
  53. package/dist/tools/forgecraft-schema.d.ts.map +1 -1
  54. package/dist/tools/forgecraft-schema.js +3 -0
  55. package/dist/tools/forgecraft-schema.js.map +1 -1
  56. package/dist/tools/gate-violations.d.ts +59 -0
  57. package/dist/tools/gate-violations.d.ts.map +1 -0
  58. package/dist/tools/gate-violations.js +152 -0
  59. package/dist/tools/gate-violations.js.map +1 -0
  60. package/dist/tools/generate-session-prompt.d.ts +3 -3
  61. package/dist/tools/generate-session-prompt.d.ts.map +1 -1
  62. package/dist/tools/generate-session-prompt.js +57 -15
  63. package/dist/tools/generate-session-prompt.js.map +1 -1
  64. package/dist/tools/refresh-output.js +14 -14
  65. package/dist/tools/roadmap-builder.d.ts.map +1 -1
  66. package/dist/tools/roadmap-builder.js +19 -9
  67. package/dist/tools/roadmap-builder.js.map +1 -1
  68. package/dist/tools/scaffold-spec-stubs.js +115 -115
  69. package/dist/tools/scaffold-templates.js +62 -62
  70. package/dist/tools/session-prompt-builders.d.ts.map +1 -1
  71. package/dist/tools/session-prompt-builders.js +34 -10
  72. package/dist/tools/session-prompt-builders.js.map +1 -1
  73. package/dist/tools/setup-artifact-writers.d.ts +30 -0
  74. package/dist/tools/setup-artifact-writers.d.ts.map +1 -1
  75. package/dist/tools/setup-artifact-writers.js +120 -8
  76. package/dist/tools/setup-artifact-writers.js.map +1 -1
  77. package/dist/tools/setup-phase1.d.ts +3 -0
  78. package/dist/tools/setup-phase1.d.ts.map +1 -1
  79. package/dist/tools/setup-phase1.js +79 -35
  80. package/dist/tools/setup-phase1.js.map +1 -1
  81. package/dist/tools/setup-phase2.d.ts +2 -0
  82. package/dist/tools/setup-phase2.d.ts.map +1 -1
  83. package/dist/tools/setup-phase2.js +10 -1
  84. package/dist/tools/setup-phase2.js.map +1 -1
  85. package/dist/tools/setup-project.d.ts +18 -0
  86. package/dist/tools/setup-project.d.ts.map +1 -1
  87. package/dist/tools/setup-project.js +77 -1
  88. package/dist/tools/setup-project.js.map +1 -1
  89. package/dist/tools/spec-parser-tags.d.ts +9 -0
  90. package/dist/tools/spec-parser-tags.d.ts.map +1 -1
  91. package/dist/tools/spec-parser-tags.js +92 -0
  92. package/dist/tools/spec-parser-tags.js.map +1 -1
  93. package/package.json +89 -86
  94. package/templates/analytics/instructions.yaml +37 -37
  95. package/templates/analytics/mcp-servers.yaml +11 -11
  96. package/templates/analytics/structure.yaml +25 -25
  97. package/templates/api/instructions.yaml +231 -231
  98. package/templates/api/mcp-servers.yaml +22 -13
  99. package/templates/api/nfr.yaml +23 -23
  100. package/templates/api/review.yaml +103 -103
  101. package/templates/api/structure.yaml +34 -34
  102. package/templates/api/verification.yaml +132 -132
  103. package/templates/cli/instructions.yaml +31 -31
  104. package/templates/cli/mcp-servers.yaml +11 -11
  105. package/templates/cli/review.yaml +53 -53
  106. package/templates/cli/structure.yaml +16 -16
  107. package/templates/data-lineage/instructions.yaml +28 -28
  108. package/templates/data-lineage/mcp-servers.yaml +22 -22
  109. package/templates/data-pipeline/instructions.yaml +84 -84
  110. package/templates/data-pipeline/mcp-servers.yaml +13 -13
  111. package/templates/data-pipeline/nfr.yaml +39 -39
  112. package/templates/data-pipeline/structure.yaml +23 -23
  113. package/templates/fintech/hooks.yaml +55 -55
  114. package/templates/fintech/instructions.yaml +112 -112
  115. package/templates/fintech/mcp-servers.yaml +13 -13
  116. package/templates/fintech/nfr.yaml +46 -46
  117. package/templates/fintech/playbook.yaml +210 -210
  118. package/templates/fintech/verification.yaml +239 -239
  119. package/templates/game/instructions.yaml +289 -289
  120. package/templates/game/mcp-servers.yaml +38 -38
  121. package/templates/game/nfr.yaml +64 -64
  122. package/templates/game/playbook.yaml +214 -214
  123. package/templates/game/review.yaml +97 -97
  124. package/templates/game/structure.yaml +67 -67
  125. package/templates/game/verification.yaml +174 -174
  126. package/templates/healthcare/instructions.yaml +42 -42
  127. package/templates/healthcare/mcp-servers.yaml +13 -13
  128. package/templates/healthcare/nfr.yaml +47 -47
  129. package/templates/hipaa/instructions.yaml +41 -41
  130. package/templates/hipaa/mcp-servers.yaml +13 -13
  131. package/templates/infra/instructions.yaml +104 -104
  132. package/templates/infra/mcp-servers.yaml +20 -20
  133. package/templates/infra/nfr.yaml +46 -46
  134. package/templates/infra/review.yaml +65 -65
  135. package/templates/infra/structure.yaml +25 -25
  136. package/templates/library/instructions.yaml +36 -36
  137. package/templates/library/mcp-servers.yaml +20 -20
  138. package/templates/library/review.yaml +56 -56
  139. package/templates/library/structure.yaml +19 -19
  140. package/templates/medallion-architecture/instructions.yaml +41 -41
  141. package/templates/medallion-architecture/mcp-servers.yaml +22 -22
  142. package/templates/ml/instructions.yaml +85 -85
  143. package/templates/ml/mcp-servers.yaml +11 -11
  144. package/templates/ml/nfr.yaml +39 -39
  145. package/templates/ml/structure.yaml +25 -25
  146. package/templates/ml/verification.yaml +156 -156
  147. package/templates/mobile/instructions.yaml +44 -44
  148. package/templates/mobile/mcp-servers.yaml +11 -11
  149. package/templates/mobile/nfr.yaml +49 -49
  150. package/templates/mobile/structure.yaml +27 -27
  151. package/templates/mobile/verification.yaml +121 -121
  152. package/templates/observability-xray/instructions.yaml +40 -40
  153. package/templates/observability-xray/mcp-servers.yaml +15 -15
  154. package/templates/realtime/instructions.yaml +42 -42
  155. package/templates/realtime/mcp-servers.yaml +13 -13
  156. package/templates/soc2/instructions.yaml +41 -41
  157. package/templates/soc2/mcp-servers.yaml +24 -24
  158. package/templates/social/instructions.yaml +43 -43
  159. package/templates/social/mcp-servers.yaml +24 -24
  160. package/templates/state-machine/instructions.yaml +42 -42
  161. package/templates/state-machine/mcp-servers.yaml +11 -11
  162. package/templates/tools-registry.yaml +164 -164
  163. package/templates/universal/hooks.yaml +723 -531
  164. package/templates/universal/instructions.yaml +1692 -1692
  165. package/templates/universal/mcp-servers.yaml +50 -50
  166. package/templates/universal/nfr.yaml +197 -197
  167. package/templates/universal/reference.yaml +326 -326
  168. package/templates/universal/review.yaml +204 -204
  169. package/templates/universal/skills.yaml +262 -262
  170. package/templates/universal/structure.yaml +67 -67
  171. package/templates/universal/verification.yaml +416 -416
  172. package/templates/web-react/hooks.yaml +44 -44
  173. package/templates/web-react/instructions.yaml +207 -207
  174. package/templates/web-react/mcp-servers.yaml +20 -20
  175. package/templates/web-react/nfr.yaml +27 -27
  176. package/templates/web-react/review.yaml +94 -94
  177. package/templates/web-react/structure.yaml +46 -46
  178. package/templates/web-react/verification.yaml +126 -126
  179. package/templates/web-static/instructions.yaml +115 -115
  180. package/templates/web-static/mcp-servers.yaml +20 -20
  181. package/templates/web3/instructions.yaml +44 -44
  182. package/templates/web3/mcp-servers.yaml +11 -11
  183. package/templates/web3/verification.yaml +159 -159
  184. package/templates/zero-trust/instructions.yaml +41 -41
  185. package/templates/zero-trust/mcp-servers.yaml +15 -15
@@ -1,97 +1,97 @@
1
- tag: GAME
2
- section: review
3
- blocks:
4
- - id: game-architecture-review
5
- tier: recommended
6
- dimension: architecture
7
- title: "Game Architecture Review"
8
- description: |
9
- Evaluate scene structure, ECS separation, and dependency flow.
10
- checklist:
11
- - id: scene-responsibility
12
- description: "Each Scene has a single responsibility. No god-scenes mixing physics, AI, UI, and audio logic."
13
- severity: critical
14
- - id: ecs-separation
15
- description: "Entities are IDs, components are plain data, systems have no state. No logic in component structs."
16
- severity: important
17
- - id: no-scene-coupling
18
- description: "Scenes communicate via EventEmitter or registry only. No direct scene-to-scene instance references."
19
- severity: critical
20
- - id: dependency-injection
21
- description: "Services (audio manager, save system, analytics) injected via game registry. No module-level singletons."
22
- severity: important
23
- - id: worker-offload
24
- description: "CPU-heavy tasks (pathfinding, procedural gen, physics sim) run in Web Workers, not the main thread."
25
- severity: nice-to-have
26
-
27
- - id: game-code-quality-review
28
- tier: recommended
29
- dimension: code-quality
30
- title: "Game Code Quality Review"
31
- description: |
32
- Evaluate update loop cleanliness, resource handling, and input abstraction.
33
- checklist:
34
- - id: no-alloc-in-hot-path
35
- description: "Zero object allocations in the update() hot path. Object pools used for bullets, particles, tweens."
36
- severity: critical
37
- - id: resource-disposal
38
- description: "All GPU resources (textures, geometries, materials, render targets) explicitly disposed on scene exit."
39
- severity: critical
40
- - id: input-abstraction
41
- description: "Physical inputs mapped to logical actions via a config-driven action map. No raw key codes in game logic."
42
- severity: important
43
- - id: asset-manifest
44
- description: "All asset paths and keys defined in a central manifest (assets.ts). No inline path strings scattered across scenes."
45
- severity: important
46
- - id: magic-numbers
47
- description: "No magic numbers in game logic. Physics constants, speeds, and thresholds are named constants in config.ts."
48
- severity: important
49
- - id: fixed-timestep
50
- description: "Game logic uses a fixed timestep. Rendering interpolates. No deltaTime passed directly into physics equations."
51
- severity: critical
52
-
53
- - id: game-performance-review
54
- tier: recommended
55
- dimension: performance
56
- title: "Game Performance Review"
57
- description: |
58
- Evaluate draw-call count, GPU memory, and frame-time budget.
59
- checklist:
60
- - id: draw-call-budget
61
- description: "Draw calls per frame within budget: < 50 for mobile web, < 200 for desktop. Verified via renderer stats overlay."
62
- severity: critical
63
- - id: atlas-usage
64
- description: "Sprites use texture atlases. No individual per-sprite texture binds in hot rendering paths."
65
- severity: critical
66
- - id: gpu-resource-leaks
67
- description: "Scene transition profile shows GPU memory returning to baseline after 3+ transitions (no accumulating leaks)."
68
- severity: critical
69
- - id: frame-budget-profiled
70
- description: "JS CPU time < 6ms per frame on target hardware (profiled with Chrome DevTools, not emulation)."
71
- severity: important
72
- - id: mobile-tested
73
- description: "Tested on real mid-range Android device (not DevTools emulation). Frame rate meets mobile NFR target."
74
- severity: important
75
- - id: instanced-rendering
76
- description: "Repeated geometry (tiles, crowds, bullets) uses InstancedMesh (Three.js) or ParticleContainer (PixiJS)."
77
- severity: important
78
-
79
- - id: game-test-review
80
- tier: recommended
81
- dimension: tests
82
- title: "Game Test Review"
83
- description: |
84
- Evaluate test coverage for deterministic systems and scene lifecycle.
85
- checklist:
86
- - id: system-unit-tests
87
- description: "Game systems (movement, collision, AI state machine) have unit tests that run without a canvas or DOM."
88
- severity: critical
89
- - id: fixed-timestep-determinism
90
- description: "Determinism test: same input sequence produces identical game state across 10 simulated minutes."
91
- severity: important
92
- - id: scene-lifecycle-tests
93
- description: "Integration tests cover scene create → update → destroy lifecycle, verifying no resource leaks."
94
- severity: important
95
- - id: input-replay-tests
96
- description: "Critical game scenarios (player death, level completion) covered by recorded input replay tests."
97
- severity: nice-to-have
1
+ tag: GAME
2
+ section: review
3
+ blocks:
4
+ - id: game-architecture-review
5
+ tier: recommended
6
+ dimension: architecture
7
+ title: "Game Architecture Review"
8
+ description: |
9
+ Evaluate scene structure, ECS separation, and dependency flow.
10
+ checklist:
11
+ - id: scene-responsibility
12
+ description: "Each Scene has a single responsibility. No god-scenes mixing physics, AI, UI, and audio logic."
13
+ severity: critical
14
+ - id: ecs-separation
15
+ description: "Entities are IDs, components are plain data, systems have no state. No logic in component structs."
16
+ severity: important
17
+ - id: no-scene-coupling
18
+ description: "Scenes communicate via EventEmitter or registry only. No direct scene-to-scene instance references."
19
+ severity: critical
20
+ - id: dependency-injection
21
+ description: "Services (audio manager, save system, analytics) injected via game registry. No module-level singletons."
22
+ severity: important
23
+ - id: worker-offload
24
+ description: "CPU-heavy tasks (pathfinding, procedural gen, physics sim) run in Web Workers, not the main thread."
25
+ severity: nice-to-have
26
+
27
+ - id: game-code-quality-review
28
+ tier: recommended
29
+ dimension: code-quality
30
+ title: "Game Code Quality Review"
31
+ description: |
32
+ Evaluate update loop cleanliness, resource handling, and input abstraction.
33
+ checklist:
34
+ - id: no-alloc-in-hot-path
35
+ description: "Zero object allocations in the update() hot path. Object pools used for bullets, particles, tweens."
36
+ severity: critical
37
+ - id: resource-disposal
38
+ description: "All GPU resources (textures, geometries, materials, render targets) explicitly disposed on scene exit."
39
+ severity: critical
40
+ - id: input-abstraction
41
+ description: "Physical inputs mapped to logical actions via a config-driven action map. No raw key codes in game logic."
42
+ severity: important
43
+ - id: asset-manifest
44
+ description: "All asset paths and keys defined in a central manifest (assets.ts). No inline path strings scattered across scenes."
45
+ severity: important
46
+ - id: magic-numbers
47
+ description: "No magic numbers in game logic. Physics constants, speeds, and thresholds are named constants in config.ts."
48
+ severity: important
49
+ - id: fixed-timestep
50
+ description: "Game logic uses a fixed timestep. Rendering interpolates. No deltaTime passed directly into physics equations."
51
+ severity: critical
52
+
53
+ - id: game-performance-review
54
+ tier: recommended
55
+ dimension: performance
56
+ title: "Game Performance Review"
57
+ description: |
58
+ Evaluate draw-call count, GPU memory, and frame-time budget.
59
+ checklist:
60
+ - id: draw-call-budget
61
+ description: "Draw calls per frame within budget: < 50 for mobile web, < 200 for desktop. Verified via renderer stats overlay."
62
+ severity: critical
63
+ - id: atlas-usage
64
+ description: "Sprites use texture atlases. No individual per-sprite texture binds in hot rendering paths."
65
+ severity: critical
66
+ - id: gpu-resource-leaks
67
+ description: "Scene transition profile shows GPU memory returning to baseline after 3+ transitions (no accumulating leaks)."
68
+ severity: critical
69
+ - id: frame-budget-profiled
70
+ description: "JS CPU time < 6ms per frame on target hardware (profiled with Chrome DevTools, not emulation)."
71
+ severity: important
72
+ - id: mobile-tested
73
+ description: "Tested on real mid-range Android device (not DevTools emulation). Frame rate meets mobile NFR target."
74
+ severity: important
75
+ - id: instanced-rendering
76
+ description: "Repeated geometry (tiles, crowds, bullets) uses InstancedMesh (Three.js) or ParticleContainer (PixiJS)."
77
+ severity: important
78
+
79
+ - id: game-test-review
80
+ tier: recommended
81
+ dimension: tests
82
+ title: "Game Test Review"
83
+ description: |
84
+ Evaluate test coverage for deterministic systems and scene lifecycle.
85
+ checklist:
86
+ - id: system-unit-tests
87
+ description: "Game systems (movement, collision, AI state machine) have unit tests that run without a canvas or DOM."
88
+ severity: critical
89
+ - id: fixed-timestep-determinism
90
+ description: "Determinism test: same input sequence produces identical game state across 10 simulated minutes."
91
+ severity: important
92
+ - id: scene-lifecycle-tests
93
+ description: "Integration tests cover scene create → update → destroy lifecycle, verifying no resource leaks."
94
+ severity: important
95
+ - id: input-replay-tests
96
+ description: "Critical game scenarios (player death, level completion) covered by recorded input replay tests."
97
+ severity: nice-to-have
@@ -1,67 +1,67 @@
1
- tag: GAME
2
- section: structure
3
- language: typescript
4
- entries:
5
- - path: src/scenes
6
- type: directory
7
- description: "One file per game scene (Boot, Preload, Menu, Game, UI, GameOver)"
8
- - path: src/scenes/BootScene.ts
9
- type: file
10
- description: "Registry setup, global config injection, first scene"
11
- - path: src/scenes/PreloadScene.ts
12
- type: file
13
- description: "All asset loading with progress bar; transitions to MenuScene"
14
- - path: src/scenes/GameScene.ts
15
- type: file
16
- description: "Core gameplay loop; delegates to systems, not self-contained"
17
- - path: src/scenes/UIScene.ts
18
- type: file
19
- description: "HUD overlay launched in parallel with GameScene"
20
- - path: src/systems
21
- type: directory
22
- description: "Stateless systems operating on entities (physics, AI, collision)"
23
- - path: src/systems/MovementSystem.ts
24
- type: file
25
- description: "Processes velocity and position components each tick"
26
- - path: src/systems/CollisionSystem.ts
27
- type: file
28
- description: "Broad + narrow phase collision; emits collision events"
29
- - path: src/entities
30
- type: directory
31
- description: "Entity factory functions and typed component interfaces"
32
- - path: src/entities/Player.ts
33
- type: file
34
- description: "Player entity factory — assembles components, registers with world"
35
- - path: src/components
36
- type: directory
37
- description: "Plain-data component interfaces (Position, Velocity, Health, Sprite)"
38
- - path: src/assets.ts
39
- type: file
40
- description: "Central asset manifest — all keys, paths, and atlas definitions"
41
- - path: src/config.ts
42
- type: file
43
- description: "Game config constants (canvas size, physics gravity, scene keys)"
44
- - path: src/shaders
45
- type: directory
46
- description: "GLSL shader source files (Three.js / raw WebGL projects)"
47
- - path: src/workers
48
- type: directory
49
- description: "Web Workers for physics, pathfinding, or procedural generation"
50
- - path: public/assets
51
- type: directory
52
- description: "Raw game assets (atlases, audio, tilemaps) served at /assets/"
53
- - path: public/assets/atlases
54
- type: directory
55
- description: "Texture atlas PNG + JSON descriptor files"
56
- - path: public/assets/audio
57
- type: directory
58
- description: "SFX and music in ogg + mp3 pairs for cross-browser support"
59
- - path: public/assets/tilemaps
60
- type: directory
61
- description: "Tiled map JSON exports and associated tilesets"
62
- - path: tests/systems
63
- type: directory
64
- description: "Unit tests for deterministic game systems (no DOM / canvas required)"
65
- - path: tests/integration
66
- type: directory
67
- description: "Scene lifecycle and input simulation integration tests"
1
+ tag: GAME
2
+ section: structure
3
+ language: typescript
4
+ entries:
5
+ - path: src/scenes
6
+ type: directory
7
+ description: "One file per game scene (Boot, Preload, Menu, Game, UI, GameOver)"
8
+ - path: src/scenes/BootScene.ts
9
+ type: file
10
+ description: "Registry setup, global config injection, first scene"
11
+ - path: src/scenes/PreloadScene.ts
12
+ type: file
13
+ description: "All asset loading with progress bar; transitions to MenuScene"
14
+ - path: src/scenes/GameScene.ts
15
+ type: file
16
+ description: "Core gameplay loop; delegates to systems, not self-contained"
17
+ - path: src/scenes/UIScene.ts
18
+ type: file
19
+ description: "HUD overlay launched in parallel with GameScene"
20
+ - path: src/systems
21
+ type: directory
22
+ description: "Stateless systems operating on entities (physics, AI, collision)"
23
+ - path: src/systems/MovementSystem.ts
24
+ type: file
25
+ description: "Processes velocity and position components each tick"
26
+ - path: src/systems/CollisionSystem.ts
27
+ type: file
28
+ description: "Broad + narrow phase collision; emits collision events"
29
+ - path: src/entities
30
+ type: directory
31
+ description: "Entity factory functions and typed component interfaces"
32
+ - path: src/entities/Player.ts
33
+ type: file
34
+ description: "Player entity factory — assembles components, registers with world"
35
+ - path: src/components
36
+ type: directory
37
+ description: "Plain-data component interfaces (Position, Velocity, Health, Sprite)"
38
+ - path: src/assets.ts
39
+ type: file
40
+ description: "Central asset manifest — all keys, paths, and atlas definitions"
41
+ - path: src/config.ts
42
+ type: file
43
+ description: "Game config constants (canvas size, physics gravity, scene keys)"
44
+ - path: src/shaders
45
+ type: directory
46
+ description: "GLSL shader source files (Three.js / raw WebGL projects)"
47
+ - path: src/workers
48
+ type: directory
49
+ description: "Web Workers for physics, pathfinding, or procedural generation"
50
+ - path: public/assets
51
+ type: directory
52
+ description: "Raw game assets (atlases, audio, tilemaps) served at /assets/"
53
+ - path: public/assets/atlases
54
+ type: directory
55
+ description: "Texture atlas PNG + JSON descriptor files"
56
+ - path: public/assets/audio
57
+ type: directory
58
+ description: "SFX and music in ogg + mp3 pairs for cross-browser support"
59
+ - path: public/assets/tilemaps
60
+ type: directory
61
+ description: "Tiled map JSON exports and associated tilesets"
62
+ - path: tests/systems
63
+ type: directory
64
+ description: "Unit tests for deterministic game systems (no DOM / canvas required)"
65
+ - path: tests/integration
66
+ type: directory
67
+ description: "Scene lifecycle and input simulation integration tests"