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,353 @@
1
+ # 3D Game File Structure Specification
2
+
3
+ This document defines the standard file structure for browser 3D games. The project is a Vite + React + React Three Fiber application: the 3D view is managed by R3F / Three.js, and the DOM UI is managed by React. **This is the only normative source for all 3D code structure and config files in this plugin**. `game-director`, `game-designer`, `game-art`, `threejs-aaa-graphics-builder`, and `game-test` MUST follow this file when a 3D project's config or directory structure is involved.
4
+
5
+ **Core principle:** React Three Fiber (`<Canvas>`) owns the 3D / WebGL world; React DOM (`src/ui`) owns all formal HUDs, menus, dialogs, settings, inventory, quests, and narrative panels. R3F `<Html>` MUST NOT replace the formal HUD. Cross-layer communication goes through the **event bus**, **input actions**, and explicit **simulation state**.
6
+
7
+ ## `/public/config.json` Rules
8
+
9
+ `/public/config.json` is the game's external runtime configuration file and is output unchanged as `/dist/config.json` after build.
10
+
11
+ ### Storage Rules
12
+
13
+ 1. All user-tunable colors, gameplay parameters, balance values, and asset URLs MUST be written into `/public/config.json`; hardcoding them in business code is prohibited.
14
+ 2. Game code MUST read config through `fetch("./config.json")` (relative path); using the absolute path `/config.json` is prohibited; directly `import config.json` from the `src` directory is prohibited.
15
+ 3. The same user-tunable value MUST NOT be repeatedly hardcoded in React, R3F, Three, or CSS.
16
+
17
+ ### Structure Requirement: Strictly Flat
18
+
19
+ config **MUST be a flat top-level object**. Each parameter is a direct top-level key. Grouping by `assets`, `images`, `gameplay`, `colors`, `params`, etc. is **prohibited**:
20
+
21
+ ```json
22
+ // Correct - flat
23
+ { "image_background": { ... }, "player_move_speed": { ... } }
24
+
25
+ // Wrong - nested groups are prohibited
26
+ { "assets": { "background": { ... } }, "gameplay": { "speed": { ... } } }
27
+ ```
28
+
29
+ Each key falls into one of two categories:
30
+
31
+ - **Visible parameters** (keys that do not start with `_`): exposed for user editing and MUST use the standard schema below.
32
+ - **Invisible parameters** (keys that start with `_`): internal fields (such as `_game_name`, `_config_version`); raw values are allowed and the schema is not used.
33
+
34
+ ### Visible Parameter Schema
35
+
36
+ ```json
37
+ "key_name": {
38
+ "value": <actual value>,
39
+ "type": "int" | "float" | "color" | "bool" | "string" | "audio" | "image" | "video",
40
+ "label": "<user-language label, <=10 chars>",
41
+ "min": <number>,
42
+ "max": <number>
43
+ }
44
+ ```
45
+
46
+ Rules:
47
+
48
+ - `type` can only be `int`, `float`, `color`, `bool`, `string`, `audio`, `image`, or `video`.
49
+ - `label` uses the user's language and is at most 10 characters long.
50
+ - `min`/`max` appear only for `int`/`float`, and both MUST be provided together.
51
+ - `type: "color"` uses a hexadecimal color string.
52
+ - `type: "image"` MUST additionally declare `"image_type": "Asset"` and `"size": "widthxheight"` (for example `"1440x2560"`) so display size can be judged when true image dimensions cannot be read.
53
+ - For `audio`/`image`/`video`, `value` MUST be a real accessible external `http(s)` URL; local relative paths are prohibited. Images/meshes are generated asynchronously upstream; a transient 404 URL does not mean the asset is invalid, and the asset MUST NOT be rewritten, replaced, or deleted for that reason.
54
+
55
+ ### Example
56
+
57
+ ```json
58
+ {
59
+ "_game_name": "Example 3D Game",
60
+ "_config_version": 1,
61
+ "player_move_speed": { "value": 4.5, "type": "float", "label": "Move Speed", "min": 1, "max": 12 },
62
+ "camera_follow_lag": { "value": 0.12, "type": "float", "label": "Cam Lag", "min": 0.01, "max": 0.5 },
63
+ "theme_background_color": { "value": "#0b1020", "type": "color", "label": "Bg Color" },
64
+ "enable_shake": { "value": true, "type": "bool", "label": "Shake" },
65
+ "start_button_text": { "value": "Start Game", "type": "string", "label": "Start Text" },
66
+ "bgm_main": { "value": "https://example.com/bgm.mp3", "type": "audio", "label": "BGM" },
67
+ "model_player": {
68
+ "value": "https://example.com/player.glb",
69
+ "type": "string",
70
+ "label": "Player"
71
+ }
72
+ }
73
+ ```
74
+
75
+ Code-side read pattern:
76
+
77
+ ```ts
78
+ await loadConfig()
79
+ const speed = getSetting<number>('player_move_speed', 4.5)
80
+ ```
81
+
82
+ ## `/user_upload` Directory Rules
83
+
84
+ `/user_upload` is a virtual directory for user-uploaded assets. Files under it are not real asset files; they only store asset links or metadata.
85
+
86
+ 1. When user-uploaded assets are needed, first read the corresponding file under `/user_upload` and extract the real URL.
87
+ 2. Do not treat `/user_upload/...` as a local asset path; final code MUST reference the extracted real URL.
88
+
89
+ ## Deployment and Path Rules
90
+
91
+ 1. The final deployment artifact is fixed as `/dist`, deployed as a static site, and runtime resources MUST be directly accessible by the browser.
92
+ 2. `/dist` MUST run independently of the source directory: all runtime code, resources, chunks, CSS, audio, images, models, and configuration may reference only files inside `/dist` or external `http(s)` links. Relative paths or build-artifact internal paths MUST be used, and runtime references pointing to the source directory are strictly prohibited.
93
+ 3. `vite.config.ts` MUST set `base: './'`, making build artifacts use relative paths (`./assets/...`) so they work when deployed under any subpath.
94
+ 4. All runtime string paths (`fetch`, `Audio`, dynamic `import`, CSS `url()`, `GLTFLoader`) MUST use `./` relative paths or external `http(s)` URLs. Absolute paths starting with `/` (site root paths) are prohibited.
95
+
96
+ ## Required Files at Project Root
97
+
98
+ - `/project.md`: the only source of game requirements (design document); all subsequent development is based on this file.
99
+ - `/public/config.json`: the runtime configuration and asset-binding contract.
100
+ - `/src`: Vite + React + R3F source code.
101
+ - `/dist`: build artifact and deliverable.
102
+
103
+ ## Tech Stack
104
+
105
+ | Tech | Role |
106
+ | --- | --- |
107
+ | Vite | Build and development server |
108
+ | React | App shell and DOM UI |
109
+ | React Three Fiber (R3F) | Mounts Three.js `Canvas`, lifecycle, and `useFrame` orchestration |
110
+ | Three.js | WebGL rendering, camera, lights, meshes, `AnimationMixer`, GLB, etc. |
111
+ | Tailwind CSS v4 | DOM UI styling |
112
+ | mitt | Event bus between React UI and game runtime |
113
+ | `public/config.json` | External runtime configuration |
114
+ | pnpm | Package manager (`pnpm install` / `pnpm build`) |
115
+
116
+ ## Required Top-Level Structure
117
+
118
+ ```text
119
+ .
120
+ +-- index.html
121
+ +-- package.json
122
+ +-- public/
123
+ | +-- config.json
124
+ | +-- assets/ # Optional static asset directory
125
+ +-- src/
126
+ +-- main.tsx
127
+ ```
128
+
129
+ Full recommended tree:
130
+
131
+ ```text
132
+ .
133
+ +-- index.html
134
+ +-- package.json
135
+ +-- pnpm-lock.yaml
136
+ +-- tsconfig.json
137
+ +-- vite.config.ts
138
+ +-- public/
139
+ | +-- config.json
140
+ | +-- assets/
141
+ +-- src/
142
+ +-- main.tsx
143
+ +-- App.tsx
144
+ +-- index.css
145
+ +-- config/
146
+ | +-- config.ts # fetch public/config.json -> loadConfig() / getSetting()
147
+ | +-- types.ts # Config types (optional)
148
+ +-- game/
149
+ | +-- bridge/
150
+ | | +-- gameBus.ts # mitt event bus
151
+ | | +-- gameCommands.ts
152
+ | | +-- gameEvents.ts
153
+ | +-- simulation/
154
+ | | +-- state.ts # Serializable, testable game state
155
+ | | +-- systems/ # Deterministic gameplay systems
156
+ | | +-- rules.ts # Rules with no Three / React dependencies
157
+ | +-- content/
158
+ | | +-- encounters/
159
+ | | +-- items/
160
+ | | +-- maps/
161
+ | +-- input/
162
+ | | +-- actions.ts
163
+ | | +-- bindings.ts
164
+ | | +-- inputState.ts
165
+ | +-- assets/
166
+ | | +-- manifest.ts # Stable asset keys, URLs, metadata
167
+ | +-- audio/
168
+ | | +-- audioManager.ts
169
+ | | +-- audioHooks.ts
170
+ | | +-- audioPrefs.ts
171
+ | +-- three/ # No React import; unit-testable Three modules
172
+ | +-- buildWorld.ts
173
+ | +-- orbitCameraRig.ts
174
+ | +-- character/
175
+ | +-- creatures/
176
+ +-- ui/
177
+ | +-- components/
178
+ | | +-- GameCanvas.tsx # R3F <Canvas>, useFrame, world mount
179
+ | +-- hud/
180
+ | +-- menus/
181
+ | +-- overlays/
182
+ | +-- store/
183
+ | +-- useGameUiStore.ts
184
+ +-- components/ # Shared DOM UI primitives (non-game business UI)
185
+ +-- lib/
186
+ +-- utils.ts
187
+ ```
188
+
189
+ ## File Responsibilities
190
+
191
+ | Path | Owner | Role |
192
+ | --- | --- | --- |
193
+ | `index.html` | tech | Shell page; mounts `#root` / `#app` and loads `/src/main.tsx`. |
194
+ | `package.json` | tech | Scripts and dependencies; MUST expose `build` (usually also `dev`). |
195
+ | `public/config.json` | product / ops | Runtime-tunable parameters and content pointers; prefer changing this over source. |
196
+ | `src/main.tsx` | tech | Startup: after `loadConfig()`, `createRoot(...).render(<App />)`. |
197
+
198
+ ## Deliverables
199
+
200
+ The game is not complete unless **both** exist:
201
+
202
+ | Artifact | When | Why |
203
+ | --- | --- | --- |
204
+ | `public/config.json` | Always in the source tree | Ops/runtime configuration source; copied into `dist/` by Vite build. |
205
+ | `dist/index.html` | After `pnpm build` | Deliverable static entry point. |
206
+
207
+ After a successful build, `dist/config.json` (`public/config.json` runtime copy) should also exist.
208
+
209
+ ## Package Management and Scripts
210
+
211
+ - Package manager: **pnpm** (default; do not use npm/yarn).
212
+ - Install: `pnpm install`
213
+ - Production build: `pnpm build`
214
+ - Local development: `pnpm dev`
215
+
216
+ Minimum script contract:
217
+
218
+ ```json
219
+ {
220
+ "scripts": {
221
+ "dev": "vite --host 127.0.0.1",
222
+ "build": "tsc && vite build",
223
+ "preview": "vite preview --host 127.0.0.1"
224
+ }
225
+ }
226
+ ```
227
+
228
+ Verification before a new project is ready:
229
+
230
+ 1. `public/config.json` exists.
231
+ 2. `pnpm install` succeeds.
232
+ 3. `pnpm build` succeeds and outputs **`dist/index.html`** (and `dist/config.json`).
233
+ 4. Entry chain is healthy: `index.html` -> `src/main.tsx` -> `loadConfig()` -> `<App />` (`GameCanvas` + DOM HUD).
234
+
235
+ ## Startup Flow
236
+
237
+ ```text
238
+ main.tsx
239
+ -> loadConfig()
240
+ -> createRoot(...).render(<App />)
241
+ App.tsx
242
+ -> GameCanvas (R3F <Canvas>, World + useFrame)
243
+ -> Hud / MobileHud
244
+ -> PauseMenu, overlays (as needed)
245
+
246
+ GameCanvas.tsx
247
+ -> buildWorldInto / GLTFLoader (via game/three)
248
+ -> useFrame: simulation step + scene sync + camera
249
+ ```
250
+
251
+ `GameCanvas.tsx` is the **WebGL <-> React DOM boundary**. DOM UI is overlaid above Canvas (composed in `App`). On unmount, dispose Three resources and bus subscriptions.
252
+
253
+ ## Layering Rules
254
+
255
+ ### R3F / 3D Runtime (`src/ui/components/GameCanvas.tsx` + `src/game/three/`)
256
+
257
+ **`GameCanvas.tsx` (mount boundary) is responsible for:**
258
+
259
+ - Creating the R3F `<Canvas>` (shadows, `gl`, `dpr`, and other defaults are in `engine-runtime.md`)
260
+ - `useFrame` orchestration: read input/simulation -> update `Object3D` or state -> `mixer.update` -> camera (rendering is left to R3F; unless offscreen, do not manually call `renderer.render`)
261
+ - Assembling the scene root: `buildWorldInto(group)`, asynchronous GLB loading
262
+ - Disposing geometry, materials, `AnimationMixer`, and bus subscriptions on StrictMode remount / unmount
263
+
264
+ **`game/three/*` (pure Three modules) is responsible for:**
265
+
266
+ - Scene construction, math, and loading helpers with no React imports
267
+ - Not secretly changing DOM outside React refs
268
+
269
+ Emit gameplay facts with `gameBus.emit()`; accept UI commands (pause, reset, use item, etc.) through `gameBus` / command types.
270
+
271
+ **Prohibited:**
272
+
273
+ - `import` React components or hooks inside `game/three`
274
+ - Piling formal HUD/menus into R3F `<Html>`
275
+ - Scattering touch joystick / gesture mapping in `useFrame` or random components (centralize in `game/input` or UI -> unified actions)
276
+
277
+ ### React DOM UI (`src/ui` + `src/components`)
278
+
279
+ **Responsible for:** HUD, bars, buttons, main/pause/settings menus, inventory, quests, dialogs, results, toast; emits `command:*` through `gameBus`; reads runtime state through `useGameUiStore()` (or equivalent).
280
+
281
+ **Prohibited:** directly taking `Mesh` / `Object3D` inside HUD and changing `position` every frame; writing core rules in UI components; putting per-game business UI into `src/components`; duplicating joystick bindings across multiple components without going through `game/input`.
282
+
283
+ ### Simulation (`src/game/simulation`)
284
+
285
+ Responsible for player/enemy state, inventory, quests, combat values, pure rules, and serializable saves. Must have no Three.js / R3F / React dependencies.
286
+
287
+ ### Content (`src/game/content`)
288
+
289
+ Responsible for levels, maps, encounters, waves, items, rewards, and other static design data. React components and the `Object3D` lifecycle are prohibited from coupling to it.
290
+
291
+ ### Input (`src/game/input`)
292
+
293
+ Responsible for unified actions, keyboard/mouse/virtual joystick/touch bindings, and the semantic input surface shared by UI and `GameCanvas`. Undocumented scattered hardcoded bindings are prohibited; directly rewriting persistent simulation root state is prohibited.
294
+
295
+ ### Assets (`src/game/assets`)
296
+
297
+ Responsible for stable keys, URLs, types, and metadata for glTF / textures / audio / VFX. Hardcoding `"/foo/bar.glb"` throughout gameplay, UI, and scene modules is prohibited.
298
+
299
+ ### Audio (`src/game/audio`)
300
+
301
+ Responsible for reading BGM/SFX paths and toggles from config, Web Audio / HTMLAudio playback and dispose, listening to `gameBus` to map gameplay facts to sound, and applying `command:audio-prefs` emitted by HUD. Playing in-game SFX with `new Audio()` inside HUD is prohibited; creating new audio sources or footstep loops every frame in `useFrame` is prohibited; in-game BGM MUST NOT remain after exit/results/failure/restart. Unlock, event hooks, and cleanup details are in `engine-audio.md`.
302
+
303
+ ## Event Bridge Rules
304
+
305
+ Files: `src/game/bridge/gameBus.ts`, `gameEvents.ts`, `gameCommands.ts`.
306
+
307
+ Naming:
308
+
309
+ - `command:*` - React -> game runtime
310
+ - `game:*` - global session / world events
311
+ - `player:*` - player state
312
+ - `enemy:*` - enemy state
313
+ - `ui:*` - UI-facing events
314
+ - `game:feedback` / `player:movement` - in-game feedback cues (SFX + VFX); payload is plain data
315
+
316
+ When adding events, update the `gameCommands.ts` / `gameEvents.ts` types in the same change.
317
+
318
+ ## Diagnostics and Test Hooks
319
+
320
+ Install when `GameCanvas` mounts and clean up on unmount; type declarations go in `src/vite-env.d.ts`.
321
+
322
+ - `window.__THREE_GAME_DIAGNOSTICS__`: renderer info, simulation snapshot, input state, entity count, etc. (for canvas inspector / AAA scorecard).
323
+ - `window.__THREE_GAME_TEST_HOOKS__`: `seed` / `setState` / `setPausedForScreenshot` / `setReducedMotion` / `hideDebugUi` (for visual regression and bot playtest).
324
+
325
+ Put deterministic random in `src/lib/random.ts` or `src/game/simulation/random.ts`; business paths are prohibited from using `Math.random`.
326
+
327
+ ## Hard Methodology
328
+
329
+ - **Keep layering:** `game/three` MUST NOT import React; DOM UI MUST NOT directly drive `Object3D`. Prefer `gameBus` or a single input/simulation facade.
330
+ - **Simulation first:** rules are in `game/simulation`, not in `useFrame` or `Hud.tsx`.
331
+ - **Centralized input:** physical -> semantic mapping is in `game/input`.
332
+ - **Content is data:** levels/maps/items are in `game/content`.
333
+ - **Asset directory:** glTF / textures / audio go through `manifest.ts` or config keys.
334
+ - **Centralized in-game audio:** only `game/audio`; preferences go through the bus.
335
+ - **Centralized config:** tunable parameters are in `public/config.json`.
336
+ - **UI placement:** business DOM UI is in `src/ui`; shared primitives are in `src/components`; formal HUD is never an R3F child node.
337
+ - **Verification:** run `pnpm build` after meaningful changes.
338
+
339
+ ## Anti-Patterns
340
+
341
+ - Building full menus / inventory / settings inside `useFrame`
342
+ - Grabbing scene-internal refs from arbitrary React components and changing mesh everywhere
343
+ - Putting combat rules into `Hud.tsx`
344
+ - Using `Mesh.userData` as a persistent database for UI/saves
345
+ - Input and state drifting from multiple sources
346
+ - Copying the same touch action mapping across multiple files
347
+ - Hardcoding the same glTF/texture URL string in multiple places
348
+ - Using `src/main.ts` instead of `src/main.tsx` while following this specification
349
+ - Replacing this layout with CRA, Next.js, or npm-only scaffolding (unless the user asks)
350
+
351
+ ## Output Expectations
352
+
353
+ When adding features, state the owning layer (R3F/Three orchestration / React UI / Simulation / Content / Input / Assets / Audio) and why. Route cross-layer behavior through `gameBus` (or the agreed single facade), and update event types. Confirm with `pnpm build`.
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: threejs-aaa-graphics-builder
3
+ description: Upgrade Three.js scenes with high-quality art direction, materials, lighting, shaders, VFX, asset acquisition, and render budgets. Use when 3D browser games need measurable visual quality improvement beyond prototype graphics.
4
+ ---
5
+
6
+ # Three.js AAA Graphics Builder
7
+
8
+ ## Purpose
9
+
10
+ Own the production graphics pass. Convert basic screenshots into authored, high-density, performance-aware visual experiences.
11
+
12
+
13
+ ## Use When
14
+
15
+ Screenshots still look basic, models look primitive, worlds are sparse, UI/world art feels generic, or the user asks for premium, AAA, high-fidelity, showcase, or less-basic graphics.
16
+
17
+ ## Required References
18
+
19
+ These references are required phase-entry gates, not optional reading:
20
+
21
+ - Load `../game-art/references/scene-profiles.md` and select a `scene_profile_id` before world kit, lighting polish, or any claim that World/environment is authored. Read only the **World + 3D · Lighting + Entities + Reject** sections for that profile; this skill executes the production pass against it.
22
+ - Load `references/visual-scorecard.md` before scoring, judging completion, or making any premium/AAA/showcase claim.
23
+ - Load `references/implementation-blueprint.md` before changing graphics architecture, materials, VFX, rendering, diagnostics, or broad visual systems.
24
+ - Load `references/model-recipes.md` before building or upgrading hero/player, obstacle, enemy, pickup, world-kit, material, or prop models.
25
+ - Load `references/render-recipes.md` before changing lighting, tone mapping, shadows, fog, post-processing, materials, or render composition.
26
+ - Load `references/technical-art.md` before premium/AAA/showcase graphics work, shaders/material systems, VFX systems, generated/imported asset cleanup, LOD/instancing work, or visual changes that could affect browser performance.
27
+ - Load `references/shader-cookbook.md` before writing any custom shader, `onBeforeCompile` injection, material recipe, sky, or post-processing chain; use its proven values and GLSL patterns instead of improvising.
28
+ - Load `references/checklists/aaa-game-quality-gate.md` and `references/checklists/aaa-visual-scorecard.md` before declaring a game premium, AAA, showcase, complete, release-ready, or less basic.
29
+ - Load the relevant checklist before focused work: `references/checklists/procedural-model-quality.md`, `references/checklists/material-lighting-quality.md`, `references/checklists/performance-safe-visual-detail.md`, or `references/checklists/technical-art-quality.md`.
30
+ - Load `references/graphics-prompt-templates.md` only when the user asks for reusable prompts, a graphics-pass prompt, or a task template.
31
+
32
+ For broad "still looks basic", premium, AAA, high-fidelity, showcase, or less-basic graphics work, load the scene-profiles paradigm (3D Lighting rail) plus all five core references (`visual-scorecard`, `implementation-blueprint`, `model-recipes`, `render-recipes`, `technical-art`) as the first action in the phase. Track them in a reference ledger with yes/no, path, and failure reason. Do not mark the graphics phase complete while any required reference is skipped.
33
+
34
+ External asset sourcing gate:
35
+
36
+ - For premium/AAA/showcase/high-fidelity/less-basic graphics with a hero/player, character, creature, boss, vehicle, ship, building, weapon, signature prop, complex pickup, or hero environment piece, load `../game-asset-mesh-generator` before deciding procedural geometry is enough.
37
+ - For concept needs, texture/material references, decals, logos, faction marks, icons, GUI art, skies, backgrounds, title/menu art, or image-to-3D inputs: prefer procedural/CSS/canvas UI art; use user-supplied local images via `evomeme_upload_game_asset` + MCP `evomeme_image_to_mesh`, or remote MCP `evomeme_generate_game_image` when available.
38
+ - Create an asset sourcing ledger for each high-value surface: procedural / ../game-asset-mesh-generator / hybrid / user-provided, plus outputs or skip reason.
39
+ - `not-needed` is valid only after the relevant path was considered and the ledger explains why external generation would not improve a non-hero support surface, or why an attempted MCP/CDN call shows a real blocker.
40
+ - For premium hero surfaces, procedural-only is not an allowed final answer unless there is real blocker evidence. At least one high-value surface must show a 3D generator task ID, downloaded GLB/GLTF/FBX path, user-provided/remote 2D asset path, or documented hybrid chain.
41
+
42
+ ## Workflow
43
+
44
+ 1. Capture or inspect active desktop/mobile screenshots.
45
+ 2. Confirm or select a `scene_profile_id` from `../game-art/references/scene-profiles.md` (World / 3D · Lighting / Entities). If missing, write it before upgrading surfaces.
46
+ 3. Score visuals across art direction, hero/player, obstacles, rewards, world, materials, render, VFX, UI, and performance evidence.
47
+ 4. Add missing graphics architecture: material library, procedural textures/decals, model factories, world prop kit, technical-art budget, VFX system, render pipeline, diagnostics.
48
+ 5. Fill the external asset sourcing ledger per surface: procedural Three.js factory, user-provided/remote 2D reference, `../game-asset-mesh-generator` 3D generation, or a hybrid.
49
+ 6. Upgrade every weak visible surface, not only one hero object. World layers must match the chosen scene-profiles paradigm (Play / Near / Mid / Far / Motion).
50
+ 7. Add lighting/render/material polish after authored forms exist, following the paradigm's Lighting stack intent and `references/render-recipes.md`.
51
+ 8. Add event-driven VFX tied to gameplay state.
52
+ 9. Re-score screenshots against the calibration anchors, citing the inspector's measured metrics. Continue until every premium category is at least 2/3 or report exact blockers.
53
+ 10. Run the fresh-eyes review per `references/visual-scorecard.md` before finalizing premium/AAA/showcase claims.
54
+ 11. Verify renderer diagnostics against the render budget table, technical-art budget, desktop/mobile screenshots, console/page errors, canvas pixels, imported asset budgets, and playability.
55
+
56
+ ## Core Rule
57
+
58
+ Do not make primitives look AAA by adding glow. First build authored forms, then materials, then lighting, then effects.
59
+
60
+ ## Final Response
61
+
62
+ Report the reference ledger, external asset sourcing ledger, technical art brief, score before/after, production surfaces upgraded, files changed, screenshots/artifacts, renderer diagnostics, imported asset diagnostics when relevant, VFX readability and render-budget tradeoffs, and remaining blockers. For premium/AAA/showcase claims, include the filled visual scorecard exactly as defined in `references/visual-scorecard.md`, including average and automatic failures remaining.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "Three.js AAA Graphics Builder"
3
+ short_description: "Comprehensively improve a 3D game's models, materials, lighting, effects, and rendering quality"
4
+ default_prompt: "Please use $threejs-aaa-graphics-builder to improve this 3D game's overall visual quality, and refine its models, materials, lighting, effects, and performance presentation."
5
+
6
+ policy:
7
+ allow_implicit_invocation: false
@@ -1,12 +1,18 @@
1
1
  ---
