@funpixel/tools 0.0.0-stage → 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 (2414) hide show
  1. package/LICENSE +115 -0
  2. package/NOTICE +28 -0
  3. package/README.md +110 -2
  4. package/bench/LICENSE +674 -0
  5. package/bench/README.md +10 -0
  6. package/bench/entrypoint.py +94 -0
  7. package/bench/handlers/__init__.py +53 -0
  8. package/bench/handlers/apply_skin.py +192 -0
  9. package/bench/handlers/apply_texture.py +195 -0
  10. package/bench/handlers/audit_clips.py +351 -0
  11. package/bench/handlers/author_clips.py +297 -0
  12. package/bench/handlers/author_motion.py +298 -0
  13. package/bench/handlers/bake_emissive.py +136 -0
  14. package/bench/handlers/build_level.py +395 -0
  15. package/bench/handlers/decimate.py +220 -0
  16. package/bench/handlers/fit_rig.py +273 -0
  17. package/bench/handlers/fracture.py +233 -0
  18. package/bench/handlers/humanoid.py +119 -0
  19. package/bench/handlers/inspect.py +212 -0
  20. package/bench/handlers/level_check.py +68 -0
  21. package/bench/handlers/level_geo.py +150 -0
  22. package/bench/handlers/level_proof.py +117 -0
  23. package/bench/handlers/level_props.py +135 -0
  24. package/bench/handlers/lod.py +83 -0
  25. package/bench/handlers/merge_clips.py +122 -0
  26. package/bench/handlers/mirror_limb.py +336 -0
  27. package/bench/handlers/motion_specs.json +11 -0
  28. package/bench/handlers/normalize_materials.py +182 -0
  29. package/bench/handlers/normalize_transform.py +174 -0
  30. package/bench/handlers/prune_clips.py +141 -0
  31. package/bench/handlers/raster.py +98 -0
  32. package/bench/handlers/render.py +239 -0
  33. package/bench/handlers/render_views.py +101 -0
  34. package/bench/handlers/retarget_clips.py +185 -0
  35. package/bench/handlers/scene.py +311 -0
  36. package/bench/handlers/sheet.py +118 -0
  37. package/bench/handlers/texels.py +176 -0
  38. package/bench/handlers/views.py +232 -0
  39. package/dist/api/generated/openapi.js +1 -0
  40. package/dist/api/http.js +71 -0
  41. package/dist/api/jobs.js +94 -0
  42. package/dist/assets/bakeoff.js +61 -0
  43. package/dist/assets/counts.js +60 -0
  44. package/dist/assets/gen.js +230 -0
  45. package/dist/assets/lock.js +77 -0
  46. package/dist/assets/manifest.js +236 -0
  47. package/dist/assets/palette-fit.js +99 -0
  48. package/dist/assets/pixelart.js +192 -0
  49. package/dist/assets/pixels.js +131 -0
  50. package/dist/assets/plan.js +169 -0
  51. package/dist/assets/process.js +209 -0
  52. package/dist/assets/script.js +194 -0
  53. package/dist/assets/steps.js +294 -0
  54. package/dist/bin.js +8 -0
  55. package/dist/board/board.js +99 -0
  56. package/dist/cast/library.js +102 -0
  57. package/dist/cast/measure.js +222 -0
  58. package/dist/cli.js +2917 -0
  59. package/dist/clip/clip.js +83 -0
  60. package/dist/commands/account.js +158 -0
  61. package/dist/commands/assets-pixels.js +106 -0
  62. package/dist/commands/assets.js +473 -0
  63. package/dist/commands/beats.js +77 -0
  64. package/dist/commands/board.js +162 -0
  65. package/dist/commands/boxes.js +89 -0
  66. package/dist/commands/capture-all.js +92 -0
  67. package/dist/commands/cast.js +84 -0
  68. package/dist/commands/character.js +58 -0
  69. package/dist/commands/check.js +404 -0
  70. package/dist/commands/clip.js +112 -0
  71. package/dist/commands/compare-takes.js +204 -0
  72. package/dist/commands/compare-target.js +149 -0
  73. package/dist/commands/compare.js +117 -0
  74. package/dist/commands/compose-variations.js +202 -0
  75. package/dist/commands/compose.js +163 -0
  76. package/dist/commands/cut.js +13 -0
  77. package/dist/commands/decide.js +90 -0
  78. package/dist/commands/depth.js +171 -0
  79. package/dist/commands/dev.js +138 -0
  80. package/dist/commands/directions.js +106 -0
  81. package/dist/commands/doctor.js +281 -0
  82. package/dist/commands/export.js +88 -0
  83. package/dist/commands/feedback.js +496 -0
  84. package/dist/commands/feel.js +144 -0
  85. package/dist/commands/fidelity.js +95 -0
  86. package/dist/commands/find.js +116 -0
  87. package/dist/commands/firstlook.js +138 -0
  88. package/dist/commands/flow.js +600 -0
  89. package/dist/commands/framing.js +53 -0
  90. package/dist/commands/gdd.js +227 -0
  91. package/dist/commands/gen.js +512 -0
  92. package/dist/commands/greenlight.js +148 -0
  93. package/dist/commands/hook.js +171 -0
  94. package/dist/commands/init.js +234 -0
  95. package/dist/commands/inspect.js +161 -0
  96. package/dist/commands/job.js +41 -0
  97. package/dist/commands/jobs.js +87 -0
  98. package/dist/commands/journal.js +58 -0
  99. package/dist/commands/journey.js +228 -0
  100. package/dist/commands/judge.js +191 -0
  101. package/dist/commands/lanes.js +571 -0
  102. package/dist/commands/lessons.js +74 -0
  103. package/dist/commands/life.js +134 -0
  104. package/dist/commands/login.js +134 -0
  105. package/dist/commands/look-3d.js +105 -0
  106. package/dist/commands/look-fit.js +116 -0
  107. package/dist/commands/look-hud.js +180 -0
  108. package/dist/commands/look-read.js +162 -0
  109. package/dist/commands/look-sheet.js +152 -0
  110. package/dist/commands/look-theme.js +136 -0
  111. package/dist/commands/look.js +373 -0
  112. package/dist/commands/loop.js +112 -0
  113. package/dist/commands/loudness.js +69 -0
  114. package/dist/commands/mobile-qa.js +119 -0
  115. package/dist/commands/model.js +256 -0
  116. package/dist/commands/models.js +93 -0
  117. package/dist/commands/motion.js +305 -0
  118. package/dist/commands/next.js +72 -0
  119. package/dist/commands/note.js +294 -0
  120. package/dist/commands/optimize.js +212 -0
  121. package/dist/commands/owner.js +109 -0
  122. package/dist/commands/pack.js +66 -0
  123. package/dist/commands/parts.js +635 -0
  124. package/dist/commands/phone.js +398 -0
  125. package/dist/commands/pick.js +146 -0
  126. package/dist/commands/pitch.js +205 -0
  127. package/dist/commands/places.js +89 -0
  128. package/dist/commands/play.js +368 -0
  129. package/dist/commands/playable.js +51 -0
  130. package/dist/commands/playtest.js +262 -0
  131. package/dist/commands/profile.js +292 -0
  132. package/dist/commands/progress.js +537 -0
  133. package/dist/commands/publish.js +165 -0
  134. package/dist/commands/reach.js +72 -0
  135. package/dist/commands/reel.js +177 -0
  136. package/dist/commands/review.js +112 -0
  137. package/dist/commands/rooms.js +180 -0
  138. package/dist/commands/schema.js +29 -0
  139. package/dist/commands/score.js +326 -0
  140. package/dist/commands/serve.js +67 -0
  141. package/dist/commands/setup.js +254 -0
  142. package/dist/commands/sim.js +179 -0
  143. package/dist/commands/simulator.js +154 -0
  144. package/dist/commands/smoke-build.js +305 -0
  145. package/dist/commands/smoke.js +37 -0
  146. package/dist/commands/spec.js +114 -0
  147. package/dist/commands/store.js +154 -0
  148. package/dist/commands/test.js +104 -0
  149. package/dist/commands/trailer.js +255 -0
  150. package/dist/commands/unity-editor.js +322 -0
  151. package/dist/commands/unity-player.js +672 -0
  152. package/dist/commands/unity.js +198 -0
  153. package/dist/commands/upgrade.js +186 -0
  154. package/dist/commands/variety.js +108 -0
  155. package/dist/commands/verify.js +293 -0
  156. package/dist/commands/walk.js +449 -0
  157. package/dist/commands/widen.js +133 -0
  158. package/dist/commands/world.js +175 -0
  159. package/dist/commands/wow.js +143 -0
  160. package/dist/commands/zero.js +71 -0
  161. package/dist/compose/adsheet.js +61 -0
  162. package/dist/compose/contract.js +248 -0
  163. package/dist/compose/facts.js +81 -0
  164. package/dist/compose/hyperframes.js +102 -0
  165. package/dist/compose/page.js +216 -0
  166. package/dist/compose/probe.js +160 -0
  167. package/dist/compose/run.js +170 -0
  168. package/dist/compose/sheet.js +92 -0
  169. package/dist/compose/starters.js +247 -0
  170. package/dist/compose/variations.js +203 -0
  171. package/dist/criteria.js +35 -0
  172. package/dist/depth/experience.js +61 -0
  173. package/dist/depth/fill.js +102 -0
  174. package/dist/depth/inventory.js +161 -0
  175. package/dist/depth/pacing.js +173 -0
  176. package/dist/depth/story.js +97 -0
  177. package/dist/dev/devtools.js +119 -0
  178. package/dist/dev/hold.js +46 -0
  179. package/dist/dev/lan.js +15 -0
  180. package/dist/dev/open.js +30 -0
  181. package/dist/dev/qr.js +124 -0
  182. package/dist/devtools/LICENSES/pixi.js.LICENSE +21 -0
  183. package/dist/devtools/LICENSES/preact.LICENSE +21 -0
  184. package/dist/devtools/LICENSES/source-map-js.LICENSE +28 -0
  185. package/dist/devtools/LICENSES/three.LICENSE +21 -0
  186. package/dist/devtools/inspector/funpixel-inspector.pixi.min.js +1 -0
  187. package/dist/devtools/inspector/funpixel-inspector.threejs.min.js +1 -0
  188. package/dist/devtools/inspector/hooked-engines/pixi.min.js +8 -0
  189. package/dist/devtools/inspector/hooked-engines/preact.min.js +1 -0
  190. package/dist/devtools/inspector/hooked-engines/threejs.min.js +12 -0
  191. package/dist/devtools/kapture/funpixel-kapture.min.js +1 -0
  192. package/dist/devtools/profiler/funpixel-profiler.pixi.min.js +1 -0
  193. package/dist/devtools/profiler/funpixel-profiler.threejs.min.js +1 -0
  194. package/dist/direct/moves.js +234 -0
  195. package/dist/direct/read.js +59 -0
  196. package/dist/direct/round.js +80 -0
  197. package/dist/doctor/host.js +245 -0
  198. package/dist/doctor/unity-checks.js +380 -0
  199. package/dist/doctor/unity-history.js +589 -0
  200. package/dist/doctor/unity-host.js +160 -0
  201. package/dist/doctor/unity-import-rules.js +874 -0
  202. package/dist/doctor/unity-meta.js +225 -0
  203. package/dist/doctor/unity-project.js +297 -0
  204. package/dist/doctor/unity.js +171 -0
  205. package/dist/export/export.js +165 -0
  206. package/dist/export/metadata.js +25 -0
  207. package/dist/export/runtime.js +119 -0
  208. package/dist/export/scan.js +78 -0
  209. package/dist/export/select.js +193 -0
  210. package/dist/export/strip.js +42 -0
  211. package/dist/feedback/ab.js +55 -0
  212. package/dist/feedback/auto.js +44 -0
  213. package/dist/feedback/learn.js +255 -0
  214. package/dist/feedback/measure.js +49 -0
  215. package/dist/feedback/page.js +66 -0
  216. package/dist/feel/feedback.js +85 -0
  217. package/dist/feel/judge.js +420 -0
  218. package/dist/feel/run.js +185 -0
  219. package/dist/feel/spec.js +124 -0
  220. package/dist/feel/sweep.js +156 -0
  221. package/dist/fidelity/consistency.js +205 -0
  222. package/dist/fidelity/match.js +675 -0
  223. package/dist/fidelity/run.js +107 -0
  224. package/dist/find/keywords.js +97 -0
  225. package/dist/find/names.js +45 -0
  226. package/dist/find/route.js +59 -0
  227. package/dist/firstlook/quality.js +261 -0
  228. package/dist/firstlook/render.js +111 -0
  229. package/dist/firstlook/set.js +218 -0
  230. package/dist/flow/flow.js +455 -0
  231. package/dist/flow/look.js +139 -0
  232. package/dist/frame/behaviour.js +53 -0
  233. package/dist/frame/clock.js +117 -0
  234. package/dist/frame/contract.js +111 -0
  235. package/dist/frame/genre.js +65 -0
  236. package/dist/frame/idle.js +58 -0
  237. package/dist/frame/opening.js +171 -0
  238. package/dist/frames/loop.js +52 -0
  239. package/dist/frames/sheet.js +69 -0
  240. package/dist/gdd/book.js +483 -0
  241. package/dist/gdd/chapters.js +71 -0
  242. package/dist/gdd/design.js +135 -0
  243. package/dist/gdd/doc.js +32 -0
  244. package/dist/gdd/levelmap.js +428 -0
  245. package/dist/gdd/measures.js +477 -0
  246. package/dist/gdd/page.js +111 -0
  247. package/dist/gdd/rubric.js +250 -0
  248. package/dist/gdd/size.js +83 -0
  249. package/dist/gdd/tiers.js +148 -0
  250. package/dist/gdd/world.js +98 -0
  251. package/dist/gdd/worth.js +507 -0
  252. package/dist/gen/kinds.js +451 -0
  253. package/dist/gen/local/doctor.js +25 -0
  254. package/dist/gen/local/index.js +3 -0
  255. package/dist/gen/local/kokoro.js +334 -0
  256. package/dist/gen/local/master.js +248 -0
  257. package/dist/gen/local/provider.js +65 -0
  258. package/dist/gen/local/voice-rules.js +156 -0
  259. package/dist/gen/models.generated.js +469 -0
  260. package/dist/gen/models.js +53 -0
  261. package/dist/gen/prompt-lint.js +35 -0
  262. package/dist/gen/record.js +73 -0
  263. package/dist/gen/save.js +101 -0
  264. package/dist/gen/title.js +55 -0
  265. package/dist/gen/unity.js +334 -0
  266. package/dist/goals/goals.js +204 -0
  267. package/dist/goals/run.js +90 -0
  268. package/dist/greenlight/ambition.js +42 -0
  269. package/dist/greenlight/bible.js +138 -0
  270. package/dist/greenlight/lock.js +48 -0
  271. package/dist/greenlight/match.js +19 -0
  272. package/dist/greenlight/md.js +82 -0
  273. package/dist/greenlight/page.js +100 -0
  274. package/dist/greenlight/pitches.js +66 -0
  275. package/dist/greenlight/worth.js +90 -0
  276. package/dist/guidance.js +24 -0
  277. package/dist/init/bare.js +114 -0
  278. package/dist/init/git.js +56 -0
  279. package/dist/init/starter.js +166 -0
  280. package/dist/init/starters.js +179 -0
  281. package/dist/inspect/describe.js +125 -0
  282. package/dist/inspect/devserver.js +40 -0
  283. package/dist/journey/diff.js +74 -0
  284. package/dist/journey/from-round.js +44 -0
  285. package/dist/journey/record.js +76 -0
  286. package/dist/journey/run.js +139 -0
  287. package/dist/journey/script.js +223 -0
  288. package/dist/judge/common.js +60 -0
  289. package/dist/judge/identity.js +68 -0
  290. package/dist/judge/sources.js +37 -0
  291. package/dist/judge/structure.js +59 -0
  292. package/dist/keys/device.js +145 -0
  293. package/dist/keys/store.js +167 -0
  294. package/dist/lanes/fence.js +108 -0
  295. package/dist/lanes/gate.js +123 -0
  296. package/dist/lanes/lanes.js +355 -0
  297. package/dist/lanes/union.js +62 -0
  298. package/dist/lanes/where.js +49 -0
  299. package/dist/lessons/motifs.js +97 -0
  300. package/dist/lessons/store.js +56 -0
  301. package/dist/look/anim.js +206 -0
  302. package/dist/look/boxes.js +209 -0
  303. package/dist/look/dressing.js +24 -0
  304. package/dist/look/feedback.js +50 -0
  305. package/dist/look/fit.js +123 -0
  306. package/dist/look/held.js +92 -0
  307. package/dist/look/hook.js +169 -0
  308. package/dist/look/hud.js +189 -0
  309. package/dist/look/image-io.js +50 -0
  310. package/dist/look/life.js +96 -0
  311. package/dist/look/light.js +42 -0
  312. package/dist/look/look.js +85 -0
  313. package/dist/look/loops.js +108 -0
  314. package/dist/look/made-of.js +242 -0
  315. package/dist/look/moments.js +32 -0
  316. package/dist/look/motion.js +44 -0
  317. package/dist/look/phone-play.js +142 -0
  318. package/dist/look/player.js +32 -0
  319. package/dist/look/png.js +117 -0
  320. package/dist/look/readability.js +100 -0
  321. package/dist/look/roles.js +109 -0
  322. package/dist/look/sheet.js +104 -0
  323. package/dist/look/theme.js +278 -0
  324. package/dist/look/touch.js +129 -0
  325. package/dist/look/ui-style.js +102 -0
  326. package/dist/machine/procs.js +117 -0
  327. package/dist/managed.js +15 -0
  328. package/dist/mcp/hosted.js +174 -0
  329. package/dist/mcp/models.generated.js +538 -0
  330. package/dist/mcp/models.js +35 -0
  331. package/dist/mcp/server.js +330 -0
  332. package/dist/memory/decisions.js +138 -0
  333. package/dist/memory/journal.js +108 -0
  334. package/dist/model/bench.js +83 -0
  335. package/dist/model/blender.js +106 -0
  336. package/dist/model/clips.js +34 -0
  337. package/dist/model/finalize.js +33 -0
  338. package/dist/motion/checks.js +173 -0
  339. package/dist/motion/contract.js +177 -0
  340. package/dist/motion/encode.js +37 -0
  341. package/dist/motion/render.js +167 -0
  342. package/dist/motion/starter.js +54 -0
  343. package/dist/optimize/check.js +29 -0
  344. package/dist/optimize/helper.js +80 -0
  345. package/dist/owner/bar.js +285 -0
  346. package/dist/owner/match.js +105 -0
  347. package/dist/pack/build.js +97 -0
  348. package/dist/pack/deps.js +28 -0
  349. package/dist/pack/leaks.js +77 -0
  350. package/dist/pack/limits.js +51 -0
  351. package/dist/pack/report.js +35 -0
  352. package/dist/phone/baguette.js +139 -0
  353. package/dist/phone/listen.js +65 -0
  354. package/dist/pipeline/pipeline.js +929 -0
  355. package/dist/plan/actions.js +18 -0
  356. package/dist/plan/notes.js +15 -0
  357. package/dist/play/clock.js +40 -0
  358. package/dist/play/condition.js +45 -0
  359. package/dist/play/frames.js +60 -0
  360. package/dist/play/input.js +118 -0
  361. package/dist/play/pointer.js +21 -0
  362. package/dist/play/report.js +124 -0
  363. package/dist/play/server.js +274 -0
  364. package/dist/play/session.js +231 -0
  365. package/dist/play/steps.js +192 -0
  366. package/dist/playable/build.js +90 -0
  367. package/dist/playable/cta.js +88 -0
  368. package/dist/playable/networks.js +33 -0
  369. package/dist/playable/scan.js +46 -0
  370. package/dist/playtest/after-round.js +60 -0
  371. package/dist/playtest/assemble.js +168 -0
  372. package/dist/playtest/experience-run.js +69 -0
  373. package/dist/playtest/experience.js +77 -0
  374. package/dist/playtest/facts.js +90 -0
  375. package/dist/playtest/fidelity.js +179 -0
  376. package/dist/playtest/history.js +115 -0
  377. package/dist/playtest/hits.js +48 -0
  378. package/dist/playtest/hosted.js +98 -0
  379. package/dist/playtest/keep.js +110 -0
  380. package/dist/playtest/ledger.js +77 -0
  381. package/dist/playtest/length.js +113 -0
  382. package/dist/playtest/measure.js +181 -0
  383. package/dist/playtest/mobile-qa.js +391 -0
  384. package/dist/playtest/mockups.js +198 -0
  385. package/dist/playtest/moments.js +28 -0
  386. package/dist/playtest/prepare.js +162 -0
  387. package/dist/playtest/rank.js +184 -0
  388. package/dist/playtest/report.js +209 -0
  389. package/dist/playtest/route.js +139 -0
  390. package/dist/playtest/seats.js +128 -0
  391. package/dist/playtest/sheet.js +38 -0
  392. package/dist/playtest/stop.js +54 -0
  393. package/dist/playtest/stuck.js +47 -0
  394. package/dist/production/contract.js +61 -0
  395. package/dist/production/mirror.js +96 -0
  396. package/dist/production/tier.js +66 -0
  397. package/dist/profile/compare.js +171 -0
  398. package/dist/progress/answers.js +35 -0
  399. package/dist/progress/holds.js +106 -0
  400. package/dist/progress/notify.js +25 -0
  401. package/dist/progress/progress.js +300 -0
  402. package/dist/publish/build.js +54 -0
  403. package/dist/publish/folder.js +106 -0
  404. package/dist/publish/funpixel.js +96 -0
  405. package/dist/publish/hosts.js +48 -0
  406. package/dist/reach/envelope.js +111 -0
  407. package/dist/reach/load.js +84 -0
  408. package/dist/reach/side.js +320 -0
  409. package/dist/reach/spec3d.js +338 -0
  410. package/dist/reach/tiles.js +163 -0
  411. package/dist/reel/encode.js +34 -0
  412. package/dist/reel/tour.js +81 -0
  413. package/dist/relay/bots.js +62 -0
  414. package/dist/relay/bridge.js +54 -0
  415. package/dist/relay/local.js +82 -0
  416. package/dist/relay/redis.js +40 -0
  417. package/dist/review/audio.js +72 -0
  418. package/dist/review/ledger.js +60 -0
  419. package/dist/review/media.js +114 -0
  420. package/dist/review/model.js +348 -0
  421. package/dist/review/picture.js +113 -0
  422. package/dist/review/specs.js +134 -0
  423. package/dist/review/video.js +248 -0
  424. package/dist/schema/game.js +308 -0
  425. package/dist/score/comfort.js +79 -0
  426. package/dist/score/light.js +62 -0
  427. package/dist/score/measure.js +386 -0
  428. package/dist/score/vision.js +59 -0
  429. package/dist/serve/webgl.js +415 -0
  430. package/dist/setup/lsp.js +42 -0
  431. package/dist/sim/curve.js +122 -0
  432. package/dist/sim/judge.js +240 -0
  433. package/dist/sim/skeleton.js +65 -0
  434. package/dist/simulator/lease.js +159 -0
  435. package/dist/simulator/orient.js +57 -0
  436. package/dist/simulator/screen.js +113 -0
  437. package/dist/simulator/simctl.js +79 -0
  438. package/dist/smoke/art.js +20 -0
  439. package/dist/smoke/checks.js +165 -0
  440. package/dist/smoke/logic.js +73 -0
  441. package/dist/smoke/orphans.js +78 -0
  442. package/dist/smoke/palette.js +16 -0
  443. package/dist/smoke/sources.js +36 -0
  444. package/dist/sound/beats.js +95 -0
  445. package/dist/sound/loudness.js +94 -0
  446. package/dist/spec/extract.js +123 -0
  447. package/dist/spec/lint.js +261 -0
  448. package/dist/spec/presets.js +30 -0
  449. package/dist/spec/rooms.js +188 -0
  450. package/dist/spec/scaffold.js +457 -0
  451. package/dist/spec/sections.js +16 -0
  452. package/dist/spec/tunables.js +74 -0
  453. package/dist/stage/harnessignore.js +90 -0
  454. package/dist/stage/stage.js +57 -0
  455. package/dist/stage/tar.js +41 -0
  456. package/dist/status/board.js +172 -0
  457. package/dist/status/file.js +112 -0
  458. package/dist/status/inbox.js +55 -0
  459. package/dist/status/status.js +311 -0
  460. package/dist/store/answers.js +47 -0
  461. package/dist/store/doctor.js +120 -0
  462. package/dist/store/images.js +65 -0
  463. package/dist/store/init.js +101 -0
  464. package/dist/store/lint.js +392 -0
  465. package/dist/store/plan.js +133 -0
  466. package/dist/store/sdks.js +107 -0
  467. package/dist/studio/forks.js +93 -0
  468. package/dist/studio/pitch.js +294 -0
  469. package/dist/studio/widen.js +212 -0
  470. package/dist/suite/node-run.js +81 -0
  471. package/dist/suite/test-types.js +71 -0
  472. package/dist/trailer/assemble.js +90 -0
  473. package/dist/trailer/beats.js +74 -0
  474. package/dist/trailer/cards.js +77 -0
  475. package/dist/trailer/cues.js +78 -0
  476. package/dist/trailer/cut.js +49 -0
  477. package/dist/trailer/find.js +33 -0
  478. package/dist/trailer/mix.js +109 -0
  479. package/dist/trailer/placement.js +30 -0
  480. package/dist/types.js +1 -0
  481. package/dist/ui.js +79 -0
  482. package/dist/unity/bridge.js +251 -0
  483. package/dist/unity/disk.js +666 -0
  484. package/dist/unity/editor.js +471 -0
  485. package/dist/unity/gc.js +140 -0
  486. package/dist/unity/mcp-stdio.js +141 -0
  487. package/dist/unity/probe/budgets.js +84 -0
  488. package/dist/unity/probe/client.js +93 -0
  489. package/dist/unity/probe/install.js +118 -0
  490. package/dist/unity/probe/player.js +255 -0
  491. package/dist/unity/probe/report.js +102 -0
  492. package/dist/unity/probe/script.js +225 -0
  493. package/dist/unity/queue.js +353 -0
  494. package/dist/unity/run.js +172 -0
  495. package/dist/update.js +111 -0
  496. package/dist/variety/compare.js +104 -0
  497. package/dist/variety/places.js +109 -0
  498. package/dist/variety/profile.js +127 -0
  499. package/dist/vendor/verify/README.md +19 -0
  500. package/dist/vendor/verify/package.json +14 -0
  501. package/dist/vendor/verify/src/index.d.ts +105 -0
  502. package/dist/vendor/verify/src/index.js +78 -0
  503. package/dist/vendor/verify/src/init/preview_shim.js +63 -0
  504. package/dist/vendor/verify/src/page/actors.js +258 -0
  505. package/dist/vendor/verify/src/page/audio.js +106 -0
  506. package/dist/vendor/verify/src/page/audio_cues.js +141 -0
  507. package/dist/vendor/verify/src/page/audio_files.js +56 -0
  508. package/dist/vendor/verify/src/page/bot_sweep.js +72 -0
  509. package/dist/vendor/verify/src/page/capture_view.js +164 -0
  510. package/dist/vendor/verify/src/page/context_loss_listener.js +23 -0
  511. package/dist/vendor/verify/src/page/dressing.js +106 -0
  512. package/dist/vendor/verify/src/page/enter_view.js +33 -0
  513. package/dist/vendor/verify/src/page/feel.js +126 -0
  514. package/dist/vendor/verify/src/page/feel_sweep.js +75 -0
  515. package/dist/vendor/verify/src/page/first_paint.js +54 -0
  516. package/dist/vendor/verify/src/page/fonts.js +50 -0
  517. package/dist/vendor/verify/src/page/frame_honesty.js +44 -0
  518. package/dist/vendor/verify/src/page/front_door.js +197 -0
  519. package/dist/vendor/verify/src/page/grounding.js +448 -0
  520. package/dist/vendor/verify/src/page/hooks.js +74 -0
  521. package/dist/vendor/verify/src/page/hud.js +261 -0
  522. package/dist/vendor/verify/src/page/inventory.js +15 -0
  523. package/dist/vendor/verify/src/page/layout.js +378 -0
  524. package/dist/vendor/verify/src/page/levels.js +40 -0
  525. package/dist/vendor/verify/src/page/life.js +123 -0
  526. package/dist/vendor/verify/src/page/life_anim.js +501 -0
  527. package/dist/vendor/verify/src/page/made_of.js +83 -0
  528. package/dist/vendor/verify/src/page/mechanic_check.js +272 -0
  529. package/dist/vendor/verify/src/page/moments.js +36 -0
  530. package/dist/vendor/verify/src/page/motion.js +139 -0
  531. package/dist/vendor/verify/src/page/perf.js +255 -0
  532. package/dist/vendor/verify/src/page/phone_check.js +229 -0
  533. package/dist/vendor/verify/src/page/play.js +117 -0
  534. package/dist/vendor/verify/src/page/play_act.js +164 -0
  535. package/dist/vendor/verify/src/page/preview.js +33 -0
  536. package/dist/vendor/verify/src/page/recorder.js +54 -0
  537. package/dist/vendor/verify/src/page/render_health.js +83 -0
  538. package/dist/vendor/verify/src/page/renderer.js +75 -0
  539. package/dist/vendor/verify/src/page/scene.js +222 -0
  540. package/dist/vendor/verify/src/page/self_test.js +25 -0
  541. package/dist/vendor/verify/src/page/step_clock.js +247 -0
  542. package/dist/vendor/verify/src/page/surfaces.js +261 -0
  543. package/dist/vendor/verify/src/page/world_actors.js +264 -0
  544. package/dist/verify/browser.js +245 -0
  545. package/dist/verify/console.js +34 -0
  546. package/dist/verify/fingerprint.js +72 -0
  547. package/dist/verify/gpu.js +33 -0
  548. package/dist/verify/health.js +172 -0
  549. package/dist/verify/hooks.js +34 -0
  550. package/dist/verify/judge.js +303 -0
  551. package/dist/verify/players.js +123 -0
  552. package/dist/verify/probe.js +236 -0
  553. package/dist/verify/reads.js +32 -0
  554. package/dist/verify/run.js +56 -0
  555. package/dist/verify/serve.js +36 -0
  556. package/dist/walk/film.js +37 -0
  557. package/dist/walk/judge.js +287 -0
  558. package/dist/walk/routes.js +199 -0
  559. package/dist/walk/world.js +292 -0
  560. package/dist/world/brief.js +86 -0
  561. package/dist/world/check.js +254 -0
  562. package/dist/world/forge.js +542 -0
  563. package/dist/world/format.js +40 -0
  564. package/dist/world/variety.js +59 -0
  565. package/dist/wow/catalogue.js +86 -0
  566. package/dist/wow/picks.js +74 -0
  567. package/package.json +51 -4
  568. package/panel/asset-identity.md +61 -0
  569. package/panel/asset-structure.md +55 -0
  570. package/panel/blockers.md +47 -0
  571. package/panel/brief.md +89 -0
  572. package/panel/clip.md +54 -0
  573. package/panel/experience-personas.json +4 -0
  574. package/panel/experience.md +96 -0
  575. package/panel/fidelity-ui.md +74 -0
  576. package/panel/fidelity.md +83 -0
  577. package/panel/greenlight-pitch.md +69 -0
  578. package/panel/greenlight.md +87 -0
  579. package/panel/mobile-qa.md +128 -0
  580. package/panel/personas.json +6 -0
  581. package/panel/reference-match.md +12 -0
  582. package/panel/versus.md +31 -0
  583. package/plugins/.agents/plugins/marketplace.json +18 -0
  584. package/plugins/.claude-plugin/marketplace.json +17 -0
  585. package/plugins/.cursor-plugin/marketplace.json +13 -0
  586. package/plugins/LICENSE +115 -0
  587. package/plugins/README.md +16 -0
  588. package/plugins/THIRD_PARTY_NOTICES.md +75 -0
  589. package/plugins/claude/.claude-plugin/plugin.json +19 -0
  590. package/plugins/claude/.mcp.json +10 -0
  591. package/plugins/claude/LICENSE +115 -0
  592. package/plugins/claude/README.md +14 -0
  593. package/plugins/claude/THIRD_PARTY_NOTICES.md +75 -0
  594. package/plugins/claude/agents/art-director.md +54 -0
  595. package/plugins/claude/agents/audio-director.md +51 -0
  596. package/plugins/claude/agents/critic.md +113 -0
  597. package/plugins/claude/agents/lane.md +38 -0
  598. package/plugins/claude/agents/level-designer.md +45 -0
  599. package/plugins/claude/agents/mobile-qa.md +71 -0
  600. package/plugins/claude/agents/player.md +144 -0
  601. package/plugins/claude/agents/qa-lead.md +52 -0
  602. package/plugins/claude/commands/first-look.md +59 -0
  603. package/plugins/claude/commands/flow.md +50 -0
  604. package/plugins/claude/commands/lanes.md +38 -0
  605. package/plugins/claude/commands/mobile-qa.md +28 -0
  606. package/plugins/claude/commands/new.md +94 -0
  607. package/plugins/claude/commands/playtest.md +66 -0
  608. package/plugins/claude/commands/publish.md +23 -0
  609. package/plugins/claude/commands/smoke-build.md +25 -0
  610. package/plugins/claude/commands/verify.md +20 -0
  611. package/plugins/claude/hooks/brief.md +135 -0
  612. package/plugins/claude/hooks/critic-receipts.mjs +86 -0
  613. package/plugins/claude/hooks/durable.mjs +56 -0
  614. package/plugins/claude/hooks/fence.mjs +30 -0
  615. package/plugins/claude/hooks/floors.mjs +181 -0
  616. package/plugins/claude/hooks/flow.mjs +154 -0
  617. package/plugins/claude/hooks/front-door.mjs +68 -0
  618. package/plugins/claude/hooks/guidance.json +3 -0
  619. package/plugins/claude/hooks/hints.mjs +183 -0
  620. package/plugins/claude/hooks/hooks.json +62 -0
  621. package/plugins/claude/hooks/lib.mjs +362 -0
  622. package/plugins/claude/hooks/memory.mjs +92 -0
  623. package/plugins/claude/hooks/mobile-qa.mjs +43 -0
  624. package/plugins/claude/hooks/note.mjs +63 -0
  625. package/plugins/claude/hooks/nudge.mjs +98 -0
  626. package/plugins/claude/hooks/pipeline.mjs +207 -0
  627. package/plugins/claude/hooks/prompt.mjs +51 -0
  628. package/plugins/claude/hooks/quality.mjs +310 -0
  629. package/plugins/claude/hooks/reach.mjs +93 -0
  630. package/plugins/claude/hooks/scope.mjs +44 -0
  631. package/plugins/claude/hooks/session-log.mjs +101 -0
  632. package/plugins/claude/hooks/session-start.mjs +194 -0
  633. package/plugins/claude/hooks/skill-names.json +19 -0
  634. package/plugins/claude/hooks/stop-gate.mjs +303 -0
  635. package/plugins/claude/hooks/vendor/direct/round.mjs +81 -0
  636. package/plugins/claude/hooks/vendor/find/names.mjs +46 -0
  637. package/plugins/claude/hooks/vendor/firstlook/set.mjs +219 -0
  638. package/plugins/claude/hooks/vendor/flow/flow.mjs +456 -0
  639. package/plugins/claude/hooks/vendor/flow/look.mjs +140 -0
  640. package/plugins/claude/hooks/vendor/gdd/book.mjs +484 -0
  641. package/plugins/claude/hooks/vendor/gdd/chapters.mjs +72 -0
  642. package/plugins/claude/hooks/vendor/gdd/doc.mjs +33 -0
  643. package/plugins/claude/hooks/vendor/gdd/levelmap.mjs +429 -0
  644. package/plugins/claude/hooks/vendor/gdd/rubric.mjs +251 -0
  645. package/plugins/claude/hooks/vendor/gdd/worth.mjs +508 -0
  646. package/plugins/claude/hooks/vendor/lanes/fence.mjs +109 -0
  647. package/plugins/claude/hooks/vendor/lanes/lanes.mjs +356 -0
  648. package/plugins/claude/hooks/vendor/lanes/union.mjs +63 -0
  649. package/plugins/claude/hooks/vendor/lessons/motifs.mjs +98 -0
  650. package/plugins/claude/hooks/vendor/lessons/store.mjs +57 -0
  651. package/plugins/claude/hooks/vendor/look/made-of.mjs +243 -0
  652. package/plugins/claude/hooks/vendor/look/roles.mjs +110 -0
  653. package/plugins/claude/hooks/vendor/memory/decisions.mjs +139 -0
  654. package/plugins/claude/hooks/vendor/memory/journal.mjs +109 -0
  655. package/plugins/claude/hooks/vendor/owner/bar.mjs +286 -0
  656. package/plugins/claude/hooks/vendor/pipeline/pipeline.mjs +930 -0
  657. package/plugins/claude/hooks/vendor/playtest/keep.mjs +111 -0
  658. package/plugins/claude/hooks/vendor/playtest/stuck.mjs +48 -0
  659. package/plugins/claude/hooks/vendor/progress/holds.mjs +107 -0
  660. package/plugins/claude/hooks/vendor/progress/progress.mjs +301 -0
  661. package/plugins/claude/hooks/vendor/sim/judge.mjs +241 -0
  662. package/plugins/claude/hooks/vendor/spec/rooms.mjs +189 -0
  663. package/plugins/claude/hooks/vendor/spec/tunables.mjs +75 -0
  664. package/plugins/claude/hooks/vendor/stage/harnessignore.mjs +91 -0
  665. package/plugins/claude/hooks/vendor/stage/stage.mjs +58 -0
  666. package/plugins/claude/hooks/vendor/status/board.mjs +173 -0
  667. package/plugins/claude/hooks/vendor/status/file.mjs +113 -0
  668. package/plugins/claude/hooks/vendor/studio/forks.mjs +94 -0
  669. package/plugins/claude/hooks/vendor/studio/pitch.mjs +295 -0
  670. package/plugins/claude/hooks/vendor/verify/fingerprint.mjs +73 -0
  671. package/plugins/claude/hooks/vendor/verify/reads.mjs +33 -0
  672. package/plugins/claude/hooks/vendor/wow/picks.mjs +75 -0
  673. package/plugins/claude/skills/3d/SKILL.md +89 -0
  674. package/plugins/claude/skills/3d/references/bake-off.md +48 -0
  675. package/plugins/claude/skills/3d/references/bench.md +103 -0
  676. package/plugins/claude/skills/3d/references/budgets.md +48 -0
  677. package/plugins/claude/skills/3d/references/characters.md +67 -0
  678. package/plugins/claude/skills/3d/references/concept-image.md +47 -0
  679. package/plugins/claude/skills/3d/references/engine-targets.md +31 -0
  680. package/plugins/claude/skills/3d/references/hero-route.md +104 -0
  681. package/plugins/claude/skills/3d/references/level-spec.md +109 -0
  682. package/plugins/claude/skills/3d/references/levels.md +84 -0
  683. package/plugins/claude/skills/3d/references/light-and-places.md +141 -0
  684. package/plugins/claude/skills/3d/references/models.md +111 -0
  685. package/plugins/claude/skills/3d/references/painted-target.md +184 -0
  686. package/plugins/claude/skills/3d/references/reading.md +41 -0
  687. package/plugins/claude/skills/3d/references/skin.md +85 -0
  688. package/plugins/claude/skills/3d/references/skyboxes.md +65 -0
  689. package/plugins/claude/skills/3d/references/textures.md +71 -0
  690. package/plugins/claude/skills/3d/references/three-loading.md +199 -0
  691. package/plugins/claude/skills/3d/references/unity.md +78 -0
  692. package/plugins/claude/skills/art/SKILL.md +104 -0
  693. package/plugins/claude/skills/art/references/2d-assets.md +108 -0
  694. package/plugins/claude/skills/art/references/animation.md +126 -0
  695. package/plugins/claude/skills/art/references/cast.md +73 -0
  696. package/plugins/claude/skills/art/references/characters.md +49 -0
  697. package/plugins/claude/skills/art/references/cost.md +107 -0
  698. package/plugins/claude/skills/art/references/effects.md +85 -0
  699. package/plugins/claude/skills/art/references/frames.md +87 -0
  700. package/plugins/claude/skills/art/references/judging-frames.md +64 -0
  701. package/plugins/claude/skills/art/references/look.md +102 -0
  702. package/plugins/claude/skills/art/references/measure.md +119 -0
  703. package/plugins/claude/skills/art/references/pipeline.md +185 -0
  704. package/plugins/claude/skills/art/references/pixi.md +277 -0
  705. package/plugins/claude/skills/art/references/planes.md +27 -0
  706. package/plugins/claude/skills/art/references/prompts.md +171 -0
  707. package/plugins/claude/skills/art/references/sheets.md +141 -0
  708. package/plugins/claude/skills/art/references/style-file.md +39 -0
  709. package/plugins/claude/skills/art/references/three.md +232 -0
  710. package/plugins/claude/skills/art/references/ui.md +163 -0
  711. package/plugins/claude/skills/art/references/unity.md +78 -0
  712. package/plugins/claude/skills/art/references/wiring.md +41 -0
  713. package/plugins/claude/skills/audio/SKILL.md +92 -0
  714. package/plugins/claude/skills/audio/references/adaptive-music.md +204 -0
  715. package/plugins/claude/skills/audio/references/engine.md +78 -0
  716. package/plugins/claude/skills/audio/references/measure.md +101 -0
  717. package/plugins/claude/skills/audio/references/unity.md +74 -0
  718. package/plugins/claude/skills/feedback/SKILL.md +120 -0
  719. package/plugins/claude/skills/feedback/references/memory.md +99 -0
  720. package/plugins/claude/skills/game-feel/SKILL.md +104 -0
  721. package/plugins/claude/skills/game-feel/references/contact.md +110 -0
  722. package/plugins/claude/skills/game-feel/references/measure.md +125 -0
  723. package/plugins/claude/skills/game-feel/references/motion.md +134 -0
  724. package/plugins/claude/skills/game-feel/references/payoffs.md +35 -0
  725. package/plugins/claude/skills/game-feel/references/recipes.md +107 -0
  726. package/plugins/claude/skills/game-feel/references/unity.md +73 -0
  727. package/plugins/claude/skills/game-logic/SKILL.md +113 -0
  728. package/plugins/claude/skills/game-logic/references/balance.md +88 -0
  729. package/plugins/claude/skills/game-logic/references/content-at-scale.md +147 -0
  730. package/plugins/claude/skills/game-logic/references/depth.md +89 -0
  731. package/plugins/claude/skills/game-logic/references/escalation.md +41 -0
  732. package/plugins/claude/skills/game-logic/references/levels.md +61 -0
  733. package/plugins/claude/skills/game-logic/references/probes.md +122 -0
  734. package/plugins/claude/skills/game-logic/references/unity.md +108 -0
  735. package/plugins/claude/skills/game-spine/SKILL.md +118 -0
  736. package/plugins/claude/skills/game-spine/references/camera.md +94 -0
  737. package/plugins/claude/skills/game-spine/references/multiplayer.md +101 -0
  738. package/plugins/claude/skills/game-spine/references/patterns.md +103 -0
  739. package/plugins/claude/skills/game-spine/references/performance.md +96 -0
  740. package/plugins/claude/skills/game-spine/references/pixi.md +26 -0
  741. package/plugins/claude/skills/game-spine/references/replay.md +102 -0
  742. package/plugins/claude/skills/game-spine/references/room-api.md +63 -0
  743. package/plugins/claude/skills/game-spine/references/room-modes.md +40 -0
  744. package/plugins/claude/skills/game-spine/references/sdk.md +114 -0
  745. package/plugins/claude/skills/game-spine/references/three.md +62 -0
  746. package/plugins/claude/skills/gdd/SKILL.md +116 -0
  747. package/plugins/claude/skills/gdd/references/as-built.md +40 -0
  748. package/plugins/claude/skills/gdd/references/design-measures.md +24 -0
  749. package/plugins/claude/skills/gdd/references/design-note.md +88 -0
  750. package/plugins/claude/skills/gdd/references/experience.md +92 -0
  751. package/plugins/claude/skills/gdd/references/first-look.md +226 -0
  752. package/plugins/claude/skills/gdd/references/floors.md +62 -0
  753. package/plugins/claude/skills/gdd/references/frame.md +75 -0
  754. package/plugins/claude/skills/gdd/references/gameplay-contract.md +81 -0
  755. package/plugins/claude/skills/gdd/references/gdd-template.md +417 -0
  756. package/plugins/claude/skills/gdd/references/genre-card.md +109 -0
  757. package/plugins/claude/skills/gdd/references/genre-platformer.md +159 -0
  758. package/plugins/claude/skills/gdd/references/genre-puzzle.md +145 -0
  759. package/plugins/claude/skills/gdd/references/genre-racing.md +137 -0
  760. package/plugins/claude/skills/gdd/references/genre-rpg.md +125 -0
  761. package/plugins/claude/skills/gdd/references/genre-shooter.md +128 -0
  762. package/plugins/claude/skills/gdd/references/genre-simulation.md +112 -0
  763. package/plugins/claude/skills/gdd/references/genre-strategy.md +116 -0
  764. package/plugins/claude/skills/gdd/references/genre-survival.md +122 -0
  765. package/plugins/claude/skills/gdd/references/in-the-loop.md +106 -0
  766. package/plugins/claude/skills/gdd/references/invent-first.md +131 -0
  767. package/plugins/claude/skills/gdd/references/level-and-fun.md +112 -0
  768. package/plugins/claude/skills/gdd/references/pages.md +47 -0
  769. package/plugins/claude/skills/gdd/references/plan-at-size.md +140 -0
  770. package/plugins/claude/skills/gdd/references/production-tiers.md +117 -0
  771. package/plugins/claude/skills/gdd/references/sections.md +148 -0
  772. package/plugins/claude/skills/gdd/references/spec-folder.md +131 -0
  773. package/plugins/claude/skills/gdd/references/start.md +110 -0
  774. package/plugins/claude/skills/gdd/references/starters.md +175 -0
  775. package/plugins/claude/skills/gdd/references/the-path.md +133 -0
  776. package/plugins/claude/skills/gdd/references/track.md +29 -0
  777. package/plugins/claude/skills/gdd/references/world-and-identity.md +165 -0
  778. package/plugins/claude/skills/gdd/references/worth.md +74 -0
  779. package/plugins/claude/skills/mobile-ui/SKILL.md +107 -0
  780. package/plugins/claude/skills/mobile-ui/references/contrast.md +123 -0
  781. package/plugins/claude/skills/mobile-ui/references/hud-and-title.md +108 -0
  782. package/plugins/claude/skills/mobile-ui/references/hud-genres.md +124 -0
  783. package/plugins/claude/skills/mobile-ui/references/phone-check.md +156 -0
  784. package/plugins/claude/skills/mobile-ui/references/recipes.md +279 -0
  785. package/plugins/claude/skills/mobile-ui/references/restyle-ui.md +229 -0
  786. package/plugins/claude/skills/mobile-ui/references/unity.md +61 -0
  787. package/plugins/claude/skills/publishing/SKILL.md +109 -0
  788. package/plugins/claude/skills/publishing/references/compose.md +113 -0
  789. package/plugins/claude/skills/publishing/references/motion.md +120 -0
  790. package/plugins/claude/skills/publishing/references/networks.md +75 -0
  791. package/plugins/claude/skills/publishing/references/other-hosts.md +65 -0
  792. package/plugins/claude/skills/publishing/references/playable-ad.md +90 -0
  793. package/plugins/claude/skills/publishing/references/server-build.md +85 -0
  794. package/plugins/claude/skills/publishing/references/store-shots.md +85 -0
  795. package/plugins/claude/skills/publishing/references/trailer.md +55 -0
  796. package/plugins/claude/skills/publishing/references/what-ships.md +30 -0
  797. package/plugins/claude/skills/store/SKILL.md +81 -0
  798. package/plugins/claude/skills/store/references/app-store.md +73 -0
  799. package/plugins/claude/skills/store/references/google-play.md +141 -0
  800. package/plugins/claude/skills/store/references/ios-release.md +63 -0
  801. package/plugins/claude/skills/store/references/money.md +66 -0
  802. package/plugins/claude/skills/store/references/purchases-and-review.md +74 -0
  803. package/plugins/claude/skills/store/references/readiness-page.md +24 -0
  804. package/plugins/claude/skills/store/references/readiness.md +107 -0
  805. package/plugins/claude/skills/store/references/steam.md +38 -0
  806. package/plugins/claude/skills/store/references/unity-store.md +55 -0
  807. package/plugins/claude/skills/store/references/web-portals.md +43 -0
  808. package/plugins/claude/skills/unity-game/SKILL.md +103 -0
  809. package/plugins/claude/skills/unity-game/references/agent-ops.md +54 -0
  810. package/plugins/claude/skills/unity-game/references/fixes.md +40 -0
  811. package/plugins/claude/skills/unity-game/references/from-a-web-game.md +108 -0
  812. package/plugins/claude/skills/unity-game/references/handing-off.md +42 -0
  813. package/plugins/claude/skills/unity-game/references/performance.md +59 -0
  814. package/plugins/claude/skills/unity-game/references/probe.md +80 -0
  815. package/plugins/claude/skills/unity-game/references/shared-mac.md +121 -0
  816. package/plugins/claude/skills/unity-game/references/traps.md +108 -0
  817. package/plugins/claude/skills/verifying/SKILL.md +109 -0
  818. package/plugins/claude/skills/verifying/references/actors.md +94 -0
  819. package/plugins/claude/skills/verifying/references/bar.md +62 -0
  820. package/plugins/claude/skills/verifying/references/checks.md +69 -0
  821. package/plugins/claude/skills/verifying/references/experience.md +67 -0
  822. package/plugins/claude/skills/verifying/references/eyes.md +54 -0
  823. package/plugins/claude/skills/verifying/references/fidelity.md +126 -0
  824. package/plugins/claude/skills/verifying/references/hit-bar.md +31 -0
  825. package/plugins/claude/skills/verifying/references/journeys.md +77 -0
  826. package/plugins/claude/skills/verifying/references/mobile-qa.md +123 -0
  827. package/plugins/claude/skills/verifying/references/playtest.md +161 -0
  828. package/plugins/claude/skills/verifying/references/review.md +105 -0
  829. package/plugins/claude/skills/verifying/references/rubric.md +67 -0
  830. package/plugins/claude/skills/verifying/references/scenes.md +49 -0
  831. package/plugins/claude/skills/verifying/references/unity.md +60 -0
  832. package/plugins/claude/skills/world-and-story/SKILL.md +99 -0
  833. package/plugins/claude/skills/world-and-story/references/atmosphere.md +208 -0
  834. package/plugins/claude/skills/world-and-story/references/forged-world.md +79 -0
  835. package/plugins/claude/skills/world-and-story/references/living-world.md +237 -0
  836. package/plugins/claude/skills/world-and-story/references/opening-and-chapters.md +215 -0
  837. package/plugins/claude/skills/world-and-story/references/shelf.md +80 -0
  838. package/plugins/claude/skills/world-and-story/references/story-at-size.md +159 -0
  839. package/plugins/claude/skills/world-and-story/references/voice.md +175 -0
  840. package/plugins/claude/skills/world-and-story/references/world-kit.md +154 -0
  841. package/plugins/codex/.codex-plugin/plugin.json +27 -0
  842. package/plugins/codex/.mcp.json +7 -0
  843. package/plugins/codex/AGENTS.md +135 -0
  844. package/plugins/codex/LICENSE +115 -0
  845. package/plugins/codex/README.md +17 -0
  846. package/plugins/codex/THIRD_PARTY_NOTICES.md +75 -0
  847. package/plugins/codex/hooks/brief.md +135 -0
  848. package/plugins/codex/hooks/codex-critic.mjs +15 -0
  849. package/plugins/codex/hooks/critic-receipts.mjs +86 -0
  850. package/plugins/codex/hooks/durable.mjs +56 -0
  851. package/plugins/codex/hooks/fence.mjs +30 -0
  852. package/plugins/codex/hooks/floors.mjs +181 -0
  853. package/plugins/codex/hooks/flow.mjs +154 -0
  854. package/plugins/codex/hooks/front-door.mjs +68 -0
  855. package/plugins/codex/hooks/guidance.json +3 -0
  856. package/plugins/codex/hooks/hints.mjs +183 -0
  857. package/plugins/codex/hooks/hooks.json +59 -0
  858. package/plugins/codex/hooks/host.md +54 -0
  859. package/plugins/codex/hooks/lib.mjs +362 -0
  860. package/plugins/codex/hooks/memory.mjs +92 -0
  861. package/plugins/codex/hooks/mobile-qa.mjs +43 -0
  862. package/plugins/codex/hooks/note.mjs +63 -0
  863. package/plugins/codex/hooks/nudge.mjs +98 -0
  864. package/plugins/codex/hooks/pipeline.mjs +207 -0
  865. package/plugins/codex/hooks/prompt.mjs +51 -0
  866. package/plugins/codex/hooks/quality.mjs +310 -0
  867. package/plugins/codex/hooks/reach.mjs +93 -0
  868. package/plugins/codex/hooks/scope.mjs +44 -0
  869. package/plugins/codex/hooks/session-log.mjs +101 -0
  870. package/plugins/codex/hooks/session-start.mjs +194 -0
  871. package/plugins/codex/hooks/stop-gate.mjs +303 -0
  872. package/plugins/codex/hooks/vendor/direct/round.mjs +81 -0
  873. package/plugins/codex/hooks/vendor/find/names.mjs +46 -0
  874. package/plugins/codex/hooks/vendor/firstlook/set.mjs +219 -0
  875. package/plugins/codex/hooks/vendor/flow/flow.mjs +456 -0
  876. package/plugins/codex/hooks/vendor/flow/look.mjs +140 -0
  877. package/plugins/codex/hooks/vendor/gdd/book.mjs +484 -0
  878. package/plugins/codex/hooks/vendor/gdd/chapters.mjs +72 -0
  879. package/plugins/codex/hooks/vendor/gdd/doc.mjs +33 -0
  880. package/plugins/codex/hooks/vendor/gdd/levelmap.mjs +429 -0
  881. package/plugins/codex/hooks/vendor/gdd/rubric.mjs +251 -0
  882. package/plugins/codex/hooks/vendor/gdd/worth.mjs +508 -0
  883. package/plugins/codex/hooks/vendor/lanes/fence.mjs +109 -0
  884. package/plugins/codex/hooks/vendor/lanes/lanes.mjs +356 -0
  885. package/plugins/codex/hooks/vendor/lanes/union.mjs +63 -0
  886. package/plugins/codex/hooks/vendor/lessons/motifs.mjs +98 -0
  887. package/plugins/codex/hooks/vendor/lessons/store.mjs +57 -0
  888. package/plugins/codex/hooks/vendor/look/made-of.mjs +243 -0
  889. package/plugins/codex/hooks/vendor/look/roles.mjs +110 -0
  890. package/plugins/codex/hooks/vendor/memory/decisions.mjs +139 -0
  891. package/plugins/codex/hooks/vendor/memory/journal.mjs +109 -0
  892. package/plugins/codex/hooks/vendor/owner/bar.mjs +286 -0
  893. package/plugins/codex/hooks/vendor/pipeline/pipeline.mjs +930 -0
  894. package/plugins/codex/hooks/vendor/playtest/keep.mjs +111 -0
  895. package/plugins/codex/hooks/vendor/playtest/stuck.mjs +48 -0
  896. package/plugins/codex/hooks/vendor/progress/holds.mjs +107 -0
  897. package/plugins/codex/hooks/vendor/progress/progress.mjs +301 -0
  898. package/plugins/codex/hooks/vendor/sim/judge.mjs +241 -0
  899. package/plugins/codex/hooks/vendor/spec/rooms.mjs +189 -0
  900. package/plugins/codex/hooks/vendor/spec/tunables.mjs +75 -0
  901. package/plugins/codex/hooks/vendor/stage/harnessignore.mjs +91 -0
  902. package/plugins/codex/hooks/vendor/stage/stage.mjs +58 -0
  903. package/plugins/codex/hooks/vendor/status/board.mjs +173 -0
  904. package/plugins/codex/hooks/vendor/status/file.mjs +113 -0
  905. package/plugins/codex/hooks/vendor/studio/forks.mjs +94 -0
  906. package/plugins/codex/hooks/vendor/studio/pitch.mjs +295 -0
  907. package/plugins/codex/hooks/vendor/verify/fingerprint.mjs +73 -0
  908. package/plugins/codex/hooks/vendor/verify/reads.mjs +33 -0
  909. package/plugins/codex/hooks/vendor/wow/picks.mjs +75 -0
  910. package/plugins/codex/mcp.json +9 -0
  911. package/plugins/codex/plugin.json +26 -0
  912. package/plugins/codex/skills/fp-art-director/SKILL.md +58 -0
  913. package/plugins/codex/skills/fp-art-director/agents/openai.yaml +12 -0
  914. package/plugins/codex/skills/fp-art-director/references/codex.md +54 -0
  915. package/plugins/codex/skills/fp-audio-director/SKILL.md +55 -0
  916. package/plugins/codex/skills/fp-audio-director/agents/openai.yaml +12 -0
  917. package/plugins/codex/skills/fp-audio-director/references/codex.md +54 -0
  918. package/plugins/codex/skills/fp-critic/SKILL.md +117 -0
  919. package/plugins/codex/skills/fp-critic/agents/openai.yaml +12 -0
  920. package/plugins/codex/skills/fp-critic/references/codex.md +54 -0
  921. package/plugins/codex/skills/fp-first-look/SKILL.md +59 -0
  922. package/plugins/codex/skills/fp-first-look/agents/openai.yaml +12 -0
  923. package/plugins/codex/skills/fp-flow/SKILL.md +50 -0
  924. package/plugins/codex/skills/fp-flow/agents/openai.yaml +12 -0
  925. package/plugins/codex/skills/fp-lane/SKILL.md +41 -0
  926. package/plugins/codex/skills/fp-lane/agents/openai.yaml +12 -0
  927. package/plugins/codex/skills/fp-lane/references/codex.md +54 -0
  928. package/plugins/codex/skills/fp-lanes/SKILL.md +38 -0
  929. package/plugins/codex/skills/fp-lanes/agents/openai.yaml +12 -0
  930. package/plugins/codex/skills/fp-level-designer/SKILL.md +49 -0
  931. package/plugins/codex/skills/fp-level-designer/agents/openai.yaml +12 -0
  932. package/plugins/codex/skills/fp-level-designer/references/codex.md +54 -0
  933. package/plugins/codex/skills/fp-mobile-qa/SKILL.md +28 -0
  934. package/plugins/codex/skills/fp-mobile-qa/agents/openai.yaml +12 -0
  935. package/plugins/codex/skills/fp-mobile-qa-seat/SKILL.md +74 -0
  936. package/plugins/codex/skills/fp-mobile-qa-seat/agents/openai.yaml +12 -0
  937. package/plugins/codex/skills/fp-mobile-qa-seat/references/codex.md +54 -0
  938. package/plugins/codex/skills/fp-new/SKILL.md +94 -0
  939. package/plugins/codex/skills/fp-new/agents/openai.yaml +12 -0
  940. package/plugins/codex/skills/fp-player/SKILL.md +147 -0
  941. package/plugins/codex/skills/fp-player/agents/openai.yaml +12 -0
  942. package/plugins/codex/skills/fp-player/references/codex.md +54 -0
  943. package/plugins/codex/skills/fp-playtest/SKILL.md +66 -0
  944. package/plugins/codex/skills/fp-playtest/agents/openai.yaml +12 -0
  945. package/plugins/codex/skills/fp-publish/SKILL.md +23 -0
  946. package/plugins/codex/skills/fp-publish/agents/openai.yaml +12 -0
  947. package/plugins/codex/skills/fp-qa-lead/SKILL.md +56 -0
  948. package/plugins/codex/skills/fp-qa-lead/agents/openai.yaml +12 -0
  949. package/plugins/codex/skills/fp-qa-lead/references/codex.md +54 -0
  950. package/plugins/codex/skills/fp-smoke-build/SKILL.md +25 -0
  951. package/plugins/codex/skills/fp-smoke-build/agents/openai.yaml +12 -0
  952. package/plugins/codex/skills/fp-studio/SKILL.md +59 -0
  953. package/plugins/codex/skills/fp-studio/agents/openai.yaml +12 -0
  954. package/plugins/codex/skills/fp-verify/SKILL.md +20 -0
  955. package/plugins/codex/skills/fp-verify/agents/openai.yaml +12 -0
  956. package/plugins/codex/skills/funpixel-3d/SKILL.md +89 -0
  957. package/plugins/codex/skills/funpixel-3d/agents/openai.yaml +12 -0
  958. package/plugins/codex/skills/funpixel-3d/references/bake-off.md +48 -0
  959. package/plugins/codex/skills/funpixel-3d/references/bench.md +103 -0
  960. package/plugins/codex/skills/funpixel-3d/references/budgets.md +48 -0
  961. package/plugins/codex/skills/funpixel-3d/references/characters.md +67 -0
  962. package/plugins/codex/skills/funpixel-3d/references/concept-image.md +47 -0
  963. package/plugins/codex/skills/funpixel-3d/references/engine-targets.md +31 -0
  964. package/plugins/codex/skills/funpixel-3d/references/hero-route.md +104 -0
  965. package/plugins/codex/skills/funpixel-3d/references/level-spec.md +109 -0
  966. package/plugins/codex/skills/funpixel-3d/references/levels.md +84 -0
  967. package/plugins/codex/skills/funpixel-3d/references/light-and-places.md +141 -0
  968. package/plugins/codex/skills/funpixel-3d/references/models.md +111 -0
  969. package/plugins/codex/skills/funpixel-3d/references/painted-target.md +184 -0
  970. package/plugins/codex/skills/funpixel-3d/references/reading.md +41 -0
  971. package/plugins/codex/skills/funpixel-3d/references/skin.md +85 -0
  972. package/plugins/codex/skills/funpixel-3d/references/skyboxes.md +65 -0
  973. package/plugins/codex/skills/funpixel-3d/references/textures.md +71 -0
  974. package/plugins/codex/skills/funpixel-3d/references/three-loading.md +199 -0
  975. package/plugins/codex/skills/funpixel-3d/references/unity.md +78 -0
  976. package/plugins/codex/skills/funpixel-art/SKILL.md +104 -0
  977. package/plugins/codex/skills/funpixel-art/agents/openai.yaml +12 -0
  978. package/plugins/codex/skills/funpixel-art/references/2d-assets.md +108 -0
  979. package/plugins/codex/skills/funpixel-art/references/animation.md +126 -0
  980. package/plugins/codex/skills/funpixel-art/references/cast.md +73 -0
  981. package/plugins/codex/skills/funpixel-art/references/characters.md +49 -0
  982. package/plugins/codex/skills/funpixel-art/references/cost.md +107 -0
  983. package/plugins/codex/skills/funpixel-art/references/effects.md +85 -0
  984. package/plugins/codex/skills/funpixel-art/references/frames.md +87 -0
  985. package/plugins/codex/skills/funpixel-art/references/judging-frames.md +64 -0
  986. package/plugins/codex/skills/funpixel-art/references/look.md +102 -0
  987. package/plugins/codex/skills/funpixel-art/references/measure.md +119 -0
  988. package/plugins/codex/skills/funpixel-art/references/pipeline.md +185 -0
  989. package/plugins/codex/skills/funpixel-art/references/pixi.md +277 -0
  990. package/plugins/codex/skills/funpixel-art/references/planes.md +27 -0
  991. package/plugins/codex/skills/funpixel-art/references/prompts.md +171 -0
  992. package/plugins/codex/skills/funpixel-art/references/sheets.md +141 -0
  993. package/plugins/codex/skills/funpixel-art/references/style-file.md +39 -0
  994. package/plugins/codex/skills/funpixel-art/references/three.md +232 -0
  995. package/plugins/codex/skills/funpixel-art/references/ui.md +163 -0
  996. package/plugins/codex/skills/funpixel-art/references/unity.md +78 -0
  997. package/plugins/codex/skills/funpixel-art/references/wiring.md +41 -0
  998. package/plugins/codex/skills/funpixel-audio/SKILL.md +92 -0
  999. package/plugins/codex/skills/funpixel-audio/agents/openai.yaml +12 -0
  1000. package/plugins/codex/skills/funpixel-audio/references/adaptive-music.md +204 -0
  1001. package/plugins/codex/skills/funpixel-audio/references/engine.md +78 -0
  1002. package/plugins/codex/skills/funpixel-audio/references/measure.md +101 -0
  1003. package/plugins/codex/skills/funpixel-audio/references/unity.md +74 -0
  1004. package/plugins/codex/skills/funpixel-feedback/SKILL.md +120 -0
  1005. package/plugins/codex/skills/funpixel-feedback/agents/openai.yaml +12 -0
  1006. package/plugins/codex/skills/funpixel-feedback/references/memory.md +99 -0
  1007. package/plugins/codex/skills/funpixel-game-feel/SKILL.md +104 -0
  1008. package/plugins/codex/skills/funpixel-game-feel/agents/openai.yaml +12 -0
  1009. package/plugins/codex/skills/funpixel-game-feel/references/contact.md +110 -0
  1010. package/plugins/codex/skills/funpixel-game-feel/references/measure.md +125 -0
  1011. package/plugins/codex/skills/funpixel-game-feel/references/motion.md +134 -0
  1012. package/plugins/codex/skills/funpixel-game-feel/references/payoffs.md +35 -0
  1013. package/plugins/codex/skills/funpixel-game-feel/references/recipes.md +107 -0
  1014. package/plugins/codex/skills/funpixel-game-feel/references/unity.md +73 -0
  1015. package/plugins/codex/skills/funpixel-game-logic/SKILL.md +113 -0
  1016. package/plugins/codex/skills/funpixel-game-logic/agents/openai.yaml +12 -0
  1017. package/plugins/codex/skills/funpixel-game-logic/references/balance.md +88 -0
  1018. package/plugins/codex/skills/funpixel-game-logic/references/content-at-scale.md +147 -0
  1019. package/plugins/codex/skills/funpixel-game-logic/references/depth.md +89 -0
  1020. package/plugins/codex/skills/funpixel-game-logic/references/escalation.md +41 -0
  1021. package/plugins/codex/skills/funpixel-game-logic/references/levels.md +61 -0
  1022. package/plugins/codex/skills/funpixel-game-logic/references/probes.md +122 -0
  1023. package/plugins/codex/skills/funpixel-game-logic/references/unity.md +108 -0
  1024. package/plugins/codex/skills/funpixel-game-spine/SKILL.md +118 -0
  1025. package/plugins/codex/skills/funpixel-game-spine/agents/openai.yaml +12 -0
  1026. package/plugins/codex/skills/funpixel-game-spine/references/camera.md +94 -0
  1027. package/plugins/codex/skills/funpixel-game-spine/references/multiplayer.md +101 -0
  1028. package/plugins/codex/skills/funpixel-game-spine/references/patterns.md +103 -0
  1029. package/plugins/codex/skills/funpixel-game-spine/references/performance.md +96 -0
  1030. package/plugins/codex/skills/funpixel-game-spine/references/pixi.md +26 -0
  1031. package/plugins/codex/skills/funpixel-game-spine/references/replay.md +102 -0
  1032. package/plugins/codex/skills/funpixel-game-spine/references/room-api.md +63 -0
  1033. package/plugins/codex/skills/funpixel-game-spine/references/room-modes.md +40 -0
  1034. package/plugins/codex/skills/funpixel-game-spine/references/sdk.md +114 -0
  1035. package/plugins/codex/skills/funpixel-game-spine/references/three.md +62 -0
  1036. package/plugins/codex/skills/funpixel-gdd/SKILL.md +116 -0
  1037. package/plugins/codex/skills/funpixel-gdd/agents/openai.yaml +12 -0
  1038. package/plugins/codex/skills/funpixel-gdd/references/as-built.md +40 -0
  1039. package/plugins/codex/skills/funpixel-gdd/references/design-measures.md +24 -0
  1040. package/plugins/codex/skills/funpixel-gdd/references/design-note.md +88 -0
  1041. package/plugins/codex/skills/funpixel-gdd/references/experience.md +92 -0
  1042. package/plugins/codex/skills/funpixel-gdd/references/first-look.md +226 -0
  1043. package/plugins/codex/skills/funpixel-gdd/references/floors.md +62 -0
  1044. package/plugins/codex/skills/funpixel-gdd/references/frame.md +75 -0
  1045. package/plugins/codex/skills/funpixel-gdd/references/gameplay-contract.md +81 -0
  1046. package/plugins/codex/skills/funpixel-gdd/references/gdd-template.md +417 -0
  1047. package/plugins/codex/skills/funpixel-gdd/references/genre-card.md +109 -0
  1048. package/plugins/codex/skills/funpixel-gdd/references/genre-platformer.md +159 -0
  1049. package/plugins/codex/skills/funpixel-gdd/references/genre-puzzle.md +145 -0
  1050. package/plugins/codex/skills/funpixel-gdd/references/genre-racing.md +137 -0
  1051. package/plugins/codex/skills/funpixel-gdd/references/genre-rpg.md +125 -0
  1052. package/plugins/codex/skills/funpixel-gdd/references/genre-shooter.md +128 -0
  1053. package/plugins/codex/skills/funpixel-gdd/references/genre-simulation.md +112 -0
  1054. package/plugins/codex/skills/funpixel-gdd/references/genre-strategy.md +116 -0
  1055. package/plugins/codex/skills/funpixel-gdd/references/genre-survival.md +122 -0
  1056. package/plugins/codex/skills/funpixel-gdd/references/in-the-loop.md +106 -0
  1057. package/plugins/codex/skills/funpixel-gdd/references/invent-first.md +131 -0
  1058. package/plugins/codex/skills/funpixel-gdd/references/level-and-fun.md +112 -0
  1059. package/plugins/codex/skills/funpixel-gdd/references/pages.md +47 -0
  1060. package/plugins/codex/skills/funpixel-gdd/references/plan-at-size.md +140 -0
  1061. package/plugins/codex/skills/funpixel-gdd/references/production-tiers.md +117 -0
  1062. package/plugins/codex/skills/funpixel-gdd/references/sections.md +148 -0
  1063. package/plugins/codex/skills/funpixel-gdd/references/spec-folder.md +131 -0
  1064. package/plugins/codex/skills/funpixel-gdd/references/start.md +110 -0
  1065. package/plugins/codex/skills/funpixel-gdd/references/starters.md +175 -0
  1066. package/plugins/codex/skills/funpixel-gdd/references/the-path.md +133 -0
  1067. package/plugins/codex/skills/funpixel-gdd/references/track.md +29 -0
  1068. package/plugins/codex/skills/funpixel-gdd/references/world-and-identity.md +165 -0
  1069. package/plugins/codex/skills/funpixel-gdd/references/worth.md +74 -0
  1070. package/plugins/codex/skills/funpixel-mobile-ui/SKILL.md +107 -0
  1071. package/plugins/codex/skills/funpixel-mobile-ui/agents/openai.yaml +12 -0
  1072. package/plugins/codex/skills/funpixel-mobile-ui/references/contrast.md +123 -0
  1073. package/plugins/codex/skills/funpixel-mobile-ui/references/hud-and-title.md +108 -0
  1074. package/plugins/codex/skills/funpixel-mobile-ui/references/hud-genres.md +124 -0
  1075. package/plugins/codex/skills/funpixel-mobile-ui/references/phone-check.md +156 -0
  1076. package/plugins/codex/skills/funpixel-mobile-ui/references/recipes.md +279 -0
  1077. package/plugins/codex/skills/funpixel-mobile-ui/references/restyle-ui.md +229 -0
  1078. package/plugins/codex/skills/funpixel-mobile-ui/references/unity.md +61 -0
  1079. package/plugins/codex/skills/funpixel-publish/SKILL.md +109 -0
  1080. package/plugins/codex/skills/funpixel-publish/agents/openai.yaml +12 -0
  1081. package/plugins/codex/skills/funpixel-publish/references/compose.md +113 -0
  1082. package/plugins/codex/skills/funpixel-publish/references/motion.md +120 -0
  1083. package/plugins/codex/skills/funpixel-publish/references/networks.md +75 -0
  1084. package/plugins/codex/skills/funpixel-publish/references/other-hosts.md +65 -0
  1085. package/plugins/codex/skills/funpixel-publish/references/playable-ad.md +90 -0
  1086. package/plugins/codex/skills/funpixel-publish/references/server-build.md +85 -0
  1087. package/plugins/codex/skills/funpixel-publish/references/store-shots.md +85 -0
  1088. package/plugins/codex/skills/funpixel-publish/references/trailer.md +55 -0
  1089. package/plugins/codex/skills/funpixel-publish/references/what-ships.md +30 -0
  1090. package/plugins/codex/skills/funpixel-store/SKILL.md +81 -0
  1091. package/plugins/codex/skills/funpixel-store/agents/openai.yaml +12 -0
  1092. package/plugins/codex/skills/funpixel-store/references/app-store.md +73 -0
  1093. package/plugins/codex/skills/funpixel-store/references/google-play.md +141 -0
  1094. package/plugins/codex/skills/funpixel-store/references/ios-release.md +63 -0
  1095. package/plugins/codex/skills/funpixel-store/references/money.md +66 -0
  1096. package/plugins/codex/skills/funpixel-store/references/purchases-and-review.md +74 -0
  1097. package/plugins/codex/skills/funpixel-store/references/readiness-page.md +24 -0
  1098. package/plugins/codex/skills/funpixel-store/references/readiness.md +107 -0
  1099. package/plugins/codex/skills/funpixel-store/references/steam.md +38 -0
  1100. package/plugins/codex/skills/funpixel-store/references/unity-store.md +55 -0
  1101. package/plugins/codex/skills/funpixel-store/references/web-portals.md +43 -0
  1102. package/plugins/codex/skills/funpixel-unity-game/SKILL.md +103 -0
  1103. package/plugins/codex/skills/funpixel-unity-game/agents/openai.yaml +12 -0
  1104. package/plugins/codex/skills/funpixel-unity-game/references/agent-ops.md +54 -0
  1105. package/plugins/codex/skills/funpixel-unity-game/references/fixes.md +40 -0
  1106. package/plugins/codex/skills/funpixel-unity-game/references/from-a-web-game.md +108 -0
  1107. package/plugins/codex/skills/funpixel-unity-game/references/handing-off.md +42 -0
  1108. package/plugins/codex/skills/funpixel-unity-game/references/performance.md +59 -0
  1109. package/plugins/codex/skills/funpixel-unity-game/references/probe.md +80 -0
  1110. package/plugins/codex/skills/funpixel-unity-game/references/shared-mac.md +121 -0
  1111. package/plugins/codex/skills/funpixel-unity-game/references/traps.md +108 -0
  1112. package/plugins/codex/skills/funpixel-verify/SKILL.md +109 -0
  1113. package/plugins/codex/skills/funpixel-verify/agents/openai.yaml +12 -0
  1114. package/plugins/codex/skills/funpixel-verify/references/actors.md +94 -0
  1115. package/plugins/codex/skills/funpixel-verify/references/bar.md +62 -0
  1116. package/plugins/codex/skills/funpixel-verify/references/checks.md +69 -0
  1117. package/plugins/codex/skills/funpixel-verify/references/experience.md +67 -0
  1118. package/plugins/codex/skills/funpixel-verify/references/eyes.md +54 -0
  1119. package/plugins/codex/skills/funpixel-verify/references/fidelity.md +126 -0
  1120. package/plugins/codex/skills/funpixel-verify/references/hit-bar.md +31 -0
  1121. package/plugins/codex/skills/funpixel-verify/references/journeys.md +77 -0
  1122. package/plugins/codex/skills/funpixel-verify/references/mobile-qa.md +123 -0
  1123. package/plugins/codex/skills/funpixel-verify/references/playtest.md +161 -0
  1124. package/plugins/codex/skills/funpixel-verify/references/review.md +105 -0
  1125. package/plugins/codex/skills/funpixel-verify/references/rubric.md +67 -0
  1126. package/plugins/codex/skills/funpixel-verify/references/scenes.md +49 -0
  1127. package/plugins/codex/skills/funpixel-verify/references/unity.md +60 -0
  1128. package/plugins/codex/skills/funpixel-world-and-story/SKILL.md +99 -0
  1129. package/plugins/codex/skills/funpixel-world-and-story/agents/openai.yaml +12 -0
  1130. package/plugins/codex/skills/funpixel-world-and-story/references/atmosphere.md +208 -0
  1131. package/plugins/codex/skills/funpixel-world-and-story/references/forged-world.md +79 -0
  1132. package/plugins/codex/skills/funpixel-world-and-story/references/living-world.md +237 -0
  1133. package/plugins/codex/skills/funpixel-world-and-story/references/opening-and-chapters.md +215 -0
  1134. package/plugins/codex/skills/funpixel-world-and-story/references/shelf.md +80 -0
  1135. package/plugins/codex/skills/funpixel-world-and-story/references/story-at-size.md +159 -0
  1136. package/plugins/codex/skills/funpixel-world-and-story/references/voice.md +175 -0
  1137. package/plugins/codex/skills/funpixel-world-and-story/references/world-kit.md +154 -0
  1138. package/plugins/cursor/.cursor-plugin/plugin.json +26 -0
  1139. package/plugins/cursor/LICENSE +115 -0
  1140. package/plugins/cursor/README.md +13 -0
  1141. package/plugins/cursor/THIRD_PARTY_NOTICES.md +75 -0
  1142. package/plugins/cursor/agents/art-director.md +54 -0
  1143. package/plugins/cursor/agents/audio-director.md +51 -0
  1144. package/plugins/cursor/agents/critic.md +113 -0
  1145. package/plugins/cursor/agents/lane.md +37 -0
  1146. package/plugins/cursor/agents/level-designer.md +45 -0
  1147. package/plugins/cursor/agents/mobile-qa.md +70 -0
  1148. package/plugins/cursor/agents/player.md +143 -0
  1149. package/plugins/cursor/agents/qa-lead.md +52 -0
  1150. package/plugins/cursor/commands/first-look.md +59 -0
  1151. package/plugins/cursor/commands/flow.md +50 -0
  1152. package/plugins/cursor/commands/lanes.md +38 -0
  1153. package/plugins/cursor/commands/mobile-qa.md +28 -0
  1154. package/plugins/cursor/commands/new.md +94 -0
  1155. package/plugins/cursor/commands/playtest.md +66 -0
  1156. package/plugins/cursor/commands/publish.md +23 -0
  1157. package/plugins/cursor/commands/smoke-build.md +25 -0
  1158. package/plugins/cursor/commands/verify.md +20 -0
  1159. package/plugins/cursor/hooks/brief.md +135 -0
  1160. package/plugins/cursor/hooks/critic-receipts.mjs +86 -0
  1161. package/plugins/cursor/hooks/durable.mjs +56 -0
  1162. package/plugins/cursor/hooks/fence.mjs +30 -0
  1163. package/plugins/cursor/hooks/floors.mjs +181 -0
  1164. package/plugins/cursor/hooks/flow.mjs +154 -0
  1165. package/plugins/cursor/hooks/front-door.mjs +68 -0
  1166. package/plugins/cursor/hooks/guidance.json +3 -0
  1167. package/plugins/cursor/hooks/hints.mjs +183 -0
  1168. package/plugins/cursor/hooks/hooks.json +26 -0
  1169. package/plugins/cursor/hooks/lib.mjs +362 -0
  1170. package/plugins/cursor/hooks/memory.mjs +92 -0
  1171. package/plugins/cursor/hooks/mobile-qa.mjs +43 -0
  1172. package/plugins/cursor/hooks/note.mjs +63 -0
  1173. package/plugins/cursor/hooks/nudge.mjs +98 -0
  1174. package/plugins/cursor/hooks/pipeline.mjs +207 -0
  1175. package/plugins/cursor/hooks/prompt.mjs +51 -0
  1176. package/plugins/cursor/hooks/quality.mjs +310 -0
  1177. package/plugins/cursor/hooks/reach.mjs +93 -0
  1178. package/plugins/cursor/hooks/scope.mjs +44 -0
  1179. package/plugins/cursor/hooks/session-log.mjs +101 -0
  1180. package/plugins/cursor/hooks/session-start.mjs +194 -0
  1181. package/plugins/cursor/hooks/stop-gate.mjs +303 -0
  1182. package/plugins/cursor/hooks/vendor/direct/round.mjs +81 -0
  1183. package/plugins/cursor/hooks/vendor/find/names.mjs +46 -0
  1184. package/plugins/cursor/hooks/vendor/firstlook/set.mjs +219 -0
  1185. package/plugins/cursor/hooks/vendor/flow/flow.mjs +456 -0
  1186. package/plugins/cursor/hooks/vendor/flow/look.mjs +140 -0
  1187. package/plugins/cursor/hooks/vendor/gdd/book.mjs +484 -0
  1188. package/plugins/cursor/hooks/vendor/gdd/chapters.mjs +72 -0
  1189. package/plugins/cursor/hooks/vendor/gdd/doc.mjs +33 -0
  1190. package/plugins/cursor/hooks/vendor/gdd/levelmap.mjs +429 -0
  1191. package/plugins/cursor/hooks/vendor/gdd/rubric.mjs +251 -0
  1192. package/plugins/cursor/hooks/vendor/gdd/worth.mjs +508 -0
  1193. package/plugins/cursor/hooks/vendor/lanes/fence.mjs +109 -0
  1194. package/plugins/cursor/hooks/vendor/lanes/lanes.mjs +356 -0
  1195. package/plugins/cursor/hooks/vendor/lanes/union.mjs +63 -0
  1196. package/plugins/cursor/hooks/vendor/lessons/motifs.mjs +98 -0
  1197. package/plugins/cursor/hooks/vendor/lessons/store.mjs +57 -0
  1198. package/plugins/cursor/hooks/vendor/look/made-of.mjs +243 -0
  1199. package/plugins/cursor/hooks/vendor/look/roles.mjs +110 -0
  1200. package/plugins/cursor/hooks/vendor/memory/decisions.mjs +139 -0
  1201. package/plugins/cursor/hooks/vendor/memory/journal.mjs +109 -0
  1202. package/plugins/cursor/hooks/vendor/owner/bar.mjs +286 -0
  1203. package/plugins/cursor/hooks/vendor/pipeline/pipeline.mjs +930 -0
  1204. package/plugins/cursor/hooks/vendor/playtest/keep.mjs +111 -0
  1205. package/plugins/cursor/hooks/vendor/playtest/stuck.mjs +48 -0
  1206. package/plugins/cursor/hooks/vendor/progress/holds.mjs +107 -0
  1207. package/plugins/cursor/hooks/vendor/progress/progress.mjs +301 -0
  1208. package/plugins/cursor/hooks/vendor/sim/judge.mjs +241 -0
  1209. package/plugins/cursor/hooks/vendor/spec/rooms.mjs +189 -0
  1210. package/plugins/cursor/hooks/vendor/spec/tunables.mjs +75 -0
  1211. package/plugins/cursor/hooks/vendor/stage/harnessignore.mjs +91 -0
  1212. package/plugins/cursor/hooks/vendor/stage/stage.mjs +58 -0
  1213. package/plugins/cursor/hooks/vendor/status/board.mjs +173 -0
  1214. package/plugins/cursor/hooks/vendor/status/file.mjs +113 -0
  1215. package/plugins/cursor/hooks/vendor/studio/forks.mjs +94 -0
  1216. package/plugins/cursor/hooks/vendor/studio/pitch.mjs +295 -0
  1217. package/plugins/cursor/hooks/vendor/verify/fingerprint.mjs +73 -0
  1218. package/plugins/cursor/hooks/vendor/verify/reads.mjs +33 -0
  1219. package/plugins/cursor/hooks/vendor/wow/picks.mjs +75 -0
  1220. package/plugins/cursor/mcp.json +10 -0
  1221. package/plugins/cursor/rules/funpixel-brief.mdc +141 -0
  1222. package/plugins/cursor/skills/funpixel-3d/SKILL.md +89 -0
  1223. package/plugins/cursor/skills/funpixel-3d/references/bake-off.md +48 -0
  1224. package/plugins/cursor/skills/funpixel-3d/references/bench.md +103 -0
  1225. package/plugins/cursor/skills/funpixel-3d/references/budgets.md +48 -0
  1226. package/plugins/cursor/skills/funpixel-3d/references/characters.md +67 -0
  1227. package/plugins/cursor/skills/funpixel-3d/references/concept-image.md +47 -0
  1228. package/plugins/cursor/skills/funpixel-3d/references/engine-targets.md +31 -0
  1229. package/plugins/cursor/skills/funpixel-3d/references/hero-route.md +104 -0
  1230. package/plugins/cursor/skills/funpixel-3d/references/level-spec.md +109 -0
  1231. package/plugins/cursor/skills/funpixel-3d/references/levels.md +84 -0
  1232. package/plugins/cursor/skills/funpixel-3d/references/light-and-places.md +141 -0
  1233. package/plugins/cursor/skills/funpixel-3d/references/models.md +111 -0
  1234. package/plugins/cursor/skills/funpixel-3d/references/painted-target.md +184 -0
  1235. package/plugins/cursor/skills/funpixel-3d/references/reading.md +41 -0
  1236. package/plugins/cursor/skills/funpixel-3d/references/skin.md +85 -0
  1237. package/plugins/cursor/skills/funpixel-3d/references/skyboxes.md +65 -0
  1238. package/plugins/cursor/skills/funpixel-3d/references/textures.md +71 -0
  1239. package/plugins/cursor/skills/funpixel-3d/references/three-loading.md +199 -0
  1240. package/plugins/cursor/skills/funpixel-3d/references/unity.md +78 -0
  1241. package/plugins/cursor/skills/funpixel-art/SKILL.md +104 -0
  1242. package/plugins/cursor/skills/funpixel-art/references/2d-assets.md +108 -0
  1243. package/plugins/cursor/skills/funpixel-art/references/animation.md +126 -0
  1244. package/plugins/cursor/skills/funpixel-art/references/cast.md +73 -0
  1245. package/plugins/cursor/skills/funpixel-art/references/characters.md +49 -0
  1246. package/plugins/cursor/skills/funpixel-art/references/cost.md +107 -0
  1247. package/plugins/cursor/skills/funpixel-art/references/effects.md +85 -0
  1248. package/plugins/cursor/skills/funpixel-art/references/frames.md +87 -0
  1249. package/plugins/cursor/skills/funpixel-art/references/judging-frames.md +64 -0
  1250. package/plugins/cursor/skills/funpixel-art/references/look.md +102 -0
  1251. package/plugins/cursor/skills/funpixel-art/references/measure.md +119 -0
  1252. package/plugins/cursor/skills/funpixel-art/references/pipeline.md +185 -0
  1253. package/plugins/cursor/skills/funpixel-art/references/pixi.md +277 -0
  1254. package/plugins/cursor/skills/funpixel-art/references/planes.md +27 -0
  1255. package/plugins/cursor/skills/funpixel-art/references/prompts.md +171 -0
  1256. package/plugins/cursor/skills/funpixel-art/references/sheets.md +141 -0
  1257. package/plugins/cursor/skills/funpixel-art/references/style-file.md +39 -0
  1258. package/plugins/cursor/skills/funpixel-art/references/three.md +232 -0
  1259. package/plugins/cursor/skills/funpixel-art/references/ui.md +163 -0
  1260. package/plugins/cursor/skills/funpixel-art/references/unity.md +78 -0
  1261. package/plugins/cursor/skills/funpixel-art/references/wiring.md +41 -0
  1262. package/plugins/cursor/skills/funpixel-audio/SKILL.md +92 -0
  1263. package/plugins/cursor/skills/funpixel-audio/references/adaptive-music.md +204 -0
  1264. package/plugins/cursor/skills/funpixel-audio/references/engine.md +78 -0
  1265. package/plugins/cursor/skills/funpixel-audio/references/measure.md +101 -0
  1266. package/plugins/cursor/skills/funpixel-audio/references/unity.md +74 -0
  1267. package/plugins/cursor/skills/funpixel-feedback/SKILL.md +120 -0
  1268. package/plugins/cursor/skills/funpixel-feedback/references/memory.md +99 -0
  1269. package/plugins/cursor/skills/funpixel-game-feel/SKILL.md +104 -0
  1270. package/plugins/cursor/skills/funpixel-game-feel/references/contact.md +110 -0
  1271. package/plugins/cursor/skills/funpixel-game-feel/references/measure.md +125 -0
  1272. package/plugins/cursor/skills/funpixel-game-feel/references/motion.md +134 -0
  1273. package/plugins/cursor/skills/funpixel-game-feel/references/payoffs.md +35 -0
  1274. package/plugins/cursor/skills/funpixel-game-feel/references/recipes.md +107 -0
  1275. package/plugins/cursor/skills/funpixel-game-feel/references/unity.md +73 -0
  1276. package/plugins/cursor/skills/funpixel-game-logic/SKILL.md +113 -0
  1277. package/plugins/cursor/skills/funpixel-game-logic/references/balance.md +88 -0
  1278. package/plugins/cursor/skills/funpixel-game-logic/references/content-at-scale.md +147 -0
  1279. package/plugins/cursor/skills/funpixel-game-logic/references/depth.md +89 -0
  1280. package/plugins/cursor/skills/funpixel-game-logic/references/escalation.md +41 -0
  1281. package/plugins/cursor/skills/funpixel-game-logic/references/levels.md +61 -0
  1282. package/plugins/cursor/skills/funpixel-game-logic/references/probes.md +122 -0
  1283. package/plugins/cursor/skills/funpixel-game-logic/references/unity.md +108 -0
  1284. package/plugins/cursor/skills/funpixel-game-spine/SKILL.md +118 -0
  1285. package/plugins/cursor/skills/funpixel-game-spine/references/camera.md +94 -0
  1286. package/plugins/cursor/skills/funpixel-game-spine/references/multiplayer.md +101 -0
  1287. package/plugins/cursor/skills/funpixel-game-spine/references/patterns.md +103 -0
  1288. package/plugins/cursor/skills/funpixel-game-spine/references/performance.md +96 -0
  1289. package/plugins/cursor/skills/funpixel-game-spine/references/pixi.md +26 -0
  1290. package/plugins/cursor/skills/funpixel-game-spine/references/replay.md +102 -0
  1291. package/plugins/cursor/skills/funpixel-game-spine/references/room-api.md +63 -0
  1292. package/plugins/cursor/skills/funpixel-game-spine/references/room-modes.md +40 -0
  1293. package/plugins/cursor/skills/funpixel-game-spine/references/sdk.md +114 -0
  1294. package/plugins/cursor/skills/funpixel-game-spine/references/three.md +62 -0
  1295. package/plugins/cursor/skills/funpixel-gdd/SKILL.md +116 -0
  1296. package/plugins/cursor/skills/funpixel-gdd/references/as-built.md +40 -0
  1297. package/plugins/cursor/skills/funpixel-gdd/references/design-measures.md +24 -0
  1298. package/plugins/cursor/skills/funpixel-gdd/references/design-note.md +88 -0
  1299. package/plugins/cursor/skills/funpixel-gdd/references/experience.md +92 -0
  1300. package/plugins/cursor/skills/funpixel-gdd/references/first-look.md +226 -0
  1301. package/plugins/cursor/skills/funpixel-gdd/references/floors.md +62 -0
  1302. package/plugins/cursor/skills/funpixel-gdd/references/frame.md +75 -0
  1303. package/plugins/cursor/skills/funpixel-gdd/references/gameplay-contract.md +81 -0
  1304. package/plugins/cursor/skills/funpixel-gdd/references/gdd-template.md +417 -0
  1305. package/plugins/cursor/skills/funpixel-gdd/references/genre-card.md +109 -0
  1306. package/plugins/cursor/skills/funpixel-gdd/references/genre-platformer.md +159 -0
  1307. package/plugins/cursor/skills/funpixel-gdd/references/genre-puzzle.md +145 -0
  1308. package/plugins/cursor/skills/funpixel-gdd/references/genre-racing.md +137 -0
  1309. package/plugins/cursor/skills/funpixel-gdd/references/genre-rpg.md +125 -0
  1310. package/plugins/cursor/skills/funpixel-gdd/references/genre-shooter.md +128 -0
  1311. package/plugins/cursor/skills/funpixel-gdd/references/genre-simulation.md +112 -0
  1312. package/plugins/cursor/skills/funpixel-gdd/references/genre-strategy.md +116 -0
  1313. package/plugins/cursor/skills/funpixel-gdd/references/genre-survival.md +122 -0
  1314. package/plugins/cursor/skills/funpixel-gdd/references/in-the-loop.md +106 -0
  1315. package/plugins/cursor/skills/funpixel-gdd/references/invent-first.md +131 -0
  1316. package/plugins/cursor/skills/funpixel-gdd/references/level-and-fun.md +112 -0
  1317. package/plugins/cursor/skills/funpixel-gdd/references/pages.md +47 -0
  1318. package/plugins/cursor/skills/funpixel-gdd/references/plan-at-size.md +140 -0
  1319. package/plugins/cursor/skills/funpixel-gdd/references/production-tiers.md +117 -0
  1320. package/plugins/cursor/skills/funpixel-gdd/references/sections.md +148 -0
  1321. package/plugins/cursor/skills/funpixel-gdd/references/spec-folder.md +131 -0
  1322. package/plugins/cursor/skills/funpixel-gdd/references/start.md +110 -0
  1323. package/plugins/cursor/skills/funpixel-gdd/references/starters.md +175 -0
  1324. package/plugins/cursor/skills/funpixel-gdd/references/the-path.md +133 -0
  1325. package/plugins/cursor/skills/funpixel-gdd/references/track.md +29 -0
  1326. package/plugins/cursor/skills/funpixel-gdd/references/world-and-identity.md +165 -0
  1327. package/plugins/cursor/skills/funpixel-gdd/references/worth.md +74 -0
  1328. package/plugins/cursor/skills/funpixel-mobile-ui/SKILL.md +107 -0
  1329. package/plugins/cursor/skills/funpixel-mobile-ui/references/contrast.md +123 -0
  1330. package/plugins/cursor/skills/funpixel-mobile-ui/references/hud-and-title.md +108 -0
  1331. package/plugins/cursor/skills/funpixel-mobile-ui/references/hud-genres.md +124 -0
  1332. package/plugins/cursor/skills/funpixel-mobile-ui/references/phone-check.md +156 -0
  1333. package/plugins/cursor/skills/funpixel-mobile-ui/references/recipes.md +279 -0
  1334. package/plugins/cursor/skills/funpixel-mobile-ui/references/restyle-ui.md +229 -0
  1335. package/plugins/cursor/skills/funpixel-mobile-ui/references/unity.md +61 -0
  1336. package/plugins/cursor/skills/funpixel-publish/SKILL.md +109 -0
  1337. package/plugins/cursor/skills/funpixel-publish/references/compose.md +113 -0
  1338. package/plugins/cursor/skills/funpixel-publish/references/motion.md +120 -0
  1339. package/plugins/cursor/skills/funpixel-publish/references/networks.md +75 -0
  1340. package/plugins/cursor/skills/funpixel-publish/references/other-hosts.md +65 -0
  1341. package/plugins/cursor/skills/funpixel-publish/references/playable-ad.md +90 -0
  1342. package/plugins/cursor/skills/funpixel-publish/references/server-build.md +85 -0
  1343. package/plugins/cursor/skills/funpixel-publish/references/store-shots.md +85 -0
  1344. package/plugins/cursor/skills/funpixel-publish/references/trailer.md +55 -0
  1345. package/plugins/cursor/skills/funpixel-publish/references/what-ships.md +30 -0
  1346. package/plugins/cursor/skills/funpixel-store/SKILL.md +81 -0
  1347. package/plugins/cursor/skills/funpixel-store/references/app-store.md +73 -0
  1348. package/plugins/cursor/skills/funpixel-store/references/google-play.md +141 -0
  1349. package/plugins/cursor/skills/funpixel-store/references/ios-release.md +63 -0
  1350. package/plugins/cursor/skills/funpixel-store/references/money.md +66 -0
  1351. package/plugins/cursor/skills/funpixel-store/references/purchases-and-review.md +74 -0
  1352. package/plugins/cursor/skills/funpixel-store/references/readiness-page.md +24 -0
  1353. package/plugins/cursor/skills/funpixel-store/references/readiness.md +107 -0
  1354. package/plugins/cursor/skills/funpixel-store/references/steam.md +38 -0
  1355. package/plugins/cursor/skills/funpixel-store/references/unity-store.md +55 -0
  1356. package/plugins/cursor/skills/funpixel-store/references/web-portals.md +43 -0
  1357. package/plugins/cursor/skills/funpixel-unity-game/SKILL.md +103 -0
  1358. package/plugins/cursor/skills/funpixel-unity-game/references/agent-ops.md +54 -0
  1359. package/plugins/cursor/skills/funpixel-unity-game/references/fixes.md +40 -0
  1360. package/plugins/cursor/skills/funpixel-unity-game/references/from-a-web-game.md +108 -0
  1361. package/plugins/cursor/skills/funpixel-unity-game/references/handing-off.md +42 -0
  1362. package/plugins/cursor/skills/funpixel-unity-game/references/performance.md +59 -0
  1363. package/plugins/cursor/skills/funpixel-unity-game/references/probe.md +80 -0
  1364. package/plugins/cursor/skills/funpixel-unity-game/references/shared-mac.md +121 -0
  1365. package/plugins/cursor/skills/funpixel-unity-game/references/traps.md +108 -0
  1366. package/plugins/cursor/skills/funpixel-verify/SKILL.md +109 -0
  1367. package/plugins/cursor/skills/funpixel-verify/references/actors.md +94 -0
  1368. package/plugins/cursor/skills/funpixel-verify/references/bar.md +62 -0
  1369. package/plugins/cursor/skills/funpixel-verify/references/checks.md +69 -0
  1370. package/plugins/cursor/skills/funpixel-verify/references/experience.md +67 -0
  1371. package/plugins/cursor/skills/funpixel-verify/references/eyes.md +54 -0
  1372. package/plugins/cursor/skills/funpixel-verify/references/fidelity.md +126 -0
  1373. package/plugins/cursor/skills/funpixel-verify/references/hit-bar.md +31 -0
  1374. package/plugins/cursor/skills/funpixel-verify/references/journeys.md +77 -0
  1375. package/plugins/cursor/skills/funpixel-verify/references/mobile-qa.md +123 -0
  1376. package/plugins/cursor/skills/funpixel-verify/references/playtest.md +161 -0
  1377. package/plugins/cursor/skills/funpixel-verify/references/review.md +105 -0
  1378. package/plugins/cursor/skills/funpixel-verify/references/rubric.md +67 -0
  1379. package/plugins/cursor/skills/funpixel-verify/references/scenes.md +49 -0
  1380. package/plugins/cursor/skills/funpixel-verify/references/unity.md +60 -0
  1381. package/plugins/cursor/skills/funpixel-world-and-story/SKILL.md +99 -0
  1382. package/plugins/cursor/skills/funpixel-world-and-story/references/atmosphere.md +208 -0
  1383. package/plugins/cursor/skills/funpixel-world-and-story/references/forged-world.md +79 -0
  1384. package/plugins/cursor/skills/funpixel-world-and-story/references/living-world.md +237 -0
  1385. package/plugins/cursor/skills/funpixel-world-and-story/references/opening-and-chapters.md +215 -0
  1386. package/plugins/cursor/skills/funpixel-world-and-story/references/shelf.md +80 -0
  1387. package/plugins/cursor/skills/funpixel-world-and-story/references/story-at-size.md +159 -0
  1388. package/plugins/cursor/skills/funpixel-world-and-story/references/voice.md +175 -0
  1389. package/plugins/cursor/skills/funpixel-world-and-story/references/world-kit.md +154 -0
  1390. package/plugins/kiro/AGENTS.md +135 -0
  1391. package/plugins/kiro/LICENSE +115 -0
  1392. package/plugins/kiro/README.md +17 -0
  1393. package/plugins/kiro/THIRD_PARTY_NOTICES.md +75 -0
  1394. package/plugins/kiro/agent.template.json +45 -0
  1395. package/plugins/kiro/hooks/brief.md +135 -0
  1396. package/plugins/kiro/hooks/critic-receipts.mjs +86 -0
  1397. package/plugins/kiro/hooks/durable.mjs +56 -0
  1398. package/plugins/kiro/hooks/fence.mjs +30 -0
  1399. package/plugins/kiro/hooks/floors.mjs +181 -0
  1400. package/plugins/kiro/hooks/flow.mjs +154 -0
  1401. package/plugins/kiro/hooks/front-door.mjs +68 -0
  1402. package/plugins/kiro/hooks/guidance.json +3 -0
  1403. package/plugins/kiro/hooks/hints.mjs +183 -0
  1404. package/plugins/kiro/hooks/host.md +43 -0
  1405. package/plugins/kiro/hooks/kiro-prompt.mjs +26 -0
  1406. package/plugins/kiro/hooks/lib.mjs +362 -0
  1407. package/plugins/kiro/hooks/memory.mjs +92 -0
  1408. package/plugins/kiro/hooks/mobile-qa.mjs +43 -0
  1409. package/plugins/kiro/hooks/note.mjs +63 -0
  1410. package/plugins/kiro/hooks/nudge.mjs +98 -0
  1411. package/plugins/kiro/hooks/pipeline.mjs +207 -0
  1412. package/plugins/kiro/hooks/prompt.mjs +51 -0
  1413. package/plugins/kiro/hooks/quality.mjs +310 -0
  1414. package/plugins/kiro/hooks/reach.mjs +93 -0
  1415. package/plugins/kiro/hooks/scope.mjs +44 -0
  1416. package/plugins/kiro/hooks/session-log.mjs +101 -0
  1417. package/plugins/kiro/hooks/session-start.mjs +194 -0
  1418. package/plugins/kiro/hooks/stop-gate.mjs +303 -0
  1419. package/plugins/kiro/hooks/vendor/direct/round.mjs +81 -0
  1420. package/plugins/kiro/hooks/vendor/find/names.mjs +46 -0
  1421. package/plugins/kiro/hooks/vendor/firstlook/set.mjs +219 -0
  1422. package/plugins/kiro/hooks/vendor/flow/flow.mjs +456 -0
  1423. package/plugins/kiro/hooks/vendor/flow/look.mjs +140 -0
  1424. package/plugins/kiro/hooks/vendor/gdd/book.mjs +484 -0
  1425. package/plugins/kiro/hooks/vendor/gdd/chapters.mjs +72 -0
  1426. package/plugins/kiro/hooks/vendor/gdd/doc.mjs +33 -0
  1427. package/plugins/kiro/hooks/vendor/gdd/levelmap.mjs +429 -0
  1428. package/plugins/kiro/hooks/vendor/gdd/rubric.mjs +251 -0
  1429. package/plugins/kiro/hooks/vendor/gdd/worth.mjs +508 -0
  1430. package/plugins/kiro/hooks/vendor/lanes/fence.mjs +109 -0
  1431. package/plugins/kiro/hooks/vendor/lanes/lanes.mjs +356 -0
  1432. package/plugins/kiro/hooks/vendor/lanes/union.mjs +63 -0
  1433. package/plugins/kiro/hooks/vendor/lessons/motifs.mjs +98 -0
  1434. package/plugins/kiro/hooks/vendor/lessons/store.mjs +57 -0
  1435. package/plugins/kiro/hooks/vendor/look/made-of.mjs +243 -0
  1436. package/plugins/kiro/hooks/vendor/look/roles.mjs +110 -0
  1437. package/plugins/kiro/hooks/vendor/memory/decisions.mjs +139 -0
  1438. package/plugins/kiro/hooks/vendor/memory/journal.mjs +109 -0
  1439. package/plugins/kiro/hooks/vendor/owner/bar.mjs +286 -0
  1440. package/plugins/kiro/hooks/vendor/pipeline/pipeline.mjs +930 -0
  1441. package/plugins/kiro/hooks/vendor/playtest/keep.mjs +111 -0
  1442. package/plugins/kiro/hooks/vendor/playtest/stuck.mjs +48 -0
  1443. package/plugins/kiro/hooks/vendor/progress/holds.mjs +107 -0
  1444. package/plugins/kiro/hooks/vendor/progress/progress.mjs +301 -0
  1445. package/plugins/kiro/hooks/vendor/sim/judge.mjs +241 -0
  1446. package/plugins/kiro/hooks/vendor/spec/rooms.mjs +189 -0
  1447. package/plugins/kiro/hooks/vendor/spec/tunables.mjs +75 -0
  1448. package/plugins/kiro/hooks/vendor/stage/harnessignore.mjs +91 -0
  1449. package/plugins/kiro/hooks/vendor/stage/stage.mjs +58 -0
  1450. package/plugins/kiro/hooks/vendor/status/board.mjs +173 -0
  1451. package/plugins/kiro/hooks/vendor/status/file.mjs +113 -0
  1452. package/plugins/kiro/hooks/vendor/studio/forks.mjs +94 -0
  1453. package/plugins/kiro/hooks/vendor/studio/pitch.mjs +295 -0
  1454. package/plugins/kiro/hooks/vendor/verify/fingerprint.mjs +73 -0
  1455. package/plugins/kiro/hooks/vendor/verify/reads.mjs +33 -0
  1456. package/plugins/kiro/hooks/vendor/wow/picks.mjs +75 -0
  1457. package/plugins/kiro/install.mjs +37 -0
  1458. package/plugins/kiro/skills/fp-art-director/SKILL.md +58 -0
  1459. package/plugins/kiro/skills/fp-art-director/references/kiro.md +43 -0
  1460. package/plugins/kiro/skills/fp-audio-director/SKILL.md +55 -0
  1461. package/plugins/kiro/skills/fp-audio-director/references/kiro.md +43 -0
  1462. package/plugins/kiro/skills/fp-critic/SKILL.md +117 -0
  1463. package/plugins/kiro/skills/fp-critic/references/kiro.md +43 -0
  1464. package/plugins/kiro/skills/fp-first-look/SKILL.md +61 -0
  1465. package/plugins/kiro/skills/fp-flow/SKILL.md +52 -0
  1466. package/plugins/kiro/skills/fp-lane/SKILL.md +41 -0
  1467. package/plugins/kiro/skills/fp-lane/references/kiro.md +43 -0
  1468. package/plugins/kiro/skills/fp-lanes/SKILL.md +40 -0
  1469. package/plugins/kiro/skills/fp-level-designer/SKILL.md +49 -0
  1470. package/plugins/kiro/skills/fp-level-designer/references/kiro.md +43 -0
  1471. package/plugins/kiro/skills/fp-mobile-qa/SKILL.md +30 -0
  1472. package/plugins/kiro/skills/fp-mobile-qa-seat/SKILL.md +74 -0
  1473. package/plugins/kiro/skills/fp-mobile-qa-seat/references/kiro.md +43 -0
  1474. package/plugins/kiro/skills/fp-new/SKILL.md +96 -0
  1475. package/plugins/kiro/skills/fp-player/SKILL.md +147 -0
  1476. package/plugins/kiro/skills/fp-player/references/kiro.md +43 -0
  1477. package/plugins/kiro/skills/fp-playtest/SKILL.md +68 -0
  1478. package/plugins/kiro/skills/fp-publish/SKILL.md +25 -0
  1479. package/plugins/kiro/skills/fp-qa-lead/SKILL.md +56 -0
  1480. package/plugins/kiro/skills/fp-qa-lead/references/kiro.md +43 -0
  1481. package/plugins/kiro/skills/fp-smoke-build/SKILL.md +27 -0
  1482. package/plugins/kiro/skills/fp-studio/SKILL.md +48 -0
  1483. package/plugins/kiro/skills/fp-verify/SKILL.md +22 -0
  1484. package/plugins/kiro/skills/funpixel-3d/SKILL.md +89 -0
  1485. package/plugins/kiro/skills/funpixel-3d/references/bake-off.md +48 -0
  1486. package/plugins/kiro/skills/funpixel-3d/references/bench.md +103 -0
  1487. package/plugins/kiro/skills/funpixel-3d/references/budgets.md +48 -0
  1488. package/plugins/kiro/skills/funpixel-3d/references/characters.md +67 -0
  1489. package/plugins/kiro/skills/funpixel-3d/references/concept-image.md +47 -0
  1490. package/plugins/kiro/skills/funpixel-3d/references/engine-targets.md +31 -0
  1491. package/plugins/kiro/skills/funpixel-3d/references/hero-route.md +104 -0
  1492. package/plugins/kiro/skills/funpixel-3d/references/level-spec.md +109 -0
  1493. package/plugins/kiro/skills/funpixel-3d/references/levels.md +84 -0
  1494. package/plugins/kiro/skills/funpixel-3d/references/light-and-places.md +141 -0
  1495. package/plugins/kiro/skills/funpixel-3d/references/models.md +111 -0
  1496. package/plugins/kiro/skills/funpixel-3d/references/painted-target.md +184 -0
  1497. package/plugins/kiro/skills/funpixel-3d/references/reading.md +41 -0
  1498. package/plugins/kiro/skills/funpixel-3d/references/skin.md +85 -0
  1499. package/plugins/kiro/skills/funpixel-3d/references/skyboxes.md +65 -0
  1500. package/plugins/kiro/skills/funpixel-3d/references/textures.md +71 -0
  1501. package/plugins/kiro/skills/funpixel-3d/references/three-loading.md +199 -0
  1502. package/plugins/kiro/skills/funpixel-3d/references/unity.md +78 -0
  1503. package/plugins/kiro/skills/funpixel-art/SKILL.md +104 -0
  1504. package/plugins/kiro/skills/funpixel-art/references/2d-assets.md +108 -0
  1505. package/plugins/kiro/skills/funpixel-art/references/animation.md +126 -0
  1506. package/plugins/kiro/skills/funpixel-art/references/cast.md +73 -0
  1507. package/plugins/kiro/skills/funpixel-art/references/characters.md +49 -0
  1508. package/plugins/kiro/skills/funpixel-art/references/cost.md +107 -0
  1509. package/plugins/kiro/skills/funpixel-art/references/effects.md +85 -0
  1510. package/plugins/kiro/skills/funpixel-art/references/frames.md +87 -0
  1511. package/plugins/kiro/skills/funpixel-art/references/judging-frames.md +64 -0
  1512. package/plugins/kiro/skills/funpixel-art/references/look.md +102 -0
  1513. package/plugins/kiro/skills/funpixel-art/references/measure.md +119 -0
  1514. package/plugins/kiro/skills/funpixel-art/references/pipeline.md +185 -0
  1515. package/plugins/kiro/skills/funpixel-art/references/pixi.md +277 -0
  1516. package/plugins/kiro/skills/funpixel-art/references/planes.md +27 -0
  1517. package/plugins/kiro/skills/funpixel-art/references/prompts.md +171 -0
  1518. package/plugins/kiro/skills/funpixel-art/references/sheets.md +141 -0
  1519. package/plugins/kiro/skills/funpixel-art/references/style-file.md +39 -0
  1520. package/plugins/kiro/skills/funpixel-art/references/three.md +232 -0
  1521. package/plugins/kiro/skills/funpixel-art/references/ui.md +163 -0
  1522. package/plugins/kiro/skills/funpixel-art/references/unity.md +78 -0
  1523. package/plugins/kiro/skills/funpixel-art/references/wiring.md +41 -0
  1524. package/plugins/kiro/skills/funpixel-audio/SKILL.md +92 -0
  1525. package/plugins/kiro/skills/funpixel-audio/references/adaptive-music.md +204 -0
  1526. package/plugins/kiro/skills/funpixel-audio/references/engine.md +78 -0
  1527. package/plugins/kiro/skills/funpixel-audio/references/measure.md +101 -0
  1528. package/plugins/kiro/skills/funpixel-audio/references/unity.md +74 -0
  1529. package/plugins/kiro/skills/funpixel-feedback/SKILL.md +120 -0
  1530. package/plugins/kiro/skills/funpixel-feedback/references/memory.md +99 -0
  1531. package/plugins/kiro/skills/funpixel-game-feel/SKILL.md +104 -0
  1532. package/plugins/kiro/skills/funpixel-game-feel/references/contact.md +110 -0
  1533. package/plugins/kiro/skills/funpixel-game-feel/references/measure.md +125 -0
  1534. package/plugins/kiro/skills/funpixel-game-feel/references/motion.md +134 -0
  1535. package/plugins/kiro/skills/funpixel-game-feel/references/payoffs.md +35 -0
  1536. package/plugins/kiro/skills/funpixel-game-feel/references/recipes.md +107 -0
  1537. package/plugins/kiro/skills/funpixel-game-feel/references/unity.md +73 -0
  1538. package/plugins/kiro/skills/funpixel-game-logic/SKILL.md +113 -0
  1539. package/plugins/kiro/skills/funpixel-game-logic/references/balance.md +88 -0
  1540. package/plugins/kiro/skills/funpixel-game-logic/references/content-at-scale.md +147 -0
  1541. package/plugins/kiro/skills/funpixel-game-logic/references/depth.md +89 -0
  1542. package/plugins/kiro/skills/funpixel-game-logic/references/escalation.md +41 -0
  1543. package/plugins/kiro/skills/funpixel-game-logic/references/levels.md +61 -0
  1544. package/plugins/kiro/skills/funpixel-game-logic/references/probes.md +122 -0
  1545. package/plugins/kiro/skills/funpixel-game-logic/references/unity.md +108 -0
  1546. package/plugins/kiro/skills/funpixel-game-spine/SKILL.md +118 -0
  1547. package/plugins/kiro/skills/funpixel-game-spine/references/camera.md +94 -0
  1548. package/plugins/kiro/skills/funpixel-game-spine/references/multiplayer.md +101 -0
  1549. package/plugins/kiro/skills/funpixel-game-spine/references/patterns.md +103 -0
  1550. package/plugins/kiro/skills/funpixel-game-spine/references/performance.md +96 -0
  1551. package/plugins/kiro/skills/funpixel-game-spine/references/pixi.md +26 -0
  1552. package/plugins/kiro/skills/funpixel-game-spine/references/replay.md +102 -0
  1553. package/plugins/kiro/skills/funpixel-game-spine/references/room-api.md +63 -0
  1554. package/plugins/kiro/skills/funpixel-game-spine/references/room-modes.md +40 -0
  1555. package/plugins/kiro/skills/funpixel-game-spine/references/sdk.md +114 -0
  1556. package/plugins/kiro/skills/funpixel-game-spine/references/three.md +62 -0
  1557. package/plugins/kiro/skills/funpixel-gdd/SKILL.md +116 -0
  1558. package/plugins/kiro/skills/funpixel-gdd/references/as-built.md +40 -0
  1559. package/plugins/kiro/skills/funpixel-gdd/references/design-measures.md +24 -0
  1560. package/plugins/kiro/skills/funpixel-gdd/references/design-note.md +88 -0
  1561. package/plugins/kiro/skills/funpixel-gdd/references/experience.md +92 -0
  1562. package/plugins/kiro/skills/funpixel-gdd/references/first-look.md +226 -0
  1563. package/plugins/kiro/skills/funpixel-gdd/references/floors.md +62 -0
  1564. package/plugins/kiro/skills/funpixel-gdd/references/frame.md +75 -0
  1565. package/plugins/kiro/skills/funpixel-gdd/references/gameplay-contract.md +81 -0
  1566. package/plugins/kiro/skills/funpixel-gdd/references/gdd-template.md +417 -0
  1567. package/plugins/kiro/skills/funpixel-gdd/references/genre-card.md +109 -0
  1568. package/plugins/kiro/skills/funpixel-gdd/references/genre-platformer.md +159 -0
  1569. package/plugins/kiro/skills/funpixel-gdd/references/genre-puzzle.md +145 -0
  1570. package/plugins/kiro/skills/funpixel-gdd/references/genre-racing.md +137 -0
  1571. package/plugins/kiro/skills/funpixel-gdd/references/genre-rpg.md +125 -0
  1572. package/plugins/kiro/skills/funpixel-gdd/references/genre-shooter.md +128 -0
  1573. package/plugins/kiro/skills/funpixel-gdd/references/genre-simulation.md +112 -0
  1574. package/plugins/kiro/skills/funpixel-gdd/references/genre-strategy.md +116 -0
  1575. package/plugins/kiro/skills/funpixel-gdd/references/genre-survival.md +122 -0
  1576. package/plugins/kiro/skills/funpixel-gdd/references/in-the-loop.md +106 -0
  1577. package/plugins/kiro/skills/funpixel-gdd/references/invent-first.md +131 -0
  1578. package/plugins/kiro/skills/funpixel-gdd/references/level-and-fun.md +112 -0
  1579. package/plugins/kiro/skills/funpixel-gdd/references/pages.md +47 -0
  1580. package/plugins/kiro/skills/funpixel-gdd/references/plan-at-size.md +140 -0
  1581. package/plugins/kiro/skills/funpixel-gdd/references/production-tiers.md +117 -0
  1582. package/plugins/kiro/skills/funpixel-gdd/references/sections.md +148 -0
  1583. package/plugins/kiro/skills/funpixel-gdd/references/spec-folder.md +131 -0
  1584. package/plugins/kiro/skills/funpixel-gdd/references/start.md +110 -0
  1585. package/plugins/kiro/skills/funpixel-gdd/references/starters.md +175 -0
  1586. package/plugins/kiro/skills/funpixel-gdd/references/the-path.md +133 -0
  1587. package/plugins/kiro/skills/funpixel-gdd/references/track.md +29 -0
  1588. package/plugins/kiro/skills/funpixel-gdd/references/world-and-identity.md +165 -0
  1589. package/plugins/kiro/skills/funpixel-gdd/references/worth.md +74 -0
  1590. package/plugins/kiro/skills/funpixel-mobile-ui/SKILL.md +107 -0
  1591. package/plugins/kiro/skills/funpixel-mobile-ui/references/contrast.md +123 -0
  1592. package/plugins/kiro/skills/funpixel-mobile-ui/references/hud-and-title.md +108 -0
  1593. package/plugins/kiro/skills/funpixel-mobile-ui/references/hud-genres.md +124 -0
  1594. package/plugins/kiro/skills/funpixel-mobile-ui/references/phone-check.md +156 -0
  1595. package/plugins/kiro/skills/funpixel-mobile-ui/references/recipes.md +279 -0
  1596. package/plugins/kiro/skills/funpixel-mobile-ui/references/restyle-ui.md +229 -0
  1597. package/plugins/kiro/skills/funpixel-mobile-ui/references/unity.md +61 -0
  1598. package/plugins/kiro/skills/funpixel-publish/SKILL.md +109 -0
  1599. package/plugins/kiro/skills/funpixel-publish/references/compose.md +113 -0
  1600. package/plugins/kiro/skills/funpixel-publish/references/motion.md +120 -0
  1601. package/plugins/kiro/skills/funpixel-publish/references/networks.md +75 -0
  1602. package/plugins/kiro/skills/funpixel-publish/references/other-hosts.md +65 -0
  1603. package/plugins/kiro/skills/funpixel-publish/references/playable-ad.md +90 -0
  1604. package/plugins/kiro/skills/funpixel-publish/references/server-build.md +85 -0
  1605. package/plugins/kiro/skills/funpixel-publish/references/store-shots.md +85 -0
  1606. package/plugins/kiro/skills/funpixel-publish/references/trailer.md +55 -0
  1607. package/plugins/kiro/skills/funpixel-publish/references/what-ships.md +30 -0
  1608. package/plugins/kiro/skills/funpixel-store/SKILL.md +81 -0
  1609. package/plugins/kiro/skills/funpixel-store/references/app-store.md +73 -0
  1610. package/plugins/kiro/skills/funpixel-store/references/google-play.md +141 -0
  1611. package/plugins/kiro/skills/funpixel-store/references/ios-release.md +63 -0
  1612. package/plugins/kiro/skills/funpixel-store/references/money.md +66 -0
  1613. package/plugins/kiro/skills/funpixel-store/references/purchases-and-review.md +74 -0
  1614. package/plugins/kiro/skills/funpixel-store/references/readiness-page.md +24 -0
  1615. package/plugins/kiro/skills/funpixel-store/references/readiness.md +107 -0
  1616. package/plugins/kiro/skills/funpixel-store/references/steam.md +38 -0
  1617. package/plugins/kiro/skills/funpixel-store/references/unity-store.md +55 -0
  1618. package/plugins/kiro/skills/funpixel-store/references/web-portals.md +43 -0
  1619. package/plugins/kiro/skills/funpixel-unity-game/SKILL.md +103 -0
  1620. package/plugins/kiro/skills/funpixel-unity-game/references/agent-ops.md +54 -0
  1621. package/plugins/kiro/skills/funpixel-unity-game/references/fixes.md +40 -0
  1622. package/plugins/kiro/skills/funpixel-unity-game/references/from-a-web-game.md +108 -0
  1623. package/plugins/kiro/skills/funpixel-unity-game/references/handing-off.md +42 -0
  1624. package/plugins/kiro/skills/funpixel-unity-game/references/performance.md +59 -0
  1625. package/plugins/kiro/skills/funpixel-unity-game/references/probe.md +80 -0
  1626. package/plugins/kiro/skills/funpixel-unity-game/references/shared-mac.md +121 -0
  1627. package/plugins/kiro/skills/funpixel-unity-game/references/traps.md +108 -0
  1628. package/plugins/kiro/skills/funpixel-verify/SKILL.md +109 -0
  1629. package/plugins/kiro/skills/funpixel-verify/references/actors.md +94 -0
  1630. package/plugins/kiro/skills/funpixel-verify/references/bar.md +62 -0
  1631. package/plugins/kiro/skills/funpixel-verify/references/checks.md +69 -0
  1632. package/plugins/kiro/skills/funpixel-verify/references/experience.md +67 -0
  1633. package/plugins/kiro/skills/funpixel-verify/references/eyes.md +54 -0
  1634. package/plugins/kiro/skills/funpixel-verify/references/fidelity.md +126 -0
  1635. package/plugins/kiro/skills/funpixel-verify/references/hit-bar.md +31 -0
  1636. package/plugins/kiro/skills/funpixel-verify/references/journeys.md +77 -0
  1637. package/plugins/kiro/skills/funpixel-verify/references/mobile-qa.md +123 -0
  1638. package/plugins/kiro/skills/funpixel-verify/references/playtest.md +161 -0
  1639. package/plugins/kiro/skills/funpixel-verify/references/review.md +105 -0
  1640. package/plugins/kiro/skills/funpixel-verify/references/rubric.md +67 -0
  1641. package/plugins/kiro/skills/funpixel-verify/references/scenes.md +49 -0
  1642. package/plugins/kiro/skills/funpixel-verify/references/unity.md +60 -0
  1643. package/plugins/kiro/skills/funpixel-world-and-story/SKILL.md +99 -0
  1644. package/plugins/kiro/skills/funpixel-world-and-story/references/atmosphere.md +208 -0
  1645. package/plugins/kiro/skills/funpixel-world-and-story/references/forged-world.md +79 -0
  1646. package/plugins/kiro/skills/funpixel-world-and-story/references/living-world.md +237 -0
  1647. package/plugins/kiro/skills/funpixel-world-and-story/references/opening-and-chapters.md +215 -0
  1648. package/plugins/kiro/skills/funpixel-world-and-story/references/shelf.md +80 -0
  1649. package/plugins/kiro/skills/funpixel-world-and-story/references/story-at-size.md +159 -0
  1650. package/plugins/kiro/skills/funpixel-world-and-story/references/voice.md +175 -0
  1651. package/plugins/kiro/skills/funpixel-world-and-story/references/world-kit.md +154 -0
  1652. package/plugins/robin/LICENSE +115 -0
  1653. package/plugins/robin/README.md +27 -0
  1654. package/plugins/robin/THIRD_PARTY_NOTICES.md +75 -0
  1655. package/plugins/robin/claude/.claude-plugin/plugin.json +19 -0
  1656. package/plugins/robin/claude/.mcp.json +10 -0
  1657. package/plugins/robin/claude/LICENSE +115 -0
  1658. package/plugins/robin/claude/README.md +14 -0
  1659. package/plugins/robin/claude/THIRD_PARTY_NOTICES.md +75 -0
  1660. package/plugins/robin/claude/agents/art-director.md +54 -0
  1661. package/plugins/robin/claude/agents/audio-director.md +51 -0
  1662. package/plugins/robin/claude/agents/critic.md +113 -0
  1663. package/plugins/robin/claude/agents/lane.md +38 -0
  1664. package/plugins/robin/claude/agents/level-designer.md +45 -0
  1665. package/plugins/robin/claude/agents/mobile-qa.md +71 -0
  1666. package/plugins/robin/claude/agents/player.md +144 -0
  1667. package/plugins/robin/claude/agents/qa-lead.md +52 -0
  1668. package/plugins/robin/claude/commands/first-look.md +59 -0
  1669. package/plugins/robin/claude/commands/flow.md +50 -0
  1670. package/plugins/robin/claude/commands/lanes.md +38 -0
  1671. package/plugins/robin/claude/commands/mobile-qa.md +28 -0
  1672. package/plugins/robin/claude/commands/new.md +94 -0
  1673. package/plugins/robin/claude/commands/playtest.md +66 -0
  1674. package/plugins/robin/claude/commands/publish.md +23 -0
  1675. package/plugins/robin/claude/commands/smoke-build.md +25 -0
  1676. package/plugins/robin/claude/commands/verify.md +20 -0
  1677. package/plugins/robin/claude/hooks/brief.md +135 -0
  1678. package/plugins/robin/claude/hooks/critic-receipts.mjs +86 -0
  1679. package/plugins/robin/claude/hooks/durable.mjs +56 -0
  1680. package/plugins/robin/claude/hooks/fence.mjs +30 -0
  1681. package/plugins/robin/claude/hooks/floors.mjs +181 -0
  1682. package/plugins/robin/claude/hooks/flow.mjs +154 -0
  1683. package/plugins/robin/claude/hooks/front-door.mjs +68 -0
  1684. package/plugins/robin/claude/hooks/guidance.json +3 -0
  1685. package/plugins/robin/claude/hooks/hints.mjs +183 -0
  1686. package/plugins/robin/claude/hooks/hooks.json +62 -0
  1687. package/plugins/robin/claude/hooks/lib.mjs +362 -0
  1688. package/plugins/robin/claude/hooks/memory.mjs +92 -0
  1689. package/plugins/robin/claude/hooks/mobile-qa.mjs +43 -0
  1690. package/plugins/robin/claude/hooks/note.mjs +63 -0
  1691. package/plugins/robin/claude/hooks/nudge.mjs +98 -0
  1692. package/plugins/robin/claude/hooks/pipeline.mjs +207 -0
  1693. package/plugins/robin/claude/hooks/prompt.mjs +51 -0
  1694. package/plugins/robin/claude/hooks/quality.mjs +310 -0
  1695. package/plugins/robin/claude/hooks/reach.mjs +93 -0
  1696. package/plugins/robin/claude/hooks/scope.mjs +44 -0
  1697. package/plugins/robin/claude/hooks/session-log.mjs +101 -0
  1698. package/plugins/robin/claude/hooks/session-start.mjs +194 -0
  1699. package/plugins/robin/claude/hooks/skill-names.json +19 -0
  1700. package/plugins/robin/claude/hooks/stop-gate.mjs +303 -0
  1701. package/plugins/robin/claude/hooks/vendor/direct/round.mjs +81 -0
  1702. package/plugins/robin/claude/hooks/vendor/find/names.mjs +46 -0
  1703. package/plugins/robin/claude/hooks/vendor/firstlook/set.mjs +219 -0
  1704. package/plugins/robin/claude/hooks/vendor/flow/flow.mjs +456 -0
  1705. package/plugins/robin/claude/hooks/vendor/flow/look.mjs +140 -0
  1706. package/plugins/robin/claude/hooks/vendor/gdd/book.mjs +484 -0
  1707. package/plugins/robin/claude/hooks/vendor/gdd/chapters.mjs +72 -0
  1708. package/plugins/robin/claude/hooks/vendor/gdd/doc.mjs +33 -0
  1709. package/plugins/robin/claude/hooks/vendor/gdd/levelmap.mjs +429 -0
  1710. package/plugins/robin/claude/hooks/vendor/gdd/rubric.mjs +251 -0
  1711. package/plugins/robin/claude/hooks/vendor/gdd/worth.mjs +508 -0
  1712. package/plugins/robin/claude/hooks/vendor/lanes/fence.mjs +109 -0
  1713. package/plugins/robin/claude/hooks/vendor/lanes/lanes.mjs +356 -0
  1714. package/plugins/robin/claude/hooks/vendor/lanes/union.mjs +63 -0
  1715. package/plugins/robin/claude/hooks/vendor/lessons/motifs.mjs +98 -0
  1716. package/plugins/robin/claude/hooks/vendor/lessons/store.mjs +57 -0
  1717. package/plugins/robin/claude/hooks/vendor/look/made-of.mjs +243 -0
  1718. package/plugins/robin/claude/hooks/vendor/look/roles.mjs +110 -0
  1719. package/plugins/robin/claude/hooks/vendor/memory/decisions.mjs +139 -0
  1720. package/plugins/robin/claude/hooks/vendor/memory/journal.mjs +109 -0
  1721. package/plugins/robin/claude/hooks/vendor/owner/bar.mjs +286 -0
  1722. package/plugins/robin/claude/hooks/vendor/pipeline/pipeline.mjs +930 -0
  1723. package/plugins/robin/claude/hooks/vendor/playtest/keep.mjs +111 -0
  1724. package/plugins/robin/claude/hooks/vendor/playtest/stuck.mjs +48 -0
  1725. package/plugins/robin/claude/hooks/vendor/progress/holds.mjs +107 -0
  1726. package/plugins/robin/claude/hooks/vendor/progress/progress.mjs +301 -0
  1727. package/plugins/robin/claude/hooks/vendor/sim/judge.mjs +241 -0
  1728. package/plugins/robin/claude/hooks/vendor/spec/rooms.mjs +189 -0
  1729. package/plugins/robin/claude/hooks/vendor/spec/tunables.mjs +75 -0
  1730. package/plugins/robin/claude/hooks/vendor/stage/harnessignore.mjs +91 -0
  1731. package/plugins/robin/claude/hooks/vendor/stage/stage.mjs +58 -0
  1732. package/plugins/robin/claude/hooks/vendor/status/board.mjs +173 -0
  1733. package/plugins/robin/claude/hooks/vendor/status/file.mjs +113 -0
  1734. package/plugins/robin/claude/hooks/vendor/studio/forks.mjs +94 -0
  1735. package/plugins/robin/claude/hooks/vendor/studio/pitch.mjs +295 -0
  1736. package/plugins/robin/claude/hooks/vendor/verify/fingerprint.mjs +73 -0
  1737. package/plugins/robin/claude/hooks/vendor/verify/reads.mjs +33 -0
  1738. package/plugins/robin/claude/hooks/vendor/wow/picks.mjs +75 -0
  1739. package/plugins/robin/claude/skills/3d/SKILL.md +89 -0
  1740. package/plugins/robin/claude/skills/3d/references/bake-off.md +48 -0
  1741. package/plugins/robin/claude/skills/3d/references/bench.md +103 -0
  1742. package/plugins/robin/claude/skills/3d/references/budgets.md +48 -0
  1743. package/plugins/robin/claude/skills/3d/references/characters.md +67 -0
  1744. package/plugins/robin/claude/skills/3d/references/concept-image.md +47 -0
  1745. package/plugins/robin/claude/skills/3d/references/engine-targets.md +31 -0
  1746. package/plugins/robin/claude/skills/3d/references/hero-route.md +104 -0
  1747. package/plugins/robin/claude/skills/3d/references/level-spec.md +109 -0
  1748. package/plugins/robin/claude/skills/3d/references/levels.md +84 -0
  1749. package/plugins/robin/claude/skills/3d/references/light-and-places.md +141 -0
  1750. package/plugins/robin/claude/skills/3d/references/models.md +111 -0
  1751. package/plugins/robin/claude/skills/3d/references/painted-target.md +184 -0
  1752. package/plugins/robin/claude/skills/3d/references/reading.md +41 -0
  1753. package/plugins/robin/claude/skills/3d/references/skin.md +85 -0
  1754. package/plugins/robin/claude/skills/3d/references/skyboxes.md +65 -0
  1755. package/plugins/robin/claude/skills/3d/references/textures.md +71 -0
  1756. package/plugins/robin/claude/skills/3d/references/three-loading.md +199 -0
  1757. package/plugins/robin/claude/skills/3d/references/unity.md +78 -0
  1758. package/plugins/robin/claude/skills/art/SKILL.md +104 -0
  1759. package/plugins/robin/claude/skills/art/references/2d-assets.md +108 -0
  1760. package/plugins/robin/claude/skills/art/references/animation.md +126 -0
  1761. package/plugins/robin/claude/skills/art/references/cast.md +73 -0
  1762. package/plugins/robin/claude/skills/art/references/characters.md +49 -0
  1763. package/plugins/robin/claude/skills/art/references/cost.md +107 -0
  1764. package/plugins/robin/claude/skills/art/references/effects.md +85 -0
  1765. package/plugins/robin/claude/skills/art/references/frames.md +87 -0
  1766. package/plugins/robin/claude/skills/art/references/judging-frames.md +64 -0
  1767. package/plugins/robin/claude/skills/art/references/look.md +102 -0
  1768. package/plugins/robin/claude/skills/art/references/measure.md +119 -0
  1769. package/plugins/robin/claude/skills/art/references/pipeline.md +185 -0
  1770. package/plugins/robin/claude/skills/art/references/pixi.md +277 -0
  1771. package/plugins/robin/claude/skills/art/references/planes.md +27 -0
  1772. package/plugins/robin/claude/skills/art/references/prompts.md +171 -0
  1773. package/plugins/robin/claude/skills/art/references/sheets.md +141 -0
  1774. package/plugins/robin/claude/skills/art/references/style-file.md +39 -0
  1775. package/plugins/robin/claude/skills/art/references/three.md +232 -0
  1776. package/plugins/robin/claude/skills/art/references/ui.md +163 -0
  1777. package/plugins/robin/claude/skills/art/references/unity.md +78 -0
  1778. package/plugins/robin/claude/skills/art/references/wiring.md +41 -0
  1779. package/plugins/robin/claude/skills/audio/SKILL.md +92 -0
  1780. package/plugins/robin/claude/skills/audio/references/adaptive-music.md +204 -0
  1781. package/plugins/robin/claude/skills/audio/references/engine.md +78 -0
  1782. package/plugins/robin/claude/skills/audio/references/measure.md +101 -0
  1783. package/plugins/robin/claude/skills/audio/references/unity.md +74 -0
  1784. package/plugins/robin/claude/skills/feedback/SKILL.md +120 -0
  1785. package/plugins/robin/claude/skills/feedback/references/memory.md +99 -0
  1786. package/plugins/robin/claude/skills/game-feel/SKILL.md +104 -0
  1787. package/plugins/robin/claude/skills/game-feel/references/contact.md +110 -0
  1788. package/plugins/robin/claude/skills/game-feel/references/measure.md +125 -0
  1789. package/plugins/robin/claude/skills/game-feel/references/motion.md +134 -0
  1790. package/plugins/robin/claude/skills/game-feel/references/payoffs.md +35 -0
  1791. package/plugins/robin/claude/skills/game-feel/references/recipes.md +107 -0
  1792. package/plugins/robin/claude/skills/game-feel/references/unity.md +73 -0
  1793. package/plugins/robin/claude/skills/game-logic/SKILL.md +113 -0
  1794. package/plugins/robin/claude/skills/game-logic/references/balance.md +88 -0
  1795. package/plugins/robin/claude/skills/game-logic/references/content-at-scale.md +147 -0
  1796. package/plugins/robin/claude/skills/game-logic/references/depth.md +89 -0
  1797. package/plugins/robin/claude/skills/game-logic/references/escalation.md +41 -0
  1798. package/plugins/robin/claude/skills/game-logic/references/levels.md +61 -0
  1799. package/plugins/robin/claude/skills/game-logic/references/probes.md +122 -0
  1800. package/plugins/robin/claude/skills/game-logic/references/unity.md +108 -0
  1801. package/plugins/robin/claude/skills/game-spine/SKILL.md +118 -0
  1802. package/plugins/robin/claude/skills/game-spine/references/camera.md +94 -0
  1803. package/plugins/robin/claude/skills/game-spine/references/multiplayer.md +101 -0
  1804. package/plugins/robin/claude/skills/game-spine/references/patterns.md +103 -0
  1805. package/plugins/robin/claude/skills/game-spine/references/performance.md +96 -0
  1806. package/plugins/robin/claude/skills/game-spine/references/pixi.md +26 -0
  1807. package/plugins/robin/claude/skills/game-spine/references/replay.md +102 -0
  1808. package/plugins/robin/claude/skills/game-spine/references/room-api.md +63 -0
  1809. package/plugins/robin/claude/skills/game-spine/references/room-modes.md +40 -0
  1810. package/plugins/robin/claude/skills/game-spine/references/sdk.md +114 -0
  1811. package/plugins/robin/claude/skills/game-spine/references/three.md +62 -0
  1812. package/plugins/robin/claude/skills/gdd/SKILL.md +116 -0
  1813. package/plugins/robin/claude/skills/gdd/references/as-built.md +40 -0
  1814. package/plugins/robin/claude/skills/gdd/references/design-measures.md +24 -0
  1815. package/plugins/robin/claude/skills/gdd/references/design-note.md +88 -0
  1816. package/plugins/robin/claude/skills/gdd/references/experience.md +92 -0
  1817. package/plugins/robin/claude/skills/gdd/references/first-look.md +226 -0
  1818. package/plugins/robin/claude/skills/gdd/references/floors.md +62 -0
  1819. package/plugins/robin/claude/skills/gdd/references/frame.md +75 -0
  1820. package/plugins/robin/claude/skills/gdd/references/gameplay-contract.md +81 -0
  1821. package/plugins/robin/claude/skills/gdd/references/gdd-template.md +417 -0
  1822. package/plugins/robin/claude/skills/gdd/references/genre-card.md +109 -0
  1823. package/plugins/robin/claude/skills/gdd/references/genre-platformer.md +159 -0
  1824. package/plugins/robin/claude/skills/gdd/references/genre-puzzle.md +145 -0
  1825. package/plugins/robin/claude/skills/gdd/references/genre-racing.md +137 -0
  1826. package/plugins/robin/claude/skills/gdd/references/genre-rpg.md +125 -0
  1827. package/plugins/robin/claude/skills/gdd/references/genre-shooter.md +128 -0
  1828. package/plugins/robin/claude/skills/gdd/references/genre-simulation.md +112 -0
  1829. package/plugins/robin/claude/skills/gdd/references/genre-strategy.md +116 -0
  1830. package/plugins/robin/claude/skills/gdd/references/genre-survival.md +122 -0
  1831. package/plugins/robin/claude/skills/gdd/references/in-the-loop.md +106 -0
  1832. package/plugins/robin/claude/skills/gdd/references/invent-first.md +131 -0
  1833. package/plugins/robin/claude/skills/gdd/references/level-and-fun.md +112 -0
  1834. package/plugins/robin/claude/skills/gdd/references/pages.md +47 -0
  1835. package/plugins/robin/claude/skills/gdd/references/plan-at-size.md +140 -0
  1836. package/plugins/robin/claude/skills/gdd/references/production-tiers.md +117 -0
  1837. package/plugins/robin/claude/skills/gdd/references/sections.md +148 -0
  1838. package/plugins/robin/claude/skills/gdd/references/spec-folder.md +131 -0
  1839. package/plugins/robin/claude/skills/gdd/references/start.md +110 -0
  1840. package/plugins/robin/claude/skills/gdd/references/starters.md +175 -0
  1841. package/plugins/robin/claude/skills/gdd/references/the-path.md +133 -0
  1842. package/plugins/robin/claude/skills/gdd/references/track.md +29 -0
  1843. package/plugins/robin/claude/skills/gdd/references/world-and-identity.md +165 -0
  1844. package/plugins/robin/claude/skills/gdd/references/worth.md +74 -0
  1845. package/plugins/robin/claude/skills/mobile-ui/SKILL.md +107 -0
  1846. package/plugins/robin/claude/skills/mobile-ui/references/contrast.md +123 -0
  1847. package/plugins/robin/claude/skills/mobile-ui/references/hud-and-title.md +108 -0
  1848. package/plugins/robin/claude/skills/mobile-ui/references/hud-genres.md +124 -0
  1849. package/plugins/robin/claude/skills/mobile-ui/references/phone-check.md +156 -0
  1850. package/plugins/robin/claude/skills/mobile-ui/references/recipes.md +279 -0
  1851. package/plugins/robin/claude/skills/mobile-ui/references/restyle-ui.md +229 -0
  1852. package/plugins/robin/claude/skills/mobile-ui/references/unity.md +61 -0
  1853. package/plugins/robin/claude/skills/publishing/SKILL.md +109 -0
  1854. package/plugins/robin/claude/skills/publishing/references/compose.md +113 -0
  1855. package/plugins/robin/claude/skills/publishing/references/motion.md +120 -0
  1856. package/plugins/robin/claude/skills/publishing/references/networks.md +75 -0
  1857. package/plugins/robin/claude/skills/publishing/references/other-hosts.md +65 -0
  1858. package/plugins/robin/claude/skills/publishing/references/playable-ad.md +90 -0
  1859. package/plugins/robin/claude/skills/publishing/references/server-build.md +85 -0
  1860. package/plugins/robin/claude/skills/publishing/references/store-shots.md +85 -0
  1861. package/plugins/robin/claude/skills/publishing/references/trailer.md +55 -0
  1862. package/plugins/robin/claude/skills/publishing/references/what-ships.md +30 -0
  1863. package/plugins/robin/claude/skills/store/SKILL.md +81 -0
  1864. package/plugins/robin/claude/skills/store/references/app-store.md +73 -0
  1865. package/plugins/robin/claude/skills/store/references/google-play.md +141 -0
  1866. package/plugins/robin/claude/skills/store/references/ios-release.md +63 -0
  1867. package/plugins/robin/claude/skills/store/references/money.md +66 -0
  1868. package/plugins/robin/claude/skills/store/references/purchases-and-review.md +74 -0
  1869. package/plugins/robin/claude/skills/store/references/readiness-page.md +24 -0
  1870. package/plugins/robin/claude/skills/store/references/readiness.md +107 -0
  1871. package/plugins/robin/claude/skills/store/references/steam.md +38 -0
  1872. package/plugins/robin/claude/skills/store/references/unity-store.md +55 -0
  1873. package/plugins/robin/claude/skills/store/references/web-portals.md +43 -0
  1874. package/plugins/robin/claude/skills/unity-game/SKILL.md +103 -0
  1875. package/plugins/robin/claude/skills/unity-game/references/agent-ops.md +54 -0
  1876. package/plugins/robin/claude/skills/unity-game/references/fixes.md +40 -0
  1877. package/plugins/robin/claude/skills/unity-game/references/from-a-web-game.md +108 -0
  1878. package/plugins/robin/claude/skills/unity-game/references/handing-off.md +42 -0
  1879. package/plugins/robin/claude/skills/unity-game/references/performance.md +59 -0
  1880. package/plugins/robin/claude/skills/unity-game/references/probe.md +80 -0
  1881. package/plugins/robin/claude/skills/unity-game/references/shared-mac.md +121 -0
  1882. package/plugins/robin/claude/skills/unity-game/references/traps.md +108 -0
  1883. package/plugins/robin/claude/skills/verifying/SKILL.md +109 -0
  1884. package/plugins/robin/claude/skills/verifying/references/actors.md +94 -0
  1885. package/plugins/robin/claude/skills/verifying/references/bar.md +62 -0
  1886. package/plugins/robin/claude/skills/verifying/references/checks.md +69 -0
  1887. package/plugins/robin/claude/skills/verifying/references/experience.md +67 -0
  1888. package/plugins/robin/claude/skills/verifying/references/eyes.md +54 -0
  1889. package/plugins/robin/claude/skills/verifying/references/fidelity.md +126 -0
  1890. package/plugins/robin/claude/skills/verifying/references/hit-bar.md +31 -0
  1891. package/plugins/robin/claude/skills/verifying/references/journeys.md +77 -0
  1892. package/plugins/robin/claude/skills/verifying/references/mobile-qa.md +123 -0
  1893. package/plugins/robin/claude/skills/verifying/references/playtest.md +161 -0
  1894. package/plugins/robin/claude/skills/verifying/references/review.md +105 -0
  1895. package/plugins/robin/claude/skills/verifying/references/rubric.md +67 -0
  1896. package/plugins/robin/claude/skills/verifying/references/scenes.md +49 -0
  1897. package/plugins/robin/claude/skills/verifying/references/unity.md +60 -0
  1898. package/plugins/robin/claude/skills/world-and-story/SKILL.md +99 -0
  1899. package/plugins/robin/claude/skills/world-and-story/references/atmosphere.md +208 -0
  1900. package/plugins/robin/claude/skills/world-and-story/references/forged-world.md +79 -0
  1901. package/plugins/robin/claude/skills/world-and-story/references/living-world.md +237 -0
  1902. package/plugins/robin/claude/skills/world-and-story/references/opening-and-chapters.md +215 -0
  1903. package/plugins/robin/claude/skills/world-and-story/references/shelf.md +80 -0
  1904. package/plugins/robin/claude/skills/world-and-story/references/story-at-size.md +159 -0
  1905. package/plugins/robin/claude/skills/world-and-story/references/voice.md +175 -0
  1906. package/plugins/robin/claude/skills/world-and-story/references/world-kit.md +154 -0
  1907. package/plugins/robin/mcp-servers.json +25 -0
  1908. package/plugins/robin/plugin.json +20 -0
  1909. package/plugins/robin/skills/fp-first-look/SKILL.md +59 -0
  1910. package/plugins/robin/skills/fp-flow/SKILL.md +50 -0
  1911. package/plugins/robin/skills/fp-lanes/SKILL.md +38 -0
  1912. package/plugins/robin/skills/fp-mobile-qa/SKILL.md +28 -0
  1913. package/plugins/robin/skills/fp-new/SKILL.md +94 -0
  1914. package/plugins/robin/skills/fp-playtest/SKILL.md +66 -0
  1915. package/plugins/robin/skills/fp-publish/SKILL.md +23 -0
  1916. package/plugins/robin/skills/fp-smoke-build/SKILL.md +25 -0
  1917. package/plugins/robin/skills/fp-verify/SKILL.md +20 -0
  1918. package/plugins/robin/skills/funpixel-3d/SKILL.md +89 -0
  1919. package/plugins/robin/skills/funpixel-3d/references/bake-off.md +48 -0
  1920. package/plugins/robin/skills/funpixel-3d/references/bench.md +103 -0
  1921. package/plugins/robin/skills/funpixel-3d/references/budgets.md +48 -0
  1922. package/plugins/robin/skills/funpixel-3d/references/characters.md +67 -0
  1923. package/plugins/robin/skills/funpixel-3d/references/concept-image.md +47 -0
  1924. package/plugins/robin/skills/funpixel-3d/references/engine-targets.md +31 -0
  1925. package/plugins/robin/skills/funpixel-3d/references/hero-route.md +104 -0
  1926. package/plugins/robin/skills/funpixel-3d/references/level-spec.md +109 -0
  1927. package/plugins/robin/skills/funpixel-3d/references/levels.md +84 -0
  1928. package/plugins/robin/skills/funpixel-3d/references/light-and-places.md +141 -0
  1929. package/plugins/robin/skills/funpixel-3d/references/models.md +111 -0
  1930. package/plugins/robin/skills/funpixel-3d/references/painted-target.md +184 -0
  1931. package/plugins/robin/skills/funpixel-3d/references/reading.md +41 -0
  1932. package/plugins/robin/skills/funpixel-3d/references/skin.md +85 -0
  1933. package/plugins/robin/skills/funpixel-3d/references/skyboxes.md +65 -0
  1934. package/plugins/robin/skills/funpixel-3d/references/textures.md +71 -0
  1935. package/plugins/robin/skills/funpixel-3d/references/three-loading.md +199 -0
  1936. package/plugins/robin/skills/funpixel-3d/references/unity.md +78 -0
  1937. package/plugins/robin/skills/funpixel-art/SKILL.md +104 -0
  1938. package/plugins/robin/skills/funpixel-art/references/2d-assets.md +108 -0
  1939. package/plugins/robin/skills/funpixel-art/references/animation.md +126 -0
  1940. package/plugins/robin/skills/funpixel-art/references/cast.md +73 -0
  1941. package/plugins/robin/skills/funpixel-art/references/characters.md +49 -0
  1942. package/plugins/robin/skills/funpixel-art/references/cost.md +107 -0
  1943. package/plugins/robin/skills/funpixel-art/references/effects.md +85 -0
  1944. package/plugins/robin/skills/funpixel-art/references/frames.md +87 -0
  1945. package/plugins/robin/skills/funpixel-art/references/judging-frames.md +64 -0
  1946. package/plugins/robin/skills/funpixel-art/references/look.md +102 -0
  1947. package/plugins/robin/skills/funpixel-art/references/measure.md +119 -0
  1948. package/plugins/robin/skills/funpixel-art/references/pipeline.md +185 -0
  1949. package/plugins/robin/skills/funpixel-art/references/pixi.md +277 -0
  1950. package/plugins/robin/skills/funpixel-art/references/planes.md +27 -0
  1951. package/plugins/robin/skills/funpixel-art/references/prompts.md +171 -0
  1952. package/plugins/robin/skills/funpixel-art/references/sheets.md +141 -0
  1953. package/plugins/robin/skills/funpixel-art/references/style-file.md +39 -0
  1954. package/plugins/robin/skills/funpixel-art/references/three.md +232 -0
  1955. package/plugins/robin/skills/funpixel-art/references/ui.md +163 -0
  1956. package/plugins/robin/skills/funpixel-art/references/unity.md +78 -0
  1957. package/plugins/robin/skills/funpixel-art/references/wiring.md +41 -0
  1958. package/plugins/robin/skills/funpixel-audio/SKILL.md +92 -0
  1959. package/plugins/robin/skills/funpixel-audio/references/adaptive-music.md +204 -0
  1960. package/plugins/robin/skills/funpixel-audio/references/engine.md +78 -0
  1961. package/plugins/robin/skills/funpixel-audio/references/measure.md +101 -0
  1962. package/plugins/robin/skills/funpixel-audio/references/unity.md +74 -0
  1963. package/plugins/robin/skills/funpixel-brief/SKILL.md +163 -0
  1964. package/plugins/robin/skills/funpixel-feedback/SKILL.md +120 -0
  1965. package/plugins/robin/skills/funpixel-feedback/references/memory.md +99 -0
  1966. package/plugins/robin/skills/funpixel-game-feel/SKILL.md +104 -0
  1967. package/plugins/robin/skills/funpixel-game-feel/references/contact.md +110 -0
  1968. package/plugins/robin/skills/funpixel-game-feel/references/measure.md +125 -0
  1969. package/plugins/robin/skills/funpixel-game-feel/references/motion.md +134 -0
  1970. package/plugins/robin/skills/funpixel-game-feel/references/payoffs.md +35 -0
  1971. package/plugins/robin/skills/funpixel-game-feel/references/recipes.md +107 -0
  1972. package/plugins/robin/skills/funpixel-game-feel/references/unity.md +73 -0
  1973. package/plugins/robin/skills/funpixel-game-logic/SKILL.md +113 -0
  1974. package/plugins/robin/skills/funpixel-game-logic/references/balance.md +88 -0
  1975. package/plugins/robin/skills/funpixel-game-logic/references/content-at-scale.md +147 -0
  1976. package/plugins/robin/skills/funpixel-game-logic/references/depth.md +89 -0
  1977. package/plugins/robin/skills/funpixel-game-logic/references/escalation.md +41 -0
  1978. package/plugins/robin/skills/funpixel-game-logic/references/levels.md +61 -0
  1979. package/plugins/robin/skills/funpixel-game-logic/references/probes.md +122 -0
  1980. package/plugins/robin/skills/funpixel-game-logic/references/unity.md +108 -0
  1981. package/plugins/robin/skills/funpixel-game-spine/SKILL.md +118 -0
  1982. package/plugins/robin/skills/funpixel-game-spine/references/camera.md +94 -0
  1983. package/plugins/robin/skills/funpixel-game-spine/references/multiplayer.md +101 -0
  1984. package/plugins/robin/skills/funpixel-game-spine/references/patterns.md +103 -0
  1985. package/plugins/robin/skills/funpixel-game-spine/references/performance.md +96 -0
  1986. package/plugins/robin/skills/funpixel-game-spine/references/pixi.md +26 -0
  1987. package/plugins/robin/skills/funpixel-game-spine/references/replay.md +102 -0
  1988. package/plugins/robin/skills/funpixel-game-spine/references/room-api.md +63 -0
  1989. package/plugins/robin/skills/funpixel-game-spine/references/room-modes.md +40 -0
  1990. package/plugins/robin/skills/funpixel-game-spine/references/sdk.md +114 -0
  1991. package/plugins/robin/skills/funpixel-game-spine/references/three.md +62 -0
  1992. package/plugins/robin/skills/funpixel-gdd/SKILL.md +116 -0
  1993. package/plugins/robin/skills/funpixel-gdd/references/as-built.md +40 -0
  1994. package/plugins/robin/skills/funpixel-gdd/references/design-measures.md +24 -0
  1995. package/plugins/robin/skills/funpixel-gdd/references/design-note.md +88 -0
  1996. package/plugins/robin/skills/funpixel-gdd/references/experience.md +92 -0
  1997. package/plugins/robin/skills/funpixel-gdd/references/first-look.md +226 -0
  1998. package/plugins/robin/skills/funpixel-gdd/references/floors.md +62 -0
  1999. package/plugins/robin/skills/funpixel-gdd/references/frame.md +75 -0
  2000. package/plugins/robin/skills/funpixel-gdd/references/gameplay-contract.md +81 -0
  2001. package/plugins/robin/skills/funpixel-gdd/references/gdd-template.md +417 -0
  2002. package/plugins/robin/skills/funpixel-gdd/references/genre-card.md +109 -0
  2003. package/plugins/robin/skills/funpixel-gdd/references/genre-platformer.md +159 -0
  2004. package/plugins/robin/skills/funpixel-gdd/references/genre-puzzle.md +145 -0
  2005. package/plugins/robin/skills/funpixel-gdd/references/genre-racing.md +137 -0
  2006. package/plugins/robin/skills/funpixel-gdd/references/genre-rpg.md +125 -0
  2007. package/plugins/robin/skills/funpixel-gdd/references/genre-shooter.md +128 -0
  2008. package/plugins/robin/skills/funpixel-gdd/references/genre-simulation.md +112 -0
  2009. package/plugins/robin/skills/funpixel-gdd/references/genre-strategy.md +116 -0
  2010. package/plugins/robin/skills/funpixel-gdd/references/genre-survival.md +122 -0
  2011. package/plugins/robin/skills/funpixel-gdd/references/in-the-loop.md +106 -0
  2012. package/plugins/robin/skills/funpixel-gdd/references/invent-first.md +131 -0
  2013. package/plugins/robin/skills/funpixel-gdd/references/level-and-fun.md +112 -0
  2014. package/plugins/robin/skills/funpixel-gdd/references/pages.md +47 -0
  2015. package/plugins/robin/skills/funpixel-gdd/references/plan-at-size.md +140 -0
  2016. package/plugins/robin/skills/funpixel-gdd/references/production-tiers.md +117 -0
  2017. package/plugins/robin/skills/funpixel-gdd/references/sections.md +148 -0
  2018. package/plugins/robin/skills/funpixel-gdd/references/spec-folder.md +131 -0
  2019. package/plugins/robin/skills/funpixel-gdd/references/start.md +110 -0
  2020. package/plugins/robin/skills/funpixel-gdd/references/starters.md +175 -0
  2021. package/plugins/robin/skills/funpixel-gdd/references/the-path.md +133 -0
  2022. package/plugins/robin/skills/funpixel-gdd/references/track.md +29 -0
  2023. package/plugins/robin/skills/funpixel-gdd/references/world-and-identity.md +165 -0
  2024. package/plugins/robin/skills/funpixel-gdd/references/worth.md +74 -0
  2025. package/plugins/robin/skills/funpixel-mobile-ui/SKILL.md +107 -0
  2026. package/plugins/robin/skills/funpixel-mobile-ui/references/contrast.md +123 -0
  2027. package/plugins/robin/skills/funpixel-mobile-ui/references/hud-and-title.md +108 -0
  2028. package/plugins/robin/skills/funpixel-mobile-ui/references/hud-genres.md +124 -0
  2029. package/plugins/robin/skills/funpixel-mobile-ui/references/phone-check.md +156 -0
  2030. package/plugins/robin/skills/funpixel-mobile-ui/references/recipes.md +279 -0
  2031. package/plugins/robin/skills/funpixel-mobile-ui/references/restyle-ui.md +229 -0
  2032. package/plugins/robin/skills/funpixel-mobile-ui/references/unity.md +61 -0
  2033. package/plugins/robin/skills/funpixel-publish/SKILL.md +109 -0
  2034. package/plugins/robin/skills/funpixel-publish/references/compose.md +113 -0
  2035. package/plugins/robin/skills/funpixel-publish/references/motion.md +120 -0
  2036. package/plugins/robin/skills/funpixel-publish/references/networks.md +75 -0
  2037. package/plugins/robin/skills/funpixel-publish/references/other-hosts.md +65 -0
  2038. package/plugins/robin/skills/funpixel-publish/references/playable-ad.md +90 -0
  2039. package/plugins/robin/skills/funpixel-publish/references/server-build.md +85 -0
  2040. package/plugins/robin/skills/funpixel-publish/references/store-shots.md +85 -0
  2041. package/plugins/robin/skills/funpixel-publish/references/trailer.md +55 -0
  2042. package/plugins/robin/skills/funpixel-publish/references/what-ships.md +30 -0
  2043. package/plugins/robin/skills/funpixel-store/SKILL.md +81 -0
  2044. package/plugins/robin/skills/funpixel-store/references/app-store.md +73 -0
  2045. package/plugins/robin/skills/funpixel-store/references/google-play.md +141 -0
  2046. package/plugins/robin/skills/funpixel-store/references/ios-release.md +63 -0
  2047. package/plugins/robin/skills/funpixel-store/references/money.md +66 -0
  2048. package/plugins/robin/skills/funpixel-store/references/purchases-and-review.md +74 -0
  2049. package/plugins/robin/skills/funpixel-store/references/readiness-page.md +24 -0
  2050. package/plugins/robin/skills/funpixel-store/references/readiness.md +107 -0
  2051. package/plugins/robin/skills/funpixel-store/references/steam.md +38 -0
  2052. package/plugins/robin/skills/funpixel-store/references/unity-store.md +55 -0
  2053. package/plugins/robin/skills/funpixel-store/references/web-portals.md +43 -0
  2054. package/plugins/robin/skills/funpixel-unity-game/SKILL.md +103 -0
  2055. package/plugins/robin/skills/funpixel-unity-game/references/agent-ops.md +54 -0
  2056. package/plugins/robin/skills/funpixel-unity-game/references/fixes.md +40 -0
  2057. package/plugins/robin/skills/funpixel-unity-game/references/from-a-web-game.md +108 -0
  2058. package/plugins/robin/skills/funpixel-unity-game/references/handing-off.md +42 -0
  2059. package/plugins/robin/skills/funpixel-unity-game/references/performance.md +59 -0
  2060. package/plugins/robin/skills/funpixel-unity-game/references/probe.md +80 -0
  2061. package/plugins/robin/skills/funpixel-unity-game/references/shared-mac.md +121 -0
  2062. package/plugins/robin/skills/funpixel-unity-game/references/traps.md +108 -0
  2063. package/plugins/robin/skills/funpixel-verify/SKILL.md +109 -0
  2064. package/plugins/robin/skills/funpixel-verify/references/actors.md +94 -0
  2065. package/plugins/robin/skills/funpixel-verify/references/bar.md +62 -0
  2066. package/plugins/robin/skills/funpixel-verify/references/checks.md +69 -0
  2067. package/plugins/robin/skills/funpixel-verify/references/experience.md +67 -0
  2068. package/plugins/robin/skills/funpixel-verify/references/eyes.md +54 -0
  2069. package/plugins/robin/skills/funpixel-verify/references/fidelity.md +126 -0
  2070. package/plugins/robin/skills/funpixel-verify/references/hit-bar.md +31 -0
  2071. package/plugins/robin/skills/funpixel-verify/references/journeys.md +77 -0
  2072. package/plugins/robin/skills/funpixel-verify/references/mobile-qa.md +123 -0
  2073. package/plugins/robin/skills/funpixel-verify/references/playtest.md +161 -0
  2074. package/plugins/robin/skills/funpixel-verify/references/review.md +105 -0
  2075. package/plugins/robin/skills/funpixel-verify/references/rubric.md +67 -0
  2076. package/plugins/robin/skills/funpixel-verify/references/scenes.md +49 -0
  2077. package/plugins/robin/skills/funpixel-verify/references/unity.md +60 -0
  2078. package/plugins/robin/skills/funpixel-world-and-story/SKILL.md +99 -0
  2079. package/plugins/robin/skills/funpixel-world-and-story/references/atmosphere.md +208 -0
  2080. package/plugins/robin/skills/funpixel-world-and-story/references/forged-world.md +79 -0
  2081. package/plugins/robin/skills/funpixel-world-and-story/references/living-world.md +237 -0
  2082. package/plugins/robin/skills/funpixel-world-and-story/references/opening-and-chapters.md +215 -0
  2083. package/plugins/robin/skills/funpixel-world-and-story/references/shelf.md +80 -0
  2084. package/plugins/robin/skills/funpixel-world-and-story/references/story-at-size.md +159 -0
  2085. package/plugins/robin/skills/funpixel-world-and-story/references/voice.md +175 -0
  2086. package/plugins/robin/skills/funpixel-world-and-story/references/world-kit.md +154 -0
  2087. package/templates/common/.agents/skills/funpixel-3d/SKILL.md +89 -0
  2088. package/templates/common/.agents/skills/funpixel-3d/references/bake-off.md +48 -0
  2089. package/templates/common/.agents/skills/funpixel-3d/references/bench.md +103 -0
  2090. package/templates/common/.agents/skills/funpixel-3d/references/budgets.md +48 -0
  2091. package/templates/common/.agents/skills/funpixel-3d/references/characters.md +67 -0
  2092. package/templates/common/.agents/skills/funpixel-3d/references/concept-image.md +47 -0
  2093. package/templates/common/.agents/skills/funpixel-3d/references/engine-targets.md +31 -0
  2094. package/templates/common/.agents/skills/funpixel-3d/references/hero-route.md +104 -0
  2095. package/templates/common/.agents/skills/funpixel-3d/references/level-spec.md +109 -0
  2096. package/templates/common/.agents/skills/funpixel-3d/references/levels.md +84 -0
  2097. package/templates/common/.agents/skills/funpixel-3d/references/light-and-places.md +141 -0
  2098. package/templates/common/.agents/skills/funpixel-3d/references/models.md +111 -0
  2099. package/templates/common/.agents/skills/funpixel-3d/references/painted-target.md +184 -0
  2100. package/templates/common/.agents/skills/funpixel-3d/references/reading.md +41 -0
  2101. package/templates/common/.agents/skills/funpixel-3d/references/skin.md +85 -0
  2102. package/templates/common/.agents/skills/funpixel-3d/references/skyboxes.md +65 -0
  2103. package/templates/common/.agents/skills/funpixel-3d/references/textures.md +71 -0
  2104. package/templates/common/.agents/skills/funpixel-3d/references/three-loading.md +199 -0
  2105. package/templates/common/.agents/skills/funpixel-3d/references/unity.md +78 -0
  2106. package/templates/common/.agents/skills/funpixel-art/SKILL.md +104 -0
  2107. package/templates/common/.agents/skills/funpixel-art/references/2d-assets.md +108 -0
  2108. package/templates/common/.agents/skills/funpixel-art/references/animation.md +126 -0
  2109. package/templates/common/.agents/skills/funpixel-art/references/cast.md +73 -0
  2110. package/templates/common/.agents/skills/funpixel-art/references/characters.md +49 -0
  2111. package/templates/common/.agents/skills/funpixel-art/references/cost.md +107 -0
  2112. package/templates/common/.agents/skills/funpixel-art/references/effects.md +85 -0
  2113. package/templates/common/.agents/skills/funpixel-art/references/frames.md +87 -0
  2114. package/templates/common/.agents/skills/funpixel-art/references/judging-frames.md +64 -0
  2115. package/templates/common/.agents/skills/funpixel-art/references/look.md +102 -0
  2116. package/templates/common/.agents/skills/funpixel-art/references/measure.md +119 -0
  2117. package/templates/common/.agents/skills/funpixel-art/references/pipeline.md +185 -0
  2118. package/templates/common/.agents/skills/funpixel-art/references/pixi.md +277 -0
  2119. package/templates/common/.agents/skills/funpixel-art/references/planes.md +27 -0
  2120. package/templates/common/.agents/skills/funpixel-art/references/prompts.md +171 -0
  2121. package/templates/common/.agents/skills/funpixel-art/references/sheets.md +141 -0
  2122. package/templates/common/.agents/skills/funpixel-art/references/style-file.md +39 -0
  2123. package/templates/common/.agents/skills/funpixel-art/references/three.md +232 -0
  2124. package/templates/common/.agents/skills/funpixel-art/references/ui.md +163 -0
  2125. package/templates/common/.agents/skills/funpixel-art/references/unity.md +78 -0
  2126. package/templates/common/.agents/skills/funpixel-art/references/wiring.md +41 -0
  2127. package/templates/common/.agents/skills/funpixel-audio/SKILL.md +92 -0
  2128. package/templates/common/.agents/skills/funpixel-audio/references/adaptive-music.md +204 -0
  2129. package/templates/common/.agents/skills/funpixel-audio/references/engine.md +78 -0
  2130. package/templates/common/.agents/skills/funpixel-audio/references/measure.md +101 -0
  2131. package/templates/common/.agents/skills/funpixel-audio/references/unity.md +74 -0
  2132. package/templates/common/.agents/skills/funpixel-feedback/SKILL.md +120 -0
  2133. package/templates/common/.agents/skills/funpixel-feedback/references/memory.md +99 -0
  2134. package/templates/common/.agents/skills/funpixel-game-feel/SKILL.md +104 -0
  2135. package/templates/common/.agents/skills/funpixel-game-feel/references/contact.md +110 -0
  2136. package/templates/common/.agents/skills/funpixel-game-feel/references/measure.md +125 -0
  2137. package/templates/common/.agents/skills/funpixel-game-feel/references/motion.md +134 -0
  2138. package/templates/common/.agents/skills/funpixel-game-feel/references/payoffs.md +35 -0
  2139. package/templates/common/.agents/skills/funpixel-game-feel/references/recipes.md +107 -0
  2140. package/templates/common/.agents/skills/funpixel-game-feel/references/unity.md +73 -0
  2141. package/templates/common/.agents/skills/funpixel-game-logic/SKILL.md +113 -0
  2142. package/templates/common/.agents/skills/funpixel-game-logic/references/balance.md +88 -0
  2143. package/templates/common/.agents/skills/funpixel-game-logic/references/content-at-scale.md +147 -0
  2144. package/templates/common/.agents/skills/funpixel-game-logic/references/depth.md +89 -0
  2145. package/templates/common/.agents/skills/funpixel-game-logic/references/escalation.md +41 -0
  2146. package/templates/common/.agents/skills/funpixel-game-logic/references/levels.md +61 -0
  2147. package/templates/common/.agents/skills/funpixel-game-logic/references/probes.md +122 -0
  2148. package/templates/common/.agents/skills/funpixel-game-logic/references/unity.md +108 -0
  2149. package/templates/common/.agents/skills/funpixel-game-spine/SKILL.md +118 -0
  2150. package/templates/common/.agents/skills/funpixel-game-spine/references/camera.md +94 -0
  2151. package/templates/common/.agents/skills/funpixel-game-spine/references/multiplayer.md +101 -0
  2152. package/templates/common/.agents/skills/funpixel-game-spine/references/patterns.md +103 -0
  2153. package/templates/common/.agents/skills/funpixel-game-spine/references/performance.md +96 -0
  2154. package/templates/common/.agents/skills/funpixel-game-spine/references/pixi.md +26 -0
  2155. package/templates/common/.agents/skills/funpixel-game-spine/references/replay.md +102 -0
  2156. package/templates/common/.agents/skills/funpixel-game-spine/references/room-api.md +63 -0
  2157. package/templates/common/.agents/skills/funpixel-game-spine/references/room-modes.md +40 -0
  2158. package/templates/common/.agents/skills/funpixel-game-spine/references/sdk.md +114 -0
  2159. package/templates/common/.agents/skills/funpixel-game-spine/references/three.md +62 -0
  2160. package/templates/common/.agents/skills/funpixel-gdd/SKILL.md +116 -0
  2161. package/templates/common/.agents/skills/funpixel-gdd/references/as-built.md +40 -0
  2162. package/templates/common/.agents/skills/funpixel-gdd/references/design-measures.md +24 -0
  2163. package/templates/common/.agents/skills/funpixel-gdd/references/design-note.md +88 -0
  2164. package/templates/common/.agents/skills/funpixel-gdd/references/experience.md +92 -0
  2165. package/templates/common/.agents/skills/funpixel-gdd/references/first-look.md +226 -0
  2166. package/templates/common/.agents/skills/funpixel-gdd/references/floors.md +62 -0
  2167. package/templates/common/.agents/skills/funpixel-gdd/references/frame.md +75 -0
  2168. package/templates/common/.agents/skills/funpixel-gdd/references/gameplay-contract.md +81 -0
  2169. package/templates/common/.agents/skills/funpixel-gdd/references/gdd-template.md +417 -0
  2170. package/templates/common/.agents/skills/funpixel-gdd/references/genre-card.md +109 -0
  2171. package/templates/common/.agents/skills/funpixel-gdd/references/genre-platformer.md +159 -0
  2172. package/templates/common/.agents/skills/funpixel-gdd/references/genre-puzzle.md +145 -0
  2173. package/templates/common/.agents/skills/funpixel-gdd/references/genre-racing.md +137 -0
  2174. package/templates/common/.agents/skills/funpixel-gdd/references/genre-rpg.md +125 -0
  2175. package/templates/common/.agents/skills/funpixel-gdd/references/genre-shooter.md +128 -0
  2176. package/templates/common/.agents/skills/funpixel-gdd/references/genre-simulation.md +112 -0
  2177. package/templates/common/.agents/skills/funpixel-gdd/references/genre-strategy.md +116 -0
  2178. package/templates/common/.agents/skills/funpixel-gdd/references/genre-survival.md +122 -0
  2179. package/templates/common/.agents/skills/funpixel-gdd/references/in-the-loop.md +106 -0
  2180. package/templates/common/.agents/skills/funpixel-gdd/references/invent-first.md +131 -0
  2181. package/templates/common/.agents/skills/funpixel-gdd/references/level-and-fun.md +112 -0
  2182. package/templates/common/.agents/skills/funpixel-gdd/references/pages.md +47 -0
  2183. package/templates/common/.agents/skills/funpixel-gdd/references/plan-at-size.md +140 -0
  2184. package/templates/common/.agents/skills/funpixel-gdd/references/production-tiers.md +117 -0
  2185. package/templates/common/.agents/skills/funpixel-gdd/references/sections.md +148 -0
  2186. package/templates/common/.agents/skills/funpixel-gdd/references/spec-folder.md +131 -0
  2187. package/templates/common/.agents/skills/funpixel-gdd/references/start.md +110 -0
  2188. package/templates/common/.agents/skills/funpixel-gdd/references/starters.md +175 -0
  2189. package/templates/common/.agents/skills/funpixel-gdd/references/the-path.md +133 -0
  2190. package/templates/common/.agents/skills/funpixel-gdd/references/track.md +29 -0
  2191. package/templates/common/.agents/skills/funpixel-gdd/references/world-and-identity.md +165 -0
  2192. package/templates/common/.agents/skills/funpixel-gdd/references/worth.md +74 -0
  2193. package/templates/common/.agents/skills/funpixel-mobile-ui/SKILL.md +107 -0
  2194. package/templates/common/.agents/skills/funpixel-mobile-ui/references/contrast.md +123 -0
  2195. package/templates/common/.agents/skills/funpixel-mobile-ui/references/hud-and-title.md +108 -0
  2196. package/templates/common/.agents/skills/funpixel-mobile-ui/references/hud-genres.md +124 -0
  2197. package/templates/common/.agents/skills/funpixel-mobile-ui/references/phone-check.md +156 -0
  2198. package/templates/common/.agents/skills/funpixel-mobile-ui/references/recipes.md +279 -0
  2199. package/templates/common/.agents/skills/funpixel-mobile-ui/references/restyle-ui.md +229 -0
  2200. package/templates/common/.agents/skills/funpixel-mobile-ui/references/unity.md +61 -0
  2201. package/templates/common/.agents/skills/funpixel-publish/SKILL.md +109 -0
  2202. package/templates/common/.agents/skills/funpixel-publish/references/compose.md +113 -0
  2203. package/templates/common/.agents/skills/funpixel-publish/references/motion.md +120 -0
  2204. package/templates/common/.agents/skills/funpixel-publish/references/networks.md +75 -0
  2205. package/templates/common/.agents/skills/funpixel-publish/references/other-hosts.md +65 -0
  2206. package/templates/common/.agents/skills/funpixel-publish/references/playable-ad.md +90 -0
  2207. package/templates/common/.agents/skills/funpixel-publish/references/server-build.md +85 -0
  2208. package/templates/common/.agents/skills/funpixel-publish/references/store-shots.md +85 -0
  2209. package/templates/common/.agents/skills/funpixel-publish/references/trailer.md +55 -0
  2210. package/templates/common/.agents/skills/funpixel-publish/references/what-ships.md +30 -0
  2211. package/templates/common/.agents/skills/funpixel-store/SKILL.md +81 -0
  2212. package/templates/common/.agents/skills/funpixel-store/references/app-store.md +73 -0
  2213. package/templates/common/.agents/skills/funpixel-store/references/google-play.md +141 -0
  2214. package/templates/common/.agents/skills/funpixel-store/references/ios-release.md +63 -0
  2215. package/templates/common/.agents/skills/funpixel-store/references/money.md +66 -0
  2216. package/templates/common/.agents/skills/funpixel-store/references/purchases-and-review.md +74 -0
  2217. package/templates/common/.agents/skills/funpixel-store/references/readiness-page.md +24 -0
  2218. package/templates/common/.agents/skills/funpixel-store/references/readiness.md +107 -0
  2219. package/templates/common/.agents/skills/funpixel-store/references/steam.md +38 -0
  2220. package/templates/common/.agents/skills/funpixel-store/references/unity-store.md +55 -0
  2221. package/templates/common/.agents/skills/funpixel-store/references/web-portals.md +43 -0
  2222. package/templates/common/.agents/skills/funpixel-unity-game/SKILL.md +103 -0
  2223. package/templates/common/.agents/skills/funpixel-unity-game/references/agent-ops.md +54 -0
  2224. package/templates/common/.agents/skills/funpixel-unity-game/references/fixes.md +40 -0
  2225. package/templates/common/.agents/skills/funpixel-unity-game/references/from-a-web-game.md +108 -0
  2226. package/templates/common/.agents/skills/funpixel-unity-game/references/handing-off.md +42 -0
  2227. package/templates/common/.agents/skills/funpixel-unity-game/references/performance.md +59 -0
  2228. package/templates/common/.agents/skills/funpixel-unity-game/references/probe.md +80 -0
  2229. package/templates/common/.agents/skills/funpixel-unity-game/references/shared-mac.md +121 -0
  2230. package/templates/common/.agents/skills/funpixel-unity-game/references/traps.md +108 -0
  2231. package/templates/common/.agents/skills/funpixel-verify/SKILL.md +109 -0
  2232. package/templates/common/.agents/skills/funpixel-verify/references/actors.md +94 -0
  2233. package/templates/common/.agents/skills/funpixel-verify/references/bar.md +62 -0
  2234. package/templates/common/.agents/skills/funpixel-verify/references/checks.md +69 -0
  2235. package/templates/common/.agents/skills/funpixel-verify/references/experience.md +67 -0
  2236. package/templates/common/.agents/skills/funpixel-verify/references/eyes.md +54 -0
  2237. package/templates/common/.agents/skills/funpixel-verify/references/fidelity.md +126 -0
  2238. package/templates/common/.agents/skills/funpixel-verify/references/hit-bar.md +31 -0
  2239. package/templates/common/.agents/skills/funpixel-verify/references/journeys.md +77 -0
  2240. package/templates/common/.agents/skills/funpixel-verify/references/mobile-qa.md +123 -0
  2241. package/templates/common/.agents/skills/funpixel-verify/references/playtest.md +161 -0
  2242. package/templates/common/.agents/skills/funpixel-verify/references/review.md +105 -0
  2243. package/templates/common/.agents/skills/funpixel-verify/references/rubric.md +67 -0
  2244. package/templates/common/.agents/skills/funpixel-verify/references/scenes.md +49 -0
  2245. package/templates/common/.agents/skills/funpixel-verify/references/unity.md +60 -0
  2246. package/templates/common/.agents/skills/funpixel-world-and-story/SKILL.md +99 -0
  2247. package/templates/common/.agents/skills/funpixel-world-and-story/references/atmosphere.md +208 -0
  2248. package/templates/common/.agents/skills/funpixel-world-and-story/references/forged-world.md +79 -0
  2249. package/templates/common/.agents/skills/funpixel-world-and-story/references/living-world.md +237 -0
  2250. package/templates/common/.agents/skills/funpixel-world-and-story/references/opening-and-chapters.md +215 -0
  2251. package/templates/common/.agents/skills/funpixel-world-and-story/references/shelf.md +80 -0
  2252. package/templates/common/.agents/skills/funpixel-world-and-story/references/story-at-size.md +159 -0
  2253. package/templates/common/.agents/skills/funpixel-world-and-story/references/voice.md +175 -0
  2254. package/templates/common/.agents/skills/funpixel-world-and-story/references/world-kit.md +154 -0
  2255. package/templates/common/.claude/settings.json +3 -0
  2256. package/templates/common/.harnessignore +28 -0
  2257. package/templates/common/AGENTS.md +135 -0
  2258. package/templates/common/CLAUDE.md +1 -0
  2259. package/templates/common/assets/assets.example.json +9 -0
  2260. package/templates/common/index.html +13 -0
  2261. package/templates/common/src/art/files.mjs +27 -0
  2262. package/templates/common/src/assets.ts +62 -0
  2263. package/templates/common/src/beat.ts +50 -0
  2264. package/templates/common/src/characters.ts +54 -0
  2265. package/templates/common/src/expose.ts +63 -0
  2266. package/templates/common/src/feel.ts +78 -0
  2267. package/templates/common/src/fpx-hooks.ts +46 -0
  2268. package/templates/common/src/frame.ts +63 -0
  2269. package/templates/common/src/grade.ts +47 -0
  2270. package/templates/common/src/hud-kit.css +29 -0
  2271. package/templates/common/src/hud-kit.tsx +85 -0
  2272. package/templates/common/src/hud.tsx +55 -0
  2273. package/templates/common/src/icons.tsx +35 -0
  2274. package/templates/common/src/input.ts +70 -0
  2275. package/templates/common/src/juice.ts +92 -0
  2276. package/templates/common/src/levels.ts +43 -0
  2277. package/templates/common/src/living.ts +91 -0
  2278. package/templates/common/src/look.json +19 -0
  2279. package/templates/common/src/look.ts +54 -0
  2280. package/templates/common/src/main.tsx +31 -0
  2281. package/templates/common/src/markers.ts +60 -0
  2282. package/templates/common/src/motion-sample.ts +71 -0
  2283. package/templates/common/src/motion.ts +92 -0
  2284. package/templates/common/src/pin.ts +32 -0
  2285. package/templates/common/src/platform.ts +67 -0
  2286. package/templates/common/src/pose.ts +22 -0
  2287. package/templates/common/src/probe-human.ts +29 -0
  2288. package/templates/common/src/probe-kit.ts +99 -0
  2289. package/templates/common/src/rules.ts +99 -0
  2290. package/templates/common/src/save.ts +21 -0
  2291. package/templates/common/src/screens.css +34 -0
  2292. package/templates/common/src/screens.tsx +95 -0
  2293. package/templates/common/src/selftests.ts +22 -0
  2294. package/templates/common/src/session.ts +99 -0
  2295. package/templates/common/src/sound.ts +85 -0
  2296. package/templates/common/src/splash-funpixel/OFL.txt +94 -0
  2297. package/templates/common/src/splash-funpixel/card.css +18 -0
  2298. package/templates/common/src/splash-funpixel/card.tsx +22 -0
  2299. package/templates/common/src/splash.css +15 -0
  2300. package/templates/common/src/splash.tsx +86 -0
  2301. package/templates/common/src/store.ts +68 -0
  2302. package/templates/common/src/strike.ts +82 -0
  2303. package/templates/common/src/styles.css +81 -0
  2304. package/templates/common/src/toasts.ts +75 -0
  2305. package/templates/common/src/world.ts +91 -0
  2306. package/templates/common/test/feel.json +36 -0
  2307. package/templates/common/test/platform.test.ts +42 -0
  2308. package/templates/common/test/probes.ts +72 -0
  2309. package/templates/common/test/rules.test.ts +88 -0
  2310. package/templates/common/tsconfig.json +16 -0
  2311. package/templates/common/vite.config.ts +6 -0
  2312. package/templates/pixi/src/character.ts +63 -0
  2313. package/templates/pixi/src/game.ts +99 -0
  2314. package/templates/pixi/src/world-hud.ts +16 -0
  2315. package/templates/spec/common/src/chapters.ts +97 -0
  2316. package/templates/spec/common/src/levels.ts +68 -0
  2317. package/templates/spec/common/src/probe-rooms.ts +63 -0
  2318. package/templates/spec/common/src/room-map.tsx +30 -0
  2319. package/templates/spec/common/src/tune.ts +93 -0
  2320. package/templates/spec/common/test/rooms.test.ts +59 -0
  2321. package/templates/spec/common/test/rooms.ts +53 -0
  2322. package/templates/spec/three-world/test/rooms.ts +54 -0
  2323. package/templates/three/src/character.ts +65 -0
  2324. package/templates/three/src/game.ts +99 -0
  2325. package/templates/three/src/world-hud.ts +22 -0
  2326. package/templates/three-world/src/bot.ts +43 -0
  2327. package/templates/three-world/src/budget.ts +73 -0
  2328. package/templates/three-world/src/camera-rig.ts +99 -0
  2329. package/templates/three-world/src/controls.tsx +49 -0
  2330. package/templates/three-world/src/cutout-atlas.ts +26 -0
  2331. package/templates/three-world/src/cutout-math.ts +47 -0
  2332. package/templates/three-world/src/cutouts.ts +99 -0
  2333. package/templates/three-world/src/dressing-math.ts +98 -0
  2334. package/templates/three-world/src/dressing.ts +84 -0
  2335. package/templates/three-world/src/expose.ts +82 -0
  2336. package/templates/three-world/src/feel.ts +79 -0
  2337. package/templates/three-world/src/game.ts +99 -0
  2338. package/templates/three-world/src/hud.tsx +44 -0
  2339. package/templates/three-world/src/icons.tsx +36 -0
  2340. package/templates/three-world/src/input.ts +73 -0
  2341. package/templates/three-world/src/juice.ts +91 -0
  2342. package/templates/three-world/src/layout.ts +73 -0
  2343. package/templates/three-world/src/light-math.ts +78 -0
  2344. package/templates/three-world/src/light.ts +77 -0
  2345. package/templates/three-world/src/look.json +30 -0
  2346. package/templates/three-world/src/main.tsx +38 -0
  2347. package/templates/three-world/src/models.ts +62 -0
  2348. package/templates/three-world/src/palette.ts +21 -0
  2349. package/templates/three-world/src/places.json +50 -0
  2350. package/templates/three-world/src/places.ts +56 -0
  2351. package/templates/three-world/src/pose.ts +22 -0
  2352. package/templates/three-world/src/post.ts +47 -0
  2353. package/templates/three-world/src/rest-math.ts +29 -0
  2354. package/templates/three-world/src/rules.ts +89 -0
  2355. package/templates/three-world/src/screens.css +45 -0
  2356. package/templates/three-world/src/screens.tsx +96 -0
  2357. package/templates/three-world/src/selftests.ts +25 -0
  2358. package/templates/three-world/src/session.ts +99 -0
  2359. package/templates/three-world/src/shots.ts +59 -0
  2360. package/templates/three-world/src/sky.ts +48 -0
  2361. package/templates/three-world/src/stage.ts +83 -0
  2362. package/templates/three-world/src/styles.css +95 -0
  2363. package/templates/three-world/src/surfaces.ts +55 -0
  2364. package/templates/three-world/src/world.ts +70 -0
  2365. package/templates/three-world/test/feel.json +29 -0
  2366. package/templates/three-world/test/probes.ts +65 -0
  2367. package/templates/three-world/test/resolve.mjs +13 -0
  2368. package/templates/three-world/test/rules.test.ts +81 -0
  2369. package/unity/com.funpixel.probe/Editor/Funpixel.Probe.Editor.asmdef +16 -0
  2370. package/unity/com.funpixel.probe/Editor/Funpixel.Probe.Editor.asmdef.meta +7 -0
  2371. package/unity/com.funpixel.probe/Editor/ProbeBuild.cs +97 -0
  2372. package/unity/com.funpixel.probe/Editor/ProbeBuild.cs.meta +11 -0
  2373. package/unity/com.funpixel.probe/Editor/ReleaseGuard.cs +23 -0
  2374. package/unity/com.funpixel.probe/Editor/ReleaseGuard.cs.meta +11 -0
  2375. package/unity/com.funpixel.probe/Editor.meta +8 -0
  2376. package/unity/com.funpixel.probe/Runtime/Api/Funpixel.Probe.asmdef +14 -0
  2377. package/unity/com.funpixel.probe/Runtime/Api/Funpixel.Probe.asmdef.meta +7 -0
  2378. package/unity/com.funpixel.probe/Runtime/Api/FunpixelProbe.cs +146 -0
  2379. package/unity/com.funpixel.probe/Runtime/Api/FunpixelProbe.cs.meta +11 -0
  2380. package/unity/com.funpixel.probe/Runtime/Api.meta +8 -0
  2381. package/unity/com.funpixel.probe/Runtime/Player/Args.cs +87 -0
  2382. package/unity/com.funpixel.probe/Runtime/Player/Args.cs.meta +11 -0
  2383. package/unity/com.funpixel.probe/Runtime/Player/Boot.cs +67 -0
  2384. package/unity/com.funpixel.probe/Runtime/Player/Boot.cs.meta +11 -0
  2385. package/unity/com.funpixel.probe/Runtime/Player/Bridge.cs +559 -0
  2386. package/unity/com.funpixel.probe/Runtime/Player/Bridge.cs.meta +11 -0
  2387. package/unity/com.funpixel.probe/Runtime/Player/Capture.cs +145 -0
  2388. package/unity/com.funpixel.probe/Runtime/Player/Capture.cs.meta +11 -0
  2389. package/unity/com.funpixel.probe/Runtime/Player/Funpixel.Probe.Player.asmdef +32 -0
  2390. package/unity/com.funpixel.probe/Runtime/Player/Funpixel.Probe.Player.asmdef.meta +7 -0
  2391. package/unity/com.funpixel.probe/Runtime/Player/Inject.cs +127 -0
  2392. package/unity/com.funpixel.probe/Runtime/Player/Inject.cs.meta +11 -0
  2393. package/unity/com.funpixel.probe/Runtime/Player/Json.cs +246 -0
  2394. package/unity/com.funpixel.probe/Runtime/Player/Json.cs.meta +11 -0
  2395. package/unity/com.funpixel.probe/Runtime/Player/Probe.cs +194 -0
  2396. package/unity/com.funpixel.probe/Runtime/Player/Probe.cs.meta +11 -0
  2397. package/unity/com.funpixel.probe/Runtime/Player/Stats.cs +266 -0
  2398. package/unity/com.funpixel.probe/Runtime/Player/Stats.cs.meta +11 -0
  2399. package/unity/com.funpixel.probe/Runtime/Player/UiTargets.cs +134 -0
  2400. package/unity/com.funpixel.probe/Runtime/Player/UiTargets.cs.meta +11 -0
  2401. package/unity/com.funpixel.probe/Runtime/Player.meta +8 -0
  2402. package/unity/com.funpixel.probe/Runtime/link.xml +7 -0
  2403. package/unity/com.funpixel.probe/Runtime/link.xml.meta +7 -0
  2404. package/unity/com.funpixel.probe/Runtime.meta +8 -0
  2405. package/unity/com.funpixel.probe/Tests/Editor/Funpixel.Probe.Tests.asmdef +25 -0
  2406. package/unity/com.funpixel.probe/Tests/Editor/Funpixel.Probe.Tests.asmdef.meta +7 -0
  2407. package/unity/com.funpixel.probe/Tests/Editor/StatsTests.cs +147 -0
  2408. package/unity/com.funpixel.probe/Tests/Editor/StatsTests.cs.meta +11 -0
  2409. package/unity/com.funpixel.probe/Tests/Editor/WireTests.cs +86 -0
  2410. package/unity/com.funpixel.probe/Tests/Editor/WireTests.cs.meta +11 -0
  2411. package/unity/com.funpixel.probe/Tests/Editor.meta +8 -0
  2412. package/unity/com.funpixel.probe/Tests.meta +8 -0
  2413. package/unity/com.funpixel.probe/package.json +14 -0
  2414. package/unity/com.funpixel.probe/package.json.meta +7 -0
