@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
@@ -39,7 +39,7 @@ the skeptic."). Each seat scores the same seven axes and overall; the persona de
39
39
  **Blind** means each seat gets what the calibrated panel gets: the frames, a store description, the
40
40
  five AD rules, the screen audit's numbers and its own previous verdict, and nothing else: no design
41
41
  note, no target frame, no verify summary, no builder's explanation, no other seat's scores, no code.
42
- On the same Lanternfall frames, seats briefed with the note and the builder's summary scored 7.10 where
42
+ On the same frames of one game, seats briefed with the note and the builder's summary scored 7.10 where
43
43
  blind seats scored 6.90 (Sonnet, one panel each), and the whole in-loop panel ran 0.6 above the
44
44
  calibrated anchored one, which also saw the payoff frame.
45
45
 
@@ -1,7 +1,7 @@
1
1
  # Plan fidelity: what was planned against what was built
2
2
 
3
- The critic panel never sees the plan, so it cannot see that the game drifted from it. Held Note (a
4
- third-person horror chapter, the Held Note lane, 29 Sep 2026) scored 6.55 overall and 7.62 on look
3
+ The critic panel never sees the plan, so it cannot see that the game drifted from it. A
4
+ third-person horror chapter (29 Sep 2026) scored 6.55 overall and 7.62 on look
5
5
  from the panel; a blind judge holding the same build against its own GDD gave art direction 4 and
6
6
  creative direction 3, and named what the panel could not: the thesis frame's fingers missing from
7
7
  the seam, the first walker at arm's length instead of far down the corridor, a stencil colour that
@@ -42,18 +42,18 @@ the reason, never scored.
42
42
  drew, the splice as it completes, the merge at its pop. A view whose `enter()` replays a recorded run
