@funpixel/tools 0.1.0 → 0.1.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 (784) hide show
  1. package/bench/handlers/bake_emissive.py +2 -2
  2. package/bench/handlers/decimate.py +2 -2
  3. package/bench/handlers/fracture.py +1 -1
  4. package/bench/handlers/normalize_transform.py +3 -3
  5. package/bench/handlers/render_views.py +2 -2
  6. package/bench/handlers/views.py +6 -6
  7. package/dist/cli.js +8 -9
  8. package/dist/commands/feedback.js +5 -5
  9. package/dist/commands/init.js +1 -1
  10. package/dist/direct/read.js +1 -1
  11. package/dist/doctor/unity-checks.js +5 -5
  12. package/dist/doctor/unity-history.js +17 -33
  13. package/dist/feedback/ab.js +0 -40
  14. package/dist/gen/unity.js +3 -3
  15. package/dist/mcp/server.js +2 -1
  16. package/dist/pipeline/pipeline.js +6 -6
  17. package/dist/playtest/moments.js +1 -1
  18. package/dist/playtest/report.js +1 -1
  19. package/dist/production/mirror.js +2 -2
  20. package/dist/sim/curve.js +3 -3
  21. package/dist/spec/scaffold.js +1 -1
  22. package/dist/studio/pitch.js +1 -1
  23. package/dist/unity/probe/install.js +1 -1
  24. package/dist/vendor/verify/src/page/actors.js +2 -2
  25. package/dist/vendor/verify/src/page/capture_view.js +2 -2
  26. package/dist/vendor/verify/src/page/dressing.js +1 -1
  27. package/dist/vendor/verify/src/page/frame_honesty.js +1 -1
  28. package/dist/vendor/verify/src/page/front_door.js +2 -2
  29. package/dist/vendor/verify/src/page/grounding.js +3 -3
  30. package/dist/vendor/verify/src/page/hud.js +3 -3
  31. package/dist/vendor/verify/src/page/layout.js +5 -5
  32. package/dist/vendor/verify/src/page/life_anim.js +6 -6
  33. package/dist/vendor/verify/src/page/mechanic_check.js +1 -1
  34. package/dist/vendor/verify/src/page/phone_check.js +2 -2
  35. package/dist/vendor/verify/src/page/recorder.js +2 -2
  36. package/dist/vendor/verify/src/page/surfaces.js +2 -2
  37. package/dist/vendor/verify/src/page/world_actors.js +3 -3
  38. package/package.json +2 -2
  39. package/plugins/README.md +16 -0
  40. package/plugins/claude/README.md +2 -3
  41. package/plugins/claude/agents/art-director.md +2 -2
  42. package/plugins/claude/commands/playtest.md +2 -2
  43. package/plugins/claude/hooks/brief.md +1 -1
  44. package/plugins/claude/hooks/guidance.json +1 -1
  45. package/plugins/claude/hooks/vendor/pipeline/pipeline.mjs +6 -6
  46. package/plugins/claude/hooks/vendor/studio/pitch.mjs +1 -1
  47. package/plugins/claude/skills/3d/references/bake-off.md +3 -3
  48. package/plugins/claude/skills/3d/references/characters.md +1 -1
  49. package/plugins/claude/skills/3d/references/hero-route.md +5 -5
  50. package/plugins/claude/skills/3d/references/level-spec.md +1 -1
  51. package/plugins/claude/skills/3d/references/levels.md +3 -3
  52. package/plugins/claude/skills/3d/references/light-and-places.md +3 -3
  53. package/plugins/claude/skills/3d/references/painted-target.md +7 -7
  54. package/plugins/claude/skills/3d/references/three-loading.md +4 -4
  55. package/plugins/claude/skills/3d/references/unity.md +13 -13
  56. package/plugins/claude/skills/art/references/animation.md +1 -1
  57. package/plugins/claude/skills/art/references/cast.md +3 -3
  58. package/plugins/claude/skills/art/references/effects.md +2 -2
  59. package/plugins/claude/skills/art/references/frames.md +6 -6
  60. package/plugins/claude/skills/art/references/judging-frames.md +8 -8
  61. package/plugins/claude/skills/art/references/look.md +4 -4
  62. package/plugins/claude/skills/art/references/pipeline.md +2 -2
  63. package/plugins/claude/skills/art/references/prompts.md +4 -4
  64. package/plugins/claude/skills/art/references/ui.md +15 -15
  65. package/plugins/claude/skills/art/references/unity.md +14 -14
  66. package/plugins/claude/skills/audio/references/adaptive-music.md +4 -4
  67. package/plugins/claude/skills/audio/references/engine.md +2 -2
  68. package/plugins/claude/skills/audio/references/measure.md +1 -1
  69. package/plugins/claude/skills/audio/references/unity.md +20 -19
  70. package/plugins/claude/skills/game-feel/SKILL.md +4 -4
  71. package/plugins/claude/skills/game-feel/references/contact.md +6 -6
  72. package/plugins/claude/skills/game-feel/references/unity.md +18 -23
  73. package/plugins/claude/skills/game-logic/SKILL.md +3 -3
  74. package/plugins/claude/skills/game-logic/references/balance.md +2 -2
  75. package/plugins/claude/skills/game-logic/references/depth.md +2 -2
  76. package/plugins/claude/skills/game-logic/references/escalation.md +5 -5
  77. package/plugins/claude/skills/game-logic/references/probes.md +10 -10
  78. package/plugins/claude/skills/game-logic/references/unity.md +28 -28
  79. package/plugins/claude/skills/game-spine/SKILL.md +1 -1
  80. package/plugins/claude/skills/game-spine/references/performance.md +2 -2
  81. package/plugins/claude/skills/game-spine/references/replay.md +11 -11
  82. package/plugins/claude/skills/game-spine/references/room-api.md +1 -1
  83. package/plugins/claude/skills/game-spine/references/sdk.md +1 -1
  84. package/plugins/claude/skills/gdd/SKILL.md +2 -2
  85. package/plugins/claude/skills/gdd/references/as-built.md +2 -2
  86. package/plugins/claude/skills/gdd/references/design-measures.md +2 -2
  87. package/plugins/claude/skills/gdd/references/design-note.md +1 -1
  88. package/plugins/claude/skills/gdd/references/first-look.md +1 -1
  89. package/plugins/claude/skills/gdd/references/floors.md +2 -2
  90. package/plugins/claude/skills/gdd/references/gameplay-contract.md +1 -1
  91. package/plugins/claude/skills/gdd/references/genre-puzzle.md +4 -4
  92. package/plugins/claude/skills/gdd/references/genre-racing.md +2 -2
  93. package/plugins/claude/skills/gdd/references/genre-rpg.md +2 -2
  94. package/plugins/claude/skills/gdd/references/genre-shooter.md +2 -2
  95. package/plugins/claude/skills/gdd/references/genre-survival.md +2 -2
  96. package/plugins/claude/skills/gdd/references/invent-first.md +3 -3
  97. package/plugins/claude/skills/gdd/references/level-and-fun.md +11 -11
  98. package/plugins/claude/skills/gdd/references/pages.md +2 -5
  99. package/plugins/claude/skills/gdd/references/plan-at-size.md +5 -5
  100. package/plugins/claude/skills/gdd/references/production-tiers.md +11 -11
  101. package/plugins/claude/skills/gdd/references/sections.md +7 -7
  102. package/plugins/claude/skills/gdd/references/spec-folder.md +3 -3
  103. package/plugins/claude/skills/gdd/references/the-path.md +3 -4
  104. package/plugins/claude/skills/gdd/references/world-and-identity.md +4 -4
  105. package/plugins/claude/skills/gdd/references/worth.md +4 -4
  106. package/plugins/claude/skills/mobile-ui/SKILL.md +3 -3
  107. package/plugins/claude/skills/mobile-ui/references/hud-and-title.md +3 -3
  108. package/plugins/claude/skills/mobile-ui/references/phone-check.md +1 -1
  109. package/plugins/claude/skills/mobile-ui/references/recipes.md +1 -1
  110. package/plugins/claude/skills/mobile-ui/references/restyle-ui.md +11 -11
  111. package/plugins/claude/skills/mobile-ui/references/unity.md +23 -23
  112. package/plugins/claude/skills/publishing/references/compose.md +1 -1
  113. package/plugins/claude/skills/publishing/references/server-build.md +1 -1
  114. package/plugins/claude/skills/store/SKILL.md +3 -3
  115. package/plugins/claude/skills/store/references/app-store.md +1 -1
  116. package/plugins/claude/skills/store/references/google-play.md +2 -2
  117. package/plugins/claude/skills/store/references/ios-release.md +19 -20
  118. package/plugins/claude/skills/store/references/money.md +2 -2
  119. package/plugins/claude/skills/store/references/purchases-and-review.md +18 -18
  120. package/plugins/claude/skills/store/references/readiness-page.md +1 -1
  121. package/plugins/claude/skills/store/references/readiness.md +3 -3
  122. package/plugins/claude/skills/store/references/unity-store.md +9 -12
  123. package/plugins/claude/skills/unity-game/SKILL.md +28 -35
  124. package/plugins/claude/skills/unity-game/references/agent-ops.md +9 -9
  125. package/plugins/claude/skills/unity-game/references/fixes.md +21 -21
  126. package/plugins/claude/skills/unity-game/references/from-a-web-game.md +17 -17
  127. package/plugins/claude/skills/unity-game/references/handing-off.md +4 -4
  128. package/plugins/claude/skills/unity-game/references/performance.md +10 -14
  129. package/plugins/claude/skills/unity-game/references/probe.md +4 -4
  130. package/plugins/claude/skills/unity-game/references/shared-mac.md +1 -1
  131. package/plugins/claude/skills/unity-game/references/traps.md +13 -14
  132. package/plugins/claude/skills/verifying/references/bar.md +1 -1
  133. package/plugins/claude/skills/verifying/references/fidelity.md +11 -11
  134. package/plugins/claude/skills/verifying/references/mobile-qa.md +10 -10
  135. package/plugins/claude/skills/verifying/references/playtest.md +14 -14
  136. package/plugins/claude/skills/verifying/references/unity.md +11 -11
  137. package/plugins/claude/skills/world-and-story/SKILL.md +1 -1
  138. package/plugins/claude/skills/world-and-story/references/atmosphere.md +4 -4
  139. package/plugins/claude/skills/world-and-story/references/living-world.md +2 -2
  140. package/plugins/claude/skills/world-and-story/references/opening-and-chapters.md +1 -1
  141. package/plugins/claude/skills/world-and-story/references/story-at-size.md +2 -2
  142. package/plugins/claude/skills/world-and-story/references/voice.md +1 -1
  143. package/plugins/codex/AGENTS.md +1 -1
  144. package/plugins/codex/README.md +1 -1
  145. package/plugins/codex/hooks/brief.md +1 -1
  146. package/plugins/codex/hooks/guidance.json +1 -1
  147. package/plugins/codex/hooks/host.md +1 -1
  148. package/plugins/codex/hooks/vendor/pipeline/pipeline.mjs +6 -6
  149. package/plugins/codex/hooks/vendor/studio/pitch.mjs +1 -1
  150. package/plugins/codex/skills/fp-art-director/SKILL.md +2 -2
  151. package/plugins/codex/skills/fp-art-director/references/codex.md +1 -1
  152. package/plugins/codex/skills/fp-audio-director/references/codex.md +1 -1
  153. package/plugins/codex/skills/fp-critic/references/codex.md +1 -1
  154. package/plugins/codex/skills/fp-lane/references/codex.md +1 -1
  155. package/plugins/codex/skills/fp-level-designer/references/codex.md +1 -1
  156. package/plugins/codex/skills/fp-mobile-qa-seat/references/codex.md +1 -1
  157. package/plugins/codex/skills/fp-player/references/codex.md +1 -1
  158. package/plugins/codex/skills/fp-playtest/SKILL.md +2 -2
  159. package/plugins/codex/skills/fp-qa-lead/references/codex.md +1 -1
  160. package/plugins/codex/skills/fp-studio/SKILL.md +1 -1
  161. package/plugins/codex/skills/funpixel-3d/references/bake-off.md +3 -3
  162. package/plugins/codex/skills/funpixel-3d/references/characters.md +1 -1
  163. package/plugins/codex/skills/funpixel-3d/references/hero-route.md +5 -5
  164. package/plugins/codex/skills/funpixel-3d/references/level-spec.md +1 -1
  165. package/plugins/codex/skills/funpixel-3d/references/levels.md +3 -3
  166. package/plugins/codex/skills/funpixel-3d/references/light-and-places.md +3 -3
  167. package/plugins/codex/skills/funpixel-3d/references/painted-target.md +7 -7
  168. package/plugins/codex/skills/funpixel-3d/references/three-loading.md +4 -4
  169. package/plugins/codex/skills/funpixel-3d/references/unity.md +13 -13
  170. package/plugins/codex/skills/funpixel-art/references/animation.md +1 -1
  171. package/plugins/codex/skills/funpixel-art/references/cast.md +3 -3
  172. package/plugins/codex/skills/funpixel-art/references/effects.md +2 -2
  173. package/plugins/codex/skills/funpixel-art/references/frames.md +6 -6
  174. package/plugins/codex/skills/funpixel-art/references/judging-frames.md +8 -8
  175. package/plugins/codex/skills/funpixel-art/references/look.md +4 -4
  176. package/plugins/codex/skills/funpixel-art/references/pipeline.md +2 -2
  177. package/plugins/codex/skills/funpixel-art/references/prompts.md +4 -4
  178. package/plugins/codex/skills/funpixel-art/references/ui.md +15 -15
  179. package/plugins/codex/skills/funpixel-art/references/unity.md +14 -14
  180. package/plugins/codex/skills/funpixel-audio/references/adaptive-music.md +4 -4
  181. package/plugins/codex/skills/funpixel-audio/references/engine.md +2 -2
  182. package/plugins/codex/skills/funpixel-audio/references/measure.md +1 -1
  183. package/plugins/codex/skills/funpixel-audio/references/unity.md +20 -19
  184. package/plugins/codex/skills/funpixel-game-feel/SKILL.md +4 -4
  185. package/plugins/codex/skills/funpixel-game-feel/references/contact.md +6 -6
  186. package/plugins/codex/skills/funpixel-game-feel/references/unity.md +18 -23
  187. package/plugins/codex/skills/funpixel-game-logic/SKILL.md +3 -3
  188. package/plugins/codex/skills/funpixel-game-logic/references/balance.md +2 -2
  189. package/plugins/codex/skills/funpixel-game-logic/references/depth.md +2 -2
  190. package/plugins/codex/skills/funpixel-game-logic/references/escalation.md +5 -5
  191. package/plugins/codex/skills/funpixel-game-logic/references/probes.md +10 -10
  192. package/plugins/codex/skills/funpixel-game-logic/references/unity.md +28 -28
  193. package/plugins/codex/skills/funpixel-game-spine/SKILL.md +1 -1
  194. package/plugins/codex/skills/funpixel-game-spine/references/performance.md +2 -2
  195. package/plugins/codex/skills/funpixel-game-spine/references/replay.md +11 -11
  196. package/plugins/codex/skills/funpixel-game-spine/references/room-api.md +1 -1
  197. package/plugins/codex/skills/funpixel-game-spine/references/sdk.md +1 -1
  198. package/plugins/codex/skills/funpixel-gdd/SKILL.md +2 -2
  199. package/plugins/codex/skills/funpixel-gdd/references/as-built.md +2 -2
  200. package/plugins/codex/skills/funpixel-gdd/references/design-measures.md +2 -2
  201. package/plugins/codex/skills/funpixel-gdd/references/design-note.md +1 -1
  202. package/plugins/codex/skills/funpixel-gdd/references/first-look.md +1 -1
  203. package/plugins/codex/skills/funpixel-gdd/references/floors.md +2 -2
  204. package/plugins/codex/skills/funpixel-gdd/references/gameplay-contract.md +1 -1
  205. package/plugins/codex/skills/funpixel-gdd/references/genre-puzzle.md +4 -4
  206. package/plugins/codex/skills/funpixel-gdd/references/genre-racing.md +2 -2
  207. package/plugins/codex/skills/funpixel-gdd/references/genre-rpg.md +2 -2
  208. package/plugins/codex/skills/funpixel-gdd/references/genre-shooter.md +2 -2
  209. package/plugins/codex/skills/funpixel-gdd/references/genre-survival.md +2 -2
  210. package/plugins/codex/skills/funpixel-gdd/references/invent-first.md +3 -3
  211. package/plugins/codex/skills/funpixel-gdd/references/level-and-fun.md +11 -11
  212. package/plugins/codex/skills/funpixel-gdd/references/pages.md +2 -5
  213. package/plugins/codex/skills/funpixel-gdd/references/plan-at-size.md +5 -5
  214. package/plugins/codex/skills/funpixel-gdd/references/production-tiers.md +11 -11
  215. package/plugins/codex/skills/funpixel-gdd/references/sections.md +7 -7
  216. package/plugins/codex/skills/funpixel-gdd/references/spec-folder.md +3 -3
  217. package/plugins/codex/skills/funpixel-gdd/references/the-path.md +3 -4
  218. package/plugins/codex/skills/funpixel-gdd/references/world-and-identity.md +4 -4
  219. package/plugins/codex/skills/funpixel-gdd/references/worth.md +4 -4
  220. package/plugins/codex/skills/funpixel-mobile-ui/SKILL.md +3 -3
  221. package/plugins/codex/skills/funpixel-mobile-ui/references/hud-and-title.md +3 -3
  222. package/plugins/codex/skills/funpixel-mobile-ui/references/phone-check.md +1 -1
  223. package/plugins/codex/skills/funpixel-mobile-ui/references/recipes.md +1 -1
  224. package/plugins/codex/skills/funpixel-mobile-ui/references/restyle-ui.md +11 -11
  225. package/plugins/codex/skills/funpixel-mobile-ui/references/unity.md +23 -23
  226. package/plugins/codex/skills/funpixel-publish/references/compose.md +1 -1
  227. package/plugins/codex/skills/funpixel-publish/references/server-build.md +1 -1
  228. package/plugins/codex/skills/funpixel-store/SKILL.md +3 -3
  229. package/plugins/codex/skills/funpixel-store/references/app-store.md +1 -1
  230. package/plugins/codex/skills/funpixel-store/references/google-play.md +2 -2
  231. package/plugins/codex/skills/funpixel-store/references/ios-release.md +19 -20
  232. package/plugins/codex/skills/funpixel-store/references/money.md +2 -2
  233. package/plugins/codex/skills/funpixel-store/references/purchases-and-review.md +18 -18
  234. package/plugins/codex/skills/funpixel-store/references/readiness-page.md +1 -1
  235. package/plugins/codex/skills/funpixel-store/references/readiness.md +3 -3
  236. package/plugins/codex/skills/funpixel-store/references/unity-store.md +9 -12
  237. package/plugins/codex/skills/funpixel-unity-game/SKILL.md +28 -35
  238. package/plugins/codex/skills/funpixel-unity-game/references/agent-ops.md +9 -9
  239. package/plugins/codex/skills/funpixel-unity-game/references/fixes.md +21 -21
  240. package/plugins/codex/skills/funpixel-unity-game/references/from-a-web-game.md +17 -17
  241. package/plugins/codex/skills/funpixel-unity-game/references/handing-off.md +4 -4
  242. package/plugins/codex/skills/funpixel-unity-game/references/performance.md +10 -14
  243. package/plugins/codex/skills/funpixel-unity-game/references/probe.md +4 -4
  244. package/plugins/codex/skills/funpixel-unity-game/references/shared-mac.md +1 -1
  245. package/plugins/codex/skills/funpixel-unity-game/references/traps.md +13 -14
  246. package/plugins/codex/skills/funpixel-verify/references/bar.md +1 -1
  247. package/plugins/codex/skills/funpixel-verify/references/fidelity.md +11 -11
  248. package/plugins/codex/skills/funpixel-verify/references/mobile-qa.md +10 -10
  249. package/plugins/codex/skills/funpixel-verify/references/playtest.md +14 -14
  250. package/plugins/codex/skills/funpixel-verify/references/unity.md +11 -11
  251. package/plugins/codex/skills/funpixel-world-and-story/SKILL.md +1 -1
  252. package/plugins/codex/skills/funpixel-world-and-story/references/atmosphere.md +4 -4
  253. package/plugins/codex/skills/funpixel-world-and-story/references/living-world.md +2 -2
  254. package/plugins/codex/skills/funpixel-world-and-story/references/opening-and-chapters.md +1 -1
  255. package/plugins/codex/skills/funpixel-world-and-story/references/story-at-size.md +2 -2
  256. package/plugins/codex/skills/funpixel-world-and-story/references/voice.md +1 -1
  257. package/plugins/cursor/README.md +1 -1
  258. package/plugins/cursor/agents/art-director.md +2 -2
  259. package/plugins/cursor/commands/playtest.md +2 -2
  260. package/plugins/cursor/hooks/brief.md +1 -1
  261. package/plugins/cursor/hooks/guidance.json +1 -1
  262. package/plugins/cursor/hooks/vendor/pipeline/pipeline.mjs +6 -6
  263. package/plugins/cursor/hooks/vendor/studio/pitch.mjs +1 -1
  264. package/plugins/cursor/rules/funpixel-brief.mdc +1 -1
  265. package/plugins/cursor/skills/funpixel-3d/references/bake-off.md +3 -3
  266. package/plugins/cursor/skills/funpixel-3d/references/characters.md +1 -1
  267. package/plugins/cursor/skills/funpixel-3d/references/hero-route.md +5 -5
  268. package/plugins/cursor/skills/funpixel-3d/references/level-spec.md +1 -1
  269. package/plugins/cursor/skills/funpixel-3d/references/levels.md +3 -3
  270. package/plugins/cursor/skills/funpixel-3d/references/light-and-places.md +3 -3
  271. package/plugins/cursor/skills/funpixel-3d/references/painted-target.md +7 -7
  272. package/plugins/cursor/skills/funpixel-3d/references/three-loading.md +4 -4
  273. package/plugins/cursor/skills/funpixel-3d/references/unity.md +13 -13
  274. package/plugins/cursor/skills/funpixel-art/references/animation.md +1 -1
  275. package/plugins/cursor/skills/funpixel-art/references/cast.md +3 -3
  276. package/plugins/cursor/skills/funpixel-art/references/effects.md +2 -2
  277. package/plugins/cursor/skills/funpixel-art/references/frames.md +6 -6
  278. package/plugins/cursor/skills/funpixel-art/references/judging-frames.md +8 -8
  279. package/plugins/cursor/skills/funpixel-art/references/look.md +4 -4
  280. package/plugins/cursor/skills/funpixel-art/references/pipeline.md +2 -2
  281. package/plugins/cursor/skills/funpixel-art/references/prompts.md +4 -4
  282. package/plugins/cursor/skills/funpixel-art/references/ui.md +15 -15
  283. package/plugins/cursor/skills/funpixel-art/references/unity.md +14 -14
  284. package/plugins/cursor/skills/funpixel-audio/references/adaptive-music.md +4 -4
  285. package/plugins/cursor/skills/funpixel-audio/references/engine.md +2 -2
  286. package/plugins/cursor/skills/funpixel-audio/references/measure.md +1 -1
  287. package/plugins/cursor/skills/funpixel-audio/references/unity.md +20 -19
  288. package/plugins/cursor/skills/funpixel-game-feel/SKILL.md +4 -4
  289. package/plugins/cursor/skills/funpixel-game-feel/references/contact.md +6 -6
  290. package/plugins/cursor/skills/funpixel-game-feel/references/unity.md +18 -23
  291. package/plugins/cursor/skills/funpixel-game-logic/SKILL.md +3 -3
  292. package/plugins/cursor/skills/funpixel-game-logic/references/balance.md +2 -2
  293. package/plugins/cursor/skills/funpixel-game-logic/references/depth.md +2 -2
  294. package/plugins/cursor/skills/funpixel-game-logic/references/escalation.md +5 -5
  295. package/plugins/cursor/skills/funpixel-game-logic/references/probes.md +10 -10
  296. package/plugins/cursor/skills/funpixel-game-logic/references/unity.md +28 -28
  297. package/plugins/cursor/skills/funpixel-game-spine/SKILL.md +1 -1
  298. package/plugins/cursor/skills/funpixel-game-spine/references/performance.md +2 -2
  299. package/plugins/cursor/skills/funpixel-game-spine/references/replay.md +11 -11
  300. package/plugins/cursor/skills/funpixel-game-spine/references/room-api.md +1 -1
  301. package/plugins/cursor/skills/funpixel-game-spine/references/sdk.md +1 -1
  302. package/plugins/cursor/skills/funpixel-gdd/SKILL.md +2 -2
  303. package/plugins/cursor/skills/funpixel-gdd/references/as-built.md +2 -2
  304. package/plugins/cursor/skills/funpixel-gdd/references/design-measures.md +2 -2
  305. package/plugins/cursor/skills/funpixel-gdd/references/design-note.md +1 -1
  306. package/plugins/cursor/skills/funpixel-gdd/references/first-look.md +1 -1
  307. package/plugins/cursor/skills/funpixel-gdd/references/floors.md +2 -2
  308. package/plugins/cursor/skills/funpixel-gdd/references/gameplay-contract.md +1 -1
  309. package/plugins/cursor/skills/funpixel-gdd/references/genre-puzzle.md +4 -4
  310. package/plugins/cursor/skills/funpixel-gdd/references/genre-racing.md +2 -2
  311. package/plugins/cursor/skills/funpixel-gdd/references/genre-rpg.md +2 -2
  312. package/plugins/cursor/skills/funpixel-gdd/references/genre-shooter.md +2 -2
  313. package/plugins/cursor/skills/funpixel-gdd/references/genre-survival.md +2 -2
  314. package/plugins/cursor/skills/funpixel-gdd/references/invent-first.md +3 -3
  315. package/plugins/cursor/skills/funpixel-gdd/references/level-and-fun.md +11 -11
  316. package/plugins/cursor/skills/funpixel-gdd/references/pages.md +2 -5
  317. package/plugins/cursor/skills/funpixel-gdd/references/plan-at-size.md +5 -5
  318. package/plugins/cursor/skills/funpixel-gdd/references/production-tiers.md +11 -11
  319. package/plugins/cursor/skills/funpixel-gdd/references/sections.md +7 -7
  320. package/plugins/cursor/skills/funpixel-gdd/references/spec-folder.md +3 -3
  321. package/plugins/cursor/skills/funpixel-gdd/references/the-path.md +3 -4
  322. package/plugins/cursor/skills/funpixel-gdd/references/world-and-identity.md +4 -4
  323. package/plugins/cursor/skills/funpixel-gdd/references/worth.md +4 -4
  324. package/plugins/cursor/skills/funpixel-mobile-ui/SKILL.md +3 -3
  325. package/plugins/cursor/skills/funpixel-mobile-ui/references/hud-and-title.md +3 -3
  326. package/plugins/cursor/skills/funpixel-mobile-ui/references/phone-check.md +1 -1
  327. package/plugins/cursor/skills/funpixel-mobile-ui/references/recipes.md +1 -1
  328. package/plugins/cursor/skills/funpixel-mobile-ui/references/restyle-ui.md +11 -11
  329. package/plugins/cursor/skills/funpixel-mobile-ui/references/unity.md +23 -23
  330. package/plugins/cursor/skills/funpixel-publish/references/compose.md +1 -1
  331. package/plugins/cursor/skills/funpixel-publish/references/server-build.md +1 -1
  332. package/plugins/cursor/skills/funpixel-store/SKILL.md +3 -3
  333. package/plugins/cursor/skills/funpixel-store/references/app-store.md +1 -1
  334. package/plugins/cursor/skills/funpixel-store/references/google-play.md +2 -2
  335. package/plugins/cursor/skills/funpixel-store/references/ios-release.md +19 -20
  336. package/plugins/cursor/skills/funpixel-store/references/money.md +2 -2
  337. package/plugins/cursor/skills/funpixel-store/references/purchases-and-review.md +18 -18
  338. package/plugins/cursor/skills/funpixel-store/references/readiness-page.md +1 -1
  339. package/plugins/cursor/skills/funpixel-store/references/readiness.md +3 -3
  340. package/plugins/cursor/skills/funpixel-store/references/unity-store.md +9 -12
  341. package/plugins/cursor/skills/funpixel-unity-game/SKILL.md +28 -35
  342. package/plugins/cursor/skills/funpixel-unity-game/references/agent-ops.md +9 -9
  343. package/plugins/cursor/skills/funpixel-unity-game/references/fixes.md +21 -21
  344. package/plugins/cursor/skills/funpixel-unity-game/references/from-a-web-game.md +17 -17
  345. package/plugins/cursor/skills/funpixel-unity-game/references/handing-off.md +4 -4
  346. package/plugins/cursor/skills/funpixel-unity-game/references/performance.md +10 -14
  347. package/plugins/cursor/skills/funpixel-unity-game/references/probe.md +4 -4
  348. package/plugins/cursor/skills/funpixel-unity-game/references/shared-mac.md +1 -1
  349. package/plugins/cursor/skills/funpixel-unity-game/references/traps.md +13 -14
  350. package/plugins/cursor/skills/funpixel-verify/references/bar.md +1 -1
  351. package/plugins/cursor/skills/funpixel-verify/references/fidelity.md +11 -11
  352. package/plugins/cursor/skills/funpixel-verify/references/mobile-qa.md +10 -10
  353. package/plugins/cursor/skills/funpixel-verify/references/playtest.md +14 -14
  354. package/plugins/cursor/skills/funpixel-verify/references/unity.md +11 -11
  355. package/plugins/cursor/skills/funpixel-world-and-story/SKILL.md +1 -1
  356. package/plugins/cursor/skills/funpixel-world-and-story/references/atmosphere.md +4 -4
  357. package/plugins/cursor/skills/funpixel-world-and-story/references/living-world.md +2 -2
  358. package/plugins/cursor/skills/funpixel-world-and-story/references/opening-and-chapters.md +1 -1
  359. package/plugins/cursor/skills/funpixel-world-and-story/references/story-at-size.md +2 -2
  360. package/plugins/cursor/skills/funpixel-world-and-story/references/voice.md +1 -1
  361. package/plugins/kiro/AGENTS.md +1 -1
  362. package/plugins/kiro/README.md +1 -1
  363. package/plugins/kiro/hooks/brief.md +1 -1
  364. package/plugins/kiro/hooks/guidance.json +1 -1
  365. package/plugins/kiro/hooks/vendor/pipeline/pipeline.mjs +6 -6
  366. package/plugins/kiro/hooks/vendor/studio/pitch.mjs +1 -1
  367. package/plugins/kiro/skills/fp-art-director/SKILL.md +2 -2
  368. package/plugins/kiro/skills/fp-playtest/SKILL.md +2 -2
  369. package/plugins/kiro/skills/funpixel-3d/references/bake-off.md +3 -3
  370. package/plugins/kiro/skills/funpixel-3d/references/characters.md +1 -1
  371. package/plugins/kiro/skills/funpixel-3d/references/hero-route.md +5 -5
  372. package/plugins/kiro/skills/funpixel-3d/references/level-spec.md +1 -1
  373. package/plugins/kiro/skills/funpixel-3d/references/levels.md +3 -3
  374. package/plugins/kiro/skills/funpixel-3d/references/light-and-places.md +3 -3
  375. package/plugins/kiro/skills/funpixel-3d/references/painted-target.md +7 -7
  376. package/plugins/kiro/skills/funpixel-3d/references/three-loading.md +4 -4
  377. package/plugins/kiro/skills/funpixel-3d/references/unity.md +13 -13
  378. package/plugins/kiro/skills/funpixel-art/references/animation.md +1 -1
  379. package/plugins/kiro/skills/funpixel-art/references/cast.md +3 -3
  380. package/plugins/kiro/skills/funpixel-art/references/effects.md +2 -2
  381. package/plugins/kiro/skills/funpixel-art/references/frames.md +6 -6
  382. package/plugins/kiro/skills/funpixel-art/references/judging-frames.md +8 -8
  383. package/plugins/kiro/skills/funpixel-art/references/look.md +4 -4
  384. package/plugins/kiro/skills/funpixel-art/references/pipeline.md +2 -2
  385. package/plugins/kiro/skills/funpixel-art/references/prompts.md +4 -4
  386. package/plugins/kiro/skills/funpixel-art/references/ui.md +15 -15
  387. package/plugins/kiro/skills/funpixel-art/references/unity.md +14 -14
  388. package/plugins/kiro/skills/funpixel-audio/references/adaptive-music.md +4 -4
  389. package/plugins/kiro/skills/funpixel-audio/references/engine.md +2 -2
  390. package/plugins/kiro/skills/funpixel-audio/references/measure.md +1 -1
  391. package/plugins/kiro/skills/funpixel-audio/references/unity.md +20 -19
  392. package/plugins/kiro/skills/funpixel-game-feel/SKILL.md +4 -4
  393. package/plugins/kiro/skills/funpixel-game-feel/references/contact.md +6 -6
  394. package/plugins/kiro/skills/funpixel-game-feel/references/unity.md +18 -23
  395. package/plugins/kiro/skills/funpixel-game-logic/SKILL.md +3 -3
  396. package/plugins/kiro/skills/funpixel-game-logic/references/balance.md +2 -2
  397. package/plugins/kiro/skills/funpixel-game-logic/references/depth.md +2 -2
  398. package/plugins/kiro/skills/funpixel-game-logic/references/escalation.md +5 -5
  399. package/plugins/kiro/skills/funpixel-game-logic/references/probes.md +10 -10
  400. package/plugins/kiro/skills/funpixel-game-logic/references/unity.md +28 -28
  401. package/plugins/kiro/skills/funpixel-game-spine/SKILL.md +1 -1
  402. package/plugins/kiro/skills/funpixel-game-spine/references/performance.md +2 -2
  403. package/plugins/kiro/skills/funpixel-game-spine/references/replay.md +11 -11
  404. package/plugins/kiro/skills/funpixel-game-spine/references/room-api.md +1 -1
  405. package/plugins/kiro/skills/funpixel-game-spine/references/sdk.md +1 -1
  406. package/plugins/kiro/skills/funpixel-gdd/SKILL.md +2 -2
  407. package/plugins/kiro/skills/funpixel-gdd/references/as-built.md +2 -2
  408. package/plugins/kiro/skills/funpixel-gdd/references/design-measures.md +2 -2
  409. package/plugins/kiro/skills/funpixel-gdd/references/design-note.md +1 -1
  410. package/plugins/kiro/skills/funpixel-gdd/references/first-look.md +1 -1
  411. package/plugins/kiro/skills/funpixel-gdd/references/floors.md +2 -2
  412. package/plugins/kiro/skills/funpixel-gdd/references/gameplay-contract.md +1 -1
  413. package/plugins/kiro/skills/funpixel-gdd/references/genre-puzzle.md +4 -4
  414. package/plugins/kiro/skills/funpixel-gdd/references/genre-racing.md +2 -2
  415. package/plugins/kiro/skills/funpixel-gdd/references/genre-rpg.md +2 -2
  416. package/plugins/kiro/skills/funpixel-gdd/references/genre-shooter.md +2 -2
  417. package/plugins/kiro/skills/funpixel-gdd/references/genre-survival.md +2 -2
  418. package/plugins/kiro/skills/funpixel-gdd/references/invent-first.md +3 -3
  419. package/plugins/kiro/skills/funpixel-gdd/references/level-and-fun.md +11 -11
  420. package/plugins/kiro/skills/funpixel-gdd/references/pages.md +2 -5
  421. package/plugins/kiro/skills/funpixel-gdd/references/plan-at-size.md +5 -5
  422. package/plugins/kiro/skills/funpixel-gdd/references/production-tiers.md +11 -11
  423. package/plugins/kiro/skills/funpixel-gdd/references/sections.md +7 -7
  424. package/plugins/kiro/skills/funpixel-gdd/references/spec-folder.md +3 -3
  425. package/plugins/kiro/skills/funpixel-gdd/references/the-path.md +3 -4
  426. package/plugins/kiro/skills/funpixel-gdd/references/world-and-identity.md +4 -4
  427. package/plugins/kiro/skills/funpixel-gdd/references/worth.md +4 -4
  428. package/plugins/kiro/skills/funpixel-mobile-ui/SKILL.md +3 -3
  429. package/plugins/kiro/skills/funpixel-mobile-ui/references/hud-and-title.md +3 -3
  430. package/plugins/kiro/skills/funpixel-mobile-ui/references/phone-check.md +1 -1
  431. package/plugins/kiro/skills/funpixel-mobile-ui/references/recipes.md +1 -1
  432. package/plugins/kiro/skills/funpixel-mobile-ui/references/restyle-ui.md +11 -11
  433. package/plugins/kiro/skills/funpixel-mobile-ui/references/unity.md +23 -23
  434. package/plugins/kiro/skills/funpixel-publish/references/compose.md +1 -1
  435. package/plugins/kiro/skills/funpixel-publish/references/server-build.md +1 -1
  436. package/plugins/kiro/skills/funpixel-store/SKILL.md +3 -3
  437. package/plugins/kiro/skills/funpixel-store/references/app-store.md +1 -1
  438. package/plugins/kiro/skills/funpixel-store/references/google-play.md +2 -2
  439. package/plugins/kiro/skills/funpixel-store/references/ios-release.md +19 -20
  440. package/plugins/kiro/skills/funpixel-store/references/money.md +2 -2
  441. package/plugins/kiro/skills/funpixel-store/references/purchases-and-review.md +18 -18
  442. package/plugins/kiro/skills/funpixel-store/references/readiness-page.md +1 -1
  443. package/plugins/kiro/skills/funpixel-store/references/readiness.md +3 -3
  444. package/plugins/kiro/skills/funpixel-store/references/unity-store.md +9 -12
  445. package/plugins/kiro/skills/funpixel-unity-game/SKILL.md +28 -35
  446. package/plugins/kiro/skills/funpixel-unity-game/references/agent-ops.md +9 -9
  447. package/plugins/kiro/skills/funpixel-unity-game/references/fixes.md +21 -21
  448. package/plugins/kiro/skills/funpixel-unity-game/references/from-a-web-game.md +17 -17
  449. package/plugins/kiro/skills/funpixel-unity-game/references/handing-off.md +4 -4
  450. package/plugins/kiro/skills/funpixel-unity-game/references/performance.md +10 -14
  451. package/plugins/kiro/skills/funpixel-unity-game/references/probe.md +4 -4
  452. package/plugins/kiro/skills/funpixel-unity-game/references/shared-mac.md +1 -1
  453. package/plugins/kiro/skills/funpixel-unity-game/references/traps.md +13 -14
  454. package/plugins/kiro/skills/funpixel-verify/references/bar.md +1 -1
  455. package/plugins/kiro/skills/funpixel-verify/references/fidelity.md +11 -11
  456. package/plugins/kiro/skills/funpixel-verify/references/mobile-qa.md +10 -10
  457. package/plugins/kiro/skills/funpixel-verify/references/playtest.md +14 -14
  458. package/plugins/kiro/skills/funpixel-verify/references/unity.md +11 -11
  459. package/plugins/kiro/skills/funpixel-world-and-story/SKILL.md +1 -1
  460. package/plugins/kiro/skills/funpixel-world-and-story/references/atmosphere.md +4 -4
  461. package/plugins/kiro/skills/funpixel-world-and-story/references/living-world.md +2 -2
  462. package/plugins/kiro/skills/funpixel-world-and-story/references/opening-and-chapters.md +1 -1
  463. package/plugins/kiro/skills/funpixel-world-and-story/references/story-at-size.md +2 -2
  464. package/plugins/kiro/skills/funpixel-world-and-story/references/voice.md +1 -1
  465. package/plugins/robin/README.md +1 -1
  466. package/plugins/robin/claude/README.md +2 -3
  467. package/plugins/robin/claude/agents/art-director.md +2 -2
  468. package/plugins/robin/claude/commands/playtest.md +2 -2
  469. package/plugins/robin/claude/hooks/brief.md +1 -1
  470. package/plugins/robin/claude/hooks/guidance.json +1 -1
  471. package/plugins/robin/claude/hooks/vendor/pipeline/pipeline.mjs +6 -6
  472. package/plugins/robin/claude/hooks/vendor/studio/pitch.mjs +1 -1
  473. package/plugins/robin/claude/skills/3d/references/bake-off.md +3 -3
  474. package/plugins/robin/claude/skills/3d/references/characters.md +1 -1
  475. package/plugins/robin/claude/skills/3d/references/hero-route.md +5 -5
  476. package/plugins/robin/claude/skills/3d/references/level-spec.md +1 -1
  477. package/plugins/robin/claude/skills/3d/references/levels.md +3 -3
  478. package/plugins/robin/claude/skills/3d/references/light-and-places.md +3 -3
  479. package/plugins/robin/claude/skills/3d/references/painted-target.md +7 -7
  480. package/plugins/robin/claude/skills/3d/references/three-loading.md +4 -4
  481. package/plugins/robin/claude/skills/3d/references/unity.md +13 -13
  482. package/plugins/robin/claude/skills/art/references/animation.md +1 -1
  483. package/plugins/robin/claude/skills/art/references/cast.md +3 -3
  484. package/plugins/robin/claude/skills/art/references/effects.md +2 -2
  485. package/plugins/robin/claude/skills/art/references/frames.md +6 -6
  486. package/plugins/robin/claude/skills/art/references/judging-frames.md +8 -8
  487. package/plugins/robin/claude/skills/art/references/look.md +4 -4
  488. package/plugins/robin/claude/skills/art/references/pipeline.md +2 -2
  489. package/plugins/robin/claude/skills/art/references/prompts.md +4 -4
  490. package/plugins/robin/claude/skills/art/references/ui.md +15 -15
  491. package/plugins/robin/claude/skills/art/references/unity.md +14 -14
  492. package/plugins/robin/claude/skills/audio/references/adaptive-music.md +4 -4
  493. package/plugins/robin/claude/skills/audio/references/engine.md +2 -2
  494. package/plugins/robin/claude/skills/audio/references/measure.md +1 -1
  495. package/plugins/robin/claude/skills/audio/references/unity.md +20 -19
  496. package/plugins/robin/claude/skills/game-feel/SKILL.md +4 -4
  497. package/plugins/robin/claude/skills/game-feel/references/contact.md +6 -6
  498. package/plugins/robin/claude/skills/game-feel/references/unity.md +18 -23
  499. package/plugins/robin/claude/skills/game-logic/SKILL.md +3 -3
  500. package/plugins/robin/claude/skills/game-logic/references/balance.md +2 -2
  501. package/plugins/robin/claude/skills/game-logic/references/depth.md +2 -2
  502. package/plugins/robin/claude/skills/game-logic/references/escalation.md +5 -5
  503. package/plugins/robin/claude/skills/game-logic/references/probes.md +10 -10
  504. package/plugins/robin/claude/skills/game-logic/references/unity.md +28 -28
  505. package/plugins/robin/claude/skills/game-spine/SKILL.md +1 -1
  506. package/plugins/robin/claude/skills/game-spine/references/performance.md +2 -2
  507. package/plugins/robin/claude/skills/game-spine/references/replay.md +11 -11
  508. package/plugins/robin/claude/skills/game-spine/references/room-api.md +1 -1
  509. package/plugins/robin/claude/skills/game-spine/references/sdk.md +1 -1
  510. package/plugins/robin/claude/skills/gdd/SKILL.md +2 -2
  511. package/plugins/robin/claude/skills/gdd/references/as-built.md +2 -2
  512. package/plugins/robin/claude/skills/gdd/references/design-measures.md +2 -2
  513. package/plugins/robin/claude/skills/gdd/references/design-note.md +1 -1
  514. package/plugins/robin/claude/skills/gdd/references/first-look.md +1 -1
  515. package/plugins/robin/claude/skills/gdd/references/floors.md +2 -2
  516. package/plugins/robin/claude/skills/gdd/references/gameplay-contract.md +1 -1
  517. package/plugins/robin/claude/skills/gdd/references/genre-puzzle.md +4 -4
  518. package/plugins/robin/claude/skills/gdd/references/genre-racing.md +2 -2
  519. package/plugins/robin/claude/skills/gdd/references/genre-rpg.md +2 -2
  520. package/plugins/robin/claude/skills/gdd/references/genre-shooter.md +2 -2
  521. package/plugins/robin/claude/skills/gdd/references/genre-survival.md +2 -2
  522. package/plugins/robin/claude/skills/gdd/references/invent-first.md +3 -3
  523. package/plugins/robin/claude/skills/gdd/references/level-and-fun.md +11 -11
  524. package/plugins/robin/claude/skills/gdd/references/pages.md +2 -5
  525. package/plugins/robin/claude/skills/gdd/references/plan-at-size.md +5 -5
  526. package/plugins/robin/claude/skills/gdd/references/production-tiers.md +11 -11
  527. package/plugins/robin/claude/skills/gdd/references/sections.md +7 -7
  528. package/plugins/robin/claude/skills/gdd/references/spec-folder.md +3 -3
  529. package/plugins/robin/claude/skills/gdd/references/the-path.md +3 -4
  530. package/plugins/robin/claude/skills/gdd/references/world-and-identity.md +4 -4
  531. package/plugins/robin/claude/skills/gdd/references/worth.md +4 -4
  532. package/plugins/robin/claude/skills/mobile-ui/SKILL.md +3 -3
  533. package/plugins/robin/claude/skills/mobile-ui/references/hud-and-title.md +3 -3
  534. package/plugins/robin/claude/skills/mobile-ui/references/phone-check.md +1 -1
  535. package/plugins/robin/claude/skills/mobile-ui/references/recipes.md +1 -1
  536. package/plugins/robin/claude/skills/mobile-ui/references/restyle-ui.md +11 -11
  537. package/plugins/robin/claude/skills/mobile-ui/references/unity.md +23 -23
  538. package/plugins/robin/claude/skills/publishing/references/compose.md +1 -1
  539. package/plugins/robin/claude/skills/publishing/references/server-build.md +1 -1
  540. package/plugins/robin/claude/skills/store/SKILL.md +3 -3
  541. package/plugins/robin/claude/skills/store/references/app-store.md +1 -1
  542. package/plugins/robin/claude/skills/store/references/google-play.md +2 -2
  543. package/plugins/robin/claude/skills/store/references/ios-release.md +19 -20
  544. package/plugins/robin/claude/skills/store/references/money.md +2 -2
  545. package/plugins/robin/claude/skills/store/references/purchases-and-review.md +18 -18
  546. package/plugins/robin/claude/skills/store/references/readiness-page.md +1 -1
  547. package/plugins/robin/claude/skills/store/references/readiness.md +3 -3
  548. package/plugins/robin/claude/skills/store/references/unity-store.md +9 -12
  549. package/plugins/robin/claude/skills/unity-game/SKILL.md +28 -35
  550. package/plugins/robin/claude/skills/unity-game/references/agent-ops.md +9 -9
  551. package/plugins/robin/claude/skills/unity-game/references/fixes.md +21 -21
  552. package/plugins/robin/claude/skills/unity-game/references/from-a-web-game.md +17 -17
  553. package/plugins/robin/claude/skills/unity-game/references/handing-off.md +4 -4
  554. package/plugins/robin/claude/skills/unity-game/references/performance.md +10 -14
  555. package/plugins/robin/claude/skills/unity-game/references/probe.md +4 -4
  556. package/plugins/robin/claude/skills/unity-game/references/shared-mac.md +1 -1
  557. package/plugins/robin/claude/skills/unity-game/references/traps.md +13 -14
  558. package/plugins/robin/claude/skills/verifying/references/bar.md +1 -1
  559. package/plugins/robin/claude/skills/verifying/references/fidelity.md +11 -11
  560. package/plugins/robin/claude/skills/verifying/references/mobile-qa.md +10 -10
  561. package/plugins/robin/claude/skills/verifying/references/playtest.md +14 -14
  562. package/plugins/robin/claude/skills/verifying/references/unity.md +11 -11
  563. package/plugins/robin/claude/skills/world-and-story/SKILL.md +1 -1
  564. package/plugins/robin/claude/skills/world-and-story/references/atmosphere.md +4 -4
  565. package/plugins/robin/claude/skills/world-and-story/references/living-world.md +2 -2
  566. package/plugins/robin/claude/skills/world-and-story/references/opening-and-chapters.md +1 -1
  567. package/plugins/robin/claude/skills/world-and-story/references/story-at-size.md +2 -2
  568. package/plugins/robin/claude/skills/world-and-story/references/voice.md +1 -1
  569. package/plugins/robin/skills/fp-playtest/SKILL.md +2 -2
  570. package/plugins/robin/skills/funpixel-3d/references/bake-off.md +3 -3
  571. package/plugins/robin/skills/funpixel-3d/references/characters.md +1 -1
  572. package/plugins/robin/skills/funpixel-3d/references/hero-route.md +5 -5
  573. package/plugins/robin/skills/funpixel-3d/references/level-spec.md +1 -1
  574. package/plugins/robin/skills/funpixel-3d/references/levels.md +3 -3
  575. package/plugins/robin/skills/funpixel-3d/references/light-and-places.md +3 -3
  576. package/plugins/robin/skills/funpixel-3d/references/painted-target.md +7 -7
  577. package/plugins/robin/skills/funpixel-3d/references/three-loading.md +4 -4
  578. package/plugins/robin/skills/funpixel-3d/references/unity.md +13 -13
  579. package/plugins/robin/skills/funpixel-art/references/animation.md +1 -1
  580. package/plugins/robin/skills/funpixel-art/references/cast.md +3 -3
  581. package/plugins/robin/skills/funpixel-art/references/effects.md +2 -2
  582. package/plugins/robin/skills/funpixel-art/references/frames.md +6 -6
  583. package/plugins/robin/skills/funpixel-art/references/judging-frames.md +8 -8
  584. package/plugins/robin/skills/funpixel-art/references/look.md +4 -4
  585. package/plugins/robin/skills/funpixel-art/references/pipeline.md +2 -2
  586. package/plugins/robin/skills/funpixel-art/references/prompts.md +4 -4
  587. package/plugins/robin/skills/funpixel-art/references/ui.md +15 -15
  588. package/plugins/robin/skills/funpixel-art/references/unity.md +14 -14
  589. package/plugins/robin/skills/funpixel-audio/references/adaptive-music.md +4 -4
  590. package/plugins/robin/skills/funpixel-audio/references/engine.md +2 -2
  591. package/plugins/robin/skills/funpixel-audio/references/measure.md +1 -1
  592. package/plugins/robin/skills/funpixel-audio/references/unity.md +20 -19
  593. package/plugins/robin/skills/funpixel-brief/SKILL.md +1 -1
  594. package/plugins/robin/skills/funpixel-game-feel/SKILL.md +4 -4
  595. package/plugins/robin/skills/funpixel-game-feel/references/contact.md +6 -6
  596. package/plugins/robin/skills/funpixel-game-feel/references/unity.md +18 -23
  597. package/plugins/robin/skills/funpixel-game-logic/SKILL.md +3 -3
  598. package/plugins/robin/skills/funpixel-game-logic/references/balance.md +2 -2
  599. package/plugins/robin/skills/funpixel-game-logic/references/depth.md +2 -2
  600. package/plugins/robin/skills/funpixel-game-logic/references/escalation.md +5 -5
  601. package/plugins/robin/skills/funpixel-game-logic/references/probes.md +10 -10
  602. package/plugins/robin/skills/funpixel-game-logic/references/unity.md +28 -28
  603. package/plugins/robin/skills/funpixel-game-spine/SKILL.md +1 -1
  604. package/plugins/robin/skills/funpixel-game-spine/references/performance.md +2 -2
  605. package/plugins/robin/skills/funpixel-game-spine/references/replay.md +11 -11
  606. package/plugins/robin/skills/funpixel-game-spine/references/room-api.md +1 -1
  607. package/plugins/robin/skills/funpixel-game-spine/references/sdk.md +1 -1
  608. package/plugins/robin/skills/funpixel-gdd/SKILL.md +2 -2
  609. package/plugins/robin/skills/funpixel-gdd/references/as-built.md +2 -2
  610. package/plugins/robin/skills/funpixel-gdd/references/design-measures.md +2 -2
  611. package/plugins/robin/skills/funpixel-gdd/references/design-note.md +1 -1
  612. package/plugins/robin/skills/funpixel-gdd/references/first-look.md +1 -1
  613. package/plugins/robin/skills/funpixel-gdd/references/floors.md +2 -2
  614. package/plugins/robin/skills/funpixel-gdd/references/gameplay-contract.md +1 -1
  615. package/plugins/robin/skills/funpixel-gdd/references/genre-puzzle.md +4 -4
  616. package/plugins/robin/skills/funpixel-gdd/references/genre-racing.md +2 -2
  617. package/plugins/robin/skills/funpixel-gdd/references/genre-rpg.md +2 -2
  618. package/plugins/robin/skills/funpixel-gdd/references/genre-shooter.md +2 -2
  619. package/plugins/robin/skills/funpixel-gdd/references/genre-survival.md +2 -2
  620. package/plugins/robin/skills/funpixel-gdd/references/invent-first.md +3 -3
  621. package/plugins/robin/skills/funpixel-gdd/references/level-and-fun.md +11 -11
  622. package/plugins/robin/skills/funpixel-gdd/references/pages.md +2 -5
  623. package/plugins/robin/skills/funpixel-gdd/references/plan-at-size.md +5 -5
  624. package/plugins/robin/skills/funpixel-gdd/references/production-tiers.md +11 -11
  625. package/plugins/robin/skills/funpixel-gdd/references/sections.md +7 -7
  626. package/plugins/robin/skills/funpixel-gdd/references/spec-folder.md +3 -3
  627. package/plugins/robin/skills/funpixel-gdd/references/the-path.md +3 -4
  628. package/plugins/robin/skills/funpixel-gdd/references/world-and-identity.md +4 -4
  629. package/plugins/robin/skills/funpixel-gdd/references/worth.md +4 -4
  630. package/plugins/robin/skills/funpixel-mobile-ui/SKILL.md +3 -3
  631. package/plugins/robin/skills/funpixel-mobile-ui/references/hud-and-title.md +3 -3
  632. package/plugins/robin/skills/funpixel-mobile-ui/references/phone-check.md +1 -1
  633. package/plugins/robin/skills/funpixel-mobile-ui/references/recipes.md +1 -1
  634. package/plugins/robin/skills/funpixel-mobile-ui/references/restyle-ui.md +11 -11
  635. package/plugins/robin/skills/funpixel-mobile-ui/references/unity.md +23 -23
  636. package/plugins/robin/skills/funpixel-publish/references/compose.md +1 -1
  637. package/plugins/robin/skills/funpixel-publish/references/server-build.md +1 -1
  638. package/plugins/robin/skills/funpixel-store/SKILL.md +3 -3
  639. package/plugins/robin/skills/funpixel-store/references/app-store.md +1 -1
  640. package/plugins/robin/skills/funpixel-store/references/google-play.md +2 -2
  641. package/plugins/robin/skills/funpixel-store/references/ios-release.md +19 -20
  642. package/plugins/robin/skills/funpixel-store/references/money.md +2 -2
  643. package/plugins/robin/skills/funpixel-store/references/purchases-and-review.md +18 -18
  644. package/plugins/robin/skills/funpixel-store/references/readiness-page.md +1 -1
  645. package/plugins/robin/skills/funpixel-store/references/readiness.md +3 -3
  646. package/plugins/robin/skills/funpixel-store/references/unity-store.md +9 -12
  647. package/plugins/robin/skills/funpixel-unity-game/SKILL.md +28 -35
  648. package/plugins/robin/skills/funpixel-unity-game/references/agent-ops.md +9 -9
  649. package/plugins/robin/skills/funpixel-unity-game/references/fixes.md +21 -21
  650. package/plugins/robin/skills/funpixel-unity-game/references/from-a-web-game.md +17 -17
  651. package/plugins/robin/skills/funpixel-unity-game/references/handing-off.md +4 -4
  652. package/plugins/robin/skills/funpixel-unity-game/references/performance.md +10 -14
  653. package/plugins/robin/skills/funpixel-unity-game/references/probe.md +4 -4
  654. package/plugins/robin/skills/funpixel-unity-game/references/shared-mac.md +1 -1
  655. package/plugins/robin/skills/funpixel-unity-game/references/traps.md +13 -14
  656. package/plugins/robin/skills/funpixel-verify/references/bar.md +1 -1
  657. package/plugins/robin/skills/funpixel-verify/references/fidelity.md +11 -11
  658. package/plugins/robin/skills/funpixel-verify/references/mobile-qa.md +10 -10
  659. package/plugins/robin/skills/funpixel-verify/references/playtest.md +14 -14
  660. package/plugins/robin/skills/funpixel-verify/references/unity.md +11 -11
  661. package/plugins/robin/skills/funpixel-world-and-story/SKILL.md +1 -1
  662. package/plugins/robin/skills/funpixel-world-and-story/references/atmosphere.md +4 -4
  663. package/plugins/robin/skills/funpixel-world-and-story/references/living-world.md +2 -2
  664. package/plugins/robin/skills/funpixel-world-and-story/references/opening-and-chapters.md +1 -1
  665. package/plugins/robin/skills/funpixel-world-and-story/references/story-at-size.md +2 -2
  666. package/plugins/robin/skills/funpixel-world-and-story/references/voice.md +1 -1
  667. package/templates/common/.agents/skills/funpixel-3d/references/bake-off.md +3 -3
  668. package/templates/common/.agents/skills/funpixel-3d/references/characters.md +1 -1
  669. package/templates/common/.agents/skills/funpixel-3d/references/hero-route.md +5 -5
  670. package/templates/common/.agents/skills/funpixel-3d/references/level-spec.md +1 -1
  671. package/templates/common/.agents/skills/funpixel-3d/references/levels.md +3 -3
  672. package/templates/common/.agents/skills/funpixel-3d/references/light-and-places.md +3 -3
  673. package/templates/common/.agents/skills/funpixel-3d/references/painted-target.md +7 -7
  674. package/templates/common/.agents/skills/funpixel-3d/references/three-loading.md +4 -4
  675. package/templates/common/.agents/skills/funpixel-3d/references/unity.md +13 -13
  676. package/templates/common/.agents/skills/funpixel-art/references/animation.md +1 -1
  677. package/templates/common/.agents/skills/funpixel-art/references/cast.md +3 -3
  678. package/templates/common/.agents/skills/funpixel-art/references/effects.md +2 -2
  679. package/templates/common/.agents/skills/funpixel-art/references/frames.md +6 -6
  680. package/templates/common/.agents/skills/funpixel-art/references/judging-frames.md +8 -8
  681. package/templates/common/.agents/skills/funpixel-art/references/look.md +4 -4
  682. package/templates/common/.agents/skills/funpixel-art/references/pipeline.md +2 -2
  683. package/templates/common/.agents/skills/funpixel-art/references/prompts.md +4 -4
  684. package/templates/common/.agents/skills/funpixel-art/references/ui.md +15 -15
  685. package/templates/common/.agents/skills/funpixel-art/references/unity.md +14 -14
  686. package/templates/common/.agents/skills/funpixel-audio/references/adaptive-music.md +4 -4
  687. package/templates/common/.agents/skills/funpixel-audio/references/engine.md +2 -2
  688. package/templates/common/.agents/skills/funpixel-audio/references/measure.md +1 -1
  689. package/templates/common/.agents/skills/funpixel-audio/references/unity.md +20 -19
  690. package/templates/common/.agents/skills/funpixel-game-feel/SKILL.md +4 -4
  691. package/templates/common/.agents/skills/funpixel-game-feel/references/contact.md +6 -6
  692. package/templates/common/.agents/skills/funpixel-game-feel/references/unity.md +18 -23
  693. package/templates/common/.agents/skills/funpixel-game-logic/SKILL.md +3 -3
  694. package/templates/common/.agents/skills/funpixel-game-logic/references/balance.md +2 -2
  695. package/templates/common/.agents/skills/funpixel-game-logic/references/depth.md +2 -2
  696. package/templates/common/.agents/skills/funpixel-game-logic/references/escalation.md +5 -5
  697. package/templates/common/.agents/skills/funpixel-game-logic/references/probes.md +10 -10
  698. package/templates/common/.agents/skills/funpixel-game-logic/references/unity.md +28 -28
  699. package/templates/common/.agents/skills/funpixel-game-spine/SKILL.md +1 -1
  700. package/templates/common/.agents/skills/funpixel-game-spine/references/performance.md +2 -2
  701. package/templates/common/.agents/skills/funpixel-game-spine/references/replay.md +11 -11
  702. package/templates/common/.agents/skills/funpixel-game-spine/references/room-api.md +1 -1
  703. package/templates/common/.agents/skills/funpixel-game-spine/references/sdk.md +1 -1
  704. package/templates/common/.agents/skills/funpixel-gdd/SKILL.md +2 -2
  705. package/templates/common/.agents/skills/funpixel-gdd/references/as-built.md +2 -2
  706. package/templates/common/.agents/skills/funpixel-gdd/references/design-measures.md +2 -2
  707. package/templates/common/.agents/skills/funpixel-gdd/references/design-note.md +1 -1
  708. package/templates/common/.agents/skills/funpixel-gdd/references/first-look.md +1 -1
  709. package/templates/common/.agents/skills/funpixel-gdd/references/floors.md +2 -2
  710. package/templates/common/.agents/skills/funpixel-gdd/references/gameplay-contract.md +1 -1
  711. package/templates/common/.agents/skills/funpixel-gdd/references/genre-puzzle.md +4 -4
  712. package/templates/common/.agents/skills/funpixel-gdd/references/genre-racing.md +2 -2
  713. package/templates/common/.agents/skills/funpixel-gdd/references/genre-rpg.md +2 -2
  714. package/templates/common/.agents/skills/funpixel-gdd/references/genre-shooter.md +2 -2
  715. package/templates/common/.agents/skills/funpixel-gdd/references/genre-survival.md +2 -2
  716. package/templates/common/.agents/skills/funpixel-gdd/references/invent-first.md +3 -3
  717. package/templates/common/.agents/skills/funpixel-gdd/references/level-and-fun.md +11 -11
  718. package/templates/common/.agents/skills/funpixel-gdd/references/pages.md +2 -5
  719. package/templates/common/.agents/skills/funpixel-gdd/references/plan-at-size.md +5 -5
  720. package/templates/common/.agents/skills/funpixel-gdd/references/production-tiers.md +11 -11
  721. package/templates/common/.agents/skills/funpixel-gdd/references/sections.md +7 -7
  722. package/templates/common/.agents/skills/funpixel-gdd/references/spec-folder.md +3 -3
  723. package/templates/common/.agents/skills/funpixel-gdd/references/the-path.md +3 -4
  724. package/templates/common/.agents/skills/funpixel-gdd/references/world-and-identity.md +4 -4
  725. package/templates/common/.agents/skills/funpixel-gdd/references/worth.md +4 -4
  726. package/templates/common/.agents/skills/funpixel-mobile-ui/SKILL.md +3 -3
  727. package/templates/common/.agents/skills/funpixel-mobile-ui/references/hud-and-title.md +3 -3
  728. package/templates/common/.agents/skills/funpixel-mobile-ui/references/phone-check.md +1 -1
  729. package/templates/common/.agents/skills/funpixel-mobile-ui/references/recipes.md +1 -1
  730. package/templates/common/.agents/skills/funpixel-mobile-ui/references/restyle-ui.md +11 -11
  731. package/templates/common/.agents/skills/funpixel-mobile-ui/references/unity.md +23 -23
  732. package/templates/common/.agents/skills/funpixel-publish/references/compose.md +1 -1
  733. package/templates/common/.agents/skills/funpixel-publish/references/server-build.md +1 -1
  734. package/templates/common/.agents/skills/funpixel-store/SKILL.md +3 -3
  735. package/templates/common/.agents/skills/funpixel-store/references/app-store.md +1 -1
  736. package/templates/common/.agents/skills/funpixel-store/references/google-play.md +2 -2
  737. package/templates/common/.agents/skills/funpixel-store/references/ios-release.md +19 -20
  738. package/templates/common/.agents/skills/funpixel-store/references/money.md +2 -2
  739. package/templates/common/.agents/skills/funpixel-store/references/purchases-and-review.md +18 -18
  740. package/templates/common/.agents/skills/funpixel-store/references/readiness-page.md +1 -1
  741. package/templates/common/.agents/skills/funpixel-store/references/readiness.md +3 -3
  742. package/templates/common/.agents/skills/funpixel-store/references/unity-store.md +9 -12
  743. package/templates/common/.agents/skills/funpixel-unity-game/SKILL.md +28 -35
  744. package/templates/common/.agents/skills/funpixel-unity-game/references/agent-ops.md +9 -9
  745. package/templates/common/.agents/skills/funpixel-unity-game/references/fixes.md +21 -21
  746. package/templates/common/.agents/skills/funpixel-unity-game/references/from-a-web-game.md +17 -17
  747. package/templates/common/.agents/skills/funpixel-unity-game/references/handing-off.md +4 -4
  748. package/templates/common/.agents/skills/funpixel-unity-game/references/performance.md +10 -14
  749. package/templates/common/.agents/skills/funpixel-unity-game/references/probe.md +4 -4
  750. package/templates/common/.agents/skills/funpixel-unity-game/references/shared-mac.md +1 -1
  751. package/templates/common/.agents/skills/funpixel-unity-game/references/traps.md +13 -14
  752. package/templates/common/.agents/skills/funpixel-verify/references/bar.md +1 -1
  753. package/templates/common/.agents/skills/funpixel-verify/references/fidelity.md +11 -11
  754. package/templates/common/.agents/skills/funpixel-verify/references/mobile-qa.md +10 -10
  755. package/templates/common/.agents/skills/funpixel-verify/references/playtest.md +14 -14
  756. package/templates/common/.agents/skills/funpixel-verify/references/unity.md +11 -11
  757. package/templates/common/.agents/skills/funpixel-world-and-story/SKILL.md +1 -1
  758. package/templates/common/.agents/skills/funpixel-world-and-story/references/atmosphere.md +4 -4
  759. package/templates/common/.agents/skills/funpixel-world-and-story/references/living-world.md +2 -2
  760. package/templates/common/.agents/skills/funpixel-world-and-story/references/opening-and-chapters.md +1 -1
  761. package/templates/common/.agents/skills/funpixel-world-and-story/references/story-at-size.md +2 -2
  762. package/templates/common/.agents/skills/funpixel-world-and-story/references/voice.md +1 -1
  763. package/templates/common/AGENTS.md +1 -1
  764. package/templates/common/src/platform.ts +1 -1
  765. package/templates/common/src/probe-human.ts +3 -3
  766. package/templates/common/src/save.ts +1 -1
  767. package/templates/common/test/platform.test.ts +1 -1
  768. package/templates/three-world/src/budget.ts +1 -1
  769. package/templates/three-world/src/cutouts.ts +2 -2
  770. package/templates/three-world/src/game.ts +1 -1
  771. package/templates/three-world/src/models.ts +1 -1
  772. package/unity/com.funpixel.probe/Runtime/Player/Args.cs +1 -1
  773. package/unity/com.funpixel.probe/Runtime/Player/Bridge.cs +2 -2
  774. package/unity/com.funpixel.probe/Runtime/Player/Capture.cs +2 -2
  775. package/unity/com.funpixel.probe/Runtime/Player/Inject.cs +1 -2
  776. package/unity/com.funpixel.probe/Runtime/Player/Probe.cs +2 -2
  777. package/unity/com.funpixel.probe/Runtime/Player/UiTargets.cs +1 -1
  778. package/plugins/claude/skills/unity-game/references/studio-packages.md +0 -127
  779. package/plugins/codex/skills/funpixel-unity-game/references/studio-packages.md +0 -127
  780. package/plugins/cursor/skills/funpixel-unity-game/references/studio-packages.md +0 -127
  781. package/plugins/kiro/skills/funpixel-unity-game/references/studio-packages.md +0 -127
  782. package/plugins/robin/claude/skills/unity-game/references/studio-packages.md +0 -127
  783. package/plugins/robin/skills/funpixel-unity-game/references/studio-packages.md +0 -127
  784. package/templates/common/.agents/skills/funpixel-unity-game/references/studio-packages.md +0 -127