2
2
  name: evomeme-cloud-fs
3
- description: 讲解 evomeme工作区 init、.evomemeignore,以及源码提交等云端文件 MCP。在执行 npx -y evomeme@latest init、编辑忽略规则,或调用 evomeme_submit_game_code / evomeme_upload_game_asset 时使用。
3
+ description: 讲解 evomeme工作区 init、.evomemeignore,以及云端文件 MCP。在执行 npx -y evomeme@latest init、编辑忽略规则,或调用 evomeme_reinit_project / evomeme_submit_game_code / evomeme_upload_game_asset 时使用。
4
4
  ---
5
5
 
6
6
  # evomeme云端文件系统
7
7
 
8
8
  讲解本地工作区初始化、提交忽略规则,以及源码提交 / 二进制上传相关 MCP。
9
9
 
10
+ | 工具(中文名称) | 实际操作与结果 | 何时使用 |
11
+ | --- | --- | --- |
12
+ | `evomeme_reinit_project`(重新初始化项目) | 创建新的云端 thread,并更新当前工作区绑定,返回工作区与 `thread_id`。thread 是云端作品/提交归属标识,不是聊天记录或文件路径。 | 云端明确报 thread 不存在,且需要重新绑定当前工作区时;按下文确认要求执行。 |
13
+ | `evomeme_submit_game_code`(提交游戏代码) | 提交允许的项目文件与构建产物,全量覆盖云端版本,返回 `thread_id`、`checkpoint_id` 与文件数量;checkpoint 是本次提交的云端版本标识。 | 项目已构建并需要提交到云端时。失败只返回真实错误,不自动重建 thread。 |
14
+ | `evomeme_upload_game_asset`(上传云端素材) | 上传二进制素材,审核通过后返回公开 URL;不提交项目源码。 | 游戏或视频参考需要公开图片、模型、音频、视频链接时,使用 [上传技能](../evomeme-tos-upload/SKILL.md)。 |
15
+
10
16
  鉴权失败后再加载 `../evomeme-login/SKILL.md`;不要预防性加载登录技能。