43
43
  to that beat (the playtest reference's `game.replay.seek('first-walker')`), or a journey mark placed
44
44
  at it, lands there on every build; a clock time drifts the first time the level changes. Two of our
45
- own fallback pairs show the cost: Plush Pop's play view was captured with an empty basket, so the
46
- seat could only say the target's pile and squish were missing; Gesundheit's was captured before
45
+ own fallback pairs show the cost: one game's play view was captured with an empty basket, so the
46
+ seat could only say the target's pile and squish were missing; another's was captured before
47
47
  any sneeze, so the flowers the target promises were not on the ground.
48
48
 
49
49
  **Or pin it to a time on the saved route, and name both.** From the first playtest on, the blind
50
50
  player's steps are kept as the route (`test/journeys/playtest-route.json`) and every playtest replays
51
51
  it with the same viewport and seed. A game frame `at 1:00` (or a moment written `1:00 the first
52
52
  walker`) is the route's frame at that time on the script's own clock: like with like every round,
53
- as Held Note's films were (0:10, 1:00, 2:00, 3:00, 5:00). A row that names both, `at 1:00, view
53
+ as the horror chapter's films were (0:10, 1:00, 2:00, 3:00, 5:00). A row that names both, `at 1:00, view
54
54
  firstWalker`, is judged on the played frame, and the view stays beside it as the staged frame. When
55
55
  the played route never reaches what a staged view or a lane's file shows (no moment, screen or beat
56
- by that name in play), the report says so: Held Note's Diver was showcase art in its lane's frame
56
+ by that name in play), the report says so: the horror chapter's diver was showcase art in its lane's frame
57
57
  and "a few coral points" in play. A moment past the route's end is play that never got there. Keep
58
58
  the route while the level holds; when the level changes, record a new one (`journey record
59
59
  playtest-route --force`) and read the history's next column as a new baseline, which the report marks.
@@ -77,8 +77,8 @@ Borrowed, with credit, from Scenario's quality skills (MIT; research 06 §2.2–
77
77
 
78
78
  ## The plan's interface: UI and UX as imagined or not
79
79
 
80
- The owner's second question, from the Held Note lane: is the interface the one the plan designed?
81
- Held Note's GDD draws its phone HUD and its message screen as HTML at 852 × 393, each element
80
+ The owner's second question, from that game's lane: is the interface the one the plan designed?
81
+ Its GDD draws its phone HUD and its message screen as HTML at 852 × 393, each element
82
82
  numbered with a line of spec ("1 collar ring: health, five cyan lights"; "nothing sits in the middle
83
83
  of the screen"). When a GDD has such mockups (a `.phone` or `[data-mockup]` element in any page under
84
84
  `design/`, the first look's `hud.html` first), `funtools playtest` renders each as an element
@@ -102,7 +102,7 @@ a dodge never taught). Per screen it scores ui (layout, what sits on the charact
102
102
  glass, sizes, the visual language) and ux (does it work as intended); each numbered element held,
103
103
  partly or missing; what the game adds that the plan does not have, and whether each serves or fights
104
104
  the plan's rules; then UI and UX fidelity and five changes. The report puts them beside the art
105
- seat's scores and ranks the changes, a missing planned element first. On Held Note's two mockups
105
+ seat's scores and ranks the changes, a missing planned element first. On that game's two mockups
106
106
  it gave UI 5 and UX 4: of 15 planned elements 3 held, 8 partly and 4 missing, and four additions
107
107
  (a tutorial line at top centre, a permanent minimap) fought "nothing sits in the middle".
108
108
 
@@ -112,8 +112,8 @@ The report puts art direction and creative direction beside the last round, each
112
112
  ranks the seat's changes among the next steps (a broken rule first). A low creative score with a
113
113
  held look usually means the moment was shot at the wrong time or the frame's subject is missing;
114
114
  fix the view or the moment before the art. When three of our games were judged against their
115
- single target frame, Lantern Night kept its palette and lantern design (art 8) but lost the wheel of
116
- lanterns and the visible chain (creative 6); Plush Pop built the target's set but not its round felt
115
+ single target frame, one kept its palette and lantern design (art 8) but lost the wheel of
116
+ lanterns and the visible chain (creative 6); another built the target's set but not its round felt
117
117
  critters or the squish (5 and 3, AD-1 broken).
118
118
 
119
119
  ## After a greenlight lock: reference-match rounds
@@ -1,7 +1,7 @@
1
1
  # Mobile QA: is it native to a phone?
2
2
 
3
3
  The critic panel scores stills (each seat re-reading the phone captures), and the blind player plays by touch.
4
- Neither asks whether the game was made for the phone it runs on. Floe (an ice-slide puzzle, round 3,
4
+ Neither asks whether the game was made for the phone it runs on. An ice-slide puzzle (round 3,
5
5
  29 Sep 2026) scored mobile 7 and up from the panel and passed its blind phone round, and the owner
6
6
  opened it on an iPhone simulator and saw desktop thinking: the board under half the screen, four
7
7
  large on-screen arrows repeating the swipe the board already took, Undo/Restart/Hint panels in the
@@ -95,24 +95,24 @@ showed once, plainly, and prefixes one only some showed with them, "[iOS Safari
95
95
 
96
96
  ## Calibration (29 Sep 2026)
97
97
 
98
- Floe round 3 (read-only copy) and Drift, a scratch swipe puzzle made phone-first for this (swipe
98
+ An ice puzzle's round 3 (read-only copy) and Drift, a scratch swipe puzzle made phone-first for this (swipe
99
99
  anywhere, board 75% of the screen, one undo button bottom-left, pause top-right), each through one
100
100
  seat, real Mobile Safari in both orientations:
101
101
 
102
102
  | Game | Seat | Phone-native | High findings |
103
103
  |---|---|---|---|
104
- | Floe R3 | Opus-class | 5 | controls (four arrows repeat the swipe), play-share (board ~48%) |
105
- | Floe R3 | Opus-class, second run | 6 | controls (arrows repeat the swipe; board ~37% of the screen) |
106
- | Floe R3 | Sonnet-class | 4 | controls, play-share (board ~40%) |
107
- | Floe R3 | Opus-class, with the window sweep | 6 | controls (arrows repeat the swipe; board ~44%) |
104
+ | Ice puzzle R3 | Opus-class | 5 | controls (four arrows repeat the swipe), play-share (board ~48%) |
105
+ | Ice puzzle R3 | Opus-class, second run | 6 | controls (arrows repeat the swipe; board ~37% of the screen) |
106
+ | Ice puzzle R3 | Sonnet-class | 4 | controls, play-share (board ~40%) |
107
+ | Ice puzzle R3 | Opus-class, with the window sweep | 6 | controls (arrows repeat the swipe; board ~44%) |
108
108
  | Drift | Opus-class | 8 | none (landscape board small: medium) |
109
109
  | Drift | Sonnet-class | 7 | none |
110
- | Plush Pop R3 | Opus-class, with the window sweep | 6 | none; medium: left/right/Drop buttons beside a drag the basket takes, the basket ~35% of the Mobile Safari page, landscape a squeezed sidebar |
110
+ | Basket game R3 | Opus-class, with the window sweep | 6 | none; medium: left/right/Drop buttons beside a drag the basket takes, the basket ~35% of the Mobile Safari page, landscape a squeezed sidebar |
111
111
 
112
- The first-paint times of the window sweep ran 2.5–7.7 s for Floe on a machine at load 50–60: read
112
+ The first-paint times of the window sweep ran 2.5–7.7 s for the ice puzzle on a machine at load 50–60: read
113
113
  them against runs made the same way, as the profile's numbers.
114
114
 
115
- The funtools scaffold is gesture-first since the Riad Rush phone round: a swipe on the play steps,
115
+ The funtools scaffold is gesture-first since one game's phone round: a swipe on the play steps,
116
116
  a tap or swipe up hops, and its on-screen buttons are a setting, off by default.
117
117
 
118
118
  ## Sources
@@ -120,4 +120,4 @@ a tap or swipe up hops, and its on-screen buttons are a setting, off by default.
120
120
  - The harness's mobile reviewer: `mobile_review.txt` (severity discipline, plan as intent),
121
121
  `quirks_mobile.txt` (thumb zones, targets, safe areas), `sections/base/mobile.txt`.
122
122
  - Skill `fp:mobile-ui`, `references/phone-check.md`: the 28 phone fixes and the four looks.
123
- - Floe's round 3 and the owner's look at it on an iPhone simulator.
123
+ - The ice puzzle's round 3 and the owner's look at it on an iPhone simulator.
@@ -2,11 +2,11 @@
2
2
 
3
3
  A playtest is the mirror held up between creator rounds: free measurements, three blind critics and
4
4
  a blind phone player look at the same build, and a short ranked list says what stands between this
5
- round and the next. It applies nothing. This page is what the Held Note lane learned running that
5
+ round and the next. It applies nothing. This page is what one game's lane learned running that
6
6
  loop on a survival-horror chapter in Three.js (29 Sep 2026): what made the evidence trustworthy,
7
7
  what misled once, and what the person read. Take what fits your game.
8
8
 
9
- Held Note, round by round, same panel words and bar:
9
+ That game, round by round, same panel words and bar:
10
10
 
11
11
  | Round | Overall | Look and feel | What happened |
12
12
  |---|---|---|---|
@@ -33,12 +33,12 @@ does scores it kinder (0.2 in the calibration): the separation is the instrument
33
33
  |---|---|---|
34
34
  | free measures | the build | numbers nobody argues with: HUD cover, text size, contrast, ΔE, frame time, verb timings |
35
35
  | three critic seats | premise, frames, facts | three personas notice different things; each re-reads the phone captures (no mobile seat) |
36
- | blind phone player | premise, the screen, touch | the only seat that plays: it finds what stills cannot (Held Note: the camera entering walls, a tell too short to see on a muted phone, a tap that cut nothing and showed nothing) |
36
+ | blind phone player | premise, the screen, touch | the only seat that plays: it finds what stills cannot (one game: the camera entering walls, a tell too short to see on a muted phone, a tap that cut nothing and showed nothing) |
37
37
  | report | all of the above | ranks what blocks a new player first, then what several seats asked for, weighted by where the game trails its genre hit most, so one loud seat does not set the agenda |
38
38
 
39
39
  ## The loop, round after round (the default)
40
40
 
41
- Held Note's v1 → v4 pages were worth reading because the instrument stayed the same; `playtest`
41
+ That game's v1 → v4 pages were worth reading because the instrument stayed the same; `playtest`
42
42
  runs that loop by default, and a round can run less.
43
43
 
44
44
  - **One route, one camera.** The first blind round's steps become the saved route; later playtests
@@ -54,7 +54,7 @@ runs that loop by default, and a round can run less.
54
54
 
55
55
  ## Look at the captures before you trust a score
56
56
 
57
- Held Note's first v2 round scored 4.9, and the seats were right about what they were shown. When the
57
+ Its first v2 round scored 4.9, and the seats were right about what they were shown. When the
58
58
  game was split into modules, the capture hooks reached the game through a loose cast; the replay
59
59
  cursor and the intro timer had moved, the cast hid it, and every view's fast-forward silently left
60
60
  the game at t = 0 behind the opening shot. Twenty frames of the title card's camera, scored as a
@@ -91,27 +91,27 @@ export function views(game: Game) {
91
91
  - **Name the actors so the instruments find them.** `look --read` measures the player and the
92
92
  threats against the ground around them. Name each actor's root node `player-…` or `threat-…`
93
93
  (or set `userData.role`); once a scene tags a role, only tagged nodes play it. Without tags it
94
- falls back to the usual words, which in Held Note took a prop, `hazard_barrier`, as a threat, and
94
+ falls back to the usual words, which in that game took a prop, `hazard_barrier`, as a threat, and
95
95
  the seats read "threat ΔE 0.7, weakest hazard_barrier at ΔE 0.5". Read the line `look --read` prints per role (how it found the
96
96
  role, the nodes it took) before reading its number.
97
97
  - **Wire `feel` early.** Expose `hero { x, y, grounded, unit, vx, state, invulnerable }`,
98
98
  `threats [{ id, phase }]` with a tell and a strike phase, `dead` and `control` in `__FPX_STATE__`,
99
- and write `test/feel.json` (skill `fp:game-feel`, references/measure.md). It read Held
100
- Note's dodge back from real key presses: 1.92 m in 0.30 s against the design's 2.0 m in 0.26 s,
99
+ and write `test/feel.json` (skill `fp:game-feel`, references/measure.md). It read one
100
+ game's dodge back from real key presses: 1.92 m in 0.30 s against the design's 2.0 m in 0.26 s,
101
101
  untouchable for 0.217 s against 0.21. Its script never reached a walker, so the tell, the death
102
102
  beat and the restart stayed "not measured": a script that walks to the first threat is what
103
103
  measures the fight.
104
104
  - **Run `feel` twice.** The first run's long frame (a warm-up shader compile) moved the wall-clock
105
105
  windows; one run's dodge hit the rail. Two runs that agree are a measurement; one is an anecdote.
106
106
  - **Faded screens.** The HUD judge and the phone audit skip what a faded or hidden ancestor hides.
107
- Held Note's chapter card, faded to opacity 0 but still on the page, once counted as HUD all
107
+ One game's chapter card, faded to opacity 0 but still on the page, once counted as HUD all
108
108
  chapter (41% of the play); taking faded layers out of the page after their fade also keeps them
109
109
  from screen readers.
110
110
 
111
111
  ## Films that show the game
112
112
 
113
113
  A still cannot carry a fight, so the review page leads with one filmed run: a bot on the real
114
- controls, nothing staged. Bots that only walk the route make films with no combat: Held Note's
114
+ controls, nothing staged. Bots that only walk the route make films with no combat: one game's
115
115
  route bots never fired the driver or used the knife, so no film showed the weapons the owner asked
116
116
  for. A film-only `fighter` bot style that plays the verbs a keen player would fixed it, while the
117
117
  tests keep the median bot, because tests measure a typical player and a film shows what the game
@@ -122,7 +122,7 @@ rebuild partway through a round leaves late steps on newer code (say so when it
122
122
  ## What the review page carries
123
123
 
124
124
  `playtest report` writes `report.md`: the ranked steps, this round against the last and the genre
125
- hit, what each seat said, the measures and the cost. The page Held Note's owner read added what
125
+ hit, what each seat said, the measures and the cost. The page that game's owner read added what
126
126
  only the creator can assemble, and each part earned its place:
127
127
 
128
128
  1. **The score against the last round**, overall and look-and-feel, the seats' scores, each
@@ -139,8 +139,8 @@ only the creator can assemble, and each part earned its place:
139
139
  (a script that never reached a walker is a finding about the script, not a pass).
140
140
  8. **Target frames against the game**: each GDD target frame beside the same beat in the game,
141
141
  one line each, "Close" or "Right idea", then what is missing.
142
- 9. **A pillar audit against the GDD**: each pillar graded, what matches, what still drifts. Held
143
- Note found requests made mid-build ("add guns", "make her faster") had quietly broken stated
142
+ 9. **A pillar audit against the GDD**: each pillar graded, what matches, what still drifts. One game
143
+ found requests made mid-build ("add guns", "make her faster") had quietly broken stated
144
144
  pillars; re-reading the pillars after each request folded them back in.
145
145
  10. **The critics in their own words**: each seat's one-line quote and its overall.
146
146
  11. **The blind round**: the steps where it struggled, as frames, its verdict and the caveats.
@@ -153,7 +153,7 @@ The kit does not build this page yet: `report.json` holds the numbers, `frames/`
153
153
 
154
154
  ## When the numbers disagree with your eyes
155
155
 
156
- Trust neither alone. Held Note's threat read ΔE 0.7 on the phone, part of it measured on a prop, and
156
+ Trust neither alone. One game's threat read ΔE 0.7 on the phone, part of it measured on a prop, and
157
157
  the critics independently called the walkers hard to read in the dark; the step stood on the
158
158
  critics and the frames: light the dark a notch. When a
159
159
  number says pass and the frames look wrong, the instrument may be measuring the wrong thing (the
@@ -1,16 +1,16 @@
1
1
  # Proving a Unity build plays
2
2
 
3
- This skill is the order of checks that shows a build boots, plays to a win and a loss, and logs no exception. The failure it prevents is trusting what a capture shows: a Dawg Ball tour log held 321 exceptions while every screenshot looked fine, and Pocket Crew's first TestFlight build drew every moving platform frozen after the first level, behind 1,118 green tests. A check sees only the path it runs, so these steps run the paths players take.
3
+ This skill is the order of checks that shows a build boots, plays to a win and a loss, and logs no exception. The failure it prevents is trusting what a capture shows: one game's tour log held 321 exceptions while every screenshot looked fine, and another's first TestFlight build drew every moving platform frozen after the first level, behind 1,118 green tests. A check sees only the path it runs, so these steps run the paths players take.
4
4
 
5
5
  ## Tools
6
6
 
7
7
  Not shipped by the kit: the Unity starter, its one `check` command (exit codes 0 pass, 1 fail, 2 not observed, 3 error), the checks below and the studio scripts they were learned with (`unity_check.py`, `unity_sim.sh`, `smoke_sim.sh`, `pcplay.py`, `testflight.sh`'s pre-flight, per-game smoke, remote-play and perf scripts) are proposed. Until the starter ships, run each step with what exists:
8
8
 
9
- - Compile and test: `dotnet build` and `dotnet test` on the engine-free core (its `CoreTests~` project; Unity ships a `dotnet` under `Contents/Resources/Scripting/DotNetSdk/`), and Unity's test runner for the rest: `funtools unity run -- -nographics -runTests -testPlatform EditMode -testResults results.xml` (the machine-wide queue: one run per project across agents; never with `-quit`: the test runner exits by itself). Play Mode tests run the same way with `-testPlatform PlayMode`; Floe Jam's `unity/build.sh test` runs Edit Mode then Play Mode (`FloeJam.PlayTests`) and reads the NUnit XML, the only project that does.
10
- - Build for the Simulator with the studio's `com.joydle.core` (fp:unity-game, `references/studio-packages.md`): `funtools unity run -- -nographics -buildTarget iOS -executeMethod Joydle.Core.Editor.BuildTools.SimulatorDev` (a development build: its dev flags and test ads work; `Simulator` is the stripped release build), then `xcodebuild -project Unity-iPhone.xcodeproj -scheme Unity-iPhone -sdk iphonesimulator build`; install and launch on a Simulator of your own (`udid=$(funtools sim lease)`) with `xcrun simctl install $udid <app>` and `xcrun simctl launch --console-pty $udid <bundle id> -smoke`, never `booted` (it may be another agent's), and `funtools sim release $udid` at the end. About 5–10 minutes a round.
9
+ - Compile and test: `dotnet build` and `dotnet test` on the engine-free core (its `CoreTests~` project; Unity ships a `dotnet` under `Contents/Resources/Scripting/DotNetSdk/`), and Unity's test runner for the rest: `funtools unity run -- -nographics -runTests -testPlatform EditMode -testResults results.xml` (the machine-wide queue: one run per project across agents; never with `-quit`: the test runner exits by itself). Play Mode tests run the same way with `-testPlatform PlayMode`; one game's `unity/build.sh test` runs Edit Mode then Play Mode and reads the NUnit XML, the only project that does.
10
+ - Build for the Simulator with the game's own build method: `funtools unity run -- -nographics -buildTarget iOS -executeMethod Setup.BuildSimulatorDev` (a development build: its dev flags and test ads work; keep a stripped release Simulator build beside it), then `xcodebuild -project Unity-iPhone.xcodeproj -scheme Unity-iPhone -sdk iphonesimulator build`; install and launch on a Simulator of your own (`udid=$(funtools sim lease)`) with `xcrun simctl install $udid <app>` and `xcrun simctl launch --console-pty $udid <bundle id> -smoke`, never `booted` (it may be another agent's), and `funtools sim release $udid` at the end. About 5–10 minutes a round.
11
11
  - A smoke run: a dev-only launch flag in your game that plays from the title to an ending and writes `smoke.txt` to the app's Documents; read it with `xcrun simctl get_app_container $udid <bundle id> data`.
12
- - Dev flags: launch arguments for dev builds that jump to a state or start a bot (the games used `-autoplay -startlevel N`, `-hg-seed 7 -hg-autoplay`, and a tour flag that writes every menu to PNG), read through `LaunchArgs.Get()` behind the game's own dev gate, with `Telemetry.Muted` set while a flag is on. A launch with any flag also skips the studio splash (`-splash` forces it).
13
- - Hand play from a script: `npx @funpixel/tools unity play start`, then `play tap`, `drag`, `key`, `pad`, `state`, `ui`, `shot`, `record` and `end` (the kit's `com.funpixel.probe`, lifted from Pocket Crew's remote play: real Input System device state, in the game's own upright coordinates). `unity probe --path path.json` plays a scripted path and measures it; `unity capture --all` shoots every registered view (fp:unity-game, `references/probe.md`).
12
+ - Dev flags: launch arguments for dev builds that jump to a state or start a bot (the games used `-autoplay -startlevel N`, `-seed 7 -autoplay`, and a tour flag that writes every menu to PNG), read natively (Mono never sees `simctl launch` arguments) behind the game's own dev gate, with telemetry muted while a flag is on.
13
+ - Hand play from a script: `npx @funpixel/tools unity play start`, then `play tap`, `drag`, `key`, `pad`, `state`, `ui`, `shot`, `record` and `end` (the kit's `com.funpixel.probe`, lifted from one game's remote play: real Input System device state, in the game's own upright coordinates). `unity probe --path path.json` plays a scripted path and measures it; `unity capture --all` shoots every registered view (fp:unity-game, `references/probe.md`).
14
14
  - Screens: `funtools sim shot $udid --out shot.png`, upright in the game's orientation; `funtools sim tap $udid x y` presses a point of that picture.
15
15
 
16
16
  ## Checks
@@ -47,14 +47,14 @@ A person still checks feel on a real phone and audio by ear.
47
47
 
48
48
  ## Worked example
49
49
 
50
- Pocket Crew, a three.js port with 26 levels. Build 1 went to TestFlight behind 1,118 green tests, and every level after the first of a session drew its movers frozen: a warm-up had left the views bound to a throwaway sim. Every audit had started levels fresh at boot, so none saw it. Once fixed, the audit's frozen category went from 219 to 0. A production gate (fresh install, every level through real flows, 7 kill-and-relaunch cycles, every setting persisted) found 4 more bugs behind 1,377 green tests. Hand play through the game's remote-play server found what bots had passed: fans that looked walkable, Tiny Pip drawn as a speck, and threats under the buttons.
50
+ A three.js port with 26 levels. Build 1 went to TestFlight behind 1,118 green tests, and every level after the first of a session drew its movers frozen: a warm-up had left the views bound to a throwaway sim. Every audit had started levels fresh at boot, so none saw it. Once fixed, the audit's frozen category went from 219 to 0. A production gate (fresh install, every level through real flows, 7 kill-and-relaunch cycles, every setting persisted) found 4 more bugs behind 1,377 green tests. Hand play through the game's remote-play server found what bots had passed: fans that looked walkable, the smallest hero drawn as a speck, and threats under the buttons.
51
51
 
52
52
  ## Common mistakes
53
53
 
54
- - Launching with dev flags every time. Dawg Ball's `-db-*` flags muted telemetry, so a Firebase crash path first ran when the owner launched normally.
55
- - A smoke that asserts only "no errors". Scrap Riot's bot failed to beat the boss for 11 minutes, then stood holding USE; the run now uses `-lgr-god`, `DebugBossHit` and a walk-to-lever script.
56
- - Reading screenshots and skipping the log. In Dawg Ball a NullReferenceException in `Hud.Pad` hung a demo match silently.
54
+ - Launching with dev flags every time. One game's dev flags muted telemetry, so a Firebase crash path first ran when the owner launched normally.
55
+ - A smoke that asserts only "no errors". One game's bot failed to beat the boss for 11 minutes, then stood holding USE; the run now uses a god-mode flag, `DebugBossHit` and a walk-to-lever script.
56
+ - Reading screenshots and skipping the log. In one game a NullReferenceException in `Hud.Pad` hung a demo match silently.
57
57
  - Trusting benches for boot. A static cache declared after the colours it used threw a TypeInitializationException and no build booted for about 7 h; which game is not in the report.
58
- - Hand-written `.csproj` files left ignored by git. Dead Letter's tests could not run from a fresh clone.
59
- - A regression test that passes on the old code, as a Dawg Ball cheat test did.
58
+ - Hand-written `.csproj` files left ignored by git. One game's tests could not run from a fresh clone.
59
+ - A regression test that passes on the old code, as one game's cheat test did.
60
60
  - Shipping without the audio check. All four first games reached TestFlight silent, because a camera made in code has no AudioListener (`funtools doctor` warns before the build).
@@ -96,4 +96,4 @@ clear, a ring round the tower, in 3 draw calls. The opening: title
96
96
  - A strange number never explained. Voices placed by room and deed, cards that name what happened:
97
97
  [references/opening-and-chapters.md](references/opening-and-chapters.md#a-radio-placed-rather-than-narrated).
98
98
 
99
- Where this comes from: the hits (research 18), Crayon's GDD (research 19), Held Note, our lab.
99
+ Where this comes from: the hits (research 18), Crayon's GDD (research 19), our own games, our lab.
@@ -1,7 +1,7 @@
1
1
  # Atmosphere: a world that notices the player
2
2
 
3
- A place feels alive when things in it move on their own and answer what the player does. Saltwake
4
- (our racer, 29 Sep) played well and still read as "a game of shapes": no one in the stands, nothing
3
+ A place feels alive when things in it move on their own and answer what the player does. Our
4
+ racer (29 Sep) played well and still read as "a game of shapes": no one in the stands, nothing
5
5
  at the trackside, no moment at the finish. The owner's words: "environment and crowd cheers were
6
6
  missing". This page is a shelf of patterns per genre and the cheap code under them. Pick what the
7
7
  brief wants; a puzzle in an empty white room may want none of it, on purpose.
@@ -175,7 +175,7 @@ The end of a race or a round is the moment players remember, so stage it like th
175
175
  2. The crowd at its loudest, a sting, the stand on its feet.
176
176
  3. Light: flashbulbs (small white sprites flickering at random in the stands for 1.5 s), a burst of
177
177
  confetti in the team colours, fireworks at night (particles: skill `fp:art`).
178
- 4. Someone says something: the announcer ("And it's Saltwake by a nose!"), a rival's line, the
178
+ 4. Someone says something: the announcer ("And it's the blue boat by a nose!"), a rival's line, the
179
179
  coach. One line, on screen and voiced if you have voice (see [voice.md](voice.md)).
180
180
  5. Then the result card over the still-cheering world, not over a black screen.
181
181
 
@@ -187,7 +187,7 @@ erupts, and declare the view `moment: true` so capture shoots it as a burst.
187
187
  Horror inverts the pattern: the world reacts by going quiet. Keep the bed low and let it drop out
188
188
  entirely about a second before a threat appears, so the silence is the warning. Space distant
189
189
  sounds unevenly (8–25 s apart, never on a timer the player can learn), pan them, and put one
190
- sound close and behind at the worst moment. Held Note's hum rising under the last recorder line is
190
+ sound close and behind at the worst moment. One horror game's hum rising under the last recorder line is
191
191
  the model: the world answers the story, not the player's score.
192
192
 
193
193
  ## Budget and cost
@@ -1,6 +1,6 @@
1
1
  # A living world: people, creatures and a place that moves
2
2
 
3
- The owner's verdict after three rounds of one game built two ways (Blue Freight, Oct 2026): "both
3
+ The owner's verdict after three rounds of one game built two ways (Oct 2026): "both
4
4
  did nice work, some in environment, some in dynamics... models static, NPCs static: it has to be a
5
5
  living environment." The build that lost on dynamics had 28 townsfolk animated in place (none
6
6
  walked anywhere), kites that slid, a still hound and one person standing inside a container. The
@@ -171,7 +171,7 @@ mesh.geometry.attributes.aAnim.needsUpdate = true;
171
171
  ## Technique 4: painted cut-outs that animate (Pixi, and billboards in Three)
172
172
 
173
173
  A picture moved is motion, not animation: a crab sprite slid along the ground, a goat card that bobs
174
- or flips, a kite that drifts and pulses its opacity all read as stones (fresh Blue Freight, 3 Oct).
174
+ or flips, a kite that drifts and pulses its opacity all read as stones (a fresh build of that game, 3 Oct).
175
175
  A cut-out lives by one of four means. **Frames by distance:** a walker gets 6+ frames, the hero
176
176
  8–12 (contact, down, passing, up for each foot), and the frame advances by ground covered, one
177
177
  cycle per about 0.8 body heights (1.4 m at 1.75 m), so it never treadmills when standing or skates
@@ -157,7 +157,7 @@ story.start(save.data.chapter ?? 0, save.data.step ?? 0);
157
157
 
158
158
  ## A radio, placed rather than narrated
159
159
 
160
- Held Note (a three.js horror game, 29 Sep 2026) told its story through two sources with different
160
+ One three.js horror game (29 Sep 2026) told its story through two sources with different
161
161
  voices, both in the world: the station speaks only in readouts (who is behind a door, open water,
162
162
  lift power, the nearest dead relay when she is lost), and a recorder plays fragments of the crew's
163
163
  last night, timestamped, with the enemies' hum rising under them until the last line ends in
@@ -34,7 +34,7 @@ words, it is the voice, the timing and the testing of each one.
34
34
  ## The outer story, at 10 minutes and up
35
35
 
36
36
  A want inside the hero is not enough past ten minutes; the player needs something to point at.
37
- Five lines in the GDD, each something the player sees or does. Blue Freight lacked all five.
37
+ Five lines in the GDD, each something the player sees or does. One of our games lacked all five.
38
38
 
39
39
  | Line | What it is | From |
40
40
  |---|---|---|
@@ -137,7 +137,7 @@ player does not hear the opening twice.
137
137
 
138
138
  ## Staged versus played
139
139
 
140
- A beat that exists only in a staged view is not in the game. The Held Note playtest caught a
140
+ A beat that exists only in a staged view is not in the game. One game's playtest caught a
141
141
  showcase frame play never reached; the same happens to story. Three places see it:
142
142
 
143
143
  - `funtools depth` reads the `## Story` table and the `beat` field in real play logs (blind
@@ -19,7 +19,7 @@ So for real words, four honest options: the platform's voice, then three cheaper
19
19
 
20
20
  **A story game offers voice by default** (the Silt bar S3:
21
21
  at least one voiced line before first control, every line voiced and captioned, a line advancing on
22
- its clip's end). Silt voiced 57 lines heard by objective 33; Blue Freight typed its radio lines and
22
+ its clip's end). Silt voiced 57 lines heard by objective 33; one of our games typed its radio lines and
23
23
  lost on it. So for a game with a story, characters who speak or a cold open, the plan's Art budget
24
24
  lists the voiced lines with their price as the default, and the creator picks voice, one of the
25
25
  cheaper options below, or none: still priced, still the creator's choice, never made unasked. For an
@@ -87,7 +87,7 @@ the demo with your game (`rules.ts`, `session.ts`, `game.ts`, `feel.ts`, `hud.ts
87
87
  paths, an environment map (they render flat grey without one), and `mixer.update(dt)` every frame.
88
88
  - Pixi: every display object gets a `.label`; `window.__PIXI_APP__ = app` after `app.init()`.
89
89
  - Room codes, share codes and seeds carry `data-funpixel-selectable` (else they cannot be copied).
90
- - `@funpixel/sdk` is pinned exactly (`"0.6.0"`). Import the root only for `setupGameResize`;
90
+ - `@funpixel/sdk` is pinned exactly (`"0.7.0"`). Import the root only for `setupGameResize`;
91
91
  everything else from a subpath. Multiplayer is `Room.autoJoin(getGameKey(), …)`, never a raw
92
92
  WebSocket (skill `funpixel-game-spine`).
93
93
  - A performance fix changes how a frame is made (pooling, atlases, instancing), never what it shows.
@@ -14,4 +14,4 @@ Copy `AGENTS.md` into a game that has none (`funtools init` writes one). The sha
14
14
 
15
15
  See `skills/fp-studio/SKILL.md` for the exact review evidence format. A real clean-host game run remains the acceptance test.
16
16
 
17
- Generated by `funpixel-mono/gdk` (`npm run build`); edit the source there, never this copy.
17
+ This folder is built from Funpixel's source and published as is: changes made here are replaced by the next release.
@@ -87,7 +87,7 @@ the demo with your game (`rules.ts`, `session.ts`, `game.ts`, `feel.ts`, `hud.ts
87
87
  paths, an environment map (they render flat grey without one), and `mixer.update(dt)` every frame.
88
88
  - Pixi: every display object gets a `.label`; `window.__PIXI_APP__ = app` after `app.init()`.
89
89
  - Room codes, share codes and seeds carry `data-funpixel-selectable` (else they cannot be copied).
90
- - `@funpixel/sdk` is pinned exactly (`"0.6.0"`). Import the root only for `setupGameResize`;
90
+ - `@funpixel/sdk` is pinned exactly (`"0.7.0"`). Import the root only for `setupGameResize`;
91
91
  everything else from a subpath. Multiplayer is `Room.autoJoin(getGameKey(), …)`, never a raw
92
92
  WebSocket (skill `funpixel-game-spine`).
93
93
  - A performance fix changes how a frame is made (pooling, atlases, instancing), never what it shows.
@@ -1,3 +1,3 @@
1
1
  {
2
- "hash": "ec92c635aaac1cab"
2
+ "hash": "47443d9a284e95f9"
3
3
  }
@@ -15,7 +15,7 @@ description, AD rules, screen measurements and their own previous verdict; anoth
15
15
  or the builder's code pull them toward it.
16
16
 
17
17
  Run each critic seat separately, and let all four finish before handing back: a seat left running
18
- in the background answered after one session had ended (Lantern Night S3). Codex's SubagentStop
18
+ in the background answered after one session had ended (one game's third session). Codex's SubagentStop
19
19
  hook records their final messages, including asynchronous completions. If the host cannot
20
20
  provide isolated agents or trusted hooks, report that acceptance step as unverified. The gate
21
21
  cannot tell a verdict file the builder wrote from a seat's, so the files are the seats' alone. Role skills express access rules; they do not implement a host permission
@@ -16,7 +16,7 @@ export const PANEL_DEFAULT = 7.3;
16
16
  export const CATALOGUE = {
17
17
  pitch: {
18
18
  title: 'Invent and pitch',
19
- why: 'a game whose answers are generic loses to one that invented something (Gallery Heist A/B, 3 of 3 seats)',
19
+ why: 'a game whose answers are generic loses to one that invented something (an A/B, 3 of 3 seats)',
20
20
  gates: [{ kind: 'gdd', headings: ['The invention'] }, { kind: 'studio' }, { kind: 'worth' }],
21
21
  rules: [
22
22
  'Answer the six forcing questions for THIS game in the GDD\'s `## The invention`: what the core object means, why the verb exists in this world, who wants what (names), what the twist costs, the one system that lives, what only this game has. A generic answer means the idea is not there yet.',
@@ -71,20 +71,20 @@ export const CATALOGUE = {
71
71
  },
72
72
  'first-look': {
73
73
  title: 'First look',
74
- why: 'identity drifts between frames unless it is locked first (Blue Freight: 7 of 7 redraws on-model with reference sheets)',
74
+ why: 'identity drifts between frames unless it is locked first (one game: 7 of 7 redraws on-model with reference sheets)',
75
75
  gates: [{ kind: 'refs', min: 1 }, { kind: 'targets', min: 4 }, { kind: 'kit' }, { kind: 'set' }],
76
76
  rules: [
77
77
  `The whole game, not a few frames (owner, 4 Oct, asked twice): key art; every screen (the title as the play world, pause, the end; past small settings, results, a level select); the HUD on the phone and the desktop; a frame per place, each tied to a story beat; a living-world sheet; an animation board; a juice board; the sound list; the fun page. \`${T} firstlook\` lists what is missing; places and the living world only for a world game.`,
78
78
  'Reference sheets (identity lock) BEFORE moment frames; every recurring design drawn with its references and one verbatim style block.',
79
79
  'A target frame per hook moment at the play framing (desktop 1280x720, phone held sideways 852x393).',
80
- `The world's kit beside the hero: sheets of its made parts (structures, ground, props, the living cast), cut into pieces before the slice (\`${T} cut\`); the slice is built from them, never from plain shapes (a fresh Blue Freight build shipped code-drawn primitives until the owner's note).`,
80
+ `The world's kit beside the hero: sheets of its made parts (structures, ground, props, the living cast), cut into pieces before the slice (\`${T} cut\`); the slice is built from them, never from plain shapes (a fresh build shipped code-drawn primitives until the owner's note).`,
81
81
  'A picture of every place; no two places alike in shape, material, era and light.',
82
82
  'The HUD mockup drawn over a target frame.',
83
83
  ],
84
84
  },
85
85
  'core-test': {
86
86
  title: 'Core test (A1): the game bites',
87
- why: 'both Blue Freight builds spent their rounds on looks and the challenge never bit ("no challenges at all")',
87
+ why: 'both builds of one game spent their rounds on looks and the challenge never bit ("no challenges at all")',
88
88
  gates: [{ kind: 'tests' }, { kind: 'sim' }],
89
89
  rules: [
90
90
  `The GDD's named bots play the REAL level (\`${T} sim\`): an engine-free, fixed-step, seeded sim, plus a replay test.`,
@@ -119,7 +119,7 @@ export const CATALOGUE = {
119
119
  },
120
120
  expand: {
121
121
  title: 'Expand, room by room',
122
- why: 'our real games are 10 to 18 minutes of designed play, grown room by room from a slice that passed (Gallery Heist: "nothing in Rooms 2-6 starts until the slice passes its gates")',
122
+ why: 'our real games are 10 to 18 minutes of designed play, grown room by room from a slice that passed (one plan: "nothing in Rooms 2-6 starts until the slice passes its gates")',
123
123
  gates: [{ kind: 'rooms' }],
124
124
  rules: [
125
125
  `Slice first: a room is opened for building only once the room before it passes (\`${T} rooms open <id>\`); the owner alone releases one early (\`--by owner\`).`,
@@ -162,7 +162,7 @@ export const CATALOGUE = {
162
162
  },
163
163
  'blind-play': {
164
164
  title: 'Blind play from the title',
165
- why: 'blind players from the title found the blockers no panel could (Held Note)',
165
+ why: 'blind players from the title found the blockers no panel could',
166
166
  gates: [{ kind: 'play' }, { kind: 'sim' }],
167
167
  rules: [
168
168
  `A blind player from the title, no instructions (\`${T} play\`): a stall counts as blocking.`,
@@ -51,7 +51,7 @@ export const CATALOGUE = [
51
51
  { id: 'cutscenes', label: 'Cutscenes', why: 'one earned cinematic (the ending, a reveal), skippable', cost: '$1–3 each, plus a scene to stage' },
52
52
  { id: 'photo', label: 'Photo mode', why: 'players share the wow moments; the share card carries the game', cost: 'a free camera, a frame and a share sheet: about a day' },
53
53
  { id: 'multiplayer', label: 'Multiplayer', why: 'friends in one room through the relay', cost: 'doubles the test work; the host owns the world state' },
54
- { id: 'two-takes', label: 'Two takes', why: 'for a deep game: two parallel builds of the same locked plan, each winning different areas (one the environment, one the dynamics); `funtools compare-takes` plays both from the title and writes a best-of-both table, and the mix beats both (Blue Freight, 3 rounds)', cost: 'twice the build sessions, plus a merge round' },
54
+ { id: 'two-takes', label: 'Two takes', why: 'for a deep game: two parallel builds of the same locked plan, each winning different areas (one the environment, one the dynamics); `funtools compare-takes` plays both from the title and writes a best-of-both table, and the mix beats both (one game, 3 rounds)', cost: 'twice the build sessions, plus a merge round' },
55
55
  { id: 'none', label: 'None', why: 'everything goes into the core' },
56
56
  ],
57
57
  },
@@ -22,8 +22,8 @@ whole-game target creation belongs to an unresolved or new-game direction.
22
22
  comfort (match the targets' quality, not their density), and framing numbers left to the owner
23
23
  (`funpixel-art`, references/judging-frames.md).
24
24
  3. **Generated assets.** The words live in `assets/style.json`: the medium sentence, the palette
25
- roles, one isolation clause per asset family. Sets drift when each prompt is free text (The Last
26
- Good Robot shipped a whole family at 0% chroma), so a new asset changes the subject or the
25
+ roles, one isolation clause per asset family. Sets drift when each prompt is free text (one game
26
+ shipped a whole family at 0% chroma), so a new asset changes the subject or the
27
27
  repair and keeps the rest of the words.
28
28
  4. **Asset specs.** Before generation, list the assets this task needs and settle the choices that
29
29
  change the result. For each: family, role size, the reference it uses, the one-line prompt
@@ -15,7 +15,7 @@ description, AD rules, screen measurements and their own previous verdict; anoth
15
15
  or the builder's code pull them toward it.
16
16
 
17
17
  Run each critic seat separately, and let all four finish before handing back: a seat left running
18
- in the background answered after one session had ended (Lantern Night S3). Codex's SubagentStop
18
+ in the background answered after one session had ended (one game's third session). Codex's SubagentStop
19
19
  hook records their final messages, including asynchronous completions. If the host cannot
20
20
  provide isolated agents or trusted hooks, report that acceptance step as unverified. The gate
21
21
  cannot tell a verdict file the builder wrote from a seat's, so the files are the seats' alone. Role skills express access rules; they do not implement a host permission
@@ -15,7 +15,7 @@ description, AD rules, screen measurements and their own previous verdict; anoth
15
15
  or the builder's code pull them toward it.
16
16
 
17
17
  Run each critic seat separately, and let all four finish before handing back: a seat left running
18
- in the background answered after one session had ended (Lantern Night S3). Codex's SubagentStop
18
+ in the background answered after one session had ended (one game's third session). Codex's SubagentStop
19
19
  hook records their final messages, including asynchronous completions. If the host cannot
20
20
  provide isolated agents or trusted hooks, report that acceptance step as unverified. The gate
21
21
  cannot tell a verdict file the builder wrote from a seat's, so the files are the seats' alone. Role skills express access rules; they do not implement a host permission
@@ -15,7 +15,7 @@ description, AD rules, screen measurements and their own previous verdict; anoth
15
15
  or the builder's code pull them toward it.
16
16
 
17
17
  Run each critic seat separately, and let all four finish before handing back: a seat left running
18
- in the background answered after one session had ended (Lantern Night S3). Codex's SubagentStop
18
+ in the background answered after one session had ended (one game's third session). Codex's SubagentStop
19
19
  hook records their final messages, including asynchronous completions. If the host cannot
20
20
  provide isolated agents or trusted hooks, report that acceptance step as unverified. The gate
21
21
  cannot tell a verdict file the builder wrote from a seat's, so the files are the seats' alone. Role skills express access rules; they do not implement a host permission
@@ -15,7 +15,7 @@ description, AD rules, screen measurements and their own previous verdict; anoth
15
15
  or the builder's code pull them toward it.
16
16
 
17
17
  Run each critic seat separately, and let all four finish before handing back: a seat left running
18
- in the background answered after one session had ended (Lantern Night S3). Codex's SubagentStop
18
+ in the background answered after one session had ended (one game's third session). Codex's SubagentStop
19
19
  hook records their final messages, including asynchronous completions. If the host cannot
20
20
  provide isolated agents or trusted hooks, report that acceptance step as unverified. The gate
21
21
  cannot tell a verdict file the builder wrote from a seat's, so the files are the seats' alone. Role skills express access rules; they do not implement a host permission
@@ -15,7 +15,7 @@ description, AD rules, screen measurements and their own previous verdict; anoth
15
15
  or the builder's code pull them toward it.
16
16
 
17
17
  Run each critic seat separately, and let all four finish before handing back: a seat left running
18
- in the background answered after one session had ended (Lantern Night S3). Codex's SubagentStop
18
+ in the background answered after one session had ended (one game's third session). Codex's SubagentStop
19
19
  hook records their final messages, including asynchronous completions. If the host cannot
20
20
  provide isolated agents or trusted hooks, report that acceptance step as unverified. The gate
21
21
  cannot tell a verdict file the builder wrote from a seat's, so the files are the seats' alone. Role skills express access rules; they do not implement a host permission
@@ -15,7 +15,7 @@ description, AD rules, screen measurements and their own previous verdict; anoth
15
15
  or the builder's code pull them toward it.
16
16
 
17
17
  Run each critic seat separately, and let all four finish before handing back: a seat left running
18
- in the background answered after one session had ended (Lantern Night S3). Codex's SubagentStop
18
+ in the background answered after one session had ended (one game's third session). Codex's SubagentStop
19
19
  hook records their final messages, including asynchronous completions. If the host cannot
20
20
  provide isolated agents or trusted hooks, report that acceptance step as unverified. The gate
21
21
  cannot tell a verdict file the builder wrote from a seat's, so the files are the seats' alone. Role skills express access rules; they do not implement a host permission
@@ -15,7 +15,7 @@ description, AD rules, screen measurements and their own previous verdict; anoth
15
15
  or the builder's code pull them toward it.
16
16
 
17
17
  Run each critic seat separately, and let all four finish before handing back: a seat left running
18
- in the background answered after one session had ended (Lantern Night S3). Codex's SubagentStop
18
+ in the background answered after one session had ended (one game's third session). Codex's SubagentStop
19
19
  hook records their final messages, including asynchronous completions. If the host cannot
20
20
  provide isolated agents or trusted hooks, report that acceptance step as unverified. The gate
21
21
  cannot tell a verdict file the builder wrote from a seat's, so the files are the seats' alone. Role skills express access rules; they do not implement a host permission
@@ -21,7 +21,7 @@ person: it changes nothing in the game, and its steps are suggestions they pick
21
21
  seat. Each prompt carries those numbers as facts F1, F2, … to read before the frames (Scenario's
22
22
  numbers first, then eyes); the report says which facts each seat cited.
23
23
  4. Run every seat now, in parallel in the foreground (a background seat answered after a session
24
- had already ended, Lantern Night S3), each as a fresh agent given only the contents of its prompt
24
+ had already ended, in one game's third session), each as a fresh agent given only the contents of its prompt
25
25
  file: one per `seats/<name>.md`, per `versus/<name>.md` and `fidelity/fidelity.md` when printed (and `fidelity/ui.md` from step 5), each a general-purpose
26
26
  agent (the `critic` agent's own format would override the prompt's), and the `player` agent with
27
27
  `player.md` at phone size. The Mobile QA seat (`mobile/mobile-qa.md`, the `mobile-qa` agent: is
@@ -45,7 +45,7 @@ person: it changes nothing in the game, and its steps are suggestions they pick
45
45
  (`.funtools/playtest/history.json`: panel axes, the experience bar, the blind player, minutes of
46
46
  real play, fidelity per moment and the AD lines, every round), with each drop marked. When it
47
47
  opens with "Look at the captures first", open those frames before trusting any score: a view
48
- that never reached its beat is scored as the wrong game (Held Note scored 4.9 on views stuck at
48
+ that never reached its beat is scored as the wrong game (one game scored 4.9 on views stuck at
49
49
  the opening shot, 6.55 once they reached their beats). A thing on the list that is lost is a
50
50
  regression: the report leads with it and exits 1, the flow makes putting it back the round's first
51
51
  step, and only the owner takes an item off (`playtest keep --drop K<n> --by owner "<their words>"`).