evomeme 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/dist/canvas-public/app.js +509 -5999
  2. package/dist/canvas-public/assets/presets/catalog.json +47 -0
  3. package/dist/canvas-public/assets/presets/tiles/A_01_CaoDi.png +0 -0
  4. package/dist/canvas-public/assets/presets/tiles/A_02_ShaMo.png +0 -0
  5. package/dist/canvas-public/assets/presets/tiles/A_03_TianKong.png +0 -0
  6. package/dist/canvas-public/assets/presets/tiles/A_04_ShuiBo.png +0 -0
  7. package/dist/canvas-public/assets/presets/tiles/A_05_HaiMian.png +0 -0
  8. package/dist/canvas-public/assets/presets/tiles/A_06_MuDiBan.png +0 -0
  9. package/dist/canvas-public/assets/presets/tiles/A_07_ShiZhuan.png +0 -0
  10. package/dist/canvas-public/assets/presets/tiles/A_08_AnRongYan.png +0 -0
  11. package/dist/canvas-public/assets/presets/tiles/A_09_QingTaiShi.png +0 -0
  12. package/dist/canvas-public/assets/presets/tiles/A_10_ShenHai.png +0 -0
  13. package/dist/canvas-public/assets/presets/tiles/A_11_HuiYanShi.png +0 -0
  14. package/dist/canvas-public/assets/presets/tiles/A_12_HongTu.png +0 -0
  15. package/dist/canvas-public/assets/presets/tiles/A_13_GengDi.png +0 -0
  16. package/dist/canvas-public/assets/presets/tiles/A_14_HuoShanYan.png +0 -0
  17. package/dist/canvas-public/assets/presets/tiles/A_15_NiTu.png +0 -0
  18. package/dist/canvas-public/assets/presets/tiles/A_16_HuangSha.png +0 -0
  19. package/dist/canvas-public/assets/presets/tiles/A_17_CongLin.png +0 -0
  20. package/dist/canvas-public/assets/presets/tiles/A_18_ZiYanShi.png +0 -0
  21. package/dist/canvas-public/assets/presets/tiles/A_19_MoGuTu.png +0 -0
  22. package/dist/canvas-public/assets/presets/tiles/A_20_HuaDian.png +0 -0
  23. package/dist/canvas-public/assets/presets/tiles/A_21_HaiLang.png +0 -0
  24. package/dist/canvas-public/assets/presets/tiles/A_22_GanTu.png +0 -0
  25. package/dist/canvas-public/assets/presets/tiles/A_23_QingTaiShiBan.png +0 -0
  26. package/dist/canvas-public/assets/presets/tiles/A_24_XingKong.png +0 -0
  27. package/dist/canvas-public/assets/presets/tiles/A_25_MoFaFuWen.png +0 -0
  28. package/dist/canvas-public/assets/presets/tiles/A_26_ShiTuYeDi.png +0 -0
  29. package/dist/canvas-public/assets/presets/tiles/A_27_LanZhuan.png +0 -0
  30. package/dist/canvas-public/assets/presets/tiles/A_28_HongZhuan.png +0 -0
  31. package/dist/canvas-public/assets/presets/tiles/A_29_YueQiu.png +0 -0
  32. package/dist/canvas-public/assets/presets/tiles/A_30_JinShuGe.png +0 -0
  33. package/dist/canvas-public/assets/presets/tiles/A_31_JinShuJingGai.png +0 -0
  34. package/dist/canvas-public/assets/presets/tiles/A_32_ShuZiChuang.png +0 -0
  35. package/dist/canvas-public/canvas/actions.js +143 -0
  36. package/dist/canvas-public/canvas/camera.js +28 -0
  37. package/dist/canvas-public/canvas/chrome.js +13 -0
  38. package/dist/canvas-public/canvas/data.js +123 -0
  39. package/dist/canvas-public/canvas/dependencies.js +19 -0
  40. package/dist/canvas-public/canvas/interactions.js +544 -0
  41. package/dist/canvas-public/canvas/panel-resize.js +5 -0
  42. package/dist/canvas-public/canvas/renderer.js +297 -0
  43. package/dist/canvas-public/canvas/selection.js +62 -0
  44. package/dist/canvas-public/canvas/serialization.js +118 -0
  45. package/dist/canvas-public/canvas/sync.js +202 -0
  46. package/dist/canvas-public/core/api.js +27 -0
  47. package/dist/canvas-public/core/feature-registry.js +29 -0
  48. package/dist/canvas-public/core/feature-state.js +228 -0
  49. package/dist/canvas-public/core/layout.js +133 -0
  50. package/dist/canvas-public/core/operations.js +38 -0
  51. package/dist/canvas-public/core/project.js +203 -0
  52. package/dist/canvas-public/core/state.js +27 -0
  53. package/dist/canvas-public/dialogs/context-menu.js +118 -0
  54. package/dist/canvas-public/elements/base.js +100 -0
  55. package/dist/canvas-public/elements/connections.js +105 -0
  56. package/dist/canvas-public/elements/drag.js +53 -0
  57. package/dist/canvas-public/elements/image.js +259 -0
  58. package/dist/canvas-public/elements/loading-recovery.js +5 -0
  59. package/dist/canvas-public/elements/loading.js +21 -0
  60. package/dist/canvas-public/elements/map.js +64 -0
  61. package/dist/canvas-public/elements/registry.js +58 -0
  62. package/dist/canvas-public/elements/replacement.js +78 -0
  63. package/dist/canvas-public/elements/resize.js +210 -0
  64. package/dist/canvas-public/elements/task-pipeline.js +234 -0
  65. package/dist/canvas-public/elements/types.js +21 -0
  66. package/dist/canvas-public/elements/ui.js +14 -0
  67. package/dist/canvas-public/elements/video.js +64 -0
  68. package/dist/canvas-public/features/assets/local-assets.js +72 -0
  69. package/dist/canvas-public/features/assets/official-assets.js +538 -0
  70. package/dist/canvas-public/features/editing/canvas-size.js +532 -0
  71. package/dist/canvas-public/features/editing/color-key.js +469 -0
  72. package/dist/canvas-public/features/editing/cutout.js +20 -0
  73. package/dist/canvas-public/features/editing/interactive-image-editing.js +981 -0
  74. package/dist/canvas-public/features/editing/layer-decomposition.js +44 -0
  75. package/dist/canvas-public/features/editing/manual-split.js +114 -0
  76. package/dist/canvas-public/features/editing/perfect-pixel.js +336 -0
  77. package/dist/canvas-public/features/editing/scroll-preview.js +129 -0
  78. package/dist/canvas-public/features/editing/scroll-seam-elimination.js +71 -0
  79. package/dist/canvas-public/features/editing/seam-elimination.js +46 -0
  80. package/dist/canvas-public/features/editing/smart-split.js +48 -0
  81. package/dist/canvas-public/features/editing/source-preview.js +43 -0
  82. package/dist/canvas-public/features/editing/video-cycle.js +49 -0
  83. package/dist/canvas-public/features/editing/video-frames.js +35 -0
  84. package/dist/canvas-public/features/frame-editor/frame-editing.js +755 -0
  85. package/dist/canvas-public/features/frame-editor/frame-model.js +63 -0
  86. package/dist/canvas-public/features/frame-editor/playback.js +83 -0
  87. package/dist/canvas-public/features/frame-editor/preview.js +149 -0
  88. package/dist/canvas-public/features/generation/animation.js +272 -0
  89. package/dist/canvas-public/features/generation/asset-batch.js +102 -0
  90. package/dist/canvas-public/features/generation/direction.js +163 -0
  91. package/dist/canvas-public/features/generation/fields.js +73 -0
  92. package/dist/canvas-public/features/generation/game-ui.js +64 -0
  93. package/dist/canvas-public/features/generation/image.js +83 -0
  94. package/dist/canvas-public/features/generation/scroll-image.js +157 -0
  95. package/dist/canvas-public/features/generation/seamless-tile.js +52 -0
  96. package/dist/canvas-public/features/generation/tile-transition-atlas.js +79 -0
  97. package/dist/canvas-public/features/generation/video.js +105 -0
  98. package/dist/canvas-public/features/map/creation.js +73 -0
  99. package/dist/canvas-public/features/map/tile-map-editor.js +2518 -0
  100. package/dist/canvas-public/features/registry.js +59 -0
  101. package/dist/canvas-public/index.html +84 -259
  102. package/dist/canvas-public/inspector/controls.js +49 -0
  103. package/dist/canvas-public/inspector/frame-preview.js +11 -0
  104. package/dist/canvas-public/inspector/inspector.js +190 -0
  105. package/dist/canvas-public/inspector/media-inspector.js +517 -0
  106. package/dist/canvas-public/inspector/media-preview.js +56 -0
  107. package/dist/canvas-public/inspector/number-stepper.js +96 -0
  108. package/dist/canvas-public/inspector/resize.js +88 -0
  109. package/dist/canvas-public/inspector/scroll-preview.js +11 -0
  110. package/dist/canvas-public/inspector/ui-inspector.js +14 -0
  111. package/dist/canvas-public/language/en-US.js +1059 -0
  112. package/dist/canvas-public/language/index.js +79 -0
  113. package/dist/canvas-public/language/zh-CN.js +1059 -0
  114. package/dist/canvas-public/map/export.js +9 -0
  115. package/dist/canvas-public/map/inspector.js +8 -0
  116. package/dist/canvas-public/map/model.js +409 -0
  117. package/dist/canvas-public/map/tile-map-editor.js +2 -0
  118. package/dist/canvas-public/media/metadata.js +183 -0
  119. package/dist/canvas-public/media/support.js +183 -0
  120. package/dist/canvas-public/styles/base.css +49 -0
  121. package/dist/canvas-public/styles/canvas.css +127 -0
  122. package/dist/canvas-public/styles/controls.css +203 -0
  123. package/dist/canvas-public/styles/dialogs.css +521 -0
  124. package/dist/canvas-public/styles/feature-form.css +409 -0
  125. package/dist/canvas-public/styles/inspector.css +441 -0
  126. package/dist/canvas-public/styles/layout.css +344 -0
  127. package/dist/canvas-public/styles/map.css +11 -0
  128. package/dist/canvas-public/styles/nodes.css +636 -0
  129. package/dist/canvas-public/styles.css +9 -2247
  130. package/dist/canvas-public/ui/controls.js +222 -0
  131. package/dist/canvas-public/ui/elements.js +9 -0
  132. package/dist/canvas-public/ui/feature-controller.js +296 -0
  133. package/dist/canvas-public/ui/feature-form.js +401 -0
  134. package/dist/canvas-public/ui/settings.js +83 -0
  135. package/dist/canvas-public/ui/toolbar.js +55 -0
  136. package/dist/canvas-public/vendor/pixi-tilemap.js +126 -0
  137. package/dist/canvas-public/vendor/pixi.min.js +2340 -0
  138. package/dist/canvas-public/workers/color-key-worker.js +289 -0
  139. package/dist/canvas-public/workers/perfect-pixel-worker.js +510 -0
  140. package/dist/index.js +42236 -13382
  141. package/dist/skills/en-US/evomeme-canvas/SKILL.md +52 -0
  142. package/dist/skills/en-US/evomeme-canvas/agents/openai.yaml +7 -0
  143. package/dist/skills/en-US/evomeme-cloud-fs/SKILL.md +176 -0
  144. package/dist/skills/en-US/evomeme-cloud-fs/agents/openai.yaml +7 -0
  145. package/dist/skills/en-US/evomeme-cover/SKILL.md +132 -0
  146. package/dist/skills/en-US/evomeme-cover/agents/openai.yaml +7 -0
  147. package/dist/skills/en-US/evomeme-game-maker/SKILL.md +288 -0
  148. package/dist/skills/en-US/evomeme-game-maker/agents/openai.yaml +4 -0
  149. package/dist/skills/en-US/evomeme-login/SKILL.md +92 -0
  150. package/dist/skills/en-US/evomeme-login/agents/openai.yaml +7 -0
  151. package/dist/skills/en-US/evomeme-native-bridge-sdk/SKILL.md +286 -0
  152. package/dist/skills/en-US/evomeme-native-bridge-sdk/agents/openai.yaml +8 -0
  153. package/dist/skills/en-US/evomeme-tos-upload/SKILL.md +47 -0
  154. package/dist/skills/en-US/evomeme-tos-upload/agents/openai.yaml +5 -0
  155. package/dist/skills/en-US/evomeme-ui/SKILL.md +123 -0
  156. package/dist/skills/en-US/evomeme-ui/agents/openai.yaml +4 -0
  157. package/dist/skills/en-US/evomeme-ui/references/host-layout.md +69 -0
  158. package/dist/skills/en-US/game-art/SKILL.md +121 -0
  159. package/dist/skills/en-US/game-art/agents/openai.yaml +8 -0
  160. package/dist/skills/en-US/game-asset-align/SKILL.md +45 -0
  161. package/dist/skills/en-US/game-asset-align/agents/openai.yaml +8 -0
  162. package/dist/skills/en-US/game-asset-align/references/alignment-contract.md +61 -0
  163. package/dist/skills/en-US/game-asset-align/references/blender-scene-pipeline.md +45 -0
  164. package/dist/skills/en-US/game-asset-align/references/canonical-package.md +26 -0
  165. package/dist/skills/en-US/game-asset-align/references/engine-capabilities.md +14 -0
  166. package/dist/skills/en-US/game-asset-align/references/lightweight-review.md +32 -0
  167. package/dist/skills/en-US/game-asset-align/references/repair-policy.md +30 -0
  168. package/dist/skills/en-US/game-asset-align/references/tool-contract.md +39 -0
  169. package/dist/skills/en-US/game-asset-align/references/visual-review.md +26 -0
  170. package/dist/skills/en-US/game-asset-image-generator/SKILL.md +104 -0
  171. package/dist/skills/en-US/game-asset-image-generator/agents/openai.yaml +7 -0
  172. package/dist/skills/en-US/game-asset-image-generator/references/background.md +32 -0
  173. package/dist/skills/en-US/game-asset-image-generator/references/static-game-assets.md +38 -0
  174. package/dist/skills/en-US/game-audio/SKILL.md +82 -0
  175. package/dist/skills/en-US/game-audio/agents/openai.yaml +4 -0
  176. package/dist/skills/en-US/game-demo/SKILL.md +103 -0
  177. package/dist/skills/en-US/game-demo/agents/openai.yaml +7 -0
  178. package/dist/skills/en-US/game-maker/SKILL.md +111 -0
  179. package/dist/skills/en-US/game-maker/agents/openai.yaml +4 -0
  180. package/dist/skills/en-US/game-test/SKILL.md +58 -0
  181. package/dist/skills/en-US/game-test/agents/openai.yaml +7 -0
  182. package/dist/skills/en-US/game-ui/SKILL.md +177 -0
  183. package/dist/skills/en-US/game-ui/agents/openai.yaml +4 -0
  184. package/dist/skills/en-US/godot-3d-game/SKILL.md +39 -0
  185. package/dist/skills/en-US/godot-3d-game/agents/openai.yaml +8 -0
  186. package/dist/skills/en-US/godot-3d-game/references/alignment-gates.md +26 -0
  187. package/dist/skills/en-US/godot-3d-game/references/appearance-alignment.md +52 -0
  188. package/dist/skills/en-US/godot-3d-game/references/build-and-qa.md +22 -0
  189. package/dist/skills/en-US/godot-3d-game/references/canonical-asset-runtime.md +27 -0
  190. package/dist/skills/en-US/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
  191. package/dist/skills/en-US/godot-3d-game/references/physics-colliders.md +13 -0
  192. package/dist/skills/en-US/godot-3d-game/references/project-structure.md +22 -0
  193. package/dist/skills/en-US/godot-3d-game/references/skeleton-animation.md +16 -0
  194. package/dist/skills/en-US/phaser-2d-game/SKILL.md +127 -0
  195. package/dist/skills/en-US/phaser-2d-game/agents/openai.yaml +8 -0
  196. package/dist/skills/en-US/phaser-2d-game/references/engine-performance.md +64 -0
  197. package/dist/skills/en-US/phaser-2d-game/references/engine-physics.md +139 -0
  198. package/dist/skills/en-US/phaser-2d-game/references/engine-runtime.md +129 -0
  199. package/dist/skills/en-US/phaser-2d-game/references/engine-spritesheets.md +99 -0
  200. package/dist/skills/en-US/phaser-2d-game/references/engine-tilemaps.md +80 -0
  201. package/dist/skills/en-US/phaser-2d-game/references/file-structure.md +94 -0
  202. package/dist/skills/en-US/phaser-2d-graphics-builder/SKILL.md +68 -0
  203. package/dist/skills/en-US/phaser-2d-graphics-builder/agents/openai.yaml +7 -0
  204. package/dist/skills/en-US/threejs-3d-game/SKILL.md +117 -0
  205. package/dist/skills/en-US/threejs-3d-game/agents/openai.yaml +7 -0
  206. package/dist/skills/en-US/threejs-3d-game/references/engine-asset-pipeline.md +153 -0
  207. package/dist/skills/en-US/threejs-3d-game/references/engine-audio.md +70 -0
  208. package/dist/skills/en-US/threejs-3d-game/references/engine-input-camera.md +84 -0
  209. package/dist/skills/en-US/threejs-3d-game/references/engine-performance.md +96 -0
  210. package/dist/skills/en-US/threejs-3d-game/references/engine-physics.md +142 -0
  211. package/dist/skills/en-US/threejs-3d-game/references/engine-runtime.md +199 -0
  212. package/dist/skills/en-US/threejs-3d-game/references/file-structure.md +353 -0
  213. package/dist/skills/en-US/threejs-aaa-graphics-builder/SKILL.md +62 -0
  214. package/dist/skills/en-US/threejs-aaa-graphics-builder/agents/openai.yaml +7 -0
  215. package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/SKILL.md +4 -4
  216. package/{skills → dist/skills/zh-CN}/evomeme-cover/SKILL.md +1 -1
  217. package/{skills → dist/skills/zh-CN}/evomeme-game-maker/SKILL.md +91 -88
  218. package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/SKILL.md +6 -5
  219. package/dist/skills/zh-CN/evomeme-ui/SKILL.md +123 -0
  220. package/dist/skills/zh-CN/evomeme-ui/agents/openai.yaml +4 -0
  221. package/dist/skills/zh-CN/evomeme-ui/references/host-layout.md +69 -0
  222. package/dist/skills/zh-CN/game-asset-align/SKILL.md +45 -0
  223. package/dist/skills/zh-CN/game-asset-align/agents/openai.yaml +8 -0
  224. package/dist/skills/zh-CN/game-asset-align/references/alignment-contract.md +61 -0
  225. package/dist/skills/zh-CN/game-asset-align/references/blender-scene-pipeline.md +45 -0
  226. package/dist/skills/zh-CN/game-asset-align/references/canonical-package.md +26 -0
  227. package/dist/skills/zh-CN/game-asset-align/references/engine-capabilities.md +14 -0
  228. package/dist/skills/zh-CN/game-asset-align/references/lightweight-review.md +32 -0
  229. package/dist/skills/zh-CN/game-asset-align/references/repair-policy.md +30 -0
  230. package/dist/skills/zh-CN/game-asset-align/references/tool-contract.md +39 -0
  231. package/dist/skills/zh-CN/game-asset-align/references/visual-review.md +26 -0
  232. package/{skills → dist/skills/zh-CN}/game-asset-image-generator/SKILL.md +1 -1
  233. package/dist/skills/zh-CN/game-audio/references/bgm-cdn.md +127 -0
  234. package/dist/skills/zh-CN/game-audio/references/sfx-cdn.md +77 -0
  235. package/dist/skills/zh-CN/game-test/references/checklists/playtest-qa.md +12 -0
  236. package/{skills → dist/skills/zh-CN}/game-ui/SKILL.md +9 -1
  237. package/dist/skills/zh-CN/game-ui/references/checklists/game-ui-quality.md +14 -0
  238. package/dist/skills/zh-CN/game-ui/references/checklists/hud-readability.md +12 -0
  239. package/dist/skills/zh-CN/game-ui/references/checklists/mobile-input.md +12 -0
  240. package/dist/skills/zh-CN/game-ui/references/checklists/responsive-ui-fit.md +12 -0
  241. package/dist/skills/zh-CN/game-ui/references/ui-patterns.md +140 -0
  242. package/dist/skills/zh-CN/game-ui/references/ui-prompt-templates.md +63 -0
  243. package/dist/skills/zh-CN/godot-3d-game/SKILL.md +39 -0
  244. package/dist/skills/zh-CN/godot-3d-game/agents/openai.yaml +8 -0
  245. package/dist/skills/zh-CN/godot-3d-game/references/alignment-gates.md +26 -0
  246. package/dist/skills/zh-CN/godot-3d-game/references/appearance-alignment.md +52 -0
  247. package/dist/skills/zh-CN/godot-3d-game/references/build-and-qa.md +22 -0
  248. package/dist/skills/zh-CN/godot-3d-game/references/canonical-asset-runtime.md +27 -0
  249. package/dist/skills/zh-CN/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
  250. package/dist/skills/zh-CN/godot-3d-game/references/physics-colliders.md +13 -0
  251. package/dist/skills/zh-CN/godot-3d-game/references/project-structure.md +22 -0
  252. package/dist/skills/zh-CN/godot-3d-game/references/skeleton-animation.md +16 -0
  253. package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
  254. package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
  255. package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  256. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/compose-quality.md +10 -0
  257. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +9 -0
  258. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +15 -0
  259. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +10 -0
  260. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +9 -0
  261. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +9 -0
  262. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/compose-recipes.md +71 -0
  263. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +33 -0
  264. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/implementation-blueprint.md +82 -0
  265. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/sprite-recipes.md +90 -0
  266. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/technical-art.md +67 -0
  267. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/vfx-recipes.md +67 -0
  268. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/visual-scorecard.md +129 -0
  269. package/{skills → dist/skills/zh-CN}/threejs-3d-game/SKILL.md +6 -2
  270. package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-asset-pipeline.md +52 -15
  271. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
  272. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
  273. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  274. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +23 -0
  275. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +19 -0
  276. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +14 -0
  277. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +14 -0
  278. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +15 -0
  279. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +17 -0
  280. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +236 -0
  281. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/implementation-blueprint.md +161 -0
  282. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/model-recipes.md +146 -0
  283. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/render-recipes.md +90 -0
  284. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/shader-cookbook.md +292 -0
  285. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/technical-art.md +167 -0
  286. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/visual-scorecard.md +147 -0
  287. package/dist/stage-blender/bake_materials.py +102 -0
  288. package/dist/stage-blender/export_scene.py +275 -0
  289. package/dist/stage-blender/preview_camera.py +90 -0
  290. package/dist/stage-blender/repair_mesh.py +112 -0
  291. package/dist/stage-public/app.js +759 -0
  292. package/dist/stage-public/baked/bakePilot.js +44 -0
  293. package/dist/stage-public/baked/bakedScene.js +129 -0
  294. package/dist/stage-public/baked/sceneAppearance.js +225 -0
  295. package/dist/stage-public/baked/sceneCamera.js +45 -0
  296. package/dist/stage-public/comparison-contract.js +28 -0
  297. package/dist/stage-public/delivery.html +4 -0
  298. package/dist/stage-public/delivery.js +17 -0
  299. package/dist/stage-public/godot/appearance.gd +170 -0
  300. package/dist/stage-public/godot/preview.gd +79 -0
  301. package/dist/stage-public/index.html +141 -0
  302. package/dist/stage-public/review-app.js +289 -0
  303. package/dist/stage-public/review-runtime.js +63 -0
  304. package/dist/stage-public/review.css +24 -0
  305. package/dist/stage-public/review.html +47 -0
  306. package/dist/stage-public/scene-runtime.js +212 -0
  307. package/dist/stage-public/sceneContractRuntime.js +235 -0
  308. package/dist/stage-public/styles.css +328 -0
  309. package/dist/stage-public/three-appearance.js +104 -0
  310. package/dist/stage-public/vendor/three170/LICENSE +21 -0
  311. package/dist/stage-public/vendor/three170/build/three.module.js +54571 -0
  312. package/dist/stage-public/vendor/three170/examples/jsm/controls/OrbitControls.js +1523 -0
  313. package/dist/stage-public/vendor/three170/examples/jsm/environments/RoomEnvironment.js +144 -0
  314. package/dist/stage-public/vendor/three170/examples/jsm/libs/fflate.module.js +2672 -0
  315. package/dist/stage-public/vendor/three170/examples/jsm/loaders/EXRLoader.js +2563 -0
  316. package/dist/stage-public/vendor/three170/examples/jsm/loaders/GLTFLoader.js +4727 -0
  317. package/dist/stage-public/vendor/three170/examples/jsm/utils/BufferGeometryUtils.js +1373 -0
  318. package/dist/tile-transition-mask.svg +40 -0
  319. package/package.json +21 -7
  320. package/dist/canvas-public/cycle-detect.js +0 -166
  321. package/dist/canvas-public/smart-split.js +0 -185
  322. /package/{skills → dist/skills/en-US}/game-audio/references/bgm-cdn.md +0 -0
  323. /package/{skills → dist/skills/en-US}/game-audio/references/sfx-cdn.md +0 -0
  324. /package/{skills → dist/skills/en-US}/game-test/references/checklists/playtest-qa.md +0 -0
  325. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/game-ui-quality.md +0 -0
  326. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/hud-readability.md +0 -0
  327. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/mobile-input.md +0 -0
  328. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/responsive-ui-fit.md +0 -0
  329. /package/{skills → dist/skills/en-US}/game-ui/references/ui-patterns.md +0 -0
  330. /package/{skills → dist/skills/en-US}/game-ui/references/ui-prompt-templates.md +0 -0
  331. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
  332. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
  333. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  334. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/compose-quality.md +0 -0
  335. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
  336. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +0 -0
  337. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +0 -0
  338. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +0 -0
  339. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +0 -0
  340. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/compose-recipes.md +0 -0
  341. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +0 -0
  342. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/implementation-blueprint.md +0 -0
  343. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/sprite-recipes.md +0 -0
  344. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/technical-art.md +0 -0
  345. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/vfx-recipes.md +0 -0
  346. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/visual-scorecard.md +0 -0
  347. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
  348. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
  349. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  350. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +0 -0
  351. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +0 -0
  352. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +0 -0
  353. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
  354. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +0 -0
  355. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +0 -0
  356. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +0 -0
  357. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/implementation-blueprint.md +0 -0
  358. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/model-recipes.md +0 -0
  359. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/render-recipes.md +0 -0
  360. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/shader-cookbook.md +0 -0
  361. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/technical-art.md +0 -0
  362. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/visual-scorecard.md +0 -0
  363. /package/{skills → dist/skills/zh-CN}/evomeme-canvas/SKILL.md +0 -0
  364. /package/{skills → dist/skills/zh-CN}/evomeme-canvas/agents/openai.yaml +0 -0
  365. /package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/agents/openai.yaml +0 -0
  366. /package/{skills → dist/skills/zh-CN}/evomeme-cover/agents/openai.yaml +0 -0
  367. /package/{skills → dist/skills/zh-CN}/evomeme-game-maker/agents/openai.yaml +0 -0
  368. /package/{skills → dist/skills/zh-CN}/evomeme-login/SKILL.md +0 -0
  369. /package/{skills → dist/skills/zh-CN}/evomeme-login/agents/openai.yaml +0 -0
  370. /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/SKILL.md +0 -0
  371. /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/agents/openai.yaml +0 -0
  372. /package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/agents/openai.yaml +0 -0
  373. /package/{skills → dist/skills/zh-CN}/game-art/SKILL.md +0 -0
  374. /package/{skills → dist/skills/zh-CN}/game-art/agents/openai.yaml +0 -0
  375. /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/agents/openai.yaml +0 -0
  376. /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/background.md +0 -0
  377. /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/static-game-assets.md +0 -0
  378. /package/{skills → dist/skills/zh-CN}/game-audio/SKILL.md +0 -0
  379. /package/{skills → dist/skills/zh-CN}/game-audio/agents/openai.yaml +0 -0
  380. /package/{skills → dist/skills/zh-CN}/game-demo/SKILL.md +0 -0
  381. /package/{skills → dist/skills/zh-CN}/game-demo/agents/openai.yaml +0 -0
  382. /package/{skills → dist/skills/zh-CN}/game-maker/SKILL.md +0 -0
  383. /package/{skills → dist/skills/zh-CN}/game-maker/agents/openai.yaml +0 -0
  384. /package/{skills → dist/skills/zh-CN}/game-test/SKILL.md +0 -0
  385. /package/{skills → dist/skills/zh-CN}/game-test/agents/openai.yaml +0 -0
  386. /package/{skills → dist/skills/zh-CN}/game-ui/agents/openai.yaml +0 -0
  387. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/SKILL.md +0 -0
  388. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/agents/openai.yaml +0 -0
  389. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-performance.md +0 -0
  390. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-physics.md +0 -0
  391. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-runtime.md +0 -0
  392. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-spritesheets.md +0 -0
  393. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-tilemaps.md +0 -0
  394. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/file-structure.md +0 -0
  395. /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/SKILL.md +0 -0
  396. /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/agents/openai.yaml +0 -0
  397. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/agents/openai.yaml +0 -0
  398. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-audio.md +0 -0
  399. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-input-camera.md +0 -0
  400. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-performance.md +0 -0
  401. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-physics.md +0 -0
  402. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-runtime.md +0 -0
  403. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/file-structure.md +0 -0
  404. /package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/SKILL.md +0 -0
  405. /package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/agents/openai.yaml +0 -0
