@starlein/paperclip-plugin-company-wizard 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +748 -0
  3. package/dist/manifest.js +91 -0
  4. package/dist/manifest.js.map +7 -0
  5. package/dist/ui/index.css +1647 -0
  6. package/dist/ui/index.css.map +7 -0
  7. package/dist/ui/index.js +6738 -0
  8. package/dist/ui/index.js.map +7 -0
  9. package/dist/worker.js +8247 -0
  10. package/dist/worker.js.map +7 -0
  11. package/package.json +73 -0
  12. package/templates/ai-wizard/config-format.md +21 -0
  13. package/templates/ai-wizard/interview-system.md +67 -0
  14. package/templates/ai-wizard/messages.json +6 -0
  15. package/templates/ai-wizard/single-shot-system.md +42 -0
  16. package/templates/bootstrap-instructions.md +30 -0
  17. package/templates/modules/accessibility/agents/engineer/skills/accessibility-audit.fallback.md +18 -0
  18. package/templates/modules/accessibility/agents/ui-designer/skills/accessibility-audit.fallback.md +18 -0
  19. package/templates/modules/accessibility/module.meta.json +22 -0
  20. package/templates/modules/accessibility/skills/accessibility-audit.md +27 -0
  21. package/templates/modules/architecture-plan/agents/ceo/skills/architecture-plan.fallback.md +16 -0
  22. package/templates/modules/architecture-plan/agents/engineer/skills/design-system.fallback.md +17 -0
  23. package/templates/modules/architecture-plan/agents/ui-designer/skills/architecture-plan.md +19 -0
  24. package/templates/modules/architecture-plan/agents/ui-designer/skills/design-system.md +24 -0
  25. package/templates/modules/architecture-plan/docs/architecture-template.md +38 -0
  26. package/templates/modules/architecture-plan/docs/design-system-template.md +61 -0
  27. package/templates/modules/architecture-plan/module.meta.json +37 -0
  28. package/templates/modules/architecture-plan/skills/architecture-plan.md +23 -0
  29. package/templates/modules/auto-assign/README.md +23 -0
  30. package/templates/modules/auto-assign/agents/ceo/heartbeat-section.md +9 -0
  31. package/templates/modules/auto-assign/agents/ceo/skills/auto-assign.fallback.md +18 -0
  32. package/templates/modules/auto-assign/agents/product-owner/heartbeat-section.md +10 -0
  33. package/templates/modules/auto-assign/module.meta.json +27 -0
  34. package/templates/modules/auto-assign/skills/auto-assign.md +23 -0
  35. package/templates/modules/backlog/README.md +26 -0
  36. package/templates/modules/backlog/agents/ceo/heartbeat-section.md +10 -0
  37. package/templates/modules/backlog/agents/ceo/skills/backlog-health.fallback.md +20 -0
  38. package/templates/modules/backlog/agents/product-owner/heartbeat-section.md +15 -0
  39. package/templates/modules/backlog/docs/backlog-process.md +62 -0
  40. package/templates/modules/backlog/docs/backlog-template.md +53 -0
  41. package/templates/modules/backlog/module.meta.json +31 -0
  42. package/templates/modules/backlog/skills/backlog-health.md +47 -0
  43. package/templates/modules/brand-identity/agents/ceo/skills/brand-identity.fallback.md +19 -0
  44. package/templates/modules/brand-identity/agents/cmo/skills/brand-identity.fallback.md +19 -0
  45. package/templates/modules/brand-identity/docs/brand-identity-template.md +43 -0
  46. package/templates/modules/brand-identity/module.meta.json +22 -0
  47. package/templates/modules/brand-identity/skills/brand-identity.md +30 -0
  48. package/templates/modules/build-api/module.meta.json +118 -0
  49. package/templates/modules/build-api/skills/api-design.md +43 -0
  50. package/templates/modules/ci-cd/agents/devops/skills/ci-cd.md +28 -0
  51. package/templates/modules/ci-cd/agents/engineer/skills/ci-cd.fallback.md +18 -0
  52. package/templates/modules/ci-cd/docs/ci-cd-template.md +42 -0
  53. package/templates/modules/ci-cd/module.meta.json +105 -0
  54. package/templates/modules/ci-cd/skills/ci-cd.md +26 -0
  55. package/templates/modules/codebase-onboarding/agents/ceo/skills/codebase-audit.fallback.md +19 -0
  56. package/templates/modules/codebase-onboarding/module.meta.json +24 -0
  57. package/templates/modules/codebase-onboarding/skills/codebase-audit.md +45 -0
  58. package/templates/modules/competitive-intel/agents/ceo/skills/competitive-tracking.fallback.md +17 -0
  59. package/templates/modules/competitive-intel/agents/cmo/skills/competitive-tracking.fallback.md +17 -0
  60. package/templates/modules/competitive-intel/agents/customer-success/skills/competitive-tracking.md +25 -0
  61. package/templates/modules/competitive-intel/module.meta.json +23 -0
  62. package/templates/modules/competitive-intel/skills/competitive-tracking.md +27 -0
  63. package/templates/modules/dependency-management/agents/engineer/skills/dependency-audit.fallback.md +18 -0
  64. package/templates/modules/dependency-management/module.meta.json +25 -0
  65. package/templates/modules/dependency-management/skills/dependency-audit.md +43 -0
  66. package/templates/modules/documentation/agents/ceo/skills/project-docs.fallback.md +16 -0
  67. package/templates/modules/documentation/agents/engineer/skills/project-docs.fallback.md +16 -0
  68. package/templates/modules/documentation/module.meta.json +22 -0
  69. package/templates/modules/documentation/skills/project-docs.md +25 -0
  70. package/templates/modules/game-design/agents/ceo/skills/game-design.fallback.md +17 -0
  71. package/templates/modules/game-design/agents/game-designer/skills/game-design.md +51 -0
  72. package/templates/modules/game-design/docs/engine-phaser.md +310 -0
  73. package/templates/modules/game-design/docs/engine-pixijs.md +289 -0
  74. package/templates/modules/game-design/docs/engine-threejs.md +304 -0
  75. package/templates/modules/game-design/docs/gdd-template.md +72 -0
  76. package/templates/modules/game-design/module.meta.json +22 -0
  77. package/templates/modules/game-design/skills/game-design.md +41 -0
  78. package/templates/modules/github-repo/README.md +23 -0
  79. package/templates/modules/github-repo/agents/engineer/skills/git-workflow.md +23 -0
  80. package/templates/modules/github-repo/docs/git-workflow.md +50 -0
  81. package/templates/modules/github-repo/module.meta.json +12 -0
  82. package/templates/modules/hiring-review/agents/ceo/skills/hiring-review.fallback.md +17 -0
  83. package/templates/modules/hiring-review/module.meta.json +21 -0
  84. package/templates/modules/hiring-review/skills/hiring-review.md +24 -0
  85. package/templates/modules/launch-mvp/module.meta.json +86 -0
  86. package/templates/modules/market-analysis/agents/ceo/skills/market-analysis.fallback.md +17 -0
  87. package/templates/modules/market-analysis/agents/cmo/skills/market-analysis.fallback.md +19 -0
  88. package/templates/modules/market-analysis/agents/product-owner/skills/market-analysis.fallback.md +18 -0
  89. package/templates/modules/market-analysis/agents/ux-researcher/skills/market-analysis.md +23 -0
  90. package/templates/modules/market-analysis/docs/market-analysis-template.md +32 -0
  91. package/templates/modules/market-analysis/module.meta.json +23 -0
  92. package/templates/modules/market-analysis/skills/market-analysis.md +21 -0
  93. package/templates/modules/monitoring/agents/devops/skills/monitoring.md +23 -0
  94. package/templates/modules/monitoring/agents/engineer/skills/monitoring.fallback.md +18 -0
  95. package/templates/modules/monitoring/docs/monitoring-template.md +46 -0
  96. package/templates/modules/monitoring/module.meta.json +24 -0
  97. package/templates/modules/monitoring/skills/monitoring.md +20 -0
  98. package/templates/modules/pr-review/README.md +43 -0
  99. package/templates/modules/pr-review/agents/code-reviewer/skills/code-review.md +29 -0
  100. package/templates/modules/pr-review/agents/devops/skills/infra-review.md +29 -0
  101. package/templates/modules/pr-review/agents/engineer/skills/pr-workflow.md +24 -0
  102. package/templates/modules/pr-review/agents/product-owner/skills/product-review.md +27 -0
  103. package/templates/modules/pr-review/agents/qa/skills/qa-review.md +29 -0
  104. package/templates/modules/pr-review/agents/ui-designer/skills/design-review.md +29 -0
  105. package/templates/modules/pr-review/agents/ux-researcher/skills/ux-review.md +29 -0
  106. package/templates/modules/pr-review/docs/pr-conventions.md +78 -0
  107. package/templates/modules/pr-review/module.meta.json +24 -0
  108. package/templates/modules/release-management/agents/engineer/skills/release-process.fallback.md +18 -0
  109. package/templates/modules/release-management/module.meta.json +25 -0
  110. package/templates/modules/release-management/skills/release-process.md +45 -0
  111. package/templates/modules/security-audit/agents/devops/skills/security-review.fallback.md +17 -0
  112. package/templates/modules/security-audit/agents/devops/skills/threat-model.fallback.md +17 -0
  113. package/templates/modules/security-audit/agents/engineer/skills/security-review.fallback.md +17 -0
  114. package/templates/modules/security-audit/agents/engineer/skills/threat-model.fallback.md +17 -0
  115. package/templates/modules/security-audit/module.meta.json +36 -0
  116. package/templates/modules/security-audit/skills/security-review.md +25 -0
  117. package/templates/modules/security-audit/skills/threat-model.md +22 -0
  118. package/templates/modules/stall-detection/README.md +27 -0
  119. package/templates/modules/stall-detection/agents/ceo/heartbeat-section.md +12 -0
  120. package/templates/modules/stall-detection/agents/ceo/skills/stall-detection.md +21 -0
  121. package/templates/modules/stall-detection/module.meta.json +15 -0
  122. package/templates/modules/tech-stack/agents/ceo/skills/tech-stack.fallback.md +16 -0
  123. package/templates/modules/tech-stack/docs/tech-stack-template.md +28 -0
  124. package/templates/modules/tech-stack/module.meta.json +21 -0
  125. package/templates/modules/tech-stack/skills/tech-stack.md +25 -0
  126. package/templates/modules/triage/agents/ceo/skills/issue-triage.fallback.md +19 -0
  127. package/templates/modules/triage/module.meta.json +25 -0
  128. package/templates/modules/triage/skills/issue-triage.md +42 -0
  129. package/templates/modules/user-testing/agents/ceo/skills/user-testing.fallback.md +17 -0
  130. package/templates/modules/user-testing/agents/product-owner/skills/user-testing.fallback.md +17 -0
  131. package/templates/modules/user-testing/agents/qa/skills/user-testing.md +30 -0
  132. package/templates/modules/user-testing/agents/ux-researcher/skills/user-testing.fallback.md +18 -0
  133. package/templates/modules/user-testing/docs/user-testing-template.md +37 -0
  134. package/templates/modules/user-testing/module.meta.json +23 -0
  135. package/templates/modules/user-testing/skills/user-testing.md +27 -0
  136. package/templates/modules/vision-workshop/agents/ceo/skills/vision-workshop.md +23 -0
  137. package/templates/modules/vision-workshop/agents/ux-researcher/skills/vision-workshop.md +19 -0
  138. package/templates/modules/vision-workshop/docs/vision-template.md +28 -0
  139. package/templates/modules/vision-workshop/module.meta.json +12 -0
  140. package/templates/modules/website-relaunch/agents/ui-designer/skills/site-audit.md +65 -0
  141. package/templates/modules/website-relaunch/module.meta.json +168 -0
  142. package/templates/modules/website-relaunch/skills/design-ingestion.md +111 -0
  143. package/templates/modules/website-relaunch/skills/site-audit.md +54 -0
  144. package/templates/presets/build-api/preset.meta.json +16 -0
  145. package/templates/presets/build-game/preset.meta.json +150 -0
  146. package/templates/presets/content/preset.meta.json +20 -0
  147. package/templates/presets/fast/preset.meta.json +16 -0
  148. package/templates/presets/full/preset.meta.json +22 -0
  149. package/templates/presets/gtm/preset.meta.json +21 -0
  150. package/templates/presets/launch-mvp/preset.meta.json +17 -0
  151. package/templates/presets/launch-pack/preset.meta.json +25 -0
  152. package/templates/presets/quality/preset.meta.json +17 -0
  153. package/templates/presets/rad/preset.meta.json +19 -0
  154. package/templates/presets/repo-maintenance/preset.meta.json +104 -0
  155. package/templates/presets/research/preset.meta.json +13 -0
  156. package/templates/presets/secure/preset.meta.json +22 -0
  157. package/templates/presets/startup/preset.meta.json +19 -0
  158. package/templates/presets/website-relaunch/preset.meta.json +18 -0
  159. package/templates/roles/audio-designer/AGENTS.md +29 -0
  160. package/templates/roles/audio-designer/HEARTBEAT.md +37 -0
  161. package/templates/roles/audio-designer/SOUL.md +17 -0
  162. package/templates/roles/audio-designer/TOOLS.md +3 -0
  163. package/templates/roles/audio-designer/role.meta.json +14 -0
  164. package/templates/roles/ceo/AGENTS.md +28 -0
  165. package/templates/roles/ceo/HEARTBEAT.md +75 -0
  166. package/templates/roles/ceo/SOUL.md +33 -0
  167. package/templates/roles/ceo/TOOLS.md +3 -0
  168. package/templates/roles/ceo/role.meta.json +14 -0
  169. package/templates/roles/cfo/AGENTS.md +31 -0
  170. package/templates/roles/cfo/HEARTBEAT.md +37 -0
  171. package/templates/roles/cfo/SOUL.md +17 -0
  172. package/templates/roles/cfo/TOOLS.md +3 -0
  173. package/templates/roles/cfo/role.meta.json +17 -0
  174. package/templates/roles/cmo/AGENTS.md +31 -0
  175. package/templates/roles/cmo/HEARTBEAT.md +37 -0
  176. package/templates/roles/cmo/SOUL.md +17 -0
  177. package/templates/roles/cmo/TOOLS.md +3 -0
  178. package/templates/roles/cmo/role.meta.json +17 -0
  179. package/templates/roles/code-reviewer/AGENTS.md +42 -0
  180. package/templates/roles/code-reviewer/HEARTBEAT.md +33 -0
  181. package/templates/roles/code-reviewer/SOUL.md +18 -0
  182. package/templates/roles/code-reviewer/TOOLS.md +3 -0
  183. package/templates/roles/code-reviewer/role.meta.json +12 -0
  184. package/templates/roles/cto/AGENTS.md +30 -0
  185. package/templates/roles/cto/HEARTBEAT.md +45 -0
  186. package/templates/roles/cto/SOUL.md +25 -0
  187. package/templates/roles/cto/TOOLS.md +3 -0
  188. package/templates/roles/cto/role.meta.json +18 -0
  189. package/templates/roles/customer-success/AGENTS.md +42 -0
  190. package/templates/roles/customer-success/HEARTBEAT.md +33 -0
  191. package/templates/roles/customer-success/SOUL.md +17 -0
  192. package/templates/roles/customer-success/TOOLS.md +3 -0
  193. package/templates/roles/customer-success/role.meta.json +17 -0
  194. package/templates/roles/devops/AGENTS.md +31 -0
  195. package/templates/roles/devops/HEARTBEAT.md +42 -0
  196. package/templates/roles/devops/SOUL.md +17 -0
  197. package/templates/roles/devops/TOOLS.md +3 -0
  198. package/templates/roles/devops/role.meta.json +17 -0
  199. package/templates/roles/engineer/AGENTS.md +29 -0
  200. package/templates/roles/engineer/HEARTBEAT.md +39 -0
  201. package/templates/roles/engineer/SOUL.md +20 -0
  202. package/templates/roles/engineer/TOOLS.md +3 -0
  203. package/templates/roles/engineer/role.meta.json +13 -0
  204. package/templates/roles/game-artist/AGENTS.md +29 -0
  205. package/templates/roles/game-artist/HEARTBEAT.md +37 -0
  206. package/templates/roles/game-artist/SOUL.md +24 -0
  207. package/templates/roles/game-artist/TOOLS.md +3 -0
  208. package/templates/roles/game-artist/role.meta.json +14 -0
  209. package/templates/roles/game-designer/AGENTS.md +29 -0
  210. package/templates/roles/game-designer/HEARTBEAT.md +37 -0
  211. package/templates/roles/game-designer/SOUL.md +17 -0
  212. package/templates/roles/game-designer/TOOLS.md +3 -0
  213. package/templates/roles/game-designer/role.meta.json +14 -0
  214. package/templates/roles/level-designer/AGENTS.md +29 -0
  215. package/templates/roles/level-designer/HEARTBEAT.md +37 -0
  216. package/templates/roles/level-designer/SOUL.md +17 -0
  217. package/templates/roles/level-designer/TOOLS.md +3 -0
  218. package/templates/roles/level-designer/role.meta.json +13 -0
  219. package/templates/roles/product-owner/AGENTS.md +29 -0
  220. package/templates/roles/product-owner/HEARTBEAT.md +35 -0
  221. package/templates/roles/product-owner/SOUL.md +17 -0
  222. package/templates/roles/product-owner/TOOLS.md +3 -0
  223. package/templates/roles/product-owner/role.meta.json +14 -0
  224. package/templates/roles/qa/AGENTS.md +31 -0
  225. package/templates/roles/qa/HEARTBEAT.md +37 -0
  226. package/templates/roles/qa/SOUL.md +17 -0
  227. package/templates/roles/qa/TOOLS.md +3 -0
  228. package/templates/roles/qa/role.meta.json +17 -0
  229. package/templates/roles/security-engineer/AGENTS.md +42 -0
  230. package/templates/roles/security-engineer/HEARTBEAT.md +33 -0
  231. package/templates/roles/security-engineer/SOUL.md +17 -0
  232. package/templates/roles/security-engineer/TOOLS.md +3 -0
  233. package/templates/roles/security-engineer/role.meta.json +17 -0
  234. package/templates/roles/technical-writer/AGENTS.md +41 -0
  235. package/templates/roles/technical-writer/HEARTBEAT.md +32 -0
  236. package/templates/roles/technical-writer/SOUL.md +17 -0
  237. package/templates/roles/technical-writer/TOOLS.md +3 -0
  238. package/templates/roles/technical-writer/role.meta.json +16 -0
  239. package/templates/roles/ui-designer/AGENTS.md +29 -0
  240. package/templates/roles/ui-designer/HEARTBEAT.md +37 -0
  241. package/templates/roles/ui-designer/SOUL.md +17 -0
  242. package/templates/roles/ui-designer/TOOLS.md +3 -0
  243. package/templates/roles/ui-designer/role.meta.json +17 -0
  244. package/templates/roles/ux-researcher/AGENTS.md +29 -0
  245. package/templates/roles/ux-researcher/HEARTBEAT.md +37 -0
  246. package/templates/roles/ux-researcher/SOUL.md +17 -0
  247. package/templates/roles/ux-researcher/TOOLS.md +3 -0
  248. package/templates/roles/ux-researcher/role.meta.json +14 -0