@@ -0,0 +1,134 @@
1
+ # Motion as data: gaits and strikes
2
+
3
+ A walk, a limp, a pounce and a heavy swing are numbers before they are code. Every starter ships
4
+ three engine-free files that hold them: `src/motion.ts` (gait presets and their dials),
5
+ `src/motion-sample.ts` (the stride driven by distance, the pose at a phase, a clip's rate) and
6
+ `src/strike.ts` (key poses and timed phases). Pick a preset, tune a few dials, and print the
7
+ warnings while you tune. While you build (the dev server, or `strict: true`) a dial past its range
8
+ is refused with the reason the edge exists, so a number you tuned never silently becomes another;
9
+ in a shipped game nothing throws: it is held at the edge and named.
10
+
11
+ Units are body heights (bh), so the same table serves a 64 px sprite and a 1.75 m person: a person
12
+ walking 1.4 m/s moves 0.8 bh/s.
13
+
14
+ ## Gaits: pick a preset, tune the dials
15
+
16
+ | Preset | designSpeed (bh/s) | stride (bh) | stance | What reads |
17
+ |---|---|---|---|---|
18
+ | walk | 0.8 | 0.8 | 0.62 | two bobs a stride, arms opposite the legs |
19
+ | run | 2.3 | 1.6 | 0.38 | both feet off the ground, a lean into speed |
20
+ | sneak | 0.4 | 0.6 | 0.72 | hips low (crouch 0.25), arms close, small bob |
21
+ | carry | 0.6 | 0.65 | 0.66 | arms braced (swing 0.05), more side sway |
22
+ | limp | 0.5 | 0.6 | 0.64 | the bad leg plants shorter, the body dips on it |
23
+ | old | 0.5 | 0.55 | 0.68 | short steps, a forward stoop, low foot lift |
24
+ | child | 1.0 | 0.85 | 0.58 | quick, bouncy, big arm swing |
25
+ | quadruped | 1.2 | 1.0 | 0.6 | hind, fore, hind, fore (height = shoulder) |
26
+ | flyer | 3.0 | n/a | n/a | 6 beats a second, 30% of each cycle gliding |
27
+
28
+ The dials and their ranges (`GAIT_DIALS`): designSpeed 0.2–4, stride 0.3–2.2, stance 0.25–0.75
29
+ (above 0.5 walks, below runs), bob 0–0.06 of height, footLift 0–0.25, lean −0.2–0.35 rad,
30
+ armSwing 0–0.8 rad (past it the hands crest the shoulder and flail), hipYaw 0–0.3 rad (the chest
31
+ turns back 60% of it), sway 0–0.04, crouch 0–0.35, limp 0–0.6, flapHz 0–12, glide 0–0.8.
32
+
33
+ `checkGait` also names pairings that read wrong: a deep crouch above 1 bh/s (a scuttle), a run's
34
+ stance under a walk's pace (jogging on the spot), a step rate outside 1–4.5 a second (change the
35
+ stride, not the clock), a flyer with no beat (a stone gliding).
36
+
37
+ Give each person in a crowd one asymmetry (a limp of 0.1, a swagger of hip turn, a stoop) and
38
+ vary designSpeed ±15%: a crowd on one preset marches like a drill team.
39
+
40
+ ## Keep the feet on the ground
41
+
42
+ A clip or a stride is tuned for one speed. Played at another, the feet slide. Two routes:
43
+
44
+ ```ts
45
+ import { gait } from './motion';
46
+ import { advance, clipTimeScale, sampleGait } from './motion-sample';
47
+
48
+ const { gait: g, warnings } = gait('walk', { limp: 0.15, designSpeed: 0.75 });
49
+ if (import.meta.env.DEV) for (const w of warnings) console.warn('gait ' + w.dial + ': ' + w.why);
50
+
51
+ // A rigged clip (three.js AnimationMixer): the rate follows ground speed, held at 0.6–1.6.
52
+ const t = clipTimeScale(g, speedMps / heightM);
53
+ walkAction.timeScale = t.scale;
54
+ if (t.switchTo) crossFadeTo(t.switchTo); // a run clip, not a walk at 2×
55
+
56
+ // Parts in code (a cut-out rig or a primitive body): the phase moves by distance walked.
57
+ phase = advance(g, phase, movedThisFrameM / heightM, dt);
58
+ const p = sampleGait(g, phase);
59
+ hips.position.y = hipHeight + p.y * heightM;
60
+ hips.position.x = p.x * heightM;
61
+ hips.rotation.y = p.hipYaw; chest.rotation.y = p.chestYaw; body.rotation.x = p.lean;
62
+ armL.rotation.x = p.arms[0]; armR.rotation.x = p.arms[1];
63
+ p.legs.forEach((leg, i) => { feet[i].position.z = leg.x * heightM; feet[i].position.y = leg.lift * heightM; });
64
+ ```
65
+
66
+ A planted foot moves backward at exactly the body's speed (it stays still on the ground), and a
67
+ swinging foot eases forward on a sine, never a triangle wave. Standing still plays idle, never a
68
+ walk at rate 0. A flyer's phase moves by time (`flapHz`), and `p.wing` runs −1 to 1; tilt the body
69
+ into each turn as well.
70
+
71
+ ### A walk made of pictures
72
+
73
+ A sheet walk follows the same rule: the frame comes from the phase, and the phase from distance.
74
+
75
+ ```ts
76
+ phase = (phase + movedThisFrameM / (0.8 * heightM)) % 1; // one cycle per ~0.8 body heights
77
+ body.material.map.offset.x = Math.floor(phase * FRAMES) / FRAMES;
78
+ body.position.y = Math.abs(Math.sin(phase * Math.PI * 2)) * 0.03 * heightM; // bob at twice the step rate
79
+ ```
80
+
81
+ Use 8–12 frames for the hero (contact, down, passing, up per foot) and 6+ for a background
82
+ walker; fewer pops between poses. Hold the contact frame on a stop rather than snapping to idle
83
+ mid-stride. `walk` reports `HERO WALK POPS` (under 6 frames), `ON A TREADMILL` (walk frames while
84
+ standing) and `ON A TIMER` (frames that keep the clock's pace when the speed changes); contact and
85
+ bob are for your eye on the walk film.
86
+
87
+ Declare the preset in the actors contract (`gait: "walk"`, `height: 1.7`, HOOKS.md "Actors"), and
88
+ `npx @funpixel/tools life` adds a note when an actor's travel is far from its preset's designSpeed
89
+ (the feet moonwalk or scramble) and names the nearer preset, or when a declared gait slides.
90
+
91
+ ## Strikes: five keys, four phases
92
+
93
+ `src/strike.ts` holds a strike as guard → wind-up → contact → follow-through → guard, with seconds
94
+ for each phase and an easing each: the wind-up eases out and settles into the pose, the strike
95
+ eases in and accelerates to contact, the follow-through carries past the target, the recovery
96
+ eases home. `bodyLead` starts the hips and chest that long before the arm.
97
+
98
+ | Preset | anticipation | strike | follow-through | recovery | lead |
99
+ |---|---|---|---|---|---|
100
+ | jab | 0.10 | 0.05 | 0.08 | 0.15 | 0.03 |
101
+ | heavy (overhead) | 0.40 | 0.09 | 0.25 | 0.45 | 0.08 |
102
+ | sweep | 0.22 | 0.08 | 0.20 | 0.30 | 0.06 |
103
+ | kick | 0.18 | 0.07 | 0.12 | 0.28 | 0.05 |
104
+ | lunge (a creature's bite) | 0.30 | 0.06 | 0.10 | 0.40 | 0.04 |
105
+
106
+ Ranges: anticipation 0.08–0.6 s, strike 0.03–0.15 s (slower reads as a push), follow-through
107
+ 0.05–0.4 s, recovery 0.1–0.8 s (the window an opponent punishes), lead 0–0.12 s. `checkStrike`
108
+ names a wind-up under 1.5× the strike (weightless) and an arm over the shoulder on a move that is
109
+ not an overhead (out of control).
110
+
111
+ ```ts
112
+ import { STRIKES, strikeAt } from './strike';
113
+
114
+ let t = 0; // set to 0 on the press
115
+ function update(dt: number) {
116
+ const before = t; t += dt;
117
+ const r = strikeAt(STRIKES.heavy, t, before);
118
+ if (r.contact) resolveHit(); // once, on the contact frame, never on the press
119
+ arm.rotation.x = -r.pose.raise * 1.6;
120
+ arm.position.z = r.pose.reach * 0.4;
121
+ chest.rotation.y = r.body.twist * 0.6; // the body leads the arm
122
+ hips.position.y = baseY - r.body.crouch * heightM;
123
+ }
124
+ ```
125
+
126
+ `r.impactPhase` is where contact sits in the whole move (0–1); hitstop, the flash and the sound
127
+ belong on that frame ([contact.md](contact.md)). The enemy's tell is its anticipation: tune it
128
+ with `funtools feel`'s tell-to-strike reading, not by feel alone.
129
+
130
+ ## These are starting points
131
+
132
+ The presets are reference numbers to tune, not finished motion. A game's own character (a weary
133
+ courier, a skittish crab) comes from moving two or three dials away from the preset on purpose and
134
+ saying why in the GDD's `## Actors` Motion column.
@@ -0,0 +1,35 @@
1
+ # Response, reward and restraint
2
+
3
+ Measure the core action before adding decoration. Record the input frame, acknowledgement frame,
4
+ contact frame and peak pose. At 60 Hz, 3–4 frames is roughly 50–67 ms; label a duration in
5
+ milliseconds if the game is not fixed at 60 Hz. An immediate pose and sound confirm a press even
6
+ when the attack needs a longer wind-up. Input buffering survives local hitstop.
7
+
8
+ When escalation serves the loop, make a payoff ladder in the design note, with distinct rewards where useful. A three-tier chain example:
9
+
10
+ | Tier | Trigger | Visible answer | Audio | Recovery |
11
+ |---|---|---|---|---|
12
+ | Small | one target | directional kick, 3-frame peak, 6 fragments | dry pop | next input available |
13
+ | Medium | three linked targets | ripples staggered 70 ms, one combined score | rising three-note phrase | readable gaps between ripples |
14
+ | Peak | a rare six-target chain | 4-frame hero pose, expanding ring, score parked above play | short sting, music ducks | threats stay visible |
15
+
16
+ These are starting values to test, not universal settings. Choose distinct poses or compositions,
17
+ not just the same scale tween with a larger number. Keep hit effects attached to the target and
18
+ show the direction of force. A death has a collapse or exit; the player can follow where it went.
19
+ If a pickup flies to the HUD, its arrival updates or pulses the correct counter once.
20
+
21
+ Schedule quiet beats between rewards. Music can add a layer at a higher stage and resolve on its
22
+ clear; a repeated attack should not restart the track or replay a sting every frame. Give every
23
+ sim event its declared answer, including failure, recovery and menu actions. At the peak, check
24
+ hero/threat silhouettes, score overlap and phone frame cost before adding another particle.
25
+
26
+ Prove timing in a short capture sequence with the input and event times alongside it. Stills can
27
+ prove composition; they cannot prove latency, rhythm, music or a satisfying loop. Use the blind
28
+ player's real-input report for control and comprehension, audio observations for sound, and
29
+ clips for motion review when the reviewer can actually watch them. Mark unavailable evidence
30
+ `not observed`. Compare the reduced-motion version too: it keeps readable poses, outlines and
31
+ sound while suppressing camera movement and full-screen flashes.
32
+
33
+ A frustrating death is a design finding: record the last safe decision, the warning and the
34
+ available escape. Repeated unavoidable first-wave deaths mean change the opening pressure,
35
+ controls or recovery rule. They are not fixed by a louder explosion.
@@ -0,0 +1,107 @@
1
+ # Feel recipes
2
+
3
+ Optional patterns for an action game. Choose the feedback the current brief needs; these examples
4
+ do not require sound, shake or flashing in every game. Adjust the event self-test to the declared
5
+ response, including intentional silence. Use timings for player readability, not screenshot scores.
6
+
7
+ A game `funtools init` made already has all of this: `src/feel.ts` (the table and its self-test),
8
+ `src/juice.ts` (flash, hitstop, capped shake, particles, the motion switch) and `src/sound.ts`
9
+ (buses, mute, ducking). Change their rows and numbers; use these recipes elsewhere.
10
+
11
+ Engine-free TypeScript; the renderer reads the numbers. Frame counts assume 60 fps and are turned
12
+ into seconds once, so a 120 Hz phone feels the same.
13
+
14
+ ## The table as data, and its self-test
15
+
16
+ The juice table in the design note and this file say the same thing. The self-test fails the moment
17
+ the sim emits an event nobody designed an answer for.
18
+
19
+ ```ts
20
+ // src/feel.ts
21
+ export type Feel = { visual: string; sfx: string; hitstop?: number; trauma?: number; fullFlash?: boolean };
22
+ export const FEEL: Record<string, Feel> = {
23
+ lit: { visual: 'hullFlash', sfx: 'bell_tick' },
24
+ wreck: { visual: 'spray10', sfx: 'timber_crack', hitstop: 6, trauma: 0.3 },
25
+ home: { visual: 'scorePop', sfx: 'harbour_chime' },
26
+ dawn: { visual: 'sunrise', sfx: 'dawn_sting' },
27
+ dark: { visual: 'lampOut', sfx: 'lamp_die', trauma: 0.45, fullFlash: true },
28
+ };
29
+
30
+ // wherever the hooks are exposed
31
+ exposeHooks({ selftests: [{
32
+ name: 'juice: every event has a visual and a sound',
33
+ run: () => EVENT_KINDS.every((k) => FEEL[k]?.visual && FEEL[k]?.sfx),
34
+ }] });
35
+ ```
36
+
37
+ `EVENT_KINDS` is the list the sim's `step()` can return, exported beside it.
38
+
39
+ ## Hitstop on the bodies, not the loop
40
+
41
+ ```ts
42
+ const FRAME = 1 / 60;
43
+ function hitstop(bodies: { freeze: number }[], frames: number) {
44
+ for (const b of bodies) b.freeze = Math.max(b.freeze, frames * FRAME);
45
+ }
46
+ // in the fixed step, per body: skip its motion while frozen; input, particles and HUD still run
47
+ if (body.freeze > 0) { body.freeze -= dt; continue; }
48
+ ```
49
+
50
+ ## Trauma shake with a cap
51
+
52
+ ```ts
53
+ const shake = { trauma: 0, max: 24, decay: 1.8, scale: 1 }; // scale: the player's setting, 0 under reduced motion
54
+ export const addTrauma = (t: number) => { shake.trauma = Math.min(0.6, shake.trauma + t); };
55
+ export function shakeOffset(dt: number, time: number) {
56
+ shake.trauma = Math.max(0, shake.trauma - shake.decay * dt);
57
+ const a = shake.trauma * shake.trauma * shake.max * shake.scale;
58
+ return { x: a * Math.sin(time * 47.3), y: a * Math.sin(time * 61.7 + 1.3) }; // applied to the camera only
59
+ }
60
+ ```
61
+
62
+ Keep the `addTrauma(` call sites few and named in the note; each is a moment you chose.
63
+
64
+ ## Squash around a base scale
65
+
66
+ ```ts
67
+ sprite.baseScale = 1; // set once, at load, from the art's fit
68
+ function squash(s: Squashable, sx: number, sy: number, frames: number) {
69
+ s.squash = { sx, sy, left: frames * FRAME, total: frames * FRAME };
70
+ }
71
+ // each frame: ease back to 1 and multiply, never assign an absolute scale
72
+ if (s.squash && (s.squash.left -= dt) <= 0) s.squash = undefined;
73
+ const k = s.squash ? easeOutBack(1 - s.squash.left / s.squash.total) : 1;
74
+ s.scale.set(s.baseScale * lerp(s.squash?.sx ?? 1, 1, k), s.baseScale * lerp(s.squash?.sy ?? 1, 1, k));
75
+ ```
76
+
77
+ ## Easing and smoothing
78
+
79
+ ```ts
80
+ export const easeOutCubic = (t: number) => 1 - (1 - t) ** 3;
81
+ export const easeOutBack = (t: number) => 1 + 2.7 * (t - 1) ** 3 + 1.7 * (t - 1) ** 2;
82
+ // a follow that feels the same at 30, 60 or 120 fps
83
+ export const follow = (v: number, target: number, sharpness: number, dt: number) =>
84
+ v + (target - v) * (1 - Math.exp(-sharpness * dt));
85
+ ```
86
+
87
+ ## A number that pops where it was earned
88
+
89
+ ```ts
90
+ function popNumber(layer: Container, text: string, x: number, y: number) {
91
+ const n = pool.take(text); // pooled text, tabular digits
92
+ n.position.set(x, y); n.alpha = 1; n.baseScale = 1.3;
93
+ tween(n, { y: y - 40, baseScale: 1, alpha: 0 }, 0.6, easeOutCubic, () => pool.give(n));
94
+ }
95
+ ```
96
+
97
+ ## Reduced motion
98
+
99
+ ```ts
100
+ const reduce = matchMedia('(prefers-reduced-motion: reduce)');
101
+ export const comfort = { shake: reduce.matches ? 0 : 1, fullFlash: !reduce.matches, particles: reduce.matches ? 0.5 : 1 };
102
+ reduce.addEventListener('change', (e) => Object.assign(comfort, { shake: e.matches ? 0 : 1, fullFlash: !e.matches, particles: e.matches ? 0.5 : 1 }));
103
+ // the settings screen writes the same object and saves it; the player's choice wins over the media query
104
+ ```
105
+
106
+ Hitstop, the struck body's own flash and every sound are never behind `comfort`: they are the
107
+ answer, not the motion.
@@ -0,0 +1,73 @@
1
+ # Game feel: motion, juice and haptics
2
+
3
+ Feel bugs pass every test. One soccer game's sim (the engine-free rules, stepped at a fixed 60 Hz) was correct, but 1 frame in 8 advanced 0 or 2 sim ticks, so the ball stalled and then jumped all match; the owner called it trembling. This skill gives each moment a measured answer and names the effects that were built, then removed.
4
+
5
+ ## Tools
6
+
7
+ Not in the kit: the Unity starter, coroutine tweens (a pop, a shake, eases), haptics by strength (iOS taptics through a native plugin, Android vibration effects, off with the player's setting), a frame-owner `GameDriver`, an interpolation blend with a trace flag, a near-miss tracker and the `moment_freq` check. Write those yourself:
8
+
9
+ - A frame owner: one `MonoBehaviour` that reads input, steps the sim at a fixed rate (`sim.Update(dt)`), sends events to presenters and draws with `Render(alpha)`.
10
+ - Interpolation and its trace: blend the drawn state between the last two ticks, and a dev-only launch flag that writes per-frame tick counts to a `trace.csv`.
11
+ - A near-miss detector in the engine-free core, so bots can count it.
12
+ - Frequency tests: bot batches in an Edit Mode test (`funtools unity run -- -nographics -runTests -testPlatform EditMode -testResults results.xml`, never with `-quit`: the test runner exits by itself), or `dotnet test` on an engine-free core, at 30 and 60 fps.
13
+
14
+ No game uses DOTween (coroutine tweens do). One game's views branch aims its camera with Cinemachine 6.6 and plays its intro on Timeline; the rest drive the camera in code. Nothing checks sliding feet or loop pops.
15
+
16
+ ## Procedure
17
+
18
+ 1. Render interpolated between the last two fixed sim ticks. Check: 100% of frames with steps other than 1 are blended, and drawn-ball jerk p99 is under a threshold (value not in the report). A teleported or thrown ball blends for 0.18 s.
19
+ 2. Tie per-frame effects to sim steps, or scale them by dt (`1 - Math.Pow(0.4, dt*60)`). Check: headless runs at 60 and 120 Hz give the same end-state hash and effect counts per sim second.
20
+ 3. Buffer the main action. The soccer game's kick has a 200 ms buffer (`BufferMs`): a press arms it and the foot swings when the ball arrives.
21
+ 4. Answer each moment from the table.
22
+
23
+ | Moment | Answer | Duration |
24
+ |---|---|---|
25
+ | Button press | pop 0.18, light haptic, click | 0.22 s |
26
+ | Hit or smash | shake 0.08, particles, SFX pitch ±6%, medium or heavy haptic | 0.25 s shake |
27
+ | Pickup, coins | merged pop-ups, fly-to-counter | within 0.15 s |
28
+ | Callout | slam in from 1.4×; not replaced within 0.6 s | 0.6–0.8 s |
29
+ | Near miss | small callout, camera nudge, reaction pose, crowd ooh, haptic | 0.8 s; sound gate 600 ms |
30
+ | Win | 2 confetti waves, card pop, score counts up | about 1 s |
31
+ | Lose | "So close!" at 3 or fewer pieces left; no slow-mo | not in the report |
32
+ | Goal | net bulge, goal shake, the only big callout | no slow-mo |
33
+
34
+ 5. Map haptics by strength: a web vibration of 30 ms or more is heavy, 14 ms or more medium, else light. Throttle to 80–90 ms and merge pulses inside 120 ms into the strongest, so a light tap does not swallow a heavy one.
35
+ 6. Keep each tween's true rest scale (key it by Transform); otherwise a second pop records a mid-pop scale as the base.
36
+ 7. Draw particles from fixed pools; the pool is the budget. One 2D game: 2 quad batches, 600 particles. The soccer game: 220 sprites, 120 confetti, 14 rings in 6 batched meshes. At most 120 spawns per second, oldest recycled; ambient at most 40 live.
37
+ 8. Frequency-test every juice event with bot batches at 30 and 60 fps. The soccer game's targets: own goals at most 0.3 per match, misses and blocks 2–5 per 90 s.
38
+ 9. Keep in-match overlays minimal; do not freeze or slow play while the clock runs.
39
+ 10. Measure a camera change against the problem it is meant to fix, in frames.
40
+ 11. Honour the effects setting: shake is skipped when "Shake & flashes" is off, and the kickoff dolly (about 1/3 closer over the 1.5 s countdown) when screen effects are off.
41
+ 12. Animate by role:
42
+
43
+ | Role | How | Numbers |
44
+ |---|---|---|
45
+ | Hero | code; ports copy the web's procedural rig | pose tweens 0.22–0.4 s |
46
+ | Rigged cast (one game only) | Animator blend trees | transitions 0.12–0.15 s, exit time 0.9 |
47
+ | Crowd | vertex-animation textures, GPU instancing | 1,800 units in 18 draws |
48
+ | UI | coroutine tweens | defaults above |
49
+
50
+ Root motion is off everywhere: the sim owns positions.
51
+ 13. Show the owner a zoomed close-up on one asset before rolling out a style.
52
+ 14. Finish with a person playing on a phone: the soccer game's feel bugs came from the owner's TestFlight play.
53
+
54
+ ## Worked example
55
+
56
+ A soccer game (a 3D port from three.js):
57
+
58
+ 1. A dev trace flag wrote `trace.csv`: at a 60 Hz sim, 1 frame in 8 (12%) advanced 0 or 2 ticks.
59
+ 2. A blend draws every frame between the last two ticks.
60
+ 3. A bot batch counted per match: OWN GOAL! 2.1 times (about 30% of goals), goal slow-mo 14 times.
61
+ 4. Own-goal detection depended on frame rate: 0.02 per match at 60 fps, 0.25 at 30 fps.
62
+ 5. The near-miss tracker's cooldown gives one moment per play; misses and blocks measured 4.2 per 90 s. Slow-mo was removed.
63
+
64
+ ## Common mistakes
65
+
66
+ - Slow-mo on goals: fired 14 times a match, read as lag, and shipped in every TestFlight build until 1 Oct.
67
+ - A follow camera showed both goals only 18–40% of the time; reverted to a fixed full-pitch view. With the next item, two rounds lost.
68
+ - A camera lift for barks (a 2D game): changed 0 covered frames (2–8 of 165 either way) and added a 25–69 pt view shift; PR #11 was reverted in PR #12.
69
+ - A sticker-border shader: a 2D mock-up style put on dogs, ball and goals before a close-up was shown. It did not transfer to 3D, broke static merging (dozens more draws), cost about 3 builds and was removed: "it was much better before". Four more decorations were reverted the same way in 24 h.
70
+ - A 1.6 s freeze after goals read as "freezy".
71
+ - Effects per render frame: at 120 Hz one game's bobs and sparkles ran twice as fast.
72
+ - Concurrent pop tweens on one Transform: the cash pill grew huge (game not named).
73
+ - "44 of 304 kicks connected" (the soccer game) is cited for this skill; its cause and fix are not in the report.
@@ -0,0 +1,113 @@
1
+ ---
2
+ name: funpixel-game-logic
3
+ description: Use when writing a game's rules, levels, scoring, escalation or balance, or when a run is too short, too easy or too thin to replay. Covers seeded engine-free logic with tests, solvable levels, balance bots and depth (endless, a local best). In Unity (rules that run in tests with no scene), follow references/unity.md.
4
+ ---
5
+
6
+ # Game logic outside the renderer
7
+
8
+ The rules are what players master. Threes spent 14 months on one rule; Brotato publishes its wave
9
+ schedule; Slay the Spire shows every enemy's next move. Rules you can read, tune and play a
10
+ thousand times in a second are where depth comes from. Kept in plain TypeScript (no engine, DOM or
11
+ Preact), seeded and tested, they can be balanced by a bot and ported: two of our web games went
12
+ native in about a day each, and the ports found four bugs the tests had missed (research 12).
13
+
14
+ ## Tools
15
+
16
+ - `probe` runs the game's `__FPX_SELFTEST__` entries and its `__FPX_LEVELS__` solver on
17
+ Funpixel's browsers, as `npx @funpixel/tools verify` does locally: a failed invariant or an
18
+ unsolvable level shows as a FAIL.
19
+ - `check_plan` flags a design note whose escalation is only speed.
20
+ - `npm test` runs the logic's tests (`node --test test/*.test.ts` in a `funtools init` game);
21
+ `npx @funpixel/tools test` records the run for the Stop hook; `test --node` runs the files with
22
+ Node alone when npm test cannot start (a bundler missing from PATH).
23
+ - `npx @funpixel/tools sim` plays the rules with five simple players (idle, naive, taught,
24
+ skilled, novice) and names standing still that wins, a missing skill ceiling and the best
25
+ staged moment ([references/probes.md](references/probes.md)).
26
+ - `npx @funpixel/tools reach` fills each level kept as data (tiles or the 3D spec) from its spawn
27
+ with the game's own jump and names every exit, pickup or room nothing reaches, with the gap in
28
+ the way ([references/levels.md](references/levels.md)).
29
+ - `npx @funpixel/tools smoke` warns when a file in `src/rules.ts`, `src/sim/`, `src/logic/` or
30
+ `src/rules/` imports an engine, Preact or the DOM, calls `Math.random()`, or decides a hit from
31
+ display objects' bounds. Each warning names a rule the renderer now owns; moving it into `src/sim/`
32
+ with a test is the usual answer.
33
+
34
+ ## One shape that works
35
+
36
+ 1. **`src/sim/` imports nothing visual** (no `pixi.js`, `three`, `preact` or `window`). State is plain
37
+ data; `step(state, input, dt)` advances it and returns events as data
38
+ (`{ type: 'hit', target, hp }`). The renderer and the audio read state and events and leave the
39
+ state alone, so a test can drive the sim with no screen.
40
+ 2. **One seeded random source, passed in.** A `Math.random()` in the sim means a daily seed stops
41
+ reproducing its level and a bug cannot be replayed:
42
+ ```ts
43
+ export function mulberry32(seed: number) {
44
+ return () => { seed |= 0; seed = (seed + 0x6d2b79f5) | 0; let t = Math.imul(seed ^ (seed >>> 15), 1 | seed);
45
+ t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t; return ((t ^ (t >>> 14)) >>> 0) / 4294967296; };
46
+ }
47
+ ```
48
+ Cosmetic randomness (particles, dust) can use `Math.random()`, since it does not shift gameplay.
49
+ `__FPX_STATE__()` exposes `seed`.
50
+ 3. **Rules as numbered, named constants** (`R1 jump height 3.2 tiles`, `R2 coyote 80 ms`) in
51
+ `src/sim/rules.ts`, listed in the design note, each proved by a test named after it
52
+ (`R2: a jump 70 ms after leaving a ledge still fires`). One game's rule ids let traversal tests
53
+ catch a ledge with 64 px of headroom (research 12); a change then moves the note, the constant and
54
+ the test together.
55
+ 4. **Determinism as a test.** Same seed and inputs, same state hash; a tiebreaker on every sort and a
56
+ fixed physics step keep it true.
57
+ 5. **Tests beside the rules, outside `src`:** `test/*.test.ts`. The platform type-checks only `src`,
58
+ so test imports stay out of its build.
59
+
60
+ ## Levels
61
+
62
+ Levels kept as data (a file or seed each) can be re-solved after every edit. Generating backwards
63
+ from a solved state makes boards solvable by construction. A breadth-first solver in
64
+ `__FPX_LEVELS__` lets verify prove every level solvable and chart the curve. Jump reach, safe
65
+ spawns, hard levels on a rhythm: [references/levels.md](references/levels.md). Many levels from
66
+ hand-made anchors plus a seeded recipe the bots check: [references/content-at-scale.md](references/content-at-scale.md).
67
+
68
+ ## Escalation changes what the player does
69
+
70
+ Faster alone leaves the game the same, only harder to read, and `check_plan` flags a ramp that is
71
+ speed alone. One game's review found its ramp invisible: the area indicator was computed and not
72
+ drawn. A ramp as a list of what changes, new things one at a time, waves with rests, and a ramp the
73
+ player can see: [references/escalation.md](references/escalation.md).
74
+
75
+ ## Depth and replay
76
+
77
+ A finished level still loses to the genre hit on depth: run length, what happens per minute,
78
+ pressure early, and a reason for run two. [references/depth.md](references/depth.md) has run
79
+ lengths by genre, density targets, score attack, endless, daily seeds and a local best, each as an
80
+ option with its reason; the bots below measure them.
81
+
82
+ ## Balance before art
83
+
84
+ A headless loop over `src/sim` plays thousands of runs in seconds, where a browser session plays
85
+ one, so tuning from bots, a frozen novice floor, a bot that finishes the level in `npm test` (in
86
+ one game it caught a speed change that starved a route), a blind phone player, a parameter sweep
87
+ and a hunt for what bots never do all come cheap once the rules stand alone. Each, with its reason
88
+ and where it came from: [references/balance.md](references/balance.md); the five probe players and
89
+ `sim`: [references/probes.md](references/probes.md).
90
+
91
+ ## Worked example
92
+
93
+ A sort puzzle (tap a tube, tap a target, matching colours merge):
94
+ 1. `src/sim/tubes.ts`: `type Board = number[][]`, `legalMoves(b)`, `apply(b, m)`, `isSolved(b)`.
95
+ 2. `src/sim/generate.ts`: from a solved board of `R3 = 4` colours, 40 random reverse moves from
96
+ `mulberry32(seed)`, rejecting boards the solver finishes in under `R5 = 6` moves.
97
+ 3. `test/tubes.test.ts`: `R1: a move onto a different colour is refused`;
98
+ `generate(7) twice gives the same board`; `levels 1-50 are solvable and mostly get harder`.
99
+ 4. `exposeHooks({ levels: { count: 50, solve } })`: verify solves all 50 and reports a rising curve.
100
+ 5. The renderer draws the sim's `Board` and plays a rising pitch per merge.
101
+
102
+ ## Common mistakes
103
+
104
+ - A `Math.random()` in the sim: the daily seed no longer reproduces the level, and bugs cannot be
105
+ replayed.
106
+ - Rules read from sprite positions: now the logic cannot be tested.
107
+ - A self-test that assumes the starting state: checks run first and change it.
108
+ - Tuning difficulty by playing it yourself five times; a bot plays thousands.
109
+ - Tests that re-implement the rule they test; asserting the outcome of a scripted input catches more.
110
+
111
+ Where this comes from: our own games (rule ids, bots, probes, solvable-by-construction; research
112
+ 12) and the hits in research 18; procedural and puzzle habits began in our platform's genre notes;
113
+ review and escalation habits partly from Claude Code Game Studios (MIT).
@@ -0,0 +1,88 @@
1
+ # Balance before art
2
+
3
+ Tuning by feel after the art is in means every change repaints something. With the rules in
4
+ `src/sim/` and no renderer behind them, the numbers can be settled first, by bots, in seconds.
5
+ Each practice below is an option with its reason; pick the ones the game needs and write what you
6
+ chose into the design note.
7
+
8
+ ## Simulate before tuning
9
+
10
+ A headless loop over `src/sim` plays thousands of runs in seconds, where a browser session plays
11
+ one. Five of your own plays are an anecdote; a thousand bot runs are a distribution, and the worst
12
+ case in it is usually the one a player meets.
13
+
14
+ ## Players beside the sharp bot
15
+
16
+ A sharp bot tests exploits and mastery. It says little about a newcomer, so keep others beside it:
17
+
18
+ - **A novice, for onboarding.** It reacts slowly, hesitates and misses, and uses only what a player
19
+ can see. Freezing its policy and seeds before tuning keeps the floor from moving with the
20
+ balance. For first-stage survival games, 80 of 100 fixed seeds that both survive and score is
21
+ the floor this kit's probes use; other genres name their own first success and deadline.
22
+ - **An idle one, a naive one and one that does what the tutorial teaches.** They catch standing
23
+ still that wins, a missing skill ceiling and a tutorial that teaches a losing line
24
+ ([probes.md](probes.md) has each one's story and `npx @funpixel/tools sim`, which runs them).
25
+
26
+ Saving the counts, the policy, the failing seeds and deaths by cause makes the next change
27
+ comparable. Rerunning after each balance change, then on held-out seeds, shows whether the tuning
28
+ fitted the seeds or the game. This floor is a regression check: it predicts no human success rate.
29
+
30
+ ## A bot that finishes the level, as a test
31
+
32
+ `sim`'s probes describe and warn. A bot that plays the whole level or chapter inside `npm test`,
33
+ and fails the suite when it no longer reaches the end, is the other half: a balance change that
34
+ makes the level unfinishable turns the tests red at once. A `funtools init` game starts with one
35
+ (`rules.test.ts`: `botRound` wins a round on seed 5); a longer game grows it. This is a lesson from
36
+ one game (a 3D horror chapter, September 2026, gathered by its lane), and no
37
+ first-try action game has tested it yet.
38
+
39
+ Its chapter test (`chapter.test.ts`, "Contract H", named after the GDD's numbers) carried:
40
+
41
+ - `median_bot_finishes` for each of two routes (seal every weldable door, or fight through) on five
42
+ seeds. The bot plays through the same intent a thumb produces, with a human reaction budget.
43
+ - `weld_everything_bot_reaches_exit`: the route that welds everything finishes, with both welds.
44
+ - `gas_ge_1_3x_median`: the chapter lays out at least 1.3 times the gas the worst of six bot runs
45
+ spends, so the shared resource has slack a real player needs.
46
+ - `all_rooms_reach_exit_by_duct`: with every weldable door welded, every walkable cell still
47
+ reaches the exit, so no choice can soft-lock the chapter.
48
+ - `same_seed_same_inputs_same_events`: a bot's intents replayed on a fresh sim give the same events
49
+ and state (what lets a run be replayed and filmed: skill `funpixel-game-spine`,
50
+ `references/replay.md`).
51
+
52
+ **What it caught.** A mid-build request ("make her faster") raised walk and run from 2.5 / 4.5 to
53
+ 2.7 / 4.8 m/s, and it quietly broke the weld route: the bot rushed into extra fights, spent gas on
54
+ them and could not afford the second weld. The finish test failed; the team settled on 2.5 / 4.5.
55
+ Our reading: a faster hero feels like an improvement in the hand, so playing it would not have
56
+ shown the cost (the movement table is in skill `funpixel-game-feel`, `references/contact.md`).
57
+
58
+ Choices that made it useful, each an option:
59
+
60
+ - **The failure message is the bot's trace** (`expect(r.done, trace.join(' | '))`), so a red test
61
+ says where the run stopped and what the bot was after.
62
+ - **The tests keep one plain bot, fixed.** A keen `fighter` style that uses every weapon exists for
63
+ films only; changing the regression bot's policy moves the bar it checks, the same reason the
64
+ novice's policy is frozen above.
65
+ - **Routes live with the level data**, with a fallback route (the gas, each objective top to bottom,
66
+ the exit) for a level that has none.
67
+
68
+ A bot that finishes proves the level can be finished by that bot. It says nothing about whether a
69
+ person finds the way or enjoys it; that is the blind phone player's job, below.
70
+
71
+ ## A blind phone player, judged apart
72
+
73
+ A blind phone player tells three things apart: whether it found the goal, whether it could operate
74
+ the controls, and whether it made progress. Expert wins do not cancel that player's confusion or
75
+ deaths, since the expert already knows what the newcomer is missing. When the blind player
76
+ struggles, controls, safe introductions and warning time are usually the cause; cutting every
77
+ enemy's health hides the problem and flattens the game for everyone else.
78
+
79
+ ## Sweep one parameter
80
+
81
+ Sweeping one parameter and writing the table (cost growth 1.10 against finish time, say) turns a
82
+ guess into a choice: pick from the table, where the curve bends, rather than by feel.
83
+
84
+ ## What bots never do
85
+
86
+ Bots play the game as written, so they miss a softlock only a human reaches and an offline payout
87
+ that finishes the game overnight. Anything that accrues while the game is closed is worth a cap, or the first return
88
+ visit ends the game.