11
17
 
12
18
  ---
@@ -20,6 +26,7 @@ description: 讲解 evomeme工作区 init、.evomemeignore,以及源码提交
20
26
  - 若不存在则生成默认 **`.evomemeignore`**
21
27
  - 把包内 skill 复制到工作区 **`.codex/skills/`**
22
28
  - 确认本机登录态(供后续 MCP 使用)
29
+ - 若缺少本地绑定,创建云端作品并保存 thread_id;已有绑定时沿用,不检查远端是否失效
23
30
 
24
31
  npm 包名为 **`evomeme`**(可执行入口 `evomeme`)。
25
32
 
@@ -42,7 +49,7 @@ npx -y evomeme@latest install --ide codex
42
49
  ### 注意
43
50
 
44
51
  - init 是**工作区准备**(忽略规则、skills、登录态),不是做游戏前必须完成的门槛。
45
- - 开发过程中不必为了作品绑定去跑 init;需要提交时直接调用 `evomeme_submit_game_code` 即可(见下文)。
52
+ - 提交前必须已有作品绑定,可通过 CLI init 或显式调用 `evomeme_reinit_project` 首次创建。已有 thread_id 失效时,CLI init 不会替换它;需要用户明确要求后调用重新绑定工具。
46
53
  - 已存在的 `.evomemeignore` **不会被覆盖**;skills 会按包内内容复制/更新到 `.codex/skills/`。
