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,114 @@
1
+ ---
2
+ name: game-image-splitter
3
+ description: Must be used whenever an image needs splitting. Guides evomeme_smart_split_image for independent foreground regions and evomeme_manual_split_image for row/column grids, producing separate PNGs. Applies to existing asset sheets, UI component sheets, tilesets, character views and frame sheets. Explains actual processing, outputs, transparent padding, alignment, crop boxes and output order, distinguishing cropping from cutout and AI layer decomposition.
4
+ ---
5
+
6
+ # Image Splitting
7
+
8
+ **Whenever an image needs splitting, use this skill.** Inspect the source and actual layout, choose independent-subject splitting or a fixed grid, then check files and coordinates. Both tools process existing images and accept no generation prompt.
9
+
10
+ ## Choosing a tool
11
+
12
+ | Image or need | Choice and reason |
13
+ | --- | --- |
14
+ | Scattered objects without fixed cells, with clear gaps between subjects | `evomeme_smart_split_image`: determines crop boxes from foreground regions. Transparent backgrounds usually help detection. |
15
+ | Regular rows and columns of tiles, character views or animation frames | `evomeme_manual_split_image`: uses confirmed grid dimensions and preserves every cell and its order. |
16
+ | Equal output dimensions | Use `pad_to_same_size=true` for smart splitting. For grid splitting, source width/height must be divisible by columns/rows respectively to ensure equal cell sizes. |
17
+ | Preserve blank cells or exact grid indices | Use grid splitting. Smart splitting returns detected subjects and does not preserve empty-cell indices. |
18
+ | Margins, cell spacing, irregular partitions or a specific crop rectangle | Neither tool accepts margins, spacing, coordinates or partial cell selection. Handle the actual layout separately first; do not invent these tool parameters. |
19
+ | Background removal only | Use cutout or color key through the [image and background processing skill](../game-asset-image-generator/SKILL.md). Splitting does not remove backgrounds automatically. |
20
+ | Separate backgrounds, characters and foregrounds that occlude each other | Use the [layer decomposition skill](../game-image-layer-decomposer/SKILL.md); this requires AI content decomposition. |
21
+
22
+ The tools share the canvas `smart_split` / `manual_split` tasks. Existing `splitImageAsset` / `manualSplitImageAsset` call the processing functions in `imageSplit.ts`. Both read images, detect or calculate crop regions, write files and register task results locally. They use no AI, do not upload automatically and preserve the source. MCP does not call other MCP tools, and integration does not modify task/image algorithms or built-in prompts.
23
+
24
+ ## What smart splitting actually does
25
+
26
+ 1. Read image dimensions and pixels. Detection limits the analysis image's longest side to 1600 pixels; final crops still use the source image without reducing subject size to the analysis resolution.
27
+ 2. With sufficient transparent regions, detect foreground by alpha; otherwise sample background color at edge locations and detect foreground by color difference. Apply small repairs and fragment merging, identify independent regions and map boxes back to source coordinates.
28
+ 3. Crop each subject. By default, pad with transparent pixels to the largest crop width × largest crop height, aligned by `anchor`, without scaling subjects. Disabling padding preserves individual crop sizes.
29
+ 4. Save **N independent PNGs, with N at least 2 on success**. Count depends on detection. Outputs run roughly top-to-bottom and left-to-right for nearby rows, not by semantic category or animation time.
30
+
31
+ “Smart” means local pixel analysis, not model understanding of object categories. Touching objects may merge; disconnected decorations of one object may split apart; tiny elements may be ignored. Complex backgrounds, objects touching image edges and narrow gaps affect detection. Transparent images may receive a small safety margin around detected bounds; boxes do not promise exact contour fitting.
32
+
33
+ **Background color is used only for detection and is not erased automatically.** Crops from a white-background source may still contain white. Transparent padding only makes newly added borders transparent. When removal is needed, use an available cutout/color-key tool first, then split its output image ID.
34
+
35
+ | Parameter | Meaning |
36
+ | --- | --- |
37
+ | `id` | Required asset ID of one existing image inside workspace `assets/`, such as `assets/props.png`. |
38
+ | `pad_to_same_size` | Optional, default `true`: pad with transparent pixels to equal dimensions. `false` preserves individual crop dimensions. |
39
+ | `anchor` | Optional, default `center`: `top-left`, `top`, `top-right`, `left`, `center`, `right`, `bottom-left`, `bottom`, `bottom-right`. Affects placement only when padding is enabled. |
40
+ | `workspace_dir` | Optional absolute workspace root. Set explicitly when possible; otherwise uses the MCP working directory. |
41
+
42
+ For example, crop props and align them bottom-center on equal transparent canvases for later placement:
43
+
44
+ ```json
45
+ {
46
+ "workspace_dir": "D:/my-game",
47
+ "id": "assets/props.png",
48
+ "pad_to_same_size": true,
49
+ "anchor": "bottom"
50
+ }
51
+ ```
52
+
53
+ Pass these arguments to `evomeme_smart_split_image`. For individual unpadded crops, set `pad_to_same_size=false`; `anchor` can then be omitted. There are no subject count, detection threshold, model or prompt parameters.
54
+
55
+ ## What grid splitting actually does
56
+
57
+ 1. Read source dimensions and validate integer row/column counts from 1 to 64, a product of at least 2, rows no greater than pixel height and columns no greater than pixel width.
58
+ 2. Partition the entire image by the specified grid. Boundaries are `floor(column index × source width / columns)` and `floor(row index × source height / rows)`, with zero-based indices; subtract adjacent boundaries for cell dimensions.
59
+ 3. Crop and save **rows × columns PNGs**, including transparent or blank cells. Return top-to-bottom, left-to-right within each row. There is no subject detection, automatic margin removal, dropped remainder edge, resizing or transparent padding.
60
+
61
+ Non-divisible dimensions can produce cells differing by one pixel along an axis. For a width of 10 split into 3 columns, boundaries are 0, 3, 6, 10 and widths are 3, 3, 4. Do not assume equal cell sizes or discard the remainder.
62
+
63
+ | Parameter | Meaning |
64
+ | --- | --- |
65
+ | `id` | Required existing workspace image asset ID, such as `assets/tileset.png`. |
66
+ | `rows` | Required number of rows down the image, integer 1–64. |
67
+ | `columns` | Required number of columns across the image, integer 1–64. The product of rows and columns must be at least 2. |
68
+ | `workspace_dir` | Optional absolute workspace root; set explicitly when possible. |
69
+
70
+ For example, split a confirmed 4×4 tileset into 16 images:
71
+
72
+ ```json
73
+ {
74
+ "workspace_dir": "D:/my-game",
75
+ "id": "assets/tileset.png",
76
+ "rows": 4,
77
+ "columns": 4
78
+ }
79
+ ```
80
+
81
+ Pass these arguments to `evomeme_manual_split_image`. Confirm the actual layout of four-view, eight-direction and frame sheets first; “eight directions” does not imply eight columns. A 3×3 eight-direction sheet with an empty center produces 9 cells; explicitly exclude the center when using the results, as the tool does not skip it. Splitting a frame sheet preserves cell positions, while playback order and durations need separate configuration; it does not generate new animation.
82
+
83
+ ## Terminology and result fields
84
+
85
+ - **Sheet / atlas**: Multiple assets stored in one image. Regular atlases have defined rows and columns; freely arranged asset sheets may have no grid. A frame sheet stores multiple time frames in one image, with order determined by its original design.
86
+ - **Foreground, alpha and connected regions**: Foreground is the region detection aims to keep. Alpha stores pixel opacity. Connected regions are groups of neighboring pixels. Current detection uses eight-neighbor connectivity, including horizontal, vertical and diagonal neighbors, so diagonal contact can merge regions.
87
+ - **Crop box**: A source-image rectangle `{x,y,width,height}` in pixels, with origin at the top-left, x increasing right and y increasing down. It covers `[x,x+width)` and `[y,y+height)`. Unlike AI layer decomposition's `bounding_box`, this contract defines the coordinates.
88
+ - **Transparent padding**: Adds transparent pixels outside a crop to equalize output dimensions. It neither enlarges smaller subjects nor removes the source background inside a crop.
89
+ - **Alignment anchor / engine pivot**: Anchor determines where a crop sits inside its padded canvas. A pivot determines the reference point for positioning, rotation and scaling in a game. `bottom` aligns crop bounds bottom-center; it does not recognize feet or configure an engine pivot.
90
+ - **Row-major order**: Output every cell in the first row left-to-right before starting the second row. Zero-based row r and column c correspond to index `r × columns + c`.
91
+
92
+ MCP returns text metadata with arrays represented as JSON text, without embedded images or Base64:
93
+
94
+ | Field | Meaning |
95
+ | --- | --- |
96
+ | `images` (both) | All results with `id` / `asset_id`, `local_path`, `mime_type=image/png`, `name`, `source`, `kind` and `url`. `url=/files/...` is a canvas local-service path, not a public address. |
97
+ | Top-level `asset_id`, `local_path`, `mime_type` | Summary of the first result, not the source or complete set. |
98
+ | `source_id`, `operation_id`, `status` | Input asset ID, local task operation ID and success status. There is no remote AI `job_id`. |
99
+ | `boxes` (both) | Actual source crop rectangles corresponding one-to-one by index with `images`, useful for recording or reconstructing source placement. |
100
+ | `subject_boxes` (smart) | Detected regions mapped back to source coordinates, possibly including safety margins. Currently identical in content to `boxes`, not contour masks. |
101
+ | `output_sizes` (smart) | Actual `{width,height}` for each result in `images` order, including transparent padding. |
102
+ | `target_width`, `target_height` (smart) | Largest detected crop width and height. Equal output dimensions when padding is enabled; otherwise only maxima, not every image's size. |
103
+ | `anchor`, `pad_to_same_size` (smart) | Actual alignment and padding settings. |
104
+ | `rows`, `columns`, `source_width`, `source_height` (grid) | Grid settings and source pixel dimensions. Each output's size is the width/height of its corresponding `boxes` entry. |
105
+
106
+ ## Delivery and use
107
+
108
+ The source must exist inside the workspace's `assets/`; `id` accepts no URL, absolute path or Base64. For earlier tool outputs, use their returned `asset_id` rather than guessing filenames. Results are written to `assets/` with batch identifiers and suffixes such as `_split_01.png` or `_grid_rowsxcolumns_01.png`, not semantic object names.
109
+
110
+ Check count, order, crop edges, transparency and merged/missed subjects, then build a file → purpose/cell → source crop box list. Smart splitting fails when fewer than two valid subjects are detected. Inspect spacing and background and choose suitable preprocessing or a known grid; do not substitute newly generated artwork for cropping the requested source.
111
+
112
+ To reconstruct source placement, position unpadded crops at `boxes[i].x/y`. Padded results also require subtracting the padding offset: `padX=floor((target_width-box.width)×ax)` and `padY=floor((target_height-box.height)×ay)`, where left/center/right ax is 0/0.5/1 and top/center/bottom ay is 0/0.5/1. Place at `box.x-padX, box.y-padY` to retain source position; do not simply align a padded image to the crop box's top-left.
113
+
114
+ Use each result's `local_path` in the game and configure pivots, cells or frame order from actual content. Image bounds are not automatically colliders. When public URLs are needed, upload the corresponding results with `evomeme_upload_game_asset`; do not substitute the source sheet's URL for cropped files. On failure, inspect the error, task records and any files already written; the shared workflow does not guarantee a complete result list on failure.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "Image Splitting"
3
+ short_description: "Required guidance for smart and grid image splitting"
4
+ default_prompt: "Use $game-image-splitter to inspect this image, choose smart or grid splitting, and explain output files, dimensions and order."
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: game-maker
3
+ description: Organize the development goals of a game or game Demo into a progressively refinable task dependency graph. At the beginning, create only a rough task skeleton composed of main goals, key decisions, the core Demo, and necessary dependencies, then gradually refine relevant branches as development decisions are made and other Skills deliver their results. Use when the developer wants to create, prototype, expand, or systematically rework a game from scratch, or needs to establish and continuously maintain a game development task list.
4
+ ---
5
+
6
+ # Game Maker
7
+
8
+ ## Goal
9
+ Organize the developer's game idea into a rough task dependency graph that can start development, and progressively fill in task details as the project advances. Plan the next step based on currently confirmed information, let the corresponding Skill take over the concrete work, and return its results to the task graph.
10
+
11
+ The core output of this Skill is a continuously updated game development task list. The initial list expresses the main work and necessary dependencies; later lists expand according to actual decisions and delivered results.
12
+
13
+ ## Core Principles
14
+ 1. The developer decides the game direction and concrete details, including gameplay direction, art style, UI style, and key parameters.
15
+ 2. The initial plan expresses only main goals, milestones, key decisions, and necessary dependencies, keeping tasks that have not entered execution at a coarse granularity.
16
+ 3. Create tasks and dependencies only from already confirmed information so the plan can start executing immediately.
17
+ 4. Use stable and unique task IDs to identify each task node.
18
+ 5. Refine the corresponding branch when a task is about to be executed, dependencies have been satisfied, or new delivery results appear.
19
+ 6. When refining tasks, keep the original task ID as a milestone, add concrete work using new task IDs, and update the milestone's prerequisites.
20
+ 7. Keep the core Demo as an early task node; within the same task, advance image generation and code construction in parallel, provide SVG fallbacks for all images, and show it to the developer as soon as the code can run.
21
+ 8. Hand concrete design and implementation to the corresponding Skill, and update the design document, task status, and dependencies based on its delivered results.
22
+
23
+ ## Progressive Planning
24
+
25
+ ### Establish The Initial Task Skeleton
26
+
27
+ Read the developer's game idea, existing design document, and current project state. Confirm a small amount of key information that affects the overall direction, then create a rough task list containing the main decisions, core Demo, later main work, and final acceptance.
28
+
29
+ An initial task may represent a complete milestone. Task names should let the developer understand what needs to be completed, and tasks should connect only to direct dependencies that are already clear.
30
+
31
+ ### Refine The Current Branch
32
+
33
+ When a task becomes the next piece of work, judge whether it needs to be split based on the outputs of its prerequisite tasks. Tasks that can be directly handed to the corresponding Skill remain unchanged; tasks that need multiple independent results are expanded using new task IDs.
34
+
35
+ After expansion, keep the original task as a milestone and make it depend on the newly added concrete tasks. Other branches that have not entered execution remain coarse-grained.
36
+
37
+ ### Update The Plan Based On Results
38
+
39
+ After the developer makes a decision or another Skill returns delivered results:
40
+
41
+ 1. Update the corresponding task status;
42
+ 2. Add new tasks made clear by the result;
43
+ 3. Update dependencies that are directly affected;
44
+ 4. Select the next task whose dependencies have already been satisfied;
45
+ 5. Continue refining the corresponding branch before entering that task.
46
+
47
+ ## Game Development Points
48
+
49
+ ### Clarify Developer Requirements
50
+ First, the Agent should accurately understand the game the developer wants to create. This stage focuses on the game's overall direction and core gameplay; concrete details are unfolded gradually in later planning. When the developer's description is relatively vague, ask follow-up questions about key information that affects the overall direction.
51
+
52
+ ### Every Game Starts With A Demo
53
+ Treat building the Demo as the first main stage of the game plan. Keep the Demo minimal, implementing only the complete flow, project structure, and system architecture required to validate the core gameplay. Code safety and first-delivery success have higher priority than feature count, visual completeness, and extensibility design.
54
+
55
+ Usually only one of the Demo and game concept art is delivered; both are used to let the developer quickly see the game effect. After Demo development begins, the playable Demo carries the effect presentation, and the Demo plan does not include a game concept art drawing task; add a concept art task only when the developer explicitly needs to confirm the art direction separately.
56
+
57
+ The task list uses one "Create a playable Demo" node to uniformly carry core-loop confirmation, minimum playable system, project structure, code construction, image generation, SVG fallbacks, asset integration, and browser acceptance.
58
+
59
+ When executing the Demo task, prioritize starting generation for the required image assets, and complete project and code construction at the same time. Prepare a corresponding SVG fallback image for each image asset and connect it into the game through a unified asset interface. Replace them one by one after generated images return; images that have not finished yet continue using SVG and do not affect core gameplay operation.
60
+
61
+ After the code build is complete and the core loop can run, immediately start a static service and open the game webpage for developer acceptance. Remaining images continue to be generated and integrated after the first presentation; image-generation progress does not delay delivery of the playable Demo. Demo acceptance is completed by the developer in the browser, and no Agent-side automated test task is arranged.
62
+
63
+ ### Continuously Maintain The Overall Game Design Document
64
+ As the core game loop and core game systems gradually become clear, the Agent and developer continuously refine the complete play path. Use `/project.md` to record gameplay, the core loop, game systems, and their details in detail.
65
+
66
+ Whenever gameplay is adjusted, update `/project.md` at the same time. All changes to gameplay direction should be discussed with the developer, and the developer makes the final decision.
67
+
68
+ ### Keep Code Modular, Functional, And Parameterized
69
+ While building the Demo and later optimizing gameplay, split different game systems into independent code modules, and reuse common functions and logic for similar systems. Keep code paths valid, structure clear, and maintenance easy, improving the project's usability and robustness.
70
+
71
+ To make it easy for the developer to fully take over later game development, parameterize all configuration and centralize variables in locations the developer can easily find and modify. When image assets are involved, establish a unified SVG fallback and asset-loading flow for each asset, and connect generated images within the same Demo production process.
72
+
73
+ ### Art And Game Code Can Advance In Parallel
74
+ The developer can advance art and code work in two separate conversations. Art creation starts with concept art and an art setting collection, used to unify and control the game's overall art style.
75
+
76
+ First, create concept art that represents the direction of the final game product based on information provided by the developer. Then create corresponding setting images for each type of element in the game systems, uniformly using pure white background three-view images.
77
+
78
+ Continuously adjust concept art and the setting collection based on developer feedback. After the art direction is complete and confirmed, generate the in-game asset images needed according to the corresponding concept art and setting images.
79
+
80
+ ### Split Complex Tasks Into Four Types Of Subtasks
81
+ Any complex task can be split into the following four types of subtasks, and each type can contain multiple concrete tasks:
82
+
83
+ 1. Generation task: The Agent is responsible for generating the images, code, models, and text needed by the game.
84
+ 2. Automation task: The Agent is responsible for automated processing of assets and text, such as cutout, formatting, and Photoshop operations.
85
+ 3. Decision task: The developer is responsible for judgments and choices about the game development direction.
86
+ 4. Detail adjustment task: The developer is responsible for determining concrete in-game parameters, including the spatial positions of game elements, game system parameters, and in-game colors.
87
+
88
+ ## Special Requirements For evomeme Platform Game Development
89
+ When the target platform is evomeme, the initial plan may first establish a platform adaptation milestone. After entering that branch, split the following requirements into task nodes and establish dependencies:
90
+
91
+ 1. Create a mobile portrait, touch-first web game task.
92
+ 2. Create an evomeme cloud upload task for binary assets such as images, audio, videos, fonts, and models.
93
+ 3. Create a `public/config.json` resource configuration task, dependent on asset links returned by the cloud upload task.
94
+ 4. Create a production build task, using `npm run build` to output the final webpage to `dist/`, and dependent on game functionality and resource configuration tasks.
95
+ 5. Create a `dist/` build output inspection task, making it contain only the text build outputs needed for webpage runtime, and dependent on the production build task.
96
+ 6. Create a mobile portrait, touch interaction, and remote asset loading validation task, dependent on the production build task.
97
+
98
+ ## Output
99
+ Output a flat task dependency list in Markdown. Keep the initial list rough and include only the main tasks currently needed; as work advances, add refined tasks in the same list. All task nodes are arranged directly under the title. Each task uses a stable and unique task ID and references prerequisites by task ID.
100
+
101
+ ```markdown
102
+ # Game Development Task List
103
+
104
+ - [ ] T001 [Decision Task - Developer] <task name>
105
+ - [ ] T002 [Generation Task - Agent] <task name> (depends on: T001)
106
+ - [ ] T003 [Automation Task - Agent] <task name> (depends on: T001)
107
+ - [ ] T004 [Detail Adjustment Task - Developer] <task name> (depends on: T002, T003)
108
+ - [x] T005 [Generation Task - Agent] <completed task name>
109
+ ```
110
+
111
+ Task types use "Generation Task, Automation Task, Decision Task, Detail Adjustment Task". Use `[ ]` for incomplete and `[x]` for complete. Task IDs increase in creation order and remain stable. Initial tasks may represent larger milestones; when refining, keep the original number and assign new numbers to new tasks. When direct dependencies exist, reference the corresponding task IDs at the end of the task, and keep the task relationship as a directed acyclic graph.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Game Maker"
3
+ short_description: "Organize a game idea into development tasks and dependencies that can be progressively refined and continuously maintained"
4
+ default_prompt: "Please use $game-maker to create a rough development task list from my game idea, and progressively supplement and update it as development proceeds."
@@ -0,0 +1,123 @@
1
+ ---
2
+ name: game-perfect-pixel
3
+ description: Use evomeme_perfect_pixel to organize an existing pixel-style image into a crisp pixel grid, detecting or specifying source cells, sampling each cell and exporting one PNG at an integer scale. Use for pixel-style assets with uneven grids or blurred edges after generation or enlargement, and explicitly requested pixelation. Explains processing, outputs, logical pixels, grid size, color sampling, alpha thresholds and nearest-neighbor export. Not for new content generation, splitting or automatic cutout.
4
+ ---
5
+
6
+ # Perfect Pixel
7
+
8
+ Use `evomeme_perfect_pixel` to organize an existing image's pixel grid. Inspect recognizable source blocks and any translucent effects before choosing automatic/manual grid and alpha settings. The tool name does not guarantee recovery of the original pixel artwork.
9
+
10
+ ## What it does and produces
11
+
12
+ One call runs locally:
13
+
14
+ 1. Read an existing workspace image and decode its color and alpha pixels.
15
+ 2. By default, analyze repeated horizontal/vertical edges to estimate a grid and refine its boundaries. Manual mode divides regions from the top-left using `pixel_size`.
16
+ 3. Sample one color and alpha per region to create a low-resolution **logical pixel grid**.
17
+ 4. Enlarge by integer `export_scale` with nearest-neighbor sampling, save **one new PNG** into `assets/`, preserve the source and register the task.
18
+
19
+ No AI calls, automatic uploads, multiple split files, new characters, scenes or animation. The intermediate low-resolution grid is not saved separately; set `export_scale=1` to obtain it. The output name derives from the source name with a `_perfect-pixel` marker; use the actual returned path.
20
+
21
+ MCP and canvas submissions both use the `perfect_pixel` task to call `processPerfectPixel` in `image/perfectPixel.ts`, sharing decoding, grid detection, sampling and PNG encoding. The algorithm runs in a local Node background thread, without browser Workers. Canvas previews use the same processing pipeline and return only a temporary preview; confirmation processes the current parameters again and saves the asset. The task layer resolves paths, saves results and records tasks. No MCP-to-MCP calls.
22
+
23
+ ## When to use it
24
+
25
+ | Need | Choice |
26
+ | --- | --- |
27
+ | Smoothed enlargement has softened pixel-style block edges, but a repeated grid remains visible | Try automatic detection and inspect the actual result and detected dimensions. |
28
+ | Known source blocks, such as 8×8 regions per logical pixel | Disable automatic detection and set the actual `pixel_size`. |
29
+ | Automatic detection fails, flat areas dominate or different grids conflict | Inspect the source and choose a manual grid. Failure is not completion, and not every image has an original grid to recover. |
30
+ | Coarse pixelation of an ordinary image | Manual mode can do this, losing detail; it is not equivalent to artist-redrawn pixel art. |
31
+ | Only enlarge already crisp native pixel art proportionally | Prefer the project's existing nearest-neighbor resizing. This tool resamples, with a minimum manual source cell of 2; it is not a lossless 1×1 pixel enlarger. |
32
+ | Separate multiple assets in an atlas | Use the [image splitting skill](../game-image-splitter/SKILL.md). This tool always outputs a single image. |
33
+ | Remove white, a key color or a complete background | Use the [image and background processing skill](../game-asset-image-generator/SKILL.md). This tool processes existing alpha, not background identification. |
34
+
35
+ Best suited to relatively consistent pixel blocks. Rotated grids, mixed-resolution atlases, fine text, photographs and broad soft gradients are not guaranteed to be detected correctly or retain detail. Inspect according to the actual purpose rather than promising lossless repair.
36
+
37
+ ## Parameters and terminology
38
+
39
+ | Parameter | Meaning, default and range |
40
+ | --- | --- |
41
+ | `id` | Required workspace image asset ID, e.g. `assets/hero.png`, or a previous tool's `asset_id`. No URL, absolute file path or Base64. |
42
+ | `workspace_dir` | Optional absolute workspace root; set explicitly when possible. Defaults to the MCP working directory. Source must be inside that workspace's `assets/`. |
43
+ | `auto_grid` | Default `true`: estimate the grid. Set `false` for manual `pixel_size`. Detection failure reports an error without silently falling back to manual settings. |
44
+ | `pixel_size` | Default 8, integer 2–256; controls only manual grid mode. Side length of a source region per logical pixel, not the exported block size or final image dimensions. |
45
+ | `sample_method` | Default `median`; also `majority` or `center`. Chooses the color per cell, as described below. |
46
+ | `export_scale` | Default 4, integer 1–16. Output block side length per logical pixel; 4 makes each cell a 4×4 block of output pixels. |
47
+ | `alpha_mode` | Default `hard`, alternatively `preserve`; determines per-cell alpha. |
48
+ | `alpha_threshold` | Default 128, integer 0–255. Only `hard` uses it to compare average cell opacity. |
49
+
50
+ - **Logical pixel / grid**: The low-resolution sampled array, with one logical pixel per region. `grid_width × grid_height` counts its cells, not source image dimensions or image-splitting rows and columns.
51
+ - **Source cell**: Region of the source contributing one logical pixel. Manual mode starts top-left and uses `pixel_size`, including partial edge regions. Automatic mode can refine boundaries; returned `pixel_size_x/y` are average source-region sizes, possibly fractional, not identical exact crop boxes for every cell.
52
+ - **Nearest-neighbor**: Enlargement copies logical pixel colors without interpolated color transitions. Integer export scales preserve distinct pixel blocks.
53
+ - **Alpha / opacity**: 0 is transparent, 255 opaque and intermediate values translucent. White or painted checkerboards are not actual transparency. `alpha_threshold` does not identify backgrounds by RGB color.
54
+ - **Confidence**: An internal score from 0 to 1 for evidence of a repeated grid. It is not a reconstruction accuracy percentage or an art-quality guarantee. Manual mode omits it.
55
+
56
+ Color sampling:
57
+
58
+ | Value | Actual behavior and selection guidance |
59
+ | --- | --- |
60
+ | `median` | Takes the alpha-weighted median separately for red, green and blue, reducing some color noise. A useful default; not a median of complete pixel samples, so resulting colors may not occur in the original. |
61
+ | `majority` | Splits visible color samples into two groups and takes the representative color of the group with greater total weight. Emphasizes dominant color regions; it is not exact color-frequency voting and does not limit the whole image to two colors. |
62
+ | `center` | Takes the visible center pixel color, falling back to an alpha-weighted mean of visible samples when the center is nearly transparent. Useful for a known grid with representative cell centers. Alpha still follows the selected alpha mode. |
63
+
64
+ Alpha modes:
65
+
66
+ - `hard`: Output 255 when average cell opacity reaches the threshold, otherwise 0. Cells without visible color samples remain transparent. Suits hard-edged sprites; raising the threshold may lose thin edges and small details, while lowering it can thicken edges.
67
+ - `preserve`: Uses the median sampled cell alpha, allowing partial transparency. It does not preserve original alpha pixel by pixel; narrow soft edges, smoke and shadows can still change. `alpha_threshold` does not control this mode.
68
+
69
+ There are no `prompt`, `model`, target dimensions, palette-size, color-key or custom grid-offset parameters. All color methods may change details and colors; palette preservation is not guaranteed.
70
+
71
+ ## Invocation and size calculation
72
+
73
+ To detect an existing pixel-style character's grid and export hard-edged artwork, call `evomeme_perfect_pixel`:
74
+
75
+ ```json
76
+ {
77
+ "workspace_dir": "D:/my-game",
78
+ "id": "assets/hero.png",
79
+ "auto_grid": true,
80
+ "sample_method": "median",
81
+ "export_scale": 4,
82
+ "alpha_mode": "hard",
83
+ "alpha_threshold": 128
84
+ }
85
+ ```
86
+
87
+ For confirmed 8×8 source blocks with partial transparency:
88
+
89
+ ```json
90
+ {
91
+ "workspace_dir": "D:/my-game",
92
+ "id": "assets/effect.png",
93
+ "auto_grid": false,
94
+ "pixel_size": 8,
95
+ "sample_method": "majority",
96
+ "export_scale": 4,
97
+ "alpha_mode": "preserve"
98
+ }
99
+ ```
100
+
101
+ Output dimensions = **logical grid dimensions × export scale**. A 512×384 source with manual `pixel_size=8` becomes a 64×48 logical grid. `export_scale=4` outputs **256×192**, not 2048×1536. With non-divisible dimensions, manual logical sizes are `ceil(source width/pixel_size)` and `ceil(source height/pixel_size)`; each partial edge cell still becomes a complete output block.
102
+
103
+ Save limits match canvas: each logical grid dimension is at most 2048; each output dimension is at most 32768. For an oversized manual grid, increase `pixel_size` or use a smaller source. Lowering `export_scale` reduces final image size but not logical cell count.
104
+
105
+ ## Result fields and use
106
+
107
+ MCP returns text metadata, without embedded image bytes or Base64:
108
+
109
+ | Field | Actual meaning |
110
+ | --- | --- |
111
+ | `asset_id`, `local_path`, `mime_type` | New output's workspace ID, absolute local path and `image/png`. |
112
+ | `source_id`, `operation_id`, `status` | Original image ID, local operation ID and success status. No remote AI `job_id`. |
113
+ | `width`, `height` | Actual final PNG dimensions. |
114
+ | `grid_width`, `grid_height` | Sampled logical grid dimensions. |
115
+ | `pixel_size_x`, `pixel_size_y` | Actual source-region sizes, potentially fractional in automatic mode. |
116
+ | `auto_grid`, `pixel_size`, `sample_method`, `export_scale`, `alpha_mode`, `alpha_threshold` | Actual request settings. `pixel_size` may still appear in automatic mode and `alpha_threshold` in preserve mode, but they do not control the inactive branches. |
117
+ | `confidence` | Grid-detection score returned only in automatic mode. |
118
+
119
+ Compare source and output for outlines, colors, details, transparent edges and aspect ratio. In automatic mode, check whether repeated content was mistaken for a grid. Read a failure's specific error before choosing manual size from the actual source; do not blindly repeat identical automatic requests.
120
+
121
+ Use the result as a normal PNG texture or sprite with nearest-neighbor/point filtering and integer display scales so runtime smoothing does not blur the blocks again. Resolution may change, so check display size, pivots, atlas coordinates and colliders when replacing artwork. Use `game-image-splitter` if an atlas must be divided; Perfect Pixel does not maintain atlas coordinates for you.
122
+
123
+ The final file is local only. Upload its `local_path` through `evomeme_upload_game_asset` when a public URL is needed; do not substitute the source image URL for the processed result.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "Perfect Pixel"
3
+ short_description: "Restore pixel grids with sampling, alpha and export guidance"
4
+ default_prompt: "Use $game-perfect-pixel to inspect this pixel-style image, choose grid and alpha settings, and export a crisp PNG with its actual dimensions."
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: game-scroll-generator
3
+ description: Generate, edit and optimize horizontal scrolling-map image resources, including backgrounds, optional midground and foreground layers, per-layer left/right seam repair and transparent overlays. Always use this skill for scrolling maps, horizontally looping backgrounds, parallax layers or seam repair of existing scrolling images. Explains both MCP workflows, parameters, output files and scrolling, parallax, color-key and seam-repair terminology.
4
+ ---
5
+
6
+ # Scrolling Map Resource Generation and Editing
7
+
8
+ Always use this skill when generating or editing scrolling maps, horizontally looping backgrounds or parallax layers. It produces scene image resources. Scrolling speed, direction, layer placement, collision and level data belong to the game project or canvas preview.
9
+
10
+ | Tool | Actual work and outputs | When to use |
11
+ | --- | --- | --- |
12
+ | `evomeme_generate_scroll_image` (Scrolling Scene Generation) | Always generates a background, optionally a midground and foreground; each requests 3024×1296. Each layer can receive left/right seam repair, and overlay layers can receive automatic color key processing. Produces 1–3 final layer files and retains generated, repaired and keyed stage files. | Create a horizontal scene from text or references, or a consistent set of layers for parallax scrolling. |
13
+ | `evomeme_eliminate_scroll_background_seam` (Scrolling Map Seam Elimination) | Runs one AI left/right seam repair on an existing 3024×1296 image, saves and uploads one new same-size PNG, and preserves the source. | An existing background, midground or foreground needs better horizontal looping continuity. |
14
+
15
+ For square tiles, four-edge tiling and terrain transition atlases, use [Tilemap Resource Generation and Editing](../game-tile-generator/SKILL.md). For ordinary illustrations and scene images, use [Game Image Generation and Processing](../game-asset-image-generator/SKILL.md). This workflow generates separate layers; it does not semantically decompose an existing flattened image.
16
+
17
+ ## Terms and Scope
18
+
19
+ - **Scrolling image / horizontally looping background**: A wide scene that moves horizontally. Repeating copies are placed side by side so content leaving one end can continue at the other. This tool requests a fixed width of 3024 and height of 1296 pixels, not an arbitrary-length map. It does not make top and bottom edges repeatable.
20
+ - **Background, midground and foreground**: The complete distant scene, separate middle-distance scenery and scenery closest to the camera. They are independent images on equally sized canvases, stacked through transparent empty areas, not three panels packed into one image.
21
+ - **Parallax scrolling**: Moving layers at different speeds to imply depth, usually slower for distant layers and faster for near layers. The tool supplies images, not scrolling code or an animated video.
22
+ - **Native transparency / alpha channel**: The model directly outputs transparent areas. Alpha records each pixel's opacity: zero means transparent and the maximum means fully opaque. Transparent areas reveal lower layers; they are not painted white. This scroll workflow only allows `asset-max` to request native transparency.
23
+ - **Color key / background-color removal**: Generate scenery on a solid background, then make pixels similar to that color transparent. This workflow uses strength 80, Oklab perceptual color space (color distances approximate human perception), and soft edges. It processes matching colors throughout the image, not only areas connected to its edges, and disables despill. **Despill** reduces residual key-color tint around subject edges. Matching subject colors may also disappear, so choose a key color absent from the subject.
24
+ - **Seam repair / circular offset / inpainting**: Circularly shift by half the width, 1512 pixels, along X; pixels leaving one edge re-enter at the other. Y is unchanged. The original left/right seam moves to the center, where a vertical strip is made transparent for AI completion, followed by reversing the offset. The repair strip is about 12.5% of the width, 378 pixels. This transparent strip marks the reference's repair area; it does not request a transparent final background.
25
+ - **Scroll repair extent**: The current implementation retains the entire AI output and reverses its offset. Although the prompt asks to preserve other areas, there is no local composition that replaces only the repair strip as in the tile tool. Other scenery may change. Inspect both the complete image and its left/right seam afterward.
26
+
27
+ ## Workspace and References
28
+
29
+ Explicitly pass an absolute `workspace_dir`, such as `D:/my-game`; otherwise the MCP process working directory is used. Files are saved under that workspace's `assets/`.
30
+
31
+ `reference_ids` and `id` are paths relative to the workspace root, such as `assets/references/forest.png`, not absolute paths, URLs or Base64. Locate actual user attachments or external local files and copy them into `assets/` using non-overwriting names. Download an accessible image URL first when that is the only source. If the actual file is unavailable, identify the missing reference instead of inventing an ID. Reuse images already in the workspace and returned `asset_id` values.
32
+
33
+ ## Generate a Scrolling Scene
34
+
35
+ | Parameter | Default / meaning |
36
+ | --- | --- |
37
+ | `prompt` | Required nonempty background description: theme, style, palette, lighting, horizontal composition and gameplay negative space. |
38
+ | `model` | `asset-pro`; also `asset-max` or `asset-lite`. All three support the 3024×1296 request used here. |
39
+ | `reference_ids` | `[]`; up to 10 for Pro, 14 for Max/Lite in this tool. References apply only to background generation. |
40
+ | `seam_elimination_enabled` | `false`; add one left/right seam repair to the background. |
41
+ | `midground_enabled` / `foreground_enabled` | Both `false`; independently enable the middle or near layer. |
42
+ | `midground_prompt` / `foreground_prompt` | Required and nonempty when the corresponding layer is enabled. Describe its scenery, placement, density and occlusion instead of repeating the entire background. |
43
+ | `midground_transparent_background` / `foreground_transparent_background` | Both `false`: generate on solid color, then automatically color-key. `true` requires Max, requests native transparency and skips color key processing. |
44
+ | `midground_background_color` / `foreground_background_color` | Both `#ff00ff`; the solid background/key color for that layer. Accepts `#RGB` or `#RRGGBB`; native transparency does not use this solid background. |
45
+ | `midground_seam_elimination_enabled` / `foreground_seam_elimination_enabled` | Both `false`; add one left/right seam repair to that layer. |
46
+ | `workspace_dir` | Workspace root; explicitly specify it. |
47
+
48
+ Do not pass `size`, scrolling speed or direction. Defaults generate only the background and add no seam repair. Enable repair for the relevant layers when looping is required; successful generation alone is not visual proof of seamlessness.
49
+
50
+ Execution order: generate background → optionally repair background seams → use the final background as reference while processing midground and foreground in parallel. Within each enabled overlay: generate → optionally repair → automatically color-key unless native transparency was requested. User references are not passed directly to overlays, and the overlays do not reference each other. MCP and canvas call the same existing `executeScrollImage` task function, reusing existing image functions without chaining MCP calls. Do not change image implementations or built-in prompts merely to port a tool.
51
+
52
+ Normal AI request count = enabled layers, including background, plus layers with seam repair, for a total of 1–6, excluding server retries. Color key is local and adds no AI request. With all three layers, all repairs and color key on both overlays, eight stage files are saved and three are the final layers. Enabled non-native-transparent overlays always receive color key processing; there is no separate switch to disable it.
53
+
54
+ ```json
55
+ {
56
+ "workspace_dir": "D:/my-game",
57
+ "prompt": "Side-scrolling forest level, distant blue-green mountains and mist, soft consistent light, hand-painted style, clear central gameplay area, no characters or text",
58
+ "model": "asset-pro",
59
+ "seam_elimination_enabled": true,
60
+ "midground_enabled": true,
61
+ "midground_prompt": "Middle-distance tree trunks and sparse canopies, open central passage, match the background palette and lighting",
62
+ "midground_background_color": "#ff00ff",
63
+ "midground_seam_elimination_enabled": true,
64
+ "foreground_enabled": true,
65
+ "foreground_prompt": "A few close grass blades and rocks along the bottom, broad empty upper area, keep central gameplay unobstructed",
66
+ "foreground_background_color": "#ff00ff",
67
+ "foreground_seam_elimination_enabled": true
68
+ }
69
+ ```
70
+
71
+ Read the actual base-image format from `mime_type`; repaired and keyed outputs are PNG. Final keyed transparent PNGs remain local and are not automatically uploaded. When a remote URL is needed, pass that layer's final `local_path` to `evomeme_upload_game_asset`. Never substitute its `base` or `seam` cloud URL for the final keyed image.
72
+
73
+ ## Repair an Existing Scrolling Map
74
+
75
+ | Parameter | Default / meaning |
76
+ | --- | --- |
77
+ | `id` | Required workspace ID of an existing 3024×1296 image. Dimensions are read from the file; no `size` parameter or automatic resizing. |
78
+ | `model` | `asset-pro`; Max or Lite also supported. Requesting transparency requires Max. |
79
+ | `prompt` | Optional continuity, style and preservation requirements. |
80
+ | `has_background` | `false`: no constraint on empty-area background. This does not select the scene's background layer. Set true to constrain a solid or transparent background. |
81
+ | `transparent_background` | `false`; only applies when `has_background=true`. True requests transparency and requires Max; false retains the solid color below. |
82
+ | `background_color` | `#ff00ff`; constrains the solid background only when `has_background=true` and `transparent_background=false`. Accepts `#RGB` or `#RRGGBB`. |
83
+ | `workspace_dir` | Workspace root; explicitly specify it. |
84
+
85
+ For an ordinary opaque background, provide `id`, workspace and an optional prompt. For an existing transparent overlay, set `has_background=true`, `transparent_background=true` and `model=asset-max`. For a solid-color overlay, set `has_background=true` and the actual background color. If transparency is needed afterward, pass the repaired ID to `evomeme_color_key`; standalone repair does not automatically remove the color.
86
+
87
+ ```json
88
+ {
89
+ "id": "assets/foreground-transparent.png",
90
+ "workspace_dir": "D:/my-game",
91
+ "model": "asset-max",
92
+ "prompt": "Continue grass and rocks naturally across the left/right boundary, retaining empty space and the original style",
93
+ "has_background": true,
94
+ "transparent_background": true
95
+ }
96
+ ```
97
+
98
+ Order: horizontal offset → upload reference with transparent central strip → one AI completion → reverse the offset of the entire output → save and upload the final PNG. Produces one new image and preserves the source. Temporary references and raw AI completion files are not deliverables. Final `asset_url` / `tos_url` refer to the restored PNG. Transparency settings constrain the generation; they do not add cutout processing.
99
+
100
+ ## Results, Integration and Failures
101
+
102
+ MCP returns text metadata, not image bytes or Base64. `operation_id` identifies a local step and `job_id` a remote AI request; color key has no remote AI request ID. `status=SUCCEEDED` means processing finished, not visual approval. Standalone repair also returns `task_id`; scene generation reuses its existing result and does not promise that field.
103
+
104
+ Scene generation returns JSON text for `background` and optional `midground` / `foreground`. Each layer's `id` / `asset_id`, `local_path`, `mime_type` and applicable cloud URLs describe its final file. `base` is the original generated image and `color_key` the optional keyed result. Top-level metadata describes the final background, not a flattened composition. Existing scene results have no `outputs`, separate `seam` or `ai_generation_count` fields and do not probe actual dimensions. Inspect workspace task records for intermediate files and processing details.
105
+
106
+ Standalone repair lists only the new PNG in `outputs`, with `source_id`, model, size and background-constraint fields. Both workflows provide `transform` fields for `offset_x`, `offset_y`, `mask_width` and `offset_restored`. Scene repair's `feather=0` indicates no local feathered composition of the repair strip; this is separate from color-key edge softening.
107
+
108
+ Stack final files background → midground → foreground, then configure horizontal repetition and layer speeds in the engine. Inspect side-by-side copies for horizon and object continuity, as well as transparent areas, key-color remnants, accidentally removed subject pixels and gameplay occlusion. The existing canvas scroll preview can show speed and direction; these MCPs do not generate preview pages.
109
+
110
+ On failure, inspect `isError: true` details and retain source files. Completed earlier stages and successful sibling layers remain saved with task records; a failed branch waits for its sibling to settle before the operation reports failure. Locate completed assets through workspace task records or the canvas before deciding whether to run standalone repair or color key. If client waiting was interrupted, check the original task before resubmitting the whole scene to avoid duplicate generation.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "Scrolling Map Resource Generation and Editing"
3
+ short_description: "Generate scrolling layers and repair horizontal seams"
4
+ default_prompt: "Use $game-scroll-generator to generate, edit or optimize scrolling-map images, create background, midground and foreground layers, or repair an existing image's left/right seam."
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: game-test
3
+ description: After game development ends, perform smoke testing and gameplay QA for a 2D or 3D browser game, verifying that the game can start, display, and complete the core gameplay loop, while also checking main input, state transitions, failure/retry, and desktop and mobile behavior. Use when a just-completed game or Demo needs final self-checking, basic playability confirmation, or gameplay issue recording.
4
+ ---
5
+
6
+ # Game Test
7
+
8
+ ## Goal
9
+
10
+ After game development ends, perform one smoke test and gameplay QA pass to confirm from the player's perspective that the game can enter, be controlled, progress, end, and restart normally, and record issues that block the basic experience.
11
+
12
+ ## Smoke Testing And Gameplay QA
13
+
14
+ Before testing, read the project's startup method, target devices, input methods, core gameplay loop, and win/loss conditions. Load [`references/checklists/playtest-qa.md`](references/checklists/playtest-qa.md) as the testing reference.
15
+
16
+ ### Workflow
17
+
18
+ 1. Install dependencies as needed by the project and run the existing build or type-check command.
19
+ 2. Start the development server or preview server and open the correct game page.
20
+ 3. Capture browser console, page, and network errors.
21
+ 4. Confirm the game screen displays normally, and the Canvas has a valid size and visible content.
22
+ 5. Starting from a clean load, actually play the core loop for at least 2 minutes.
23
+ 6. Test movement, aiming, jumping, attacking, dragging, or the primary inputs corresponding to the gameplay.
24
+ 7. Verify objective progress, scoring, collection, collisions, and other core state changes.
25
+ 8. Trigger actually existing paths such as success, failure, pause, resume, and restart.
26
+ 9. Rapidly switch inputs and test game boundaries, repeated actions, and state recovery after restart.
27
+ 10. Check visuals, HUD, text, safe areas, and touch regions under target desktop and mobile viewports.
28
+ 11. When audio is part of the core experience, verify first-interaction unlock, main sound effects, background music, pause behavior, and restart behavior.
29
+ 12. Record test results and discovered issues.
30
+
31
+ ### 2D Game Focus
32
+
33
+ - Sprites, tiles, and platform positions are clear;
34
+ - Animation, hit reaction, and state feedback are readable;
35
+ - HUD and the core gameplay area remain clear;
36
+ - Input results are consistent with game state.
37
+
38
+ ### 3D Game Focus
39
+
40
+ - Scene, camera, materials, and lighting display normally;
41
+ - Characters, environment, and objectives have clear silhouettes and depth relationships;
42
+ - Camera controls, collision, and restart behavior are stable;
43
+ - Models, textures, and animations can load and run during actual play.
44
+
45
+ ### Test Results
46
+
47
+ Report using a brief format:
48
+
49
+ ```markdown
50
+ # Smoke Testing And Gameplay QA
51
+
52
+ - **Result**: <Pass / Fail>
53
+ - **Runtime Environment**: <commands, page, and test viewports>
54
+ - **Verified Paths**: <core operations and gameplay loop>
55
+ - **Issues Found**: <none, or issue list>
56
+ ```
57
+
58
+ For each issue, describe what the player sees, reproduction steps, and the impact on gameplay.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "Game Test"
3
+ short_description: "Complete game smoke testing and gameplay acceptance from the player's perspective, recording issues that affect the experience"
4
+ default_prompt: "Please use $game-test to playtest this game, complete smoke testing and core gameplay acceptance, and record the issues found."
5
+
6
+ policy:
7
+ allow_implicit_invocation: true