@playcraft/cli 0.0.57 → 0.0.59
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 +34 -16
- package/dist/cli-root-help.js +1 -0
- package/dist/commands/build-all.js +10 -9
- package/dist/commands/build.js +13 -12
- package/dist/commands/create.js +26 -33
- package/dist/commands/platform-skills.generated.js +19 -0
- package/dist/commands/skills.js +2 -0
- package/dist/commands/tools-generation.js +1 -1
- package/dist/commands/workspace-runtime.js +54 -0
- package/dist/index.js +3 -1
- package/dist/project-skills/commands.js +72 -0
- package/dist/project-skills/lifecycle.js +28 -0
- package/dist/project-skills/local-run.js +112 -0
- package/dist/project-skills/local-store.js +149 -0
- package/dist/project-skills/messages.js +72 -0
- package/dist/project-skills/reconcile.js +62 -0
- package/dist/project-skills/remote-cache.js +51 -0
- package/dist/project-skills/validation.js +19 -0
- package/dist/remix/clone.js +2 -0
- package/dist/remix/init-template.js +2 -0
- package/dist/remix/pull.js +2 -0
- package/dist/remix/push.js +21 -1
- package/dist/utils/agent-api-client.js +54 -17
- package/dist/utils/tool-operation-journal.js +54 -0
- package/dist/workspace-runtime/codex/app-server.js +395 -0
- package/dist/workspace-runtime/codex/config-toml.js +25 -0
- package/dist/workspace-runtime/codex/jsonrpc-stdio.js +106 -0
- package/dist/workspace-runtime/codex/loopback.js +59 -0
- package/dist/workspace-runtime/codex/native-adapter.js +3 -0
- package/dist/workspace-runtime/main.js +10 -0
- package/dist/workspace-runtime/persistence/journal.js +350 -0
- package/dist/workspace-runtime/processes/managed-writes.js +69 -0
- package/dist/workspace-runtime/serve.js +111 -0
- package/dist/workspace-runtime/server/auth.js +21 -0
- package/dist/workspace-runtime/server/dispatch.js +861 -0
- package/dist/workspace-runtime/server/execution-group.js +88 -0
- package/dist/workspace-runtime/server/http.js +561 -0
- package/dist/workspace-runtime/server/lock.js +53 -0
- package/dist/workspace-runtime/server/types.js +1 -0
- package/dist/workspace-runtime/workspaces/context-error.js +2 -0
- package/dist/workspace-runtime/workspaces/file-snapshot.js +213 -0
- package/dist/workspace-runtime/workspaces/files.js +143 -0
- package/dist/workspace-runtime/workspaces/git.js +242 -0
- package/dist/workspace-runtime/workspaces/json5-edit.js +170 -0
- package/dist/workspace-runtime/workspaces/parameters.js +272 -0
- package/dist/workspace-runtime/workspaces/prepare.js +364 -0
- package/dist/workspace-runtime/workspaces/registry.js +107 -0
- package/dist/workspace-runtime/workspaces/revisions.js +31 -0
- package/package.json +6 -3
- package/project-template-v2/.claude/agents/artist.md +82 -0
- package/project-template-v2/.claude/agents/developer.md +153 -0
- package/project-template-v2/.claude/agents/game-designer.md +264 -0
- package/project-template-v2/.claude/agents/refs/artist-art-style-catalog.md +533 -0
- package/project-template-v2/.claude/agents/refs/artist-color-audio-recipes.md +153 -0
- package/project-template-v2/.claude/agents/refs/artist-dimension-axis.md +27 -0
- package/project-template-v2/.claude/agents/refs/artist-master-composite-recipes.md +208 -0
- package/project-template-v2/.claude/agents/refs/atom-skill-library.md +81 -0
- package/project-template-v2/.claude/agents/refs/developer-impl-cookbook.md +432 -0
- package/project-template-v2/.claude/agents/refs/framework-5-component-filter.md +252 -0
- package/project-template-v2/.claude/agents/refs/framework-game-feel-juice.md +266 -0
- package/project-template-v2/.claude/agents/refs/framework-mda.md +147 -0
- package/project-template-v2/.claude/agents/refs/game-designer-gameplay-sufficiency.md +123 -0
- package/project-template-v2/.claude/agents/refs/ta-3d-flip-recipe.md +88 -0
- package/project-template-v2/.claude/agents/refs/ta-atlas-deliverable-standard.md +67 -0
- package/project-template-v2/.claude/agents/refs/ta-batch-pipeline-recipes.md +120 -0
- package/project-template-v2/.claude/agents/refs/ta-image-generation-detail.md +300 -0
- package/project-template-v2/.claude/agents/refs/ta-image-ops-reference.md +495 -0
- package/project-template-v2/.claude/agents/refs/ta-pipeline-cookbook.md +1141 -0
- package/project-template-v2/.claude/agents/refs/ta-tools-reference.md +111 -0
- package/project-template-v2/.claude/agents/refs/ta-vfx-preset-catalog.md +365 -0
- package/project-template-v2/.claude/agents/refs/threejs-cannon-pitfalls.md +412 -0
- package/project-template-v2/.claude/agents/reviewer.md +75 -0
- package/project-template-v2/.claude/agents/technical-artist.md +86 -0
- package/project-template-v2/.claude/hooks/snapshot-milestone.mjs +243 -0
- package/project-template-v2/.claude/hooks/user-prompt.mjs +133 -0
- package/project-template-v2/.claude/settings.json +33 -0
- package/project-template-v2/.claude/skills/brainstorming/SKILL.md +161 -0
- package/project-template-v2/.claude/skills/brainstorming/scripts/frame-template.html +270 -0
- package/project-template-v2/.claude/skills/brainstorming/scripts/helper.js +177 -0
- package/project-template-v2/.claude/skills/brainstorming/scripts/server.cjs +354 -0
- package/project-template-v2/.claude/skills/brainstorming/scripts/start-server.sh +148 -0
- package/project-template-v2/.claude/skills/brainstorming/scripts/stop-server.sh +56 -0
- package/project-template-v2/.claude/skills/brainstorming/scripts/wait-for-selection.sh +62 -0
- package/project-template-v2/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/project-template-v2/.claude/skills/brainstorming/visual-companion.md +309 -0
- package/project-template-v2/.claude/skills/playcraft-ad-psychology/SKILL.md +182 -0
- package/project-template-v2/.claude/skills/playcraft-art-style-guide/SKILL.md +123 -0
- package/project-template-v2/.claude/skills/playcraft-asset-state-sheet/SKILL.md +205 -0
- package/project-template-v2/.claude/skills/playcraft-audio-generation/SKILL.md +280 -0
- package/project-template-v2/.claude/skills/playcraft-batch-pipeline/SKILL.md +184 -0
- package/project-template-v2/.claude/skills/playcraft-build-optimizer/SKILL.md +306 -0
- package/project-template-v2/.claude/skills/playcraft-image-generation/SKILL.md +298 -0
- package/project-template-v2/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +123 -0
- package/project-template-v2/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +254 -0
- package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +324 -0
- package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +97 -0
- package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +118 -0
- package/project-template-v2/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +137 -0
- package/project-template-v2/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +397 -0
- package/project-template-v2/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +296 -0
- package/project-template-v2/.claude/skills/playcraft-image-ops/SKILL.md +122 -0
- package/project-template-v2/.claude/skills/playcraft-image-processing/SKILL.md +219 -0
- package/project-template-v2/.claude/skills/playcraft-masking/SKILL.md +373 -0
- package/project-template-v2/.claude/skills/playcraft-playable-optimization/SKILL.md +161 -0
- package/project-template-v2/.claude/skills/playcraft-research/SKILL.md +215 -0
- package/project-template-v2/.claude/skills/playcraft-skill-recommender/SKILL.md +382 -0
- package/project-template-v2/.claude/skills/playcraft-sprite-generation/SKILL.md +423 -0
- package/project-template-v2/.claude/skills/playcraft-sprite-remix/SKILL.md +158 -0
- package/project-template-v2/.claude/skills/playcraft-sprite-sheet/SKILL.md +100 -0
- package/project-template-v2/.claude/skills/playcraft-storyboard/SKILL.md +167 -0
- package/project-template-v2/.claude/skills/playcraft-style-qa/SKILL.md +270 -0
- package/project-template-v2/.claude/skills/playcraft-text-rendering/SKILL.md +236 -0
- package/project-template-v2/.claude/skills/playcraft-vfx-animation/SKILL.md +130 -0
- package/project-template-v2/.claude/skills/playwright-cli/SKILL.md +390 -0
- package/project-template-v2/.claude/skills/playwright-cli/references/element-attributes.md +23 -0
- package/project-template-v2/.claude/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/project-template-v2/.claude/skills/playwright-cli/references/request-mocking.md +87 -0
- package/project-template-v2/.claude/skills/playwright-cli/references/running-code.md +240 -0
- package/project-template-v2/.claude/skills/playwright-cli/references/session-management.md +226 -0
- package/project-template-v2/.claude/skills/playwright-cli/references/spec-driven-testing.md +308 -0
- package/project-template-v2/.claude/skills/playwright-cli/references/storage-state.md +275 -0
- package/project-template-v2/.claude/skills/playwright-cli/references/test-generation.md +134 -0
- package/project-template-v2/.claude/skills/playwright-cli/references/tracing.md +142 -0
- package/project-template-v2/.claude/skills/playwright-cli/references/video-recording.md +153 -0
- package/project-template-v2/.claude/skills/session-analyzer/SKILL.md +386 -0
- package/project-template-v2/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +182 -0
- package/project-template-v2/.claude/skills/session-analyzer/scripts/find-turns.mjs +72 -0
- package/project-template-v2/.claude/skills/session-analyzer/scripts/heavy-output.mjs +121 -0
- package/project-template-v2/.claude/skills/session-analyzer/scripts/resolve-session.mjs +102 -0
- package/project-template-v2/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +127 -0
- package/project-template-v2/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +106 -0
- package/project-template-v2/.claude/skills/session-analyzer/scripts/time-gaps.mjs +128 -0
- package/project-template-v2/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +67 -0
- package/project-template-v2/.claude/snapshot.mjs +263 -0
- package/project-template-v2/.playcraft/skills.lock.json +152 -0
- package/project-template-v2/CLAUDE.md +146 -0
- package/project-template-v2/assets/audio/bgm/.gitkeep +0 -0
- package/project-template-v2/assets/audio/sfx/.gitkeep +0 -0
- package/project-template-v2/assets/bundles/.gitkeep +0 -0
- package/project-template-v2/assets/images/bg/.gitkeep +0 -0
- package/project-template-v2/assets/images/reference/.gitkeep +0 -0
- package/project-template-v2/assets/images/storyboard/.gitkeep +0 -0
- package/project-template-v2/assets/images/tiles/.gitkeep +0 -0
- package/project-template-v2/assets/images/ui/.gitkeep +0 -0
- package/project-template-v2/assets/images/vfx/.gitkeep +0 -0
- package/project-template-v2/assets/models/.gitkeep +0 -0
- package/project-template-v2/docs/harness/iteration-1/context-flow.md +254 -0
- package/project-template-v2/docs/harness/iteration-1/generate-flow.md +91 -0
- package/project-template-v2/docs/harness/iteration-1/ideate-flow.md +214 -0
- package/project-template-v2/docs/harness/iteration-1/optimize-flow.md +75 -0
- package/project-template-v2/docs/harness/iteration-1/wrapup-flow.md +63 -0
- package/project-template-v2/docs/harness/iteration-2/context-flow.md +223 -0
- package/project-template-v2/docs/harness/iteration-2/generate-flow.md +129 -0
- package/project-template-v2/docs/harness/iteration-2/ideate-flow.md +267 -0
- package/project-template-v2/docs/harness/iteration-2/optimize-flow.md +164 -0
- package/project-template-v2/docs/harness/iteration-2/wrapup-flow.md +115 -0
- package/project-template-v2/docs/harness/orchestrator-flow.md +364 -0
- package/project-template-v2/docs/project-state.json +60 -0
- package/project-template-v2/docs/project-state.md +72 -0
- package/project-template-v2/docs/standards/README.md +225 -0
- package/project-template-v2/docs/standards/agent-behavior-standards.md +174 -0
- package/project-template-v2/docs/standards/artifacts/design-brief.md +19 -0
- package/project-template-v2/docs/standards/artifacts/design.md +22 -0
- package/project-template-v2/docs/standards/artifacts/game-code.md +41 -0
- package/project-template-v2/docs/standards/artifacts/todo-list.md +41 -0
- package/project-template-v2/docs/standards/iter1-agent-behavior-standards.md +343 -0
- package/project-template-v2/game/index.ts +18 -0
- package/project-template-v2/globals.d.ts +51 -0
- package/project-template-v2/index.css +34 -0
- package/project-template-v2/index.html +18 -0
- package/project-template-v2/main.ts +9 -0
- package/project-template-v2/package.json +46 -0
- package/project-template-v2/skills/_shared/scripts/dispatch-clear.mjs +31 -0
- package/project-template-v2/skills/_shared/scripts/dispatch-set.mjs +86 -0
- package/project-template-v2/skills/_shared/scripts/dod-check.mjs +153 -0
- package/project-template-v2/skills/_shared/scripts/handoff-append.mjs +70 -0
- package/project-template-v2/skills/_shared/scripts/lib/validator-artifacts.mjs +91 -0
- package/project-template-v2/skills/_shared/scripts/pipeline/dod-config.mjs +131 -0
- package/project-template-v2/skills/_shared/scripts/pipeline/index.mjs +80 -0
- package/project-template-v2/skills/_shared/scripts/pipeline/iteration-1-core.mjs +90 -0
- package/project-template-v2/skills/_shared/scripts/pipeline/iteration-2-wrap.mjs +93 -0
- package/project-template-v2/skills/_shared/scripts/pipeline/iteration-3-visual.mjs +23 -0
- package/project-template-v2/skills/_shared/scripts/render-project-state.mjs +230 -0
- package/project-template-v2/skills/_shared/scripts/state-advance-stage.mjs +58 -0
- package/project-template-v2/skills/_shared/scripts/state-get.mjs +339 -0
- package/project-template-v2/skills/_shared/scripts/state-handoff.mjs +39 -0
- package/project-template-v2/skills/_shared/scripts/state-set.mjs +94 -0
- package/project-template-v2/skills/_shared/scripts/state-store.mjs +783 -0
- package/project-template-v2/skills/_shared/scripts/todo-add.mjs +88 -0
- package/project-template-v2/skills/_shared/scripts/todo-get.mjs +130 -0
- package/project-template-v2/skills/_shared/scripts/todo-remove.mjs +33 -0
- package/project-template-v2/skills/_shared/scripts/todo-set.mjs +47 -0
- package/project-template-v2/skills/_shared/scripts/verify-asset-code-sync.mjs +268 -0
- package/project-template-v2/skills/_shared/scripts/verify-env.mjs +285 -0
- package/project-template-v2/skills/_shared/scripts/verify-placeholders.mjs +161 -0
- package/project-template-v2/skills/playable-autoplay/SKILL.md +176 -0
- package/project-template-v2/skills/playable-autoplay/agents/openai.yaml +4 -0
- package/project-template-v2/skills/playable-debug/SKILL.md +116 -0
- package/project-template-v2/skills/playable-debug/agents/openai.yaml +4 -0
- package/project-template-v2/skills/playable-debug/references/debug-config.md +40 -0
- package/project-template-v2/skills/playable-record/SKILL.md +140 -0
- package/project-template-v2/skills/playable-record/scripts/lib/dev-server.mjs +104 -0
- package/project-template-v2/skills/playable-record/scripts/lib/record-audio-bridge.js +141 -0
- package/project-template-v2/skills/playable-record/scripts/record-playable.mjs +425 -0
- package/project-template-v2/skills/playable-record/scripts/verify-contract.mjs +261 -0
- package/project-template-v2/skills/playable-record/scripts/verify-firstwin.mjs +398 -0
- package/project-template-v2/skills/playable-record/scripts/verify-fusion.mjs +322 -0
- package/project-template-v2/skills/playable-record/scripts/verify-lifecycle.mjs +105 -0
- package/project-template-v2/skills/playable-record/scripts/verify-vlm-video.mjs +230 -0
- package/project-template-v2/skills/playable-validate/SKILL.md +61 -0
- package/project-template-v2/skills/playable-validate/validation-rules.md +14 -0
- package/project-template-v2/skills/playable-verify-ui/SKILL.md +63 -0
- package/project-template-v2/skills/playable-verify-ui/scripts/lib/__init__.py +1 -0
- package/project-template-v2/skills/playable-verify-ui/scripts/lib/config_expr.js +218 -0
- package/project-template-v2/skills/playable-verify-ui/scripts/lib/node_utils.js +51 -0
- package/project-template-v2/skills/playable-verify-ui/scripts/lib/profile_loader.py +59 -0
- package/project-template-v2/skills/playable-verify-ui/scripts/lib/report.py +106 -0
- package/project-template-v2/skills/playable-verify-ui/scripts/lib/runtime_contract.js +116 -0
- package/project-template-v2/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +59 -0
- package/project-template-v2/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +64 -0
- package/project-template-v2/skills/playable-verify-ui/scripts/verify_runtime_contract.js +58 -0
- package/project-template-v2/skills/playable-verify-ui/scripts/verify_text_overlap.py +333 -0
- package/project-template-v2/ta-workspace/scripts/.gitkeep +0 -0
- package/project-template-v2/tsconfig.json +20 -0
- package/project-template-v2/vite.config.ts +27 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Artist Dimension Axis Workflow
|
|
2
|
+
|
|
3
|
+
> Read in Phase 1 after confirming Dimension Axis from `docs/design-brief.md`. **artist-handoff-v2**: visual baseline = MC + ASR (not scattered sample PNGs). TA handles mass production.
|
|
4
|
+
|
|
5
|
+
## Flat 2D (Standard)
|
|
6
|
+
|
|
7
|
+
- **MC** concept panel shows all element types + UI + static text.
|
|
8
|
+
- **ASR** element sheet: 2–3 states per type (idle / selected / matched).
|
|
9
|
+
- TA: bg extract, completions, atlases, VFX.
|
|
10
|
+
|
|
11
|
+
## 2.5D Visual (Depth Layers)
|
|
12
|
+
|
|
13
|
+
- MC concept panel: perspective scene + layered elements.
|
|
14
|
+
- ASR: angled sprites in element sheet; note depth layers in Style Intent Notes.
|
|
15
|
+
- Background: default **TA extract from MC**; dedicated bg sample only if Game Designer routes an ICP supplementary art request.
|
|
16
|
+
|
|
17
|
+
## Isometric
|
|
18
|
+
|
|
19
|
+
- ASR element sheet: representative isometric tiles (2–3 states).
|
|
20
|
+
- Optional: `playcraft tools search-image` for reference.
|
|
21
|
+
- TA: remaining tiles, atlas, animation.
|
|
22
|
+
|
|
23
|
+
## True 3D
|
|
24
|
+
|
|
25
|
+
- Artist does **not** output GLB.
|
|
26
|
+
- Phase 1 ring 3 verify: 2D reference texture PNG (path in `artist-log`) per `artist-deliverable-spec.md` § Phase 1 exception.
|
|
27
|
+
- TA: `generate-3d`, GLB, flip sprites.
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
# Master Composite — 游戏类型 Prompt 配方 & 参考
|
|
2
|
+
|
|
3
|
+
> 本文件供 Artist 在生成 Master Composite 时按需查阅。核心规则见 `playcraft-storyboard` skill。
|
|
4
|
+
|
|
5
|
+
## 模型策略(MC 专用 — 仅高质量模型)
|
|
6
|
+
|
|
7
|
+
Master Composite **禁止**使用低档或实验性模型。生成前可运行 `playcraft tools list-image-models` 核对 capability,但 **MC 只允许下表**:
|
|
8
|
+
|
|
9
|
+
| 允许 `--image-model` | 典型分配 |
|
|
10
|
+
| ------------------------------ | ----------------------------------------------- |
|
|
11
|
+
| **`mulerouter/gpt-image-2`** | Option A(主推);Option C 可复用 + 不同 prompt |
|
|
12
|
+
| **`mulerouter/nano-banana-2`** | Option B;或 A/B 各用一模型做画风对比 |
|
|
13
|
+
|
|
14
|
+
**禁止用于 MC**:`gemini-*`、`flux-*`、`hy-image-*`、`wan*`、`qwen*`、裸 `gpt-image-2`、以及上表以外的任何模型。
|
|
15
|
+
|
|
16
|
+
> 多方案差异应来自 **prompt / 配色 / 构图**,不是换弱模型。ASR 双板 `--image-model` 须与已选 MC **完全一致**(见 `playcraft-asset-state-sheet` skill)。
|
|
17
|
+
|
|
18
|
+
### 模型特性速查(仅白名单内)
|
|
19
|
+
|
|
20
|
+
| 模型 | 特点 | 适合 |
|
|
21
|
+
| -------------------------- | ----------------------------- | ----------------------------------- |
|
|
22
|
+
| `mulerouter/gpt-image-2` | 细节、光影、复杂 UI、中文元素 | 写实、半写实、精细卡通、麻将/汉字类 |
|
|
23
|
+
| `mulerouter/nano-banana-2` | 色彩、构图、速度快 | 明亮卡通、简洁 UI、快速迭代第二方案 |
|
|
24
|
+
|
|
25
|
+
> `--reference-image` 只能用于 CAPABILITY 为 `text+image` 或 `image→image` 的模型;白名单内两模型均支持图生图。
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 游戏类型 Prompt 配方
|
|
30
|
+
|
|
31
|
+
以下模板可直接复制修改。所有模板遵循 skill 中的 5 面板并排结构 + 编号标签。
|
|
32
|
+
|
|
33
|
+
### Match-3 消除游戏
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
playcraft tools generate-image \
|
|
37
|
+
--prompt "Mobile game UI design sheet, 5 panels side by side in a horizontal row, each panel is a complete portrait-oriented mobile game screenshot for a match-3 puzzle game. Each panel has a numbered label at the top.
|
|
38
|
+
|
|
39
|
+
Panel 1 '1. Main Gameplay': Complete game screenshot — colorful candy gem grid on [BG_DESCRIPTION], all gem types visible ([TYPE_LIST]), HUD strip showing score and moves counter, 'Play Now' CTA button at bottom. [MASCOT_DESCRIPTION].
|
|
40
|
+
|
|
41
|
+
Panel 2 '2. Key Hook': Gems exploding in chains, dynamic burst VFX, score [HIGH_SCORE], combo text visible, vivid colors, dramatic moment, high contrast, minimal UI.
|
|
42
|
+
|
|
43
|
+
Panel 3 '3. Onboarding HUD': Finger tap icon pointing at two matching gems, soft glow highlight on target pair, simplified board, score reset, friendly guidance arrow, speech bubble with hint text.
|
|
44
|
+
|
|
45
|
+
Panel 4 '4. End Card': Victory celebration — [DARK_BG], '[WIN_TEXT]', treasure chest with rewards, reward amount visible, 'Install Now' CTA button prominent, confetti.
|
|
46
|
+
|
|
47
|
+
Panel 5 '5. CTA Always Visible': Mid-game screenshot showing normal gameplay in progress, with 'Play Now' CTA button clearly visible at bottom-right during active play, proving CTA is always accessible.
|
|
48
|
+
|
|
49
|
+
[STYLE_KEYWORDS]. All 5 panels are portrait-oriented mobile screenshots arranged left-to-right. Every panel has complete game UI (HUD bar, score display, buttons). Consistent art style across all panels. Thin vertical dividers between panels. Each panel has its numbered label at the top." \
|
|
50
|
+
--output assets/images/storyboard/master_composite_option_A.png \
|
|
51
|
+
--image-model mulerouter/gpt-image-2 \
|
|
52
|
+
--image-size 4K
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
### 跑酷 / 平台跳跃游戏
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
playcraft tools generate-image \
|
|
61
|
+
--prompt "Mobile game UI design sheet, 5 panels side by side in a horizontal row, each panel is a complete portrait-oriented mobile game screenshot for an endless runner game. Each panel has a numbered label at the top.
|
|
62
|
+
|
|
63
|
+
Panel 1 '1. Main Gameplay': Complete game screenshot — character running through [ENVIRONMENT], coin trail ahead, obstacles visible, HUD showing distance and coins collected, 'Play Now' button at bottom.
|
|
64
|
+
|
|
65
|
+
Panel 2 '2. Key Hook': Character at maximum speed, motion blur, dynamic camera angle, dramatic lighting, speed lines, high contrast, minimal HUD.
|
|
66
|
+
|
|
67
|
+
Panel 3 '3. Onboarding HUD': Jump arrow icon showing first obstacle, character highlighted with glow, simple environment, clear guidance text bubble.
|
|
68
|
+
|
|
69
|
+
Panel 4 '4. End Card': Dark background, distance record display, 'Install Now' CTA button prominent, reward chest, achievement badges.
|
|
70
|
+
|
|
71
|
+
Panel 5 '5. CTA Always Visible': Mid-game screenshot with character dodging obstacles, 'Play Now' button clearly visible at bottom-right during active play.
|
|
72
|
+
|
|
73
|
+
[STYLE_KEYWORDS]. All 5 panels are portrait-oriented mobile screenshots arranged left-to-right. Every panel has complete game UI. Consistent art style across all panels. Thin vertical dividers. Numbered labels at top." \
|
|
74
|
+
--output assets/images/storyboard/master_composite_option_A.png \
|
|
75
|
+
--image-model mulerouter/gpt-image-2 \
|
|
76
|
+
--image-size 4K
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
### 卡牌 / 麻将游戏
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
playcraft tools generate-image \
|
|
85
|
+
--prompt "Mobile game UI design sheet, 5 panels side by side in a horizontal row, each panel is a complete portrait-oriented mobile game screenshot for a Mahjong Solitaire game. Each panel has a numbered label at the top.
|
|
86
|
+
|
|
87
|
+
Panel 1 '1. Main Gameplay': Complete game screenshot — Mahjong tile grid on dark green felt table, tiles with Chinese symbols, cute mascot character, HUD showing score and timer, 'Play Now' button at bottom. Rich warm lighting.
|
|
88
|
+
|
|
89
|
+
Panel 2 '2. Key Hook': Near-win combo state — high score, combo text with golden sparkles, most tiles matched with golden borders, mascot excited expression, warm amber glow, dramatic tension.
|
|
90
|
+
|
|
91
|
+
Panel 3 '3. Onboarding HUD': Clean simplified board, finger tap icon pointing at two matching tiles, speech bubble 'Tap matching tiles', score reset, progress indicator, mascot encouraging smile.
|
|
92
|
+
|
|
93
|
+
Panel 4 '4. End Card': Victory — dark elegant background, '恭喜通关!' text in gold, treasure chest, reward amount with coin icon, 'Install Now' CTA button in contrasting color, golden confetti.
|
|
94
|
+
|
|
95
|
+
Panel 5 '5. CTA Always Visible': Mid-game screenshot showing active gameplay with tiles on board, score and timer visible, 'Play Now' button clearly visible at bottom-right during play.
|
|
96
|
+
|
|
97
|
+
Premium casual style, warm amber lighting, traditional Chinese aesthetic with modern UI, glossy tile surfaces. All 5 panels portrait-oriented, left-to-right. Every panel has complete game UI. Consistent art style. Thin vertical dividers. Numbered labels." \
|
|
98
|
+
--output assets/images/storyboard/master_composite_option_A.png \
|
|
99
|
+
--image-model mulerouter/gpt-image-2 \
|
|
100
|
+
--image-size 4K
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
### 射击 / 动作游戏
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
playcraft tools generate-image \
|
|
109
|
+
--prompt "Mobile game UI design sheet, 5 panels side by side in a horizontal row, each panel is a complete portrait-oriented mobile game screenshot for a casual shooting game. Each panel has a numbered label at the top.
|
|
110
|
+
|
|
111
|
+
Panel 1 '1. Main Gameplay': Complete game screenshot — player aiming at enemies in [ENVIRONMENT], weapon visible, HUD showing ammo/health/score, 'Play Now' button at bottom.
|
|
112
|
+
|
|
113
|
+
Panel 2 '2. Key Hook': Target reticle locking on enemy, muzzle flash, dramatic action lighting, high contrast, speed lines, minimal HUD.
|
|
114
|
+
|
|
115
|
+
Panel 3 '3. Onboarding HUD': Aim crosshair tutorial overlay, slow-motion visual hint, simple enemy highlighted with marker, guidance text.
|
|
116
|
+
|
|
117
|
+
Panel 4 '4. End Card': Dark background, victory text, loot box with rewards, 'Install Now' CTA button prominent.
|
|
118
|
+
|
|
119
|
+
Panel 5 '5. CTA Always Visible': Mid-game screenshot with active combat, 'Play Now' button clearly visible at bottom-right during play.
|
|
120
|
+
|
|
121
|
+
[STYLE_KEYWORDS]. All 5 panels portrait-oriented left-to-right. Every panel has complete game UI. Consistent art style. Thin vertical dividers. Numbered labels at top." \
|
|
122
|
+
--output assets/images/storyboard/master_composite_option_A.png \
|
|
123
|
+
--image-model mulerouter/gpt-image-2 \
|
|
124
|
+
--image-size 4K
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 故障恢复
|
|
130
|
+
|
|
131
|
+
### 问题:模型拒绝生成(content policy)
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# 移除触发审查的词语,改用间接描述
|
|
135
|
+
# "explosion, fire, destruction" → "dramatic burst effect, particle shower, vivid energy release"
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 问题:面板内容混淆(相邻面板之间内容串了)
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
# 方案 1:强化编号标签
|
|
142
|
+
"Panel 1 '1. Main Gameplay' (leftmost):..., Panel 2 '2. Key Hook' (second from left):..."
|
|
143
|
+
|
|
144
|
+
# 方案 2:加描述性分隔符
|
|
145
|
+
"5 panels separated by clear vertical white dividers. Each panel has bold numbered header."
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 问题:面板间风格不统一
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
# 强化风格约束词
|
|
152
|
+
# 原始:"Consistent art style across all panels."
|
|
153
|
+
# 强化版:"All 5 panels MUST use identical art style, color palette, and character design. Same rendering style throughout. All panels depict the SAME game."
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 问题:某帧内容不清晰
|
|
157
|
+
|
|
158
|
+
发现某帧表达不清晰时,**不必重新生成整张**,而是在 `style-exploration.md` 的 Experience Flow Design 章节补充文字说明。
|
|
159
|
+
|
|
160
|
+
### 问题:Concept Panel 缺少某些元素类型
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# 方案 1:在 prompt Panel 1 段明确列出 "all [N] element types visible: [逐个列出]"
|
|
164
|
+
# 方案 2:接受当前 MC,由 ASR 双板补足(ASR 是 TA 的主要提取源)
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Reference-Image 与多方案策略
|
|
170
|
+
|
|
171
|
+
### 首个方案(无 reference)
|
|
172
|
+
|
|
173
|
+
Master Composite 是 Phase 1 的**第一张生成图**,通常无前序图可作 reference:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
playcraft tools generate-image \
|
|
177
|
+
--prompt "<5-panel prompt>" \
|
|
178
|
+
--output assets/images/storyboard/master_composite_option_A.png \
|
|
179
|
+
--image-model mulerouter/gpt-image-2 \
|
|
180
|
+
--image-size 4K
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### 后续方案(可选 reference)
|
|
184
|
+
|
|
185
|
+
后续方案可用已生成的方案 A 作为风格参考:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
playcraft tools generate-image \
|
|
189
|
+
--prompt "<方案 B prompt>" \
|
|
190
|
+
--output assets/images/storyboard/master_composite_option_B.png \
|
|
191
|
+
--reference-image assets/images/storyboard/master_composite_option_A.png \
|
|
192
|
+
--image-model mulerouter/nano-banana-2 \
|
|
193
|
+
--image-size 4K
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### 输出命名规范
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
assets/images/storyboard/master_composite_option_A.png ← 方案 A
|
|
200
|
+
assets/images/storyboard/master_composite_option_B.png ← 方案 B
|
|
201
|
+
assets/images/storyboard/master_composite.png ← ring 3 Ring Gate 确认后复制
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
ring 3 Ring Gate 确认后:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
cp assets/images/storyboard/master_composite_option_[X].png assets/images/storyboard/master_composite.png
|
|
208
|
+
```
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Atom Skill 组件库
|
|
2
|
+
|
|
3
|
+
> **读者**:Game Designer / Developer —— 任何需要发现、评估、复用 Skill 的角色。
|
|
4
|
+
> **用途**:理解 `playcraft skills` 组件库是什么、能带来什么价值、如何按复用等级正确使用。
|
|
5
|
+
> **命令细节不在此文** —— 子命令用法见 `playcraft-skill-recommender` skill。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. 是什么:双轨组件库
|
|
10
|
+
|
|
11
|
+
`playcraft skills` 是一套从真实项目蒸馏出来的双轨组件库:
|
|
12
|
+
|
|
13
|
+
| 轨 | 是什么 | 命名 | 怎么接触 |
|
|
14
|
+
| ------------------ | ------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------- |
|
|
15
|
+
| **Atom Skills** | 可组装进项目的**代码 / 资源积木** | `<name>.<bundleType>`(如 `grid_board_layout.aicomponent`) | 选中后会 link 进 `.claude/skills/`,可直接 read;用 `scaffold` 落地 |
|
|
16
|
+
| **Platform Tools** | 平台**用法指南**(生图 / 生音频 / 构建 / 发布等) | `playcraft-<name>` | 已 link 进 `.claude/skills/`,Claude Code 自动加载 |
|
|
17
|
+
|
|
18
|
+
本文只讲 **Atom Skills**(游戏积木)。Platform Tools 各自的 SKILL.md 自解释。
|
|
19
|
+
|
|
20
|
+
Atom Skills 按 6 层 category 组织:`engine → asset → gameplay → visual → ui → misc`。`gameplay` 层拥有玩法真理(规则 / 状态 / 合法操作);`visual` / `ui` 消费玩法状态,不反向拥有玩法逻辑。
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 2. 价值:站在已有实现的肩膀上
|
|
25
|
+
|
|
26
|
+
库里的每个 Atom 都蒸馏自真实可玩项目的源码与资产。复用它意味着:
|
|
27
|
+
|
|
28
|
+
- **省实现量**:现成的类、状态机、布局、规则骨架,比从零写更快更稳。
|
|
29
|
+
- **对齐工程惯例**:接口契约、依赖声明、渲染分层都已经过验证。
|
|
30
|
+
- **不漏现成能力**:库里上百个积木,凭空想象容易重造已有的轮子或漏掉合适的玩法 / 资源。
|
|
31
|
+
|
|
32
|
+
> 原则:库的价值是让你站在高质量实现上,不是为了合规填表。读了、参考了、产出更好代码就是好的;某个 Atom 确实不适用,**记录原因后从零实现完全 OK**。
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 3. 四层复用价值(L1–L4)
|
|
37
|
+
|
|
38
|
+
一个 Atom 提供的价值分布在四个层级,读取时按层级提取:
|
|
39
|
+
|
|
40
|
+
| 层级 | 内容 | 使用方式 | 约束 |
|
|
41
|
+
| --------------------------- | ------------------------------------ | ----------------------------- | ------------------------------------ |
|
|
42
|
+
| **L4 · Scaffold 代码** | `ref/` 源码、类实现、完整模块 | `scaffold` 后直接 import 使用 | 有现成就用,最高价值 |
|
|
43
|
+
| **L3 · Assets 预制资产** | mediaGroups 图片 / 音频 / 3D 模型 | link 后做后处理 | 有匹配项必须复用,不得无视后从零生成 |
|
|
44
|
+
| **L2 · Recipe 模板** | prompt 模板、生成参数、配置范例 | 作为 AI 生产的输入指导 | 不可脱离 Recipe 约束自由发挥 |
|
|
45
|
+
| **L1 · Reference 设计参考** | 布局坐标、状态机、规则逻辑、API 模式 | 作为实现蓝图参考 | 借鉴思路,不照搬不适用部分 |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 4. 复用等级(reuseLevel)
|
|
50
|
+
|
|
51
|
+
对每个选用的 Atom,按匹配度判定一个复用等级:
|
|
52
|
+
|
|
53
|
+
| 等级 | 含义 | 编码约束 |
|
|
54
|
+
| ------------- | ------------------------------------------ | ---------------------------------------- |
|
|
55
|
+
| `scaffold` | ref 源码且功能高度匹配,落地后改配置即可 | 主动参考 scaffold 代码,省去大量从零实现 |
|
|
56
|
+
| `reference` | 架构匹配但需替换业务逻辑,保留核心设计模式 | 借鉴状态机结构 / 事件名 / 数据流 |
|
|
57
|
+
| `design-only` | 提供设计灵感但功能差异大 | 仅借鉴 API / 算法 / 布局 / 状态机思路 |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 5. 怎么读一个 Atom 的 SKILL.md
|
|
62
|
+
|
|
63
|
+
读取时关注这些结构化段落:
|
|
64
|
+
|
|
65
|
+
| 段落 | 提取内容 |
|
|
66
|
+
| ---------------------- | ----------------------------------------------------- |
|
|
67
|
+
| **Recipe / Result** | 做什么、产出什么、做到什么算完成 |
|
|
68
|
+
| **Scaffold** | `scaffold` 的产出位置(目标路径) |
|
|
69
|
+
| **Adapter** | Provides / Requires / Consumed by —— 依赖图与集成入口 |
|
|
70
|
+
| **Imports** | 硬依赖(必须加载)/ 软槽位(可替换资源) |
|
|
71
|
+
| **Key API / 使用示例** | 构造参数、方法签名、最小调用链 |
|
|
72
|
+
|
|
73
|
+
**读取三层次(铁律)**:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
L1 · SKILL.md —— 了解“是什么、提供什么”
|
|
77
|
+
L2 · ref/ 源码 —— 提取真实类签名、事件名、config 结构(以此为准)
|
|
78
|
+
L3 · assets/ —— 确认 frame 名、文件路径、资源尺寸
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
> **SKILL.md 与源码若有出入,以 ref 源码为准。** 只读 SKILL.md 不算理解 Skill;不读源码就集成,代码必出 bug。
|