47
54
 
48
55
  ---
@@ -84,14 +91,34 @@ npx -y evomeme@latest install --ide codex
84
91
 
85
92
  | 工具名 | 功能 |
86
93
  | --- | --- |
94
+ | `evomeme_reinit_project` | 显式创建新 thread 并替换工作区绑定,清除旧 checkpoint;不提交文件。也可用于首次绑定。 |
87
95
  | `evomeme_submit_game_code` | **游戏发布**(非纯源码上传):按 `.evomemeignore` 收集并全量覆盖云端作品,**必须包含可运行的 `dist/`**;不可撤销。 |
88
- | `evomeme_upload_game_asset` | 将受支持的本地图片、音频或视频交给服务端上传 TOS;内容审核通过后才返回公开 `asset_url`。其他类型禁止上传。 |
96
+ | `evomeme_upload_game_asset` | 将受支持的本地图片、音频、视频或常见 3D 模型(GLB/GLTF/FBX/OBJ/STL)交给服务端上传 TOS;内容审核通过后才返回公开 `asset_url`。其他类型禁止上传。 |
97
+
98
+ ### `evomeme_reinit_project`
99
+
100
+ 参数:`workspace_dir`(可选,默认 MCP 进程当前工作目录)、`name`(可选,新作品名称)。Agent 调用时应明确传入当前项目根目录的绝对路径,确保新 id 绑定到正确工作区。即使已有绑定也会创建新的云端 thread;成功后覆盖 `.evomeme/config.json` 并清除旧 checkpoint_id,不删除旧云端作品。创建失败则保留旧绑定并返回真实错误,不自动重试。
101
+
102
+ 只在用户明确要求初始化或重新绑定时调用。提交失败时应把原始错误交给用户,不得自动调用本工具恢复。重新绑定成功后,文件提交仍需单独调用提交工具。
103
+
104
+ #### thread_id 报错后的处理
105
+
106
+ 当 `evomeme_submit_game_code` 明确报错「缺少 thread_id 绑定」「thread 不存在」或「thread 已失效」时,**重新创建 thread_id 的工具是 `evomeme_reinit_project`**。不要反复调用提交工具期待它自动创建 id,也不要使用 CLI `init` 修复已有的失效绑定(CLI 会沿用旧 id)。
107
+
108
+ 1. 先向用户展示提交工具返回的真实错误,说明重新绑定会创建新的云端作品并清除本地旧 checkpoint_id,旧云端作品不会被删除。
109
+ 2. 用户明确要求重新创建或重新绑定后,单独调用 `evomeme_reinit_project`,传入当前项目根目录 `workspace_dir`,可用 `name` 传入游戏当前正式名称。已有此授权时直接执行,不重复确认。
110
+ 3. 初始化成功后,使用返回的新 thread_id;工具已经写入工作区 `.evomeme/config.json`,无需手动修改。若仍需完成原提交,再单独调用 `evomeme_submit_game_code`,使用同一工作区及原提交的 `name`、`cover_url`,并遵守提交前检查。
111
+ 4. 重新初始化失败则展示原始错误并停止,不继续提交、不循环创建新 thread。
112
+
113
+ 应结合错误正文判断原因,不能把所有 `40401` 都当作 id 丢失。若错误表示无权访问、作品已发布,或属于登录、网络、文件校验问题,不要直接套用重建流程。
89
114
 