@@ -0,0 +1,140 @@
1
+ # Game UI Patterns
2
+
3
+ Use this when designing HUDs, menus, overlays, pause/fail/win states, touch controls, typography, responsive layout, and UI/world cohesion.
4
+
5
+ ## UI Principles
6
+
7
+ - Build the game interface, not a web dashboard.
8
+ - Prioritize gameplay hierarchy: survival/status, objective/progress, immediate feedback, then flavor.
9
+ - Use meters, icons, reticles, badges, alert strips, cooldown rings, inventory slots, minimaps, diegetic labels, and compact clusters before generic stat cards.
10
+ - Keep UI outside the play path and away from threats, pickups, the player, and the next decision.
11
+ - UI should reinforce the world art direction through material cues, color roles, icon shapes, and motion language.
12
+ - Do not use visible text to explain obvious controls when an icon, affordance, or direct interaction can do the job.
13
+
14
+ ## Required States
15
+
16
+ Inventory states before designing:
17
+
18
+ - Gameplay HUD.
19
+ - Pause/resume.
20
+ - Settings or audio/accessibility controls when useful.
21
+ - Fail/retry.
22
+ - Win/milestone/level complete when relevant.
23
+ - Loading/empty/error when async assets exist.
24
+ - Mobile/touch controls when target includes mobile.
25
+ - Debug/tuning UI gated separately from player UI.
26
+
27
+ Premium games should not have only one HUD state.
28
+
29
+ ## HUD Composition
30
+
31
+ Use intentional zones:
32
+
33
+ - Top or top-left: objective, wave, distance, timer, route/progress.
34
+ - Top or top-right: score, currency, combo, inventory, pause.
35
+ - Bottom left/right: touch movement/action controls when needed.
36
+ - Center top or near player: short event banners, combo, warnings.
37
+ - Near-world labels: diegetic prompts, target markers, offscreen indicators.
38
+
39
+ Rules:
40
+
41
+ - Use fixed-width numeric containers for score, timer, ammo, speed, health, and best values.
42
+ - Use icons plus short labels for unfamiliar resources.
43
+ - Use meter fills for quantities the player must read quickly.
44
+ - Use alert colors consistently: danger, reward, shield, boost, objective, disabled.
45
+ - Animate state changes briefly: count-up, meter fill, pulse, slide/fade, snap, ring cooldown.
46
+ - Do not stack multiple large banners over the play path.
47
+
48
+ ## Menus And Overlays
49
+
50
+ Pause/fail/win overlays should support quick action:
51
+
52
+ - Primary action first: resume, retry, continue, next.
53
+ - Secondary actions: settings, quit, restart, level select.
54
+ - Avoid marketing-page hero layouts inside a game.
55
+ - Keep menu panels stable and readable across desktop/mobile.
56
+ - Use icon buttons for pause, sound, restart, fullscreen, settings when familiar.
57
+ - Provide focus/hover/pressed/disabled states.
58
+ - Gate debug panels behind a dev flag or query param.
59
+
60
+ ## Touch Controls
61
+
62
+ When mobile is in scope:
63
+
64
+ - Use pointer events where possible.
65
+ - Ensure controls emit the same game intents as keyboard/mouse.
66
+ - Handle `pointerup`, `pointercancel`, `lostpointercapture`, blur, and visibility change.
67
+ - Use safe-area insets.
68
+ - Avoid controls overlapping HUD warnings or the play path.
69
+ - Keep touch targets at least roughly 44 CSS pixels where practical.
70
+ - Separate adjacent controls enough to prevent accidental presses.
71
+ - Use `touch-action` to prevent unwanted page scrolling only in control regions or the game surface.
72
+
73
+ ## Responsive Constraints
74
+
75
+ - Define stable dimensions with CSS variables, `clamp`, grid tracks, fixed icon slots, and fixed-width numbers.
76
+ - Present a fixed-aspect game stage as the sole visual subject and maximize it within the viewport; keep extra desktop space as passive page background.
77
+ - Do not scale text purely with viewport width.
78
+ - Avoid negative letter spacing.
79
+ - Check desktop, laptop, tablet/narrow, and phone viewports.
80
+ - Test longest likely values: high score, long labels, multi-digit timers, localized-ish text if relevant.
81
+ - No clipped text, overlapping controls, unreadably small labels, or layout shift from changing values.
82
+ - Menus must remain reachable without offscreen controls.
83
+
84
+ ## Visual Style
85
+
86
+ - Match the genre: arcade racers need speed/status readability; fighters need health/round/impact hierarchy; exploration games need inventory/objective clarity.
87
+ - Prefer restrained panels with meaningful geometry, borders, ticks, glow accents, and material cues over nested cards.
88
+ - Use a limited status palette plus neutral surfaces.
89
+ - Avoid one-note purple/blue gradient UI unless it is strongly justified by the game world.
90
+ - Connect UI motifs to world decals, faction marks, vehicle panels, pickups, or hazards.
91
+
92
+ ## 2D Asset Sourcing
93
+
94
+ Prefer procedural/CSS/canvas UI art from this skill when hand-coded techniques are enough. When external 2D is needed:
95
+
96
+ - User-supplied PNG/JPG/WebP wired via config or `<img>`/canvas textures.
97
+ - Remote MCP `evomeme_generate_game_image` when available.
98
+ - Procedural canvas exports saved under `assets/ui/` or `assets/textures/`.
99
+
100
+ Use cases:
101
+
102
+ - Faction logos, team crests, title marks.
103
+ - Pickup, ability, weapon, inventory, achievement, and objective icons.
104
+ - Hazard signs, decals, lane glyphs, cockpit labels, item badges.
105
+ - Menu/loading/background plates, illustrated map panels, world-style UI textures.
106
+ - GUI material references: glass panels, metal frames, holographic strips, paper/parchment, tactical screens.
107
+
108
+ Use procedural geometry or a user-provided GLB only when the UI needs a 3D object: rotating character preview, vehicle garage, weapon inspect model, trophy, diorama, or diegetic 3D menu prop.
109
+
110
+ ## State Wiring
111
+
112
+ - UI reads game state from a single source of truth.
113
+ - UI events dispatch game intents; they should not mutate unrelated simulation internals directly.
114
+ - UI should update on pause, restart, resize, mobile orientation, mute, fail/win, score, health, boost, combo, inventory, and accessibility settings.
115
+ - Avoid stale values after restart.
116
+
117
+ ## Verification
118
+
119
+ Capture evidence:
120
+
121
+ - Gameplay HUD desktop screenshot.
122
+ - Gameplay HUD mobile screenshot when in scope.
123
+ - Pause/fail/retry state screenshot if changed.
124
+ - Text-fit and overlap check with high values.
125
+ - Touch target and safe-area check when mobile is in scope.
126
+ - Interaction test for UI buttons and touch controls.
127
+ - Console/page error check after UI events.
128
+ - Sourced 2D asset path and source (procedural / user-provided / remote MCP) when external 2D was used.
129
+ - Imported 3D preview model path and renderer diagnostics when a 3D UI prop/model was used.
130
+
131
+ ## Common Failures
132
+
133
+ - Generic dashboard/stat-card HUD.
134
+ - Nested cards and oversized decorative panels.
135
+ - UI covers threats, pickups, player, or next decision.
136
+ - Text explains obvious controls instead of designing affordances.
137
+ - Mobile safe areas ignored.
138
+ - Touch controls look correct but do not emit intents.
139
+ - Values change width and shift layout during play.
140
+ - Debug UI ships as player UI.
@@ -0,0 +1,63 @@
1
+ # Game UI Prompt Templates
2
+
3
+ Reusable prompt templates packaged with this skill. Use only templates relevant to the current request, and adapt placeholders to the game/project context.
4
+
5
+ ---
6
+
7
+ # Premium HUD/UI Pass Prompt
8
+
9
+ Use `game-ui` to make this browser game's HUD and in-game UI feel premium, readable, and genre-specific.
10
+
11
+ Context to gather:
12
+ - Current screenshots at desktop and mobile sizes.
13
+ - Game genre, core verb, target mood, and player decisions the HUD must support.
14
+ - Current HUD/menu files, game state sources, input model, and touch controls.
15
+
16
+ Design goals:
17
+ - Keep the playable game as the first screen.
18
+ - Make survival/status/objective information readable during motion.
19
+ - Use stable dimensions for counters, buttons, meters, and labels.
20
+ - Use icons where they reduce clutter, with labels where meaning is ambiguous.
21
+ - Match the game's world materials, color, typography, and feedback language.
22
+
23
+ Constraints:
24
+ - Do not add marketing-page hero sections or explanatory feature copy.
25
+ - Do not nest cards inside cards.
26
+ - Do not let UI cover critical gameplay at desktop or mobile sizes.
27
+ - Avoid text overflow, clipped controls, layout shift, and generic dashboard styling.
28
+
29
+ Verification:
30
+ - Build and run locally.
31
+ - Capture desktop and mobile screenshots.
32
+ - Check console/page errors.
33
+ - Verify text fit, no overlap, no clipped controls, and at least one UI state change from real input.
34
+
35
+ ---
36
+
37
+ # Responsive Game Menu Pass Prompt
38
+
39
+ Use `game-ui` to design or improve this browser game's pause, start, settings, win, lose, or restart menus.
40
+
41
+ Menu states needed:
42
+ -
43
+
44
+ Target devices/orientations:
45
+ -
46
+
47
+ Requirements:
48
+ - Menus must feel like part of the game, not a website overlay.
49
+ - Modal menus may pause or dim gameplay, but should not look like marketing cards.
50
+ - Buttons need clear hover, pressed, focus, disabled, and touch states.
51
+ - Settings must use appropriate controls: toggles, sliders, segmented controls, icon buttons, and select menus.
52
+ - Layout must respect safe-area insets and remain usable on mobile.
53
+
54
+ Implementation notes:
55
+ - Prefer semantic HTML/CSS over canvas-rendered UI unless 3D placement is required.
56
+ - Keep UI state driven by the game state model.
57
+ - Keep dimensions stable so labels and counters do not shift layout.
58
+
59
+ Verification:
60
+ - Test every menu state.
61
+ - Capture desktop and mobile screenshots.
62
+ - Check keyboard/mouse and touch paths when both are supported.
63
+ - Confirm no text overflow, overlap, clipping, or unreachable controls.
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: godot-3d-game
3
+ description: 用 Godot 4 构建和维护 3D 游戏,并消费 EvoMeme canonical 资产包。涉及 Godot 场景结构、GLB 导入、对齐 wrapper、骨骼动画、碰撞体、构建或 3D 运行时 QA 时使用;资产未就绪时必须转回 game-asset-align。
4
+ ---
5
+
6
+ # Godot 3D Game
7
+
8
+ ## Responsibility boundary
9
+
10
+ Godot 是出货运行时,不是资产朝向猜测器。资产对齐事实源属于 `game-asset-align`;本技能负责导入门禁、唯一 wrapper、游戏场景集成和 Godot 实机验证。
11
+
12
+ ## Required workflow
13
+
14
+ 1. 确认工程根含 `project.godot`,并阅读与任务相关的参考文件。
15
+ 2. **Blender 建模后必须先打开 Stage 展板,确认后才能导入 Godot。** 读取 canonical `asset.json` 并执行格式检查,调用 `evomeme_stage_open({workspace_dir, asset_id, target:"godot"})`,在 Stage 对比 Blender 与 Godot 原生画面的空间、结构、材质和灯光。由用户点击“确认当前版本,允许导入”。不得替用户点击、写确认文件或用技术 ready 状态跳过。
16
+ 3. 调用 `evomeme_asset_sync_to_godot`,不要手工复制部分文件。
17
+ 4. 完整场景使用 `CanonicalAssetLoader.load_scene(parent, package_dir)`,同时接入 Stage 已确认的 PBR 材质校准、灯光、环境、曝光和相机。道具进入已有关卡时使用 `load_package`,避免叠加场景环境。模型只能位于一个带 `canonical_alignment_key` 的 `A3AlignmentRoot` 下。
18
+ 5. 将玩法节点、动画、碰撞与可视模型分层;不要在角色控制器或动画树里补 canonical Transform。
19
+ 6. 在真实 Godot 运行画面中检查构图、接地、朝向、比例、材质和交互碰撞。
20
+
21
+ ## Routing references
22
+
23
+ - 工程目录与场景分层:读 [project-structure.md](references/project-structure.md)。
24
+ - 材质、灯光、曝光、相机和 Stage 原生预览:读 [appearance-alignment.md](references/appearance-alignment.md)。
25
+ - v2 loader、revision 与单 wrapper 规则:读 [canonical-asset-runtime.md](references/canonical-asset-runtime.md)。
26
+ - 导入前/运行时/交付门禁:读 [alignment-gates.md](references/alignment-gates.md)。
27
+ - GLB 导入、继承场景与 wrapper 维护:读 [import-and-wrapper-scenes.md](references/import-and-wrapper-scenes.md)。
28
+ - 角色骨骼与动画:读 [skeleton-animation.md](references/skeleton-animation.md)。
29
+ - 物理体与碰撞层:读 [physics-colliders.md](references/physics-colliders.md)。
30
+ - 构建、运行与截图 QA:读 [build-and-qa.md](references/build-and-qa.md)。
31
+
32
+ ## Completion gates
33
+
34
+ - 同步结果带 `alignment_status=aligned` 和非空 `alignment_key`。
35
+ - Stage 确认来自当前 Godot 原生画面;修改模型或显示配置后重新查看并确认,再同步。
36
+ - Godot 场景中同一资产只有一个 canonical alignment root。
37
+ - 模型节点保留原始导入 Transform,游戏逻辑不重复应用修复配方。
38
+ - 骨骼、动画、碰撞和视觉节点职责分离。
39
+ - 使用 Godot 实际运行截图验收;发现偏差时更新 canonical 包,不在 Godot 局部打补丁。
@@ -0,0 +1,8 @@
1
+ interface:
2
+ display_name: "Godot 3D Game"
3
+ short_description: "构建 Godot 4 三维游戏并安全消费持续对齐的 canonical 资产"
4
+ default_prompt: "请使用 $godot-3d-game 把已验收的 canonical 资产集成到这个 Godot 4 工程,并完成场景、运行时与构建验证。"
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
8
+
@@ -0,0 +1,26 @@
1
+ # Alignment gates
2
+
3
+ ## Before sync
4
+
5
+ - Godot root contains `project.godot`.
6
+ - Blender modeling/changes MUST be followed by opening Stage with target=godot and explicit user confirmation of the current native Godot view. Opening the page or setting ready/spec metadata is insufficient; no manual-copy bypass.
7
+ - Package is v2 and all required conditions are aligned or explicitly waived.
8
+ - Current `model.glb` bytes match the recorded SHA-256 and byte count.
9
+ - Recipe binds current source and intent revisions.
10
+ - Scene supplement, when present, passes coordinate, camera, manifest and path validation.
11
+ - Current confirmation binds the Godot profile, native screenshot, shared adapter, camera and source revision. A Three.js confirmation cannot authorize a Godot sync.
12
+
13
+ `evomeme_asset_sync_to_godot` performs these checks before creating or overwriting destination files.
14
+
15
+ ## At runtime
16
+
17
+ The loader repeats lightweight schema/revision assertions before loading the PackedScene. It does not recompute SHA-256 inside Godot; host-side sync owns byte validation. A package edited after sync is unsupported—resync it.
18
+
19
+ ## Before delivery
20
+
21
+ - inspect the remote scene tree for one `A3AlignmentRoot` per asset instance;
22
+ - verify intended forward motion, ground contact, scale and camera framing;
23
+ - exercise animation and physics so they do not reapply the wrapper transform;
24
+ - record a Godot run capture for render acceptance.
25
+
26
+ If any gate fails, use `game-asset-align`. Do not turn off assertions or hard-code fallback rotations.
@@ -0,0 +1,52 @@
1
+ # Godot 基础材质与灯光对齐
2
+
3
+ ## 必须遵守的顺序
4
+
5
+ **Blender MCP 建模/修改并保存 → evomeme_scene_export_blender → Stage 选择 Godot → 用户查看并确认 → sync_to_godot → Godot 工程集成与复验。** 源契约、可选程序材质烘焙与参数见 [场景导出流程](../../game-asset-align/references/blender-scene-pipeline.md)。
6
+
7
+ `evomeme_stage_open({workspace_dir,asset_id,target:"godot"})` 打开目标引擎视窗。宿主通过 `EVOMEME_GODOT` / `GODOT_PATH`(绝对可执行文件路径)或 PATH 提供 `godot`。右侧 PNG 来自独立 Godot 原生进程,模型快照写入 `.evomeme/godot-previews/`;不会提前写入最终游戏工程。左侧使用与契约相机匹配的 Blender 基准或当前机位原生渲染。未安装 Godot、原生渲染失败或机位变化时不能确认旧帧。
8
+
9
+ ## 数据与可调参数
10
+
11
+ 默认保留 GLB 标准 PBR 材质与纹理、法线、透明度;有 COLOR_0 的网格启用线性顶点颜色。默认从 `scene.contract.json.blender_lights` 重建 SUN/POINT/SPOT,按 `[x,y,z]→[x,z,-y]` 转换位置及 Blender Euler XYZ 灯光方向。AREA 使用聚光灯近似,界面明确提示;功率是基础换算,须目视校准。
12
+
13
+ 需要校准时,写入包内 `runtime/godot.profile.json`,并把文件字节数和 SHA-256 加到 `scene.contract.json.files`,设置 `display_profiles.godot.profile_file` 为该路径。例如:
14
+
15
+ ```json
16
+ {
17
+ "schema": "evomeme.godot_scene_profile.v1",
18
+ "asset_id": "my_scene",
19
+ "renderer": "gl_compatibility",
20
+ "environment": {
21
+ "background_srgb": [0.10, 0.14, 0.16],
22
+ "ambient_srgb": [0.75, 0.82, 0.85],
23
+ "ambient_energy": 0.5,
24
+ "exposure": 1.0,
25
+ "tonemapper": "filmic",
26
+ "fog": {"enabled": false, "color_srgb": [0.6, 0.7, 0.8], "density": 0.01}
27
+ },
28
+ "materials": [{"material_name": "Stone", "roughness": 0.8, "metallic": 0.0}]
29
+ }
30
+ ```
31
+
32
+ 材质按精确名称覆盖,名称缺失会使原生预览失败,避免静默无效。还可指定 `albedo_srgb` RGBA、`emission_srgb` RGB、`emission_energy`、`double_sided`;未指定字段保留 GLB 值和贴图。
33
+
34
+ 可显式提供 `lights` 数组替换派生灯光。每项 `type` 为 `directional/omni/spot`,使用 Godot Y-up 米制 `position`、`quaternion_xyzw`、`color_linear` RGB、`energy`、`range`、`spot_angle_degrees`(半角,0.1–89)及 `shadow_enabled`。`lights:[]` 明确禁用额外灯光。显式配置使用 Godot 能量值,不再进行 Blender 功率换算。
35
+
36
+ ## 对比与修改循环
37
+
38
+ 颜色环境光固定 `ambient_light_sky_contribution=0`,避免默认天空贡献值使 profile 的颜色环境光无效。Compatibility 的顶点颜色按 sRGB 参与着色,不能仅依赖 `vertex_color_is_srgb` 开关:共享适配器将 glTF 线性 COLOR_0 编码到私有网格副本,只更新 RGB 字节并保留 Alpha、UV、索引、骨骼、LOD 和源资源;Forward+/Mobile 保持线性数据。原生 Stage 隐藏 `-colonly` / `-convcolonly` 辅助网格(含复制后缀),防止 GLTFDocument 的运行时加载把碰撞体画成实物。
39
+
40
+ 1. 固定相机 quaternion、垂直 FOV、画幅,核对正反面、法线、透明度、贴图和顶点色。
41
+ 2. 核对主光方向、亮暗关系、阴影、粗糙度、金属高光、自发光、环境色和曝光。
42
+ 3. 修几何/节点材质回 Blender;基础引擎校准改 Godot profile,更新清单摘要。
43
+ 4. 重新载入 Stage,在当前 Godot 原生画面点击确认。`ready=true`、规范检查通过或 Three.js 确认不能替代此步骤。
44
+ 5. 同步后完整场景用 `CanonicalAssetLoader.load_scene(parent, package_dir)`。它应用与预览相同的 `canonical_appearance.gd`、`godot.appearance.json` 和相机;`load_package` 只处理道具模型与空间变换。
45
+
46
+ ## 运行时与范围
47
+
48
+ profile.renderer 支持 gl_compatibility(默认)、mobile、forward_plus。导出时可读取已有工程的实际 renderer;Stage 用相同模式原生预览,不静默退回 OpenGL;同步时校验目标工程模式一致。选择更高级渲染器不会自动实现体积或 GI 资源转换,展板仍明确显示缺失项。Camera3D 保持垂直 FOV,调用方用 SubViewport 或留边保持确认画幅;场景环境只接入一次,避免与关卡已有 WorldEnvironment/灯光叠加。玩法相机可在集成后接管,变化后要复验构图和材质。
49
+
50
+ Godot 导出设置需包含 `*.json` 非资源文件,保证 asset.json/godot.appearance.json 打入游戏。规范里的 Three.js 着色器、Cycles 全场景烘焙显示模块和 LUT 不会被 Godot 执行。基础 PBR、实时灯光/雾不承诺 Blender 程序节点、体积光、间接光或逐像素等价。
51
+
52
+ API 依据:[GLTFDocument](https://docs.godotengine.org/en/stable/classes/class_gltfdocument.html)、[Environment](https://docs.godotengine.org/en/stable/classes/class_environment.html)、[SpotLight3D](https://docs.godotengine.org/en/stable/classes/class_spotlight3d.html)。
@@ -0,0 +1,22 @@
1
+ # Build and QA
2
+
3
+ ## Minimum verification
4
+
5
+ 1. Let Godot finish GLB import with no resource errors.
6
+ 2. Run the scene that instances the asset through `CanonicalAssetLoader`.
7
+ 3. Confirm one alignment root and the expected alignment key in the remote scene tree.
8
+ 4. Exercise movement, animation, collision, camera and material visibility.
9
+ 5. Restart the scene or load the asset twice to confirm idempotency.
10
+ 6. Capture the actual Godot viewport/build for visual acceptance.
11
+
12
+ ## Failure routing
13
+
14
+ - schema/readiness/revision assertion: resync or return to `game-asset-align`;
15
+ - missing PackedScene/import failure: inspect GLB export and Godot import log, then repair/re-export the canonical source;
16
+ - wrong pose or missing parts: structural review/Blender path;
17
+ - wrong identity/detail: semantic review/source regeneration;
18
+ - material/culling/texture mismatch: render review, with Godot capture as evidence;
19
+ - collision or gameplay transform issue: fix the authored Godot scene above/beside the visual root without modifying canonical TRS.
20
+
21
+ Do not claim completion from a successful file copy alone. A successful run and target-engine visual check are required.
22
+
@@ -0,0 +1,27 @@
1
+ # Canonical asset runtime
2
+
3
+ Before any engine sync, open Stage with `target=godot` after Blender modeling and obtain the user's explicit confirmation of the current native frame. Technical alignment metadata alone cannot authorize import.
4
+
5
+ For a complete scene, call `CanonicalAssetLoader.load_scene(parent, package_dir)`. It applies the same material overrides, native lights, environment/exposure and reference camera reviewed in Stage. Use `load_package` below for props in a level with its own lighting. See [appearance-alignment.md](appearance-alignment.md).
6
+
7
+ Call:
8
+
9
+ ```gdscript
10
+ var visual := CanonicalAssetLoader.load_package(
11
+ visual_parent,
12
+ "res://assets/canonical/hero"
13
+ )
14
+ ```
15
+
16
+ The generated loader verifies:
17
+
18
+ - canonical asset and alignment schema versions;
19
+ - `alignment.ready=true` and `overall_status=aligned`;
20
+ - source fingerprint revision equality;
21
+ - recipe source and intent revision equality;
22
+ - a non-empty `alignment_key`;
23
+ - complete translation, quaternion and positive scale values.
24
+
25
+ It creates `<asset_id>_A3AlignmentRoot`, tags it with the asset ID and alignment key, and places the raw imported model below it. A second call with the same key returns the existing root. A newer key replaces that one root; calling it below another canonical root is rejected.
26
+
27
+ Do not copy recipe values into a `.tscn`, animation track or controller. The generated loader remains the only application point. Gameplay transform belongs above the canonical root; model-local animation remains below it.
@@ -0,0 +1,20 @@
1
+ # Import and wrapper scenes
2
+
3
+ Godot imports GLB as a `PackedScene`. Keep that import generated and reproducible. Put scripts, collision, navigation, interaction markers and gameplay signals in a separate authored scene.
4
+
5
+ Recommended hierarchy:
6
+
7
+ ```text
8
+ EntityRoot (gameplay/world transform)
9
+ CollisionRoot
10
+ VisualParent
11
+ <asset_id>_A3AlignmentRoot (canonical recipe)
12
+ ImportedGLBRoot (unchanged)
13
+ ```
14
+
15
+ Do not edit the imported GLB child transform to fix orientation. Do not put the canonical recipe on `EntityRoot`, because its transform changes during gameplay. Do not wrap an inherited scene and then call the loader again inside it.
16
+
17
+ When the canonical asset changes, resync and let the alignment key replace the visual root. Preserve authored gameplay nodes outside that root.
18
+
19
+ For full scenes/maps with `pivot=origin`, instance under a world parent with identity transform. A level streaming offset is gameplay/world placement and belongs above the canonical root; it must not be written back as asset repair.
20
+
@@ -0,0 +1,13 @@
1
+ # Physics and colliders
2
+
3
+ Collision belongs to the gameplay scene, not inside the generated canonical package unless the source contract explicitly carries collider data.
4
+
5
+ - Use simple authored primitives for dynamic actors where possible.
6
+ - Use trimesh collision only for appropriate static environment geometry.
7
+ - Keep collision and visual roots as siblings under the entity so visual alignment does not silently scale physics twice.
8
+ - Validate collision layers, masks, ground clearance and center of mass after every source/recipe revision.
9
+
10
+ If the canonical wrapper scale is not `[1,1,1]`, size authored colliders against the accepted world dimensions. Do not copy the wrapper scale onto both the collision root and its shapes.
11
+
12
+ Physics mismatch can reveal a spatial or semantic defect. If the visual object cannot align with a reasonable collider without local hacks, mark the relevant canonical condition non-ready and repair the source or recipe.
13
+
@@ -0,0 +1,22 @@
1
+ # Godot project structure
2
+
3
+ Use a stable separation between imported assets, authored wrapper scenes and gameplay systems.
4
+
5
+ ```text
6
+ res://
7
+ assets/canonical/<asset_id>/
8
+ model.glb
9
+ asset.json
10
+ canonical_loader.gd
11
+ scenes/assets/
12
+ scenes/levels/
13
+ scripts/gameplay/
14
+ scripts/presentation/
15
+ ```
16
+
17
+ The synchronized package is generated input. Do not hand-edit it in the Godot project; update the workspace canonical package and sync again.
18
+
19
+ Keep gameplay state on a stable parent such as `CharacterBody3D` or an entity root. Add the canonical visual root as a child. This lets control, networking and save state remain stable when the visual package revision changes.
20
+
21
+ Use authored `.tscn` scenes for gameplay composition, signals and engine-specific components. Keep the imported GLB scene read-only or inherited. Never save canonical compensation transforms into multiple scene layers.
22
+
@@ -0,0 +1,16 @@
1
+ # Skeleton and animation
2
+
3
+ Keep the canonical wrapper above the imported skeleton. Never apply alignment rotation to individual bones or bake it into animation clips.
4
+
5
+ After sync, verify:
6
+
7
+ - Skeleton3D and skinned meshes share the expected imported hierarchy;
8
+ - animations bind to existing node/bone paths;
9
+ - root motion is handled by one gameplay policy, not both AnimationTree and entity movement;
10
+ - frame zero does not snap because an animation track overwrites the wrapper;
11
+ - sockets for weapons or effects attach to bones/markers below the imported root as intended.
12
+
13
+ Retargeting, missing bones, broken weights and unusable clip naming are structural problems. Mark structural review non-ready and return to the canonical/Blender repair flow. A Godot AnimationTree state machine is not a geometry repair mechanism.
14
+
15
+ When replacing a character source, repeat structural and semantic review even if the silhouette appears unchanged; bone names and clip bindings are part of the maintained state.
16
+
@@ -0,0 +1,10 @@
1
+ # Compose Quality Checklist
2
+
3
+ - [ ] Camera model matches `scene_profile_id`
4
+ - [ ] Depth layer table documented and applied
5
+ - [ ] Parallax ratios sensible; Far slower than Play
6
+ - [ ] Tint/vignette does not gray-out state colors
7
+ - [ ] Shake/punch does not hide next decision
8
+ - [ ] No CSS/transform scaling of the game canvas
9
+ - [ ] Near occluders do not block critical telegraphs
10
+ - [ ] Readability tests passed on mobile screenshot
@@ -0,0 +1,9 @@
1
+ # Performance-Safe Visual Detail Checklist
2
+
3
+ - [ ] Particle/emitter caps set and respected
4
+ - [ ] Bullets/FX/enemies pooled where spammy
5
+ - [ ] Large biome textures unload or reuse across scenes when possible
6
+ - [ ] Parallax layer count justified (≤ strong layers, not many weak)
7
+ - [ ] First-cut order documented (what drops on low FPS)
8
+ - [ ] No per-frame texture generation
9
+ - [ ] Lights Manager avoided unless budgeted
@@ -0,0 +1,15 @@
1
+ # Premium Game Quality Gate (2D)
2
+
3
+ Before claiming premium / showcase / release-ready visuals:
4
+
5
+ - [ ] `scene_profile_id` recorded from `scene-profiles.md`
6
+ - [ ] Active-play screenshot compared to `assets/scorecard-anchors/` before scoring
7
+ - [ ] Reference ledger complete (no skipped required refs without reason)
8
+ - [ ] Asset sourcing ledger complete for hero + main background (+ primary hazards)
9
+ - [ ] Visual scorecard filled; premium or showcase thresholds met
10
+ - [ ] Automatic Failures = none
11
+ - [ ] Fresh-eyes review done
12
+ - [ ] Mobile active-play screenshot captured
13
+ - [ ] Technical art brief + budgets noted
14
+ - [ ] Formal HUD still DOM (unless project explicitly requires Canvas HUD)
15
+ - [ ] Playability not regressed (controls, hitboxes fair)
@@ -0,0 +1,10 @@
1
+ # Sprite Quality Checklist
2
+
3
+ - [ ] Hero facing matches movement/art brief
4
+ - [ ] Hero readable at mobile play size without glow crutch
5
+ - [ ] Hazards: enough silhouette variants for the genre (or documented single-threat)
6
+ - [ ] Rewards distinct from hazards in shape and color
7
+ - [ ] Backgrounds free of characters/UI baked into plates
8
+ - [ ] Spritesheet frame sizes measured before loader config
9
+ - [ ] `config.json` keys bound for all premium surfaces claimed
10
+ - [ ] Collision proxies fair vs art overhang
@@ -0,0 +1,9 @@
1
+ # Technical Art Quality Checklist
2
+
3
+ - [ ] Technical art brief written before broad visual changes
4
+ - [ ] Hero vs support surfaces listed
5
+ - [ ] Texture/atlas plan noted
6
+ - [ ] VFX language + caps noted
7
+ - [ ] Asset strategy per high-value surface recorded
8
+ - [ ] Mobile constraints acknowledged
9
+ - [ ] Post-pass diagnostics reported (even if qualitative + caps)
@@ -0,0 +1,9 @@
1
+ # Visual Scorecard Checklist (2D)
2
+
3
+ - [ ] Compared active-play screenshot to `assets/scorecard-anchors/` (scene-1 / scene-2 / scene-3)
4
+ - [ ] Scored from active-play screenshot (not title-only)
5
+ - [ ] All 10 categories scored 0–3 with one-line evidence
6
+ - [ ] Average computed
7
+ - [ ] Automatic Failures checked explicitly
8
+ - [ ] Fresh-eyes weakest-two named
9
+ - [ ] Measured evidence cited for textures/config/screenshots where claiming ≥2 on fidelity/performance
@@ -0,0 +1,71 @@
1
+ # Compose Recipes (Phaser 2D)
2
+
3
+ Use before changing camera, parallax, global tint, vignette, depth sorting, or screen-space overlays. Compose supports readability; it is not a replacement for authored sprites.
4
+
5
+ ## Camera
6
+
7
+ | Model | When | Notes |
8
+ | --- | --- | --- |
9
+ | Lock | `portrait_stage`, `board_table`, `fixed_arena` | Punch zoom on big events only |
10
+ | Follow + deadzone | `side_scroll_lane`, `topdown_map`, `runner_lane` | Deadzone avoids jitter |
11
+ | Room snap | Metroidvania-like | Bounds = room; no lerp fight |
12
+
13
+ Rules:
14
+
15
+ - Camera logic stays out of gameplay Systems when possible.
16
+ - Shake intensity scales with event severity; never obscure the next hazard.
17
+ - Prefer Phaser camera effects over CSS transforms on the canvas.
18
+ - World bounds and physics bounds stay aligned (`phaser-2d-game`).
19
+
20
+ ## Parallax
21
+
22
+ 1. Place Far → Mid → Play → Near per `DepthLayers`.
23
+ 2. Set `scrollFactorX/Y` (or parent container motion) so Far moves slowest.
24
+ 3. Near may move slightly faster than Play for depth, but must not cover telegraphs.
25
+ 4. Disable strong parallax on `topdown_map` / `board_table` unless subtle.
26
+
27
+ Reject: background scrolling faster than player decision reading; mismatched tile seams while scrolling.
28
+
29
+ ## Tint / Overlay / Vignette
30
+
31
+ Use a single full-screen Image/Graphics or Camera fade for:
32
+
33
+ - Biome mood (cool night, warm dusk).
34
+ - Pressure (arena wave)—keep center Play clearer than edges.
35
+ - Damage flash (≤100–150ms).
36
+
37
+ Do **not**:
38
+
39
+ - Stack multiple multiply overlays until art is gray mush.
40
+ - Use permanent heavy vignette to hide empty Far layers.
41
+ - Recolor every sprite differently so the palette collapses.
42
+
43
+ Signal colors (hazard / reward / safe) stay consistent with HUD tokens.
44
+
45
+ ## Depth Sorting
46
+
47
+ - Static world: fixed depths from the layer table.
48
+ - Mobile actors: Y-sort within Play band, or explicit depth = `base + y`.
49
+ - VFX above the actor that owns them, below Near occluders unless the FX is screen-space.
50
+
51
+ ## Screen FX vs World FX
52
+
53
+ | Kind | Placement | Examples |
54
+ | --- | --- | --- |
55
+ | World FX | At entity position, Play/Motion depth | Impact burst, dash dust |
56
+ | Screen FX | Camera-fixed container | Hit flash, edge warning |
57
+
58
+ Prefer world FX for spatial clarity; screen FX for global state only.
59
+
60
+ ## Readability Tests
61
+
62
+ After compose changes, verify on mobile:
63
+
64
+ 1. Hero silhouette still finds the eye in <1s.
65
+ 2. Next hazard/reward in the decision window is unobscured.
66
+ 3. Parallax does not cause mis-taps on touch targets (DOM HUD separate).
67
+ 4. No CSS scaling of the game canvas.
68
+
69
+ ## Checklist Hook
70
+
71
+ Run `checklists/compose-quality.md` before scoring the Compose category.
@@ -0,0 +1,33 @@
1
+ # Graphics Pass Prompt Templates (Phaser 2D)
2
+
3
+ Use only when the user asks for reusable prompts or a templated graphics pass.
4
+
5
+ ## Full premium pass
6
+
7
+ ```text
8
+ Load phaser-2d-graphics-builder. Select or confirm scene_profile_id from game-art/references/scene-profiles.md (2D Compose rail only).
9
+ Fill reference ledger (visual-scorecard, implementation-blueprint, sprite-recipes, compose-recipes, technical-art).
10
+ Score current mobile active-play screenshot. Build asset sourcing ledger; generate missing hero/bg/parallax via game-asset-image-generator.
11
+ Upgrade all weak surfaces; then compose; then event VFX. Re-score to premium thresholds or list blockers.
12
+ ```
13
+
14
+ ## Hero + background only
15
+
16
+ ```text
17
+ Graphics pass scoped to hero silhouette and Far/Mid backgrounds for profile <id>.
18
+ MCP-generate and bind config keys; do not redesign HUD. Report scorecard categories 2, 5, 6 only plus blockers.
19
+ ```
20
+
21
+ ## Compose-only
22
+
23
+ ```text
24
+ Do not regenerate art. Fix camera/parallax/depth/tint per compose-recipes for profile <id>.
25
+ Verify readability tests; update technical-art notes if layer count changed.
26
+ ```
27
+
28
+ ## VFX-only
29
+
30
+ ```text
31
+ Sprites/world already premium. Add event-driven FX from vfx-recipes for: <events>.
32
+ Pool emitters; respect technical-art caps; no ambient filler.
33
+ ```