@funpixel/tools 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @funpixel/tools might be problematic. Click here for more details.

Files changed (2420) 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 +2918 -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 +605 -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 +95 -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 +329 -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/THIRD_PARTY_NOTICES.md +75 -0
  588. package/plugins/claude/.claude-plugin/plugin.json +19 -0
  589. package/plugins/claude/.mcp.json +10 -0
  590. package/plugins/claude/LICENSE +115 -0
  591. package/plugins/claude/README.md +15 -0
  592. package/plugins/claude/THIRD_PARTY_NOTICES.md +75 -0
  593. package/plugins/claude/agents/art-director.md +54 -0
  594. package/plugins/claude/agents/audio-director.md +51 -0
  595. package/plugins/claude/agents/critic.md +113 -0
  596. package/plugins/claude/agents/lane.md +38 -0
  597. package/plugins/claude/agents/level-designer.md +45 -0
  598. package/plugins/claude/agents/mobile-qa.md +71 -0
  599. package/plugins/claude/agents/player.md +144 -0
  600. package/plugins/claude/agents/qa-lead.md +52 -0
  601. package/plugins/claude/commands/first-look.md +59 -0
  602. package/plugins/claude/commands/flow.md +50 -0
  603. package/plugins/claude/commands/lanes.md +38 -0
  604. package/plugins/claude/commands/mobile-qa.md +28 -0
  605. package/plugins/claude/commands/new.md +94 -0
  606. package/plugins/claude/commands/playtest.md +66 -0
  607. package/plugins/claude/commands/publish.md +23 -0
  608. package/plugins/claude/commands/smoke-build.md +25 -0
  609. package/plugins/claude/commands/verify.md +20 -0
  610. package/plugins/claude/hooks/brief.md +135 -0
  611. package/plugins/claude/hooks/critic-receipts.mjs +86 -0
  612. package/plugins/claude/hooks/durable.mjs +56 -0
  613. package/plugins/claude/hooks/fence.mjs +30 -0
  614. package/plugins/claude/hooks/floors.mjs +181 -0
  615. package/plugins/claude/hooks/flow.mjs +154 -0
  616. package/plugins/claude/hooks/front-door.mjs +68 -0
  617. package/plugins/claude/hooks/guidance.json +3 -0
  618. package/plugins/claude/hooks/hints.mjs +183 -0
  619. package/plugins/claude/hooks/hooks.json +62 -0
  620. package/plugins/claude/hooks/lib.mjs +362 -0
  621. package/plugins/claude/hooks/memory.mjs +92 -0
  622. package/plugins/claude/hooks/mobile-qa.mjs +43 -0
  623. package/plugins/claude/hooks/note.mjs +63 -0
  624. package/plugins/claude/hooks/nudge.mjs +98 -0
  625. package/plugins/claude/hooks/pipeline.mjs +207 -0
  626. package/plugins/claude/hooks/prompt.mjs +51 -0
  627. package/plugins/claude/hooks/quality.mjs +310 -0
  628. package/plugins/claude/hooks/reach.mjs +93 -0
  629. package/plugins/claude/hooks/scope.mjs +44 -0
  630. package/plugins/claude/hooks/session-log.mjs +101 -0
  631. package/plugins/claude/hooks/session-start.mjs +194 -0
  632. package/plugins/claude/hooks/skill-names.json +19 -0
  633. package/plugins/claude/hooks/stop-gate.mjs +303 -0
  634. package/plugins/claude/hooks/vendor/direct/round.mjs +81 -0
  635. package/plugins/claude/hooks/vendor/find/names.mjs +46 -0
  636. package/plugins/claude/hooks/vendor/firstlook/set.mjs +219 -0
  637. package/plugins/claude/hooks/vendor/flow/flow.mjs +456 -0
  638. package/plugins/claude/hooks/vendor/flow/look.mjs +140 -0
  639. package/plugins/claude/hooks/vendor/gdd/book.mjs +484 -0
  640. package/plugins/claude/hooks/vendor/gdd/chapters.mjs +72 -0
  641. package/plugins/claude/hooks/vendor/gdd/doc.mjs +33 -0
  642. package/plugins/claude/hooks/vendor/gdd/levelmap.mjs +429 -0
  643. package/plugins/claude/hooks/vendor/gdd/rubric.mjs +251 -0
  644. package/plugins/claude/hooks/vendor/gdd/worth.mjs +508 -0
  645. package/plugins/claude/hooks/vendor/lanes/fence.mjs +109 -0
  646. package/plugins/claude/hooks/vendor/lanes/lanes.mjs +356 -0
  647. package/plugins/claude/hooks/vendor/lanes/union.mjs +63 -0
  648. package/plugins/claude/hooks/vendor/lessons/motifs.mjs +98 -0
  649. package/plugins/claude/hooks/vendor/lessons/store.mjs +57 -0
  650. package/plugins/claude/hooks/vendor/look/made-of.mjs +243 -0
  651. package/plugins/claude/hooks/vendor/look/roles.mjs +110 -0
  652. package/plugins/claude/hooks/vendor/memory/decisions.mjs +139 -0
  653. package/plugins/claude/hooks/vendor/memory/journal.mjs +109 -0
  654. package/plugins/claude/hooks/vendor/owner/bar.mjs +286 -0
  655. package/plugins/claude/hooks/vendor/pipeline/pipeline.mjs +930 -0
  656. package/plugins/claude/hooks/vendor/playtest/keep.mjs +111 -0
  657. package/plugins/claude/hooks/vendor/playtest/stuck.mjs +48 -0
  658. package/plugins/claude/hooks/vendor/progress/holds.mjs +107 -0
  659. package/plugins/claude/hooks/vendor/progress/progress.mjs +301 -0
  660. package/plugins/claude/hooks/vendor/sim/judge.mjs +241 -0
  661. package/plugins/claude/hooks/vendor/spec/rooms.mjs +189 -0
  662. package/plugins/claude/hooks/vendor/spec/tunables.mjs +75 -0
  663. package/plugins/claude/hooks/vendor/stage/harnessignore.mjs +91 -0
  664. package/plugins/claude/hooks/vendor/stage/stage.mjs +58 -0
  665. package/plugins/claude/hooks/vendor/status/board.mjs +173 -0
  666. package/plugins/claude/hooks/vendor/status/file.mjs +113 -0
  667. package/plugins/claude/hooks/vendor/studio/forks.mjs +94 -0
  668. package/plugins/claude/hooks/vendor/studio/pitch.mjs +295 -0
  669. package/plugins/claude/hooks/vendor/verify/fingerprint.mjs +73 -0
  670. package/plugins/claude/hooks/vendor/verify/reads.mjs +33 -0
  671. package/plugins/claude/hooks/vendor/wow/picks.mjs +75 -0
  672. package/plugins/claude/skills/3d/SKILL.md +89 -0
  673. package/plugins/claude/skills/3d/references/bake-off.md +48 -0
  674. package/plugins/claude/skills/3d/references/bench.md +103 -0
  675. package/plugins/claude/skills/3d/references/budgets.md +48 -0
  676. package/plugins/claude/skills/3d/references/characters.md +67 -0
  677. package/plugins/claude/skills/3d/references/concept-image.md +47 -0
  678. package/plugins/claude/skills/3d/references/engine-targets.md +31 -0
  679. package/plugins/claude/skills/3d/references/hero-route.md +104 -0
  680. package/plugins/claude/skills/3d/references/level-spec.md +109 -0
  681. package/plugins/claude/skills/3d/references/levels.md +84 -0
  682. package/plugins/claude/skills/3d/references/light-and-places.md +141 -0
  683. package/plugins/claude/skills/3d/references/models.md +111 -0
  684. package/plugins/claude/skills/3d/references/painted-target.md +184 -0
  685. package/plugins/claude/skills/3d/references/reading.md +41 -0
  686. package/plugins/claude/skills/3d/references/skin.md +85 -0
  687. package/plugins/claude/skills/3d/references/skyboxes.md +65 -0
  688. package/plugins/claude/skills/3d/references/textures.md +71 -0
  689. package/plugins/claude/skills/3d/references/three-loading.md +199 -0
  690. package/plugins/claude/skills/3d/references/unity.md +78 -0
  691. package/plugins/claude/skills/art/SKILL.md +104 -0
  692. package/plugins/claude/skills/art/references/2d-assets.md +108 -0
  693. package/plugins/claude/skills/art/references/animation.md +126 -0
  694. package/plugins/claude/skills/art/references/cast.md +73 -0
  695. package/plugins/claude/skills/art/references/characters.md +49 -0
  696. package/plugins/claude/skills/art/references/cost.md +107 -0
  697. package/plugins/claude/skills/art/references/effects.md +85 -0
  698. package/plugins/claude/skills/art/references/frames.md +87 -0
  699. package/plugins/claude/skills/art/references/judging-frames.md +64 -0
  700. package/plugins/claude/skills/art/references/look.md +102 -0
  701. package/plugins/claude/skills/art/references/measure.md +119 -0
  702. package/plugins/claude/skills/art/references/pipeline.md +185 -0
  703. package/plugins/claude/skills/art/references/pixi.md +277 -0
  704. package/plugins/claude/skills/art/references/planes.md +27 -0
  705. package/plugins/claude/skills/art/references/prompts.md +171 -0
  706. package/plugins/claude/skills/art/references/sheets.md +141 -0
  707. package/plugins/claude/skills/art/references/style-file.md +39 -0
  708. package/plugins/claude/skills/art/references/three.md +232 -0
  709. package/plugins/claude/skills/art/references/ui.md +163 -0
  710. package/plugins/claude/skills/art/references/unity.md +78 -0
  711. package/plugins/claude/skills/art/references/wiring.md +41 -0
  712. package/plugins/claude/skills/audio/SKILL.md +92 -0
  713. package/plugins/claude/skills/audio/references/adaptive-music.md +204 -0
  714. package/plugins/claude/skills/audio/references/engine.md +78 -0
  715. package/plugins/claude/skills/audio/references/measure.md +101 -0
  716. package/plugins/claude/skills/audio/references/unity.md +73 -0
  717. package/plugins/claude/skills/feedback/SKILL.md +120 -0
  718. package/plugins/claude/skills/feedback/references/memory.md +99 -0
  719. package/plugins/claude/skills/game-feel/SKILL.md +104 -0
  720. package/plugins/claude/skills/game-feel/references/contact.md +110 -0
  721. package/plugins/claude/skills/game-feel/references/measure.md +125 -0
  722. package/plugins/claude/skills/game-feel/references/motion.md +134 -0
  723. package/plugins/claude/skills/game-feel/references/payoffs.md +35 -0
  724. package/plugins/claude/skills/game-feel/references/recipes.md +107 -0
  725. package/plugins/claude/skills/game-feel/references/unity.md +78 -0
  726. package/plugins/claude/skills/game-logic/SKILL.md +113 -0
  727. package/plugins/claude/skills/game-logic/references/balance.md +88 -0
  728. package/plugins/claude/skills/game-logic/references/content-at-scale.md +147 -0
  729. package/plugins/claude/skills/game-logic/references/depth.md +89 -0
  730. package/plugins/claude/skills/game-logic/references/escalation.md +41 -0
  731. package/plugins/claude/skills/game-logic/references/levels.md +61 -0
  732. package/plugins/claude/skills/game-logic/references/probes.md +122 -0
  733. package/plugins/claude/skills/game-logic/references/unity.md +108 -0
  734. package/plugins/claude/skills/game-spine/SKILL.md +118 -0
  735. package/plugins/claude/skills/game-spine/references/camera.md +94 -0
  736. package/plugins/claude/skills/game-spine/references/multiplayer.md +101 -0
  737. package/plugins/claude/skills/game-spine/references/patterns.md +103 -0
  738. package/plugins/claude/skills/game-spine/references/performance.md +96 -0
  739. package/plugins/claude/skills/game-spine/references/pixi.md +26 -0
  740. package/plugins/claude/skills/game-spine/references/replay.md +102 -0
  741. package/plugins/claude/skills/game-spine/references/room-api.md +63 -0
  742. package/plugins/claude/skills/game-spine/references/room-modes.md +40 -0
  743. package/plugins/claude/skills/game-spine/references/sdk.md +114 -0
  744. package/plugins/claude/skills/game-spine/references/three.md +62 -0
  745. package/plugins/claude/skills/gdd/SKILL.md +116 -0
  746. package/plugins/claude/skills/gdd/references/as-built.md +40 -0
  747. package/plugins/claude/skills/gdd/references/design-measures.md +24 -0
  748. package/plugins/claude/skills/gdd/references/design-note.md +88 -0
  749. package/plugins/claude/skills/gdd/references/experience.md +92 -0
  750. package/plugins/claude/skills/gdd/references/first-look.md +226 -0
  751. package/plugins/claude/skills/gdd/references/floors.md +62 -0
  752. package/plugins/claude/skills/gdd/references/frame.md +75 -0
  753. package/plugins/claude/skills/gdd/references/gameplay-contract.md +81 -0
  754. package/plugins/claude/skills/gdd/references/gdd-template.md +417 -0
  755. package/plugins/claude/skills/gdd/references/genre-card.md +109 -0
  756. package/plugins/claude/skills/gdd/references/genre-platformer.md +159 -0
  757. package/plugins/claude/skills/gdd/references/genre-puzzle.md +145 -0
  758. package/plugins/claude/skills/gdd/references/genre-racing.md +137 -0
  759. package/plugins/claude/skills/gdd/references/genre-rpg.md +125 -0
  760. package/plugins/claude/skills/gdd/references/genre-shooter.md +128 -0
  761. package/plugins/claude/skills/gdd/references/genre-simulation.md +112 -0
  762. package/plugins/claude/skills/gdd/references/genre-strategy.md +116 -0
  763. package/plugins/claude/skills/gdd/references/genre-survival.md +122 -0
  764. package/plugins/claude/skills/gdd/references/in-the-loop.md +106 -0
  765. package/plugins/claude/skills/gdd/references/invent-first.md +131 -0
  766. package/plugins/claude/skills/gdd/references/level-and-fun.md +112 -0
  767. package/plugins/claude/skills/gdd/references/pages.md +50 -0
  768. package/plugins/claude/skills/gdd/references/plan-at-size.md +140 -0
  769. package/plugins/claude/skills/gdd/references/production-tiers.md +117 -0
  770. package/plugins/claude/skills/gdd/references/sections.md +148 -0
  771. package/plugins/claude/skills/gdd/references/spec-folder.md +131 -0
  772. package/plugins/claude/skills/gdd/references/start.md +110 -0
  773. package/plugins/claude/skills/gdd/references/starters.md +175 -0
  774. package/plugins/claude/skills/gdd/references/the-path.md +134 -0
  775. package/plugins/claude/skills/gdd/references/track.md +29 -0
  776. package/plugins/claude/skills/gdd/references/world-and-identity.md +165 -0
  777. package/plugins/claude/skills/gdd/references/worth.md +74 -0
  778. package/plugins/claude/skills/mobile-ui/SKILL.md +107 -0
  779. package/plugins/claude/skills/mobile-ui/references/contrast.md +123 -0
  780. package/plugins/claude/skills/mobile-ui/references/hud-and-title.md +108 -0
  781. package/plugins/claude/skills/mobile-ui/references/hud-genres.md +124 -0
  782. package/plugins/claude/skills/mobile-ui/references/phone-check.md +156 -0
  783. package/plugins/claude/skills/mobile-ui/references/recipes.md +279 -0
  784. package/plugins/claude/skills/mobile-ui/references/restyle-ui.md +229 -0
  785. package/plugins/claude/skills/mobile-ui/references/unity.md +61 -0
  786. package/plugins/claude/skills/publishing/SKILL.md +109 -0
  787. package/plugins/claude/skills/publishing/references/compose.md +113 -0
  788. package/plugins/claude/skills/publishing/references/motion.md +120 -0
  789. package/plugins/claude/skills/publishing/references/networks.md +75 -0
  790. package/plugins/claude/skills/publishing/references/other-hosts.md +65 -0
  791. package/plugins/claude/skills/publishing/references/playable-ad.md +90 -0
  792. package/plugins/claude/skills/publishing/references/server-build.md +85 -0
  793. package/plugins/claude/skills/publishing/references/store-shots.md +85 -0
  794. package/plugins/claude/skills/publishing/references/trailer.md +55 -0
  795. package/plugins/claude/skills/publishing/references/what-ships.md +30 -0
  796. package/plugins/claude/skills/store/SKILL.md +81 -0
  797. package/plugins/claude/skills/store/references/app-store.md +73 -0
  798. package/plugins/claude/skills/store/references/google-play.md +141 -0
  799. package/plugins/claude/skills/store/references/ios-release.md +64 -0
  800. package/plugins/claude/skills/store/references/money.md +66 -0
  801. package/plugins/claude/skills/store/references/purchases-and-review.md +74 -0
  802. package/plugins/claude/skills/store/references/readiness-page.md +24 -0
  803. package/plugins/claude/skills/store/references/readiness.md +107 -0
  804. package/plugins/claude/skills/store/references/steam.md +38 -0
  805. package/plugins/claude/skills/store/references/unity-store.md +58 -0
  806. package/plugins/claude/skills/store/references/web-portals.md +43 -0
  807. package/plugins/claude/skills/unity-game/SKILL.md +110 -0
  808. package/plugins/claude/skills/unity-game/references/agent-ops.md +54 -0
  809. package/plugins/claude/skills/unity-game/references/fixes.md +40 -0
  810. package/plugins/claude/skills/unity-game/references/from-a-web-game.md +108 -0
  811. package/plugins/claude/skills/unity-game/references/handing-off.md +42 -0
  812. package/plugins/claude/skills/unity-game/references/performance.md +63 -0
  813. package/plugins/claude/skills/unity-game/references/probe.md +80 -0
  814. package/plugins/claude/skills/unity-game/references/shared-mac.md +121 -0
  815. package/plugins/claude/skills/unity-game/references/studio-packages.md +127 -0
  816. package/plugins/claude/skills/unity-game/references/traps.md +109 -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 +73 -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 +78 -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 +50 -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 +134 -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 +64 -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 +58 -0
  1101. package/plugins/codex/skills/funpixel-store/references/web-portals.md +43 -0
  1102. package/plugins/codex/skills/funpixel-unity-game/SKILL.md +110 -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 +63 -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/studio-packages.md +127 -0
  1112. package/plugins/codex/skills/funpixel-unity-game/references/traps.md +109 -0
  1113. package/plugins/codex/skills/funpixel-verify/SKILL.md +109 -0
  1114. package/plugins/codex/skills/funpixel-verify/agents/openai.yaml +12 -0
  1115. package/plugins/codex/skills/funpixel-verify/references/actors.md +94 -0
  1116. package/plugins/codex/skills/funpixel-verify/references/bar.md +62 -0
  1117. package/plugins/codex/skills/funpixel-verify/references/checks.md +69 -0
  1118. package/plugins/codex/skills/funpixel-verify/references/experience.md +67 -0
  1119. package/plugins/codex/skills/funpixel-verify/references/eyes.md +54 -0
  1120. package/plugins/codex/skills/funpixel-verify/references/fidelity.md +126 -0
  1121. package/plugins/codex/skills/funpixel-verify/references/hit-bar.md +31 -0
  1122. package/plugins/codex/skills/funpixel-verify/references/journeys.md +77 -0
  1123. package/plugins/codex/skills/funpixel-verify/references/mobile-qa.md +123 -0
  1124. package/plugins/codex/skills/funpixel-verify/references/playtest.md +161 -0
  1125. package/plugins/codex/skills/funpixel-verify/references/review.md +105 -0
  1126. package/plugins/codex/skills/funpixel-verify/references/rubric.md +67 -0
  1127. package/plugins/codex/skills/funpixel-verify/references/scenes.md +49 -0
  1128. package/plugins/codex/skills/funpixel-verify/references/unity.md +60 -0
  1129. package/plugins/codex/skills/funpixel-world-and-story/SKILL.md +99 -0
  1130. package/plugins/codex/skills/funpixel-world-and-story/agents/openai.yaml +12 -0
  1131. package/plugins/codex/skills/funpixel-world-and-story/references/atmosphere.md +208 -0
  1132. package/plugins/codex/skills/funpixel-world-and-story/references/forged-world.md +79 -0
  1133. package/plugins/codex/skills/funpixel-world-and-story/references/living-world.md +237 -0
  1134. package/plugins/codex/skills/funpixel-world-and-story/references/opening-and-chapters.md +215 -0
  1135. package/plugins/codex/skills/funpixel-world-and-story/references/shelf.md +80 -0
  1136. package/plugins/codex/skills/funpixel-world-and-story/references/story-at-size.md +159 -0
  1137. package/plugins/codex/skills/funpixel-world-and-story/references/voice.md +175 -0
  1138. package/plugins/codex/skills/funpixel-world-and-story/references/world-kit.md +154 -0
  1139. package/plugins/cursor/.cursor-plugin/plugin.json +26 -0
  1140. package/plugins/cursor/LICENSE +115 -0
  1141. package/plugins/cursor/README.md +13 -0
  1142. package/plugins/cursor/THIRD_PARTY_NOTICES.md +75 -0
  1143. package/plugins/cursor/agents/art-director.md +54 -0
  1144. package/plugins/cursor/agents/audio-director.md +51 -0
  1145. package/plugins/cursor/agents/critic.md +113 -0
  1146. package/plugins/cursor/agents/lane.md +37 -0
  1147. package/plugins/cursor/agents/level-designer.md +45 -0
  1148. package/plugins/cursor/agents/mobile-qa.md +70 -0
  1149. package/plugins/cursor/agents/player.md +143 -0
  1150. package/plugins/cursor/agents/qa-lead.md +52 -0
  1151. package/plugins/cursor/commands/first-look.md +59 -0
  1152. package/plugins/cursor/commands/flow.md +50 -0
  1153. package/plugins/cursor/commands/lanes.md +38 -0
  1154. package/plugins/cursor/commands/mobile-qa.md +28 -0
  1155. package/plugins/cursor/commands/new.md +94 -0
  1156. package/plugins/cursor/commands/playtest.md +66 -0
  1157. package/plugins/cursor/commands/publish.md +23 -0
  1158. package/plugins/cursor/commands/smoke-build.md +25 -0
  1159. package/plugins/cursor/commands/verify.md +20 -0
  1160. package/plugins/cursor/hooks/brief.md +135 -0
  1161. package/plugins/cursor/hooks/critic-receipts.mjs +86 -0
  1162. package/plugins/cursor/hooks/durable.mjs +56 -0
  1163. package/plugins/cursor/hooks/fence.mjs +30 -0
  1164. package/plugins/cursor/hooks/floors.mjs +181 -0
  1165. package/plugins/cursor/hooks/flow.mjs +154 -0
  1166. package/plugins/cursor/hooks/front-door.mjs +68 -0
  1167. package/plugins/cursor/hooks/guidance.json +3 -0
  1168. package/plugins/cursor/hooks/hints.mjs +183 -0
  1169. package/plugins/cursor/hooks/hooks.json +26 -0
  1170. package/plugins/cursor/hooks/lib.mjs +362 -0
  1171. package/plugins/cursor/hooks/memory.mjs +92 -0
  1172. package/plugins/cursor/hooks/mobile-qa.mjs +43 -0
  1173. package/plugins/cursor/hooks/note.mjs +63 -0
  1174. package/plugins/cursor/hooks/nudge.mjs +98 -0
  1175. package/plugins/cursor/hooks/pipeline.mjs +207 -0
  1176. package/plugins/cursor/hooks/prompt.mjs +51 -0
  1177. package/plugins/cursor/hooks/quality.mjs +310 -0
  1178. package/plugins/cursor/hooks/reach.mjs +93 -0
  1179. package/plugins/cursor/hooks/scope.mjs +44 -0
  1180. package/plugins/cursor/hooks/session-log.mjs +101 -0
  1181. package/plugins/cursor/hooks/session-start.mjs +194 -0
  1182. package/plugins/cursor/hooks/stop-gate.mjs +303 -0
  1183. package/plugins/cursor/hooks/vendor/direct/round.mjs +81 -0
  1184. package/plugins/cursor/hooks/vendor/find/names.mjs +46 -0
  1185. package/plugins/cursor/hooks/vendor/firstlook/set.mjs +219 -0
  1186. package/plugins/cursor/hooks/vendor/flow/flow.mjs +456 -0
  1187. package/plugins/cursor/hooks/vendor/flow/look.mjs +140 -0
  1188. package/plugins/cursor/hooks/vendor/gdd/book.mjs +484 -0
  1189. package/plugins/cursor/hooks/vendor/gdd/chapters.mjs +72 -0
  1190. package/plugins/cursor/hooks/vendor/gdd/doc.mjs +33 -0
  1191. package/plugins/cursor/hooks/vendor/gdd/levelmap.mjs +429 -0
  1192. package/plugins/cursor/hooks/vendor/gdd/rubric.mjs +251 -0
  1193. package/plugins/cursor/hooks/vendor/gdd/worth.mjs +508 -0
  1194. package/plugins/cursor/hooks/vendor/lanes/fence.mjs +109 -0
  1195. package/plugins/cursor/hooks/vendor/lanes/lanes.mjs +356 -0
  1196. package/plugins/cursor/hooks/vendor/lanes/union.mjs +63 -0
  1197. package/plugins/cursor/hooks/vendor/lessons/motifs.mjs +98 -0
  1198. package/plugins/cursor/hooks/vendor/lessons/store.mjs +57 -0
  1199. package/plugins/cursor/hooks/vendor/look/made-of.mjs +243 -0
  1200. package/plugins/cursor/hooks/vendor/look/roles.mjs +110 -0
  1201. package/plugins/cursor/hooks/vendor/memory/decisions.mjs +139 -0
  1202. package/plugins/cursor/hooks/vendor/memory/journal.mjs +109 -0
  1203. package/plugins/cursor/hooks/vendor/owner/bar.mjs +286 -0
  1204. package/plugins/cursor/hooks/vendor/pipeline/pipeline.mjs +930 -0
  1205. package/plugins/cursor/hooks/vendor/playtest/keep.mjs +111 -0
  1206. package/plugins/cursor/hooks/vendor/playtest/stuck.mjs +48 -0
  1207. package/plugins/cursor/hooks/vendor/progress/holds.mjs +107 -0
  1208. package/plugins/cursor/hooks/vendor/progress/progress.mjs +301 -0
  1209. package/plugins/cursor/hooks/vendor/sim/judge.mjs +241 -0
  1210. package/plugins/cursor/hooks/vendor/spec/rooms.mjs +189 -0
  1211. package/plugins/cursor/hooks/vendor/spec/tunables.mjs +75 -0
  1212. package/plugins/cursor/hooks/vendor/stage/harnessignore.mjs +91 -0
  1213. package/plugins/cursor/hooks/vendor/stage/stage.mjs +58 -0
  1214. package/plugins/cursor/hooks/vendor/status/board.mjs +173 -0
  1215. package/plugins/cursor/hooks/vendor/status/file.mjs +113 -0
  1216. package/plugins/cursor/hooks/vendor/studio/forks.mjs +94 -0
  1217. package/plugins/cursor/hooks/vendor/studio/pitch.mjs +295 -0
  1218. package/plugins/cursor/hooks/vendor/verify/fingerprint.mjs +73 -0
  1219. package/plugins/cursor/hooks/vendor/verify/reads.mjs +33 -0
  1220. package/plugins/cursor/hooks/vendor/wow/picks.mjs +75 -0
  1221. package/plugins/cursor/mcp.json +10 -0
  1222. package/plugins/cursor/rules/funpixel-brief.mdc +141 -0
  1223. package/plugins/cursor/skills/funpixel-3d/SKILL.md +89 -0
  1224. package/plugins/cursor/skills/funpixel-3d/references/bake-off.md +48 -0
  1225. package/plugins/cursor/skills/funpixel-3d/references/bench.md +103 -0
  1226. package/plugins/cursor/skills/funpixel-3d/references/budgets.md +48 -0
  1227. package/plugins/cursor/skills/funpixel-3d/references/characters.md +67 -0
  1228. package/plugins/cursor/skills/funpixel-3d/references/concept-image.md +47 -0
  1229. package/plugins/cursor/skills/funpixel-3d/references/engine-targets.md +31 -0
  1230. package/plugins/cursor/skills/funpixel-3d/references/hero-route.md +104 -0
  1231. package/plugins/cursor/skills/funpixel-3d/references/level-spec.md +109 -0
  1232. package/plugins/cursor/skills/funpixel-3d/references/levels.md +84 -0
  1233. package/plugins/cursor/skills/funpixel-3d/references/light-and-places.md +141 -0
  1234. package/plugins/cursor/skills/funpixel-3d/references/models.md +111 -0
  1235. package/plugins/cursor/skills/funpixel-3d/references/painted-target.md +184 -0
  1236. package/plugins/cursor/skills/funpixel-3d/references/reading.md +41 -0
  1237. package/plugins/cursor/skills/funpixel-3d/references/skin.md +85 -0
  1238. package/plugins/cursor/skills/funpixel-3d/references/skyboxes.md +65 -0
  1239. package/plugins/cursor/skills/funpixel-3d/references/textures.md +71 -0
  1240. package/plugins/cursor/skills/funpixel-3d/references/three-loading.md +199 -0
  1241. package/plugins/cursor/skills/funpixel-3d/references/unity.md +78 -0
  1242. package/plugins/cursor/skills/funpixel-art/SKILL.md +104 -0
  1243. package/plugins/cursor/skills/funpixel-art/references/2d-assets.md +108 -0
  1244. package/plugins/cursor/skills/funpixel-art/references/animation.md +126 -0
  1245. package/plugins/cursor/skills/funpixel-art/references/cast.md +73 -0
  1246. package/plugins/cursor/skills/funpixel-art/references/characters.md +49 -0
  1247. package/plugins/cursor/skills/funpixel-art/references/cost.md +107 -0
  1248. package/plugins/cursor/skills/funpixel-art/references/effects.md +85 -0
  1249. package/plugins/cursor/skills/funpixel-art/references/frames.md +87 -0
  1250. package/plugins/cursor/skills/funpixel-art/references/judging-frames.md +64 -0
  1251. package/plugins/cursor/skills/funpixel-art/references/look.md +102 -0
  1252. package/plugins/cursor/skills/funpixel-art/references/measure.md +119 -0
  1253. package/plugins/cursor/skills/funpixel-art/references/pipeline.md +185 -0
  1254. package/plugins/cursor/skills/funpixel-art/references/pixi.md +277 -0
  1255. package/plugins/cursor/skills/funpixel-art/references/planes.md +27 -0
  1256. package/plugins/cursor/skills/funpixel-art/references/prompts.md +171 -0
  1257. package/plugins/cursor/skills/funpixel-art/references/sheets.md +141 -0
  1258. package/plugins/cursor/skills/funpixel-art/references/style-file.md +39 -0
  1259. package/plugins/cursor/skills/funpixel-art/references/three.md +232 -0
  1260. package/plugins/cursor/skills/funpixel-art/references/ui.md +163 -0
  1261. package/plugins/cursor/skills/funpixel-art/references/unity.md +78 -0
  1262. package/plugins/cursor/skills/funpixel-art/references/wiring.md +41 -0
  1263. package/plugins/cursor/skills/funpixel-audio/SKILL.md +92 -0
  1264. package/plugins/cursor/skills/funpixel-audio/references/adaptive-music.md +204 -0
  1265. package/plugins/cursor/skills/funpixel-audio/references/engine.md +78 -0
  1266. package/plugins/cursor/skills/funpixel-audio/references/measure.md +101 -0
  1267. package/plugins/cursor/skills/funpixel-audio/references/unity.md +73 -0
  1268. package/plugins/cursor/skills/funpixel-feedback/SKILL.md +120 -0
  1269. package/plugins/cursor/skills/funpixel-feedback/references/memory.md +99 -0
  1270. package/plugins/cursor/skills/funpixel-game-feel/SKILL.md +104 -0
  1271. package/plugins/cursor/skills/funpixel-game-feel/references/contact.md +110 -0
  1272. package/plugins/cursor/skills/funpixel-game-feel/references/measure.md +125 -0
  1273. package/plugins/cursor/skills/funpixel-game-feel/references/motion.md +134 -0
  1274. package/plugins/cursor/skills/funpixel-game-feel/references/payoffs.md +35 -0
  1275. package/plugins/cursor/skills/funpixel-game-feel/references/recipes.md +107 -0
  1276. package/plugins/cursor/skills/funpixel-game-feel/references/unity.md +78 -0
  1277. package/plugins/cursor/skills/funpixel-game-logic/SKILL.md +113 -0
  1278. package/plugins/cursor/skills/funpixel-game-logic/references/balance.md +88 -0
  1279. package/plugins/cursor/skills/funpixel-game-logic/references/content-at-scale.md +147 -0
  1280. package/plugins/cursor/skills/funpixel-game-logic/references/depth.md +89 -0
  1281. package/plugins/cursor/skills/funpixel-game-logic/references/escalation.md +41 -0
  1282. package/plugins/cursor/skills/funpixel-game-logic/references/levels.md +61 -0
  1283. package/plugins/cursor/skills/funpixel-game-logic/references/probes.md +122 -0
  1284. package/plugins/cursor/skills/funpixel-game-logic/references/unity.md +108 -0
  1285. package/plugins/cursor/skills/funpixel-game-spine/SKILL.md +118 -0
  1286. package/plugins/cursor/skills/funpixel-game-spine/references/camera.md +94 -0
  1287. package/plugins/cursor/skills/funpixel-game-spine/references/multiplayer.md +101 -0
  1288. package/plugins/cursor/skills/funpixel-game-spine/references/patterns.md +103 -0
  1289. package/plugins/cursor/skills/funpixel-game-spine/references/performance.md +96 -0
  1290. package/plugins/cursor/skills/funpixel-game-spine/references/pixi.md +26 -0
  1291. package/plugins/cursor/skills/funpixel-game-spine/references/replay.md +102 -0
  1292. package/plugins/cursor/skills/funpixel-game-spine/references/room-api.md +63 -0
  1293. package/plugins/cursor/skills/funpixel-game-spine/references/room-modes.md +40 -0
  1294. package/plugins/cursor/skills/funpixel-game-spine/references/sdk.md +114 -0
  1295. package/plugins/cursor/skills/funpixel-game-spine/references/three.md +62 -0
  1296. package/plugins/cursor/skills/funpixel-gdd/SKILL.md +116 -0
  1297. package/plugins/cursor/skills/funpixel-gdd/references/as-built.md +40 -0
  1298. package/plugins/cursor/skills/funpixel-gdd/references/design-measures.md +24 -0
  1299. package/plugins/cursor/skills/funpixel-gdd/references/design-note.md +88 -0
  1300. package/plugins/cursor/skills/funpixel-gdd/references/experience.md +92 -0
  1301. package/plugins/cursor/skills/funpixel-gdd/references/first-look.md +226 -0
  1302. package/plugins/cursor/skills/funpixel-gdd/references/floors.md +62 -0
  1303. package/plugins/cursor/skills/funpixel-gdd/references/frame.md +75 -0
  1304. package/plugins/cursor/skills/funpixel-gdd/references/gameplay-contract.md +81 -0
  1305. package/plugins/cursor/skills/funpixel-gdd/references/gdd-template.md +417 -0
  1306. package/plugins/cursor/skills/funpixel-gdd/references/genre-card.md +109 -0
  1307. package/plugins/cursor/skills/funpixel-gdd/references/genre-platformer.md +159 -0
  1308. package/plugins/cursor/skills/funpixel-gdd/references/genre-puzzle.md +145 -0
  1309. package/plugins/cursor/skills/funpixel-gdd/references/genre-racing.md +137 -0
  1310. package/plugins/cursor/skills/funpixel-gdd/references/genre-rpg.md +125 -0
  1311. package/plugins/cursor/skills/funpixel-gdd/references/genre-shooter.md +128 -0
  1312. package/plugins/cursor/skills/funpixel-gdd/references/genre-simulation.md +112 -0
  1313. package/plugins/cursor/skills/funpixel-gdd/references/genre-strategy.md +116 -0
  1314. package/plugins/cursor/skills/funpixel-gdd/references/genre-survival.md +122 -0
  1315. package/plugins/cursor/skills/funpixel-gdd/references/in-the-loop.md +106 -0
  1316. package/plugins/cursor/skills/funpixel-gdd/references/invent-first.md +131 -0
  1317. package/plugins/cursor/skills/funpixel-gdd/references/level-and-fun.md +112 -0
  1318. package/plugins/cursor/skills/funpixel-gdd/references/pages.md +50 -0
  1319. package/plugins/cursor/skills/funpixel-gdd/references/plan-at-size.md +140 -0
  1320. package/plugins/cursor/skills/funpixel-gdd/references/production-tiers.md +117 -0
  1321. package/plugins/cursor/skills/funpixel-gdd/references/sections.md +148 -0
  1322. package/plugins/cursor/skills/funpixel-gdd/references/spec-folder.md +131 -0
  1323. package/plugins/cursor/skills/funpixel-gdd/references/start.md +110 -0
  1324. package/plugins/cursor/skills/funpixel-gdd/references/starters.md +175 -0
  1325. package/plugins/cursor/skills/funpixel-gdd/references/the-path.md +134 -0
  1326. package/plugins/cursor/skills/funpixel-gdd/references/track.md +29 -0
  1327. package/plugins/cursor/skills/funpixel-gdd/references/world-and-identity.md +165 -0
  1328. package/plugins/cursor/skills/funpixel-gdd/references/worth.md +74 -0
  1329. package/plugins/cursor/skills/funpixel-mobile-ui/SKILL.md +107 -0
  1330. package/plugins/cursor/skills/funpixel-mobile-ui/references/contrast.md +123 -0
  1331. package/plugins/cursor/skills/funpixel-mobile-ui/references/hud-and-title.md +108 -0
  1332. package/plugins/cursor/skills/funpixel-mobile-ui/references/hud-genres.md +124 -0
  1333. package/plugins/cursor/skills/funpixel-mobile-ui/references/phone-check.md +156 -0
  1334. package/plugins/cursor/skills/funpixel-mobile-ui/references/recipes.md +279 -0
  1335. package/plugins/cursor/skills/funpixel-mobile-ui/references/restyle-ui.md +229 -0
  1336. package/plugins/cursor/skills/funpixel-mobile-ui/references/unity.md +61 -0
  1337. package/plugins/cursor/skills/funpixel-publish/SKILL.md +109 -0
  1338. package/plugins/cursor/skills/funpixel-publish/references/compose.md +113 -0
  1339. package/plugins/cursor/skills/funpixel-publish/references/motion.md +120 -0
  1340. package/plugins/cursor/skills/funpixel-publish/references/networks.md +75 -0
  1341. package/plugins/cursor/skills/funpixel-publish/references/other-hosts.md +65 -0
  1342. package/plugins/cursor/skills/funpixel-publish/references/playable-ad.md +90 -0
  1343. package/plugins/cursor/skills/funpixel-publish/references/server-build.md +85 -0
  1344. package/plugins/cursor/skills/funpixel-publish/references/store-shots.md +85 -0
  1345. package/plugins/cursor/skills/funpixel-publish/references/trailer.md +55 -0
  1346. package/plugins/cursor/skills/funpixel-publish/references/what-ships.md +30 -0
  1347. package/plugins/cursor/skills/funpixel-store/SKILL.md +81 -0
  1348. package/plugins/cursor/skills/funpixel-store/references/app-store.md +73 -0
  1349. package/plugins/cursor/skills/funpixel-store/references/google-play.md +141 -0
  1350. package/plugins/cursor/skills/funpixel-store/references/ios-release.md +64 -0
  1351. package/plugins/cursor/skills/funpixel-store/references/money.md +66 -0
  1352. package/plugins/cursor/skills/funpixel-store/references/purchases-and-review.md +74 -0
  1353. package/plugins/cursor/skills/funpixel-store/references/readiness-page.md +24 -0
  1354. package/plugins/cursor/skills/funpixel-store/references/readiness.md +107 -0
  1355. package/plugins/cursor/skills/funpixel-store/references/steam.md +38 -0
  1356. package/plugins/cursor/skills/funpixel-store/references/unity-store.md +58 -0
  1357. package/plugins/cursor/skills/funpixel-store/references/web-portals.md +43 -0
  1358. package/plugins/cursor/skills/funpixel-unity-game/SKILL.md +110 -0
  1359. package/plugins/cursor/skills/funpixel-unity-game/references/agent-ops.md +54 -0
  1360. package/plugins/cursor/skills/funpixel-unity-game/references/fixes.md +40 -0
  1361. package/plugins/cursor/skills/funpixel-unity-game/references/from-a-web-game.md +108 -0
  1362. package/plugins/cursor/skills/funpixel-unity-game/references/handing-off.md +42 -0
  1363. package/plugins/cursor/skills/funpixel-unity-game/references/performance.md +63 -0
  1364. package/plugins/cursor/skills/funpixel-unity-game/references/probe.md +80 -0
  1365. package/plugins/cursor/skills/funpixel-unity-game/references/shared-mac.md +121 -0
  1366. package/plugins/cursor/skills/funpixel-unity-game/references/studio-packages.md +127 -0
  1367. package/plugins/cursor/skills/funpixel-unity-game/references/traps.md +109 -0
  1368. package/plugins/cursor/skills/funpixel-verify/SKILL.md +109 -0
  1369. package/plugins/cursor/skills/funpixel-verify/references/actors.md +94 -0
  1370. package/plugins/cursor/skills/funpixel-verify/references/bar.md +62 -0
  1371. package/plugins/cursor/skills/funpixel-verify/references/checks.md +69 -0
  1372. package/plugins/cursor/skills/funpixel-verify/references/experience.md +67 -0
  1373. package/plugins/cursor/skills/funpixel-verify/references/eyes.md +54 -0
  1374. package/plugins/cursor/skills/funpixel-verify/references/fidelity.md +126 -0
  1375. package/plugins/cursor/skills/funpixel-verify/references/hit-bar.md +31 -0
  1376. package/plugins/cursor/skills/funpixel-verify/references/journeys.md +77 -0
  1377. package/plugins/cursor/skills/funpixel-verify/references/mobile-qa.md +123 -0
  1378. package/plugins/cursor/skills/funpixel-verify/references/playtest.md +161 -0
  1379. package/plugins/cursor/skills/funpixel-verify/references/review.md +105 -0
  1380. package/plugins/cursor/skills/funpixel-verify/references/rubric.md +67 -0
  1381. package/plugins/cursor/skills/funpixel-verify/references/scenes.md +49 -0
  1382. package/plugins/cursor/skills/funpixel-verify/references/unity.md +60 -0
  1383. package/plugins/cursor/skills/funpixel-world-and-story/SKILL.md +99 -0
  1384. package/plugins/cursor/skills/funpixel-world-and-story/references/atmosphere.md +208 -0
  1385. package/plugins/cursor/skills/funpixel-world-and-story/references/forged-world.md +79 -0
  1386. package/plugins/cursor/skills/funpixel-world-and-story/references/living-world.md +237 -0
  1387. package/plugins/cursor/skills/funpixel-world-and-story/references/opening-and-chapters.md +215 -0
  1388. package/plugins/cursor/skills/funpixel-world-and-story/references/shelf.md +80 -0
  1389. package/plugins/cursor/skills/funpixel-world-and-story/references/story-at-size.md +159 -0
  1390. package/plugins/cursor/skills/funpixel-world-and-story/references/voice.md +175 -0
  1391. package/plugins/cursor/skills/funpixel-world-and-story/references/world-kit.md +154 -0
  1392. package/plugins/kiro/AGENTS.md +135 -0
  1393. package/plugins/kiro/LICENSE +115 -0
  1394. package/plugins/kiro/README.md +17 -0
  1395. package/plugins/kiro/THIRD_PARTY_NOTICES.md +75 -0
  1396. package/plugins/kiro/agent.template.json +45 -0
  1397. package/plugins/kiro/hooks/brief.md +135 -0
  1398. package/plugins/kiro/hooks/critic-receipts.mjs +86 -0
  1399. package/plugins/kiro/hooks/durable.mjs +56 -0
  1400. package/plugins/kiro/hooks/fence.mjs +30 -0
  1401. package/plugins/kiro/hooks/floors.mjs +181 -0
  1402. package/plugins/kiro/hooks/flow.mjs +154 -0
  1403. package/plugins/kiro/hooks/front-door.mjs +68 -0
  1404. package/plugins/kiro/hooks/guidance.json +3 -0
  1405. package/plugins/kiro/hooks/hints.mjs +183 -0
  1406. package/plugins/kiro/hooks/host.md +43 -0
  1407. package/plugins/kiro/hooks/kiro-prompt.mjs +26 -0
  1408. package/plugins/kiro/hooks/lib.mjs +362 -0
  1409. package/plugins/kiro/hooks/memory.mjs +92 -0
  1410. package/plugins/kiro/hooks/mobile-qa.mjs +43 -0
  1411. package/plugins/kiro/hooks/note.mjs +63 -0
  1412. package/plugins/kiro/hooks/nudge.mjs +98 -0
  1413. package/plugins/kiro/hooks/pipeline.mjs +207 -0
  1414. package/plugins/kiro/hooks/prompt.mjs +51 -0
  1415. package/plugins/kiro/hooks/quality.mjs +310 -0
  1416. package/plugins/kiro/hooks/reach.mjs +93 -0
  1417. package/plugins/kiro/hooks/scope.mjs +44 -0
  1418. package/plugins/kiro/hooks/session-log.mjs +101 -0
  1419. package/plugins/kiro/hooks/session-start.mjs +194 -0
  1420. package/plugins/kiro/hooks/stop-gate.mjs +303 -0
  1421. package/plugins/kiro/hooks/vendor/direct/round.mjs +81 -0
  1422. package/plugins/kiro/hooks/vendor/find/names.mjs +46 -0
  1423. package/plugins/kiro/hooks/vendor/firstlook/set.mjs +219 -0
  1424. package/plugins/kiro/hooks/vendor/flow/flow.mjs +456 -0
  1425. package/plugins/kiro/hooks/vendor/flow/look.mjs +140 -0
  1426. package/plugins/kiro/hooks/vendor/gdd/book.mjs +484 -0
  1427. package/plugins/kiro/hooks/vendor/gdd/chapters.mjs +72 -0
  1428. package/plugins/kiro/hooks/vendor/gdd/doc.mjs +33 -0
  1429. package/plugins/kiro/hooks/vendor/gdd/levelmap.mjs +429 -0
  1430. package/plugins/kiro/hooks/vendor/gdd/rubric.mjs +251 -0
  1431. package/plugins/kiro/hooks/vendor/gdd/worth.mjs +508 -0
  1432. package/plugins/kiro/hooks/vendor/lanes/fence.mjs +109 -0
  1433. package/plugins/kiro/hooks/vendor/lanes/lanes.mjs +356 -0
  1434. package/plugins/kiro/hooks/vendor/lanes/union.mjs +63 -0
  1435. package/plugins/kiro/hooks/vendor/lessons/motifs.mjs +98 -0
  1436. package/plugins/kiro/hooks/vendor/lessons/store.mjs +57 -0
  1437. package/plugins/kiro/hooks/vendor/look/made-of.mjs +243 -0
  1438. package/plugins/kiro/hooks/vendor/look/roles.mjs +110 -0
  1439. package/plugins/kiro/hooks/vendor/memory/decisions.mjs +139 -0
  1440. package/plugins/kiro/hooks/vendor/memory/journal.mjs +109 -0
  1441. package/plugins/kiro/hooks/vendor/owner/bar.mjs +286 -0
  1442. package/plugins/kiro/hooks/vendor/pipeline/pipeline.mjs +930 -0
  1443. package/plugins/kiro/hooks/vendor/playtest/keep.mjs +111 -0
  1444. package/plugins/kiro/hooks/vendor/playtest/stuck.mjs +48 -0
  1445. package/plugins/kiro/hooks/vendor/progress/holds.mjs +107 -0
  1446. package/plugins/kiro/hooks/vendor/progress/progress.mjs +301 -0
  1447. package/plugins/kiro/hooks/vendor/sim/judge.mjs +241 -0
  1448. package/plugins/kiro/hooks/vendor/spec/rooms.mjs +189 -0
  1449. package/plugins/kiro/hooks/vendor/spec/tunables.mjs +75 -0
  1450. package/plugins/kiro/hooks/vendor/stage/harnessignore.mjs +91 -0
  1451. package/plugins/kiro/hooks/vendor/stage/stage.mjs +58 -0
  1452. package/plugins/kiro/hooks/vendor/status/board.mjs +173 -0
  1453. package/plugins/kiro/hooks/vendor/status/file.mjs +113 -0
  1454. package/plugins/kiro/hooks/vendor/studio/forks.mjs +94 -0
  1455. package/plugins/kiro/hooks/vendor/studio/pitch.mjs +295 -0
  1456. package/plugins/kiro/hooks/vendor/verify/fingerprint.mjs +73 -0
  1457. package/plugins/kiro/hooks/vendor/verify/reads.mjs +33 -0
  1458. package/plugins/kiro/hooks/vendor/wow/picks.mjs +75 -0
  1459. package/plugins/kiro/install.mjs +37 -0
  1460. package/plugins/kiro/skills/fp-art-director/SKILL.md +58 -0
  1461. package/plugins/kiro/skills/fp-art-director/references/kiro.md +43 -0
  1462. package/plugins/kiro/skills/fp-audio-director/SKILL.md +55 -0
  1463. package/plugins/kiro/skills/fp-audio-director/references/kiro.md +43 -0
  1464. package/plugins/kiro/skills/fp-critic/SKILL.md +117 -0
  1465. package/plugins/kiro/skills/fp-critic/references/kiro.md +43 -0
  1466. package/plugins/kiro/skills/fp-first-look/SKILL.md +61 -0
  1467. package/plugins/kiro/skills/fp-flow/SKILL.md +52 -0
  1468. package/plugins/kiro/skills/fp-lane/SKILL.md +41 -0
  1469. package/plugins/kiro/skills/fp-lane/references/kiro.md +43 -0
  1470. package/plugins/kiro/skills/fp-lanes/SKILL.md +40 -0
  1471. package/plugins/kiro/skills/fp-level-designer/SKILL.md +49 -0
  1472. package/plugins/kiro/skills/fp-level-designer/references/kiro.md +43 -0
  1473. package/plugins/kiro/skills/fp-mobile-qa/SKILL.md +30 -0
  1474. package/plugins/kiro/skills/fp-mobile-qa-seat/SKILL.md +74 -0
  1475. package/plugins/kiro/skills/fp-mobile-qa-seat/references/kiro.md +43 -0
  1476. package/plugins/kiro/skills/fp-new/SKILL.md +96 -0
  1477. package/plugins/kiro/skills/fp-player/SKILL.md +147 -0
  1478. package/plugins/kiro/skills/fp-player/references/kiro.md +43 -0
  1479. package/plugins/kiro/skills/fp-playtest/SKILL.md +68 -0
  1480. package/plugins/kiro/skills/fp-publish/SKILL.md +25 -0
  1481. package/plugins/kiro/skills/fp-qa-lead/SKILL.md +56 -0
  1482. package/plugins/kiro/skills/fp-qa-lead/references/kiro.md +43 -0
  1483. package/plugins/kiro/skills/fp-smoke-build/SKILL.md +27 -0
  1484. package/plugins/kiro/skills/fp-studio/SKILL.md +48 -0
  1485. package/plugins/kiro/skills/fp-verify/SKILL.md +22 -0
  1486. package/plugins/kiro/skills/funpixel-3d/SKILL.md +89 -0
  1487. package/plugins/kiro/skills/funpixel-3d/references/bake-off.md +48 -0
  1488. package/plugins/kiro/skills/funpixel-3d/references/bench.md +103 -0
  1489. package/plugins/kiro/skills/funpixel-3d/references/budgets.md +48 -0
  1490. package/plugins/kiro/skills/funpixel-3d/references/characters.md +67 -0
  1491. package/plugins/kiro/skills/funpixel-3d/references/concept-image.md +47 -0
  1492. package/plugins/kiro/skills/funpixel-3d/references/engine-targets.md +31 -0
  1493. package/plugins/kiro/skills/funpixel-3d/references/hero-route.md +104 -0
  1494. package/plugins/kiro/skills/funpixel-3d/references/level-spec.md +109 -0
  1495. package/plugins/kiro/skills/funpixel-3d/references/levels.md +84 -0
  1496. package/plugins/kiro/skills/funpixel-3d/references/light-and-places.md +141 -0
  1497. package/plugins/kiro/skills/funpixel-3d/references/models.md +111 -0
  1498. package/plugins/kiro/skills/funpixel-3d/references/painted-target.md +184 -0
  1499. package/plugins/kiro/skills/funpixel-3d/references/reading.md +41 -0
  1500. package/plugins/kiro/skills/funpixel-3d/references/skin.md +85 -0
  1501. package/plugins/kiro/skills/funpixel-3d/references/skyboxes.md +65 -0
  1502. package/plugins/kiro/skills/funpixel-3d/references/textures.md +71 -0
  1503. package/plugins/kiro/skills/funpixel-3d/references/three-loading.md +199 -0
  1504. package/plugins/kiro/skills/funpixel-3d/references/unity.md +78 -0
  1505. package/plugins/kiro/skills/funpixel-art/SKILL.md +104 -0
  1506. package/plugins/kiro/skills/funpixel-art/references/2d-assets.md +108 -0
  1507. package/plugins/kiro/skills/funpixel-art/references/animation.md +126 -0
  1508. package/plugins/kiro/skills/funpixel-art/references/cast.md +73 -0
  1509. package/plugins/kiro/skills/funpixel-art/references/characters.md +49 -0
  1510. package/plugins/kiro/skills/funpixel-art/references/cost.md +107 -0
  1511. package/plugins/kiro/skills/funpixel-art/references/effects.md +85 -0
  1512. package/plugins/kiro/skills/funpixel-art/references/frames.md +87 -0
  1513. package/plugins/kiro/skills/funpixel-art/references/judging-frames.md +64 -0
  1514. package/plugins/kiro/skills/funpixel-art/references/look.md +102 -0
  1515. package/plugins/kiro/skills/funpixel-art/references/measure.md +119 -0
  1516. package/plugins/kiro/skills/funpixel-art/references/pipeline.md +185 -0
  1517. package/plugins/kiro/skills/funpixel-art/references/pixi.md +277 -0
  1518. package/plugins/kiro/skills/funpixel-art/references/planes.md +27 -0
  1519. package/plugins/kiro/skills/funpixel-art/references/prompts.md +171 -0
  1520. package/plugins/kiro/skills/funpixel-art/references/sheets.md +141 -0
  1521. package/plugins/kiro/skills/funpixel-art/references/style-file.md +39 -0
  1522. package/plugins/kiro/skills/funpixel-art/references/three.md +232 -0
  1523. package/plugins/kiro/skills/funpixel-art/references/ui.md +163 -0
  1524. package/plugins/kiro/skills/funpixel-art/references/unity.md +78 -0
  1525. package/plugins/kiro/skills/funpixel-art/references/wiring.md +41 -0
  1526. package/plugins/kiro/skills/funpixel-audio/SKILL.md +92 -0
  1527. package/plugins/kiro/skills/funpixel-audio/references/adaptive-music.md +204 -0
  1528. package/plugins/kiro/skills/funpixel-audio/references/engine.md +78 -0
  1529. package/plugins/kiro/skills/funpixel-audio/references/measure.md +101 -0
  1530. package/plugins/kiro/skills/funpixel-audio/references/unity.md +73 -0
  1531. package/plugins/kiro/skills/funpixel-feedback/SKILL.md +120 -0
  1532. package/plugins/kiro/skills/funpixel-feedback/references/memory.md +99 -0
  1533. package/plugins/kiro/skills/funpixel-game-feel/SKILL.md +104 -0
  1534. package/plugins/kiro/skills/funpixel-game-feel/references/contact.md +110 -0
  1535. package/plugins/kiro/skills/funpixel-game-feel/references/measure.md +125 -0
  1536. package/plugins/kiro/skills/funpixel-game-feel/references/motion.md +134 -0
  1537. package/plugins/kiro/skills/funpixel-game-feel/references/payoffs.md +35 -0
  1538. package/plugins/kiro/skills/funpixel-game-feel/references/recipes.md +107 -0
  1539. package/plugins/kiro/skills/funpixel-game-feel/references/unity.md +78 -0
  1540. package/plugins/kiro/skills/funpixel-game-logic/SKILL.md +113 -0
  1541. package/plugins/kiro/skills/funpixel-game-logic/references/balance.md +88 -0
  1542. package/plugins/kiro/skills/funpixel-game-logic/references/content-at-scale.md +147 -0
  1543. package/plugins/kiro/skills/funpixel-game-logic/references/depth.md +89 -0
  1544. package/plugins/kiro/skills/funpixel-game-logic/references/escalation.md +41 -0
  1545. package/plugins/kiro/skills/funpixel-game-logic/references/levels.md +61 -0
  1546. package/plugins/kiro/skills/funpixel-game-logic/references/probes.md +122 -0
  1547. package/plugins/kiro/skills/funpixel-game-logic/references/unity.md +108 -0
  1548. package/plugins/kiro/skills/funpixel-game-spine/SKILL.md +118 -0
  1549. package/plugins/kiro/skills/funpixel-game-spine/references/camera.md +94 -0
  1550. package/plugins/kiro/skills/funpixel-game-spine/references/multiplayer.md +101 -0
  1551. package/plugins/kiro/skills/funpixel-game-spine/references/patterns.md +103 -0
  1552. package/plugins/kiro/skills/funpixel-game-spine/references/performance.md +96 -0
  1553. package/plugins/kiro/skills/funpixel-game-spine/references/pixi.md +26 -0
  1554. package/plugins/kiro/skills/funpixel-game-spine/references/replay.md +102 -0
  1555. package/plugins/kiro/skills/funpixel-game-spine/references/room-api.md +63 -0
  1556. package/plugins/kiro/skills/funpixel-game-spine/references/room-modes.md +40 -0
  1557. package/plugins/kiro/skills/funpixel-game-spine/references/sdk.md +114 -0
  1558. package/plugins/kiro/skills/funpixel-game-spine/references/three.md +62 -0
  1559. package/plugins/kiro/skills/funpixel-gdd/SKILL.md +116 -0
  1560. package/plugins/kiro/skills/funpixel-gdd/references/as-built.md +40 -0
  1561. package/plugins/kiro/skills/funpixel-gdd/references/design-measures.md +24 -0
  1562. package/plugins/kiro/skills/funpixel-gdd/references/design-note.md +88 -0
  1563. package/plugins/kiro/skills/funpixel-gdd/references/experience.md +92 -0
  1564. package/plugins/kiro/skills/funpixel-gdd/references/first-look.md +226 -0
  1565. package/plugins/kiro/skills/funpixel-gdd/references/floors.md +62 -0
  1566. package/plugins/kiro/skills/funpixel-gdd/references/frame.md +75 -0
  1567. package/plugins/kiro/skills/funpixel-gdd/references/gameplay-contract.md +81 -0
  1568. package/plugins/kiro/skills/funpixel-gdd/references/gdd-template.md +417 -0
  1569. package/plugins/kiro/skills/funpixel-gdd/references/genre-card.md +109 -0
  1570. package/plugins/kiro/skills/funpixel-gdd/references/genre-platformer.md +159 -0
  1571. package/plugins/kiro/skills/funpixel-gdd/references/genre-puzzle.md +145 -0
  1572. package/plugins/kiro/skills/funpixel-gdd/references/genre-racing.md +137 -0
  1573. package/plugins/kiro/skills/funpixel-gdd/references/genre-rpg.md +125 -0
  1574. package/plugins/kiro/skills/funpixel-gdd/references/genre-shooter.md +128 -0
  1575. package/plugins/kiro/skills/funpixel-gdd/references/genre-simulation.md +112 -0
  1576. package/plugins/kiro/skills/funpixel-gdd/references/genre-strategy.md +116 -0
  1577. package/plugins/kiro/skills/funpixel-gdd/references/genre-survival.md +122 -0
  1578. package/plugins/kiro/skills/funpixel-gdd/references/in-the-loop.md +106 -0
  1579. package/plugins/kiro/skills/funpixel-gdd/references/invent-first.md +131 -0
  1580. package/plugins/kiro/skills/funpixel-gdd/references/level-and-fun.md +112 -0
  1581. package/plugins/kiro/skills/funpixel-gdd/references/pages.md +50 -0
  1582. package/plugins/kiro/skills/funpixel-gdd/references/plan-at-size.md +140 -0
  1583. package/plugins/kiro/skills/funpixel-gdd/references/production-tiers.md +117 -0
  1584. package/plugins/kiro/skills/funpixel-gdd/references/sections.md +148 -0
  1585. package/plugins/kiro/skills/funpixel-gdd/references/spec-folder.md +131 -0
  1586. package/plugins/kiro/skills/funpixel-gdd/references/start.md +110 -0
  1587. package/plugins/kiro/skills/funpixel-gdd/references/starters.md +175 -0
  1588. package/plugins/kiro/skills/funpixel-gdd/references/the-path.md +134 -0
  1589. package/plugins/kiro/skills/funpixel-gdd/references/track.md +29 -0
  1590. package/plugins/kiro/skills/funpixel-gdd/references/world-and-identity.md +165 -0
  1591. package/plugins/kiro/skills/funpixel-gdd/references/worth.md +74 -0
  1592. package/plugins/kiro/skills/funpixel-mobile-ui/SKILL.md +107 -0
  1593. package/plugins/kiro/skills/funpixel-mobile-ui/references/contrast.md +123 -0
  1594. package/plugins/kiro/skills/funpixel-mobile-ui/references/hud-and-title.md +108 -0
  1595. package/plugins/kiro/skills/funpixel-mobile-ui/references/hud-genres.md +124 -0
  1596. package/plugins/kiro/skills/funpixel-mobile-ui/references/phone-check.md +156 -0
  1597. package/plugins/kiro/skills/funpixel-mobile-ui/references/recipes.md +279 -0
  1598. package/plugins/kiro/skills/funpixel-mobile-ui/references/restyle-ui.md +229 -0
  1599. package/plugins/kiro/skills/funpixel-mobile-ui/references/unity.md +61 -0
  1600. package/plugins/kiro/skills/funpixel-publish/SKILL.md +109 -0
  1601. package/plugins/kiro/skills/funpixel-publish/references/compose.md +113 -0
  1602. package/plugins/kiro/skills/funpixel-publish/references/motion.md +120 -0
  1603. package/plugins/kiro/skills/funpixel-publish/references/networks.md +75 -0
  1604. package/plugins/kiro/skills/funpixel-publish/references/other-hosts.md +65 -0
  1605. package/plugins/kiro/skills/funpixel-publish/references/playable-ad.md +90 -0
  1606. package/plugins/kiro/skills/funpixel-publish/references/server-build.md +85 -0
  1607. package/plugins/kiro/skills/funpixel-publish/references/store-shots.md +85 -0
  1608. package/plugins/kiro/skills/funpixel-publish/references/trailer.md +55 -0
  1609. package/plugins/kiro/skills/funpixel-publish/references/what-ships.md +30 -0
  1610. package/plugins/kiro/skills/funpixel-store/SKILL.md +81 -0
  1611. package/plugins/kiro/skills/funpixel-store/references/app-store.md +73 -0
  1612. package/plugins/kiro/skills/funpixel-store/references/google-play.md +141 -0
  1613. package/plugins/kiro/skills/funpixel-store/references/ios-release.md +64 -0
  1614. package/plugins/kiro/skills/funpixel-store/references/money.md +66 -0
  1615. package/plugins/kiro/skills/funpixel-store/references/purchases-and-review.md +74 -0
  1616. package/plugins/kiro/skills/funpixel-store/references/readiness-page.md +24 -0
  1617. package/plugins/kiro/skills/funpixel-store/references/readiness.md +107 -0
  1618. package/plugins/kiro/skills/funpixel-store/references/steam.md +38 -0
  1619. package/plugins/kiro/skills/funpixel-store/references/unity-store.md +58 -0
  1620. package/plugins/kiro/skills/funpixel-store/references/web-portals.md +43 -0
  1621. package/plugins/kiro/skills/funpixel-unity-game/SKILL.md +110 -0
  1622. package/plugins/kiro/skills/funpixel-unity-game/references/agent-ops.md +54 -0
  1623. package/plugins/kiro/skills/funpixel-unity-game/references/fixes.md +40 -0
  1624. package/plugins/kiro/skills/funpixel-unity-game/references/from-a-web-game.md +108 -0
  1625. package/plugins/kiro/skills/funpixel-unity-game/references/handing-off.md +42 -0
  1626. package/plugins/kiro/skills/funpixel-unity-game/references/performance.md +63 -0
  1627. package/plugins/kiro/skills/funpixel-unity-game/references/probe.md +80 -0
  1628. package/plugins/kiro/skills/funpixel-unity-game/references/shared-mac.md +121 -0
  1629. package/plugins/kiro/skills/funpixel-unity-game/references/studio-packages.md +127 -0
  1630. package/plugins/kiro/skills/funpixel-unity-game/references/traps.md +109 -0
  1631. package/plugins/kiro/skills/funpixel-verify/SKILL.md +109 -0
  1632. package/plugins/kiro/skills/funpixel-verify/references/actors.md +94 -0
  1633. package/plugins/kiro/skills/funpixel-verify/references/bar.md +62 -0
  1634. package/plugins/kiro/skills/funpixel-verify/references/checks.md +69 -0
  1635. package/plugins/kiro/skills/funpixel-verify/references/experience.md +67 -0
  1636. package/plugins/kiro/skills/funpixel-verify/references/eyes.md +54 -0
  1637. package/plugins/kiro/skills/funpixel-verify/references/fidelity.md +126 -0
  1638. package/plugins/kiro/skills/funpixel-verify/references/hit-bar.md +31 -0
  1639. package/plugins/kiro/skills/funpixel-verify/references/journeys.md +77 -0
  1640. package/plugins/kiro/skills/funpixel-verify/references/mobile-qa.md +123 -0
  1641. package/plugins/kiro/skills/funpixel-verify/references/playtest.md +161 -0
  1642. package/plugins/kiro/skills/funpixel-verify/references/review.md +105 -0
  1643. package/plugins/kiro/skills/funpixel-verify/references/rubric.md +67 -0
  1644. package/plugins/kiro/skills/funpixel-verify/references/scenes.md +49 -0
  1645. package/plugins/kiro/skills/funpixel-verify/references/unity.md +60 -0
  1646. package/plugins/kiro/skills/funpixel-world-and-story/SKILL.md +99 -0
  1647. package/plugins/kiro/skills/funpixel-world-and-story/references/atmosphere.md +208 -0
  1648. package/plugins/kiro/skills/funpixel-world-and-story/references/forged-world.md +79 -0
  1649. package/plugins/kiro/skills/funpixel-world-and-story/references/living-world.md +237 -0
  1650. package/plugins/kiro/skills/funpixel-world-and-story/references/opening-and-chapters.md +215 -0
  1651. package/plugins/kiro/skills/funpixel-world-and-story/references/shelf.md +80 -0
  1652. package/plugins/kiro/skills/funpixel-world-and-story/references/story-at-size.md +159 -0
  1653. package/plugins/kiro/skills/funpixel-world-and-story/references/voice.md +175 -0
  1654. package/plugins/kiro/skills/funpixel-world-and-story/references/world-kit.md +154 -0
  1655. package/plugins/robin/LICENSE +115 -0
  1656. package/plugins/robin/README.md +27 -0
  1657. package/plugins/robin/THIRD_PARTY_NOTICES.md +75 -0
  1658. package/plugins/robin/claude/.claude-plugin/plugin.json +19 -0
  1659. package/plugins/robin/claude/.mcp.json +10 -0
  1660. package/plugins/robin/claude/LICENSE +115 -0
  1661. package/plugins/robin/claude/README.md +15 -0
  1662. package/plugins/robin/claude/THIRD_PARTY_NOTICES.md +75 -0
  1663. package/plugins/robin/claude/agents/art-director.md +54 -0
  1664. package/plugins/robin/claude/agents/audio-director.md +51 -0
  1665. package/plugins/robin/claude/agents/critic.md +113 -0
  1666. package/plugins/robin/claude/agents/lane.md +38 -0
  1667. package/plugins/robin/claude/agents/level-designer.md +45 -0
  1668. package/plugins/robin/claude/agents/mobile-qa.md +71 -0
  1669. package/plugins/robin/claude/agents/player.md +144 -0
  1670. package/plugins/robin/claude/agents/qa-lead.md +52 -0
  1671. package/plugins/robin/claude/commands/first-look.md +59 -0
  1672. package/plugins/robin/claude/commands/flow.md +50 -0
  1673. package/plugins/robin/claude/commands/lanes.md +38 -0
  1674. package/plugins/robin/claude/commands/mobile-qa.md +28 -0
  1675. package/plugins/robin/claude/commands/new.md +94 -0
  1676. package/plugins/robin/claude/commands/playtest.md +66 -0
  1677. package/plugins/robin/claude/commands/publish.md +23 -0
  1678. package/plugins/robin/claude/commands/smoke-build.md +25 -0
  1679. package/plugins/robin/claude/commands/verify.md +20 -0
  1680. package/plugins/robin/claude/hooks/brief.md +135 -0
  1681. package/plugins/robin/claude/hooks/critic-receipts.mjs +86 -0
  1682. package/plugins/robin/claude/hooks/durable.mjs +56 -0
  1683. package/plugins/robin/claude/hooks/fence.mjs +30 -0
  1684. package/plugins/robin/claude/hooks/floors.mjs +181 -0
  1685. package/plugins/robin/claude/hooks/flow.mjs +154 -0
  1686. package/plugins/robin/claude/hooks/front-door.mjs +68 -0
  1687. package/plugins/robin/claude/hooks/guidance.json +3 -0
  1688. package/plugins/robin/claude/hooks/hints.mjs +183 -0
  1689. package/plugins/robin/claude/hooks/hooks.json +62 -0
  1690. package/plugins/robin/claude/hooks/lib.mjs +362 -0
  1691. package/plugins/robin/claude/hooks/memory.mjs +92 -0
  1692. package/plugins/robin/claude/hooks/mobile-qa.mjs +43 -0
  1693. package/plugins/robin/claude/hooks/note.mjs +63 -0
  1694. package/plugins/robin/claude/hooks/nudge.mjs +98 -0
  1695. package/plugins/robin/claude/hooks/pipeline.mjs +207 -0
  1696. package/plugins/robin/claude/hooks/prompt.mjs +51 -0
  1697. package/plugins/robin/claude/hooks/quality.mjs +310 -0
  1698. package/plugins/robin/claude/hooks/reach.mjs +93 -0
  1699. package/plugins/robin/claude/hooks/scope.mjs +44 -0
  1700. package/plugins/robin/claude/hooks/session-log.mjs +101 -0
  1701. package/plugins/robin/claude/hooks/session-start.mjs +194 -0
  1702. package/plugins/robin/claude/hooks/skill-names.json +19 -0
  1703. package/plugins/robin/claude/hooks/stop-gate.mjs +303 -0
  1704. package/plugins/robin/claude/hooks/vendor/direct/round.mjs +81 -0
  1705. package/plugins/robin/claude/hooks/vendor/find/names.mjs +46 -0
  1706. package/plugins/robin/claude/hooks/vendor/firstlook/set.mjs +219 -0
  1707. package/plugins/robin/claude/hooks/vendor/flow/flow.mjs +456 -0
  1708. package/plugins/robin/claude/hooks/vendor/flow/look.mjs +140 -0
  1709. package/plugins/robin/claude/hooks/vendor/gdd/book.mjs +484 -0
  1710. package/plugins/robin/claude/hooks/vendor/gdd/chapters.mjs +72 -0
  1711. package/plugins/robin/claude/hooks/vendor/gdd/doc.mjs +33 -0
  1712. package/plugins/robin/claude/hooks/vendor/gdd/levelmap.mjs +429 -0
  1713. package/plugins/robin/claude/hooks/vendor/gdd/rubric.mjs +251 -0
  1714. package/plugins/robin/claude/hooks/vendor/gdd/worth.mjs +508 -0
  1715. package/plugins/robin/claude/hooks/vendor/lanes/fence.mjs +109 -0
  1716. package/plugins/robin/claude/hooks/vendor/lanes/lanes.mjs +356 -0
  1717. package/plugins/robin/claude/hooks/vendor/lanes/union.mjs +63 -0
  1718. package/plugins/robin/claude/hooks/vendor/lessons/motifs.mjs +98 -0
  1719. package/plugins/robin/claude/hooks/vendor/lessons/store.mjs +57 -0
  1720. package/plugins/robin/claude/hooks/vendor/look/made-of.mjs +243 -0
  1721. package/plugins/robin/claude/hooks/vendor/look/roles.mjs +110 -0
  1722. package/plugins/robin/claude/hooks/vendor/memory/decisions.mjs +139 -0
  1723. package/plugins/robin/claude/hooks/vendor/memory/journal.mjs +109 -0
  1724. package/plugins/robin/claude/hooks/vendor/owner/bar.mjs +286 -0
  1725. package/plugins/robin/claude/hooks/vendor/pipeline/pipeline.mjs +930 -0
  1726. package/plugins/robin/claude/hooks/vendor/playtest/keep.mjs +111 -0
  1727. package/plugins/robin/claude/hooks/vendor/playtest/stuck.mjs +48 -0
  1728. package/plugins/robin/claude/hooks/vendor/progress/holds.mjs +107 -0
  1729. package/plugins/robin/claude/hooks/vendor/progress/progress.mjs +301 -0
  1730. package/plugins/robin/claude/hooks/vendor/sim/judge.mjs +241 -0
  1731. package/plugins/robin/claude/hooks/vendor/spec/rooms.mjs +189 -0
  1732. package/plugins/robin/claude/hooks/vendor/spec/tunables.mjs +75 -0
  1733. package/plugins/robin/claude/hooks/vendor/stage/harnessignore.mjs +91 -0
  1734. package/plugins/robin/claude/hooks/vendor/stage/stage.mjs +58 -0
  1735. package/plugins/robin/claude/hooks/vendor/status/board.mjs +173 -0
  1736. package/plugins/robin/claude/hooks/vendor/status/file.mjs +113 -0
  1737. package/plugins/robin/claude/hooks/vendor/studio/forks.mjs +94 -0
  1738. package/plugins/robin/claude/hooks/vendor/studio/pitch.mjs +295 -0
  1739. package/plugins/robin/claude/hooks/vendor/verify/fingerprint.mjs +73 -0
  1740. package/plugins/robin/claude/hooks/vendor/verify/reads.mjs +33 -0
  1741. package/plugins/robin/claude/hooks/vendor/wow/picks.mjs +75 -0
  1742. package/plugins/robin/claude/skills/3d/SKILL.md +89 -0
  1743. package/plugins/robin/claude/skills/3d/references/bake-off.md +48 -0
  1744. package/plugins/robin/claude/skills/3d/references/bench.md +103 -0
  1745. package/plugins/robin/claude/skills/3d/references/budgets.md +48 -0
  1746. package/plugins/robin/claude/skills/3d/references/characters.md +67 -0
  1747. package/plugins/robin/claude/skills/3d/references/concept-image.md +47 -0
  1748. package/plugins/robin/claude/skills/3d/references/engine-targets.md +31 -0
  1749. package/plugins/robin/claude/skills/3d/references/hero-route.md +104 -0
  1750. package/plugins/robin/claude/skills/3d/references/level-spec.md +109 -0
  1751. package/plugins/robin/claude/skills/3d/references/levels.md +84 -0
  1752. package/plugins/robin/claude/skills/3d/references/light-and-places.md +141 -0
  1753. package/plugins/robin/claude/skills/3d/references/models.md +111 -0
  1754. package/plugins/robin/claude/skills/3d/references/painted-target.md +184 -0
  1755. package/plugins/robin/claude/skills/3d/references/reading.md +41 -0
  1756. package/plugins/robin/claude/skills/3d/references/skin.md +85 -0
  1757. package/plugins/robin/claude/skills/3d/references/skyboxes.md +65 -0
  1758. package/plugins/robin/claude/skills/3d/references/textures.md +71 -0
  1759. package/plugins/robin/claude/skills/3d/references/three-loading.md +199 -0
  1760. package/plugins/robin/claude/skills/3d/references/unity.md +78 -0
  1761. package/plugins/robin/claude/skills/art/SKILL.md +104 -0
  1762. package/plugins/robin/claude/skills/art/references/2d-assets.md +108 -0
  1763. package/plugins/robin/claude/skills/art/references/animation.md +126 -0
  1764. package/plugins/robin/claude/skills/art/references/cast.md +73 -0
  1765. package/plugins/robin/claude/skills/art/references/characters.md +49 -0
  1766. package/plugins/robin/claude/skills/art/references/cost.md +107 -0
  1767. package/plugins/robin/claude/skills/art/references/effects.md +85 -0
  1768. package/plugins/robin/claude/skills/art/references/frames.md +87 -0
  1769. package/plugins/robin/claude/skills/art/references/judging-frames.md +64 -0
  1770. package/plugins/robin/claude/skills/art/references/look.md +102 -0
  1771. package/plugins/robin/claude/skills/art/references/measure.md +119 -0
  1772. package/plugins/robin/claude/skills/art/references/pipeline.md +185 -0
  1773. package/plugins/robin/claude/skills/art/references/pixi.md +277 -0
  1774. package/plugins/robin/claude/skills/art/references/planes.md +27 -0
  1775. package/plugins/robin/claude/skills/art/references/prompts.md +171 -0
  1776. package/plugins/robin/claude/skills/art/references/sheets.md +141 -0
  1777. package/plugins/robin/claude/skills/art/references/style-file.md +39 -0
  1778. package/plugins/robin/claude/skills/art/references/three.md +232 -0
  1779. package/plugins/robin/claude/skills/art/references/ui.md +163 -0
  1780. package/plugins/robin/claude/skills/art/references/unity.md +78 -0
  1781. package/plugins/robin/claude/skills/art/references/wiring.md +41 -0
  1782. package/plugins/robin/claude/skills/audio/SKILL.md +92 -0
  1783. package/plugins/robin/claude/skills/audio/references/adaptive-music.md +204 -0
  1784. package/plugins/robin/claude/skills/audio/references/engine.md +78 -0
  1785. package/plugins/robin/claude/skills/audio/references/measure.md +101 -0
  1786. package/plugins/robin/claude/skills/audio/references/unity.md +73 -0
  1787. package/plugins/robin/claude/skills/feedback/SKILL.md +120 -0
  1788. package/plugins/robin/claude/skills/feedback/references/memory.md +99 -0
  1789. package/plugins/robin/claude/skills/game-feel/SKILL.md +104 -0
  1790. package/plugins/robin/claude/skills/game-feel/references/contact.md +110 -0
  1791. package/plugins/robin/claude/skills/game-feel/references/measure.md +125 -0
  1792. package/plugins/robin/claude/skills/game-feel/references/motion.md +134 -0
  1793. package/plugins/robin/claude/skills/game-feel/references/payoffs.md +35 -0
  1794. package/plugins/robin/claude/skills/game-feel/references/recipes.md +107 -0
  1795. package/plugins/robin/claude/skills/game-feel/references/unity.md +78 -0
  1796. package/plugins/robin/claude/skills/game-logic/SKILL.md +113 -0
  1797. package/plugins/robin/claude/skills/game-logic/references/balance.md +88 -0
  1798. package/plugins/robin/claude/skills/game-logic/references/content-at-scale.md +147 -0
  1799. package/plugins/robin/claude/skills/game-logic/references/depth.md +89 -0
  1800. package/plugins/robin/claude/skills/game-logic/references/escalation.md +41 -0
  1801. package/plugins/robin/claude/skills/game-logic/references/levels.md +61 -0
  1802. package/plugins/robin/claude/skills/game-logic/references/probes.md +122 -0
  1803. package/plugins/robin/claude/skills/game-logic/references/unity.md +108 -0
  1804. package/plugins/robin/claude/skills/game-spine/SKILL.md +118 -0
  1805. package/plugins/robin/claude/skills/game-spine/references/camera.md +94 -0
  1806. package/plugins/robin/claude/skills/game-spine/references/multiplayer.md +101 -0
  1807. package/plugins/robin/claude/skills/game-spine/references/patterns.md +103 -0
  1808. package/plugins/robin/claude/skills/game-spine/references/performance.md +96 -0
  1809. package/plugins/robin/claude/skills/game-spine/references/pixi.md +26 -0
  1810. package/plugins/robin/claude/skills/game-spine/references/replay.md +102 -0
  1811. package/plugins/robin/claude/skills/game-spine/references/room-api.md +63 -0
  1812. package/plugins/robin/claude/skills/game-spine/references/room-modes.md +40 -0
  1813. package/plugins/robin/claude/skills/game-spine/references/sdk.md +114 -0
  1814. package/plugins/robin/claude/skills/game-spine/references/three.md +62 -0
  1815. package/plugins/robin/claude/skills/gdd/SKILL.md +116 -0
  1816. package/plugins/robin/claude/skills/gdd/references/as-built.md +40 -0
  1817. package/plugins/robin/claude/skills/gdd/references/design-measures.md +24 -0
  1818. package/plugins/robin/claude/skills/gdd/references/design-note.md +88 -0
  1819. package/plugins/robin/claude/skills/gdd/references/experience.md +92 -0
  1820. package/plugins/robin/claude/skills/gdd/references/first-look.md +226 -0
  1821. package/plugins/robin/claude/skills/gdd/references/floors.md +62 -0
  1822. package/plugins/robin/claude/skills/gdd/references/frame.md +75 -0
  1823. package/plugins/robin/claude/skills/gdd/references/gameplay-contract.md +81 -0
  1824. package/plugins/robin/claude/skills/gdd/references/gdd-template.md +417 -0
  1825. package/plugins/robin/claude/skills/gdd/references/genre-card.md +109 -0
  1826. package/plugins/robin/claude/skills/gdd/references/genre-platformer.md +159 -0
  1827. package/plugins/robin/claude/skills/gdd/references/genre-puzzle.md +145 -0
  1828. package/plugins/robin/claude/skills/gdd/references/genre-racing.md +137 -0
  1829. package/plugins/robin/claude/skills/gdd/references/genre-rpg.md +125 -0
  1830. package/plugins/robin/claude/skills/gdd/references/genre-shooter.md +128 -0
  1831. package/plugins/robin/claude/skills/gdd/references/genre-simulation.md +112 -0
  1832. package/plugins/robin/claude/skills/gdd/references/genre-strategy.md +116 -0
  1833. package/plugins/robin/claude/skills/gdd/references/genre-survival.md +122 -0
  1834. package/plugins/robin/claude/skills/gdd/references/in-the-loop.md +106 -0
  1835. package/plugins/robin/claude/skills/gdd/references/invent-first.md +131 -0
  1836. package/plugins/robin/claude/skills/gdd/references/level-and-fun.md +112 -0
  1837. package/plugins/robin/claude/skills/gdd/references/pages.md +50 -0
  1838. package/plugins/robin/claude/skills/gdd/references/plan-at-size.md +140 -0
  1839. package/plugins/robin/claude/skills/gdd/references/production-tiers.md +117 -0
  1840. package/plugins/robin/claude/skills/gdd/references/sections.md +148 -0
  1841. package/plugins/robin/claude/skills/gdd/references/spec-folder.md +131 -0
  1842. package/plugins/robin/claude/skills/gdd/references/start.md +110 -0
  1843. package/plugins/robin/claude/skills/gdd/references/starters.md +175 -0
  1844. package/plugins/robin/claude/skills/gdd/references/the-path.md +134 -0
  1845. package/plugins/robin/claude/skills/gdd/references/track.md +29 -0
  1846. package/plugins/robin/claude/skills/gdd/references/world-and-identity.md +165 -0
  1847. package/plugins/robin/claude/skills/gdd/references/worth.md +74 -0
  1848. package/plugins/robin/claude/skills/mobile-ui/SKILL.md +107 -0
  1849. package/plugins/robin/claude/skills/mobile-ui/references/contrast.md +123 -0
  1850. package/plugins/robin/claude/skills/mobile-ui/references/hud-and-title.md +108 -0
  1851. package/plugins/robin/claude/skills/mobile-ui/references/hud-genres.md +124 -0
  1852. package/plugins/robin/claude/skills/mobile-ui/references/phone-check.md +156 -0
  1853. package/plugins/robin/claude/skills/mobile-ui/references/recipes.md +279 -0
  1854. package/plugins/robin/claude/skills/mobile-ui/references/restyle-ui.md +229 -0
  1855. package/plugins/robin/claude/skills/mobile-ui/references/unity.md +61 -0
  1856. package/plugins/robin/claude/skills/publishing/SKILL.md +109 -0
  1857. package/plugins/robin/claude/skills/publishing/references/compose.md +113 -0
  1858. package/plugins/robin/claude/skills/publishing/references/motion.md +120 -0
  1859. package/plugins/robin/claude/skills/publishing/references/networks.md +75 -0
  1860. package/plugins/robin/claude/skills/publishing/references/other-hosts.md +65 -0
  1861. package/plugins/robin/claude/skills/publishing/references/playable-ad.md +90 -0
  1862. package/plugins/robin/claude/skills/publishing/references/server-build.md +85 -0
  1863. package/plugins/robin/claude/skills/publishing/references/store-shots.md +85 -0
  1864. package/plugins/robin/claude/skills/publishing/references/trailer.md +55 -0
  1865. package/plugins/robin/claude/skills/publishing/references/what-ships.md +30 -0
  1866. package/plugins/robin/claude/skills/store/SKILL.md +81 -0
  1867. package/plugins/robin/claude/skills/store/references/app-store.md +73 -0
  1868. package/plugins/robin/claude/skills/store/references/google-play.md +141 -0
  1869. package/plugins/robin/claude/skills/store/references/ios-release.md +64 -0
  1870. package/plugins/robin/claude/skills/store/references/money.md +66 -0
  1871. package/plugins/robin/claude/skills/store/references/purchases-and-review.md +74 -0
  1872. package/plugins/robin/claude/skills/store/references/readiness-page.md +24 -0
  1873. package/plugins/robin/claude/skills/store/references/readiness.md +107 -0
  1874. package/plugins/robin/claude/skills/store/references/steam.md +38 -0
  1875. package/plugins/robin/claude/skills/store/references/unity-store.md +58 -0
  1876. package/plugins/robin/claude/skills/store/references/web-portals.md +43 -0
  1877. package/plugins/robin/claude/skills/unity-game/SKILL.md +110 -0
  1878. package/plugins/robin/claude/skills/unity-game/references/agent-ops.md +54 -0
  1879. package/plugins/robin/claude/skills/unity-game/references/fixes.md +40 -0
  1880. package/plugins/robin/claude/skills/unity-game/references/from-a-web-game.md +108 -0
  1881. package/plugins/robin/claude/skills/unity-game/references/handing-off.md +42 -0
  1882. package/plugins/robin/claude/skills/unity-game/references/performance.md +63 -0
  1883. package/plugins/robin/claude/skills/unity-game/references/probe.md +80 -0
  1884. package/plugins/robin/claude/skills/unity-game/references/shared-mac.md +121 -0
  1885. package/plugins/robin/claude/skills/unity-game/references/studio-packages.md +127 -0
  1886. package/plugins/robin/claude/skills/unity-game/references/traps.md +109 -0
  1887. package/plugins/robin/claude/skills/verifying/SKILL.md +109 -0
  1888. package/plugins/robin/claude/skills/verifying/references/actors.md +94 -0
  1889. package/plugins/robin/claude/skills/verifying/references/bar.md +62 -0
  1890. package/plugins/robin/claude/skills/verifying/references/checks.md +69 -0
  1891. package/plugins/robin/claude/skills/verifying/references/experience.md +67 -0
  1892. package/plugins/robin/claude/skills/verifying/references/eyes.md +54 -0
  1893. package/plugins/robin/claude/skills/verifying/references/fidelity.md +126 -0
  1894. package/plugins/robin/claude/skills/verifying/references/hit-bar.md +31 -0
  1895. package/plugins/robin/claude/skills/verifying/references/journeys.md +77 -0
  1896. package/plugins/robin/claude/skills/verifying/references/mobile-qa.md +123 -0
  1897. package/plugins/robin/claude/skills/verifying/references/playtest.md +161 -0
  1898. package/plugins/robin/claude/skills/verifying/references/review.md +105 -0
  1899. package/plugins/robin/claude/skills/verifying/references/rubric.md +67 -0
  1900. package/plugins/robin/claude/skills/verifying/references/scenes.md +49 -0
  1901. package/plugins/robin/claude/skills/verifying/references/unity.md +60 -0
  1902. package/plugins/robin/claude/skills/world-and-story/SKILL.md +99 -0
  1903. package/plugins/robin/claude/skills/world-and-story/references/atmosphere.md +208 -0
  1904. package/plugins/robin/claude/skills/world-and-story/references/forged-world.md +79 -0
  1905. package/plugins/robin/claude/skills/world-and-story/references/living-world.md +237 -0
  1906. package/plugins/robin/claude/skills/world-and-story/references/opening-and-chapters.md +215 -0
  1907. package/plugins/robin/claude/skills/world-and-story/references/shelf.md +80 -0
  1908. package/plugins/robin/claude/skills/world-and-story/references/story-at-size.md +159 -0
  1909. package/plugins/robin/claude/skills/world-and-story/references/voice.md +175 -0
  1910. package/plugins/robin/claude/skills/world-and-story/references/world-kit.md +154 -0
  1911. package/plugins/robin/mcp-servers.json +25 -0
  1912. package/plugins/robin/plugin.json +20 -0
  1913. package/plugins/robin/skills/fp-first-look/SKILL.md +59 -0
  1914. package/plugins/robin/skills/fp-flow/SKILL.md +50 -0
  1915. package/plugins/robin/skills/fp-lanes/SKILL.md +38 -0
  1916. package/plugins/robin/skills/fp-mobile-qa/SKILL.md +28 -0
  1917. package/plugins/robin/skills/fp-new/SKILL.md +94 -0
  1918. package/plugins/robin/skills/fp-playtest/SKILL.md +66 -0
  1919. package/plugins/robin/skills/fp-publish/SKILL.md +23 -0
  1920. package/plugins/robin/skills/fp-smoke-build/SKILL.md +25 -0
  1921. package/plugins/robin/skills/fp-verify/SKILL.md +20 -0
  1922. package/plugins/robin/skills/funpixel-3d/SKILL.md +89 -0
  1923. package/plugins/robin/skills/funpixel-3d/references/bake-off.md +48 -0
  1924. package/plugins/robin/skills/funpixel-3d/references/bench.md +103 -0
  1925. package/plugins/robin/skills/funpixel-3d/references/budgets.md +48 -0
  1926. package/plugins/robin/skills/funpixel-3d/references/characters.md +67 -0
  1927. package/plugins/robin/skills/funpixel-3d/references/concept-image.md +47 -0
  1928. package/plugins/robin/skills/funpixel-3d/references/engine-targets.md +31 -0
  1929. package/plugins/robin/skills/funpixel-3d/references/hero-route.md +104 -0
  1930. package/plugins/robin/skills/funpixel-3d/references/level-spec.md +109 -0
  1931. package/plugins/robin/skills/funpixel-3d/references/levels.md +84 -0
  1932. package/plugins/robin/skills/funpixel-3d/references/light-and-places.md +141 -0
  1933. package/plugins/robin/skills/funpixel-3d/references/models.md +111 -0
  1934. package/plugins/robin/skills/funpixel-3d/references/painted-target.md +184 -0
  1935. package/plugins/robin/skills/funpixel-3d/references/reading.md +41 -0
  1936. package/plugins/robin/skills/funpixel-3d/references/skin.md +85 -0
  1937. package/plugins/robin/skills/funpixel-3d/references/skyboxes.md +65 -0
  1938. package/plugins/robin/skills/funpixel-3d/references/textures.md +71 -0
  1939. package/plugins/robin/skills/funpixel-3d/references/three-loading.md +199 -0
  1940. package/plugins/robin/skills/funpixel-3d/references/unity.md +78 -0
  1941. package/plugins/robin/skills/funpixel-art/SKILL.md +104 -0
  1942. package/plugins/robin/skills/funpixel-art/references/2d-assets.md +108 -0
  1943. package/plugins/robin/skills/funpixel-art/references/animation.md +126 -0
  1944. package/plugins/robin/skills/funpixel-art/references/cast.md +73 -0
  1945. package/plugins/robin/skills/funpixel-art/references/characters.md +49 -0
  1946. package/plugins/robin/skills/funpixel-art/references/cost.md +107 -0
  1947. package/plugins/robin/skills/funpixel-art/references/effects.md +85 -0
  1948. package/plugins/robin/skills/funpixel-art/references/frames.md +87 -0
  1949. package/plugins/robin/skills/funpixel-art/references/judging-frames.md +64 -0
  1950. package/plugins/robin/skills/funpixel-art/references/look.md +102 -0
  1951. package/plugins/robin/skills/funpixel-art/references/measure.md +119 -0
  1952. package/plugins/robin/skills/funpixel-art/references/pipeline.md +185 -0
  1953. package/plugins/robin/skills/funpixel-art/references/pixi.md +277 -0
  1954. package/plugins/robin/skills/funpixel-art/references/planes.md +27 -0
  1955. package/plugins/robin/skills/funpixel-art/references/prompts.md +171 -0
  1956. package/plugins/robin/skills/funpixel-art/references/sheets.md +141 -0
  1957. package/plugins/robin/skills/funpixel-art/references/style-file.md +39 -0
  1958. package/plugins/robin/skills/funpixel-art/references/three.md +232 -0
  1959. package/plugins/robin/skills/funpixel-art/references/ui.md +163 -0
  1960. package/plugins/robin/skills/funpixel-art/references/unity.md +78 -0
  1961. package/plugins/robin/skills/funpixel-art/references/wiring.md +41 -0
  1962. package/plugins/robin/skills/funpixel-audio/SKILL.md +92 -0
  1963. package/plugins/robin/skills/funpixel-audio/references/adaptive-music.md +204 -0
  1964. package/plugins/robin/skills/funpixel-audio/references/engine.md +78 -0
  1965. package/plugins/robin/skills/funpixel-audio/references/measure.md +101 -0
  1966. package/plugins/robin/skills/funpixel-audio/references/unity.md +73 -0
  1967. package/plugins/robin/skills/funpixel-brief/SKILL.md +163 -0
  1968. package/plugins/robin/skills/funpixel-feedback/SKILL.md +120 -0
  1969. package/plugins/robin/skills/funpixel-feedback/references/memory.md +99 -0
  1970. package/plugins/robin/skills/funpixel-game-feel/SKILL.md +104 -0
  1971. package/plugins/robin/skills/funpixel-game-feel/references/contact.md +110 -0
  1972. package/plugins/robin/skills/funpixel-game-feel/references/measure.md +125 -0
  1973. package/plugins/robin/skills/funpixel-game-feel/references/motion.md +134 -0
  1974. package/plugins/robin/skills/funpixel-game-feel/references/payoffs.md +35 -0
  1975. package/plugins/robin/skills/funpixel-game-feel/references/recipes.md +107 -0
  1976. package/plugins/robin/skills/funpixel-game-feel/references/unity.md +78 -0
  1977. package/plugins/robin/skills/funpixel-game-logic/SKILL.md +113 -0
  1978. package/plugins/robin/skills/funpixel-game-logic/references/balance.md +88 -0
  1979. package/plugins/robin/skills/funpixel-game-logic/references/content-at-scale.md +147 -0
  1980. package/plugins/robin/skills/funpixel-game-logic/references/depth.md +89 -0
  1981. package/plugins/robin/skills/funpixel-game-logic/references/escalation.md +41 -0
  1982. package/plugins/robin/skills/funpixel-game-logic/references/levels.md +61 -0
  1983. package/plugins/robin/skills/funpixel-game-logic/references/probes.md +122 -0
  1984. package/plugins/robin/skills/funpixel-game-logic/references/unity.md +108 -0
  1985. package/plugins/robin/skills/funpixel-game-spine/SKILL.md +118 -0
  1986. package/plugins/robin/skills/funpixel-game-spine/references/camera.md +94 -0
  1987. package/plugins/robin/skills/funpixel-game-spine/references/multiplayer.md +101 -0
  1988. package/plugins/robin/skills/funpixel-game-spine/references/patterns.md +103 -0
  1989. package/plugins/robin/skills/funpixel-game-spine/references/performance.md +96 -0
  1990. package/plugins/robin/skills/funpixel-game-spine/references/pixi.md +26 -0
  1991. package/plugins/robin/skills/funpixel-game-spine/references/replay.md +102 -0
  1992. package/plugins/robin/skills/funpixel-game-spine/references/room-api.md +63 -0
  1993. package/plugins/robin/skills/funpixel-game-spine/references/room-modes.md +40 -0
  1994. package/plugins/robin/skills/funpixel-game-spine/references/sdk.md +114 -0
  1995. package/plugins/robin/skills/funpixel-game-spine/references/three.md +62 -0
  1996. package/plugins/robin/skills/funpixel-gdd/SKILL.md +116 -0
  1997. package/plugins/robin/skills/funpixel-gdd/references/as-built.md +40 -0
  1998. package/plugins/robin/skills/funpixel-gdd/references/design-measures.md +24 -0
  1999. package/plugins/robin/skills/funpixel-gdd/references/design-note.md +88 -0
  2000. package/plugins/robin/skills/funpixel-gdd/references/experience.md +92 -0
  2001. package/plugins/robin/skills/funpixel-gdd/references/first-look.md +226 -0
  2002. package/plugins/robin/skills/funpixel-gdd/references/floors.md +62 -0
  2003. package/plugins/robin/skills/funpixel-gdd/references/frame.md +75 -0
  2004. package/plugins/robin/skills/funpixel-gdd/references/gameplay-contract.md +81 -0
  2005. package/plugins/robin/skills/funpixel-gdd/references/gdd-template.md +417 -0
  2006. package/plugins/robin/skills/funpixel-gdd/references/genre-card.md +109 -0
  2007. package/plugins/robin/skills/funpixel-gdd/references/genre-platformer.md +159 -0
  2008. package/plugins/robin/skills/funpixel-gdd/references/genre-puzzle.md +145 -0
  2009. package/plugins/robin/skills/funpixel-gdd/references/genre-racing.md +137 -0
  2010. package/plugins/robin/skills/funpixel-gdd/references/genre-rpg.md +125 -0
  2011. package/plugins/robin/skills/funpixel-gdd/references/genre-shooter.md +128 -0
  2012. package/plugins/robin/skills/funpixel-gdd/references/genre-simulation.md +112 -0
  2013. package/plugins/robin/skills/funpixel-gdd/references/genre-strategy.md +116 -0
  2014. package/plugins/robin/skills/funpixel-gdd/references/genre-survival.md +122 -0
  2015. package/plugins/robin/skills/funpixel-gdd/references/in-the-loop.md +106 -0
  2016. package/plugins/robin/skills/funpixel-gdd/references/invent-first.md +131 -0
  2017. package/plugins/robin/skills/funpixel-gdd/references/level-and-fun.md +112 -0
  2018. package/plugins/robin/skills/funpixel-gdd/references/pages.md +50 -0
  2019. package/plugins/robin/skills/funpixel-gdd/references/plan-at-size.md +140 -0
  2020. package/plugins/robin/skills/funpixel-gdd/references/production-tiers.md +117 -0
  2021. package/plugins/robin/skills/funpixel-gdd/references/sections.md +148 -0
  2022. package/plugins/robin/skills/funpixel-gdd/references/spec-folder.md +131 -0
  2023. package/plugins/robin/skills/funpixel-gdd/references/start.md +110 -0
  2024. package/plugins/robin/skills/funpixel-gdd/references/starters.md +175 -0
  2025. package/plugins/robin/skills/funpixel-gdd/references/the-path.md +134 -0
  2026. package/plugins/robin/skills/funpixel-gdd/references/track.md +29 -0
  2027. package/plugins/robin/skills/funpixel-gdd/references/world-and-identity.md +165 -0
  2028. package/plugins/robin/skills/funpixel-gdd/references/worth.md +74 -0
  2029. package/plugins/robin/skills/funpixel-mobile-ui/SKILL.md +107 -0
  2030. package/plugins/robin/skills/funpixel-mobile-ui/references/contrast.md +123 -0
  2031. package/plugins/robin/skills/funpixel-mobile-ui/references/hud-and-title.md +108 -0
  2032. package/plugins/robin/skills/funpixel-mobile-ui/references/hud-genres.md +124 -0
  2033. package/plugins/robin/skills/funpixel-mobile-ui/references/phone-check.md +156 -0
  2034. package/plugins/robin/skills/funpixel-mobile-ui/references/recipes.md +279 -0
  2035. package/plugins/robin/skills/funpixel-mobile-ui/references/restyle-ui.md +229 -0
  2036. package/plugins/robin/skills/funpixel-mobile-ui/references/unity.md +61 -0
  2037. package/plugins/robin/skills/funpixel-publish/SKILL.md +109 -0
  2038. package/plugins/robin/skills/funpixel-publish/references/compose.md +113 -0
  2039. package/plugins/robin/skills/funpixel-publish/references/motion.md +120 -0
  2040. package/plugins/robin/skills/funpixel-publish/references/networks.md +75 -0
  2041. package/plugins/robin/skills/funpixel-publish/references/other-hosts.md +65 -0
  2042. package/plugins/robin/skills/funpixel-publish/references/playable-ad.md +90 -0
  2043. package/plugins/robin/skills/funpixel-publish/references/server-build.md +85 -0
  2044. package/plugins/robin/skills/funpixel-publish/references/store-shots.md +85 -0
  2045. package/plugins/robin/skills/funpixel-publish/references/trailer.md +55 -0
  2046. package/plugins/robin/skills/funpixel-publish/references/what-ships.md +30 -0
  2047. package/plugins/robin/skills/funpixel-store/SKILL.md +81 -0
  2048. package/plugins/robin/skills/funpixel-store/references/app-store.md +73 -0
  2049. package/plugins/robin/skills/funpixel-store/references/google-play.md +141 -0
  2050. package/plugins/robin/skills/funpixel-store/references/ios-release.md +64 -0
  2051. package/plugins/robin/skills/funpixel-store/references/money.md +66 -0
  2052. package/plugins/robin/skills/funpixel-store/references/purchases-and-review.md +74 -0
  2053. package/plugins/robin/skills/funpixel-store/references/readiness-page.md +24 -0
  2054. package/plugins/robin/skills/funpixel-store/references/readiness.md +107 -0
  2055. package/plugins/robin/skills/funpixel-store/references/steam.md +38 -0
  2056. package/plugins/robin/skills/funpixel-store/references/unity-store.md +58 -0
  2057. package/plugins/robin/skills/funpixel-store/references/web-portals.md +43 -0
  2058. package/plugins/robin/skills/funpixel-unity-game/SKILL.md +110 -0
  2059. package/plugins/robin/skills/funpixel-unity-game/references/agent-ops.md +54 -0
  2060. package/plugins/robin/skills/funpixel-unity-game/references/fixes.md +40 -0
  2061. package/plugins/robin/skills/funpixel-unity-game/references/from-a-web-game.md +108 -0
  2062. package/plugins/robin/skills/funpixel-unity-game/references/handing-off.md +42 -0
  2063. package/plugins/robin/skills/funpixel-unity-game/references/performance.md +63 -0
  2064. package/plugins/robin/skills/funpixel-unity-game/references/probe.md +80 -0
  2065. package/plugins/robin/skills/funpixel-unity-game/references/shared-mac.md +121 -0
  2066. package/plugins/robin/skills/funpixel-unity-game/references/studio-packages.md +127 -0
  2067. package/plugins/robin/skills/funpixel-unity-game/references/traps.md +109 -0
  2068. package/plugins/robin/skills/funpixel-verify/SKILL.md +109 -0
  2069. package/plugins/robin/skills/funpixel-verify/references/actors.md +94 -0
  2070. package/plugins/robin/skills/funpixel-verify/references/bar.md +62 -0
  2071. package/plugins/robin/skills/funpixel-verify/references/checks.md +69 -0
  2072. package/plugins/robin/skills/funpixel-verify/references/experience.md +67 -0
  2073. package/plugins/robin/skills/funpixel-verify/references/eyes.md +54 -0
  2074. package/plugins/robin/skills/funpixel-verify/references/fidelity.md +126 -0
  2075. package/plugins/robin/skills/funpixel-verify/references/hit-bar.md +31 -0
  2076. package/plugins/robin/skills/funpixel-verify/references/journeys.md +77 -0
  2077. package/plugins/robin/skills/funpixel-verify/references/mobile-qa.md +123 -0
  2078. package/plugins/robin/skills/funpixel-verify/references/playtest.md +161 -0
  2079. package/plugins/robin/skills/funpixel-verify/references/review.md +105 -0
  2080. package/plugins/robin/skills/funpixel-verify/references/rubric.md +67 -0
  2081. package/plugins/robin/skills/funpixel-verify/references/scenes.md +49 -0
  2082. package/plugins/robin/skills/funpixel-verify/references/unity.md +60 -0
  2083. package/plugins/robin/skills/funpixel-world-and-story/SKILL.md +99 -0
  2084. package/plugins/robin/skills/funpixel-world-and-story/references/atmosphere.md +208 -0
  2085. package/plugins/robin/skills/funpixel-world-and-story/references/forged-world.md +79 -0
  2086. package/plugins/robin/skills/funpixel-world-and-story/references/living-world.md +237 -0
  2087. package/plugins/robin/skills/funpixel-world-and-story/references/opening-and-chapters.md +215 -0
  2088. package/plugins/robin/skills/funpixel-world-and-story/references/shelf.md +80 -0
  2089. package/plugins/robin/skills/funpixel-world-and-story/references/story-at-size.md +159 -0
  2090. package/plugins/robin/skills/funpixel-world-and-story/references/voice.md +175 -0
  2091. package/plugins/robin/skills/funpixel-world-and-story/references/world-kit.md +154 -0
  2092. package/templates/common/.agents/skills/funpixel-3d/SKILL.md +89 -0
  2093. package/templates/common/.agents/skills/funpixel-3d/references/bake-off.md +48 -0
  2094. package/templates/common/.agents/skills/funpixel-3d/references/bench.md +103 -0
  2095. package/templates/common/.agents/skills/funpixel-3d/references/budgets.md +48 -0
  2096. package/templates/common/.agents/skills/funpixel-3d/references/characters.md +67 -0
  2097. package/templates/common/.agents/skills/funpixel-3d/references/concept-image.md +47 -0
  2098. package/templates/common/.agents/skills/funpixel-3d/references/engine-targets.md +31 -0
  2099. package/templates/common/.agents/skills/funpixel-3d/references/hero-route.md +104 -0
  2100. package/templates/common/.agents/skills/funpixel-3d/references/level-spec.md +109 -0
  2101. package/templates/common/.agents/skills/funpixel-3d/references/levels.md +84 -0
  2102. package/templates/common/.agents/skills/funpixel-3d/references/light-and-places.md +141 -0
  2103. package/templates/common/.agents/skills/funpixel-3d/references/models.md +111 -0
  2104. package/templates/common/.agents/skills/funpixel-3d/references/painted-target.md +184 -0
  2105. package/templates/common/.agents/skills/funpixel-3d/references/reading.md +41 -0
  2106. package/templates/common/.agents/skills/funpixel-3d/references/skin.md +85 -0
  2107. package/templates/common/.agents/skills/funpixel-3d/references/skyboxes.md +65 -0
  2108. package/templates/common/.agents/skills/funpixel-3d/references/textures.md +71 -0
  2109. package/templates/common/.agents/skills/funpixel-3d/references/three-loading.md +199 -0
  2110. package/templates/common/.agents/skills/funpixel-3d/references/unity.md +78 -0
  2111. package/templates/common/.agents/skills/funpixel-art/SKILL.md +104 -0
  2112. package/templates/common/.agents/skills/funpixel-art/references/2d-assets.md +108 -0
  2113. package/templates/common/.agents/skills/funpixel-art/references/animation.md +126 -0
  2114. package/templates/common/.agents/skills/funpixel-art/references/cast.md +73 -0
  2115. package/templates/common/.agents/skills/funpixel-art/references/characters.md +49 -0
  2116. package/templates/common/.agents/skills/funpixel-art/references/cost.md +107 -0
  2117. package/templates/common/.agents/skills/funpixel-art/references/effects.md +85 -0
  2118. package/templates/common/.agents/skills/funpixel-art/references/frames.md +87 -0
  2119. package/templates/common/.agents/skills/funpixel-art/references/judging-frames.md +64 -0
  2120. package/templates/common/.agents/skills/funpixel-art/references/look.md +102 -0
  2121. package/templates/common/.agents/skills/funpixel-art/references/measure.md +119 -0
  2122. package/templates/common/.agents/skills/funpixel-art/references/pipeline.md +185 -0
  2123. package/templates/common/.agents/skills/funpixel-art/references/pixi.md +277 -0
  2124. package/templates/common/.agents/skills/funpixel-art/references/planes.md +27 -0
  2125. package/templates/common/.agents/skills/funpixel-art/references/prompts.md +171 -0
  2126. package/templates/common/.agents/skills/funpixel-art/references/sheets.md +141 -0
  2127. package/templates/common/.agents/skills/funpixel-art/references/style-file.md +39 -0
  2128. package/templates/common/.agents/skills/funpixel-art/references/three.md +232 -0
  2129. package/templates/common/.agents/skills/funpixel-art/references/ui.md +163 -0
  2130. package/templates/common/.agents/skills/funpixel-art/references/unity.md +78 -0
  2131. package/templates/common/.agents/skills/funpixel-art/references/wiring.md +41 -0
  2132. package/templates/common/.agents/skills/funpixel-audio/SKILL.md +92 -0
  2133. package/templates/common/.agents/skills/funpixel-audio/references/adaptive-music.md +204 -0
  2134. package/templates/common/.agents/skills/funpixel-audio/references/engine.md +78 -0
  2135. package/templates/common/.agents/skills/funpixel-audio/references/measure.md +101 -0
  2136. package/templates/common/.agents/skills/funpixel-audio/references/unity.md +73 -0
  2137. package/templates/common/.agents/skills/funpixel-feedback/SKILL.md +120 -0
  2138. package/templates/common/.agents/skills/funpixel-feedback/references/memory.md +99 -0
  2139. package/templates/common/.agents/skills/funpixel-game-feel/SKILL.md +104 -0
  2140. package/templates/common/.agents/skills/funpixel-game-feel/references/contact.md +110 -0
  2141. package/templates/common/.agents/skills/funpixel-game-feel/references/measure.md +125 -0
  2142. package/templates/common/.agents/skills/funpixel-game-feel/references/motion.md +134 -0
  2143. package/templates/common/.agents/skills/funpixel-game-feel/references/payoffs.md +35 -0
  2144. package/templates/common/.agents/skills/funpixel-game-feel/references/recipes.md +107 -0
  2145. package/templates/common/.agents/skills/funpixel-game-feel/references/unity.md +78 -0
  2146. package/templates/common/.agents/skills/funpixel-game-logic/SKILL.md +113 -0
  2147. package/templates/common/.agents/skills/funpixel-game-logic/references/balance.md +88 -0
  2148. package/templates/common/.agents/skills/funpixel-game-logic/references/content-at-scale.md +147 -0
  2149. package/templates/common/.agents/skills/funpixel-game-logic/references/depth.md +89 -0
  2150. package/templates/common/.agents/skills/funpixel-game-logic/references/escalation.md +41 -0
  2151. package/templates/common/.agents/skills/funpixel-game-logic/references/levels.md +61 -0
  2152. package/templates/common/.agents/skills/funpixel-game-logic/references/probes.md +122 -0
  2153. package/templates/common/.agents/skills/funpixel-game-logic/references/unity.md +108 -0
  2154. package/templates/common/.agents/skills/funpixel-game-spine/SKILL.md +118 -0
  2155. package/templates/common/.agents/skills/funpixel-game-spine/references/camera.md +94 -0
  2156. package/templates/common/.agents/skills/funpixel-game-spine/references/multiplayer.md +101 -0
  2157. package/templates/common/.agents/skills/funpixel-game-spine/references/patterns.md +103 -0
  2158. package/templates/common/.agents/skills/funpixel-game-spine/references/performance.md +96 -0
  2159. package/templates/common/.agents/skills/funpixel-game-spine/references/pixi.md +26 -0
  2160. package/templates/common/.agents/skills/funpixel-game-spine/references/replay.md +102 -0
  2161. package/templates/common/.agents/skills/funpixel-game-spine/references/room-api.md +63 -0
  2162. package/templates/common/.agents/skills/funpixel-game-spine/references/room-modes.md +40 -0
  2163. package/templates/common/.agents/skills/funpixel-game-spine/references/sdk.md +114 -0
  2164. package/templates/common/.agents/skills/funpixel-game-spine/references/three.md +62 -0
  2165. package/templates/common/.agents/skills/funpixel-gdd/SKILL.md +116 -0
  2166. package/templates/common/.agents/skills/funpixel-gdd/references/as-built.md +40 -0
  2167. package/templates/common/.agents/skills/funpixel-gdd/references/design-measures.md +24 -0
  2168. package/templates/common/.agents/skills/funpixel-gdd/references/design-note.md +88 -0
  2169. package/templates/common/.agents/skills/funpixel-gdd/references/experience.md +92 -0
  2170. package/templates/common/.agents/skills/funpixel-gdd/references/first-look.md +226 -0
  2171. package/templates/common/.agents/skills/funpixel-gdd/references/floors.md +62 -0
  2172. package/templates/common/.agents/skills/funpixel-gdd/references/frame.md +75 -0
  2173. package/templates/common/.agents/skills/funpixel-gdd/references/gameplay-contract.md +81 -0
  2174. package/templates/common/.agents/skills/funpixel-gdd/references/gdd-template.md +417 -0
  2175. package/templates/common/.agents/skills/funpixel-gdd/references/genre-card.md +109 -0
  2176. package/templates/common/.agents/skills/funpixel-gdd/references/genre-platformer.md +159 -0
  2177. package/templates/common/.agents/skills/funpixel-gdd/references/genre-puzzle.md +145 -0
  2178. package/templates/common/.agents/skills/funpixel-gdd/references/genre-racing.md +137 -0
  2179. package/templates/common/.agents/skills/funpixel-gdd/references/genre-rpg.md +125 -0
  2180. package/templates/common/.agents/skills/funpixel-gdd/references/genre-shooter.md +128 -0
  2181. package/templates/common/.agents/skills/funpixel-gdd/references/genre-simulation.md +112 -0
  2182. package/templates/common/.agents/skills/funpixel-gdd/references/genre-strategy.md +116 -0
  2183. package/templates/common/.agents/skills/funpixel-gdd/references/genre-survival.md +122 -0
  2184. package/templates/common/.agents/skills/funpixel-gdd/references/in-the-loop.md +106 -0
  2185. package/templates/common/.agents/skills/funpixel-gdd/references/invent-first.md +131 -0
  2186. package/templates/common/.agents/skills/funpixel-gdd/references/level-and-fun.md +112 -0
  2187. package/templates/common/.agents/skills/funpixel-gdd/references/pages.md +50 -0
  2188. package/templates/common/.agents/skills/funpixel-gdd/references/plan-at-size.md +140 -0
  2189. package/templates/common/.agents/skills/funpixel-gdd/references/production-tiers.md +117 -0
  2190. package/templates/common/.agents/skills/funpixel-gdd/references/sections.md +148 -0
  2191. package/templates/common/.agents/skills/funpixel-gdd/references/spec-folder.md +131 -0
  2192. package/templates/common/.agents/skills/funpixel-gdd/references/start.md +110 -0
  2193. package/templates/common/.agents/skills/funpixel-gdd/references/starters.md +175 -0
  2194. package/templates/common/.agents/skills/funpixel-gdd/references/the-path.md +134 -0
  2195. package/templates/common/.agents/skills/funpixel-gdd/references/track.md +29 -0
  2196. package/templates/common/.agents/skills/funpixel-gdd/references/world-and-identity.md +165 -0
  2197. package/templates/common/.agents/skills/funpixel-gdd/references/worth.md +74 -0
  2198. package/templates/common/.agents/skills/funpixel-mobile-ui/SKILL.md +107 -0
  2199. package/templates/common/.agents/skills/funpixel-mobile-ui/references/contrast.md +123 -0
  2200. package/templates/common/.agents/skills/funpixel-mobile-ui/references/hud-and-title.md +108 -0
  2201. package/templates/common/.agents/skills/funpixel-mobile-ui/references/hud-genres.md +124 -0
  2202. package/templates/common/.agents/skills/funpixel-mobile-ui/references/phone-check.md +156 -0
  2203. package/templates/common/.agents/skills/funpixel-mobile-ui/references/recipes.md +279 -0
  2204. package/templates/common/.agents/skills/funpixel-mobile-ui/references/restyle-ui.md +229 -0
  2205. package/templates/common/.agents/skills/funpixel-mobile-ui/references/unity.md +61 -0
  2206. package/templates/common/.agents/skills/funpixel-publish/SKILL.md +109 -0
  2207. package/templates/common/.agents/skills/funpixel-publish/references/compose.md +113 -0
  2208. package/templates/common/.agents/skills/funpixel-publish/references/motion.md +120 -0
  2209. package/templates/common/.agents/skills/funpixel-publish/references/networks.md +75 -0
  2210. package/templates/common/.agents/skills/funpixel-publish/references/other-hosts.md +65 -0
  2211. package/templates/common/.agents/skills/funpixel-publish/references/playable-ad.md +90 -0
  2212. package/templates/common/.agents/skills/funpixel-publish/references/server-build.md +85 -0
  2213. package/templates/common/.agents/skills/funpixel-publish/references/store-shots.md +85 -0
  2214. package/templates/common/.agents/skills/funpixel-publish/references/trailer.md +55 -0
  2215. package/templates/common/.agents/skills/funpixel-publish/references/what-ships.md +30 -0
  2216. package/templates/common/.agents/skills/funpixel-store/SKILL.md +81 -0
  2217. package/templates/common/.agents/skills/funpixel-store/references/app-store.md +73 -0
  2218. package/templates/common/.agents/skills/funpixel-store/references/google-play.md +141 -0
  2219. package/templates/common/.agents/skills/funpixel-store/references/ios-release.md +64 -0
  2220. package/templates/common/.agents/skills/funpixel-store/references/money.md +66 -0
  2221. package/templates/common/.agents/skills/funpixel-store/references/purchases-and-review.md +74 -0
  2222. package/templates/common/.agents/skills/funpixel-store/references/readiness-page.md +24 -0
  2223. package/templates/common/.agents/skills/funpixel-store/references/readiness.md +107 -0
  2224. package/templates/common/.agents/skills/funpixel-store/references/steam.md +38 -0
  2225. package/templates/common/.agents/skills/funpixel-store/references/unity-store.md +58 -0
  2226. package/templates/common/.agents/skills/funpixel-store/references/web-portals.md +43 -0
  2227. package/templates/common/.agents/skills/funpixel-unity-game/SKILL.md +110 -0
  2228. package/templates/common/.agents/skills/funpixel-unity-game/references/agent-ops.md +54 -0
  2229. package/templates/common/.agents/skills/funpixel-unity-game/references/fixes.md +40 -0
  2230. package/templates/common/.agents/skills/funpixel-unity-game/references/from-a-web-game.md +108 -0
  2231. package/templates/common/.agents/skills/funpixel-unity-game/references/handing-off.md +42 -0
  2232. package/templates/common/.agents/skills/funpixel-unity-game/references/performance.md +63 -0
  2233. package/templates/common/.agents/skills/funpixel-unity-game/references/probe.md +80 -0
  2234. package/templates/common/.agents/skills/funpixel-unity-game/references/shared-mac.md +121 -0
  2235. package/templates/common/.agents/skills/funpixel-unity-game/references/studio-packages.md +127 -0
  2236. package/templates/common/.agents/skills/funpixel-unity-game/references/traps.md +109 -0
  2237. package/templates/common/.agents/skills/funpixel-verify/SKILL.md +109 -0
  2238. package/templates/common/.agents/skills/funpixel-verify/references/actors.md +94 -0
  2239. package/templates/common/.agents/skills/funpixel-verify/references/bar.md +62 -0
  2240. package/templates/common/.agents/skills/funpixel-verify/references/checks.md +69 -0
  2241. package/templates/common/.agents/skills/funpixel-verify/references/experience.md +67 -0
  2242. package/templates/common/.agents/skills/funpixel-verify/references/eyes.md +54 -0
  2243. package/templates/common/.agents/skills/funpixel-verify/references/fidelity.md +126 -0
  2244. package/templates/common/.agents/skills/funpixel-verify/references/hit-bar.md +31 -0
  2245. package/templates/common/.agents/skills/funpixel-verify/references/journeys.md +77 -0
  2246. package/templates/common/.agents/skills/funpixel-verify/references/mobile-qa.md +123 -0
  2247. package/templates/common/.agents/skills/funpixel-verify/references/playtest.md +161 -0
  2248. package/templates/common/.agents/skills/funpixel-verify/references/review.md +105 -0
  2249. package/templates/common/.agents/skills/funpixel-verify/references/rubric.md +67 -0
  2250. package/templates/common/.agents/skills/funpixel-verify/references/scenes.md +49 -0
  2251. package/templates/common/.agents/skills/funpixel-verify/references/unity.md +60 -0
  2252. package/templates/common/.agents/skills/funpixel-world-and-story/SKILL.md +99 -0
  2253. package/templates/common/.agents/skills/funpixel-world-and-story/references/atmosphere.md +208 -0
  2254. package/templates/common/.agents/skills/funpixel-world-and-story/references/forged-world.md +79 -0
  2255. package/templates/common/.agents/skills/funpixel-world-and-story/references/living-world.md +237 -0
  2256. package/templates/common/.agents/skills/funpixel-world-and-story/references/opening-and-chapters.md +215 -0
  2257. package/templates/common/.agents/skills/funpixel-world-and-story/references/shelf.md +80 -0
  2258. package/templates/common/.agents/skills/funpixel-world-and-story/references/story-at-size.md +159 -0
  2259. package/templates/common/.agents/skills/funpixel-world-and-story/references/voice.md +175 -0
  2260. package/templates/common/.agents/skills/funpixel-world-and-story/references/world-kit.md +154 -0
  2261. package/templates/common/.claude/settings.json +3 -0
  2262. package/templates/common/.harnessignore +28 -0
  2263. package/templates/common/AGENTS.md +135 -0
  2264. package/templates/common/CLAUDE.md +1 -0
  2265. package/templates/common/assets/assets.example.json +9 -0
  2266. package/templates/common/index.html +13 -0
  2267. package/templates/common/src/art/files.mjs +27 -0
  2268. package/templates/common/src/assets.ts +62 -0
  2269. package/templates/common/src/beat.ts +50 -0
  2270. package/templates/common/src/characters.ts +54 -0
  2271. package/templates/common/src/expose.ts +63 -0
  2272. package/templates/common/src/feel.ts +78 -0
  2273. package/templates/common/src/fpx-hooks.ts +46 -0
  2274. package/templates/common/src/frame.ts +63 -0
  2275. package/templates/common/src/grade.ts +47 -0
  2276. package/templates/common/src/hud-kit.css +29 -0
  2277. package/templates/common/src/hud-kit.tsx +85 -0
  2278. package/templates/common/src/hud.tsx +55 -0
  2279. package/templates/common/src/icons.tsx +35 -0
  2280. package/templates/common/src/input.ts +70 -0
  2281. package/templates/common/src/juice.ts +92 -0
  2282. package/templates/common/src/levels.ts +43 -0
  2283. package/templates/common/src/living.ts +91 -0
  2284. package/templates/common/src/look.json +19 -0
  2285. package/templates/common/src/look.ts +54 -0
  2286. package/templates/common/src/main.tsx +31 -0
  2287. package/templates/common/src/markers.ts +60 -0
  2288. package/templates/common/src/motion-sample.ts +71 -0
  2289. package/templates/common/src/motion.ts +92 -0
  2290. package/templates/common/src/pin.ts +32 -0
  2291. package/templates/common/src/platform.ts +67 -0
  2292. package/templates/common/src/pose.ts +22 -0
  2293. package/templates/common/src/probe-human.ts +29 -0
  2294. package/templates/common/src/probe-kit.ts +99 -0
  2295. package/templates/common/src/rules.ts +99 -0
  2296. package/templates/common/src/save.ts +21 -0
  2297. package/templates/common/src/screens.css +34 -0
  2298. package/templates/common/src/screens.tsx +95 -0
  2299. package/templates/common/src/selftests.ts +22 -0
  2300. package/templates/common/src/session.ts +99 -0
  2301. package/templates/common/src/sound.ts +85 -0
  2302. package/templates/common/src/splash-funpixel/OFL.txt +94 -0
  2303. package/templates/common/src/splash-funpixel/card.css +18 -0
  2304. package/templates/common/src/splash-funpixel/card.tsx +22 -0
  2305. package/templates/common/src/splash.css +15 -0
  2306. package/templates/common/src/splash.tsx +86 -0
  2307. package/templates/common/src/store.ts +68 -0
  2308. package/templates/common/src/strike.ts +82 -0
  2309. package/templates/common/src/styles.css +81 -0
  2310. package/templates/common/src/toasts.ts +75 -0
  2311. package/templates/common/src/world.ts +91 -0
  2312. package/templates/common/test/feel.json +36 -0
  2313. package/templates/common/test/platform.test.ts +42 -0
  2314. package/templates/common/test/probes.ts +72 -0
  2315. package/templates/common/test/rules.test.ts +88 -0
  2316. package/templates/common/tsconfig.json +16 -0
  2317. package/templates/common/vite.config.ts +6 -0
  2318. package/templates/pixi/src/character.ts +63 -0
  2319. package/templates/pixi/src/game.ts +99 -0
  2320. package/templates/pixi/src/world-hud.ts +16 -0
  2321. package/templates/spec/common/src/chapters.ts +97 -0
  2322. package/templates/spec/common/src/levels.ts +68 -0
  2323. package/templates/spec/common/src/probe-rooms.ts +63 -0
  2324. package/templates/spec/common/src/room-map.tsx +30 -0
  2325. package/templates/spec/common/src/tune.ts +93 -0
  2326. package/templates/spec/common/test/rooms.test.ts +59 -0
  2327. package/templates/spec/common/test/rooms.ts +53 -0
  2328. package/templates/spec/three-world/test/rooms.ts +54 -0
  2329. package/templates/three/src/character.ts +65 -0
  2330. package/templates/three/src/game.ts +99 -0
  2331. package/templates/three/src/world-hud.ts +22 -0
  2332. package/templates/three-world/src/bot.ts +43 -0
  2333. package/templates/three-world/src/budget.ts +73 -0
  2334. package/templates/three-world/src/camera-rig.ts +99 -0
  2335. package/templates/three-world/src/controls.tsx +49 -0
  2336. package/templates/three-world/src/cutout-atlas.ts +26 -0
  2337. package/templates/three-world/src/cutout-math.ts +47 -0
  2338. package/templates/three-world/src/cutouts.ts +99 -0
  2339. package/templates/three-world/src/dressing-math.ts +98 -0
  2340. package/templates/three-world/src/dressing.ts +84 -0
  2341. package/templates/three-world/src/expose.ts +82 -0
  2342. package/templates/three-world/src/feel.ts +79 -0
  2343. package/templates/three-world/src/game.ts +99 -0
  2344. package/templates/three-world/src/hud.tsx +44 -0
  2345. package/templates/three-world/src/icons.tsx +36 -0
  2346. package/templates/three-world/src/input.ts +73 -0
  2347. package/templates/three-world/src/juice.ts +91 -0
  2348. package/templates/three-world/src/layout.ts +73 -0
  2349. package/templates/three-world/src/light-math.ts +78 -0
  2350. package/templates/three-world/src/light.ts +77 -0
  2351. package/templates/three-world/src/look.json +30 -0
  2352. package/templates/three-world/src/main.tsx +38 -0
  2353. package/templates/three-world/src/models.ts +62 -0
  2354. package/templates/three-world/src/palette.ts +21 -0
  2355. package/templates/three-world/src/places.json +50 -0
  2356. package/templates/three-world/src/places.ts +56 -0
  2357. package/templates/three-world/src/pose.ts +22 -0
  2358. package/templates/three-world/src/post.ts +47 -0
  2359. package/templates/three-world/src/rest-math.ts +29 -0
  2360. package/templates/three-world/src/rules.ts +89 -0
  2361. package/templates/three-world/src/screens.css +45 -0
  2362. package/templates/three-world/src/screens.tsx +96 -0
  2363. package/templates/three-world/src/selftests.ts +25 -0
  2364. package/templates/three-world/src/session.ts +99 -0
  2365. package/templates/three-world/src/shots.ts +59 -0
  2366. package/templates/three-world/src/sky.ts +48 -0
  2367. package/templates/three-world/src/stage.ts +83 -0
  2368. package/templates/three-world/src/styles.css +95 -0
  2369. package/templates/three-world/src/surfaces.ts +55 -0
  2370. package/templates/three-world/src/world.ts +70 -0
  2371. package/templates/three-world/test/feel.json +29 -0
  2372. package/templates/three-world/test/probes.ts +65 -0
  2373. package/templates/three-world/test/resolve.mjs +13 -0
  2374. package/templates/three-world/test/rules.test.ts +81 -0
  2375. package/unity/com.funpixel.probe/Editor/Funpixel.Probe.Editor.asmdef +16 -0
  2376. package/unity/com.funpixel.probe/Editor/Funpixel.Probe.Editor.asmdef.meta +7 -0
  2377. package/unity/com.funpixel.probe/Editor/ProbeBuild.cs +97 -0
  2378. package/unity/com.funpixel.probe/Editor/ProbeBuild.cs.meta +11 -0
  2379. package/unity/com.funpixel.probe/Editor/ReleaseGuard.cs +23 -0
  2380. package/unity/com.funpixel.probe/Editor/ReleaseGuard.cs.meta +11 -0
  2381. package/unity/com.funpixel.probe/Editor.meta +8 -0
  2382. package/unity/com.funpixel.probe/Runtime/Api/Funpixel.Probe.asmdef +14 -0
  2383. package/unity/com.funpixel.probe/Runtime/Api/Funpixel.Probe.asmdef.meta +7 -0
  2384. package/unity/com.funpixel.probe/Runtime/Api/FunpixelProbe.cs +146 -0
  2385. package/unity/com.funpixel.probe/Runtime/Api/FunpixelProbe.cs.meta +11 -0
  2386. package/unity/com.funpixel.probe/Runtime/Api.meta +8 -0
  2387. package/unity/com.funpixel.probe/Runtime/Player/Args.cs +87 -0
  2388. package/unity/com.funpixel.probe/Runtime/Player/Args.cs.meta +11 -0
  2389. package/unity/com.funpixel.probe/Runtime/Player/Boot.cs +67 -0
  2390. package/unity/com.funpixel.probe/Runtime/Player/Boot.cs.meta +11 -0
  2391. package/unity/com.funpixel.probe/Runtime/Player/Bridge.cs +559 -0
  2392. package/unity/com.funpixel.probe/Runtime/Player/Bridge.cs.meta +11 -0
  2393. package/unity/com.funpixel.probe/Runtime/Player/Capture.cs +145 -0
  2394. package/unity/com.funpixel.probe/Runtime/Player/Capture.cs.meta +11 -0
  2395. package/unity/com.funpixel.probe/Runtime/Player/Funpixel.Probe.Player.asmdef +32 -0
  2396. package/unity/com.funpixel.probe/Runtime/Player/Funpixel.Probe.Player.asmdef.meta +7 -0
  2397. package/unity/com.funpixel.probe/Runtime/Player/Inject.cs +128 -0
  2398. package/unity/com.funpixel.probe/Runtime/Player/Inject.cs.meta +11 -0
  2399. package/unity/com.funpixel.probe/Runtime/Player/Json.cs +246 -0
  2400. package/unity/com.funpixel.probe/Runtime/Player/Json.cs.meta +11 -0
  2401. package/unity/com.funpixel.probe/Runtime/Player/Probe.cs +194 -0
  2402. package/unity/com.funpixel.probe/Runtime/Player/Probe.cs.meta +11 -0
  2403. package/unity/com.funpixel.probe/Runtime/Player/Stats.cs +266 -0
  2404. package/unity/com.funpixel.probe/Runtime/Player/Stats.cs.meta +11 -0
  2405. package/unity/com.funpixel.probe/Runtime/Player/UiTargets.cs +134 -0
  2406. package/unity/com.funpixel.probe/Runtime/Player/UiTargets.cs.meta +11 -0
  2407. package/unity/com.funpixel.probe/Runtime/Player.meta +8 -0
  2408. package/unity/com.funpixel.probe/Runtime/link.xml +7 -0
  2409. package/unity/com.funpixel.probe/Runtime/link.xml.meta +7 -0
  2410. package/unity/com.funpixel.probe/Runtime.meta +8 -0
  2411. package/unity/com.funpixel.probe/Tests/Editor/Funpixel.Probe.Tests.asmdef +25 -0
  2412. package/unity/com.funpixel.probe/Tests/Editor/Funpixel.Probe.Tests.asmdef.meta +7 -0
  2413. package/unity/com.funpixel.probe/Tests/Editor/StatsTests.cs +147 -0
  2414. package/unity/com.funpixel.probe/Tests/Editor/StatsTests.cs.meta +11 -0
  2415. package/unity/com.funpixel.probe/Tests/Editor/WireTests.cs +86 -0
  2416. package/unity/com.funpixel.probe/Tests/Editor/WireTests.cs.meta +11 -0
  2417. package/unity/com.funpixel.probe/Tests/Editor.meta +8 -0
  2418. package/unity/com.funpixel.probe/Tests.meta +8 -0
  2419. package/unity/com.funpixel.probe/package.json +14 -0
  2420. package/unity/com.funpixel.probe/package.json.meta +7 -0