90
115
  ### `evomeme_submit_game_code`
91
116
 
92
117
  把当前工作区里按 `.evomemeignore` 收集到的 **utf-8 文本源码**,全量同步到云端作品。
93
118
 
94
- **硬性约束:任何二进制文件都不得通过本工具上传**(含图片、模型、音视频、字体、压缩包等)。源码提交只收集文本;受支持的图片、音频和视频只能经 `evomeme_upload_game_asset` 上 TOS,模型、字体、压缩包和其他类型不支持上传。提交前还必须通过下文的发布产物门禁;发现任一二进制或绝对本地依赖时,禁止调用本工具。
119
+ 只使用已有 thread_id 提交一次。缺少本地绑定、thread 失效或其他提交错误会直接返回;不创建新 thread,不在失败后重新登录并重提。失败不改写原绑定和 checkpoint_id。
120
+
121
+ **硬性约束:任何二进制文件都不得通过本工具上传**(含图片、模型、音视频、字体、压缩包等)。源码提交只收集文本;受支持的图片、音频、视频和常见 3D 模型(GLB/GLTF/FBX/OBJ/STL)只能经 `evomeme_upload_game_asset` 上 TOS,字体、压缩包和其他未列出类型不支持上传。提交前还必须通过下文的发布产物门禁;发现任一二进制或绝对本地依赖时,禁止调用本工具。
95
122
 
