evomeme 0.1.9 → 0.1.10-beta.13

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 (477) hide show
  1. package/README.md +2 -0
  2. package/dist/canvas-public/app.js +509 -5999
  3. package/dist/canvas-public/assets/presets/catalog.json +47 -0
  4. package/dist/canvas-public/assets/presets/tiles/A_01_CaoDi.png +0 -0
  5. package/dist/canvas-public/assets/presets/tiles/A_02_ShaMo.png +0 -0
  6. package/dist/canvas-public/assets/presets/tiles/A_03_TianKong.png +0 -0
  7. package/dist/canvas-public/assets/presets/tiles/A_04_ShuiBo.png +0 -0
  8. package/dist/canvas-public/assets/presets/tiles/A_05_HaiMian.png +0 -0
  9. package/dist/canvas-public/assets/presets/tiles/A_06_MuDiBan.png +0 -0
  10. package/dist/canvas-public/assets/presets/tiles/A_07_ShiZhuan.png +0 -0
  11. package/dist/canvas-public/assets/presets/tiles/A_08_AnRongYan.png +0 -0
  12. package/dist/canvas-public/assets/presets/tiles/A_09_QingTaiShi.png +0 -0
  13. package/dist/canvas-public/assets/presets/tiles/A_10_ShenHai.png +0 -0
  14. package/dist/canvas-public/assets/presets/tiles/A_11_HuiYanShi.png +0 -0
  15. package/dist/canvas-public/assets/presets/tiles/A_12_HongTu.png +0 -0
  16. package/dist/canvas-public/assets/presets/tiles/A_13_GengDi.png +0 -0
  17. package/dist/canvas-public/assets/presets/tiles/A_14_HuoShanYan.png +0 -0
  18. package/dist/canvas-public/assets/presets/tiles/A_15_NiTu.png +0 -0
  19. package/dist/canvas-public/assets/presets/tiles/A_16_HuangSha.png +0 -0
  20. package/dist/canvas-public/assets/presets/tiles/A_17_CongLin.png +0 -0
  21. package/dist/canvas-public/assets/presets/tiles/A_18_ZiYanShi.png +0 -0
  22. package/dist/canvas-public/assets/presets/tiles/A_19_MoGuTu.png +0 -0
  23. package/dist/canvas-public/assets/presets/tiles/A_20_HuaDian.png +0 -0
  24. package/dist/canvas-public/assets/presets/tiles/A_21_HaiLang.png +0 -0
  25. package/dist/canvas-public/assets/presets/tiles/A_22_GanTu.png +0 -0
  26. package/dist/canvas-public/assets/presets/tiles/A_23_QingTaiShiBan.png +0 -0
  27. package/dist/canvas-public/assets/presets/tiles/A_24_XingKong.png +0 -0
  28. package/dist/canvas-public/assets/presets/tiles/A_25_MoFaFuWen.png +0 -0
  29. package/dist/canvas-public/assets/presets/tiles/A_26_ShiTuYeDi.png +0 -0
  30. package/dist/canvas-public/assets/presets/tiles/A_27_LanZhuan.png +0 -0
  31. package/dist/canvas-public/assets/presets/tiles/A_28_HongZhuan.png +0 -0
  32. package/dist/canvas-public/assets/presets/tiles/A_29_YueQiu.png +0 -0
  33. package/dist/canvas-public/assets/presets/tiles/A_30_JinShuGe.png +0 -0
  34. package/dist/canvas-public/assets/presets/tiles/A_31_JinShuJingGai.png +0 -0
  35. package/dist/canvas-public/assets/presets/tiles/A_32_ShuZiChuang.png +0 -0
  36. package/dist/canvas-public/canvas/actions.js +144 -0
  37. package/dist/canvas-public/canvas/camera.js +28 -0
  38. package/dist/canvas-public/canvas/chrome.js +14 -0
  39. package/dist/canvas-public/canvas/data.js +123 -0
  40. package/dist/canvas-public/canvas/dependencies.js +19 -0
  41. package/dist/canvas-public/canvas/interactions.js +544 -0
  42. package/dist/canvas-public/canvas/panel-resize.js +5 -0
  43. package/dist/canvas-public/canvas/renderer.js +297 -0
  44. package/dist/canvas-public/canvas/selection.js +62 -0
  45. package/dist/canvas-public/canvas/serialization.js +118 -0
  46. package/dist/canvas-public/canvas/sync.js +202 -0
  47. package/dist/canvas-public/core/api.js +32 -0
  48. package/dist/canvas-public/core/feature-registry.js +29 -0
  49. package/dist/canvas-public/core/feature-state.js +228 -0
  50. package/dist/canvas-public/core/layout.js +133 -0
  51. package/dist/canvas-public/core/operations.js +38 -0
  52. package/dist/canvas-public/core/project.js +203 -0
  53. package/dist/canvas-public/core/state.js +27 -0
  54. package/dist/canvas-public/dialogs/context-menu.js +118 -0
  55. package/dist/canvas-public/elements/base.js +100 -0
  56. package/dist/canvas-public/elements/connections.js +105 -0
  57. package/dist/canvas-public/elements/drag.js +53 -0
  58. package/dist/canvas-public/elements/image.js +259 -0
  59. package/dist/canvas-public/elements/loading-recovery.js +5 -0
  60. package/dist/canvas-public/elements/loading.js +21 -0
  61. package/dist/canvas-public/elements/map.js +64 -0
  62. package/dist/canvas-public/elements/registry.js +58 -0
  63. package/dist/canvas-public/elements/replacement.js +78 -0
  64. package/dist/canvas-public/elements/resize.js +210 -0
  65. package/dist/canvas-public/elements/task-pipeline.js +235 -0
  66. package/dist/canvas-public/elements/types.js +21 -0
  67. package/dist/canvas-public/elements/ui.js +14 -0
  68. package/dist/canvas-public/elements/video.js +64 -0
  69. package/dist/canvas-public/features/assets/local-assets.js +72 -0
  70. package/dist/canvas-public/features/assets/official-assets.js +539 -0
  71. package/dist/canvas-public/features/editing/canvas-size.js +532 -0
  72. package/dist/canvas-public/features/editing/color-key.js +471 -0
  73. package/dist/canvas-public/features/editing/cutout.js +20 -0
  74. package/dist/canvas-public/features/editing/interactive-image-editing.js +982 -0
  75. package/dist/canvas-public/features/editing/layer-decomposition.js +45 -0
  76. package/dist/canvas-public/features/editing/manual-split.js +115 -0
  77. package/dist/canvas-public/features/editing/perfect-pixel.js +299 -0
  78. package/dist/canvas-public/features/editing/scroll-preview.js +130 -0
  79. package/dist/canvas-public/features/editing/scroll-seam-elimination.js +71 -0
  80. package/dist/canvas-public/features/editing/seam-elimination.js +46 -0
  81. package/dist/canvas-public/features/editing/smart-split.js +49 -0
  82. package/dist/canvas-public/features/editing/source-preview.js +43 -0
  83. package/dist/canvas-public/features/editing/video-cycle.js +49 -0
  84. package/dist/canvas-public/features/editing/video-frames.js +35 -0
  85. package/dist/canvas-public/features/frame-editor/frame-editing.js +755 -0
  86. package/dist/canvas-public/features/frame-editor/frame-model.js +63 -0
  87. package/dist/canvas-public/features/frame-editor/playback.js +83 -0
  88. package/dist/canvas-public/features/frame-editor/preview.js +151 -0
  89. package/dist/canvas-public/features/generation/animation.js +272 -0
  90. package/dist/canvas-public/features/generation/asset-batch.js +102 -0
  91. package/dist/canvas-public/features/generation/direction.js +163 -0
  92. package/dist/canvas-public/features/generation/fields.js +73 -0
  93. package/dist/canvas-public/features/generation/game-ui.js +64 -0
  94. package/dist/canvas-public/features/generation/image.js +96 -0
  95. package/dist/canvas-public/features/generation/scroll-image.js +157 -0
  96. package/dist/canvas-public/features/generation/seamless-tile.js +52 -0
  97. package/dist/canvas-public/features/generation/tile-transition-atlas.js +79 -0
  98. package/dist/canvas-public/features/generation/video.js +105 -0
  99. package/dist/canvas-public/features/map/creation.js +73 -0
  100. package/dist/canvas-public/features/map/tile-map-editor.js +2520 -0
  101. package/dist/canvas-public/features/registry.js +59 -0
  102. package/dist/canvas-public/index.html +84 -259
  103. package/dist/canvas-public/inspector/controls.js +49 -0
  104. package/dist/canvas-public/inspector/frame-preview.js +11 -0
  105. package/dist/canvas-public/inspector/inspector.js +190 -0
  106. package/dist/canvas-public/inspector/media-inspector.js +517 -0
  107. package/dist/canvas-public/inspector/media-preview.js +56 -0
  108. package/dist/canvas-public/inspector/number-stepper.js +96 -0
  109. package/dist/canvas-public/inspector/resize.js +88 -0
  110. package/dist/canvas-public/inspector/scroll-preview.js +11 -0
  111. package/dist/canvas-public/inspector/ui-inspector.js +14 -0
  112. package/dist/canvas-public/language/en-US.js +1059 -0
  113. package/dist/canvas-public/language/index.js +91 -0
  114. package/dist/canvas-public/language/zh-CN.js +1059 -0
  115. package/dist/canvas-public/map/export.js +10 -0
  116. package/dist/canvas-public/map/inspector.js +8 -0
  117. package/dist/canvas-public/map/model.js +409 -0
  118. package/dist/canvas-public/map/tile-map-editor.js +2 -0
  119. package/dist/canvas-public/media/metadata.js +183 -0
  120. package/dist/canvas-public/media/support.js +183 -0
  121. package/dist/canvas-public/styles/base.css +49 -0
  122. package/dist/canvas-public/styles/canvas.css +127 -0
  123. package/dist/canvas-public/styles/controls.css +203 -0
  124. package/dist/canvas-public/styles/dialogs.css +521 -0
  125. package/dist/canvas-public/styles/feature-form.css +409 -0
  126. package/dist/canvas-public/styles/inspector.css +441 -0
  127. package/dist/canvas-public/styles/layout.css +344 -0
  128. package/dist/canvas-public/styles/map.css +11 -0
  129. package/dist/canvas-public/styles/nodes.css +636 -0
  130. package/dist/canvas-public/styles.css +9 -2247
  131. package/dist/canvas-public/ui/controls.js +222 -0
  132. package/dist/canvas-public/ui/elements.js +9 -0
  133. package/dist/canvas-public/ui/feature-controller.js +296 -0
  134. package/dist/canvas-public/ui/feature-form.js +402 -0
  135. package/dist/canvas-public/ui/settings.js +84 -0
  136. package/dist/canvas-public/ui/toolbar.js +55 -0
  137. package/dist/canvas-public/vendor/pixi-tilemap.js +126 -0
  138. package/dist/canvas-public/vendor/pixi.min.js +2340 -0
  139. package/dist/canvas-public/workers/color-key-worker.js +289 -0
  140. package/dist/image-workers/perfect-pixel/perfect-pixel-core.js +441 -0
  141. package/dist/image-workers/perfect-pixel/perfect-pixel-worker.cjs +10 -0
  142. package/dist/index.js +46710 -12400
  143. package/dist/skills/en-US/evomeme-canvas/SKILL.md +52 -0
  144. package/dist/skills/en-US/evomeme-canvas/agents/openai.yaml +7 -0
  145. package/dist/skills/en-US/evomeme-cloud-fs/SKILL.md +203 -0
  146. package/dist/skills/en-US/evomeme-cloud-fs/agents/openai.yaml +7 -0
  147. package/dist/skills/en-US/evomeme-cover/SKILL.md +131 -0
  148. package/dist/skills/en-US/evomeme-cover/agents/openai.yaml +7 -0
  149. package/dist/skills/en-US/evomeme-game-maker/SKILL.md +288 -0
  150. package/dist/skills/en-US/evomeme-game-maker/agents/openai.yaml +4 -0
  151. package/dist/skills/en-US/evomeme-login/SKILL.md +97 -0
  152. package/dist/skills/en-US/evomeme-login/agents/openai.yaml +7 -0
  153. package/dist/skills/en-US/evomeme-mcp/SKILL.md +71 -0
  154. package/dist/skills/en-US/evomeme-mcp/agents/openai.yaml +7 -0
  155. package/dist/skills/en-US/evomeme-mcp/references/troubleshooting.md +55 -0
  156. package/dist/skills/en-US/evomeme-native-bridge-sdk/SKILL.md +286 -0
  157. package/dist/skills/en-US/evomeme-native-bridge-sdk/agents/openai.yaml +8 -0
  158. package/dist/skills/en-US/evomeme-tos-upload/SKILL.md +47 -0
  159. package/dist/skills/en-US/evomeme-tos-upload/agents/openai.yaml +5 -0
  160. package/dist/skills/en-US/evomeme-ui/SKILL.md +123 -0
  161. package/dist/skills/en-US/evomeme-ui/agents/openai.yaml +4 -0
  162. package/dist/skills/en-US/evomeme-ui/references/host-layout.md +69 -0
  163. package/dist/skills/en-US/game-art/SKILL.md +121 -0
  164. package/dist/skills/en-US/game-art/agents/openai.yaml +8 -0
  165. package/dist/skills/en-US/game-asset-align/SKILL.md +47 -0
  166. package/dist/skills/en-US/game-asset-align/agents/openai.yaml +8 -0
  167. package/dist/skills/en-US/game-asset-align/references/alignment-contract.md +61 -0
  168. package/dist/skills/en-US/game-asset-align/references/blender-scene-pipeline.md +35 -0
  169. package/dist/skills/en-US/game-asset-align/references/canonical-package.md +26 -0
  170. package/dist/skills/en-US/game-asset-align/references/engine-capabilities.md +14 -0
  171. package/dist/skills/en-US/game-asset-align/references/lightweight-review.md +34 -0
  172. package/dist/skills/en-US/game-asset-align/references/repair-policy.md +30 -0
  173. package/dist/skills/en-US/game-asset-align/references/tool-contract.md +69 -0
  174. package/dist/skills/en-US/game-asset-align/references/visual-review.md +26 -0
  175. package/dist/skills/en-US/game-asset-batch-generator/SKILL.md +117 -0
  176. package/dist/skills/en-US/game-asset-batch-generator/agents/openai.yaml +7 -0
  177. package/dist/skills/en-US/game-asset-image-generator/SKILL.md +86 -0
  178. package/dist/skills/en-US/game-asset-image-generator/agents/openai.yaml +7 -0
  179. package/dist/skills/en-US/game-asset-image-generator/references/background.md +34 -0
  180. package/dist/skills/en-US/game-asset-image-generator/references/static-game-assets.md +38 -0
  181. package/dist/skills/en-US/game-asset-mesh-generator/SKILL.md +35 -0
  182. package/dist/skills/en-US/game-asset-mesh-generator/agents/openai.yaml +7 -0
  183. package/dist/skills/en-US/game-asset-mesh-generator/references/animation-presets.md +313 -0
  184. package/dist/skills/en-US/game-asset-mesh-generator/references/generation-contracts.md +131 -0
  185. package/dist/skills/en-US/game-asset-mesh-generator/references/image-generator-workflows.md +65 -0
  186. package/dist/skills/en-US/game-asset-mesh-generator/references/postprocess-contracts.md +187 -0
  187. package/dist/skills/en-US/game-asset-mesh-generator/references/threejs-integration.md +113 -0
  188. package/dist/skills/en-US/game-asset-mesh-generator/references/tool-reference.md +67 -0
  189. package/dist/skills/en-US/game-audio/SKILL.md +121 -0
  190. package/dist/skills/en-US/game-audio/agents/openai.yaml +4 -0
  191. package/{skills → dist/skills/en-US}/game-audio/references/bgm-cdn.md +7 -11
  192. package/{skills → dist/skills/en-US}/game-audio/references/sfx-cdn.md +6 -4
  193. package/dist/skills/en-US/game-character-view-generator/SKILL.md +110 -0
  194. package/dist/skills/en-US/game-character-view-generator/agents/openai.yaml +7 -0
  195. package/dist/skills/en-US/game-demo/SKILL.md +103 -0
  196. package/dist/skills/en-US/game-demo/agents/openai.yaml +7 -0
  197. package/dist/skills/en-US/game-image-layer-decomposer/SKILL.md +99 -0
  198. package/dist/skills/en-US/game-image-layer-decomposer/agents/openai.yaml +7 -0
  199. package/dist/skills/en-US/game-image-splitter/SKILL.md +114 -0
  200. package/dist/skills/en-US/game-image-splitter/agents/openai.yaml +7 -0
  201. package/dist/skills/en-US/game-maker/SKILL.md +111 -0
  202. package/dist/skills/en-US/game-maker/agents/openai.yaml +4 -0
  203. package/dist/skills/en-US/game-perfect-pixel/SKILL.md +123 -0
  204. package/dist/skills/en-US/game-perfect-pixel/agents/openai.yaml +7 -0
  205. package/dist/skills/en-US/game-scroll-generator/SKILL.md +110 -0
  206. package/dist/skills/en-US/game-scroll-generator/agents/openai.yaml +7 -0
  207. package/dist/skills/en-US/game-test/SKILL.md +58 -0
  208. package/dist/skills/en-US/game-test/agents/openai.yaml +7 -0
  209. package/dist/skills/en-US/game-tile-generator/SKILL.md +152 -0
  210. package/dist/skills/en-US/game-tile-generator/agents/openai.yaml +7 -0
  211. package/dist/skills/en-US/game-ui/SKILL.md +177 -0
  212. package/dist/skills/en-US/game-ui/agents/openai.yaml +4 -0
  213. package/dist/skills/en-US/game-ui-generator/SKILL.md +82 -0
  214. package/dist/skills/en-US/game-ui-generator/agents/openai.yaml +7 -0
  215. package/dist/skills/en-US/game-ui-generator/references/component-patterns.md +65 -0
  216. package/dist/skills/en-US/game-ui-generator/references/runtime-integration.md +45 -0
  217. package/dist/skills/en-US/game-video-cycle/SKILL.md +98 -0
  218. package/dist/skills/en-US/game-video-cycle/agents/openai.yaml +7 -0
  219. package/dist/skills/en-US/game-video-generator/SKILL.md +78 -0
  220. package/dist/skills/en-US/game-video-generator/agents/openai.yaml +7 -0
  221. package/dist/skills/en-US/godot-3d-game/SKILL.md +41 -0
  222. package/dist/skills/en-US/godot-3d-game/agents/openai.yaml +8 -0
  223. package/dist/skills/en-US/godot-3d-game/references/alignment-gates.md +26 -0
  224. package/dist/skills/en-US/godot-3d-game/references/appearance-alignment.md +54 -0
  225. package/dist/skills/en-US/godot-3d-game/references/build-and-qa.md +22 -0
  226. package/dist/skills/en-US/godot-3d-game/references/canonical-asset-runtime.md +27 -0
  227. package/dist/skills/en-US/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
  228. package/dist/skills/en-US/godot-3d-game/references/physics-colliders.md +13 -0
  229. package/dist/skills/en-US/godot-3d-game/references/project-structure.md +22 -0
  230. package/dist/skills/en-US/godot-3d-game/references/skeleton-animation.md +16 -0
  231. package/dist/skills/en-US/phaser-2d-game/SKILL.md +127 -0
  232. package/dist/skills/en-US/phaser-2d-game/agents/openai.yaml +8 -0
  233. package/dist/skills/en-US/phaser-2d-game/references/engine-performance.md +64 -0
  234. package/dist/skills/en-US/phaser-2d-game/references/engine-physics.md +139 -0
  235. package/dist/skills/en-US/phaser-2d-game/references/engine-runtime.md +129 -0
  236. package/dist/skills/en-US/phaser-2d-game/references/engine-spritesheets.md +99 -0
  237. package/dist/skills/en-US/phaser-2d-game/references/engine-tilemaps.md +80 -0
  238. package/dist/skills/en-US/phaser-2d-game/references/file-structure.md +94 -0
  239. package/dist/skills/en-US/phaser-2d-graphics-builder/SKILL.md +68 -0
  240. package/dist/skills/en-US/phaser-2d-graphics-builder/agents/openai.yaml +7 -0
  241. package/dist/skills/en-US/threejs-3d-game/SKILL.md +117 -0
  242. package/dist/skills/en-US/threejs-3d-game/agents/openai.yaml +7 -0
  243. package/dist/skills/en-US/threejs-3d-game/references/engine-asset-pipeline.md +155 -0
  244. package/dist/skills/en-US/threejs-3d-game/references/engine-audio.md +70 -0
  245. package/dist/skills/en-US/threejs-3d-game/references/engine-input-camera.md +84 -0
  246. package/dist/skills/en-US/threejs-3d-game/references/engine-performance.md +96 -0
  247. package/dist/skills/en-US/threejs-3d-game/references/engine-physics.md +142 -0
  248. package/dist/skills/en-US/threejs-3d-game/references/engine-runtime.md +199 -0
  249. package/dist/skills/en-US/threejs-3d-game/references/file-structure.md +353 -0
  250. package/dist/skills/en-US/threejs-aaa-graphics-builder/SKILL.md +62 -0
  251. package/dist/skills/en-US/threejs-aaa-graphics-builder/agents/openai.yaml +7 -0
  252. package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/SKILL.md +33 -6
  253. package/{skills → dist/skills/zh-CN}/evomeme-cover/SKILL.md +7 -8
  254. package/{skills → dist/skills/zh-CN}/evomeme-game-maker/SKILL.md +91 -88
  255. package/{skills → dist/skills/zh-CN}/evomeme-login/SKILL.md +5 -0
  256. package/dist/skills/zh-CN/evomeme-mcp/SKILL.md +71 -0
  257. package/dist/skills/zh-CN/evomeme-mcp/agents/openai.yaml +7 -0
  258. package/dist/skills/zh-CN/evomeme-mcp/references/troubleshooting.md +55 -0
  259. package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/SKILL.md +6 -5
  260. package/dist/skills/zh-CN/evomeme-ui/SKILL.md +123 -0
  261. package/dist/skills/zh-CN/evomeme-ui/agents/openai.yaml +4 -0
  262. package/dist/skills/zh-CN/evomeme-ui/references/host-layout.md +69 -0
  263. package/dist/skills/zh-CN/game-asset-align/SKILL.md +47 -0
  264. package/dist/skills/zh-CN/game-asset-align/agents/openai.yaml +8 -0
  265. package/dist/skills/zh-CN/game-asset-align/references/alignment-contract.md +61 -0
  266. package/dist/skills/zh-CN/game-asset-align/references/blender-scene-pipeline.md +35 -0
  267. package/dist/skills/zh-CN/game-asset-align/references/canonical-package.md +26 -0
  268. package/dist/skills/zh-CN/game-asset-align/references/engine-capabilities.md +14 -0
  269. package/dist/skills/zh-CN/game-asset-align/references/lightweight-review.md +34 -0
  270. package/dist/skills/zh-CN/game-asset-align/references/repair-policy.md +30 -0
  271. package/dist/skills/zh-CN/game-asset-align/references/tool-contract.md +69 -0
  272. package/dist/skills/zh-CN/game-asset-align/references/visual-review.md +26 -0
  273. package/dist/skills/zh-CN/game-asset-batch-generator/SKILL.md +117 -0
  274. package/dist/skills/zh-CN/game-asset-batch-generator/agents/openai.yaml +7 -0
  275. package/dist/skills/zh-CN/game-asset-image-generator/SKILL.md +86 -0
  276. package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/background.md +3 -1
  277. package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/static-game-assets.md +2 -2
  278. package/dist/skills/zh-CN/game-asset-mesh-generator/SKILL.md +35 -0
  279. package/dist/skills/zh-CN/game-asset-mesh-generator/agents/openai.yaml +7 -0
  280. package/dist/skills/zh-CN/game-asset-mesh-generator/references/animation-presets.md +313 -0
  281. package/dist/skills/zh-CN/game-asset-mesh-generator/references/generation-contracts.md +131 -0
  282. package/dist/skills/zh-CN/game-asset-mesh-generator/references/image-generator-workflows.md +65 -0
  283. package/dist/skills/zh-CN/game-asset-mesh-generator/references/postprocess-contracts.md +187 -0
  284. package/dist/skills/zh-CN/game-asset-mesh-generator/references/threejs-integration.md +113 -0
  285. package/dist/skills/zh-CN/game-asset-mesh-generator/references/tool-reference.md +67 -0
  286. package/dist/skills/zh-CN/game-audio/SKILL.md +121 -0
  287. package/dist/skills/zh-CN/game-audio/agents/openai.yaml +4 -0
  288. package/dist/skills/zh-CN/game-audio/references/bgm-cdn.md +123 -0
  289. package/dist/skills/zh-CN/game-audio/references/sfx-cdn.md +79 -0
  290. package/dist/skills/zh-CN/game-character-view-generator/SKILL.md +110 -0
  291. package/dist/skills/zh-CN/game-character-view-generator/agents/openai.yaml +7 -0
  292. package/dist/skills/zh-CN/game-image-layer-decomposer/SKILL.md +99 -0
  293. package/dist/skills/zh-CN/game-image-layer-decomposer/agents/openai.yaml +7 -0
  294. package/dist/skills/zh-CN/game-image-splitter/SKILL.md +114 -0
  295. package/dist/skills/zh-CN/game-image-splitter/agents/openai.yaml +7 -0
  296. package/dist/skills/zh-CN/game-perfect-pixel/SKILL.md +123 -0
  297. package/dist/skills/zh-CN/game-perfect-pixel/agents/openai.yaml +7 -0
  298. package/dist/skills/zh-CN/game-scroll-generator/SKILL.md +110 -0
  299. package/dist/skills/zh-CN/game-scroll-generator/agents/openai.yaml +7 -0
  300. package/dist/skills/zh-CN/game-test/references/checklists/playtest-qa.md +12 -0
  301. package/dist/skills/zh-CN/game-tile-generator/SKILL.md +151 -0
  302. package/dist/skills/zh-CN/game-tile-generator/agents/openai.yaml +7 -0
  303. package/{skills → dist/skills/zh-CN}/game-ui/SKILL.md +9 -1
  304. package/dist/skills/zh-CN/game-ui/references/checklists/game-ui-quality.md +14 -0
  305. package/dist/skills/zh-CN/game-ui/references/checklists/hud-readability.md +12 -0
  306. package/dist/skills/zh-CN/game-ui/references/checklists/mobile-input.md +12 -0
  307. package/dist/skills/zh-CN/game-ui/references/checklists/responsive-ui-fit.md +12 -0
  308. package/dist/skills/zh-CN/game-ui/references/ui-patterns.md +140 -0
  309. package/dist/skills/zh-CN/game-ui/references/ui-prompt-templates.md +63 -0
  310. package/dist/skills/zh-CN/game-ui-generator/SKILL.md +82 -0
  311. package/dist/skills/zh-CN/game-ui-generator/agents/openai.yaml +7 -0
  312. package/dist/skills/zh-CN/game-ui-generator/references/component-patterns.md +65 -0
  313. package/dist/skills/zh-CN/game-ui-generator/references/runtime-integration.md +45 -0
  314. package/dist/skills/zh-CN/game-video-cycle/SKILL.md +98 -0
  315. package/dist/skills/zh-CN/game-video-cycle/agents/openai.yaml +7 -0
  316. package/dist/skills/zh-CN/game-video-generator/SKILL.md +78 -0
  317. package/dist/skills/zh-CN/game-video-generator/agents/openai.yaml +7 -0
  318. package/dist/skills/zh-CN/godot-3d-game/SKILL.md +41 -0
  319. package/dist/skills/zh-CN/godot-3d-game/agents/openai.yaml +8 -0
  320. package/dist/skills/zh-CN/godot-3d-game/references/alignment-gates.md +26 -0
  321. package/dist/skills/zh-CN/godot-3d-game/references/appearance-alignment.md +54 -0
  322. package/dist/skills/zh-CN/godot-3d-game/references/build-and-qa.md +22 -0
  323. package/dist/skills/zh-CN/godot-3d-game/references/canonical-asset-runtime.md +27 -0
  324. package/dist/skills/zh-CN/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
  325. package/dist/skills/zh-CN/godot-3d-game/references/physics-colliders.md +13 -0
  326. package/dist/skills/zh-CN/godot-3d-game/references/project-structure.md +22 -0
  327. package/dist/skills/zh-CN/godot-3d-game/references/skeleton-animation.md +16 -0
  328. package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
  329. package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
  330. package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  331. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/compose-quality.md +10 -0
  332. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +9 -0
  333. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +15 -0
  334. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +10 -0
  335. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +9 -0
  336. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +9 -0
  337. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/compose-recipes.md +71 -0
  338. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +33 -0
  339. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/implementation-blueprint.md +82 -0
  340. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/sprite-recipes.md +90 -0
  341. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/technical-art.md +67 -0
  342. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/vfx-recipes.md +67 -0
  343. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/visual-scorecard.md +129 -0
  344. package/{skills → dist/skills/zh-CN}/threejs-3d-game/SKILL.md +6 -2
  345. package/dist/skills/zh-CN/threejs-3d-game/references/engine-asset-pipeline.md +155 -0
  346. package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/SKILL.md +6 -6
  347. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
  348. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
  349. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  350. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +23 -0
  351. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +19 -0
  352. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +14 -0
  353. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +14 -0
  354. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +15 -0
  355. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +17 -0
  356. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +236 -0
  357. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/implementation-blueprint.md +161 -0
  358. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/model-recipes.md +146 -0
  359. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/render-recipes.md +90 -0
  360. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/shader-cookbook.md +292 -0
  361. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/technical-art.md +167 -0
  362. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/visual-scorecard.md +147 -0
  363. package/dist/stage-blender/bake_materials.py +102 -0
  364. package/dist/stage-blender/export_scene.py +275 -0
  365. package/dist/stage-blender/preview_camera.py +90 -0
  366. package/dist/stage-blender/repair_mesh.py +112 -0
  367. package/dist/stage-public/app.js +759 -0
  368. package/dist/stage-public/baked/bakePilot.js +44 -0
  369. package/dist/stage-public/baked/bakedScene.js +129 -0
  370. package/dist/stage-public/baked/sceneAppearance.js +225 -0
  371. package/dist/stage-public/baked/sceneCamera.js +45 -0
  372. package/dist/stage-public/comparison-contract.js +28 -0
  373. package/dist/stage-public/delivery.html +4 -0
  374. package/dist/stage-public/delivery.js +17 -0
  375. package/dist/stage-public/godot/appearance.gd +170 -0
  376. package/dist/stage-public/godot/preview.gd +79 -0
  377. package/dist/stage-public/index.html +141 -0
  378. package/dist/stage-public/review-app.js +289 -0
  379. package/dist/stage-public/review-runtime.js +63 -0
  380. package/dist/stage-public/review.css +24 -0
  381. package/dist/stage-public/review.html +47 -0
  382. package/dist/stage-public/scene-runtime.js +212 -0
  383. package/dist/stage-public/sceneContractRuntime.js +235 -0
  384. package/dist/stage-public/styles.css +328 -0
  385. package/dist/stage-public/three-appearance.js +104 -0
  386. package/dist/stage-public/vendor/three170/LICENSE +21 -0
  387. package/dist/stage-public/vendor/three170/build/three.module.js +54571 -0
  388. package/dist/stage-public/vendor/three170/examples/jsm/controls/OrbitControls.js +1523 -0
  389. package/dist/stage-public/vendor/three170/examples/jsm/environments/RoomEnvironment.js +144 -0
  390. package/dist/stage-public/vendor/three170/examples/jsm/libs/fflate.module.js +2672 -0
  391. package/dist/stage-public/vendor/three170/examples/jsm/loaders/EXRLoader.js +2563 -0
  392. package/dist/stage-public/vendor/three170/examples/jsm/loaders/GLTFLoader.js +4727 -0
  393. package/dist/stage-public/vendor/three170/examples/jsm/utils/BufferGeometryUtils.js +1373 -0
  394. package/dist/tile-transition-mask.svg +40 -0
  395. package/package.json +24 -8
  396. package/dist/canvas-public/cycle-detect.js +0 -166
  397. package/dist/canvas-public/smart-split.js +0 -185
  398. package/skills/game-asset-image-generator/SKILL.md +0 -104
  399. package/skills/game-audio/SKILL.md +0 -82
  400. package/skills/game-audio/agents/openai.yaml +0 -4
  401. package/skills/threejs-3d-game/references/engine-asset-pipeline.md +0 -116
  402. /package/{skills → dist/skills/en-US}/game-test/references/checklists/playtest-qa.md +0 -0
  403. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/game-ui-quality.md +0 -0
  404. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/hud-readability.md +0 -0
  405. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/mobile-input.md +0 -0
  406. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/responsive-ui-fit.md +0 -0
  407. /package/{skills → dist/skills/en-US}/game-ui/references/ui-patterns.md +0 -0
  408. /package/{skills → dist/skills/en-US}/game-ui/references/ui-prompt-templates.md +0 -0
  409. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
  410. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
  411. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  412. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/compose-quality.md +0 -0
  413. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
  414. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +0 -0
  415. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +0 -0
  416. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +0 -0
  417. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +0 -0
  418. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/compose-recipes.md +0 -0
  419. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +0 -0
  420. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/implementation-blueprint.md +0 -0
  421. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/sprite-recipes.md +0 -0
  422. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/technical-art.md +0 -0
  423. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/vfx-recipes.md +0 -0
  424. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/visual-scorecard.md +0 -0
  425. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
  426. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
  427. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  428. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +0 -0
  429. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +0 -0
  430. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +0 -0
  431. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
  432. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +0 -0
  433. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +0 -0
  434. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +0 -0
  435. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/implementation-blueprint.md +0 -0
  436. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/model-recipes.md +0 -0
  437. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/render-recipes.md +0 -0
  438. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/shader-cookbook.md +0 -0
  439. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/technical-art.md +0 -0
  440. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/visual-scorecard.md +0 -0
  441. /package/{skills → dist/skills/zh-CN}/evomeme-canvas/SKILL.md +0 -0
  442. /package/{skills → dist/skills/zh-CN}/evomeme-canvas/agents/openai.yaml +0 -0
  443. /package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/agents/openai.yaml +0 -0
  444. /package/{skills → dist/skills/zh-CN}/evomeme-cover/agents/openai.yaml +0 -0
  445. /package/{skills → dist/skills/zh-CN}/evomeme-game-maker/agents/openai.yaml +0 -0
  446. /package/{skills → dist/skills/zh-CN}/evomeme-login/agents/openai.yaml +0 -0
  447. /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/SKILL.md +0 -0
  448. /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/agents/openai.yaml +0 -0
  449. /package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/agents/openai.yaml +0 -0
  450. /package/{skills → dist/skills/zh-CN}/game-art/SKILL.md +0 -0
  451. /package/{skills → dist/skills/zh-CN}/game-art/agents/openai.yaml +0 -0
  452. /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/agents/openai.yaml +0 -0
  453. /package/{skills → dist/skills/zh-CN}/game-demo/SKILL.md +0 -0
  454. /package/{skills → dist/skills/zh-CN}/game-demo/agents/openai.yaml +0 -0
  455. /package/{skills → dist/skills/zh-CN}/game-maker/SKILL.md +0 -0
  456. /package/{skills → dist/skills/zh-CN}/game-maker/agents/openai.yaml +0 -0
  457. /package/{skills → dist/skills/zh-CN}/game-test/SKILL.md +0 -0
  458. /package/{skills → dist/skills/zh-CN}/game-test/agents/openai.yaml +0 -0
  459. /package/{skills → dist/skills/zh-CN}/game-ui/agents/openai.yaml +0 -0
  460. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/SKILL.md +0 -0
  461. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/agents/openai.yaml +0 -0
  462. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-performance.md +0 -0
  463. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-physics.md +0 -0
  464. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-runtime.md +0 -0
  465. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-spritesheets.md +0 -0
  466. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-tilemaps.md +0 -0
  467. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/file-structure.md +0 -0
  468. /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/SKILL.md +0 -0
  469. /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/agents/openai.yaml +0 -0
  470. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/agents/openai.yaml +0 -0
  471. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-audio.md +0 -0
  472. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-input-camera.md +0 -0
  473. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-performance.md +0 -0
  474. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-physics.md +0 -0
  475. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-runtime.md +0 -0
  476. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/file-structure.md +0 -0
  477. /package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/agents/openai.yaml +0 -0
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: game-art
3
+ description: "Determine and produce game art in phases: in the first phase, confirm the overall style and deliver game prototype concept art and an element design set; in the second phase, deliver a brief asset requirements list based on the design document and design sheets; in the third phase, deliver a technical art requirements list for rendering, lighting, animation, materials, effects, performance presentation, and similar needs for a 2D or 3D game; in the fourth phase, call available tools item by item according to the developer's selections to generate game assets. Use when game art direction needs to be determined, concept art or design sheets need to be made, assets need to be inventoried, technical art requirements need to be planned, or final game assets need to be generated."
4
+ ---
5
+
6
+ # Game Art
7
+
8
+ ## Goal
9
+
10
+ Deliver game art outputs in phases: first determine the visual direction, then organize asset requirements and technical art requirements, and finally generate final assets according to the developer's selections.
11
+
12
+ ## Establish Context
13
+
14
+ Read the game concept, game design document, existing art materials, and reference images provided by the developer. Understand the gameplay, worldview, target platform, aspect ratio, camera perspective, main interfaces, game elements, and the actual use of assets in the game.
15
+
16
+ Use already confirmed information as the design basis, and confirm key choices that will affect the overall visual direction with the developer.
17
+
18
+ ## Image Generation Confirmation
19
+
20
+ Before generating game prototype concept art, element design sheets, final assets, or any other images, first explain to the user the images to be generated in this round, the quantity, and the visual direction, and call the image generation tool only after obtaining the user's explicit consent. Reconfirm when the generation scope changes.
21
+
22
+ After each round of game prototype concept art or element design sheets is generated and shown, the current process must stop immediately and wait for user feedback. Subsequent adjustments, the next round of images, and generation of the asset requirements list, technical art requirements list, or final assets all begin only after explicit user feedback or confirmation is received.
23
+
24
+ ### Parallel Generation Principles
25
+
26
+ After obtaining the user's explicit consent for the generation scope in this round, use asynchronous MCP calls as much as possible to generate the same batch of mutually independent image assets in parallel; do not wait for one image to finish before starting the next one. First fix the asset ID, prompt, reference image, and output requirements for each call, then start the tasks simultaneously, and after results return, archive and display them by asset ID to shorten the waiting time for the whole batch of assets.
27
+
28
+ Execute serially only when there is a real dependency, such as when a later item must reference the generation result of an earlier item, cutout must wait for the original image, or the next round must first obtain the user's feedback on the current result. Parallelization must not bypass the image generation confirmation requirements in this section, and must not confuse the correspondence between assets and returned results.
29
+
30
+ ## Phase 1: Art Style and Concept Design
31
+
32
+ ### 1. Determine the Overall Art Style
33
+
34
+ Determine the game's overall visual direction together with the developer, including:
35
+
36
+ - art style and subject matter;
37
+ - color, lighting, and visual atmosphere;
38
+ - shapes, linework, materials, and detail density;
39
+ - proportion relationships between characters and environments;
40
+ - camera perspective, perspective method, and composition;
41
+ - a unified visual language across different interfaces and game elements.
42
+
43
+ When the visual direction still has multiple possibilities, organize a small number of candidate directions with clear differences, explain each one's visual characteristics, and let the developer choose.
44
+
45
+ ### 2. Generate Game Prototype Concept Art
46
+
47
+ Select game interfaces that can represent the main experience and visual changes, such as the start screen, core gameplay screen, key scenes, pause screen, or results screen. After obtaining the user's explicit consent, call the image generation tools available in the current environment to generate game prototype concept art for different interfaces and show it to the developer.
48
+
49
+ Concept art presents an overall image close to the finished game, and is used to determine the relationships among composition, color, lighting, scene, characters, UI, and atmosphere. Adjust the concept art according to developer feedback until the overall art direction is confirmed.
50
+
51
+ ### 3. Generate Game Element Design Sheets
52
+
53
+ Based on the design document and confirmed concept art, identify the characters, enemies, props, buildings, vehicles, mechanisms, environmental objects, and other game elements in the game. After obtaining the user's explicit consent, call the available image generation tools to generate three-view design sheets showing the front, side, and back of each element.
54
+
55
+ Design sheets use a clear, unified presentation background and accurately show the element's silhouette, proportions, structure, colors, materials, and key details. Elements with different forms, equipment, or growth stages should show their corresponding variants separately.
56
+
57
+ In subsequent design sheets, continue referencing the confirmed concept art and design sheets so different elements maintain the same art style. Use images confirmed by the developer as visual references when generating final assets.
58
+
59
+ This phase delivers the confirmed game prototype concept art, game element design set, and overall art direction.
60
+
61
+ ## Phase 2: Asset Requirements List
62
+
63
+ Before generating final assets, list all identifiable asset requirements based on the game design document, prototype concept art, and element design sheets. The asset list should cover the visual content actually used by the game, and expand concrete types according to gameplay, for example:
64
+
65
+ - game background images;
66
+ - independently movable multilayer parallax background images;
67
+ - game maps;
68
+ - tiles used by tile maps;
69
+ - static game element images such as characters, objects, props, and environmental decorations;
70
+ - sequence-frame animations for dynamic elements such as characters, enemies, and mechanisms;
71
+ - effects, icons, and other visual assets needed by gameplay;
72
+ - static 3D models;
73
+ - dynamic 3D models with skeletons and animations.
74
+
75
+ For dynamic elements, separately list idle, movement, attack, hit, death, or other motion states actually needed by gameplay. Each state is an independent asset item.
76
+
77
+ The asset list keeps only the information needed to identify assets. Assign a stable ID to each asset, and write its type and name; add action state, direction, or variant only when needed to distinguish assets.
78
+
79
+ ```markdown
80
+ # Game Asset List
81
+
82
+ - [ ] ART001 [<type>] <asset name>
83
+ - [ ] ART002 [<type>] <asset name> (<action state, direction, or variant>)
84
+ ```
85
+
86
+ This phase delivers the asset list and has the developer confirm which assets need to be generated.
87
+
88
+ ## Phase 3: Technical Art Requirements List
89
+
90
+ Based on the target engine, technology stack, runtime platform, visual target, and the already confirmed concept art and design sheets, organize the technical art requirements needed for a 2D or 3D game to achieve the target art effects.
91
+
92
+ The requirements list is determined according to the game's actual presentation and may include:
93
+
94
+ - sequence frames, skeletal animation, UI transitions, and feedback animations;
95
+ - layers, masks, blend modes, cameras, and parallax presentation;
96
+ - render pipeline, color space, resolution, pixel density, and anti-aliasing;
97
+ - realtime lighting, baked lighting, shadows, ambient light, reflections, and fog effects;
98
+ - material system, shaders, surface presentation, and special material effects;
99
+ - tone mapping, bloom, depth of field, ambient occlusion, and other post-processing effects;
100
+ - particles, trails, decals, and other realtime visual effects;
101
+ - model polygon count, texture size, texture channels, compression, LOD, and lightmaps;
102
+ - frame rate, video memory, batches, and visual quality tiers on the target platform.
103
+
104
+ The technical art list keeps only ID, type, requirement name, and target effect. Key engine, platform, or performance constraints are added only when they affect the implementation method.
105
+
106
+ Output the requirements list in the following format:
107
+
108
+ ```markdown
109
+ # Technical Art Requirements List
110
+
111
+ - TA001 [<animation / rendering / lighting / material / post-processing / effects / performance>] <requirement name>: <target effect>
112
+ - TA002 [<type>] <requirement name>: <target effect> (<necessary constraints>)
113
+ ```
114
+
115
+ Assign stable IDs to technical art requirements. This phase delivers the technical art requirements list and has the developer confirm it.
116
+
117
+ ## Phase 4: Generate Assets Item by Item
118
+
119
+ According to the items selected by the developer from the asset list, after obtaining the user's explicit consent, call the generation or image editing tools suitable in the current environment to generate assets. For the same batch of mutually independent items, prefer asynchronous MCP parallel calls; items with reference image, cutout, or confirmation dependencies should be executed in dependency order. During generation, reference the confirmed concept art, element design sheets, and related technical art requirements, and determine aspect ratio, size, transparent background, perspective, layering method, and frame layout according to the asset's use in the game.
120
+
121
+ After each asset is completed, directly show the generated result, mark the corresponding asset ID, and continue adjusting or generating the next item according to developer feedback. Completed assets are marked with `[x]` in the asset list.
@@ -0,0 +1,8 @@
1
+ interface:
2
+ display_name: "Game Art"
3
+ short_description: "Determine the game art style in phases, organize asset and technical art requirements, and generate final assets"
4
+ default_prompt: "Please use $game-art to help me determine the overall art direction for the game, first confirm the image generation plan with me, and stop after each round of concept art or design sheet generation to wait for my feedback."
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
8
+
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: game-asset-align
3
+ description: Maintain 3D canonical asset alignment among Three.js, Godot, and Blender. Whenever Tripo/generated model intake, orientation/scale/pivot repair, visual and semantic checks, cross-engine import inconsistencies, asset repair status, or ongoing acceptance are involved, this skill must be used first.
4
+ ---
5
+
6
+ # Game Asset Align
7
+
8
+ ## Ownership
9
+
10
+ This skill owns the scene export contract and the asset alignment and repair lifecycle. `godot-3d-game` and `threejs-3d-game` consume the package confirmed for the current target; Blender provides the modeling source scene, and the exporter is responsible for generating verifiable snapshots.
11
+
12
+ Only Three.js, Godot 4, and Blender within the current plugin scope are supported. Do not add Unity or Unreal branches.
13
+
14
+ ## Required workflow
15
+
16
+ Use the local CLI by default. Read the [CLI contract](references/tool-contract.md) for the launcher: `evomeme` below abbreviates `npx -y evomeme@latest` or a local build of the same version. Supply `--workspace` and use `--json` for machine-readable results. Keep Stage running in a persistent session; return its URL when startup completes and run subsequent commands in another terminal.
17
+
18
+ 1. Save a complete Blender scene as `.blend` first, then call `evomeme scene export "<scene.blend>" --id <id>` to automatically generate a source snapshot, GLB, camera reference images, and scene contract; see [Blender scene modeling and export](references/blender-scene-pipeline.md) for the flow. Existing standalone GLB/GLTF files are ingested with `evomeme asset import "<model.glb>" --id <id>`.
19
+ 2. **After Blender modeling or modification, the Stage board must be opened first, and the next engine-import step is allowed only after the user confirms the current version.** Call `evomeme asset review <id> --workspace "<workspace>" --json` to check format and dependencies, then call `evomeme stage --asset <id> --workspace "<workspace>" --target <target> --json`. `target` is `three_js` or `godot`. View Blender and the target engine's native image from the same camera position, and check space, structure, materials, and lighting.
20
+ 3. Use `evomeme asset repair <id>` for origin/grounding repair; perform other mesh edits in Blender and re-export, following the [repair policy](references/repair-policy.md). Repair invalidates old recipes and requires Stage acceptance again.
21
+ 4. Only after the user clicks **"Confirm current version, allow import"** in Stage may export/sync/handoff be called. Tool returns indicating that the board has launched, the model loaded successfully, the format check passed, or `alignment.ready=true` cannot replace confirmation. Do not click on the user's behalf, fabricate view/confirmation records, bypass the gate with `verified_by=spec/user_board`, or manually copy assets into the engine. While waiting for confirmation, work that does not depend on import may continue.
22
+ 5. Only one alignment root node is allowed in the engine; adding rotation, scale, or position compensation again in gameplay, animation, or entity scripts is prohibited.
23
+
24
+ `asset.json` v1 can be read, but cannot enter the engine directly. After being saved again, it is upgraded to v2 repair status.
25
+
26
+ Both export and sync forcibly check confirmation for the current Stage version; Godot sync also requires the corresponding confirmation from the Godot native preview, and a Three.js image cannot replace it. After modifying the model, contract, textures, Godot profile, materials, lighting, or display implementation, Stage must be reopened, viewed, and confirmed; old handoff packages retain their original version. For Godot configuration and preview flow, see [Godot basic visual alignment](../godot-3d-game/references/appearance-alignment.md).
27
+
28
+ ## Routing references
29
+
30
+ - For current single-scene comparison and historical compatibility interface notes: read [lightweight-review.md](references/lightweight-review.md).
31
+ - For image-reference modeling, complete Blender scene export, and procedural material baking: read [blender-scene-pipeline.md](references/blender-scene-pipeline.md).
32
+ - When v2 fields, status derivation, or version invalidation need to be understood: read [alignment-contract.md](references/alignment-contract.md).
33
+ - When deciding whether to change metadata, wrapper, or Blender geometry: read [repair-policy.md](references/repair-policy.md).
34
+ - When judging "looks consistent" or saving acceptance evidence: read [visual-review.md](references/visual-review.md).
35
+ - When comparing what Three.js, Godot, and Blender can do: read [engine-capabilities.md](references/engine-capabilities.md).
36
+ - When creating, replacing, or migrating canonical packages: read [canonical-package.md](references/canonical-package.md).
37
+ - When choosing CLI commands, parameters, or handling gate errors: read [tool-contract.md](references/tool-contract.md).
38
+
39
+ ## Completion gates
40
+
41
+ - `asset.json` is `evomeme.canonical_asset.v2`.
42
+ - The current target engine has been shown in Stage, and the user confirmation record is for the current revision; only actual confirmation by the original task user allows import to continue.
43
+ - `alignment.overall_status` is `aligned`, and `alignment.ready` is `true`.
44
+ - The recipe binds the current `model.glb` SHA-256 and current intent revision, and includes translation, quaternion, and scale.
45
+ - The four items spatial, structural, semantic, and render are all `aligned` or explicitly justified `waived`.
46
+ - The current single viewport must not describe a loaded display as the visual contract fully passed. If the task separately requires export, continue verifying source, intent, recipe, and the unique wrapper, without compensating Transform in gameplay code.
47
+ - Visual conclusions come from target-engine screenshots or clearly labeled board approximations; do not pass off Blender/Three.js screenshots as Godot results.
@@ -0,0 +1,8 @@
1
+ interface:
2
+ display_name: "Game Asset Align"
3
+ short_description: "Maintain auditable alignment state for generated models across Three.js, Godot, and Blender"
4
+ default_prompt: "Please use $game-asset-align to inspect this 3D asset package, repair cross-engine orientation, scale, and visual-semantic deviations, and provide a sustainably maintainable acceptance state."
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
8
+
@@ -0,0 +1,61 @@
1
+ # Alignment contract v2
2
+
3
+ ## Source of truth
4
+
5
+ `asset.json` keeps the v1 flat fields for UI compatibility, but `alignment` is authoritative for engine readiness.
6
+
7
+ ```json
8
+ {
9
+ "schema": "evomeme.canonical_asset.v2",
10
+ "forward_axis": "+z",
11
+ "up_axis": "+y",
12
+ "pivot": "ground_center",
13
+ "scale_hint_metres": 1.8,
14
+ "alignment": {
15
+ "schema": "evomeme.asset_alignment.v1",
16
+ "source": { "model_file": "model.glb", "sha256": "…", "bytes": 123 },
17
+ "recipe": {
18
+ "source_revision": "…",
19
+ "intent_revision": "…",
20
+ "translation_metres": [0, 0, 0],
21
+ "rotation_quaternion_xyzw": [0, 1, 0, 0],
22
+ "scale_xyz": [1, 1, 1],
23
+ "algorithm_version": "evomeme.stage.v2"
24
+ },
25
+ "conditions": {
26
+ "spatial": { "status": "aligned" },
27
+ "structural": { "status": "aligned" },
28
+ "semantic": { "status": "aligned" },
29
+ "render": { "status": "aligned" }
30
+ },
31
+ "overall_status": "aligned",
32
+ "ready": true,
33
+ "revisions": {
34
+ "source": "…",
35
+ "intent": "…",
36
+ "recipe": "…",
37
+ "alignment_key": "…"
38
+ }
39
+ }
40
+ }
41
+ ```
42
+
43
+ ## Four conditions
44
+
45
+ - `spatial`: position, pivot, grounding, facing, up-axis and size are correct.
46
+ - `structural`: hierarchy, mesh parts, skeleton, sockets and animation bindings remain usable.
47
+ - `semantic`: the object identity and functional details match the request.
48
+ - `render`: materials, visibility, normals, texture assignment and target-engine presentation are acceptable.
49
+
50
+ Allowed states are `aligned`, `needs_review`, `misaligned`, `stale`, and `waived`. A required aspect is ready only when `aligned` or explicitly `waived` with evidence.
51
+
52
+ ## Revision invariant
53
+
54
+ An accepted recipe must reference the current source SHA-256 and current intent revision. `alignment_key` binds source + intent + recipe. A model replacement, Blender geometry edit, or intent field change invalidates the prior key. Never copy an old key into a new package.
55
+
56
+ `ready` and `overall_status` are derived values. Export/sync recomputes the invariant and compares the current model bytes; editing `ready: true` by hand cannot bypass the gate.
57
+
58
+ ## v1 migration
59
+
60
+ v1 flat fields are parsed for inspection, then represented as `needs_review` with no accepted recipe. Open the Stage, inspect the actual model, and save to produce v2. Do not bulk-mark legacy assets ready without visual evidence.
61
+
@@ -0,0 +1,35 @@
1
+ # Blender Source Scene -> Stage -> Engine
2
+
3
+ ## Starting from Images
4
+
5
+ First read the image, and clarify the subject, proportions, materials, key light, and reference camera position. Model the back side and occluded areas not shown in a single image according to reasonable assumptions, and explain them on delivery. Prefer completing modeling through the currently available Blender MCP; this plugin provides export and acceptance flows, and does not bundle external Blender MCP installation or image-to-3D-model services. When there is no Blender MCP, if local Blender is available, Python modeling may be used; report a concrete blocker only when paths are missing or cannot be executed.
6
+
7
+ First build the space and camera, output low-cost references for iteration, then refine the model, materials, and lighting. After saving `.blend`, perform the following export. The source scene uses metric units, unit scale=1, and preserves the scene origin; the exporter performs the Blender Z-up to glTF Y-up conversion. Do not rotate the whole world again. Cycles/Eevee and perspective cameras are supported; non-unit camera scale and lens shift will error and must be handled first. External linked libraries and sequences/caches that cannot be packaged should be localized in Blender before export.
8
+
9
+ ## Unified Export Entry
10
+
11
+ ```sh
12
+ npx -y evomeme@latest scene export "<scene.blend>" --id courtyard --workspace "<workspace>" --camera-names Reference,MaterialDetail --quality preview --width 960 --bake-materials --texture-size 1024 --godot-project-dir "<godot-project>" --json
13
+ ```
14
+
15
+ See the [CLI contract](tool-contract.md) for launcher/version and path rules; JSON results are under `data`. Camera names and the Godot project path may be omitted; when there is no camera, a reference camera position is created automatically and overview is completed. At most 6 specified perspective cameras are allowed. `--width` is 320-1920; `--texture-size` is 256/512/1024/2048. When no target project is specified, Godot defaults to Compatibility; `--godot-renderer` may specify mobile/forward_plus/gl_compatibility; preview and sync projects must be consistent.
16
+
17
+ The exporter reads the saved source file in an isolated Blender process, disables automatic script execution, saves a self-contained source snapshot, and generates the GLB, per-camera Blender native reference images, source feature manifest, and two target profiles. The original file is not modified; unsaved changes in active Blender will not enter the export. Failure does not replace the current package. Use `--replace-existing` to update the same scene; the old package is kept in the returned `data.backup_dir`, and the new version must be confirmed again.
18
+
19
+ preview uses fast sampling; final preserves the source scene sampling settings. Free-view native preview is still in fast mode and disables depth of field, and cannot be used to prove that the final offline render is fully identical.
20
+
21
+ ## Baking and Source Contract
22
+
23
+ `--bake-materials` is optional, and only processes supported procedural surfaces directly connected to Principled BSDF; it generates base color, roughness, metallic, and tangent normal maps by object, and creates UVs when necessary. The source `.blend` keeps the original nodes; the exported model uses the baked version. Complex closures, mixed shaders, volumes, and indirect light are not automatically converted by this baking path. Keep the skipped reasons in the report, and do not describe partial object baking as completion of the entire material set.
24
+
25
+ `scene.contract.json.source_features` uses evomeme.source_scene_features.v1, recording node IDs, object/material associations, procedural nodes, unconverted nodes, baked channels/objects, volumes, world environment, and source render settings. IDs preferably reuse evomeme_node_id; when it is not set, they are derived from asset and object names. If stable IDs across renaming are needed, this property should be set in the source scene.
26
+
27
+ Standard PBR and lighting facts share one source contract. `runtime/three.profile.json` and `runtime/godot.profile.json` store engine overrides; re-export preserves existing overrides that match the schema, while uncovered lighting is derived from the new source facts. After modifying a profile, update the byte counts and SHA-256 values in contract.files.
28
+
29
+ Baked materials create an independent runtime material for each object; their exact names are recorded in source_features.materials[].runtime_materials. Use that material_name when setting engine material overrides. The unbaked version uses the actual material names inside the GLB.
30
+
31
+ ## Review and Delivery
32
+
33
+ Run `evomeme stage --asset courtyard --workspace "<workspace>" --target <target> --json` with target three_js/godot. Keep the foreground session alive and give `data.url` to the user. The board displays mapped, baked, approximated, not yet implemented, and pending-verification items one by one, provides related camera positions, and offers "record repair request." Repair requests are written into the feedback record and require the agent to read and continue modifying; the button does not complete the repair by itself.
34
+
35
+ After the user views and confirms the current target-engine version, run `evomeme asset sync courtyard --workspace "<workspace>" --target <target> --project "<project>" --json` in another terminal. Three.js games use the generated loadReviewedScene and runtime.render, sharing the display implementation with Stage; Godot uses load_scene and the same native display adapter. After import is complete, re-verify in the actual project. visual_equivalence=not_evaluated in the confirmation record means cross-renderer pixel equivalence was not computed; it does not erase already recorded approximations or missing items.
@@ -0,0 +1,26 @@
1
+ # Canonical package
2
+
3
+ ## Required layout
4
+
5
+ ```text
6
+ assets/canonical/<asset_id>/
7
+ model.glb
8
+ asset.json
9
+ preview/
10
+ ```
11
+
12
+ `asset_id` is normalized and stable. `model_file` remains package-relative. Do not reference files outside the package.
13
+
14
+ An optional `scene.contract.json` may define camera, world-coordinate and display-profile supplements. Its file manifest uses relative paths, byte sizes and SHA-256 hashes. Export/sync verifies the whole manifest and rejects traversal, missing files, stale hashes and coordinate conflicts.
15
+
16
+ For a complete Blender source scene, `evomeme scene export "<scene.blend>" --id <id>` creates this contract, `source/scene.blend`, per-camera references and both engine profiles automatically. See [Blender scene pipeline](blender-scene-pipeline.md). `source_features` makes unsupported/approximate effects visible in Stage; a loaded GLB alone does not demonstrate material or lighting equivalence.
17
+
18
+ ## World-coordinate scenes
19
+
20
+ For a complete meter-scale map already exported as Y-up, use `up_axis=+y`, `forward_axis=-z`, `pivot=origin`, `scale_hint_metres=null` and zero offsets unless evidence says otherwise. Do not center a whole world or normalize it by height.
21
+
22
+ ## Replacement and history
23
+
24
+ `replace_existing=true` may reuse the asset ID and descriptive metadata, but new model bytes create a new source revision. Previous recipes and evidence become stale. Keep repair reports/backups inside the package repair area; never treat a backup as the active `model.glb`.
25
+
26
+ The bounded alignment history explains creation, migration, acceptance and invalidation. It is an audit aid, not a substitute for current revision checks.
@@ -0,0 +1,14 @@
1
+ # Engine capabilities
2
+
3
+ | Component | Owns | Must not own |
4
+ |---|---|---|
5
+ | Stage | Three.js live preview, native Godot/Blender preview, bounds/TRS, explicit user confirmation before import | substituting Three.js frames for Godot, agent acceptance on behalf of the user |
6
+ | Blender | topology, normals, origin baking, mesh cleanup, GLB re-export | final engine readiness, hidden per-engine orientation |
7
+ | Godot 4 | GLB import, one runtime wrapper, gameplay integration, target render/physics QA | guessing authored axes, accumulating compensation transforms |
8
+ | Three.js game | one runtime wrapper, web presentation and gameplay QA | a second canonical schema or per-entity hard rotations |
9
+
10
+ Tripo and other generators are sources, not alignment authorities. Preserve their task/model/version metadata in provenance, but compute readiness from the emitted file and current user intent.
11
+
12
+ Use GLB as the canonical mesh payload. Blender source files may be retained as provenance or repair artifacts, but engines consume the package, not an arbitrary `.blend` working file.
13
+
14
+ Unity and Unreal are intentionally outside this plugin plan. Do not add placeholder adapters that appear supported but bypass validation.
@@ -0,0 +1,34 @@
1
+ # Stage Board Confirmation and Engine Import
2
+
3
+ After Blender modeling or modification, the Stage board must be opened to view the current version, and the user must click "Confirm current version, allow import" before the next import step can proceed. Merely launching the board, passing the format check, saving the technical alignment state, or ready=true cannot release the gate.
4
+
5
+ Use the launcher in the [CLI contract](tool-contract.md). Keep Stage in its own persistent foreground session; share `data.url` from the JSON startup result immediately. Exit 0 from `asset review` only means inspection completed; read `data.technical_ok` and `data.confirmation.status`.
6
+
7
+ ## Sequence
8
+
9
+ 1. A complete Blender scene uses `evomeme scene export "<scene.blend>" --id <id>` to generate a canonical package, source snapshot, contract, and native reference images; an existing GLB can be ingested separately.
10
+ 2. `evomeme asset review <id> --workspace "<workspace>" --json` checks the model format and file digests.
11
+ 3. `evomeme stage --asset <id> --workspace "<workspace>" --target <target> --json` opens the single-scene viewport. `target` is three_js or godot.
12
+ 4. Compare Blender and target-engine native render from the same camera position and with the same aspect ratio, checking space, structure, materials, and lighting. Godot uses a temporary native preview project and does not write to the final game project in advance.
13
+ View the mapping, baking, approximation, and missing states under "effect conversion and pending-verification items"; related camera positions can be jumped to, or repair requests can be recorded. The states come from source features and adapter capabilities, not from image similarity scoring.
14
+ 5. The user confirms on the page. Tools and agents must not click on the user's behalf, and must not directly construct confirmation files.
15
+ 6. Run `evomeme asset sync <id> --target <target> --project "<project>" --workspace "<workspace>" --json`. Three.js confirmation cannot replace Godot confirmation; export likewise requires the current Stage confirmation.
16
+
17
+ When modification is needed, return to Blender or update the engine profile, then reload, view, and confirm again. The page keeps a single-scene scope and does not add asset lists, part editing, or gameplay.
18
+
19
+ ## Environment
20
+
21
+ Blender is configured through EVOMEME_BLENDER / BLENDER_PATH; Godot is configured through EVOMEME_GODOT / GODOT_PATH or godot on PATH. While waiting for native preview, do not pass off an old image as the current view; if it fails, the current image cannot be confirmed.
22
+
23
+ ## Records and Invalidation
24
+
25
+ .review/stage-view.json records the actual board camera position, target engine, and version. Godot views also bind the native render receipt and profile key.
26
+ .review/confirmation.json records user confirmation, current resource/display implementation summary, complete TRS, camera position, screenshot summary, and technical report.
27
+
28
+ Changes to the model, asset.json, scene contract, textures, Godot profile, material/lighting configuration, or display module make confirmation stale. export/sync checks the current confirmation and alignment recipe before writing to the target; setting verified_by or directly changing ready cannot bypass it.
29
+
30
+ ## Handoff and Scope
31
+
32
+ Browser handoff only reproduces the confirmed Three.js image; Godot uses `evomeme asset sync <id> --target godot --project "<project>"` to output the native loader and display adapter, and does not treat the Three.js handoff image as Godot acceptance.
33
+
34
+ The Godot basic flow preserves GLB PBR, rebuilds lighting, environment, exposure, and camera, and supports material parameter calibration. Area lights use explicitly marked approximations; Three.js-specific baked shaders/LUTs will not be executed automatically in Godot. After the user confirms asset display, game integration and gameplay still require target-engine re-verification.
@@ -0,0 +1,30 @@
1
+ # Repair policy
2
+
3
+ Choose the shallowest layer that fixes the actual defect while preserving one canonical result.
4
+
5
+ ## Metadata repair
6
+
7
+ Use the Stage or `evomeme asset align <id>` when geometry is sound but authored axes, pivot intent, scale target, semantic type or review evidence are wrong. Save a complete wrapper TRS. Do not bake a rotation into gameplay code.
8
+
9
+ ## Wrapper repair
10
+
11
+ Use the canonical recipe for non-destructive translation, quaternion rotation and scale. The wrapper must be applied exactly once. It is appropriate for grounding, recentering, authored-forward conversion and size normalization.
12
+
13
+ If `pivot=origin` and `scale_hint_metres=null`, a deterministic identity translation/unit scale recipe is possible. Bounds-dependent pivots or height normalization require a measured recipe from the board or another adapter.
14
+
15
+ ## Blender geometry repair
16
+
17
+ Use `evomeme asset repair <id> --ground true` for the supported origin/grounding repair. It backs up the prior model and writes into the same canonical package. It is not a general topology or normals repair command. Edit detached/duplicate parts, normals, topology, or other export defects in Blender, then re-export. See the [CLI contract](tool-contract.md) for launcher, workspace, and JSON conventions.
18
+
19
+ Any Blender result changes the source revision and invalidates all prior review states. Reopen the Stage and accept a new recipe before export or sync.
20
+
21
+ ## Never repair here
22
+
23
+ - player/controller yaw offsets;
24
+ - AnimationTree or animation-track compensations;
25
+ - per-scene scale overrides;
26
+ - a second Godot/Three wrapper;
27
+ - a material tweak claimed as canonical without updating review evidence.
28
+
29
+ These hide drift and cannot be maintained when the asset is regenerated.
30
+
@@ -0,0 +1,69 @@
1
+ # Local asset CLI contract
2
+
3
+ ## Launching and reading results
4
+
5
+ Use the CLI by default for local packages, Blender scene export, Stage, and engine sync. Below, `evomeme` is shorthand for `npx -y evomeme@latest`; installing the IDE plugin does not imply a global executable. An available local build can instead use `node "<plugin_client>/dist/index.js"`. Check `asset --help` through the chosen launcher first. Keep the same version for review and sync so display implementation changes do not invalidate confirmation.
6
+
7
+ All commands accept `--workspace "<workspace>" --json`. The workspace defaults to the current directory. Relative source, `--input`, and `--project` paths resolve from the **command's working directory**, not `--workspace`. Prefer absolute paths when working across directories.
8
+
9
+ - JSON success: `{"ok":true,"data":...}`; failure: `{"ok":false,"error":{"code":"...","message":"..."}}`.
10
+ - Exit codes: `0` completed, `2` invalid arguments (`INVALID_ARGUMENT`), `1` operation/file failure (`OPERATION_FAILED`).
11
+ - Exit `0` from `asset review` only means inspection completed. Read `data.technical_ok` and `data.confirmation.status` (`unconfirmed` / `confirmed` / `stale`) before proceeding.
12
+ - Stage remains in the foreground. Start it in a persistent terminal/session, return `data.url` when startup output arrives, and keep the session alive during review. Do not wait for process exit. Run subsequent commands in another terminal; Ctrl+C stops Stage when finished. There is no background `start/status/stop` interface.
13
+
14
+ ## Local commands
15
+
16
+ These 12 asset/Stage capabilities use the CLI and existing business layer. Their MCP implementations and legacy aliases have been removed; there is no compatibility switch or MCP fallback. If the installed version lacks the CLI, use a version containing the commands or an available local build. Gate failures require repair or review.
17
+
18
+ | CLI (common options omitted) | Purpose |
19
+ | --- | --- |
20
+ | `asset import "<model.glb>" --id <id>` | Import GLB/GLTF |
21
+ | `asset list` | List packages |
22
+ | `asset show <id>` | Read a package |
23
+ | `asset align <id> --input "<alignment.json>"` | Technical alignment |
24
+ | `scene export "<scene.blend>" --id <id>` | Export a saved Blender scene |
25
+ | `stage --asset <id> --target <target>` (three_js / godot) | Stage review |
26
+ | `asset review <id>` | Inspect validity and confirmation |
27
+ | `asset repair <id> --ground true` | Origin/grounding repair |
28
+ | `asset export <id>` | Validate and return the package directory |
29
+ | `asset sync <id> --target three_js --project "<project>"` | Sync to Three.js |
30
+ | `asset sync <id> --target godot --project "<project>"` | Sync to Godot |
31
+ | `asset handoff <id>` | Three.js handoff |
32
+
33
+ `import` accepts GLB/GLTF; new packages are normally `needs_review`. Add `--replace-existing` only when replacing an existing ID is intended. `show` reads the full package record; `list` reports `alignment_status` and `alignment_ready`. See [blender-scene-pipeline.md](blender-scene-pipeline.md) for scene export options, baking, and backups.
34
+
35
+ ## Technical alignment
36
+
37
+ `evomeme asset align <id> --input "<alignment.json>" --workspace "<workspace>" --json` writes technical alignment only; it cannot replace Stage user confirmation. The UTF-8 JSON file (optional BOM) contains alignment fields, not `workspace_dir` or `asset_id`. Explicit CLI options override matching file fields. Example:
38
+
39
+ ```json
40
+ {
41
+ "forward_axis": "-z",
42
+ "up_axis": "+y",
43
+ "pivot": "origin",
44
+ "scale_hint_metres": null,
45
+ "alignment_recipe": {
46
+ "translation_metres": [0, 0, 0],
47
+ "rotation_quaternion_xyzw": [0, 0, 0, 1],
48
+ "scale_xyz": [1, 1, 1],
49
+ "algorithm_version": "adapter-name.v1"
50
+ },
51
+ "alignment_conditions": {
52
+ "spatial": { "status": "aligned", "evidence": "measured against reference" }
53
+ }
54
+ }
55
+ ```
56
+
57
+ Replace example values and evidence with actual measurements. If supplied, a recipe requires complete translation, a nonzero quaternion, and positive scale; `algorithm_version` is optional. Conditions are `spatial`, `structural`, `semantic`, and `render`, with status `aligned`, `needs_review`, `misaligned`, `stale`, or `waived`. Bounds-dependent pivots or scale remain non-ready without a complete recipe; measure through Stage rather than inventing values.
58
+
59
+ Simple intent can use `--forward-axis -z --up-axis +y --pivot origin --scale-hint-metres null`. Other options include `--type`, `--verified-by`, `--notes`, and `--yaw-offset-degrees` / `--pitch-offset-degrees` / `--roll-offset-degrees`. `verified_by` defaults to `agent_vision`. Consult `asset --help` for command syntax and `asset align --help` for the JSON shape.
60
+
61
+ ## Repair and delivery
62
+
63
+ - `asset repair` uses local Blender for supported origin/grounding repairs, changes the source, and invalidates alignment. General mesh edits require editing in Blender and re-exporting.
64
+ - `asset export` validates source bytes, readiness, and current Stage confirmation; it returns the package directory rather than creating an archive.
65
+ - Three.js sync writes `public/assets/canonical/<id>/` and generates `src/evomeme-stage/<id>/canonical_loader.js`. Use Three.js 0.170.0, `loadReviewedScene`, and `runtime.render` to retain the reviewed appearance pipeline.
66
+ - Godot sync requires an existing `project.godot`, a matching renderer, and current native Godot Stage confirmation. It writes `assets/canonical/<id>/` and generates the guarded loader and display adapter. Use `load_scene` for scenes and `load_package` for props.
67
+ - Browser `asset handoff` only supports confirmed Three.js versions; use `asset sync <id> --target godot --project "<project>"` for Godot.
68
+
69
+ Blender modeling/changes require target-engine Stage viewing and user confirmation. Agents must not click for the user or fabricate records. On a gate failure, inspect pending/stale reasons, repair or review, then sync again; do not edit confirmation JSON directly.
@@ -0,0 +1,26 @@
1
+ # Visual review
2
+
3
+ ## Review sequence
4
+
5
+ 1. Load the exact current `model.glb`; confirm the displayed source revision.
6
+ 2. Compare against the user request or versioned reference, not memory.
7
+ 3. Inspect front/back/side/top and a gameplay camera view.
8
+ 4. Check spatial, structural, semantic and render conditions separately.
9
+ 5. Save the measured wrapper TRS and concise evidence.
10
+ 6. Verify again in the target engine after sync.
11
+
12
+ ## Practical checks
13
+
14
+ - Spatial: feet/wheels/base touch the expected plane; forward direction is unambiguous; height and world scale are plausible; maps retain their intended origin.
15
+ - Structural: named parts exist, transforms are not unexpectedly nested, skeleton and sockets remain attached, animations do not jump on frame zero.
16
+ - Semantic: silhouette, part count, handedness, openings, controls, weapon muzzle, seats, doors and other requested affordances are correct.
17
+ - Render: normals face outward, textures resolve, alpha/culling are correct, material response is credible and no parts disappear under the target camera/light setup.
18
+
19
+ ## Evidence quality
20
+
21
+ Prefer a user-approved board view or target-engine screenshot. Agent visual review is acceptable when the comparison and limitations are recorded. Heuristics alone do not close structural, semantic or render review.
22
+
23
+ Three.js Stage is a neutral inspection surface, not proof of Godot render parity. Blender Cycles, Three.js and Godot use different shading pipelines. Describe approximations explicitly; do not promise pixel identity unless a target-engine capture was compared.
24
+
25
+ For `scene.contract.json`, keep reference camera, aspect ratio, near/far and framing fixed during comparison. Do not let auto-frame controls overwrite a contract camera.
26
+