@@ -2,9 +2,9 @@
2
2
 
3
3
  Two options for a game whose rules already step from input (skill `fp:game-logic`: seeded,
4
4
  engine-free, a fixed step): keep a run as data and play it back frame by frame, and prove a
5
- refactor changed nothing a player sees. Both are lessons from one game, Held Note (a third-person
5
+ refactor changed nothing a player sees. Both are lessons from one game (a third-person
6
6
  3D horror chapter in three.js, September 2026, hand-iterated over many agent sessions), gathered by
7
- the Held Note lane. No first-try action game has tested them yet; read them as options with the
7
+ its lane. No first-try action game has tested them yet; read them as options with the
8
8
  reasons they earned, not as a procedure.
9
9
 
10
10
  ## What the kit already does
@@ -30,7 +30,7 @@ If the sim advances one fixed step per intent (what the hands asked for this ste
30
30
  dodge), a run is the list of intents plus the seed and any setting that changes the sim. Replaying
31
31
  it means feeding that list instead of live input.
32
32
 
33
- - **Held Note's shape.** Its chapter bots produce intents; a small script wrote a bot run's intents
33
+ - **That game's shape.** Its chapter bots produce intents; a small script wrote a bot run's intents
34
34
  to JSON, and the game read them from a window global in place of the controls, through the real
35
35
  renderer, camera and sound. One test made the replay trustworthy:
36
36
  `same_seed_same_inputs_same_events` plays a bot's intents again on a fresh sim with the same seed
@@ -39,10 +39,10 @@ it means feeding that list instead of live input.
39
39
  what a step did; turning it on by default silently broke every recorded replay. The game now
40
40
  turns the assist off whenever a replay runs. Store such settings with the recording.
41
41
  - **Re-record after a sim change.** A recording holds intents, not positions: a tuned run speed
42
- moves where she stands when the next intent arrives, and the replay drifts. The symptom Held
43
- Note learned to read: a still of her staring at a wall is usually a stale recording.
42
+ moves where she stands when the next intent arrives, and the replay drifts. The symptom the
43
+ game learned to read: a still of her staring at a wall is usually a stale recording.
44
44
  - **A recorder in the game.** A key saves a person's run the same way, with its long frames,
45
- camera jumps and errors marked. Held Note's note says a human run beats any bot for feel; when it
45
+ camera jumps and errors marked. The game's note says a human run beats any bot for feel; when it
46
46
  was written, no human run had been replayed yet.
47
47
 
48
48
  ## Film mode: the same frame every time
@@ -59,16 +59,16 @@ function loop(now: number) {
59
59
  }
60
60
  ```
61
61
 
62
- Held Note's stills script replayed an intent file, ticked 1/60 s at a time until the sim's clock
62
+ Its stills script replayed an intent file, ticked 1/60 s at a time until the sim's clock
63
63
  reached each requested second, held the sim for about 20 frames so the camera settled, then shot.
64
64
  A still at 36.8 s was the same picture every run, so:
65
65
 
66
66
  - **A moment can be debugged a frame at a time.** Replay to just before it, tick, read
67
- `__FPX_STATE__` and `funtools inspect --at x,y` on each frame. Held Note's "what is that white
67
+ `__FPX_STATE__` and `funtools inspect --at x,y` on each frame. Its "what is that white
68
68
  ball?" was found this way: at one fixed frame, hide one thing at a time (the torch light, the
69
69
  enemy, the particles, the beam) until it goes. It was an additive beam seen down its own axis
70
70
  (skill `fp:art`, `references/frames.md`).
71
- - **An A/B at a frame only means something if the frame keeps it.** Held Note's torch and emissive
71
+ - **An A/B at a frame only means something if the frame keeps it.** The game's torch and emissive
72
72
  materials were re-posed every frame, so turning them off in a debug step did nothing, while the
73
73
  albedo, which nothing re-set, could be tested. Turn a thing off where the frame reads it from.
74
74
  - **Wall-clock work does not follow the film clock.** CSS transitions and timers ran in real time;
@@ -78,7 +78,7 @@ This is the spine's one loop and one clock with a second driver, not a second lo
78
78
 
79
79
  ## Proving a refactor or a split
80
80
 
81
- Held Note's `sim.ts`, `station.ts` and `game.ts` each grew past 800 to 1,100 lines and were split
81
+ The game's `sim.ts`, `station.ts` and `game.ts` each grew past 800 to 1,100 lines and were split
82
82
  into small modules with typed seams. A split that should change nothing was accepted on four
83
83
  agreements, each an option:
84
84
 
@@ -94,7 +94,7 @@ wall clock, can differ between two captures of one build; capture the same build
94
94
  treat a later difference no larger than that as noise (the same idea as `journey replay --repeat 2`).
95
95
  With film mode the stills can be identical to the pixel, and then any difference is real.
96
96
 
97
- The case for it, from Held Note: after the game split, the capture hook reached the game through a
97
+ The case for it, from that game: after the game split, the capture hook reached the game through a
98
98
  loose cast, the replay cursor and the intro timer had moved, and every capture view silently sat at
99
99
  t = 0 behind the opening shot. A blind panel scored that round 4.9 ("no enemy in any capture").
100
100
  Typing the seam (no cast) and logging an error when a view misses its beat fixed it; on real
@@ -1,4 +1,4 @@
1
- # Room API (`@funpixel/sdk/multiplayer`, SDK 0.6.0)
1
+ # Room API (`@funpixel/sdk/multiplayer`, SDK 0.7.0)
2
2
 
3
3
  ```ts
4
4
  import { Room, getGameKey, RoomError } from '@funpixel/sdk/multiplayer';
@@ -18,7 +18,7 @@ and tweens).
18
18
 