@@ -0,0 +1,304 @@
1
+ # Engine Guide: Three.js
2
+
3
+ Three.js is a 3D rendering library for the web. Use it for: 3D games, first-person/third-person games, voxel worlds, procedural environments, 3D puzzle games, and any game that needs a 3D scene. Runs on WebGL and WebGPU.
4
+
5
+ Like PixiJS, Three.js is a renderer — you build the game loop, physics, and input yourself (or bring libraries like Rapier, cannon-es, or Ammo.js).
6
+
7
+ ## Project Setup
8
+
9
+ ```bash
10
+ npm init -y && npm install three
11
+ ```
12
+
13
+ For TypeScript: `npm install three @types/three`
14
+
15
+ ## Core Architecture
16
+
17
+ ### Scene, Camera, Renderer
18
+
19
+ Every Three.js app needs these three things:
20
+
21
+ ```javascript
22
+ import * as THREE from 'three';
23
+
24
+ // Scene — the container for all 3D objects
25
+ const scene = new THREE.Scene();
26
+ scene.background = new THREE.Color(0x87ceeb); // sky blue
27
+ scene.fog = new THREE.Fog(0x87ceeb, 50, 200); // distance fog
28
+
29
+ // Camera — the viewpoint
30
+ const camera = new THREE.PerspectiveCamera(
31
+ 75, // FOV
32
+ window.innerWidth / window.innerHeight, // aspect
33
+ 0.1, // near clipping
34
+ 1000 // far clipping
35
+ );
36
+ camera.position.set(0, 5, 10);
37
+ camera.lookAt(0, 0, 0);
38
+
39
+ // Renderer
40
+ const renderer = new THREE.WebGLRenderer({ antialias: true });
41
+ renderer.setSize(window.innerWidth, window.innerHeight);
42
+ renderer.setPixelRatio(window.devicePixelRatio);
43
+ renderer.shadowMap.enabled = true;
44
+ renderer.shadowMap.type = THREE.PCFSoftShadowMap;
45
+ document.body.appendChild(renderer.domElement);
46
+
47
+ // Animation loop
48
+ const timer = new THREE.Timer();
49
+ timer.connect(document);
50
+
51
+ renderer.setAnimationLoop(() => {
52
+ timer.update();
53
+ const delta = timer.getDelta();
54
+ update(delta);
55
+ renderer.render(scene, camera);
56
+ });
57
+
58
+ // Handle resize
59
+ window.addEventListener('resize', () => {
60
+ camera.aspect = window.innerWidth / window.innerHeight;
61
+ camera.updateProjectionMatrix();
62
+ renderer.setSize(window.innerWidth, window.innerHeight);
63
+ });
64
+ ```
65
+
66
+ ### Meshes, Materials, Geometry
67
+
68
+ ```javascript
69
+ // Built-in geometries
70
+ const ground = new THREE.Mesh(
71
+ new THREE.PlaneGeometry(100, 100),
72
+ new THREE.MeshStandardMaterial({ color: 0x228b22 })
73
+ );
74
+ ground.rotation.x = -Math.PI / 2;
75
+ ground.receiveShadow = true;
76
+ scene.add(ground);
77
+
78
+ // Box
79
+ const cube = new THREE.Mesh(
80
+ new THREE.BoxGeometry(1, 1, 1),
81
+ new THREE.MeshStandardMaterial({ color: 0xff4444 })
82
+ );
83
+ cube.position.set(0, 0.5, 0);
84
+ cube.castShadow = true;
85
+ scene.add(cube);
86
+
87
+ // Instanced mesh (for many identical objects — trees, enemies, particles)
88
+ const count = 1000;
89
+ const mesh = new THREE.InstancedMesh(geometry, material, count);
90
+ const dummy = new THREE.Object3D();
91
+ for (let i = 0; i < count; i++) {
92
+ dummy.position.set(Math.random() * 100 - 50, 0, Math.random() * 100 - 50);
93
+ dummy.updateMatrix();
94
+ mesh.setMatrixAt(i, dummy.matrix);
95
+ }
96
+ scene.add(mesh);
97
+ ```
98
+
99
+ ### Lighting
100
+
101
+ ```javascript
102
+ // Ambient — baseline illumination
103
+ const ambient = new THREE.AmbientLight(0x404040, 0.5);
104
+ scene.add(ambient);
105
+
106
+ // Hemisphere — sky/ground gradient
107
+ const hemi = new THREE.HemisphereLight(0x87ceeb, 0x228b22, 0.6);
108
+ scene.add(hemi);
109
+
110
+ // Directional — sun-like, casts shadows
111
+ const sun = new THREE.DirectionalLight(0xffffff, 1);
112
+ sun.position.set(10, 20, 10);
113
+ sun.castShadow = true;
114
+ sun.shadow.mapSize.width = 2048;
115
+ sun.shadow.mapSize.height = 2048;
116
+ sun.shadow.camera.near = 0.5;
117
+ sun.shadow.camera.far = 50;
118
+ sun.shadow.camera.left = -20;
119
+ sun.shadow.camera.right = 20;
120
+ sun.shadow.camera.top = 20;
121
+ sun.shadow.camera.bottom = -20;
122
+ scene.add(sun);
123
+
124
+ // Point — omnidirectional (torch, lamp)
125
+ const point = new THREE.PointLight(0xff8800, 1, 20);
126
+ point.position.set(5, 3, 5);
127
+ scene.add(point);
128
+ ```
129
+
130
+ ### Loading 3D Models (GLTF)
131
+
132
+ GLTF/GLB is the standard format for 3D web content.
133
+
134
+ ```javascript
135
+ import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
136
+
137
+ const loader = new GLTFLoader();
138
+ loader.load('models/character.glb', (gltf) => {
139
+ const model = gltf.scene;
140
+ model.traverse((child) => {
141
+ if (child.isMesh) {
142
+ child.castShadow = true;
143
+ child.receiveShadow = true;
144
+ }
145
+ });
146
+ scene.add(model);
147
+
148
+ // Animations
149
+ const mixer = new THREE.AnimationMixer(model);
150
+ const idleAction = mixer.clipAction(gltf.animations[0]);
151
+ const walkAction = mixer.clipAction(gltf.animations[1]);
152
+ idleAction.play();
153
+
154
+ // In update loop:
155
+ // mixer.update(delta);
156
+
157
+ // Crossfade between animations
158
+ // walkAction.reset().fadeIn(0.3).play();
159
+ // idleAction.fadeOut(0.3);
160
+ });
161
+ ```
162
+
163
+ ### Raycasting (Input / Click Detection)
164
+
165
+ ```javascript
166
+ const raycaster = new THREE.Raycaster();
167
+ const pointer = new THREE.Vector2();
168
+
169
+ window.addEventListener('click', (event) => {
170
+ pointer.x = (event.clientX / window.innerWidth) * 2 - 1;
171
+ pointer.y = -(event.clientY / window.innerHeight) * 2 + 1;
172
+
173
+ raycaster.setFromCamera(pointer, camera);
174
+ const intersects = raycaster.intersectObjects(scene.children, true);
175
+
176
+ if (intersects.length > 0) {
177
+ const hit = intersects[0];
178
+ console.log('Hit:', hit.object.name, 'at', hit.point);
179
+ }
180
+ });
181
+ ```
182
+
183
+ ### Camera Controls
184
+
185
+ ```javascript
186
+ import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
187
+
188
+ // Orbit camera (debug / strategy games)
189
+ const controls = new OrbitControls(camera, renderer.domElement);
190
+ controls.target.set(0, 1, 0);
191
+ controls.enableDamping = true;
192
+ controls.dampingFactor = 0.05;
193
+ controls.update(); // call in animation loop
194
+
195
+ // First-person: use PointerLockControls
196
+ import { PointerLockControls } from 'three/addons/controls/PointerLockControls.js';
197
+ const fpControls = new PointerLockControls(camera, renderer.domElement);
198
+ renderer.domElement.addEventListener('click', () => fpControls.lock());
199
+ ```
200
+
201
+ ### Third-Person Camera Pattern
202
+
203
+ ```javascript
204
+ function updateCamera(player, camera) {
205
+ const offset = new THREE.Vector3(0, 5, 10); // behind and above
206
+ const targetPos = player.position.clone().add(offset);
207
+ camera.position.lerp(targetPos, 0.1); // smooth follow
208
+ camera.lookAt(player.position);
209
+ }
210
+ ```
211
+
212
+ ## Physics Integration
213
+
214
+ Three.js has no built-in physics. Common choices:
215
+
216
+ ### Rapier (recommended — fast, WASM, Rust-based)
217
+
218
+ ```bash
219
+ npm install @dimforge/rapier3d-compat
220
+ ```
221
+
222
+ ```javascript
223
+ import RAPIER from '@dimforge/rapier3d-compat';
224
+
225
+ await RAPIER.init();
226
+ const world = new RAPIER.World({ x: 0, y: -9.81, z: 0 });
227
+
228
+ // Ground
229
+ const groundBody = world.createRigidBody(RAPIER.RigidBodyDesc.fixed());
230
+ world.createCollider(
231
+ RAPIER.ColliderDesc.cuboid(50, 0.1, 50),
232
+ groundBody
233
+ );
234
+
235
+ // Dynamic box
236
+ const boxBody = world.createRigidBody(
237
+ RAPIER.RigidBodyDesc.dynamic().setTranslation(0, 5, 0)
238
+ );
239
+ world.createCollider(RAPIER.ColliderDesc.cuboid(0.5, 0.5, 0.5), boxBody);
240
+
241
+ // In update loop:
242
+ world.step();
243
+ const pos = boxBody.translation();
244
+ cube.position.set(pos.x, pos.y, pos.z);
245
+ const rot = boxBody.rotation();
246
+ cube.quaternion.set(rot.x, rot.y, rot.z, rot.w);
247
+ ```
248
+
249
+ ### Cannon-es (pure JS, simpler API)
250
+
251
+ ```bash
252
+ npm install cannon-es
253
+ ```
254
+
255
+ ## Project Structure Convention
256
+
257
+ ```
258
+ src/
259
+ ├── scenes/
260
+ │ ├── MenuScene.js
261
+ │ ├── GameScene.js
262
+ │ └── GameOverScene.js
263
+ ├── objects/
264
+ │ ├── Player.js # Mesh + physics body + animation mixer
265
+ │ ├── Enemy.js
266
+ │ └── Terrain.js
267
+ ├── systems/
268
+ │ ├── InputManager.js # Keyboard + pointer state
269
+ │ ├── PhysicsWorld.js # Rapier/cannon-es wrapper
270
+ │ ├── SceneManager.js # Scene switching
271
+ │ └── AudioManager.js # Spatial audio via Web Audio API
272
+ ├── config/
273
+ │ └── constants.js # Tuning parameters
274
+ ├── assets/
275
+ │ ├── models/ # .glb files
276
+ │ ├── textures/
277
+ │ └── audio/
278
+ └── main.js # Renderer, scene, loop setup
279
+ ```
280
+
281
+ ## Tuning Parameters Pattern
282
+
283
+ ```javascript
284
+ export const PLAYER = {
285
+ MOVE_SPEED: 5,
286
+ SPRINT_MULTIPLIER: 1.8,
287
+ JUMP_FORCE: 8,
288
+ MASS: 70,
289
+ CAMERA_OFFSET: { x: 0, y: 5, z: 10 },
290
+ CAMERA_LERP: 0.1,
291
+ };
292
+ ```
293
+
294
+ ## Performance Notes
295
+
296
+ - Use `InstancedMesh` for repeated geometry (trees, bullets, particles) — massive perf gain
297
+ - LOD (Level of Detail): `THREE.LOD` swaps geometry based on camera distance
298
+ - Frustum culling is on by default — objects outside camera view skip rendering
299
+ - Texture compression: use KTX2 + Basis Universal for GPU-compressed textures
300
+ - Shadow map resolution: 1024 is fine for most cases, 2048 for hero shadows
301
+ - Object pooling: reuse meshes instead of creating/disposing
302
+ - `renderer.info` shows draw calls, triangles, textures in memory
303
+ - Use `dispose()` on geometries, materials, and textures when removing objects
304
+ - WebGPU renderer (`THREE.WebGPURenderer`) available for modern browsers — same API, better performance
@@ -0,0 +1,72 @@
1
+ # Game Design Document
2
+
3
+ ## Concept
4
+
5
+ **Title:** [Working title]
6
+ **Genre:** [e.g., Platformer, Roguelike, Puzzle, Tower Defense]
7
+ **Platform:** [e.g., Web (HTML5), Desktop, Mobile]
8
+ **Target audience:** [e.g., Casual players, Speedrunners, Strategy fans]
9
+ **Pitch:** [One paragraph: what is this game and why is it fun?]
10
+
11
+ ## Core Mechanic
12
+
13
+ [The one thing the player does most. Describe the full loop: input → action → feedback → consequence.]
14
+
15
+ ## Game Loop
16
+
17
+ ### Moment-to-moment (5 seconds)
18
+ [What does the player do every few seconds?]
19
+
20
+ ### Session loop (15 minutes)
21
+ [What does a single play session look like? How does it start, flow, and end?]
22
+
23
+ ### Meta loop (multi-session)
24
+ [What brings the player back? Progression, unlocks, story, scores?]
25
+
26
+ ## Mechanics
27
+
28
+ | Mechanic | Description | Introduced | Interacts with |
29
+ | :------- | :---------- | :--------- | :------------- |
30
+ | | | | |
31
+
32
+ ## Progression
33
+
34
+ [How does difficulty increase? What gates progress? Skill vs content gates. Unlock schedule.]
35
+
36
+ ## Win / Lose
37
+
38
+ [How does a session end? How does the overall game end? Fail states and recovery.]
39
+
40
+ ## Controls
41
+
42
+ | Action | Keyboard | Gamepad | Touch |
43
+ | :----- | :------- | :------ | :---- |
44
+ | | | | |
45
+
46
+ ## Art Direction
47
+
48
+ **Style:** [e.g., Pixel art 16x16, Low-poly, Hand-drawn]
49
+ **Color language:** [What colors mean in gameplay — player, enemy, pickup, hazard, neutral]
50
+ **References:** [Games or art that capture the target aesthetic]
51
+
52
+ ## Audio Direction
53
+
54
+ **Music:** [Style, mood, adaptive triggers]
55
+ **SFX:** [Key sounds: player actions, feedback, UI]
56
+
57
+ ## Tuning Parameters
58
+
59
+ ### Player
60
+ | Parameter | Default | Range | Affects |
61
+ | :-------- | :------ | :---- | :------ |
62
+ | | | | |
63
+
64
+ ### Enemies
65
+ | Parameter | Default | Range | Affects |
66
+ | :-------- | :------ | :---- | :------ |
67
+ | | | | |
68
+
69
+ ### Economy
70
+ | Parameter | Default | Range | Affects |
71
+ | :-------- | :------ | :---- | :------ |
72
+ | | | | |
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "game-design",
3
+ "description": "Creates the game design document defining core mechanics, game loop, and player experience. Foundation for any game project.",
4
+ "capabilities": [
5
+ {
6
+ "skill": "game-design",
7
+ "owners": [
8
+ "game-designer",
9
+ "engineer",
10
+ "ceo"
11
+ ],
12
+ "fallbackSkill": "game-design.fallback"
13
+ }
14
+ ],
15
+ "issues": [
16
+ {
17
+ "title": "Create Game Design Document",
18
+ "assignTo": "capability:game-design",
19
+ "description": "Define the game's core design: genre, core mechanic, game loop, progression system, win/lose conditions, control scheme, and target audience. Document everything in docs/GDD.md. This is the single source of truth for what the game is."
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,41 @@
1
+ # Skill: Game Design
2
+
3
+ You own the Game Design Document (GDD) and the ongoing design of the game's mechanics, systems, and player experience.
4
+
5
+ ## Game Design Document
6
+
7
+ Create and maintain `docs/GDD.md` as the single source of truth. It must cover:
8
+
9
+ 1. **Concept** — One-paragraph pitch. Genre, theme, target platform, target audience.
10
+ 2. **Core mechanic** — The one thing the player does most. Define it precisely: input → action → feedback → consequence.
11
+ 3. **Game loop** — Three layers:
12
+ - **Moment-to-moment** — What happens every few seconds (jump, shoot, match, place)
13
+ - **Session loop** — What a single play session looks like (level, round, run, match)
14
+ - **Meta loop** — What keeps players coming back (progression, unlocks, story, leaderboards)
15
+ 4. **Progression** — How difficulty and complexity increase. What gates progress. What the player earns.
16
+ 5. **Win/lose conditions** — How does a session end? How does the overall game end? Is there permadeath, lives, continues?
17
+ 6. **Controls** — Input scheme for each platform. Keep it simple — if it needs a tutorial, simplify.
18
+ 7. **Art direction** — Visual style (pixel art, low-poly, hand-drawn, etc.), color palette guidance, reference games/art.
19
+ 8. **Audio direction** — Music style, SFX approach, adaptive audio (if any).
20
+ 9. **Tuning parameters** — List every value that affects balance as a named parameter with default:
21
+ - Player speed, jump height, health, damage, cooldowns
22
+ - Enemy stats, spawn rates, AI behavior thresholds
23
+ - Economy values: costs, rewards, drop rates
24
+
25
+ ## Ongoing Design Work
26
+
27
+ On each heartbeat when `docs/GDD.md` exists:
28
+
29
+ 1. Review recent playtesting feedback (if `docs/PLAYTEST-RESULTS.md` exists).
30
+ 2. Identify mechanics that aren't working — not fun, confusing, or broken.
31
+ 3. Propose design changes with clear rationale: what's wrong, what to try, expected impact.
32
+ 4. Update tuning parameters based on playtest data.
33
+ 5. Create issues for new mechanics, balancing passes, or design experiments.
34
+
35
+ ## Rules
36
+
37
+ - The GDD is a living document. Update it as the design evolves — don't let it get stale.
38
+ - Every mechanic must pass the "why is this fun?" test. If you can't answer, cut it.
39
+ - Design for the minimum viable game first. What's the smallest version that's fun?
40
+ - Tuning values must be parameterized, never hardcoded. Document them in the GDD with ranges.
41
+ - When in doubt, prototype and playtest. Don't design in a vacuum.
@@ -0,0 +1,23 @@
1
+ # Module: github-repo
2
+
3
+ Enables the Engineer to work in a GitHub repository.
4
+
5
+ ## What it adds
6
+
7
+ - **Shared docs**: `docs/git-workflow.md` — commit conventions, branch rules
8
+ - **Engineer skill**: Git workflow instructions for working in a repo
9
+
10
+ ## Variants
11
+
12
+ - **direct-to-main** (default): Engineer commits directly on main. No branches, no PRs. Fast iteration for solo engineer setups.
13
+ - When combined with `pr-review` module: switches to feature-branch workflow automatically.
14
+
15
+ ## Best for
16
+
17
+ - Solo engineer shipping quickly
18
+ - Prototypes and MVPs
19
+ - Projects where speed > process
20
+
21
+ ## Example
22
+
23
+ A company building a web app with one engineer. The engineer picks up issues, implements them, commits to main, and marks the issue done. CI runs on push.
@@ -0,0 +1,23 @@
1
+ # Skill: Git Workflow
2
+
3
+ You work in a GitHub repository. Follow the conventions in `docs/git-workflow.md` in the project root.
4
+
5
+ ## Direct-to-Main Flow
6
+
7
+ 1. Pull latest: `git pull origin main`
8
+ 2. Make your changes
9
+ 3. Run available checks (lint, typecheck, tests)
10
+ 4. Commit using Conventional Commits: `<type>: <description>`
11
+ 5. Push to main: `git push origin main`
12
+ 6. If CI fails, fix immediately
13
+
14
+ ## Rules
15
+
16
+ - Always pull before starting work to avoid conflicts.
17
+ - Keep commits focused — one concern per commit.
18
+ - Never force push to main.
19
+ - If you encounter merge conflicts, resolve them carefully. When in doubt, escalate to the CEO.
20
+ - Reference the issue ID in the commit body (e.g., `Closes YES-5`).
21
+ - Never mark an issue as `done` unless at least one new commit was created for that issue's work and pushed.
22
+ - Before marking `done`, verify there is no uncommitted work (`git status --short` should be clean).
23
+ - If no repository change is required, do not mark `done` silently: leave an issue comment explaining why no code change was needed and escalate to the CEO for decision.
@@ -0,0 +1,50 @@
1
+ # Git Workflow
2
+
3
+ ## Commit Conventions
4
+
5
+ Use Conventional Commits format for all commit messages:
6
+
7
+ ```
8
+ <type>: <short description>
9
+ ```
10
+
11
+ Types: `feat`, `fix`, `docs`, `chore`, `refactor`, `test`, `perf`
12
+
13
+ Examples:
14
+ - `feat: add user authentication endpoint`
15
+ - `fix: resolve null pointer in game loop`
16
+ - `docs: update README with setup instructions`
17
+
18
+ Rules:
19
+ - Lowercase after colon
20
+ - No period at end
21
+ - Under 72 characters
22
+ - Reference issue ID in commit body when applicable
23
+
24
+ ## Direct-to-Main Workflow
25
+
26
+ 1. Pull latest from main
27
+ 2. Make changes
28
+ 3. Run tests/linting locally if available
29
+ 4. Commit with conventional commit message
30
+ 5. Push to main
31
+ 6. Verify CI passes (if configured)
32
+
33
+ ## What Requires a Commit
34
+
35
+ - Code logic changes
36
+ - Configuration changes
37
+ - Feature additions
38
+ - Bug fixes
39
+ - Documentation updates
40
+ - Infrastructure changes
41
+
42
+ ## Issue Completion Guardrails
43
+
44
+ - Never mark an issue as `done` unless at least one new commit exists for that issue's work and has been pushed.
45
+ - Before marking `done`, ensure the working tree is clean (`git status --short` shows no pending changes).
46
+ - If no repository change is required, do not silently close as `done`: add an issue comment explaining why no code change was needed and escalate to the CEO for explicit decision.
47
+
48
+ ## CI
49
+
50
+ If the project has CI configured (e.g., GitHub Actions), always verify your push passes CI. If CI fails, fix it immediately — a broken main blocks everyone.
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "github-repo",
3
+ "description": "Connects the team to a GitHub repository. Required by most engineering workflow modules.",
4
+ "capabilities": [],
5
+ "issues": [
6
+ {
7
+ "title": "Initialize GitHub repository",
8
+ "assignTo": "engineer",
9
+ "description": "Create the GitHub repository, initialize with README, push initial commit to main, and set up branch protection if using PR workflow."
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,17 @@
1
+ # Skill: Hiring Review (Fallback)
2
+
3
+ The Product Owner primarily manages team composition analysis. You are the fallback — step in only if the PO is absent or hasn't addressed critical team gaps.
4
+
5
+ ## Hiring Review (Fallback)
6
+
7
+ 1. Query current agents: `GET /api/companies/{companyId}/agents`
8
+ 2. If a critical capability gap is blocking progress and the PO hasn't acted:
9
+ - Create a board approval request for the most urgent hire
10
+ - Keep it to one proposal at a time
11
+ - Tag the PO to take over broader team planning
12
+
13
+ ## Rules
14
+
15
+ - This is a safety net, not your primary job. Let the PO own it.
16
+ - Only propose hires when progress is visibly blocked by missing expertise.
17
+ - One hire at a time. Don't over-expand.
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "hiring-review",
3
+ "description": "Adds a review step before new agents are hired. Gives the board visibility into team composition changes.",
4
+ "capabilities": [
5
+ {
6
+ "skill": "hiring-review",
7
+ "owners": [
8
+ "product-owner",
9
+ "ceo"
10
+ ],
11
+ "fallbackSkill": "hiring-review.fallback"
12
+ }
13
+ ],
14
+ "issues": [
15
+ {
16
+ "title": "Evaluate team composition and propose new hires",
17
+ "assignTo": "capability:hiring-review",
18
+ "description": "Review the current team against the company goal and project requirements. Identify missing expertise or capacity gaps. For each proposed hire, create a board approval request with the role, justification, and suggested adapter configuration."
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1,24 @@
1
+ # Skill: Hiring Review
2
+
3
+ You own team composition analysis. Evaluate whether the current team can deliver on the company goal, and propose hires when gaps exist.
4
+
5
+ ## Hiring Review Process
6
+
7
+ 1. Query current agents: `GET /api/companies/{companyId}/agents`
8
+ 2. Review the company goal and project scope
9
+ 3. For each identified gap:
10
+ - Define the role (use Paperclip role enum: engineer, pm, qa, designer, researcher, devops, general)
11
+ - Write a justification: what capability is missing and why it matters
12
+ - Suggest adapter configuration (model, effort level)
13
+ - Create a board approval request via `POST /api/companies/{companyId}/approvals` with:
14
+ - `type: "hire"`
15
+ - `title`: role name and purpose
16
+ - `description`: justification and config suggestion
17
+ 4. Document the team assessment in your daily notes
18
+
19
+ ## Rules
20
+
21
+ - Don't propose hires for capabilities already covered by existing roles.
22
+ - Consider whether an existing agent could take on additional responsibilities before hiring.
23
+ - Prioritize roles that unblock the most work.
24
+ - Each hire proposal must go through board approval — never create agents directly.