@@ -0,0 +1,96 @@
1
+ # Load time and frame time, without touching the look
2
+
3
+ A game that takes twenty seconds to start, or freezes for one, loses players before the first
4
+ minute. Most of that time is work done at the wrong moment or drawn for nobody: a whole game
5
+ decoded before the title, a model drawn while off screen. Fixing it rarely needs a smaller
6
+ texture or a simpler model.
7
+
8
+ ## The rule: change when and how things load and draw, never what is seen
9
+
10
+ - Speed is never bought with smaller textures, simpler models or a lower resolution. When only a
11
+ visible cut would help, keep the look, report the number and let the owner choose (rule 7).
12
+ - Each change is proved on the same named views before and after: the frame cost per scene, and
13
+ a still of each view. The stills match.
14
+ - Fewer triangles come from not drawing what is hidden, never from drawing less of what shows.
15
+ - Anything streamed in later is ready before the player reaches it; when it is not, the game says
16
+ so (a short wait card, never a pop-in).
17
+ - A compressed texture format (KTX2) is checked side by side with its source, and the source
18
+ format stays wherever the compressed one looks worse.
19
+ - New content may choose its own cheap behaviour (an obstacle that rises out of the road as the
20
+ player nears it): nothing that already existed changed.
21
+
22
+ ## Measure like a phone
23
+
24
+ - A landscape phone: 844x390 at a pixel ratio of 3, the CPU slowed 4x, a Fast 4G network (9 Mbps,
25
+ 60 ms). `npx @funpixel/tools profile --throttle 4 --viewport phone` gives the frame;
26
+ `npx @funpixel/tools phone` runs the game in Mobile Safari on a simulator.
27
+ - For loading: the time to Play, the bytes fetched before it, every long task, and a CPU profile of
28
+ the load.
29
+ - Builds are compared alternately (A, B, A, B), never one run each: a throttled machine varies more
30
+ than most fixes save. Other work on the machine skews every number; say what else was running.
31
+ - A profile of a view that moves is not a benchmark: what reaches the screen during the sample
32
+ changes the count. Pin the camera, or say what was on screen.
33
+ - A headless browser's frame time comes from a software renderer, and a desktop GPU hides fill
34
+ cost: there, read draw calls, triangles and the CPU stages, not milliseconds.
35
+
36
+ ## Find where the frame goes, before changing anything
37
+
38
+ 1. **Budget the frame by stage.** Mark the end of each stage (simulation, world, animation,
39
+ culling, render submit), keep a running average and the worst case, and read them as
40
+ `window.__FPX_PROF__()` and on screen behind a `#prof` switch. When the game's logic is a small
41
+ share and the renderer's CPU side the rest, the work is in draw calls, state changes and
42
+ hitches, not in the logic. A worst case far above the average during play is often a shader
43
+ compiling.
44
+ 2. **Break the scene down by named group:** triangles and draw calls per group, skinned and
45
+ instanced marked. Totals say how much; groups say where.
46
+ 3. **Fix the biggest thing, capture the same view before and after, profile again,** and repeat.
47
+ The before and after numbers of each step keep the work honest.
48
+
49
+ A rewrite into an entity system pays only with thousands of like objects stepped every frame; a
50
+ handful of characters and some dozens of props spend about a millisecond in simulation.
51
+
52
+ ## Load: get to Play sooner, and never freeze
53
+
54
+ - **Decoding and uploading every texture in one task is the freeze.** Decode pictures with
55
+ `createImageBitmap` (off the main thread). Warm up in slices: a few texture uploads and
56
+ `renderer.compileAsync` calls (with `KHR_parallel_shader_compile`) per frame, only for the render
57
+ targets the scene really uses. Mesh merges, lightmaps and environment maps run as sliced async
58
+ steps too.
59
+ - **The first minute is all that loads before Play.** The rest streams behind play: a dynamic-import
60
+ chunk per level, and a low fetch priority for audio and models needed later.
61
+ - **GLBs ship as binary;** base64 inside JSON is a third bigger and slow to parse. When the host
62
+ does not compress them, gzip them under a `.glbz` extension and read them through
63
+ `DecompressionStream`; a `.gz` extension gets mangled by some static servers.
64
+ - **GPU memory a level left is freed** (`dispose()` its textures and geometry). Meshopt compression
65
+ and quantization stay on; KTX2 is the next step, checked as above.
66
+
67
+ ## Frame: draw less of what nobody sees
68
+
69
+ - **Rigged meshes need their own culling.** A skinned mesh's bounds are its rest pose, so the usual
70
+ fix is `frustumCulled = false`, and then it is drawn everywhere, in the main pass and the shadow
71
+ pass. Give each a root bounding sphere large enough to cover its shadow and cull by that. Audit
72
+ every `frustumCulled = false`.
73
+ - **The shadow pass is not culled by the main camera.** What is behind the player still costs a
74
+ draw there.
75
+ - **Inverted-hull outlines thinner than about half a device pixel are dropped.** At that size nobody
76
+ sees them, and each is a second draw of the mesh.
77
+ - **Particles draw as one instanced billboard batch on one sheet,** sorted far to near, not one
78
+ sprite per particle.
79
+ - **Small repeated parts keep one material.** A part with three material groups is three draw
80
+ calls, three more in the shadow pass, times every copy; remap its UVs so one material serves.
81
+ - **A material made inside a placement loop is a material per object.** Share it.
82
+ - **Instancing draws every instance, always,** when the batch is not culled. For things spread
83
+ across the level, single culled meshes beat one batch; for things usually on screen together,
84
+ the batch wins. Measure which.
85
+ - A fix that would show at all (dropping small shadows) is the owner's to decide.
86
+
87
+ ## Worked examples
88
+
89
+ - The per-stage frame budget: Knockout Lap's `src/game/prof.ts`, with its marks in
90
+ `src/game/loop.ts` (private repository; copy the approach). It reads as `window.__FPX_PROF__()`
91
+ and on screen behind `#prof`.
92
+ - Measuring a load: Gallery Heist's repository (private; copy the approach, not a dependency) keeps
93
+ the measuring scripts in `game/tools/perf/`: `phone-load.mjs` (the throttled load: time to Play,
94
+ bytes before it, long tasks and 20 s of play, as one JSON line), `phone-ab.sh` (builds
95
+ alternated), `phone-profile.mjs` (a CPU profile of the load) and `gpu-mem.mjs` with `gputrack.js`
96
+ (the biggest GPU textures per room). They take playwright-core from the game's own `node_modules`.
@@ -0,0 +1,26 @@
1
+ # Pixi 8 contracts
2
+
3
+ Each of these builds cleanly and breaks the game or the checks when missed.
4
+
5
+ - `import * as PIXI from 'pixi.js'`. Never a window global or a CDN script.
6
+ - Initialisation is async: `const app = new PIXI.Application(); await app.init({ … })`, then mount
7
+ `app.canvas`. Set `window.__PIXI_APP__ = app` after `init`, so verify and the inspector can find
8
+ the stage.
9
+ - Every display object gets a `.label` (lowercase with underscores). Pixi's lookups read `.label`,
10
+ not `.name`, and an unlabelled player cannot be found by a check's `subject`.
11
+ - dt in seconds: `app.ticker.add((t) => game.update(Math.min(t.deltaMS / 1000, 0.1)))`.
12
+ `ticker.deltaTime` is a frame ratio, and `dt * (1000 / 60)` is the same mistake.
13
+ - Resize with `setupGameResize((w, h) => { app.renderer.resize(w, h); layout(w, h); })`, not
14
+ `resizeTo: window`.
15
+ - `FillGradient` takes the options form `{ type, start, end, colorStops }` in local 0 to 1 space;
16
+ the positional constructor renders a flat slab in 8.5 and later.
17
+ - Remove a child with `container.removeChild(sprite)`. A `Container` has no `.contains()`; that is
18
+ a DOM method and throws.
19
+ - Many similar sprites: one `ParticleContainer` or one atlas-backed batch per family. Three or more
20
+ sprites in a scene means pack an atlas before writing the loading code, because the atlas
21
+ changes how you load (skill `funpixel-art`).
22
+ - Move the world container for the camera, never the player; the HUD lives in a sibling container
23
+ or in the DOM so it never moves.
24
+ - Round the world container's position to whole pixels for pixel art, or it shimmers.
25
+ - Animate scale by multiplying a stored `baseScale`, never by assigning `scale` directly: two
26
+ overlapping "pop" tweens otherwise leave a sprite permanently enlarged.
@@ -0,0 +1,102 @@
1
+ # Replaying a run, and proving a split
2
+
3
+ Two options for a game whose rules already step from input (skill `funpixel-game-logic`: seeded,
4
+ engine-free, a fixed step): keep a run as data and play it back frame by frame, and prove a
5
+ refactor changed nothing a player sees. Both are lessons from one game, Held Note (a third-person
6
+ 3D horror chapter in three.js, September 2026, hand-iterated over many agent sessions), gathered by
7
+ the Held Note lane. No first-try action game has tested them yet; read them as options with the
8
+ reasons they earned, not as a procedure.
9
+
10
+ ## What the kit already does
11
+
12
+ Point at these before building anything:
13
+
14
+ - `npx @funpixel/tools journey` keeps a player's path through the real controls as a script,
15
+ replays it on one seed, holds the clock at each mark and sets the run beside the last one (skill
16
+ `funpixel-verify`, `references/journeys.md`). `feel --journey` traces every frame of it.
17
+ - The scaffold's `replayTo(game, policy, seed, seconds)` (`src/probe-kit.ts`, the kit `sim` runs)
18
+ plays a bot's run of the rules to a second, which is how a moment view reaches a payoff the game
19
+ really reaches (skill `funpixel-game-logic`, `references/probes.md`).
20
+ - `capture --all`, then `compare --baseline` before a change and `compare` after, sets each view's
21
+ before beside its after and says how much of it changed.
22
+ - `profile --compare` reads a run against the last run made the same way.
23
+
24
+ What they do not do: stop a long 3D run on one exact frame, every time, and step it a frame at a
25
+ time. That part is the game's own hook, below.
26
+
27
+ ## A run as data: recorded intents
28
+
29
+ If the sim advances one fixed step per intent (what the hands asked for this step: move, aim,
30
+ dodge), a run is the list of intents plus the seed and any setting that changes the sim. Replaying
31
+ it means feeding that list instead of live input.
32
+
33
+ - **Held Note's shape.** Its chapter bots produce intents; a small script wrote a bot run's intents
34
+ to JSON, and the game read them from a window global in place of the controls, through the real
35
+ renderer, camera and sound. One test made the replay trustworthy:
36
+ `same_seed_same_inputs_same_events` plays a bot's intents again on a fresh sim with the same seed
37
+ and asserts the same event list and the same final snapshot.
38
+ - **Record everything that changes the sim.** An assist setting (the automatic dodge side) changed
39
+ what a step did; turning it on by default silently broke every recorded replay. The game now
40
+ turns the assist off whenever a replay runs. Store such settings with the recording.
41
+ - **Re-record after a sim change.** A recording holds intents, not positions: a tuned run speed
42
+ moves where she stands when the next intent arrives, and the replay drifts. The symptom Held
43
+ Note learned to read: a still of her staring at a wall is usually a stale recording.
44
+ - **A recorder in the game.** A key saves a person's run the same way, with its long frames,
45
+ camera jumps and errors marked. Held Note's note says a human run beats any bot for feel; when it
46
+ was written, no human run had been replayed yet.
47
+
48
+ ## Film mode: the same frame every time
49
+
50
+ A flag stops the page's own clock, and a hook advances the one loop by a fixed step and renders:
51
+
52
+ ```ts
53
+ const w = window as unknown as { __FILM__?: boolean; __TICK__?: (dt: number) => void };
54
+ let filmT = 0, last = performance.now();
55
+ w.__TICK__ = (dt) => { filmT += dt; game.frame(dt, filmT); }; // the same update the loop calls
56
+ function loop(now: number) {
57
+ if (!w.__FILM__) game.frame(Math.min((now - last) / 1000, 0.1), now / 1000);
58
+ last = now; requestAnimationFrame(loop);
59
+ }
60
+ ```
61
+
62
+ Held Note's stills script replayed an intent file, ticked 1/60 s at a time until the sim's clock
63
+ reached each requested second, held the sim for about 20 frames so the camera settled, then shot.
64
+ A still at 36.8 s was the same picture every run, so:
65
+
66
+ - **A moment can be debugged a frame at a time.** Replay to just before it, tick, read
67
+ `__FPX_STATE__` and `funtools inspect --at x,y` on each frame. Held Note's "what is that white
68
+ ball?" was found this way: at one fixed frame, hide one thing at a time (the torch light, the
69
+ enemy, the particles, the beam) until it goes. It was an additive beam seen down its own axis
70
+ (skill `funpixel-art`, `references/frames.md`).
71
+ - **An A/B at a frame only means something if the frame keeps it.** Held Note's torch and emissive
72
+ materials were re-posed every frame, so turning them off in a debug step did nothing, while the
73
+ albedo, which nothing re-set, could be tested. Turn a thing off where the frame reads it from.
74
+ - **Wall-clock work does not follow the film clock.** CSS transitions and timers ran in real time;
75
+ the script waited about a second before shooting screens that used them.
76
+
77
+ This is the spine's one loop and one clock with a second driver, not a second loop.
78
+
79
+ ## Proving a refactor or a split
80
+
81
+ Held Note's `sim.ts`, `station.ts` and `game.ts` each grew past 800 to 1,100 lines and were split
82
+ into small modules with typed seams. A split that should change nothing was accepted on four
83
+ agreements, each an option:
84
+
85
+ | Evidence | With the kit |
86
+ |---|---|
87
+ | Golden stills of the same views, pixel-diffed before and after | `capture --all` and `compare --baseline` before; `capture --all` and `compare` after. For a refactor the reading turns over: every view unchanged is the proof, and a changed view is the finding |
88
+ | Identical bot traces | the determinism test above on a recorded run, or `journey replay` on the same seed: the counters at each mark should not move |
89
+ | The tests | `npm test`; a test named after a rule still passing means the rule still holds |
90
+ | An unchanged profile | `profile --compare` against the run made the same way before |
91
+
92
+ `compare` calls a view unchanged below 0.5% of pixels changed. A view that animates, or reads the
93
+ wall clock, can differ between two captures of one build; capture the same build twice first, and
94
+ treat a later difference no larger than that as noise (the same idea as `journey replay --repeat 2`).
95
+ With film mode the stills can be identical to the pixel, and then any difference is real.
96
+
97
+ The case for it, from Held Note: after the game split, the capture hook reached the game through a
98
+ loose cast, the replay cursor and the intro timer had moved, and every capture view silently sat at
99
+ t = 0 behind the opening shot. A blind panel scored that round 4.9 ("no enemy in any capture").
100
+ Typing the seam (no cast) and logging an error when a view misses its beat fixed it; on real
101
+ captures the next panel scored 6.55. Our reading: views compared against their pre-split stills
102
+ would have shown every one changed before any critic saw them.
@@ -0,0 +1,63 @@
1
+ # Room API (`@funpixel/sdk/multiplayer`, SDK 0.6.0)
2
+
3
+ ```ts
4
+ import { Room, getGameKey, RoomError } from '@funpixel/sdk/multiplayer';
5
+
6
+ // Joining. All static, all return promises.
7
+ Room.autoJoin(getGameKey(), { game, maxPlayers }) // create-or-join this game's room; the first player hosts
8
+ Room.auto({ game, maxPlayers }) // joins only when the URL has ?room=CODE, else resolves null
9
+ Room.join(code, { username? }) // an existing room of THIS game, by its 8-character code
10
+ // Room.connect is refused for games (the relay answers FORBIDDEN). Never call it.
11
+
12
+ // World state for late joiners and reconnects (the host answers)
13
+ room.provideState(() => state) // host: the snapshot source (the SDK re-asks it on each join)
14
+ room.onState((state) => {}) // everyone: apply a full snapshot
15
+
16
+ // Continuous own state: sampled 20 Hz, sent on change, never echoed
17
+ room.sync(key, () => ({ x, y }))
18
+ room.onSync(key, (peerId, value) => {})
19
+
20
+ // Events: delivered to everyone in the room, the sender included
21
+ room.send(name, data) // discrete events, a few per second; data is a plain object
22
+ room.sendBuffered(name, item) // high-frequency lane, batched; receivers get one callback per item
23
+ room.on(name, (peerId, data) => {}) // peerId === room.playerId on your own echo
24
+
25
+ // Presence and lifecycle
26
+ room.onPlayerJoin((player) => {}) // player: { id, username, isHost }
27
+ room.onPlayerLeave(({ id }) => {})
28
+ room.onHostChange((newHostId, youAreHost) => {})
29
+ room.onDisconnect(() => {}); room.onError((code, message) => {})
30
+ room.onReconnecting((attempt) => {}); room.onReconnect(() => {}); room.onReconnectFailed(() => {})
31
+ room.isHost; room.players /* Map, includes you */; room.playerId; room.code
32
+ room.connected; room.ping; room.maxPlayers; room.playerCount
33
+ room.leave() // also stops the automatic reconnect
34
+ ```
35
+
36
+ **Join errors** reject the promise as a `RoomError` with `.code`: `ROOM_FULL`, `NOT_FOUND`,
37
+ `FORBIDDEN`, or an auth failure when no ticket arrived (opened outside a Funpixel host).
38
+
39
+ **Runtime errors** arrive on `onError`: `RATE_LIMITED` (move that send to `sendBuffered`, which
40
+ throttles itself) and `SUPERSEDED` (this connection was replaced: call `room.leave()` and offer a
41
+ Rejoin button).
42
+
43
+ **Payload shapes.** `send('score', 5)` arrives as `{ value: 5 }`; an array arrives as an object
44
+ with keys `0, 1, …`. Wrap values: `send('score', { points: 5 })`. Keys and event names starting
45
+ with `_` (`_sync`, `_evt`, `_batch`, `_state_req`, `_state_snap`) belong to the SDK.
46
+
47
+ **Limits.** 60 messages a second per player plus a burst of 120, the excess dropped silently. A
48
+ state snapshot over about 200 KB is not sent (the SDK logs one warning): keep the world lean.
49
+
50
+ **Keys.** `getGameKey()` reads the host name: the preview or published game's key on Funpixel,
51
+ `'local'` on `localhost`. Pass it through untouched; never invent or hard-code a key.
52
+
53
+ ## Reconnects and host migration
54
+
55
+ - **Reconnects.** The SDK reconnects by itself (up to four tries). After it does, the roster is
56
+ replaced without join or leave events: reconcile peers in `onReconnect`. Pause input on
57
+ `onDisconnect`, resume on `onReconnect`, show "connection lost" on `onReconnectFailed`; the
58
+ render loop that was running keeps running (a second one doubles the speed). `SUPERSEDED` means
59
+ this connection was replaced (another tab of the same account, or the owner removed the
60
+ player): `room.leave()` then a Rejoin button, since otherwise the SDK reconnects and steals the
61
+ slot back.
62
+ - **Host migration.** When `onHostChange` says you are the host, register `provideState` and
63
+ every host-only `sync` again from your local mirror, which is why every client keeps one.
@@ -0,0 +1,40 @@
1
+ # Room modes
2
+
3
+ Pick one from the design and say which in the design note. The relay offers one thing: this game's
4
+ shared rooms, filled lowest first, with overflow rooms when one is full. A code brings a friend into
5
+ the room you are in. No mode makes a room private, so never promise privacy in copy or UI.
6
+
7
+ | Mode | When | The player sees |
8
+ |---|---|---|
9
+ | Lobby (default) | Matches with a start: duels, co-op runs, party games | A join button named with the game's own verb, a waiting screen with the players, the host's Start |
10
+ | Invite codes | Playing with friends is the point | Join, plus "Join with code"; the code as a large copyable element; an invite link |
11
+ | Drop-in | A shared world with no matches: a lounge, a sandbox, a persistent board | Nothing: the game joins during loading and others simply appear |
12
+
13
+ ## Lobby
14
+
15
+ - The primary button calls `autoJoin`; label it the way a player of this world would say it.
16
+ - The host starts the match with `room.send('game_start', {})`; every client starts on
17
+ `room.on('game_start', …)`, guarded by a local `started` flag.
18
+ - The room code, if shown, carries `data-funpixel-selectable` (or is a real `<input readonly>`), or
19
+ players cannot copy it.
20
+ - Offline: the solo game, never a dead card. It is what verify sees.
21
+
22
+ ## Invite codes
23
+
24
+ - Two entries: "Play" (`autoJoin`, which joins this game's shared room) and "Join with code" (a
25
+ real `<input>` into `Room.join(code)`: uppercase, 8 characters, inline "No room with that code"
26
+ on `NOT_FOUND` or `FORBIDDEN`).
27
+ - A URL with `?room=CODE` skips the title: `Room.auto({ game, maxPlayers })` joins directly.
28
+ - After joining, show the code large and selectable with a copy-link button writing
29
+ `${location.origin}${location.pathname}?room=${room.code}`.
30
+ - `ROOM_FULL` on a code join: say the room is full; never drop the player into another room.
31
+ - Game keys stay off while the code input has focus: skip keydown when
32
+ `e.target instanceof HTMLInputElement`.
33
+
34
+ ## Drop-in
35
+
36
+ - No lobby, no code, no waiting gate. Call `autoJoin` behind the loading screen and start at once.
37
+ - The world is complete with one player; others appearing or leaving is ambient (a subtle cue,
38
+ never a modal).
39
+ - `ROOM_FULL`: a small "World is full, retrying" toast and a retry every 10 seconds.
40
+ - Any failure: solo play with one small toast. Sharing is the game's URL itself.
@@ -0,0 +1,114 @@
1
+ # The @funpixel/sdk surface
2
+
3
+ No model was trained on this package, so guessing its API costs a build, and a guess that
4
+ type-checks can do nothing at runtime. This skill is the short list worth using, from the studio's budget
5
+ audit. Everything else the package exports is optional: use
6
+ the web platform (`localStorage`, `requestFullscreen`, `screen.orientation`, the engine's loader
7
+ and tweens).
8
+
9
+ ## Tools
10
+
11
+ - No MCP tool teaches the SDK; this skill is the reference. `build` or `probe` show whether it
12
+ works in the platform's browser.
13
+ - Local: `npx @funpixel/tools doctor` warns on an unpinned SDK; `npx @funpixel/tools verify` runs
14
+ the game.
15
+ - A name error is a lookup: find the name below or in `node_modules/@funpixel/sdk/dist/*.d.ts`.
16
+ A cast, `?.` or widened type that makes a wrong name compile hides it until runtime, where it
17
+ does nothing.
18
+
19
+ ## The surface
20
+
21
+ 1. Pin it exactly: `"@funpixel/sdk": "0.6.0"`, no caret. The root export is `setupGameResize`
22
+ only; everything else comes from a subpath (`/audio`, `/multiplayer`, `/save`, `/liveParams`,
23
+ `/device`).
24
+ 2. **Resize.** `setupGameResize(cb: (width: number, height: number) => void, win?: Window): () => void`
25
+ from `@funpixel/sdk`.
26
+ - It calls `cb` once, synchronously, at the call: create the renderer first.
27
+ - Size from `w, h`, never `innerWidth`; a Studio message can carry a different size.
28
+ - Remove Pixi `resizeTo: window` and any `resize` listener: they miss iframe resizes, and two
29
+ resizers fight. Zero and unchanged sizes are dropped. It returns a teardown.
30
+ 3. **Audio.** `new AudioEngine(opts?: { ctx?: AudioContext; iosPatch?: boolean })` from
31
+ `@funpixel/sdk/audio`, with `.ctx`, `.master`, `init()` and `unlock(): Promise<void>`.
32
+ - The iPhone ringer switch is the game's call. `iosPatch: false` respects it (the switch mutes
33
+ the game, the casual-game norm, and what a new game passes); `true`, the default for games
34
+ made before this was a choice, plays through it, for games where sound is the point. Keep
35
+ an existing game's choice.
36
+ - Connect every source to `audio.master`: the mute toggle drives it, and under `iosPatch: true`
37
+ anything on `ctx.destination` is muted by the switch anyway.
38
+ - `unlock()` latches on its first call even if resuming failed. Call it from `click`,
39
+ `pointerup`, `keydown` or `touchend` (WebKit did not resume on `pointerdown`); while
40
+ `audio.ctx.state !== 'running'`, call `audio.ctx.resume()` on the next gesture.
41
+ - There is no play or load API: decode once with `ctx.decodeAudioData`, one `BufferSource` per
42
+ hit. One engine per game; a second `AudioContext` escapes the patch.
43
+ 4. **Multiplayer**, only when the design is multiplayer:
44
+ `Room.autoJoin(getGameKey(), { game, maxPlayers })` from `@funpixel/sdk/multiplayer`. The
45
+ [multiplayer](multiplayer.md) reference has the echo, roster and host-state traps.
46
+ 5. **Save.** `new SaveManager<T>({ key, version, defaults, migrations?, onSaveError?, debounceMs? })`
47
+ from `@funpixel/sdk/save`, with `.data`, `update(partial)`, `flush(): { ok, error? }` and
48
+ `reset()`.
49
+ - `update` persists 500 ms later: `flush()` at the end of a run and on `visibilitychange`.
50
+ - The merge is shallow: a nested object is replaced, not merged.
51
+ - A corrupt save loads as `defaults`, silently. Migrations are keyed by the target version; a
52
+ gap stops migration silently.
53
+ - `onSaveError` fires only on the debounced path: check `flush().ok` and tell the player.
54
+ 6. **Live tuning.** `initLiveParams(schema)` from `@funpixel/sdk/liveParams`, where each entry is
55
+ `{ type: 'number' | 'boolean' | 'color' | 'select', value, min?, max?, step?, options?, name? }`;
56
+ it returns `get(key)`, `subscribe(key, (v, prev) => …)`, `set(key, v)` and `all()`.
57
+ - A misspelt key returns `undefined` and the physics become `NaN`.
58
+ - A value copied into a constant at load never updates: read `get()` in the loop, or subscribe.
59
+ - A bad schema entry leaves the params empty, silently: check `Object.keys(params.all())`.
60
+ Values change live only in the Studio preview.
61
+ 7. **Safe area on a canvas.** `safeArea.insets(): { top, right, bottom, left }` from
62
+ `@funpixel/sdk/device` reads zeros unless the CSS sets
63
+ `:root { --sai-top: env(safe-area-inset-top); … }` for all four sides and the viewport meta has
64
+ `viewport-fit=cover`. Re-read after rotation. A DOM HUD uses
65
+ `max(16px, env(safe-area-inset-*))` in CSS instead.
66
+
67
+ ## What not to reach for
68
+
69
+ | Export | Use instead | Why |
70
+ |---|---|---|
71
+ | `haptics` | `navigator.vibrate?.(ms)` | It is exactly that, and a no-op on every iPhone |
72
+ | `fullscreen`, `orientation` | the platform calls with `.catch()` | The wrapper only swallows the rejection |
73
+ | `Grid`, `findPath` | your own A*, or `easystarjs` | Four-neighbour only and slow on big grids |
74
+ | `fx` shake, pop, flash | a render offset or a tween | Overlapping calls leave the stage offset or tinted for good |
75
+ | `leaderboard()`, `host` | nothing yet | Only the Studio answers; published games wait 1.5 to 2 s for nothing |
76
+ | `gameState()`, `motion`, `preload`, `register` | `SaveManager`, `sensors`, the engine loader | Duplicates, or no host acts on them |
77
+
78
+ ## Worked example
79
+
80
+ A runner that saves its best distance and tunes gravity live:
81
+ ```ts
82
+ import { setupGameResize } from '@funpixel/sdk';
83
+ import { AudioEngine } from '@funpixel/sdk/audio';
84
+ import { SaveManager } from '@funpixel/sdk/save';
85
+ import { initLiveParams } from '@funpixel/sdk/liveParams';
86
+
87
+ await app.init({ background: '#101018' }); // renderer first: the resize fires at once
88
+ setupGameResize((w, h) => { app.renderer.resize(w, h); game.layout(w, h); });
89
+
90
+ const audio = new AudioEngine({ iosPatch: false }); // the ringer switch mutes it
91
+ addEventListener('pointerup', () => audio.unlock(), { once: true });
92
+
93
+ const save = new SaveManager({ key: 'runner', version: 1, defaults: { best: 0 } });
94
+ const params = initLiveParams({ gravity: { type: 'number', value: 1800, min: 600, max: 3000 } });
95
+ if (!Object.keys(params.all()).length) console.error('live params rejected');
96
+
97
+ function onRunEnd(distance: number) {
98
+ if (distance > save.data.best) save.update({ best: distance });
99
+ if (!save.flush().ok) showToast('Could not save your best run');
100
+ }
101
+ // in update(dt): vy += (params.get<number>('gravity') ?? 1800) * dt;
102
+ ```
103
+
104
+ ## Common mistakes
105
+
106
+ - `leaderboard.submit(score)`: `leaderboard` is a factory, so the call throws.
107
+ - A caret on the SDK version: the platform build and your build resolve different code.
108
+ - `import { AudioEngine } from '@funpixel/sdk'`: only `setupGameResize` is at the root.
109
+ - Connecting a sound straight to `ctx.destination`: the mute toggle misses it, and a rhythm game
110
+ on `iosPatch: true` goes quiet on a silenced iPhone.
111
+ - Treating `safeArea.insets()` zeros as "no notch".
112
+ - Relying on `haptics` for feedback: nothing happens on iPhone, so pair it with a visible cue.
113
+
114
+ Where this comes from: ours, from the SDK and its budget audit; a few device notes began in our platform prompts.
@@ -0,0 +1,62 @@
1
+ # Three.js contracts
2
+
3
+ Each of these builds cleanly and breaks the game or the checks when missed. Generated models have
4
+ their own traps: skill `funpixel-3d`.
5
+
6
+ - Export after setup: `window.THREE = THREE`, `window.__THREEJS_SCENE__ = scene`,
7
+ `window.__THREEJS_RENDERER__ = renderer` (what `profile` reads), `window.camera = camera`. Verify projects the player through that
8
+ camera to decide whether it can be seen.
9
+ - Every mesh, group and light gets a `.name`, including loaded model roots
10
+ (`gltf.scene.name = 'player'`).
11
+ - One loop: `renderer.setAnimationLoop(() => { const dt = Math.min(clock.getDelta(), 0.1); update(dt); renderer.render(scene, camera); })`.
12
+ With animated models, `mixer.update(dt)` runs every frame or the character freezes in its bind
13
+ pose.
14
+ - Size by CSS: `renderer.setSize(w, h, false)` plus `canvas.style.width = canvas.style.height = '100%'`;
15
+ cap `renderer.setPixelRatio(Math.min(devicePixelRatio, 1.5))`, because a pixel ratio of 3 fills
16
+ nine times the pixels.
17
+ - Decoders are required and same-origin: `DRACOLoader` with `setDecoderPath('/draco/')`,
18
+ `KTX2Loader` with `setTranscoderPath('/basis/')` and `detectSupport(renderer)` before any load,
19
+ and `setMeshoptDecoder(MeshoptDecoder)`. Vendor the decoder files into `public/`; without them
20
+ every model load fails and a fallback cube appears. A missing-module error on one of them means
21
+ fix the path, never delete the import.
22
+ - Generated models need an environment map (they export metallic materials and render flat grey
23
+ without one) and tone mapping; with an environment map, cut analytic lights to at most three.
24
+ - Colliders are simple proxies (a capsule, a box you size), never `Box3.setFromObject` on a skinned
25
+ mesh: the pose inflates it and every clip jitters the hitbox.
26
+ - More copies of a rigged model use `SkeletonUtils.clone`, never `root.clone()`.
27
+ - Instanced scenery: one `InstancedMesh` has one bounding sphere, so it is never culled in parts;
28
+ split huge fields into chunks.
29
+ - three r186 (the scaffold's) removed `PCFSoftShadowMap`: it silently becomes `PCFShadowMap` with one
30
+ console warning, so code written for an older three changes its shadow look. Use `PCFShadowMap` and
31
+ soften with `light.shadow.radius`.
32
+ - Phone budget: about 100 draw calls, at most three lights, no texture over 2048, shadows from the
33
+ key light only.
34
+
35
+ ## The 3D world starter
36
+
37
+ `funtools init` gives a 3D line the world starter (`--framework three-world`), one small file per
38
+ concern, each with its numbers in one table you tune rather than rewrite:
39
+
40
+ - `rules.ts` + `layout.ts` + `bot.ts`: engine-free movement (`MOVE`: run speed, acceleration, air
41
+ control, a held jump higher than a tap, coyote and buffer 0.1 s, a dash), platforms and pillars
42
+ from a seed, a sharp bot; Node tests and `test/probes.ts` play them with no frame.
43
+ - `shots.ts` (`SHOTS`) + `camera-rig.ts` (`RIG`): the camera plan as named shots (the title's
44
+ slow orbit over the play world, play's follow, a beat's `reveal`), each a lens, a height and a
45
+ distance, blended with `shoot(name, seconds)`; the rig follows with look-ahead on velocity, a ray
46
+ to the eye that pulls in fast and eases out slowly, and a steady yaw so the stick means the same
47
+ thing all round; upright phones pull back. `__FPX_CAMERA__` reports the shot and its numbers, so
48
+ `funtools score --target` prints moves such as `SHOTS.play.height 4.4 → 6.1`.
49
+ - `world.ts` + `palette.ts`: ACES tone mapping, sRGB output, a gradient sky with fog in its horizon
50
+ colour, hemisphere + one shadowing key light + a cool rim, ground coloured by noise, instanced
51
+ scatter past the edge, drifting motes. Colours are the CSS tokens, so the UI and the world change
52
+ together.
53
+ - `models.ts`: a `.glb` at `public/assets/models/<name>.glb` replaces its placeholder with no code;
54
+ placeholders are designed shapes in the palette and stay listed in `state.art.placeholders`
55
+ until their model lands. `assets/assets.json` lists them to generate, reference sheets first.
56
+ - `controls.tsx` + `input.ts`: a stick born where the thumb lands, jump and dash in the right
57
+ thumb's arc, inside the safe areas; keys and a gamepad reach the same verbs.
58
+ - `budget.ts` (`BUDGET`): 120 draw calls, 300k triangles, pixel ratio 1.5 at most, stepping the
59
+ shadows and then the pixel ratio down on long frames; `state.render` reports them.
60
+ - `screens.tsx`: the title over the orbiting world, banners over a softened world, a stamped ending.
61
+
62
+ Keep the shape when the game grows: new rules in engine-free files, their numbers in a table.
@@ -0,0 +1,116 @@
1
+ ---
2
+ name: funpixel-gdd
3
+ description: Use when starting a game from an idea or in an empty folder (start here, with flow start), planning the whole game, writing or growing its design document (GDD, a design doc; a long game in chapters), or when a request changes the genre, core verb or win condition or asks for a complete game. Covers invention, genre cards, the first look and playable, the release bar and the hand-back.
4
+ ---
5
+
6
+ # Starting and planning a game
7
+
8
+ A GDD is where a game is decided before it is built, and where the next session or a critic
9
+ learns what it is: a Part 1 that says what the game is and why, a Part 2 whose targets and named
10
+ tests come before code. It is the contract: the owner decides what it holds; inside it, the how is
11
+ yours to invent, and the creator's vision wins over any row here. While the GDD is being written, no gate applies: the template and the lint are a checklist
12
+ to consult at the end, not the order to write in.
13
+
14
+ One document, `design/GDD.md` (an older `design/README.md` reads the same). The hooks read its `## AD rules`, `## Actors`, `## Juice` and `## Fix round`.
15
+
16
+ ## Starting from an idea
17
+
18
+ `npx @funpixel/tools flow start` names the next step; the path our complete games took is [references/start.md](references/start.md) and
19
+ [references/the-path.md](references/the-path.md). In short: brief back; the first look (key art,
20
+ the hero's sheet); a first playable from it, which the owner plays; the design around it, locked; then the slice through real input (skill
21
+ `funpixel-verify`); then rounds against the plan's target frames until the owner says yes. A genre
22
+ recipe (`references/genre-<card|platformer|puzzle|racing|rpg|shooter|simulation|strategy|survival>.md`)
23
+ is a starting point; the creator's choices win. The release
24
+ bar our best games shared is [references/floors.md](references/floors.md); the hand-back says what
25
+ plays now with its literal controls, what is not in yet, and the next steps, with every
26
+ stand-in named. An existing game's change goes to skill `funpixel-game-spine`; a missing `verify.json`
27
+ is an evidence gap, not a rebuild.
28
+
29
+ ## Invent first, then fill the template
30
+
31
+ A plan filled template-first lost 3 of 3 blind seats to one that spent its time on design (Gallery
32
+ Heist, 1 Oct 2026). The order that won, in [references/invent-first.md](references/invent-first.md):
33
+
34
+ 1. **Six forcing questions**, in `## The invention`: what the core object means, why the verb
35
+ exists in this world, who wants what by name, what the twist costs in feeling and in play, the
36
+ one system that lives and reacts to the player, what only this game has. A generic answer means
37
+ the idea is not there yet.
38
+ 2. **A hit per axis** (mechanic, feel, touch controls, layout, surface satisfaction, readability,
39
+ market), each with take, avoid and a source link, in `## Hits, per axis`.
40
+ 3. **The studio pitch**: cards for genre and fidelity, depth, the core that burns, the story
41
+ standard, extras with their cost; pick each with why; the owner approves them at the lock
42
+ (`pitch ask` makes each theirs).
43
+ 4. **Worth building at this length?** Your numbers' minutes against the owner's target, beside the
44
+ first playable; recommend dropping a weak idea ([references/worth.md](references/worth.md)).
45
+ 5. **Named behaviour tests** in Part 2, before code.
46
+ 6. **Our lessons as defaults**: modelled places, a GPU tier, every attack tells, teach once at the
47
+ element, a camera that never fights the player, controls off the play.
48
+
49
+ Places that differ, fun with depth, phone controls: [references/level-and-fun.md](references/level-and-fun.md).
50
+
51
+ ## Tools
52
+
53
+ - `npx @funpixel/tools init <folder> --idea "<one line>"` picks engine, recipe and orientation,
54
+ seeds `design/GDD.md` and commits the game to git (never a temp folder);
55
+ `create_game` is for an agent with no local files.
56
+ - `npx @funpixel/tools gdd`: the invention answered or generic, hits per axis, named tests, the
57
+ locked core, then missing sections; no score, since completeness is not quality.
58
+ - `npx @funpixel/tools pitch`: the studio pitch's cards, picks and lock; `variety --within`: the
59
+ place pictures against each other.
60
+ - `gdd page`: the living plan page (`design/GDD.html`), agreed a section at a time; `greenlight page`: the lock's. The studio's best pages and pages of its own: references/pages.md.
61
+ - First look: `generate_image`, `generate_sound`, `generate_music` with the game's id; `loudness` measures the
62
+ cues against their targets. Sign-in: `funtools whoami`, `funtools login`.
63
+
64
+ ## What a great GDD holds
65
+
66
+ Copy [references/gdd-template.md](references/gdd-template.md) to `design/GDD.md`. What makes each
67
+ section strong is in [references/sections.md](references/sections.md).
68
+
69
+ 1. **The invention, the hits and the studio pitch** (above); **the promise**: one line, the thesis
70
+ in one frame or number, the 6-second ad; **pillars and decisions** against their alternatives.
71
+ 2. **The core loop and its numbers**: the three to five numbers that are the whole game, each with
72
+ why exactly that value, and the rule that stops the boring optimum.
73
+ 3. **The first minute and the hook**: first input by 0:05, a moment ladder, 2 to 4 wow moments.
74
+ 4. **Content**: kinds that each bend the core rule and read by silhouette, stages that each add one
75
+ thing, a climax; a counted content list and an art budget
76
+ ([references/plan-at-size.md](references/plan-at-size.md)).
77
+ 5. **Places and the living world**: each place its own shape, material, era and light, its rule
78
+ and a picture; one living system with a job in play; a rival whose want is half right ([references/world-and-identity.md](references/world-and-identity.md)).
79
+ 6. **Experience**, what stills miss ([references/experience.md](references/experience.md)).
80
+ 7. **Look, actors, audio, HUD and screens, juice, controls**: colour as assignment, AD rules
81
+ checkable in one frame, target frames; a phone mockup with every element numbered.
82
+ 8. **Scope, money model, build plan, risks**, and lessons that apply.
83
+ 9. **Part 2**: targets and named behaviour tests now; rewritten from the code once it runs, and from
84
+ then on it wins ([references/as-built.md](references/as-built.md)).
85
+
86
+ Mid and deep games add `design/spec/`, data the game loads ([references/spec-folder.md](references/spec-folder.md)).
87
+
88
+ ## Design measures: advice
89
+
90
+ `gdd` ends with six numbers and why: elements per hour (good games: 1.4–3), the spine, sources
91
+ (`gdd --sources`), peers, length totals, Steam's refund window. Advice: you read and decide, the owner
92
+ decides; a field the GDD lacks is not given ([references/design-measures.md](references/design-measures.md)).
93
+
94
+ ## Versions and the track
95
+
96
+ v0.1 before code, v0.2 after the first look, one per stage or per request bending a pillar. The stages and what each leaves behind: [references/track.md](references/track.md).
97
+
98
+ ## The first look
99
+
100
+ The key art and the hero's sheet first (the first playable is built from them); then, while
101
+ planning, the whole game: `npx @funpixel/tools firstlook` names its set. Say each paid job's cost. Each piece: [references/first-look.md](references/first-look.md).
102
+
103
+ **Image tools down?** Tell the owner, keep writing, stand in with marked code-drawn vignettes, and put
104
+ "pictures owed" in `## Open questions`; never fake a picture.
105
+
106
+ ## Worked example
107
+
108
+ Brief: "paper boats race down a rainy gutter". The boat is a child's message home, so a sunk boat
109
+ loses a line of it; the living system is the rain, a clock that floods the shortcuts.
110
+
111
+ ## Common mistakes
112
+
113
+ - Filling the template before inventing: complete, clear, forgettable.
114
+ - One genre hit as the whole research; places that differ only in name.
115
+ - Rules as prose instead of test names; a generated frame taken for the game.
116
+ - Calling unfinished stand-ins a deliberate style, or leaving the GDD at its first draft.