19
19
  ## The surface
20
20
 
21
- 1. Pin it exactly: `"@funpixel/sdk": "0.6.0"`, no caret. The root export is `setupGameResize`
21
+ 1. Pin it exactly: `"@funpixel/sdk": "0.7.0"`, no caret. The root export is `setupGameResize`
22
22
  only; everything else comes from a subpath (`/audio`, `/multiplayer`, `/save`, `/liveParams`,
23
23
  `/device`).
24
24
  2. **Resize.** `setupGameResize(cb: (width: number, height: number) => void, win?: Window): () => void`
@@ -28,8 +28,8 @@ is an evidence gap, not a rebuild.
28
28
 
29
29
  ## Invent first, then fill the template
30
30
 
31
- A plan filled template-first lost 3 of 3 blind seats to one that spent its time on design (Gallery
32
- Heist, 1 Oct 2026). The order that won, in [references/invent-first.md](references/invent-first.md):
31
+ A plan filled template-first lost 3 of 3 blind seats to one that spent its time on design (one
32
+ game, 1 Oct 2026). The order that won, in [references/invent-first.md](references/invent-first.md):
33
33
 
34
34
  1. **Six forcing questions**, in `## The invention`: what the core object means, why the verb
35
35
  exists in this world, who wants what by name, what the twist costs in feeling and in play, the