96
123
  可选参数:
97
124
 
@@ -160,11 +187,11 @@ npx -y evomeme@latest install --ide codex
160
187
  https://www.evomeme.com/profile/works/draft
161
188
 
162
189
  同时告知:可在该页面查看草稿,并在 evomeme中自行将游戏发布出来。不要只报「提交成功」而不给链接。
163
- - **失败**:MCP 结果带 `isError`,正文为错误说明。把原文展示给用户;若错误指向登录 / token 失效,再加载 `../evomeme-login/SKILL.md` 恢复后重试原提交。
190
+ - **失败**:MCP 结果带 `isError`,正文为错误说明。把原文展示给用户;若错误指向 thread_id 缺失、不存在或失效,按上文「thread_id 报错后的处理」使用 `evomeme_reinit_project` 重新创建绑定;若错误指向登录 / token 失效,再加载 `../evomeme-login/SKILL.md` 恢复后重试原提交。
164
191
 
165
192
  ### `evomeme_upload_game_asset`
166
193
 
167
- 将受支持的本地图片、音频或视频交给服务端上传 TOS,内容安全审核通过后才返回公开 `asset_url`;其他类型禁止上传。提交源码前处理媒体资源时优先用本工具;说明见 `../evomeme-tos-upload/SKILL.md`。
194
+ 将受支持的本地图片、音频、视频或常见 3D 模型(GLB/GLTF/FBX/OBJ/STL)交给服务端上传 TOS,内容安全审核通过后才返回公开 `asset_url`;其他类型禁止上传。提交源码前处理媒体 / 模型资源时优先用本工具;说明见 `../evomeme-tos-upload/SKILL.md`。
168
195
 
