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.
- package/README.md +2 -0
- package/dist/canvas-public/app.js +509 -5999
- package/dist/canvas-public/assets/presets/catalog.json +47 -0
- package/dist/canvas-public/assets/presets/tiles/A_01_CaoDi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_02_ShaMo.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_03_TianKong.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_04_ShuiBo.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_05_HaiMian.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_06_MuDiBan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_07_ShiZhuan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_08_AnRongYan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_09_QingTaiShi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_10_ShenHai.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_11_HuiYanShi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_12_HongTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_13_GengDi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_14_HuoShanYan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_15_NiTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_16_HuangSha.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_17_CongLin.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_18_ZiYanShi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_19_MoGuTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_20_HuaDian.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_21_HaiLang.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_22_GanTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_23_QingTaiShiBan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_24_XingKong.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_25_MoFaFuWen.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_26_ShiTuYeDi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_27_LanZhuan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_28_HongZhuan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_29_YueQiu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_30_JinShuGe.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_31_JinShuJingGai.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_32_ShuZiChuang.png +0 -0
- package/dist/canvas-public/canvas/actions.js +144 -0
- package/dist/canvas-public/canvas/camera.js +28 -0
- package/dist/canvas-public/canvas/chrome.js +14 -0
- package/dist/canvas-public/canvas/data.js +123 -0
- package/dist/canvas-public/canvas/dependencies.js +19 -0
- package/dist/canvas-public/canvas/interactions.js +544 -0
- package/dist/canvas-public/canvas/panel-resize.js +5 -0
- package/dist/canvas-public/canvas/renderer.js +297 -0
- package/dist/canvas-public/canvas/selection.js +62 -0
- package/dist/canvas-public/canvas/serialization.js +118 -0
- package/dist/canvas-public/canvas/sync.js +202 -0
- package/dist/canvas-public/core/api.js +32 -0
- package/dist/canvas-public/core/feature-registry.js +29 -0
- package/dist/canvas-public/core/feature-state.js +228 -0
- package/dist/canvas-public/core/layout.js +133 -0
- package/dist/canvas-public/core/operations.js +38 -0
- package/dist/canvas-public/core/project.js +203 -0
- package/dist/canvas-public/core/state.js +27 -0
- package/dist/canvas-public/dialogs/context-menu.js +118 -0
- package/dist/canvas-public/elements/base.js +100 -0
- package/dist/canvas-public/elements/connections.js +105 -0
- package/dist/canvas-public/elements/drag.js +53 -0
- package/dist/canvas-public/elements/image.js +259 -0
- package/dist/canvas-public/elements/loading-recovery.js +5 -0
- package/dist/canvas-public/elements/loading.js +21 -0
- package/dist/canvas-public/elements/map.js +64 -0
- package/dist/canvas-public/elements/registry.js +58 -0
- package/dist/canvas-public/elements/replacement.js +78 -0
- package/dist/canvas-public/elements/resize.js +210 -0
- package/dist/canvas-public/elements/task-pipeline.js +235 -0
- package/dist/canvas-public/elements/types.js +21 -0
- package/dist/canvas-public/elements/ui.js +14 -0
- package/dist/canvas-public/elements/video.js +64 -0
- package/dist/canvas-public/features/assets/local-assets.js +72 -0
- package/dist/canvas-public/features/assets/official-assets.js +539 -0
- package/dist/canvas-public/features/editing/canvas-size.js +532 -0
- package/dist/canvas-public/features/editing/color-key.js +471 -0
- package/dist/canvas-public/features/editing/cutout.js +20 -0
- package/dist/canvas-public/features/editing/interactive-image-editing.js +982 -0
- package/dist/canvas-public/features/editing/layer-decomposition.js +45 -0
- package/dist/canvas-public/features/editing/manual-split.js +115 -0
- package/dist/canvas-public/features/editing/perfect-pixel.js +299 -0
- package/dist/canvas-public/features/editing/scroll-preview.js +130 -0
- package/dist/canvas-public/features/editing/scroll-seam-elimination.js +71 -0
- package/dist/canvas-public/features/editing/seam-elimination.js +46 -0
- package/dist/canvas-public/features/editing/smart-split.js +49 -0
- package/dist/canvas-public/features/editing/source-preview.js +43 -0
- package/dist/canvas-public/features/editing/video-cycle.js +49 -0
- package/dist/canvas-public/features/editing/video-frames.js +35 -0
- package/dist/canvas-public/features/frame-editor/frame-editing.js +755 -0
- package/dist/canvas-public/features/frame-editor/frame-model.js +63 -0
- package/dist/canvas-public/features/frame-editor/playback.js +83 -0
- package/dist/canvas-public/features/frame-editor/preview.js +151 -0
- package/dist/canvas-public/features/generation/animation.js +272 -0
- package/dist/canvas-public/features/generation/asset-batch.js +102 -0
- package/dist/canvas-public/features/generation/direction.js +163 -0
- package/dist/canvas-public/features/generation/fields.js +73 -0
- package/dist/canvas-public/features/generation/game-ui.js +64 -0
- package/dist/canvas-public/features/generation/image.js +96 -0
- package/dist/canvas-public/features/generation/scroll-image.js +157 -0
- package/dist/canvas-public/features/generation/seamless-tile.js +52 -0
- package/dist/canvas-public/features/generation/tile-transition-atlas.js +79 -0
- package/dist/canvas-public/features/generation/video.js +105 -0
- package/dist/canvas-public/features/map/creation.js +73 -0
- package/dist/canvas-public/features/map/tile-map-editor.js +2520 -0
- package/dist/canvas-public/features/registry.js +59 -0
- package/dist/canvas-public/index.html +84 -259
- package/dist/canvas-public/inspector/controls.js +49 -0
- package/dist/canvas-public/inspector/frame-preview.js +11 -0
- package/dist/canvas-public/inspector/inspector.js +190 -0
- package/dist/canvas-public/inspector/media-inspector.js +517 -0
- package/dist/canvas-public/inspector/media-preview.js +56 -0
- package/dist/canvas-public/inspector/number-stepper.js +96 -0
- package/dist/canvas-public/inspector/resize.js +88 -0
- package/dist/canvas-public/inspector/scroll-preview.js +11 -0
- package/dist/canvas-public/inspector/ui-inspector.js +14 -0
- package/dist/canvas-public/language/en-US.js +1059 -0
- package/dist/canvas-public/language/index.js +91 -0
- package/dist/canvas-public/language/zh-CN.js +1059 -0
- package/dist/canvas-public/map/export.js +10 -0
- package/dist/canvas-public/map/inspector.js +8 -0
- package/dist/canvas-public/map/model.js +409 -0
- package/dist/canvas-public/map/tile-map-editor.js +2 -0
- package/dist/canvas-public/media/metadata.js +183 -0
- package/dist/canvas-public/media/support.js +183 -0
- package/dist/canvas-public/styles/base.css +49 -0
- package/dist/canvas-public/styles/canvas.css +127 -0
- package/dist/canvas-public/styles/controls.css +203 -0
- package/dist/canvas-public/styles/dialogs.css +521 -0
- package/dist/canvas-public/styles/feature-form.css +409 -0
- package/dist/canvas-public/styles/inspector.css +441 -0
- package/dist/canvas-public/styles/layout.css +344 -0
- package/dist/canvas-public/styles/map.css +11 -0
- package/dist/canvas-public/styles/nodes.css +636 -0
- package/dist/canvas-public/styles.css +9 -2247
- package/dist/canvas-public/ui/controls.js +222 -0
- package/dist/canvas-public/ui/elements.js +9 -0
- package/dist/canvas-public/ui/feature-controller.js +296 -0
- package/dist/canvas-public/ui/feature-form.js +402 -0
- package/dist/canvas-public/ui/settings.js +84 -0
- package/dist/canvas-public/ui/toolbar.js +55 -0
- package/dist/canvas-public/vendor/pixi-tilemap.js +126 -0
- package/dist/canvas-public/vendor/pixi.min.js +2340 -0
- package/dist/canvas-public/workers/color-key-worker.js +289 -0
- package/dist/image-workers/perfect-pixel/perfect-pixel-core.js +441 -0
- package/dist/image-workers/perfect-pixel/perfect-pixel-worker.cjs +10 -0
- package/dist/index.js +46710 -12400
- package/dist/skills/en-US/evomeme-canvas/SKILL.md +52 -0
- package/dist/skills/en-US/evomeme-canvas/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-cloud-fs/SKILL.md +203 -0
- package/dist/skills/en-US/evomeme-cloud-fs/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-cover/SKILL.md +131 -0
- package/dist/skills/en-US/evomeme-cover/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-game-maker/SKILL.md +288 -0
- package/dist/skills/en-US/evomeme-game-maker/agents/openai.yaml +4 -0
- package/dist/skills/en-US/evomeme-login/SKILL.md +97 -0
- package/dist/skills/en-US/evomeme-login/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-mcp/SKILL.md +71 -0
- package/dist/skills/en-US/evomeme-mcp/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-mcp/references/troubleshooting.md +55 -0
- package/dist/skills/en-US/evomeme-native-bridge-sdk/SKILL.md +286 -0
- package/dist/skills/en-US/evomeme-native-bridge-sdk/agents/openai.yaml +8 -0
- package/dist/skills/en-US/evomeme-tos-upload/SKILL.md +47 -0
- package/dist/skills/en-US/evomeme-tos-upload/agents/openai.yaml +5 -0
- package/dist/skills/en-US/evomeme-ui/SKILL.md +123 -0
- package/dist/skills/en-US/evomeme-ui/agents/openai.yaml +4 -0
- package/dist/skills/en-US/evomeme-ui/references/host-layout.md +69 -0
- package/dist/skills/en-US/game-art/SKILL.md +121 -0
- package/dist/skills/en-US/game-art/agents/openai.yaml +8 -0
- package/dist/skills/en-US/game-asset-align/SKILL.md +47 -0
- package/dist/skills/en-US/game-asset-align/agents/openai.yaml +8 -0
- package/dist/skills/en-US/game-asset-align/references/alignment-contract.md +61 -0
- package/dist/skills/en-US/game-asset-align/references/blender-scene-pipeline.md +35 -0
- package/dist/skills/en-US/game-asset-align/references/canonical-package.md +26 -0
- package/dist/skills/en-US/game-asset-align/references/engine-capabilities.md +14 -0
- package/dist/skills/en-US/game-asset-align/references/lightweight-review.md +34 -0
- package/dist/skills/en-US/game-asset-align/references/repair-policy.md +30 -0
- package/dist/skills/en-US/game-asset-align/references/tool-contract.md +69 -0
- package/dist/skills/en-US/game-asset-align/references/visual-review.md +26 -0
- package/dist/skills/en-US/game-asset-batch-generator/SKILL.md +117 -0
- package/dist/skills/en-US/game-asset-batch-generator/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-asset-image-generator/SKILL.md +86 -0
- package/dist/skills/en-US/game-asset-image-generator/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-asset-image-generator/references/background.md +34 -0
- package/dist/skills/en-US/game-asset-image-generator/references/static-game-assets.md +38 -0
- package/dist/skills/en-US/game-asset-mesh-generator/SKILL.md +35 -0
- package/dist/skills/en-US/game-asset-mesh-generator/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-asset-mesh-generator/references/animation-presets.md +313 -0
- package/dist/skills/en-US/game-asset-mesh-generator/references/generation-contracts.md +131 -0
- package/dist/skills/en-US/game-asset-mesh-generator/references/image-generator-workflows.md +65 -0
- package/dist/skills/en-US/game-asset-mesh-generator/references/postprocess-contracts.md +187 -0
- package/dist/skills/en-US/game-asset-mesh-generator/references/threejs-integration.md +113 -0
- package/dist/skills/en-US/game-asset-mesh-generator/references/tool-reference.md +67 -0
- package/dist/skills/en-US/game-audio/SKILL.md +121 -0
- package/dist/skills/en-US/game-audio/agents/openai.yaml +4 -0
- package/{skills → dist/skills/en-US}/game-audio/references/bgm-cdn.md +7 -11
- package/{skills → dist/skills/en-US}/game-audio/references/sfx-cdn.md +6 -4
- package/dist/skills/en-US/game-character-view-generator/SKILL.md +110 -0
- package/dist/skills/en-US/game-character-view-generator/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-demo/SKILL.md +103 -0
- package/dist/skills/en-US/game-demo/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-image-layer-decomposer/SKILL.md +99 -0
- package/dist/skills/en-US/game-image-layer-decomposer/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-image-splitter/SKILL.md +114 -0
- package/dist/skills/en-US/game-image-splitter/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-maker/SKILL.md +111 -0
- package/dist/skills/en-US/game-maker/agents/openai.yaml +4 -0
- package/dist/skills/en-US/game-perfect-pixel/SKILL.md +123 -0
- package/dist/skills/en-US/game-perfect-pixel/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-scroll-generator/SKILL.md +110 -0
- package/dist/skills/en-US/game-scroll-generator/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-test/SKILL.md +58 -0
- package/dist/skills/en-US/game-test/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-tile-generator/SKILL.md +152 -0
- package/dist/skills/en-US/game-tile-generator/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-ui/SKILL.md +177 -0
- package/dist/skills/en-US/game-ui/agents/openai.yaml +4 -0
- package/dist/skills/en-US/game-ui-generator/SKILL.md +82 -0
- package/dist/skills/en-US/game-ui-generator/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-ui-generator/references/component-patterns.md +65 -0
- package/dist/skills/en-US/game-ui-generator/references/runtime-integration.md +45 -0
- package/dist/skills/en-US/game-video-cycle/SKILL.md +98 -0
- package/dist/skills/en-US/game-video-cycle/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-video-generator/SKILL.md +78 -0
- package/dist/skills/en-US/game-video-generator/agents/openai.yaml +7 -0
- package/dist/skills/en-US/godot-3d-game/SKILL.md +41 -0
- package/dist/skills/en-US/godot-3d-game/agents/openai.yaml +8 -0
- package/dist/skills/en-US/godot-3d-game/references/alignment-gates.md +26 -0
- package/dist/skills/en-US/godot-3d-game/references/appearance-alignment.md +54 -0
- package/dist/skills/en-US/godot-3d-game/references/build-and-qa.md +22 -0
- package/dist/skills/en-US/godot-3d-game/references/canonical-asset-runtime.md +27 -0
- package/dist/skills/en-US/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
- package/dist/skills/en-US/godot-3d-game/references/physics-colliders.md +13 -0
- package/dist/skills/en-US/godot-3d-game/references/project-structure.md +22 -0
- package/dist/skills/en-US/godot-3d-game/references/skeleton-animation.md +16 -0
- package/dist/skills/en-US/phaser-2d-game/SKILL.md +127 -0
- package/dist/skills/en-US/phaser-2d-game/agents/openai.yaml +8 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-performance.md +64 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-physics.md +139 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-runtime.md +129 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-spritesheets.md +99 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-tilemaps.md +80 -0
- package/dist/skills/en-US/phaser-2d-game/references/file-structure.md +94 -0
- package/dist/skills/en-US/phaser-2d-graphics-builder/SKILL.md +68 -0
- package/dist/skills/en-US/phaser-2d-graphics-builder/agents/openai.yaml +7 -0
- package/dist/skills/en-US/threejs-3d-game/SKILL.md +117 -0
- package/dist/skills/en-US/threejs-3d-game/agents/openai.yaml +7 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-asset-pipeline.md +155 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-audio.md +70 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-input-camera.md +84 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-performance.md +96 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-physics.md +142 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-runtime.md +199 -0
- package/dist/skills/en-US/threejs-3d-game/references/file-structure.md +353 -0
- package/dist/skills/en-US/threejs-aaa-graphics-builder/SKILL.md +62 -0
- package/dist/skills/en-US/threejs-aaa-graphics-builder/agents/openai.yaml +7 -0
- package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/SKILL.md +33 -6
- package/{skills → dist/skills/zh-CN}/evomeme-cover/SKILL.md +7 -8
- package/{skills → dist/skills/zh-CN}/evomeme-game-maker/SKILL.md +91 -88
- package/{skills → dist/skills/zh-CN}/evomeme-login/SKILL.md +5 -0
- package/dist/skills/zh-CN/evomeme-mcp/SKILL.md +71 -0
- package/dist/skills/zh-CN/evomeme-mcp/agents/openai.yaml +7 -0
- package/dist/skills/zh-CN/evomeme-mcp/references/troubleshooting.md +55 -0
- package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/SKILL.md +6 -5
- package/dist/skills/zh-CN/evomeme-ui/SKILL.md +123 -0
- package/dist/skills/zh-CN/evomeme-ui/agents/openai.yaml +4 -0
- package/dist/skills/zh-CN/evomeme-ui/references/host-layout.md +69 -0
- package/dist/skills/zh-CN/game-asset-align/SKILL.md +47 -0
- package/dist/skills/zh-CN/game-asset-align/agents/openai.yaml +8 -0
- package/dist/skills/zh-CN/game-asset-align/references/alignment-contract.md +61 -0
- package/dist/skills/zh-CN/game-asset-align/references/blender-scene-pipeline.md +35 -0
- package/dist/skills/zh-CN/game-asset-align/references/canonical-package.md +26 -0
- package/dist/skills/zh-CN/game-asset-align/references/engine-capabilities.md +14 -0
- package/dist/skills/zh-CN/game-asset-align/references/lightweight-review.md +34 -0
- package/dist/skills/zh-CN/game-asset-align/references/repair-policy.md +30 -0
- package/dist/skills/zh-CN/game-asset-align/references/tool-contract.md +69 -0
- package/dist/skills/zh-CN/game-asset-align/references/visual-review.md +26 -0
- package/dist/skills/zh-CN/game-asset-batch-generator/SKILL.md +117 -0
- package/dist/skills/zh-CN/game-asset-batch-generator/agents/openai.yaml +7 -0
- package/dist/skills/zh-CN/game-asset-image-generator/SKILL.md +86 -0
- package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/background.md +3 -1
- package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/static-game-assets.md +2 -2
- package/dist/skills/zh-CN/game-asset-mesh-generator/SKILL.md +35 -0
- package/dist/skills/zh-CN/game-asset-mesh-generator/agents/openai.yaml +7 -0
- package/dist/skills/zh-CN/game-asset-mesh-generator/references/animation-presets.md +313 -0
- package/dist/skills/zh-CN/game-asset-mesh-generator/references/generation-contracts.md +131 -0
- package/dist/skills/zh-CN/game-asset-mesh-generator/references/image-generator-workflows.md +65 -0
- package/dist/skills/zh-CN/game-asset-mesh-generator/references/postprocess-contracts.md +187 -0
- package/dist/skills/zh-CN/game-asset-mesh-generator/references/threejs-integration.md +113 -0
- package/dist/skills/zh-CN/game-asset-mesh-generator/references/tool-reference.md +67 -0
- package/dist/skills/zh-CN/game-audio/SKILL.md +121 -0
- package/dist/skills/zh-CN/game-audio/agents/openai.yaml +4 -0
- package/dist/skills/zh-CN/game-audio/references/bgm-cdn.md +123 -0
- package/dist/skills/zh-CN/game-audio/references/sfx-cdn.md +79 -0
- package/dist/skills/zh-CN/game-character-view-generator/SKILL.md +110 -0
- package/dist/skills/zh-CN/game-character-view-generator/agents/openai.yaml +7 -0
- package/dist/skills/zh-CN/game-image-layer-decomposer/SKILL.md +99 -0
- package/dist/skills/zh-CN/game-image-layer-decomposer/agents/openai.yaml +7 -0
- package/dist/skills/zh-CN/game-image-splitter/SKILL.md +114 -0
- package/dist/skills/zh-CN/game-image-splitter/agents/openai.yaml +7 -0
- package/dist/skills/zh-CN/game-perfect-pixel/SKILL.md +123 -0
- package/dist/skills/zh-CN/game-perfect-pixel/agents/openai.yaml +7 -0
- package/dist/skills/zh-CN/game-scroll-generator/SKILL.md +110 -0
- package/dist/skills/zh-CN/game-scroll-generator/agents/openai.yaml +7 -0
- package/dist/skills/zh-CN/game-test/references/checklists/playtest-qa.md +12 -0
- package/dist/skills/zh-CN/game-tile-generator/SKILL.md +151 -0
- package/dist/skills/zh-CN/game-tile-generator/agents/openai.yaml +7 -0
- package/{skills → dist/skills/zh-CN}/game-ui/SKILL.md +9 -1
- package/dist/skills/zh-CN/game-ui/references/checklists/game-ui-quality.md +14 -0
- package/dist/skills/zh-CN/game-ui/references/checklists/hud-readability.md +12 -0
- package/dist/skills/zh-CN/game-ui/references/checklists/mobile-input.md +12 -0
- package/dist/skills/zh-CN/game-ui/references/checklists/responsive-ui-fit.md +12 -0
- package/dist/skills/zh-CN/game-ui/references/ui-patterns.md +140 -0
- package/dist/skills/zh-CN/game-ui/references/ui-prompt-templates.md +63 -0
- package/dist/skills/zh-CN/game-ui-generator/SKILL.md +82 -0
- package/dist/skills/zh-CN/game-ui-generator/agents/openai.yaml +7 -0
- package/dist/skills/zh-CN/game-ui-generator/references/component-patterns.md +65 -0
- package/dist/skills/zh-CN/game-ui-generator/references/runtime-integration.md +45 -0
- package/dist/skills/zh-CN/game-video-cycle/SKILL.md +98 -0
- package/dist/skills/zh-CN/game-video-cycle/agents/openai.yaml +7 -0
- package/dist/skills/zh-CN/game-video-generator/SKILL.md +78 -0
- package/dist/skills/zh-CN/game-video-generator/agents/openai.yaml +7 -0
- package/dist/skills/zh-CN/godot-3d-game/SKILL.md +41 -0
- package/dist/skills/zh-CN/godot-3d-game/agents/openai.yaml +8 -0
- package/dist/skills/zh-CN/godot-3d-game/references/alignment-gates.md +26 -0
- package/dist/skills/zh-CN/godot-3d-game/references/appearance-alignment.md +54 -0
- package/dist/skills/zh-CN/godot-3d-game/references/build-and-qa.md +22 -0
- package/dist/skills/zh-CN/godot-3d-game/references/canonical-asset-runtime.md +27 -0
- package/dist/skills/zh-CN/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
- package/dist/skills/zh-CN/godot-3d-game/references/physics-colliders.md +13 -0
- package/dist/skills/zh-CN/godot-3d-game/references/project-structure.md +22 -0
- package/dist/skills/zh-CN/godot-3d-game/references/skeleton-animation.md +16 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/compose-quality.md +10 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +9 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +15 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +10 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +9 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +9 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/compose-recipes.md +71 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +33 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/implementation-blueprint.md +82 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/sprite-recipes.md +90 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/technical-art.md +67 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/vfx-recipes.md +67 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/visual-scorecard.md +129 -0
- package/{skills → dist/skills/zh-CN}/threejs-3d-game/SKILL.md +6 -2
- package/dist/skills/zh-CN/threejs-3d-game/references/engine-asset-pipeline.md +155 -0
- package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/SKILL.md +6 -6
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +23 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +19 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +14 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +14 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +15 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +17 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +236 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/implementation-blueprint.md +161 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/model-recipes.md +146 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/render-recipes.md +90 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/shader-cookbook.md +292 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/technical-art.md +167 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/visual-scorecard.md +147 -0
- package/dist/stage-blender/bake_materials.py +102 -0
- package/dist/stage-blender/export_scene.py +275 -0
- package/dist/stage-blender/preview_camera.py +90 -0
- package/dist/stage-blender/repair_mesh.py +112 -0
- package/dist/stage-public/app.js +759 -0
- package/dist/stage-public/baked/bakePilot.js +44 -0
- package/dist/stage-public/baked/bakedScene.js +129 -0
- package/dist/stage-public/baked/sceneAppearance.js +225 -0
- package/dist/stage-public/baked/sceneCamera.js +45 -0
- package/dist/stage-public/comparison-contract.js +28 -0
- package/dist/stage-public/delivery.html +4 -0
- package/dist/stage-public/delivery.js +17 -0
- package/dist/stage-public/godot/appearance.gd +170 -0
- package/dist/stage-public/godot/preview.gd +79 -0
- package/dist/stage-public/index.html +141 -0
- package/dist/stage-public/review-app.js +289 -0
- package/dist/stage-public/review-runtime.js +63 -0
- package/dist/stage-public/review.css +24 -0
- package/dist/stage-public/review.html +47 -0
- package/dist/stage-public/scene-runtime.js +212 -0
- package/dist/stage-public/sceneContractRuntime.js +235 -0
- package/dist/stage-public/styles.css +328 -0
- package/dist/stage-public/three-appearance.js +104 -0
- package/dist/stage-public/vendor/three170/LICENSE +21 -0
- package/dist/stage-public/vendor/three170/build/three.module.js +54571 -0
- package/dist/stage-public/vendor/three170/examples/jsm/controls/OrbitControls.js +1523 -0
- package/dist/stage-public/vendor/three170/examples/jsm/environments/RoomEnvironment.js +144 -0
- package/dist/stage-public/vendor/three170/examples/jsm/libs/fflate.module.js +2672 -0
- package/dist/stage-public/vendor/three170/examples/jsm/loaders/EXRLoader.js +2563 -0
- package/dist/stage-public/vendor/three170/examples/jsm/loaders/GLTFLoader.js +4727 -0
- package/dist/stage-public/vendor/three170/examples/jsm/utils/BufferGeometryUtils.js +1373 -0
- package/dist/tile-transition-mask.svg +40 -0
- package/package.json +24 -8
- package/dist/canvas-public/cycle-detect.js +0 -166
- package/dist/canvas-public/smart-split.js +0 -185
- package/skills/game-asset-image-generator/SKILL.md +0 -104
- package/skills/game-audio/SKILL.md +0 -82
- package/skills/game-audio/agents/openai.yaml +0 -4
- package/skills/threejs-3d-game/references/engine-asset-pipeline.md +0 -116
- /package/{skills → dist/skills/en-US}/game-test/references/checklists/playtest-qa.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/game-ui-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/hud-readability.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/mobile-input.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/responsive-ui-fit.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/ui-patterns.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/ui-prompt-templates.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/compose-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/compose-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/implementation-blueprint.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/sprite-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/technical-art.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/vfx-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/visual-scorecard.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/implementation-blueprint.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/model-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/render-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/shader-cookbook.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/technical-art.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/visual-scorecard.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-canvas/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-canvas/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-cover/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-game-maker/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-login/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-art/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-art/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-demo/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-demo/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-maker/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-maker/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-test/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-test/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-ui/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-performance.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-physics.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-runtime.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-spritesheets.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-tilemaps.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/file-structure.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-audio.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-input-camera.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-performance.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-physics.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-runtime.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/file-structure.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/agents/openai.yaml +0 -0
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: evomeme-game-maker
|
|
3
|
+
description: Guide the Agent in creating evomeme mobile-platform games, applying portrait touch controls, project structure, public/config.json, asset hosting, and production build requirements during development, and using platform capabilities such as publishing, covers, native capabilities, and login recovery as needed by the game. Use when creating, migrating, extending, or publishing mobile games for evomeme.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# evomeme Mobile Game Creation
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
Guide the Agent in creating portrait touch-control mobile games that meet evomeme platform requirements, and in selecting corresponding platform capabilities during development according to current needs.
|
|
11
|
+
|
|
12
|
+
**Concrete game development plan**: when formulating, breaking down, or updating a concrete game development plan, MUST refer to the `game-maker` development skill. This skill provides only evomeme platform-specific requirements for games. If the user needs to publish to the EvoMeme platform, the game MUST meet the requirements in this skill.
|
|
13
|
+
|
|
14
|
+
**Required platform UI and responsive-layout reading**: When developing any game intended to run, launch, or be published on evomeme, MUST read and follow [`evomeme-ui`](../evomeme-ui/SKILL.md). Before designing or coding game UI or responsive adaptation, the Agent MUST load that skill and follow its container sizing, safe-area rules, and test matrix.
|
|
15
|
+
|
|
16
|
+
## Platform Requirements
|
|
17
|
+
|
|
18
|
+
### Game Form
|
|
19
|
+
|
|
20
|
+
The evomeme platform supports ONLY portrait mobile games. Developed games MUST adapt to portrait UI layout and support touch controls.
|
|
21
|
+
|
|
22
|
+
#### Portrait Full-Screen Adaptation
|
|
23
|
+
|
|
24
|
+
The mobile gameplay interface MUST adapt to the different portrait WebView sizes and aspect ratios provided by the host, and always fill the actual game container. "Full-screen" means the available WebView area; MUST NOT lay out the game using the phone's full screen height or subtract host bars and safe areas again. Follow [`evomeme-ui`](../evomeme-ui/SKILL.md) for implementation and acceptance checks:
|
|
25
|
+
|
|
26
|
+
- MUST NOT use fixed-aspect-ratio containers, black borders, top/bottom or left/right letterboxing, or similar methods to maintain the design-draft ratio.
|
|
27
|
+
- The game root container, render canvas, and background MUST cover the entire WebView game area; the page MUST NOT produce uncovered areas due to default margins, fixed dimensions, or parent-container constraints.
|
|
28
|
+
- When the screen aspect ratio differs from the design draft, complete adaptation through responsive layout, camera scaling, background `cover`, or expandable regions that allow cropping; MUST NOT uniformly shrink the entire gameplay image and leave black borders.
|
|
29
|
+
- HUD, buttons, and key interaction content MUST lay out dynamically according to the actual container dimensions. Internal game padding is allowed, but MUST NOT subtract phone safe areas already handled by the host or shrink the coverage of the game image or background.
|
|
30
|
+
- The Web page SHOULD set the correct mobile viewport and maintain a complete `100%` height chain through `html`, `body`, the app root node, and the game container. When the container changes size, update the layout, rendering dimensions, and input mapping together.
|
|
31
|
+
- After development, MUST verify across multiple portrait sizes and aspect ratios: gameplay area covers the full screen, no black borders, no page scrollbars, and key UI is not clipped or obscured.
|
|
32
|
+
|
|
33
|
+
### Demo Image Assets
|
|
34
|
+
|
|
35
|
+
When making an evomeme game Demo, all required game image assets MUST be obtained through image generation and actually integrated:
|
|
36
|
+
|
|
37
|
+
- MUST NOT use any SVG assets, including SVG files, inline SVG, and `data:image/svg+xml`.
|
|
38
|
+
- MUST NOT use Canvas, Phaser, or CSS lines, geometric outlines, or procedural drawing to impersonate game image assets such as characters, scenes, props, icons, or effects.
|
|
39
|
+
- MUST NOT use large solid-color blocks or solid-color backgrounds as formal game assets or visual placeholders.
|
|
40
|
+
- Backgrounds, characters, enemies, props, tiles, decorations, icons, visual effects, and other image assets required by the Demo MUST use image generation. Code work may proceed in parallel with image generation, but the required generated images MUST be integrated before the first visible delivery.
|
|
41
|
+
- If assets are not yet complete, continue generating or reduce the Demo asset scope. MUST NOT temporarily substitute SVG, line drawing, or large solid colors.
|
|
42
|
+
- The first batch of generated images may be used as iterative assets, then gradually replaced later while keeping asset configuration and loading interfaces stable.
|
|
43
|
+
|
|
44
|
+
### Project Structure
|
|
45
|
+
|
|
46
|
+
The submitted game project contains the following files and directories:
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
/
|
|
50
|
+
├── dist/
|
|
51
|
+
├── public/
|
|
52
|
+
│ └── config.json
|
|
53
|
+
├── src/
|
|
54
|
+
└── index.html
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
- `dist/`: stores the latest production build artifacts and is submitted together with the game project.
|
|
58
|
+
- `public/config.json`: centrally records binary asset links used by the game and other runtime configuration.
|
|
59
|
+
- `src/`: stores the main development code.
|
|
60
|
+
- `index.html`: serves as the web entry for the game project.
|
|
61
|
+
|
|
62
|
+
#### Code Dependencies and Publication Paths
|
|
63
|
+
|
|
64
|
+
**Mandatory delivery gate:** The game task is considered complete ONLY when the production build command (usually `npm run build`) completes with exit code `0`, generates a real and non-empty `dist/` containing `dist/index.html` and all referenced local files, and passes the post-build path checks in this section. Merely modifying source code, having the development server run, having a normal screenshot, or guessing that it "should build" MUST NOT be used as delivery results. If any condition is not met, MUST continue fixing, rebuild, and recheck.
|
|
65
|
+
|
|
66
|
+
The final `dist/` may be deployed under any URL subpath and is not guaranteed to be at the domain root. All local runtime references MUST be relative to the current document or build artifact:
|
|
67
|
+
|
|
68
|
+
- In-project code dependencies use `./` or `../`; MUST NOT write local-machine absolute paths, workspace absolute paths, `file://` addresses, or source URLs that can only be resolved by the development server.
|
|
69
|
+
- Local `src`, `href`, `poster`, and `srcset` in HTML, local `url(...)` in CSS, and JavaScript `fetch()`, dynamic `import()`, Worker, audio, and other local resource addresses MUST use `./...` or equivalent relative paths.
|
|
70
|
+
- Any local root-absolute path starting with a single `/`, such as `/assets/...`, `/asset/...`, `/config.json`, or `/src/...`, is strictly forbidden. They should be written as `./assets/...`, `./asset/...`, `./config.json`, `./src/...`, respectively.
|
|
71
|
+
- MUST NOT reconstruct root-absolute local addresses through `location.origin`, `new URL(path, location.origin)`, or other string-concatenation methods.
|
|
72
|
+
- Publicly accessible `http://` and `https://` remote URLs are not restricted by the local relative-path rules.
|
|
73
|
+
- When modifying an existing project, preserve architecture unrelated to the task, but as long as the final `dist/` still contains root-absolute local references, MUST make the minimal fix and MUST NOT deliver.
|
|
74
|
+
|
|
75
|
+
##### Vite Base (Mandatory)
|
|
76
|
+
|
|
77
|
+
New Vite projects MUST create a Vite configuration and explicitly set `base: './'`; MUST NOT rely on Vite's default value `/`. React project example:
|
|
78
|
+
|
|
79
|
+
```js
|
|
80
|
+
import { defineConfig } from 'vite';
|
|
81
|
+
import react from '@vitejs/plugin-react';
|
|
82
|
+
|
|
83
|
+
export default defineConfig({
|
|
84
|
+
plugins: [react()],
|
|
85
|
+
base: './',
|
|
86
|
+
});
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Other build tools MUST set an equivalent relative publication base path.
|
|
90
|
+
|
|
91
|
+
##### Complete `index.html` for New React + Vite Projects (Mandatory)
|
|
92
|
+
|
|
93
|
+
New React + Vite projects MUST use the following source entry format. JavaScript projects use `./src/main.jsx`; TypeScript projects replace ONLY that with `./src/main.tsx`. The entry is forbidden from being written as `/src/main.jsx` or `/src/main.tsx`.
|
|
94
|
+
|
|
95
|
+
```html
|
|
96
|
+
<!doctype html>
|
|
97
|
+
<html lang="zh-CN">
|
|
98
|
+
<head>
|
|
99
|
+
<meta charset="UTF-8" />
|
|
100
|
+
<meta
|
|
101
|
+
name="viewport"
|
|
102
|
+
content="width=device-width,initial-scale=1,viewport-fit=cover,user-scalable=no"
|
|
103
|
+
/>
|
|
104
|
+
<meta name="theme-color" content="#000000" />
|
|
105
|
+
<title>Game Name</title>
|
|
106
|
+
</head>
|
|
107
|
+
<body>
|
|
108
|
+
<div id="root"></div>
|
|
109
|
+
<script type="module" src="./src/main.jsx"></script>
|
|
110
|
+
</body>
|
|
111
|
+
</html>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
CSS SHOULD be imported from the entry module through a relative path such as `import './style.css'`; DO NOT prewrite or guess hashed build filenames in source `index.html`. The `dist/index.html` after Vite build MUST use relative build asset paths, for example:
|
|
115
|
+
|
|
116
|
+
```html
|
|
117
|
+
<script type="module" crossorigin src="./assets/index-HASH.js"></script>
|
|
118
|
+
<link rel="stylesheet" crossorigin href="./assets/index-HASH.css">
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`HASH` represents the hash actually generated by Vite and MUST NOT be hard-coded.
|
|
122
|
+
|
|
123
|
+
##### `dist/` Integrity and Path Checks (Blocks Delivery)
|
|
124
|
+
|
|
125
|
+
After every production build completes and before announcing success, MUST directly check `dist/index.html` and the JavaScript, CSS, and other text artifacts it references:
|
|
126
|
+
|
|
127
|
+
1. Confirm the build command exit code is `0`.
|
|
128
|
+
2. Confirm `dist/` truly exists and is non-empty, and confirm `dist/index.html` exists.
|
|
129
|
+
3. Parse or check one by one the local references in `dist/index.html`, and confirm each target file truly exists inside `dist/`.
|
|
130
|
+
4. Scan `dist/index.html`, built JavaScript, and CSS. MUST NOT contain local-resource references in `src="/`, `src='/`, `href="/`, `href='/`, `poster="/`, `poster='/`, `url(/`, `fetch('/`, `fetch("/`, `import('/`, `import("/`, `new Worker('/`, `new Worker("/`, or equivalent root-absolute forms.
|
|
131
|
+
5. Explicitly check and forbid `/assets/...`, `/asset/...`, `/config.json`, `/src/...`; they MUST be changed to `./assets/...`, `./asset/...`, `./config.json`, `./src/...`, or another correct relative path.
|
|
132
|
+
6. Check that `dist/` contains no runtime dependencies on `src/`, `public/`, the project root, workspace files, `localhost`, the Vite development server, `.ts`, `.tsx`, or other unbuilt source.
|
|
133
|
+
7. If any violating reference, missing file, or incomplete artifact is found, the build is judged invalid; after fixing, MUST run the production build again and recheck from step 1. MUST NOT skip rechecking just because the build command previously exited with code `0`.
|
|
134
|
+
|
|
135
|
+
`dist/` MUST be a complete runtime directory that can be deployed independently. `dist/index.html`, built JavaScript, CSS, and configuration may depend ONLY on files inside `dist/` or public remote URLs. Images, videos, audio, fonts, models, and other binary files are forbidden inside `dist/`; these assets MUST be integrated through public URLs. MUST NOT bypass the build by copying source code into `dist/`; source dependencies MUST be correctly resolved and bundled in the production build.
|
|
136
|
+
|
|
137
|
+
Before publication, MUST also start a preview with `dist/` as the static service root, and verify startup, resource loading, and the complete core flow at that address. The development server may be used for development, but MUST NOT be used as publication acceptance evidence.
|
|
138
|
+
|
|
139
|
+
#### `/public/config.json` Rules
|
|
140
|
+
|
|
141
|
+
`/public/config.json` is the external runtime configuration file for the game. After build, it is output unchanged as `/dist/config.json`.
|
|
142
|
+
|
|
143
|
+
##### Storage Rules
|
|
144
|
+
|
|
145
|
+
1. Write all user-adjustable colors, gameplay parameters, balance values, and asset URLs to `/public/config.json` or `game/content`.
|
|
146
|
+
2. Game code reads configuration through `fetch("./config.json")` or the project's wrapped `loadConfig()`.
|
|
147
|
+
3. Keep `/public/config.json` as a runtime external file; code in `src` accesses configuration only through runtime loading.
|
|
148
|
+
4. Centralize user-adjustable values in a single configuration source, and have React, Phaser, and CSS use the same configuration data.
|
|
149
|
+
|
|
150
|
+
##### Visible Parameters
|
|
151
|
+
|
|
152
|
+
Keys that do not start with `_` are exposed for user editing and remain flat:
|
|
153
|
+
|
|
154
|
+
```json
|
|
155
|
+
"player_speed": {
|
|
156
|
+
"value": 220,
|
|
157
|
+
"type": "int",
|
|
158
|
+
"label": "Move Speed",
|
|
159
|
+
"max": 400,
|
|
160
|
+
"min": 50
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Rules:
|
|
165
|
+
|
|
166
|
+
- `type` values are `int`, `float`, `color`, `bool`, `string`, `audio`, `image`, `video`.
|
|
167
|
+
- `label` uses the user's language and is no longer than 10 characters.
|
|
168
|
+
- `max` and `min` are dedicated to `int` and `float` types.
|
|
169
|
+
- `type: "color"` uses a hexadecimal color string.
|
|
170
|
+
- `type: "image"` MUST declare `image_type: "Asset"`.
|
|
171
|
+
- `image_type: "Asset"` MUST additionally declare `size`, in the format `"widthxheight"`, for example `"1440x2560"`.
|
|
172
|
+
|
|
173
|
+
##### Parameter Type Examples
|
|
174
|
+
|
|
175
|
+
Visible parameters in `/public/config.json` are written according to the following structure. Actual projects choose parameter types and keys as needed, and keep the same schema when generating configuration.
|
|
176
|
+
|
|
177
|
+
```json
|
|
178
|
+
{
|
|
179
|
+
"_game_name": "Example Game",
|
|
180
|
+
"_config_version": 1,
|
|
181
|
+
"move_speed": {
|
|
182
|
+
"value": 220,
|
|
183
|
+
"type": "int",
|
|
184
|
+
"label": "Move Speed",
|
|
185
|
+
"min": 50,
|
|
186
|
+
"max": 400
|
|
187
|
+
},
|
|
188
|
+
"gravity_scale": {
|
|
189
|
+
"value": 1.2,
|
|
190
|
+
"type": "float",
|
|
191
|
+
"label": "Grav Scale",
|
|
192
|
+
"min": 0.2,
|
|
193
|
+
"max": 3
|
|
194
|
+
},
|
|
195
|
+
"theme_background_color": {
|
|
196
|
+
"value": "#10131f",
|
|
197
|
+
"type": "color",
|
|
198
|
+
"label": "BG Color"
|
|
199
|
+
},
|
|
200
|
+
"enable_shake": {
|
|
201
|
+
"value": true,
|
|
202
|
+
"type": "bool",
|
|
203
|
+
"label": "Shake"
|
|
204
|
+
},
|
|
205
|
+
"start_button_text": {
|
|
206
|
+
"value": "Start Game",
|
|
207
|
+
"type": "string",
|
|
208
|
+
"label": "Start Text"
|
|
209
|
+
},
|
|
210
|
+
"bgm_main": {
|
|
211
|
+
"value": "https://example.com/bgm.mp3",
|
|
212
|
+
"type": "audio",
|
|
213
|
+
"label": "BGM"
|
|
214
|
+
},
|
|
215
|
+
"image_background": {
|
|
216
|
+
"value": "https://example.com/background.png",
|
|
217
|
+
"type": "image",
|
|
218
|
+
"image_type": "Asset",
|
|
219
|
+
"size": "1440x2560",
|
|
220
|
+
"label": "BG Image"
|
|
221
|
+
},
|
|
222
|
+
"image_player": {
|
|
223
|
+
"value": "https://example.com/player.png",
|
|
224
|
+
"type": "image",
|
|
225
|
+
"image_type": "Asset",
|
|
226
|
+
"size": "1024x1024",
|
|
227
|
+
"label": "Character"
|
|
228
|
+
},
|
|
229
|
+
"video_intro": {
|
|
230
|
+
"value": "https://example.com/intro.mp4",
|
|
231
|
+
"type": "video",
|
|
232
|
+
"label": "Intro Vid"
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
When generating official project configuration:
|
|
238
|
+
|
|
239
|
+
- `value` for `audio`, `image`, and `video` uses real URLs. When an image is generated asynchronously upstream, a URL briefly returning 404 does not mean the asset is invalid.
|
|
240
|
+
- `image` types specify size metadata. `Asset` uses `size`, allowing Codex to infer display dimensions when it cannot read the real image.
|
|
241
|
+
- `string` is used for user-editable copy, theme names, asset keys, and other short text.
|
|
242
|
+
- `bool` is used for switches, with values `true` or `false`.
|
|
243
|
+
- `int` uses integers, and `float` can use decimals; both include `min` and `max`.
|
|
244
|
+
- Internal fields such as `_game_name`, `_config_version`, and `_comment` store internal values directly and do not use the visible-parameter schema.
|
|
245
|
+
|
|
246
|
+
##### Invisible Parameters
|
|
247
|
+
|
|
248
|
+
Keys starting with `_` are used for internal configuration, asset mappings, version numbers, and debug switches, and are not exposed for user editing.
|
|
249
|
+
|
|
250
|
+
### File Submission
|
|
251
|
+
|
|
252
|
+
The submitted file collection consists of UTF-8 text files. Binary assets such as images, audio, video, fonts, models, and archives are integrated into the game through evomeme TOS links and referenced through `public/config.json`. The corresponding local binary file paths are recorded in `.evomemeignore`.
|
|
253
|
+
|
|
254
|
+
`dist/` is always within submission scope and contains the latest production build after asset-link replacement is complete.
|
|
255
|
+
|
|
256
|
+
### Pre-Publication Check
|
|
257
|
+
|
|
258
|
+
Check the following ONLY when preparing to submit or publish the game:
|
|
259
|
+
|
|
260
|
+
- [ ] The game uses a portrait UI layout and supports touch controls.
|
|
261
|
+
- [ ] `evomeme-ui` has been read and followed, including validation at game container sizes of 375×524, 402×646, and 412×732 and during a runtime size change.
|
|
262
|
+
- [ ] Across different portrait sizes and aspect ratios, the gameplay interface fills the host WebView without black borders or uncovered areas. Native bars and safe areas are not deducted twice, and key UI remains visible and operable.
|
|
263
|
+
- [ ] The Demo contains no SVG, line drawing, or large solid-color game assets; all required game images have been obtained through image generation and actually integrated.
|
|
264
|
+
- [ ] The root directory contains `dist/`, `public/config.json`, `src/`, and `index.html`.
|
|
265
|
+
- [ ] `public/config.json` parses, conforms to the configuration schema, and is output unchanged as `dist/config.json` after build.
|
|
266
|
+
- [ ] `public/config.json` records binary assets used by the game as public links.
|
|
267
|
+
- [ ] Local binary file paths have been added to `.evomemeignore`.
|
|
268
|
+
- [ ] `.evomemeignore` keeps `dist/` within submission scope.
|
|
269
|
+
- [ ] `dist/` comes from the latest production build after asset-link replacement is complete.
|
|
270
|
+
- [ ] The production build command completes with exit code `0`, and `dist/` is non-empty and contains `dist/index.html`.
|
|
271
|
+
- [ ] New Vite projects explicitly set `base: './'`; source `index.html` uses `./src/main.jsx` or `./src/main.tsx`.
|
|
272
|
+
- [ ] Every local file referenced in `dist/index.html` truly exists inside `dist/`.
|
|
273
|
+
- [ ] `dist/index.html` and its referenced JavaScript and CSS have been scanned; there is no `src="/`, `href="/`, `url(/`, `fetch('/`, `fetch("/`, `/assets/`, `/asset/`, `/config.json`, `/src/`, or equivalent root-absolute local reference.
|
|
274
|
+
- [ ] The build uses a relative publication base path; runtime configuration and assets use `./...` or equivalent relative URLs, do not depend on the domain root path, and do not reconstruct the root path through `location.origin`.
|
|
275
|
+
- [ ] `dist/` can be deployed independently, and it has no runtime dependencies on `src/`, `public/`, the project root, `localhost`, development server, or unbuilt source.
|
|
276
|
+
- [ ] Preview has been completed with `dist/` as the static service root, and the game can start, load resources, and run through the core flow.
|
|
277
|
+
- [ ] The submitted file collection contains only UTF-8 text files.
|
|
278
|
+
- [ ] The publication process follows `evomeme-cloud-fs`.
|
|
279
|
+
|
|
280
|
+
## Platform Capabilities
|
|
281
|
+
|
|
282
|
+
Select required capabilities according to the current task. Each capability takes effect independently:
|
|
283
|
+
|
|
284
|
+
- **Binary asset hosting**: when local images, audio, video, fonts, or models need to be converted to public links, load and follow [`evomeme-tos-upload`](../evomeme-tos-upload/SKILL.md). The obtained `asset_url` can be written to `public/config.json`, and local binary file paths can be written to `.evomemeignore`.
|
|
285
|
+
- **Game publication**: when preparing the workspace, checking submission contents, or publishing the game, load and follow [`evomeme-cloud-fs`](../evomeme-cloud-fs/SKILL.md).
|
|
286
|
+
- **Game cover**: when adding a game cover or providing `cover_url`, load and follow [`evomeme-cover`](../evomeme-cover/SKILL.md).
|
|
287
|
+
- **Mobile native capabilities**: when the game needs to use camera, album, microphone, gyroscope, vibration, or other host capabilities, load and follow [`evomeme-native-bridge-sdk`](../evomeme-native-bridge-sdk/SKILL.md).
|
|
288
|
+
- **Login recovery**: after an evomeme operation returns a login or authentication error, load and follow [`evomeme-login`](../evomeme-login/SKILL.md), then continue the original operation after login is restored.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "evomemeGame Maker"
|
|
3
|
+
short_description: "Create portrait touch-control mobile games that follow platform specifications, with project configuration and publication adaptation complete"
|
|
4
|
+
default_prompt: "Use $evomeme-game-maker to create a portrait touch-control mobile game for me, including the required project configuration, asset integration, and platform adaptation."
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: evomeme-login
|
|
3
|
+
description: Restore evomeme authentication after an evomeme_* MCP or init login / token error. Use ONLY after authentication has already failed; DO NOT load preventively before calling business tools.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# evomeme Login Recovery
|
|
7
|
+
|
|
8
|
+
| Tool | Actual action and result | When to use |
|
|
9
|
+
| --- | --- | --- |
|
|
10
|
+
| `evomeme_check_login` (Check Login Status) | Check existing credentials and return login status; creates no asset or project files. | After authentication has failed, follow the flow below to determine whether credentials need recovery. |
|
|
11
|
+
| `evomeme_login` (Log In) | Start browser login, save credentials locally on success and return the login result. | Credentials are missing, expired or invalid and tool authentication needs recovery. |
|
|
12
|
+
|
|
13
|
+
## When to Use (Gate)
|
|
14
|
+
|
|
15
|
+
Load this skill and execute the flow below **ONLY after a login / authentication-related failure has already occurred**.
|
|
16
|
+
|
|
17
|
+
Typical triggers (when a tool returns `isError` or the error body contains the following meanings):
|
|
18
|
+
|
|
19
|
+
- token invalid or expired (business error code **40100**, text such as "token invalid" or "please log in again")
|
|
20
|
+
- login session timed out or was rejected (**40010**, text such as "login session has expired or was rejected")
|
|
21
|
+
- MCP / init explicitly says not logged in, credentials are invalid, or login again is required
|
|
22
|
+
- `evomeme_login` itself fails (timeout, user did not complete login in the browser, etc.)
|
|
23
|
+
|
|
24
|
+
**DO NOT** load this skill or proactively call the login tool in the following situations:
|
|
25
|
+
|
|
26
|
+
- "preventively checking login" before normal startup, image generation, upload, submission, or model creation
|
|
27
|
+
- proactively running login once when the user has not encountered any authentication error
|
|
28
|
+
- treating login as a routine step in the game creation flow
|
|
29
|
+
|
|
30
|
+
For normal business work, call the `evomeme_*` tools directly; the client will handle credentials itself when needed. Use this skill ONLY after an error occurs.
|
|
31
|
+
|
|
32
|
+
## Goal
|
|
33
|
+
|
|
34
|
+
Guide the user to complete evomeme re-login in the system browser so subsequent `evomeme_*` tools can continue to be used, then **return to the original failed business operation** and retry it once.
|
|
35
|
+
|
|
36
|
+
## Guide the User to Log In Again (Execute in Order)
|
|
37
|
+
|
|
38
|
+
### 1. Explain the Situation to the User (Say It Before Acting)
|
|
39
|
+
|
|
40
|
+
Tell the user briefly in natural language, for example:
|
|
41
|
+
|
|
42
|
+
> The evomeme cloud operation just failed because the login credentials are invalid. Next we need to log in again: the system will open a browser. Please complete login on the page, then come back here and I will continue the previous operation.
|
|
43
|
+
|
|
44
|
+
MUST explain three points:
|
|
45
|
+
|
|
46
|
+
1. **Why**: the previous operation was interrupted due to login/authentication failure
|
|
47
|
+
2. **What will happen**: the **system default browser** will open, and the user needs to complete login on the page
|
|
48
|
+
3. **What happens afterward**: after login succeeds, the step that just failed will be retried
|
|
49
|
+
|
|
50
|
+
DO NOT call `evomeme_login` before completing the explanation above.
|
|
51
|
+
|
|
52
|
+
### 2. (Optional) Confirm Current Status
|
|
53
|
+
|
|
54
|
+
If the error message is not clear enough, first call the read-only tool **`evomeme_check_login`** (**does not** open the browser):
|
|
55
|
+
|
|
56
|
+
- Returns "logged in" -> this may be a transient/other error; tell the user the original error text, DO NOT force-open the browser again, and you may directly retry the original business tool once
|
|
57
|
+
- Returns "not logged in" or "credentials invalid" -> continue to step 3
|
|
58
|
+
|
|
59
|
+
### 3. Start Re-Login
|
|
60
|
+
|
|
61
|
+
Call **`evomeme_login`** (no arguments).
|
|
62
|
+
|
|
63
|
+
- It will force the full browser login flow and overwrite `~/.evomeme/auth.json`
|
|
64
|
+
- Ask the user to complete login on the opened page; the Agent waits for the tool to return
|
|
65
|
+
|
|
66
|
+
### 4. Branch by Result
|
|
67
|
+
|
|
68
|
+
**Login succeeded**
|
|
69
|
+
|
|
70
|
+
1. Confirm briefly: "Login is complete."
|
|
71
|
+
2. **Immediately retry** the business MCP that just failed (image generation / upload / submission / model, etc.); DO NOT stop at "logged in".
|
|
72
|
+
3. If the original flow requires delivery wrap-up, continue the original flow after the retry succeeds, and complete the necessary `evomeme_submit_game_code` according to `../evomeme-cloud-fs/SKILL.md`.
|
|
73
|
+
|
|
74
|
+
**Login failed** (timeout, rejection, network error, etc.)
|
|
75
|
+
|
|
76
|
+
1. Show the user the **exact original error text** returned by the tool
|
|
77
|
+
2. Ask the user to confirm whether it is convenient to try again (for example, whether the browser was blocked or whether they clicked reject)
|
|
78
|
+
3. After the user agrees, tell them "the browser will open again", then call `evomeme_login` again
|
|
79
|
+
4. **DO NOT** loop browser popups without telling the user and getting confirmation
|
|
80
|
+
|
|
81
|
+
## Tool Notes
|
|
82
|
+
|
|
83
|
+
| Tool | Purpose | Opens Browser? |
|
|
84
|
+
| --- | --- | --- |
|
|
85
|
+
| `evomeme_check_login` | Read-only check of whether local credentials are still valid | No |
|
|
86
|
+
| `evomeme_login` | Force browser login and write `~/.evomeme/auth.json` | Yes (MUST tell the user before calling) |
|
|
87
|
+
|
|
88
|
+
## Non-Goals
|
|
89
|
+
|
|
90
|
+
- Does not replace `npx -y evomeme@latest init` (workspace ignore rules / copying skills, etc. still follow `../evomeme-cloud-fs/SKILL.md`)
|
|
91
|
+
- Does not expand game planning, image generation, or submission flows inside this skill; after login recovery, return to the original task skill and continue
|
|
92
|
+
- Does not treat every "network connection failed" as a login problem; use this skill ONLY when the error clearly points to authentication / login
|
|
93
|
+
|
|
94
|
+
## References
|
|
95
|
+
|
|
96
|
+
- Main entry: `../game-director/SKILL.md`
|
|
97
|
+
- Cloud file system (init / submission / upload): `../evomeme-cloud-fs/SKILL.md`
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "evomemeLogin"
|
|
3
|
+
short_description: "Guide re-login after a cloud operation has a login or credential error, then continue the original task"
|
|
4
|
+
default_prompt: "Use $evomeme-login to restore the login state that just failed, then continue the original cloud operation after login completes."
|
|
5
|
+
|
|
6
|
+
policy:
|
|
7
|
+
allow_implicit_invocation: false
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: evomeme-mcp
|
|
3
|
+
description: Install, start, update, or troubleshoot evomeme MCP. Agents must read this skill when configuring evomeme MCP or investigating startup failure, closed connections, missing tools, or ineffective updates. Restore the MCP connection and verify tool visibility; use asset skills for normal generation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# evomeme MCP startup and troubleshooting
|
|
7
|
+
|
|
8
|
+
## Purpose and when to use
|
|
9
|
+
|
|
10
|
+
Guide the agent through configuring the IDE to launch evomeme, diagnosing connection failures, and verifying its tool list. The results are an installed or repaired IDE MCP configuration and an evidence-based connection status. This skill itself does not generate images, videos, or projects.
|
|
11
|
+
|
|
12
|
+
- Read this skill when the user requests MCP installation, startup, or updates, or when tools are missing or the process cannot start.
|
|
13
|
+
- Normal asset calls do not require repeated installation or login checks. If a tool already returned a business error, diagnose that error category first.
|
|
14
|
+
- `init` copies this skill into the workspace in the selected language. `install` configures MCP only and does not copy skills. Preserve existing skill names.
|
|
15
|
+
|
|
16
|
+
## Terms
|
|
17
|
+
|
|
18
|
+
- **MCP (Model Context Protocol)**: the protocol between an IDE agent and an external tool server. evomeme is a local server process exposing `evomeme_*` tools.
|
|
19
|
+
- **stdio**: the IDE starts a child process and exchanges protocol messages through standard input and output. evomeme MCP does not need an HTTP listening port. Its backend API URL is not an MCP connection address; ordinary log text must not enter MCP standard output.
|
|
20
|
+
- **Launcher**: the `command` executable and the `args` array of separate arguments in the config. Node.js runs JavaScript, npm manages packages, and npx / npm exec obtains and runs a package. The Windows installer may use absolute Node and npm script paths.
|
|
21
|
+
- **initialize / tools/list**: the protocol handshake and discovery of available tools. Success proves that child process can communicate, not that the IDE loaded the same configuration or that cloud generation works.
|
|
22
|
+
- **Configuration and workspace**: the MCP config tells the IDE how to launch the server; the workspace contains the game project. A skill is documentation for the agent. Copying it does not start MCP.
|
|
23
|
+
|
|
24
|
+
## Install and start
|
|
25
|
+
|
|
26
|
+
Supported targets are `codex`, `cursor`, `claude` (Claude Code), `workbuddy`, and `trae` (this installer's default is Trae SOLO China). Identify the user's actual IDE, configuration file, and release channel first.
|
|
27
|
+
|
|
28
|
+
```powershell
|
|
29
|
+
npx -y evomeme@latest install --ide cursor
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The installer first starts a temporary MCP process for handshake and tool-list checks, then merges the IDE configuration. Other MCP entries are preserved. Before changing an existing file, it backs up the file to the same path with `.evomeme-cli.bak.latest` appended. The existing `evomeme` entry is refreshed.
|
|
33
|
+
|
|
34
|
+
For a custom configuration location, specify the **full configuration file path**:
|
|
35
|
+
|
|
36
|
+
```powershell
|
|
37
|
+
npx -y evomeme@latest install --ide cursor --config-path "D:\MyConfig\mcp.json"
|
|
38
|
+
npx -y evomeme@latest install --ide codex --config-path "D:\MyConfig\config.toml"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
- Select the file the IDE actually reads, not its executable directory or executable. Moving the IDE program does not necessarily move its configuration.
|
|
42
|
+
- Absolute paths and paths relative to the current terminal directory are supported. Quote paths containing spaces. Missing files and parent directories are created; this does not change how the IDE selects its config file.
|
|
43
|
+
- `--config-path` requires exactly one IDE; run separate commands for multiple IDEs. Omit it to retain the default path. The override applies only to this invocation, so supply it again on later reinstalls.
|
|
44
|
+
- Codex writes TOML; the other installers write JSON. Do not target the same file with installers for different formats.
|
|
45
|
+
- Before reinstalling, inspect the existing evomeme launcher and environment. Preserve the user's pinned version/local package supplied through `--package` and custom backend supplied through `--api-base-url`. Omitting the backend option refreshes the entry to use the packaged default backend.
|
|
46
|
+
|
|
47
|
+
After installation, restart the IDE or reconnect its MCP server, then verify that the IDE lists the required `evomeme_*` tools. A successful config write alone does not prove the IDE is connected.
|
|
48
|
+
|
|
49
|
+
The server entry must run the package with **no subcommand**, without `install`, `init`, or `version`. Running the following in a terminal waits for protocol input; silence alone is not a hang. Normally let the IDE manage this process:
|
|
50
|
+
|
|
51
|
+
```powershell
|
|
52
|
+
npx -y evomeme@latest
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## init and skill distribution
|
|
56
|
+
|
|
57
|
+
To initialize a workspace or refresh its skills, run this in the intended project:
|
|
58
|
+
|
|
59
|
+
```powershell
|
|
60
|
+
npx -y evomeme@latest init --ide cursor
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
`init` validates login, creates or reuses a cloud project binding, establishes ignore rules, and copies packaged skills. It is not a connection-only check. Omitting `--ide` copies to every supported IDE's workspace skill directory. The current package replaces matching packaged skills, adds new skills, and preserves other user skills.
|
|
64
|
+
|
|
65
|
+
Skill locations: `.codex/skills/evomeme-mcp/` for Codex, `.cursor/skills/evomeme-mcp/` for Cursor, `.claude/skills/evomeme-mcp/` for Claude Code, `.codebuddy/skills/evomeme-mcp/` for WorkBuddy, and `.trae/skills/evomeme-mcp/` for Trae. The MCP `--config-path` option does not change these workspace skill directories.
|
|
66
|
+
|
|
67
|
+
## When something fails
|
|
68
|
+
|
|
69
|
+
Read the relevant sections of [Troubleshooting](references/troubleshooting.md). First collect the actual config path, launcher, running process version, IDE MCP error, and today's logs. Validate once after each evidence-based fix. When the same error repeats, stop blind reinstalls and report the confirmed cause and missing evidence.
|
|
70
|
+
|
|
71
|
+
Use handshake and tool discovery to verify connectivity; do not launch paid generation as a connectivity test. Once restored, continue the user's original task. If a previous generation may already have been submitted, check its existing task status before resubmitting.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "evomeme MCP setup and troubleshooting"
|
|
3
|
+
short_description: "Configure evomeme MCP and diagnose startup or missing tools"
|
|
4
|
+
default_prompt: "Use $evomeme-mcp to configure or troubleshoot evomeme MCP, identify the actual config file, and verify the IDE tool connection."
|
|
5
|
+
|
|
6
|
+
policy:
|
|
7
|
+
allow_implicit_invocation: true
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# evomeme MCP troubleshooting
|
|
2
|
+
|
|
3
|
+
## 1. Find the actual configuration
|
|
4
|
+
|
|
5
|
+
These are **this installer's paths when `--config-path` is omitted**. `~` is the current operating-system user's home directory, not the IDE installation directory.
|
|
6
|
+
|
|
7
|
+
| IDE | Default configuration file |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| Cursor | `~/.cursor/mcp.json` |
|
|
10
|
+
| Codex | `~/.codex/config.toml` |
|
|
11
|
+
| Claude Code | `~/.claude.json` |
|
|
12
|
+
| WorkBuddy | `~/.workbuddy/mcp.json` |
|
|
13
|
+
| Trae SOLO China / Windows | `%APPDATA%/TRAE SOLO CN/User/mcp.json`; without APPDATA, fall back to `AppData/Roaming` under the user home |
|
|
14
|
+
| Trae SOLO China / macOS | `~/Library/Application Support/TRAE SOLO CN/User/mcp.json` |
|
|
15
|
+
| Trae SOLO China / Linux | `$XDG_CONFIG_HOME/TRAE SOLO CN/User/mcp.json`; otherwise `~/.config/TRAE SOLO CN/User/mcp.json` |
|
|
16
|
+
|
|
17
|
+
The current Codex installer does not automatically use `CODEX_HOME`. Portable editions, custom config directories, and other IDE product variants also cannot be inferred from default paths alone. Confirm the file through the IDE settings or actual startup configuration, then pass `--config-path`. Do not scan entire drives or write to multiple guessed locations.
|
|
18
|
+
|
|
19
|
+
Inspect only fields relevant to the failure; avoid printing credentials belonging to other MCP servers. Writers preserve other MCP entries and settings. Invalid JSON aborts installation; do not delete the file to start over. The TOML installer replaces the evomeme tables and checks them for duplicates; it is not a full TOML syntax validator. Diagnose other syntax errors using the IDE's messages.
|
|
20
|
+
|
|
21
|
+
## 2. Diagnose by symptom
|
|
22
|
+
|
|
23
|
+
| Symptom | Check and action |
|
|
24
|
+
| --- | --- |
|
|
25
|
+
| Missing `--config-path` value, a directory path, or multiple IDEs | Supply the full configuration file path for one IDE. Run separate commands for multiple IDEs. Argument errors stop before self-check or config writes. |
|
|
26
|
+
| Installation succeeds but the IDE has no tools | Compare the printed destination with the file the IDE actually reads. Check whether evomeme is enabled or needs user activation in the IDE. Reconnect or restart, then inspect tools. Self-check uses the install terminal's environment, which may differ from the IDE's. |
|
|
27
|
+
| `spawn ... ENOENT`, missing `node` / `npx` | Run `node --version` and `npm --version`, and inspect executable paths in the config. On Windows use `Get-Command node,npm,npx`; on macOS/Linux use `command -v node npm npx`. Moving or upgrading Node/npm may invalidate saved absolute paths. Rerun install from a working environment while preserving custom options. |
|
|
28
|
+
| PowerShell blocks `npx.ps1` | Verify `npx.cmd` exists and use it for the same install command; there is no need to weaken the global PowerShell execution policy. |
|
|
29
|
+
| `Connection closed` or initialize fails | Read child stderr and startup logs. Distinguish a missing executable/package, runtime crash, wrong subcommand, and polluted protocol output. The message alone does not establish a network failure. |
|
|
30
|
+
| Installer says network failure but details show ENOENT | The current installer maps some startup failures to that message. Follow the concrete exception and stderr; first fix executable or file paths. |
|
|
31
|
+
| npm timeout, DNS/proxy/certificate error, missing package or version | Inspect npm stderr, network conditions, `npm config get registry`, and the requested package/version. For a local tgz, verify it exists and the IDE can access it. Follow the evidence; do not routinely clear npm caches, disable certificate verification, or switch the global registry. |
|
|
32
|
+
| Permission denied or invalid JSON/TOML | Check access and syntax in the actual config file. Compare `.evomeme-cli.bak.latest` when repairing. Before restoring a whole backup, compare subsequent changes and preserve other MCP entries and user additions. |
|
|
33
|
+
| Unrecognized `--config-path` or the default path is still written | Check the executing version and whether `npx -y evomeme@latest help` lists the option. Old versions may silently ignore unknown options. Confirm the printed destination before declaring the custom path effective. |
|
|
34
|
+
| Old or missing tools after an update | Inspect whether the IDE is pinned to an old package, tgz, or local development build. Compare the actual process version in logs with its tool list. Restart MCP after updating its installation. `init` refreshes workspace content; it does not replace an already running MCP process. |
|
|
35
|
+
| Development mode cannot find `dist/index.js` | `install --dev` uses `dist/index.js` under the directory where installation runs. Build in the plugin source directory and reinstall. Do not add `--dev` for ordinary user installations. |
|
|
36
|
+
| Connected server returns not logged in or 40100 | Follow login recovery; the distributed `evomeme-login` skill provides guidance when available. Explain the browser login before starting it. Reinstallation does not fix a credential error on an otherwise working connection. |
|
|
37
|
+
| Tool returns HTTP 404, 413, 502, timeout, or an incompatible response | Check endpoint, status, actual release channel, and `EVOMEME_API_BASE_URL` in logs/config. `--api-base-url` selects the cloud HTTP API root, not a local stdio address. Diagnose the backend error; an incompatible response alone does not prove the client is outdated. |
|
|
38
|
+
| An image/video supplier fails or response fields are missing | Preserve local task ID, remote task ID, and the exact error. Working local tool calls do not prove the supplier chain works; client logs alone cannot prove NewAPI forwarded parameters. State when backend evidence is needed. Do not arbitrarily change supplier settings or repeat paid requests in a loop. |
|
|
39
|
+
| Agent times out while generation may still run | Inspect existing records in workspace `.evomeme/tasks/` and logged status changes first. Client timeout does not establish remote failure; do not delete task data to reset the server. |
|
|
40
|
+
|
|
41
|
+
## 3. Logs and evidence
|
|
42
|
+
|
|
43
|
+
Runtime logs use `~/.evomeme/logs/YYYY-MM-DD.jsonl`; on Windows this is usually `C:\Users\<username>\.evomeme\logs\`. One file per local date, retained for today plus the previous six days, without size-based file truncation. JSONL means one JSON record per line.
|
|
44
|
+
|
|
45
|
+
| Evidence | Fields or events |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| Actual running version | `process.started`, plus `version`, `channel`, `pid`, `sessionId`, and `fields.nodeVersion` |
|
|
48
|
+
| CLI failure | `cli.failed`, `cli.error`, `process.failed` |
|
|
49
|
+
| A tool call | `mcp.call_started`, `mcp.call_completed`, `mcp.call_failed`, `mcp.tool_error`; correlate through `fields.callId` |
|
|
50
|
+
| Network or backend error | endpoint, status, durationMs, and error in `http.failed`; successful requests use `http.completed` |
|
|
51
|
+
| Background execution | `task.created`, `task.updated`, `task.execution_failed`, `task.worker_exited`; correlate by taskId, stepId, and remoteJobId |
|
|
52
|
+
|
|
53
|
+
Workspace paths and call/task correlation fields exist only where the corresponding context is available. Logs include client exception stacks, not complete request/response bodies, raw supplier responses, or internal server traces. No logs may mean the process never started, an older package lacks logging, or a write failed; an empty directory alone does not diagnose the cause.
|
|
54
|
+
|
|
55
|
+
Report the failing layer, confirmed evidence, which config file was repaired, and whether the handshake and IDE tool list were each verified. Share only relevant redacted excerpts, not auth.json, complete environments, or credentials from other services.
|