@@ -28,9 +28,9 @@ team's robot game passed that test: its Unity port matched the web build exactly
28
28
  - Name what is not built yet as not built. A planned feature stays in Part 1 until a test or a
29
29
  recorded playthrough shows it running.
30
30
  - Write each value beside where it lives (`src/tuning.ts · FUSE_S = 3.0`), a shape a short script
31
- can compare to the code on every build (The Hot Gates checked 213 numbers that way). Where a value
31
+ can compare to the code on every build (one game checked 213 numbers that way). Where a value
32
32
  moved from its target, "the reason was not recorded" is better than a guessed one.
33
- - Keep a list of the defects writing the spec found; writing Pocket Crew's found five.
33
+ - Keep a list of the defects writing the spec found; writing one game's found five.
34
34
  - Say what nothing has observed yet (unheard, never played on a phone, fun unproven) and leave the
35
35
  person's own play as a question for them until it happens.
36
36
 
@@ -1,7 +1,7 @@
1
1
  # The design measures
2
2
 
3
3
  `npx @funpixel/tools gdd` ends with six numbers read off the GDD, each with why and the peers' figures. They come
4
- from the Don't Die field report (10 Oct 2026), and its owner's rule holds them: "Advise, never gate." Each is advice.
4
+ from one game's field report (10 Oct 2026), and its owner's rule holds them: "Advise, never gate." Each is advice.
5
5
  Read them, decide what to do, and leave the call on the game's size and scope to the owner. A dense, systemic game