169
196
  ---
170
197
 
@@ -35,7 +35,7 @@ description: 用生图 MCP 生成 9:16 竖屏游戏封面(含大字标题、
35
35
  - 一句话玩法与视觉主体;
36
36
  - 美术风格关键词(如像素、扁平卡通、赛博等);
37
37
  - 主色与氛围。
38
- 3. 可选:若已有强风格参考图的公开 URL,可作为 `reference_image_url`(须与本游戏一致)。
38
+ 3. 可选:查看与本游戏一致的风格参考图,将其配色、线条与渲染特点写入提示词。需要直接引用附件或其他目录的图片时,必须先将真实图片文件复制到本次工作区 `assets/`,确认可读取后再通过 `reference_ids` 提供其工作区相对素材 ID(例如 `assets/references/cover-style.png`),并显式传入同一工作区的 `workspace_dir`;已有 `assets/` 图片直接复用,避免覆盖同名不同内容的文件。不得传入原始附件绝对路径或猜测 ID。
39
39
 
40
40
  ---
41
41
 
@@ -45,13 +45,12 @@ description: 用生图 MCP 生成 9:16 竖屏游戏封面(含大字标题、
45
45
 
46
46
  | 参数 | 值 |
47
47
  | --- | --- |
48
- | `image_type` | `background`(封面为整幅竖构图,不要用 `asset` 抠图类型) |
48
+ | `background` | `opaque`(完整不透明封面) |
49
49
  | `size` | **`1440x2560`**(强制,对应 9:16) |
50
- | `image_model` | **`asset-pro`**(封面用质量档;不要用 `asset-lite`) |
50
+ | `model` | **`asset-pro`**(封面用质量档;不要用 `asset-lite`) |
51
51
  | `prompt` | 见下方提示词结构 |
52
- | `reference_image_url` | 可选 |
53
52
 
54
- 禁止传入未在工具枚举中的 size(如 `1080x1920`)。`image_model` 仅允许 `asset-pro` / `asset-lite`。
53
+ 禁止传入未在工具枚举中的 size(如 `1080x1920`)。`model` 仅允许 `asset-max` / `asset-pro` / `asset-lite`。
55
54
 
56
55
  ### 提示词结构(必须覆盖)
57
56
 
@@ -67,7 +66,7 @@ description: 用生图 MCP 生成 9:16 竖屏游戏封面(含大字标题、
67
66
 
68
67
  ### 成功返回与永久保存(必须)
69
68
 
70
- 工具会自行轮询到任务终态并返回文本元数据与 MCP `image` 内容块。从文本解析 `tos_url`(及 `job_id`、`local_path` 等);`tos_url` 即封面公开地址。
69
+ 工具会自行轮询到任务终态,仅返回文本元数据,不返回图片 Base64 或 MCP `image` 内容块。从文本解析 `tos_url`(及 `job_id`、`local_path` 等);`tos_url` 即封面公开地址。需要查看封面时,使用可用的图片查看工具读取 `local_path` 或打开 `tos_url`。
71
70
 
72
71
  **Agent 在生图成功后必须立刻**把该 URL 写入工作区 `public/config.json` 的固定键 **`_game_cover_url`**,作为封面永久记录。未写入不得视为封面流程完成。
73
72
 
@@ -110,8 +109,8 @@ description: 用生图 MCP 生成 9:16 竖屏游戏封面(含大字标题、
110
109
  调用前:
111
110
 
112
111
  - [ ] `size` 是否为 `1440x2560`
113
- - [ ] `image_type` 是否为 `background`
114
- - [ ] `image_model` 是否为 `asset-pro`
112
+ - [ ] `background` 是否为 `opaque`
113
+ - [ ] `model` 是否为 `asset-pro`
115
114
  - [ ] prompt 是否含**确切游戏名**且要求大字标题
116
115
  - [ ] prompt 背景是否与玩法/主体强相关
117
116
  - [ ] prompt 风格是否与当前游戏美术一致