6
6
  can be the choice; the lint then says "dense: is each element learned (used again after its teach)?", never "too
7
7
  many".
@@ -13,7 +13,7 @@ it.
13
13
  | Measure | What it reads | The line |
14
14
  |---|---|---|
15
15
  | Elements per hour | `design/spec/elements.json` (`[{id, kind, name, debut_place, debut_beat_t, uses}]`), else `## Elements`, else the tables under `## Content` (`### Roster` and its kin, the player's row left out) | new mechanics, enemies, tools and systems ÷ first-playthrough hours; good games sit at about 1.4–3 (Prey 1.4, Scorn 2.2, Superhot 2–3); warns above about 4; any element used fewer than twice after its teach is "check by hand" |
16
- | The spine | `## The spine`: a `Spine:` sentence, clauses split by `;`, and a table of system, the clause it serves (quoted or by number), genre beat | a system that serves no clause warns: Don't Die cut the systems that mapped to none |
16
+ | The spine | `## The spine`: a `Spine:` sentence, clauses split by `;`, and a table of system, the clause it serves (quoted or by number), genre beat | a system that serves no clause warns: one game cut the systems that mapped to none |
17
17
  | Sources | every table with a Source column (the identity lock's and the asset script's are pictures, not claims), footnotes `[^n]` with their `[^n]: …` line, `[source?]` markers | a marked claim with no source line warns; "approx, from memory" is kept and listed as secondhand; `gdd --sources` lists them all |
18
18
  | Peers | `## Worth against the genre` or `## Peers` | each peer's length and elements per hour: the report's figures where it has them, the GDD's own figure when its row carries a link, else unknown, never guessed |
19
19
  | Length totals | the parts' minutes: `design/spec/places/*.json` `target_minutes.first_time`, else a Length column in `## Chapters`, `## Places` or `### Stages` | summed against `Play length:` (or `**Length:**`), the difference shown; warns past 10% (or 2 minutes); the owner's `target_minutes` is shown, never judged |
@@ -19,7 +19,7 @@ What each line is for:
19
19
  - **Depth** is where a finished level still loses to the genre hit: critics picked the hit for a
20
20
  longer, denser run and a reason to replay. Fill the `Depth:` line under the core loop from bot
21
21
  runs; the options and genre numbers are in the game-logic skill's depth reference.
22
- - **The first minute** puts the signature on screen early: Dead Letter's first cut showed it at
22
+ - **The first minute** puts the signature on screen early: one game's first cut showed it at
23
23
  3:45, and the fix moved it under 30 s.
24
24
  - **Juice** maps actual events to visible responses and explicit audio choices, including silence.
25
25
  Remove inapplicable example rows: a loss or reward tier invented to fill the template is a
@@ -36,7 +36,7 @@ style words or the rule, redraw that frame once, and write what changed into the
36
36
  ## Identity lock first
37
37
 
38
38
  Make each recurring design's sheet from its best draft before anything else, then draw every picture
39
- to the sheets and one verbatim style block (Blue Freight: seven of seven redraws on-model). Drift
39
+ to the sheets and one verbatim style block (one game: seven of seven redraws on-model). Drift
40
40
  check: frames side by side, each design part by part (hair, outfit, silhouette, colours, a vehicle's
41
41
  shape); `funtools judge identity <frames…> --concept ref-hero.png` asks a seat. Keep a before/after
42
42
  of each redraw, then list the honest breaks. Details: [world-and-identity.md](world-and-identity.md).
@@ -14,8 +14,8 @@ game keeps the checks; a Stop with nothing open or deferred removes it. Delete i
14
14
  What the team's best shipped games had in common (research 08, 17, 20), each with why:
15
15
  - coherent art and readable actors, scenery and UI in the chosen medium;
16
16
  - every row of the juice table in the game, with its limits (skill `fp:game-feel`);
17
- - the signature on screen within about 30 seconds, and controls taught where first needed (Dead
18
- Letter's first cut showed its signature at 3:45);
17
+ - the signature on screen within about 30 seconds, and controls taught where first needed (one
18
+ game's first cut showed its signature at 3:45);
19
19
  - a signature-moment view (`moment: true`) that plays the payoff, since critics judge stills
20
20
  (skill `fp:verifying`);
21
21
  - the full screen set: a real title, how to play, settings (sound, motion), play, pause, and the
@@ -62,7 +62,7 @@ state and emitted events. A table and an existing test file prove neither execut
62
62
  Keep a seeded novice simulation beside the skilled balance bot. The novice receives only the
63
63
  observation a player could have, reacts at a declared interval, and sometimes misses or hesitates;
64
64
  it cannot inspect future spawns, exact hidden state or a solver's answer. Freeze its policy and
65
- seed list before tuning. A floor used on Gesundheit's first wave: 100
65
+ seed list before tuning. A floor used on one game's first wave: 100
66
66
  fixed seeds, at least 80 runs that both survive the stage and earn score. Record both counts, elapsed time,
67
67
  deaths by cause, policy parameters and failing seeds. Other genres state the equivalent first
68
68
  success and deadline before the run. This is a regression floor, not a human success estimate.
@@ -62,7 +62,7 @@ What a player of the hit expects without being told. Keep them as defaults; brea
62
62
  Starting code with these as defaults, and the screen flow: [starters.md](starters.md), "Merge or drop".
63
63
 
64
64
  - Drop and merge (Suika): the piece hangs over a drop line that shows where it will fall, and the next piece is shown.
65
- - Aim and bounce (Peggle): the aim guide shows the first path, and the free-ball bucket moves along the bottom every shot; it never runs out. A capped helper read as a bug twice in Lantern Night.
65
+ - Aim and bounce (Peggle): the aim guide shows the first path, and the free-ball bucket moves along the bottom every shot; it never runs out. A capped helper read as a bug twice in one of our games.
66
66
  - A wrong move is cheap: undo or an instant restart of the level, and a solved state that is unmistakable.
67
67
  - No clock on thinking in a pure puzzle (Monument Valley has no fail state); pressure comes from a board that fills, not a timer.
68
68
 
@@ -85,7 +85,7 @@ Pick one signature and up to three more before building (`npx @funpixel/tools wo
85
85
  Portal, Monument Valley and The Witness are puzzles you walk through. What differs from a board:
86
86
 
87
87
  - **The chamber is the unit.** Each debuts one element, then asks for it in a new combination; a
88
- chapter spends itself on one trick. A chamber that tells you every step is a tutorial: Fold Room's
88
+ chapter spends itself on one trick. A chamber that tells you every step is a tutorial: one game's
89
89
  first version cleared in 1:11 with a hint per step, and critics called it "a tutorial, not a
90
90
  puzzle". The aha is a known tool used a new way: the exit seen through the portal, the cube
91
91
  carried through it, the switch reachable only from the far side.
@@ -94,7 +94,7 @@ Portal, Monument Valley and The Witness are puzzles you walk through. What diffe
94
94
  - **Readable space.** The player always knows which side of a portal they are on (a different light
95
95
  or colour per room), where a carried object will land (a ring on the floor before the drop) and
96
96
  when something is in reach (it answers before the tap). These were our blind players' three
97
- medium findings on Fold Room.
97
+ medium findings on that game.
98
98
  - **Controls.** First person, or a fixed three-quarter view with tap-to-move (Monument Valley). Held
99
99
  sideways: move on the left thumb, look on the right, one action button of at least 44 px, and the
100
100
  two thumbs never share a zone.
@@ -123,7 +123,7 @@ Options with reasons; more in skill `fp:game-logic`, its depth reference.
123
123
  places its hard levels on a rhythm the player can feel; a daily seeded board gives a reason to
124
124
  return.
125
125
  - Pressure from the first drops: a small container or a partly filled seeded start, so the first
126
- minute already asks where things go. Critics called Plush Pop's early basket "too sparse, no
126
+ minute already asks where things go. Critics called one game's early basket "too sparse, no
127
127
  packing pressure" beside Suika Game.
128
128
  - The best score per mode saved, the next piece shown, restart in one tap.
129
129
 
@@ -31,7 +31,7 @@ that catch this genre's quiet bugs. The creator's brief wins over anything here.
31
31
  time), a colour that owns it, and a body that leans, squats and bounces with the physics.
32
32
  - A driver visible in the seat, or a face on the kart, buys character for very little.
33
33
  - Rivals each keep one colour and one personality in how they drive (the bully, the careful one).
34
- - **Keep the pack in view** (Particle Rush, Oct 2026). Draw rivals at true scale out to about 60 m
34
+ - **Keep the pack in view** (one racer, Oct 2026). Draw rivals at true scale out to about 60 m
35
35
  and compress the distance beyond it, so the pack stays on screen while contact up close reads
36
36
  exactly. A bunching rule tuned for the chase keeps it there: a racer more than 10 m from the
37
37
  pack's mean distance is pulled toward it, 0.05 m/s per metre beyond, at most 0.8 m/s, ahead or
@@ -76,7 +76,7 @@ What a player of the hit expects without being told. Keep them as defaults; brea
76
76
  Starting code with these as defaults, and the screen flow: [starters.md](starters.md), "Racing".
77
77
 
78
78
  - A fall or a wall is a short respawn on the track, never a restart of the race.
79
- - Position and lap are always on screen; the rivals' pace is beatable with a thumb, not only with frame-perfect input (Saltwake's Dusk Cup was won only at 60 decisions a second).
79
+ - Position and lap are always on screen; the rivals' pace is beatable with a thumb, not only with frame-perfect input (one racer's last cup was won only at 60 decisions a second).
80
80
  - Help for the back of the pack: Mario Kart weights its items toward the players behind, so a race stays open.
81
81
  - A ghost or a best time to beat on the next attempt.
82
82
 
@@ -86,8 +86,8 @@ Pick one signature and up to three more before building (`npx @funpixel/tools wo
86
86
 
87
87
  A design question for the GDD: for each weapon, ability or spell, the situation where it beats the
88
88
  others (reach, a crowd, a shield, a state it opens or finishes) and what it costs. A choice of three
89
- reads as a choice when the three answer different situations (our reading). Held Note, one of our
90
- hand-iterated games, answered it per weapon (a cutter for joints, a rivet driver that pins an enemy
89
+ reads as a choice when the three answer different situations (our reading). One of our
90
+ hand-iterated games answered it per weapon (a cutter for joints, a rivet driver that pins an enemy
91
91
  from range, a scattergun that clears a crowd at the cost of stealth, a knife that finishes a staggered
92
92
  enemy). A question, not a mandate; more in skill `fp:game-feel`, `references/contact.md`.
93
93
 
@@ -87,8 +87,8 @@ Pick one signature and up to three more before building (`npx @funpixel/tools wo
87
87
 
88
88
  A design question for the GDD: for each gun, upgrade or panic button, the situation where it beats
89
89
  the others (range, a crowd, armour, a state it opens or finishes) and what it costs. Two guns that
90
- answer the same situation are one weapon wearing two looks (our reading). Held Note, one of our
91
- hand-iterated games, answered it per weapon (a cutter for joints, a rivet driver that pins an enemy
90
+ answer the same situation are one weapon wearing two looks (our reading). One of our
91
+ hand-iterated games answered it per weapon (a cutter for joints, a rivet driver that pins an enemy
92
92
  from range, a scattergun that clears a crowd at the cost of stealth, a knife that finishes a staggered
93
93
  enemy). A question, not a mandate; more in skill `fp:game-feel`, `references/contact.md`.
94
94
 
@@ -83,8 +83,8 @@ Pick one signature and up to three more before building (`npx @funpixel/tools wo
83
83
 
84
84
  A design question for the GDD: for each weapon, tool or upgrade, the situation where it beats the
85
85
  others (a crowd, range, the night, a resource it saves) and what it costs. An upgrade that answers
86
- no new situation is a bigger number rather than a choice (our reading). Held Note, one of our
87
- hand-iterated games, answered it per weapon (a cutter for joints, a rivet driver that pins an enemy
86
+ no new situation is a bigger number rather than a choice (our reading). One of our
87
+ hand-iterated games answered it per weapon (a cutter for joints, a rivet driver that pins an enemy
88
88
  from range, a scattergun that clears a crowd at the cost of stealth, a knife that finishes a staggered
89
89
  enemy). A question, not a mandate; more in skill `fp:game-feel`, `references/contact.md`.
90
90
 
@@ -1,6 +1,6 @@
1
1
  # Invent first, then fill the template
2
2
 
3
- Two plans were written from one brief on 1 Oct 2026 (Gallery Heist, a first-person paint shooter in
3
+ Two plans were written from one brief on 1 Oct 2026 (a first-person paint shooter in
4
4
  a museum at night). The plan that followed this skill's template was clearer (8.4 against 8.1) and
5
5
  more buildable (7.2 against 6.4), and lost 3 of 3 blind seats, 7.0 against 8.0. It trailed on level
6
6
  design by 1.8, story and world by 1.7, fun by 1.2 and phone controls by 1.0. It spent its extra
@@ -70,14 +70,14 @@ Canvas): genre and fidelity, depth (5 minutes, 30 minutes or chapters), the core
70
70
  clock, question, antagonist, frame), extras with their cost (voice per character, cutscenes, photo
71
71
  mode, multiplayer, and for a deep game two takes: two parallel builds of the locked plan, played
72
72
  side by side from the title by `npx @funpixel/tools compare-takes`, the mix keeping what each won;
73
- on Blue Freight one take won the environment and the other the dynamics). Propose a pick per card with its reason for this game
73
+ on one game, one take won the environment and the other the dynamics). Propose a pick per card with its reason for this game
74
74
  (`pitch propose core world --why "…"`); the plan shows your picks and the owner approves them with it
75
75
  at the lock (`flow ask`). Under their autonomy "ask", each card is theirs instead: `pitch ask` posts each
76
76
  as a question in the chat, and `pitch lock` waits for their answers. From then on the core gets the art budget, the tests and the hardest checks, and
77
77
  what was not picked stays light. Autonomy is the OWNER's setting (funpixel.json `flow.autonomy`,
78
78
  from their brief), never a card you propose: under `ask` and `plan-then-go` every pitch card waits
79
79
  for their answer; only their `go` lets you pick, record each pick with its reason, and lock.
80
- (Wind Orchard, 4 Oct: under "ask" the agent proposed and locked all seven cards itself.)
80
+ (One game, 4 Oct: under "ask" the agent proposed and locked all seven cards itself.)
81
81
 
82
82
  ## 4. Named behaviour tests, before code
83
83
 
@@ -1,6 +1,6 @@
1
1
  # Levels, a world that plays, fun and the phone
2
2
 
3
- Where a plan made with the kit lost to the owner's own workflow (Gallery Heist, 1 Oct 2026: two
3
+ Where a plan made with the kit lost to the owner's own workflow (one game, 1 Oct 2026: two
4
4
  GDDs from one brief, three blind judges, 7.0 against 8.0). The kit's plan led on clarity and
5
5
  feasibility and trailed on level design (−1.8), story and world (−1.7), fun (−1.2) and phone UX
6
6
  (−1.0). Every judge named the same four things, so this page is those four, with what our best
@@ -26,9 +26,9 @@ Write the place row before drawing its picture, and draw each picture from its r
26
26
  pictures to each other: if two could swap captions, one of them is not a place yet.
27
27
 
28
28
  **Shape of a level.** Teach the new thing alone, test it, twist it, then combine it with what came
29
- before (teach, develop, twist, test, celebrate). The Hot Gates gave each of its eight islands one
30
- rule; The Last Good Robot debuts each of its nine kinds alone at the head of its wave before it
31
- joins a crowd (41, 82, then 100 robots per floor). Dead Letter calmed its level after watching the
29
+ before (teach, develop, twist, test, celebrate). One game gave each of its eight islands one
30
+ rule; another debuts each of its nine kinds alone at the head of its wave before it
31
+ joins a crowd (41, 82, then 100 robots per floor). A third calmed its level after watching the
32
32
  gray-box: a plan is allowed to lose to the game in front of you.
33
33
 
34
34
  **Layout laws as tests.** The winning plan wrote its rooms as data with laws a test can read: a
@@ -61,7 +61,7 @@ Ask of the world: **what does it do when you play?**
61
61
  one kind is a painting to the gun (auto-fire skips him), one sidesteps after 0.3 s of lock so your
62
62
  burst flies into the art, one always perches against a dark backdrop, one carries a canvas as a
63
63
  shield. Each asks a different question of the same verb. The kit's roster was one striped body
64
- with five props: one enemy in five coats. The Last Good Robot's "one chassis, nine heads" works
64
+ with five props: one enemy in five coats. One game's "one chassis, nine heads" works
65
65
  because each head is a different idea, not because the chassis is shared.
66
66
 
67
67
  ## 3. Fun with depth
@@ -69,13 +69,13 @@ Ask of the world: **what does it do when you play?**
69
69
  | Ask | A strong answer | Where it showed |
70
70
  |---|---|---|
71
71
  | How many decisions a minute does the verb make? | every shot is a choice about where you stand | the winning plan: "the game rewards the step before the shot" |
72
- | What is the boring optimum, and what makes it lose? | named, with the rule that beats it | panic-firing pays nothing; Held Note's welding every door runs you out of gas |
73
- | Does risk pay? | a riskier line scores more, never only costs more | The Hot Gates' kill ladder (10 in 2 s up to 100 in 3 s, slow motion on the top rung) |
74
- | What does each verb cost? | a price in time, resource or the route | Held Note: hold 1.5 s, 25 gas, and the room beyond is gone |
75
- | Why play the next room? | it asks a new question of the same verb | each kind debuts alone (The Last Good Robot) |
72
+ | What is the boring optimum, and what makes it lose? | named, with the rule that beats it | panic-firing pays nothing; in one horror game, welding every door runs you out of gas |
73
+ | Does risk pay? | a riskier line scores more, never only costs more | one game's kill ladder (10 in 2 s up to 100 in 3 s, slow motion on the top rung) |
74
+ | What does each verb cost? | a price in time, resource or the route | the horror game: hold 1.5 s, 25 gas, and the room beyond is gone |
75
+ | Why play the next room? | it asks a new question of the same verb | each kind debuts alone (the nine-kind game above) |
76
76
  | Why play again? | a grade, a medal for clean play, a best to beat | the winning plan's results screen grades splashes, and only your own cost the clean-hand medal |
77
77
 
78
- Held Note added weapons only when each answered a different situation, all drawing on one canister;
78
+ The horror game added weapons only when each answered a different situation, all drawing on one canister;
79
79
  two answers to the same situation are one tool wearing two looks.
80
80
 
81
81
  ## 4. Phone UX: two thumbs, 852 × 393
@@ -85,7 +85,7 @@ The phone is where a plan is cheapest to fix and most often lost.
85
85
  - **Controls off the play and off the held thing.** Both plans first put Fire and Cover on the gun;
86
86
  the kit's HUD v2 moved them to the right edge and shrank the gun to a sixth of the screen.
87
87
  Whatever the hero holds is part of the frame budget; a mockup that breaks its own cap breaks it in
88
- the build. Held Note's HUD covered 41% of the phone screen until it was measured.
88
+ the build. One game's HUD covered 41% of the phone screen until it was measured.
89
89
  - **One gesture per thumb zone.** The winning plan put aim, tap-for-cover and hold-to-wipe all in
90
90
  the right thumb's zone: three gestures that collide. Give each zone one gesture, or make one a
91
91
  button.
@@ -11,11 +11,8 @@ data gets none; a map drawn by hand is a page of its own.
11
11
  ## The bar: the studio's best GDD pages
12
12
 
13
13
  The owner judges a plan page against the studio's own bespoke design pages, not against the base
14
- `gdd page` writes. Name them when you show yours, and say where yours falls short:
15
-
16
- - **Knockout Lap v0.2**: kept locally by the owner, so ask for it by name.
17
- - **Particle Rush**'s GDD page: ask the owner for its link.
18
- - **Gallery Heist**'s GDD page.
14
+ `gdd page` writes. Ask the owner for them (one is kept locally by the owner, the others by link),
15
+ name them when you show yours, and say where yours falls short.
19
16
 
20
17
  What makes them strong, and how much of it `gdd page` draws:
21
18
 
@@ -29,11 +29,11 @@ What play must reach, counted. It goes in the GDD's `## Content list`:
29
29
  - **Size it to play length:** a game is at least 15 minutes of real play by a first-time
30
30
  player, even with one level: escalation (a new idea per stage, not only speed), variety, a twist
31
31
  around the middle, and an ending worth reaching. Write the `Play length:` line and count the
32
- content that fills it (Riad Rush and Fold Room: "at least 15 minutes play, to be a game", owner,
32
+ content that fills it (two of our games: "at least 15 minutes play, to be a game", owner,
33
33
  3 Oct); a 2-minute arcade round is a choice the line states "on purpose". `funtools sim` holds
34
34
  the skilled bot's run to that line and asks that it reaches the ending, and `playtest experience` fills `Reached in play` for areas,
35
35
  levels and waves from the long blind player and the bot (marked `(measured)`). Play reaching half
36
- the claimed areas or less is a warn: Floe claimed 8 worlds and play reached 2.
36
+ the claimed areas or less is a warn: one game claimed 8 worlds and play reached 2.
37
37
  - **Size it to the game:** a one-screen toy can honestly say "Levels 1"; say that it is the choice
38
38
  in the list ("one screen on purpose") and the ambition read leaves it alone. A full game names
39
39
  its areas, kinds with a debut each (the `## Content` roster), a climax and at least one ending.
@@ -96,7 +96,7 @@ under `## AD rules` (the hooks and the fidelity seat read that heading):
96
96
 
97
97
  - **Offer them and explain why:** every playtest round, the fidelity seat judges each line held,
98
98
  partly held or broken beside the target frames. Without lines, "does it still look like the plan"
99
- has no answer. Held Note's six lines caught a darker art pass that hid its threats.
99
+ has no answer. One game's six lines caught a darker art pass that hid its threats.
100
100
  - **They are the creator's words.** Offer drafts from the pitch and the first look; the creator
101
101
  rewrites, keeps or cuts them.
102
102
  - **Declining is fine, and kept:** `Declined: I will judge the look by eye (the creator, 30 Sep)`.
@@ -121,8 +121,8 @@ them once to PNGs.
121
121
  Moments that invite someone to look: after the plan is applied, after the first look, after the
122
122
  first slice. The someone can be a friend, the owner, a player, or the creator's next-morning self.
123
123
  Offer the pause, record who looked and what they said in the GDD's `## Pause points` table, and
124
- carry on either way. LGR waited four days for its owner's "go ahead"; Held Note built twenty
125
- minutes after its approval; Dawg Ball never paused and still reached its gate. The pause is there
124
+ carry on either way. One game waited four days for its owner's "go ahead"; another built twenty
125
+ minutes after its approval; a third never paused and still reached its gate. The pause is there
126
126
  because a second pair of eyes is cheapest before code, not because the path needs permission.
127
127
 
128
128
  ## 6 · The plan grows with the game
@@ -45,14 +45,14 @@ and that wins.
45
45
 
46
46
  | Setting | What it adds | Seen in |
47
47
  |---|---|---|
48
- | small | The GDD and one target frame of the moment that sells the game; the meta layer (stars, collection, a map of levels) planned with the mechanic, not after it. | Koi Out, Stitch Pop, Porcelain Panic, Dock Jam: a one-second mechanic, a meta layer, many levels. |
49
- | mid | A target frame per place or level, the story's beats as ids the game reports, progress saved per level or chapter, and a runbook of what proves each step. The plan is also a spec folder the game loads (`design/spec/`: every number in `tunables.json`, rooms and chapters as data with pars, slice first; `funtools spec init`, skill `fp:gdd`, references/spec-folder.md). | Dead Letter (`GAME.md`, `QUALITY_BAR.md`, design addenda per pass), The Last Good Robot (`RUNBOOK.md`, `runbook.json`), The Hot Gates. |
50
- | deep | A making-of log (`design/MAKING.md`: decision, numbers, lesson, one entry per lane). Show first: films or a proofs page the owner picks from, then build behind a flag, measure, merge. One lane per worktree. | Held Note (`design/MAKING.md`, `PERF.md`, frames at 0:10, 1:00, 2:00 as the definition of done), Pocket Crew, the Blue Freight plan. |
48
+ | small | The GDD and one target frame of the moment that sells the game; the meta layer (stars, collection, a map of levels) planned with the mechanic, not after it. | Four casual puzzle games: a one-second mechanic, a meta layer, many levels. |
49
+ | mid | A target frame per place or level, the story's beats as ids the game reports, progress saved per level or chapter, and a runbook of what proves each step. The plan is also a spec folder the game loads (`design/spec/`: every number in `tunables.json`, rooms and chapters as data with pars, slice first; `funtools spec init`, skill `fp:gdd`, references/spec-folder.md). | One game (`GAME.md`, `QUALITY_BAR.md`, design addenda per pass), another (`RUNBOOK.md`, `runbook.json`), a third. |
50
+ | deep | A making-of log (`design/MAKING.md`: decision, numbers, lesson, one entry per lane). Show first: films or a proofs page the owner picks from, then build behind a flag, measure, merge. One lane per worktree. | One game (`design/MAKING.md`, `PERF.md`, frames at 0:10, 1:00, 2:00 as the definition of done), another, and one game's plan. |
51
51
 
52
52
  Lanes at deep: `npx @funpixel/tools lanes plan` splits a build stage into lanes, each with a brief,
53
53
  its own paths, a spend cap, a time-box and a merge gate; `lanes merge` lands one only after a seat
54
54
  that did not build it passes it and the owner has picked between any candidates (`/fp:lanes`).
55
- Lane hygiene, from Held Note's builder. Use one worktree per lane, never `git stash` (it is
55
+ Lane hygiene, from one game's builder. Use one worktree per lane, never `git stash` (it is
56
56
  shared across worktrees), and never rewrite history. Never run two headless Blender jobs at once:
57
57
  their dialogs land on the owner's screen. A stale build fools a screenshot, so rebuild before every
58
58
  capture. The owner's screenshots become named before-frames.
@@ -61,17 +61,17 @@ capture. The owner's screenshots become named before-frames.
61
61
 
62
62
  | Setting | What it adds | Seen in |
63
63
  |---|---|---|
64
- | small | One palette in code (a `palette.ts` or the style tokens) and one verbatim style block every generation carries. | The Joydle slate's casual games. |
65
- | mid | Reference sheets before any art (`ref-*` in `assets/assets.json`). Several draws per item, the most on-palette one kept (`assets gen` scores each by hue against the palette and warns under 55%). Every provider original kept in `assets/raw/`, with a line per job in `assets/costs.jsonl`. Colour ownership: one colour, one meaning. | The Last Good Robot (`tools/luminance.mjs`, `contact-sheet.mjs`, `asset-coverage.mjs`), Dead Letter (`ASSETS.md`), the harness games' `forge.mjs` palette scoring. |
66
- | deep | Identity locks for every recurring design (GDD `## Identity lock`, skill `fp:gdd`). The 3D line: reference images, then the model, then the original kept with its request id and seed, then cleanup on the bench, then two tiers (phone and HD). Hard-surface pieces are rebuilt or baked from the high-poly onto clean geometry. A decimated AI mesh looks melted, and no shader fixes it. Materials are normalised in code and in the files. | Held Note (`sources/`, `design/assets.md`, models and models/hd), Pocket Crew (raw art kept with request ids and seeds), Blue Freight (seven redraws on-model at the first try once the sheets existed). |
64
+ | small | One palette in code (a `palette.ts` or the style tokens) and one verbatim style block every generation carries. | The studio's casual games. |
65
+ | mid | Reference sheets before any art (`ref-*` in `assets/assets.json`). Several draws per item, the most on-palette one kept (`assets gen` scores each by hue against the palette and warns under 55%). Every provider original kept in `assets/raw/`, with a line per job in `assets/costs.jsonl`. Colour ownership: one colour, one meaning. | One game (`tools/luminance.mjs`, `contact-sheet.mjs`, `asset-coverage.mjs`), another (`ASSETS.md`), the harness games' `forge.mjs` palette scoring. |
66
+ | deep | Identity locks for every recurring design (GDD `## Identity lock`, skill `fp:gdd`). The 3D line: reference images, then the model, then the original kept with its request id and seed, then cleanup on the bench, then two tiers (phone and HD). Hard-surface pieces are rebuilt or baked from the high-poly onto clean geometry. A decimated AI mesh looks melted, and no shader fixes it. Materials are normalised in code and in the files. | One game (`sources/`, `design/assets.md`, models and models/hd), another (raw art kept with request ids and seeds), a third (seven redraws on-model at the first try once the sheets existed). |
67
67
 
68
68
  ## Verify, the QA loop
69
69
 
70
70
  | Setting | What it adds | Seen in |
71
71
  |---|---|---|
72
72
  | small | Rules tests with a seed (same seed and inputs, same round), `verify`, `look --hud` at phone size, `feel`, and one blind phone player. | Every funtools starter ships the seed test. |
73
- | mid | Bots on several seeds through every level (`sim`, per-level curves; `rooms` for a spec folder's rooms, each against its par), a replay test, a boot test where storage throws (the starter's `test/platform.test.ts`), and fixed-framing before and after on every visual change: `capture --all` then `compare` at desktop 1280x720 and phone 844x390, plus a short film (`clip`). | The Last Good Robot (`src/test/sim.test.ts`, `platform.test.ts`, `tools/release-check.mjs`, `bless-check.mjs`), Dead Letter (`scripts/screen-audit.mjs`, `smoke.mjs`, audio pause tests), The Hot Gates (`src/test/`). |
74
- | deep | Blind phone players from the title, with no view jumps, as the gate a panel cannot replace (a wrong kit fact sank one version that panels passed). An interleaved A/B phone profile: 844x390 at 3x, CPU slowed four times, a fixed seed, reading p95, long frames and mid-play shader compiles (`profile --viewport phone --throttle 4 --seed 7 --compare`). Evidence per lane in the making-of log. | Held Note (`design/PERF.md`, `tools/profile.mjs`, `tools/compare.mjs`), Pocket Crew (a 3.7 s splash fooled the captures; the fixes were level design: practice zones, camera volumes, a landing ring). |
73
+ | mid | Bots on several seeds through every level (`sim`, per-level curves; `rooms` for a spec folder's rooms, each against its par), a replay test, a boot test where storage throws (the starter's `test/platform.test.ts`), and fixed-framing before and after on every visual change: `capture --all` then `compare` at desktop 1280x720 and phone 844x390, plus a short film (`clip`). | One game (`src/test/sim.test.ts`, `platform.test.ts`, `tools/release-check.mjs`, `bless-check.mjs`), another (`scripts/screen-audit.mjs`, `smoke.mjs`, audio pause tests), a third (`src/test/`). |
74
+ | deep | Blind phone players from the title, with no view jumps, as the gate a panel cannot replace (a wrong kit fact sank one version that panels passed). An interleaved A/B phone profile: 844x390 at 3x, CPU slowed four times, a fixed seed, reading p95, long frames and mid-play shader compiles (`profile --viewport phone --throttle 4 --seed 7 --compare`). Evidence per lane in the making-of log. | One game (`design/PERF.md`, `tools/profile.mjs`, `tools/compare.mjs`), another (a 3.7 s splash fooled the captures; the fixes were level design: practice zones, camera volumes, a landing ring). |
75
75
 
76
76
  ## One structure that has worked
77
77
 
@@ -79,10 +79,10 @@ Not required; the outcome is what checks read. The owner's deeper games split an
79
79
  `src/sim/` (fixed step, seeded, cloneable, so a save is a `structuredClone` and bots play whole
80
80
  chapters) from `src/view/` (the engine draws the sim and decides nothing) and `src/ui/` (Preact
81
81
  screens and HUD). Tests drive the sim with bots on several seeds. Every view lane can then prove the
82
- sim untouched. See The Last Good Robot, The Hot Gates and Held Note. The funtools starters keep the
82
+ sim untouched. The funtools starters keep the
83
83
  same split in small: `rules.ts` engine-free and seeded, `game.ts` drawing it.
84
84
 
85
- The 3D starter's quality tier follows the GPU, never `pointer: coarse` (Held Note
85
+ The 3D starter's quality tier follows the GPU, never `pointer: coarse` (one game's
86
86
  `src/view/device.ts`). A desktop window in touch emulation reports a coarse pointer and would get the
87
87
  phone's budget; the touch layout still follows the pointer.
88
88
 
@@ -1,7 +1,7 @@
1
1
  # What makes each section strong
2
2
 
3
- Distilled from the team's GDDs (The Last Good Robot, The Hot Gates) and five the owner wrote end
4
- to end on 28–29 September (Pocket Crew, a deep-sea horror, a kart racer, a frozen metroidvania, a
3
+ Distilled from two of the team's GDDs and five the owner wrote end
4
+ to end on 28–29 September (a crew platformer, a deep-sea horror, a kart racer, a frozen metroidvania, a
5
5
  marionette party game). Each row: what the strong version holds, what the thin version looks like,
6
6
  and the example that made the difference. `funtools gdd` looks for the evidence in the strong
7
7
  column; it cannot tell a good design from a long one, so use it as a checklist, not a grade.
@@ -18,7 +18,7 @@ The robot game's smile (a face flickers onto every defeated robot) and the Greek
18
18
  (the count over the army is health, weapon and story) are theses you can see. The owner's horror
19
19
  design adds a top-five table: the one reason each hit worked, and what a naive version of our game
20
20
  would lack. For each big choice, name the answer everyone reaches for first and the answer of someone
21
- merely avoiding it, then choose past both; write them down as "Ruled out: X · Y" (the Held Note: guns
21
+ merely avoiding it, then choose past both; write them down as "Ruled out: X · Y" (the horror game: guns
22
22
  and gore, then no combat at all, then a welder that cuts the enemies' limbs). A pillar with its **risk** beside it ("horror on a phone:
23
23
  risky, since a lit room and a small screen flatten fear; answered by a brightness step and sound
24
24
  drawn as arcs") is a
@@ -33,7 +33,7 @@ optimum named, and the rule that makes it lose (panic-firing pays nothing; weldi
33
33
  you out of gas). Thin: numbers with no reasons, or a loop with "and also" in it, which is two games.
34
34
  The numbers are targets until a test pins them; say so. Give each verb its **price** (weld a door:
35
35
  hold 1.5 s, 25 gas, and the room beyond is gone for good): a verb that costs nothing stops being a
36
- choice. Play one level's economy on paper before code, as a middling player would (the Held Note's
36
+ choice. Play one level's economy on paper before code, as a middling player would (the horror game's
37
37
  chapter 2 needed 187 gas across cuts, burns, a pin and a door, so it placed 1.3 × 187 = 243).
38
38
 
39
39
  ## Opening (the first minute)
@@ -57,7 +57,7 @@ in its tell at a time; never spawn in view; each kind debuts alone) are what mak
57
57
  Give each kind something it **takes** besides health (the resource, time, the route, a connection,
58
58
  your attention, your plan): a roster where every kind only takes health is one enemy in different
59
59
  coats. A tell stays honest when an enemy that chooses a target takes the nearest, never a random one,
60
- and online it adds the round trip (Break a Leg! uses 0.8 s against about 300 ms of phone lag).
60
+ and online it adds the round trip (the marionette party game uses 0.8 s against about 300 ms of phone lag).
61
61
 
62
62
  ## Look
63
63
 
@@ -66,7 +66,7 @@ colour for "you", one for "hurts", one for "you can touch this"); a font chosen
66
66
  asset economy (what is generated, what is built in code, how many); **five AD rules**, each
67
67
  checkable in one frame (a colour count, a size at which a thing reads, where grime may and may
68
68
  not live); and **target frames**: the key art plus four whole frames of the ladder's moments, each
69
- saying which claim it pins. Held Note's were timed to its ladder (0:10, 1:00, 2:00, 3:00, 5:00), so
69
+ saying which claim it pins. The horror game's were timed to its ladder (0:10, 1:00, 2:00, 3:00, 5:00), so
70
70
  captures of the same seconds could be laid beside them (skill `fp:art`).
71
71
  Thin: "stylised and colourful". The owner's docs keep the style words
72
72
  in one file and repeat them word for word in every prompt; reference sheets pin each recurring
@@ -113,7 +113,7 @@ controls) before any content; when time runs short, the dressing shrinks, never
113
113
 
114
114
  ## Requests against the pillars, and the pillar audit
115
115
 
116
- Held Note (the owner's deep-sea horror game, September 2026) was audited against its own GDD
116
+ The owner's deep-sea horror game (September 2026) was audited against its own GDD
117
117
  mid-build: an agent graded every beat on both platforms, about 6.6 of 10 against the plan. The
118
118
  lesson was that requests made mid-build can quietly break a pillar. "Add guns" broke "you have no
119
119
  gun", "make her faster" broke the one-canister economy (its chapter bots could no longer afford the
@@ -9,11 +9,11 @@ loads at build time.
9
9
 
10
10
  Our real games were built this way, and the GDK's games were not.
11
11
 
12
- - **Gallery Heist** was built against `design/gdd/spec/`, written before code. Its README set the
12
+ - **One heist game** was built against `design/gdd/spec/`, written before code. Its README set the
13
13
  order of reading. Its `tunables.json` held every number with an id, a default, a range, a unit,
14
14
  a why and the tests that pin it. It grew from 652 to 941 tunables while lanes built, because each
15
15
  lane wrote its numbers back. It had six rooms whose pars add up to an 18-minute night.
16
- - **Held Note** and **Pocket Crew** kept their levels as data with tested laws, and their bots
16
+ - **Two others** kept their levels as data with tested laws, and their bots
17
17
  finished every level on several seeds.
18
18
  - The GDK games were one screen and one GDD, with the numbers in a markdown table that nothing loaded.
19
19
 
@@ -110,7 +110,7 @@ near its par.
110
110
  `funtools spec lint` checks the folder against itself and the code, and records `.funtools/spec.json`.
111
111
  The GDD stage reads that record past the small tier. It checks:
112
112
 
113
- - the sections the tier needs (Gallery Heist's names count: `crew.md`, `fun-and-difficulty.md`, `sfx.md`);
113
+ - the sections the tier needs (the heist game's names count: `crew.md`, `fun-and-difficulty.md`, `sfx.md`);
114
114
  - every default inside its own range, ids used once, and the tests they name;
115
115
  - unknown ids in the code, the rooms or the spec files (a `P-TUNE-` proposal is a note);
116
116
  - tunables the code never reads, and a tunable's number still typed into `src/`;
@@ -1,9 +1,8 @@
1
1
  # The path, step by step
2
2
 
3
3
  The brief's path, step by step. This is the long form: what each step is for, the tool that helps,
4
- and the signal that says it is done. It is how the owner's best games were made (Held Note's
5
- `design/MAKING.md` writes it down end to end; Gallery Heist, Pocket Crew, The Last Good Robot and
6
- The Hot Gates ran the same way): a plan that is a contract, target frames that show what done
4
+ and the signal that says it is done. It is how the owner's best games were made (one game's
5
+ `design/MAKING.md` writes it down end to end; four others ran the same way): a plan that is a contract, target frames that show what done
7
6
  looks like, the sim first, assets generated and made to behave, and every round spent closing the
8
7
  gap between the game and its targets.
9
8
 
@@ -112,7 +111,7 @@ green throughout.
112
111
  game goes chapter by chapter (the GDD's `## Chapters`, the `chapters` stage): plan the chapter with
113
112
  the owner, make its target frames first, build it to them, show it, and open the next only on their
114
113
  yes (`note verdict chapter:<id> accept "<their words>"`). Fold a
115
- mid-build request back into the pillars before you build it: Held Note's "add guns", "make her
114
+ mid-build request back into the pillars before you build it: one game's "add guns", "make her
116
115
  faster" and "make maneuvers easier" each broke a stated rule until they were folded back.
117
116
  **Done when:** the content list is reached in play.
118
117