@playcraft/cli 0.0.40 → 0.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/README.md +66 -3
  2. package/dist/atom-plan/validate-atom-plan.js +298 -0
  3. package/dist/cli-root-help.js +1 -1
  4. package/dist/commands/3d.js +363 -0
  5. package/dist/commands/create.js +337 -0
  6. package/dist/commands/image.js +1337 -43
  7. package/dist/commands/recommend.js +1 -1
  8. package/dist/commands/remix.js +213 -0
  9. package/dist/commands/skills.js +1379 -0
  10. package/dist/commands/tools-3d.js +473 -0
  11. package/dist/commands/tools-generation.js +454 -0
  12. package/dist/commands/tools-project.js +400 -0
  13. package/dist/commands/tools-research.js +37 -0
  14. package/dist/commands/tools-research.test.js +216 -0
  15. package/dist/commands/tools-utils.js +164 -0
  16. package/dist/commands/tools.js +7 -616
  17. package/dist/config.js +2 -0
  18. package/dist/index.js +19 -1
  19. package/package.json +9 -3
  20. package/project-template/.claude/agents/designer.md +116 -0
  21. package/project-template/.claude/agents/developer.md +133 -0
  22. package/project-template/.claude/agents/pm.md +164 -0
  23. package/project-template/.claude/agents/refs/README.md +67 -0
  24. package/project-template/.claude/agents/refs/designer-art-style-catalog.md +533 -0
  25. package/project-template/.claude/agents/refs/designer-color-audio-recipes.md +153 -0
  26. package/project-template/.claude/agents/refs/designer-deliverable-spec.md +167 -0
  27. package/project-template/.claude/agents/refs/designer-dimension-axis.md +27 -0
  28. package/project-template/.claude/agents/refs/designer-handoff-v2-checklist.md +68 -0
  29. package/project-template/.claude/agents/refs/designer-master-composite-recipes.md +216 -0
  30. package/project-template/.claude/agents/refs/designer-style-exploration-flow.md +37 -0
  31. package/project-template/.claude/agents/refs/developer-dev-handoff.md +109 -0
  32. package/project-template/.claude/agents/refs/developer-impl-cookbook.md +134 -0
  33. package/project-template/.claude/agents/refs/developer-phase1-flow.md +211 -0
  34. package/project-template/.claude/agents/refs/pm-workflow-detail.md +545 -0
  35. package/project-template/.claude/agents/refs/reviewer-six-dimension-eval.md +286 -0
  36. package/project-template/.claude/agents/refs/ta-3d-flip-recipe.md +85 -0
  37. package/project-template/.claude/agents/refs/ta-atlas-deliverable-standard.md +46 -0
  38. package/project-template/.claude/agents/refs/ta-batch-pipeline-recipes.md +120 -0
  39. package/project-template/.claude/agents/refs/ta-image-generation-detail.md +356 -0
  40. package/project-template/.claude/agents/refs/ta-image-ops-reference.md +495 -0
  41. package/project-template/.claude/agents/refs/ta-pipeline-cookbook.md +699 -0
  42. package/project-template/.claude/agents/refs/ta-tools-reference.md +111 -0
  43. package/project-template/.claude/agents/refs/ta-vfx-preset-catalog.md +365 -0
  44. package/project-template/.claude/agents/reviewer.md +103 -0
  45. package/project-template/.claude/agents/technical-artist.md +111 -0
  46. package/project-template/.claude/hooks/README.md +36 -0
  47. package/project-template/.claude/hooks/validate-atom-plan.mjs +224 -0
  48. package/project-template/.claude/hooks/validate-workflow-stop.mjs +258 -0
  49. package/project-template/.claude/settings.json +32 -0
  50. package/project-template/.claude/settings.local.json +4 -0
  51. package/project-template/.claude/skills/playcraft-ad-psychology/SKILL.md +182 -0
  52. package/project-template/.claude/skills/playcraft-art-style-guide/SKILL.md +123 -0
  53. package/project-template/.claude/skills/playcraft-asset-state-sheet/SKILL.md +141 -0
  54. package/project-template/.claude/skills/playcraft-audio-generation/SKILL.md +280 -0
  55. package/project-template/.claude/skills/playcraft-batch-pipeline/SKILL.md +184 -0
  56. package/project-template/.claude/skills/playcraft-build-optimizer/SKILL.md +306 -0
  57. package/project-template/.claude/skills/playcraft-image-generation/SKILL.md +229 -0
  58. package/project-template/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +123 -0
  59. package/project-template/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +254 -0
  60. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +235 -0
  61. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +97 -0
  62. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +118 -0
  63. package/project-template/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +137 -0
  64. package/project-template/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +397 -0
  65. package/project-template/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +296 -0
  66. package/project-template/.claude/skills/playcraft-image-ops/SKILL.md +122 -0
  67. package/project-template/.claude/skills/playcraft-masking/SKILL.md +373 -0
  68. package/project-template/.claude/skills/playcraft-research/SKILL.md +212 -0
  69. package/project-template/.claude/skills/playcraft-sprite-generation/SKILL.md +423 -0
  70. package/project-template/.claude/skills/playcraft-storyboard/SKILL.md +148 -0
  71. package/project-template/.claude/skills/playcraft-style-qa/SKILL.md +270 -0
  72. package/project-template/.claude/skills/playcraft-text-rendering/SKILL.md +236 -0
  73. package/project-template/.claude/skills/playcraft-vfx-animation/SKILL.md +130 -0
  74. package/project-template/.claude/skills/playcraft-workflow/SKILL.md +396 -0
  75. package/project-template/.cursor/hooks.json +17 -0
  76. package/project-template/.cursor/rules/playcraft-orchestrator.mdc +87 -0
  77. package/project-template/.cursor/rules/playcraft-subagent-boundary.mdc +18 -0
  78. package/project-template/CLAUDE.md +240 -0
  79. package/project-template/assets/audio/bgm/.gitkeep +0 -0
  80. package/project-template/assets/audio/sfx/.gitkeep +0 -0
  81. package/project-template/assets/bundles/.gitkeep +0 -0
  82. package/project-template/assets/images/bg/.gitkeep +0 -0
  83. package/project-template/assets/images/reference/.gitkeep +0 -0
  84. package/project-template/assets/images/storyboard/.gitkeep +0 -0
  85. package/project-template/assets/images/tiles/.gitkeep +0 -0
  86. package/project-template/assets/images/ui/.gitkeep +0 -0
  87. package/project-template/assets/images/vfx/.gitkeep +0 -0
  88. package/project-template/assets/models/.gitkeep +0 -0
  89. package/project-template/docs/team/agent-conduct.md +105 -0
  90. package/project-template/docs/team/agent-runtime-matrix.md +62 -0
  91. package/project-template/docs/team/atom-plan-format.md +74 -0
  92. package/project-template/docs/team/collaboration.md +288 -0
  93. package/project-template/docs/team/core-model.md +50 -0
  94. package/project-template/docs/team/platform-capabilities.md +15 -0
  95. package/project-template/docs/team/workflow-changelog.md +51 -0
  96. package/project-template/docs/team/workflow-consistency-checklist.md +128 -0
  97. package/project-template/game/config/.gitkeep +0 -0
  98. package/project-template/game/gameplay/.gitkeep +0 -0
  99. package/project-template/game/scenes/.gitkeep +0 -0
  100. package/project-template/logs/.gitkeep +0 -0
  101. package/project-template/ta-workspace/logs/.gitkeep +0 -0
  102. package/project-template/ta-workspace/scripts/.gitkeep +0 -0
  103. package/project-template/ta-workspace/tmp/.gitkeep +0 -0
  104. package/project-template/templates/atom-plan.template.json +26 -0
  105. package/project-template/templates/atom-plan.template.md +76 -0
  106. package/project-template/templates/design-brief.template.md +195 -0
  107. package/project-template/templates/design-lens-checklist.reference.md +117 -0
  108. package/project-template/templates/design-methodology.md +99 -0
  109. package/project-template/templates/designer-log.template.md +98 -0
  110. package/project-template/templates/developer-log.template.md +140 -0
  111. package/project-template/templates/five-axis-framework.md +186 -0
  112. package/project-template/templates/intent-clarifications.template.md +58 -0
  113. package/project-template/templates/layout-spec.template.md +132 -0
  114. package/project-template/templates/project-state.template.md +219 -0
  115. package/project-template/templates/review-report.template.md +166 -0
  116. package/project-template/templates/style-exploration.template.md +93 -0
  117. package/project-template/templates/ta-log.template.md +205 -0
@@ -0,0 +1,167 @@
1
+ # Designer — Deliverable spec (designer-handoff-v2)
2
+
3
+ > **When to read**: Before generating Master Composite, ASR, audio, or digit strip. Cross-reference `playcraft-storyboard`, `playcraft-asset-state-sheet`, `playcraft-text-rendering`, `playcraft-image-generation`, and `refs/designer-handoff-v2-checklist.md`.
4
+
5
+ ## Resolution Strategy
6
+
7
+ AI image models support up to **4K output** (~4096px per side). Individual game assets only need **~720p**. Pack multiple assets into one generation for style consistency and fewer API calls. TA achieves per-asset dimensions via crop/resize from MC/ASR.
8
+
9
+ All image generation MUST use maximum supported resolution.
10
+
11
+ ## Text-as-Image Strategy
12
+
13
+ All visible text is image assets — **zero font files**. Static text is baked into the MC concept panel; dynamic numbers use a Digit Sprite Strip.
14
+
15
+ > **Invoke `playcraft-text-rendering`** for static-text extraction (TA default) and digit strip (Designer Phase 2).
16
+
17
+ ### Static text (default)
18
+
19
+ | Step | Role |
20
+ | ------------------------------ | ------------------------------------------- |
21
+ | Bake into MC | Designer (concept panel) |
22
+ | Extract to `layout-spec` paths | TA (`crop` / `segment`) |
23
+ | Extract fails | ICP → Designer **one isolated PNG** per row |
24
+
25
+ ### Background (default)
26
+
27
+ | Step | Role |
28
+ | ------------------------------------- | ---------------------------------------------------------------- |
29
+ | Extract from MC concept panel | TA → `layout-spec` bg path |
30
+ | 2.5D / hero bg needs dedicated sample | PM marks VisualAtom `assignTo: Designer` → ICP isolated PNG only |
31
+
32
+ ## Phase 1 Deliverables
33
+
34
+ Gate #2a: **one MC per option** + Experience Flow text. Gate #2b (after `selectedMcOption`): **ASR dual sheets** + **Handoff Pack** (below).
35
+
36
+ | # | Deliverable | Format | Spec |
37
+ | --- | --------------------------------- | ------ | ---------------------------------------------------------- |
38
+ | 1 | **Master Composite** | PNG 4K | 5 panels: concept + 4 storyboard scenes |
39
+ | 2a | **UI State Reference Sheet** | PNG 4K | UI/HUD per interaction state |
40
+ | 2b | **Element State Reference Sheet** | PNG 4K | Gameplay elements per event/special state |
41
+ | 3 | **Experience Flow Design** | Text | `style-exploration.md` |
42
+ | 4 | **Gate #2b Handoff Pack** | Text | `designer-log.md` + Motion Notes in `style-exploration.md` |
43
+
44
+ > **ASR** = authoring-time reference sprite sheets. **Not** runtime `.webp` + `.json` atlases (TA in `production`).
45
+
46
+ Every generation outputs a sidecar `.json` (prompt + parameters).
47
+
48
+ ---
49
+
50
+ ### Deliverable 1: Master Composite
51
+
52
+ > **Skills**: `playcraft-storyboard` + `refs/designer-master-composite-recipes.md`
53
+
54
+ | # | Panel | Content |
55
+ | --- | ------------------ | ---------------------------------------------------- |
56
+ | 1 | Main Gameplay | Full game shot: all element types + static text + UI |
57
+ | 2 | Key Hook | 0–3s highlight |
58
+ | 3 | Onboarding HUD | Tutorial + finger |
59
+ | 4 | End Card | Win + Install CTA |
60
+ | 5 | CTA Always Visible | In-game CTA persistent |
61
+
62
+ Paths: `assets/images/storyboard/master_composite_option_[A|B|C].png`
63
+
64
+ **MC options count**: ≥2 before Gate #2a (see option table in prior spec — 2 or 3 by clarity).
65
+
66
+ ---
67
+
68
+ ### Deliverable 2: ASR
69
+
70
+ > **Skill**: `playcraft-asset-state-sheet`
71
+
72
+ Only after `selectedMcOption` is set. `--reference-image` = confirmed MC.
73
+
74
+ ```
75
+ assets/images/reference/ui_state_sheet_[X].png
76
+ assets/images/reference/element_state_sheet_[X].png
77
+ ```
78
+
79
+ ---
80
+
81
+ ### Gate #2b Handoff Pack (mandatory before `#2b` STOP)
82
+
83
+ > **Checklist**: `refs/designer-handoff-v2-checklist.md`
84
+
85
+ #### 1. ASR Coverage Matrix (`logs/designer-log.md`)
86
+
87
+ One row per contract item from `layout-spec.md`:
88
+
89
+ | Contract id | Type | ASR sheet | Grid | State(s) | TA extends? |
90
+ | ------------------------------- | ------ | ------------ | ------- | ------------ | ----------- |
91
+ | `elementId` from assetMapping | visual | ui / element | row,col | e.g. default | yes/no |
92
+ | `staticTextId` from Text Assets | text | ui / MC crop | — | baked | yes/no |
93
+
94
+ **100% rule**: every `elementId` in `assetMapping` and every static text id must have a row. Empty ASR slot → `TA extends? = yes` + note in Style Intent Notes.
95
+
96
+ #### 2. Palette Locked (`logs/designer-log.md`)
97
+
98
+ - 6–10 hex swatches sampled from confirmed MC (background, accent, CTA, key elements).
99
+ - One line: **delta vs `layout-spec` Color Palette** (match / PM update needed).
100
+
101
+ #### 3. Motion Notes (`docs/style-exploration.md`)
102
+
103
+ Per transition (Hook→Tutorial, Tutorial→Gameplay, Gameplay→EndCard):
104
+
105
+ | Field | Example |
106
+ | ---------------- | -------------------------------------------- |
107
+ | Transition type | fade / zoom / swipe / burst |
108
+ | Duration band | ~200ms / ~500ms / ~1s |
109
+ | Audio cue tie-in | optional ref to Experience Flow audio rhythm |
110
+
111
+ No per-frame animation assets — VFX/Animation atoms remain TA.
112
+
113
+ #### 4. Style Intent + Anti-Pattern Notes
114
+
115
+ Existing `designer-log` sections — required for TA Step 0c.
116
+
117
+ ---
118
+
119
+ ### Phase 1 exception: True 3D
120
+
121
+ When `design-brief` dimension = True 3D, Designer also delivers (Phase 1, same Gate #2b):
122
+
123
+ - 2D reference texture PNG at path noted in `designer-log` (see `refs/designer-dimension-axis.md`).
124
+ - TA runs `generate-3d`; Designer does **not** output GLB.
125
+
126
+ ---
127
+
128
+ ## Phase 2 Deliverables — Audio + Digit + Atom status
129
+
130
+ **Designer does not batch-export visual samples at `assetMapping` paths in v2.** Visual baseline = Phase 1 MC + ASR.
131
+
132
+ | # | Deliverable | Format | Spec |
133
+ | --- | ---------------------- | ------ | ------------------------------------- |
134
+ | 1 | **BGM** | MP3 | Mood matches locked MC |
135
+ | 2 | **SFX** | MP3 | One per interaction in `assetMapping` |
136
+ | 3 | **Digit sprite strip** | PNG | `layout-spec` `textAssets.digitStrip` |
137
+ | 4 | **VisualAtom status** | — | See below |
138
+
139
+ ### VisualAtom rules (`atom-plan.json` → `atoms[]`)
140
+
141
+ For each `assignTo: Designer` VisualAtom:
142
+
143
+ | Condition | `status` | `actualOutput` |
144
+ | ----------------------------------- | --------- | ----------------------------------------------------------------------------------- |
145
+ | Type covered in ASR Coverage Matrix | `done` | `ASR:ui_state_sheet_[X]:R{row}C{col}` or `ASR:element_state_sheet_[X]:R{row}C{col}` |
146
+ | Not covered; ICP gap | `blocked` | ICP id + path when file delivered |
147
+ | ICP supplementary PNG delivered | `done` | file path |
148
+
149
+ **Forbidden**: mark VisualAtom `done` without ASR row or supplementary file.
150
+
151
+ Run **`playcraft-style-qa` §1** only for **ICP supplementary** image files (not for ASR sheets themselves).
152
+
153
+ ### TA ownership in Phase 2 (not Designer)
154
+
155
+ - Static text extraction → contract paths
156
+ - Background webp
157
+ - VisualAtom completions, sprite sheets, 3D, VFX, atlases
158
+
159
+ ### Bundle Structure (audio)
160
+
161
+ ```
162
+ assets/bundles/<atomId>.aiaudio/
163
+ ├── manifest.json
164
+ └── <filename>.mp3
165
+ ```
166
+
167
+ Supplementary images (ICP only): `.aiimage/` bundle format.
@@ -0,0 +1,27 @@
1
+ # Designer Dimension Axis Workflow
2
+
3
+ > Read in Phase 1 after confirming Dimension Axis from `docs/design-brief.md`. **designer-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 PM atom `assignTo: Designer` via ICP.
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
+ - Designer does **not** output GLB.
26
+ - Phase 1 Gate #2b: 2D reference texture PNG (path in `designer-log`) per `designer-deliverable-spec.md` § Phase 1 exception.
27
+ - TA: `generate-3d`, GLB, flip sprites.
@@ -0,0 +1,68 @@
1
+ # Designer Handoff v2 — Gate #2b checklist
2
+
3
+ > Read at **Step 5** of `designer-style-exploration-flow.md` before `gates.#2b = pending` STOP.
4
+
5
+ ## Prerequisites
6
+
7
+ - [ ] `workflowSpecVersion` = `designer-handoff-v2` in `project-state.md` (or migrating per `workflow-changelog.md`)
8
+ - [ ] `selectedMcOption` set (Gate #2a passed)
9
+ - [ ] MC path: `assets/images/storyboard/master_composite_option_[X].png`
10
+ - [ ] ASR paths exist and pass zero-overlap visual check
11
+
12
+ ## 1. ASR Coverage Matrix (100%)
13
+
14
+ In `logs/designer-log.md` § ASR Coverage Matrix:
15
+
16
+ 1. List every `elementId` from `layout-spec.md` § Asset Mapping (and atlas `frameId` groups count as one row per logical element).
17
+ 2. List every static text `id` from § Text Assets → Static Text.
18
+ 3. For each row: `ASR sheet` = `ui` | `element` | `MC-crop` | `ICP-pending`.
19
+ 4. `TA extends?` = `no` only when ASR shows final representative state; else `yes`.
20
+
21
+ **Stop rule**: any row missing → do not set `#2b` pending.
22
+
23
+ ## 2. Palette Locked
24
+
25
+ ```markdown
26
+ ## Palette Locked (from MC option [X])
27
+
28
+ | Role | Hex | Notes |
29
+ | ---------- | --------- | ----- |
30
+ | bg_primary | #**\_\_** | |
31
+ | accent | #**\_\_** | |
32
+ | cta | #**\_\_** | |
33
+ | element_1 | #**\_\_** | |
34
+
35
+ **Delta vs layout-spec**: match | PM update: <one line>
36
+ ```
37
+
38
+ ## 3. Motion Notes
39
+
40
+ In `docs/style-exploration.md` under confirmed option:
41
+
42
+ | Transition | Type | Duration | Notes |
43
+ | ------------------- | ---- | -------- | ----- |
44
+ | Hook → Tutorial | | | |
45
+ | Tutorial → Gameplay | | | |
46
+ | Gameplay → End Card | | | |
47
+
48
+ ## 4. Phase 2 VisualAtom decision tree
49
+
50
+ ```
51
+ For each atom-plan row where assignTo = Designer:
52
+ ├─ VisualAtom + covered in Coverage Matrix?
53
+ │ └─ yes → status=done, actualOutput=ASR:...
54
+ ├─ AudioAtom?
55
+ │ └─ deliver MP3 at path → done
56
+ ├─ Gap / TA extract failed (ICP)?
57
+ │ └─ generate one PNG → done with path, or blocked until answered
58
+ └─ Never: done with only "will extract later"
59
+ ```
60
+
61
+ ## 5. Files to verify before STOP
62
+
63
+ | File | Contains |
64
+ | ----------------------------------------------------- | ----------------------------------------------------------- |
65
+ | `docs/style-exploration.md` | MC paths, Motion Notes, Experience Flow |
66
+ | `logs/designer-log.md` | Coverage Matrix, Palette Locked, Style Intent, Anti-Pattern |
67
+ | `assets/images/reference/ui_state_sheet_[X].png` | exists |
68
+ | `assets/images/reference/element_state_sheet_[X].png` | exists |
@@ -0,0 +1,216 @@
1
+ # Master Composite — 游戏类型 Prompt 配方 & 参考
2
+
3
+ > 本文件供 Designer 在生成 Master Composite 时按需查阅。核心规则见 `playcraft-storyboard` skill。
4
+
5
+ ## 模型多样性策略
6
+
7
+ 每个风格方案使用**不同的图片模型**,探索不同视觉可能性。先运行:
8
+
9
+ ```bash
10
+ playcraft tools list-image-models
11
+ ```
12
+
13
+ ### 推荐分配策略
14
+
15
+ | 方案 | 推荐模型类型 | 原因 |
16
+ | ---------------------- | --------------------------------------------------- | ---------------------------------- |
17
+ | Option A(最精细方案) | `gpt-image-2` | 最高质量,细节最丰富,适合主推方案 |
18
+ | Option B(风格化方案) | `gemini-3.1-flash-image-preview` 或 `hy-image-v3.0` | 风格更鲜明、艺术感更强 |
19
+ | Option C(探索方案) | `flux-kontext-pro` 或 `nano-banana-2` | 不同画风,提供对比参考 |
20
+
21
+ > 若只有 1-2 个方案,仍建议用不同模型生成同一方案,对比后选最佳。
22
+
23
+ ### 模型特性速查
24
+
25
+ | 模型 | 特点 | 适合风格 |
26
+ | -------------------------------- | ---------------------------------------- | ---------------------- |
27
+ | `gpt-image-2` | 细节丰富、光影真实、多 provider fallback | 写实、半写实、精细卡通 |
28
+ | `gemini-3.1-flash-image-preview` | 色彩鲜艳、构图清晰、速度快 | 明亮卡通、休闲风 |
29
+ | `hy-image-v3.0` | 亚洲审美偏向、角色设计好 | IP 风格、Q 版角色 |
30
+ | `flux-kontext-pro` | 艺术感强、风格独特 | 手绘风、艺术插画 |
31
+ | `nano-banana-2` | 快速、适合探索 | 简洁图形、平面设计风 |
32
+
33
+ > `--reference-image` 只能用于 CAPABILITY 为 `text+image` 或 `image→image` 的模型,先用 `list-image-models` 确认。
34
+
35
+ ---
36
+
37
+ ## 游戏类型 Prompt 配方
38
+
39
+ 以下模板可直接复制修改。所有模板遵循 skill 中的 5 面板并排结构 + 编号标签。
40
+
41
+ ### Match-3 消除游戏
42
+
43
+ ```bash
44
+ playcraft tools generate-image \
45
+ --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.
46
+
47
+ 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].
48
+
49
+ 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.
50
+
51
+ 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.
52
+
53
+ Panel 4 '4. End Card': Victory celebration — [DARK_BG], '[WIN_TEXT]', treasure chest with rewards, reward amount visible, 'Install Now' CTA button prominent, confetti.
54
+
55
+ 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.
56
+
57
+ [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." \
58
+ --output assets/images/storyboard/master_composite_option_A.png \
59
+ --image-model [MODEL] \
60
+ --image-size 4K
61
+ ```
62
+
63
+ ---
64
+
65
+ ### 跑酷 / 平台跳跃游戏
66
+
67
+ ```bash
68
+ playcraft tools generate-image \
69
+ --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.
70
+
71
+ 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.
72
+
73
+ Panel 2 '2. Key Hook': Character at maximum speed, motion blur, dynamic camera angle, dramatic lighting, speed lines, high contrast, minimal HUD.
74
+
75
+ Panel 3 '3. Onboarding HUD': Jump arrow icon showing first obstacle, character highlighted with glow, simple environment, clear guidance text bubble.
76
+
77
+ Panel 4 '4. End Card': Dark background, distance record display, 'Install Now' CTA button prominent, reward chest, achievement badges.
78
+
79
+ Panel 5 '5. CTA Always Visible': Mid-game screenshot with character dodging obstacles, 'Play Now' button clearly visible at bottom-right during active play.
80
+
81
+ [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." \
82
+ --output assets/images/storyboard/master_composite_option_A.png \
83
+ --image-model [MODEL] \
84
+ --image-size 4K
85
+ ```
86
+
87
+ ---
88
+
89
+ ### 卡牌 / 麻将游戏
90
+
91
+ ```bash
92
+ playcraft tools generate-image \
93
+ --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.
94
+
95
+ 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.
96
+
97
+ 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.
98
+
99
+ 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.
100
+
101
+ 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.
102
+
103
+ 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.
104
+
105
+ 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." \
106
+ --output assets/images/storyboard/master_composite_option_A.png \
107
+ --image-model [MODEL] \
108
+ --image-size 4K
109
+ ```
110
+
111
+ ---
112
+
113
+ ### 射击 / 动作游戏
114
+
115
+ ```bash
116
+ playcraft tools generate-image \
117
+ --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.
118
+
119
+ 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.
120
+
121
+ Panel 2 '2. Key Hook': Target reticle locking on enemy, muzzle flash, dramatic action lighting, high contrast, speed lines, minimal HUD.
122
+
123
+ Panel 3 '3. Onboarding HUD': Aim crosshair tutorial overlay, slow-motion visual hint, simple enemy highlighted with marker, guidance text.
124
+
125
+ Panel 4 '4. End Card': Dark background, victory text, loot box with rewards, 'Install Now' CTA button prominent.
126
+
127
+ Panel 5 '5. CTA Always Visible': Mid-game screenshot with active combat, 'Play Now' button clearly visible at bottom-right during play.
128
+
129
+ [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." \
130
+ --output assets/images/storyboard/master_composite_option_A.png \
131
+ --image-model [MODEL] \
132
+ --image-size 4K
133
+ ```
134
+
135
+ ---
136
+
137
+ ## 故障恢复
138
+
139
+ ### 问题:模型拒绝生成(content policy)
140
+
141
+ ```bash
142
+ # 移除触发审查的词语,改用间接描述
143
+ # "explosion, fire, destruction" → "dramatic burst effect, particle shower, vivid energy release"
144
+ ```
145
+
146
+ ### 问题:面板内容混淆(相邻面板之间内容串了)
147
+
148
+ ```bash
149
+ # 方案 1:强化编号标签
150
+ "Panel 1 '1. Main Gameplay' (leftmost):..., Panel 2 '2. Key Hook' (second from left):..."
151
+
152
+ # 方案 2:加描述性分隔符
153
+ "5 panels separated by clear vertical white dividers. Each panel has bold numbered header."
154
+ ```
155
+
156
+ ### 问题:面板间风格不统一
157
+
158
+ ```bash
159
+ # 强化风格约束词
160
+ # 原始:"Consistent art style across all panels."
161
+ # 强化版:"All 5 panels MUST use identical art style, color palette, and character design. Same rendering style throughout. All panels depict the SAME game."
162
+ ```
163
+
164
+ ### 问题:某帧内容不清晰
165
+
166
+ 发现某帧表达不清晰时,**不必重新生成整张**,而是在 `style-exploration.md` 的 Experience Flow Design 章节补充文字说明。
167
+
168
+ ### 问题:Concept Panel 缺少某些元素类型
169
+
170
+ ```bash
171
+ # 方案 1:在 prompt Panel 1 段明确列出 "all [N] element types visible: [逐个列出]"
172
+ # 方案 2:接受当前 MC,由 ASR 双板补足(ASR 是 TA 的主要提取源)
173
+ ```
174
+
175
+ ---
176
+
177
+ ## Reference-Image 与多方案策略
178
+
179
+ ### 首个方案(无 reference)
180
+
181
+ Master Composite 是 Phase 1 的**第一张生成图**,通常无前序图可作 reference:
182
+
183
+ ```bash
184
+ playcraft tools generate-image \
185
+ --prompt "<5-panel prompt>" \
186
+ --output assets/images/storyboard/master_composite_option_A.png \
187
+ --image-model gpt-image-2 \
188
+ --image-size 4K
189
+ ```
190
+
191
+ ### 后续方案(可选 reference)
192
+
193
+ 后续方案可用已生成的方案 A 作为风格参考:
194
+
195
+ ```bash
196
+ playcraft tools generate-image \
197
+ --prompt "<方案 B prompt>" \
198
+ --output assets/images/storyboard/master_composite_option_B.png \
199
+ --reference-image assets/images/storyboard/master_composite_option_A.png \
200
+ --image-model [不同模型] \
201
+ --image-size 4K
202
+ ```
203
+
204
+ ### 输出命名规范
205
+
206
+ ```
207
+ assets/images/storyboard/master_composite_option_A.png ← 方案 A
208
+ assets/images/storyboard/master_composite_option_B.png ← 方案 B
209
+ assets/images/storyboard/master_composite.png ← Gate #2 确认后复制
210
+ ```
211
+
212
+ Gate #2 确认后:
213
+
214
+ ```bash
215
+ cp assets/images/storyboard/master_composite_option_[X].png assets/images/storyboard/master_composite.png
216
+ ```
@@ -0,0 +1,37 @@
1
+ # Designer — Style exploration flow (Phase 1, steps 2–5)
2
+
3
+ > **Scope**: After **Step 1 — Skill Discovery** in `agents/designer.md`, follow this document for MC generation through Gate #2b STOP. **Exit criteria** for Phase 1: see `agents/designer.md` Goals § Success criteria.
4
+ >
5
+ > **Deliverable shapes & tables**: `refs/designer-deliverable-spec.md`.
6
+
7
+ **Trigger**: `project-state.md` stage = `style_exploration`
8
+
9
+ ## Step 2 — Generate Master Composite only (one image per option A/B[/C])
10
+
11
+ - Follow `playcraft-storyboard` skill:**每格完整 9:16 H5**;`45:16` + `--width 3600 --height 1280`(2K)或 `4096×1455`(4K);**禁止 `1:1` / `10:3`**
12
+ - 每个方案用不同模型(见 `refs/designer-master-composite-recipes.md`)
13
+ - 生成后立即 `playcraft image info`:总比例 **width/height ≈ 2.81**,**(width÷5)/height ≈ 0.5625**;不合格则重生成
14
+ - **Review the auto-generated `.json` sidecar** — 确认 `aspectRatio` / `imageSize` / 实际像素正确
15
+
16
+ ## Step 3 — Gate #2a package(MC 选型材料)
17
+
18
+ 1. 写入 `docs/style-exploration.md` 的 **Master Composite 部分**(每套方案的路径、风格关键词、体验流文字说明;**此时不写 ASR 路径**)
19
+ 2. 更新 handoff + `gates.#2a = pending`(见 `agents/designer.md` **Runtime**)
20
+ 3. **STOP** — 禁止 ASR(资产状态参考精灵图板)
21
+
22
+ ## Step 4 — Generate ASR sheets(仅针对 `project-state.selectedMcOption`)
23
+
24
+ - Read `selectedMcOption` from `docs/project-state.md` — if missing, **STOP**
25
+ - Follow `playcraft-asset-state-sheet` skill
26
+ - 输出两张 4K 板:`ui_state_sheet_[X].png` + `element_state_sheet_[X].png`(见 `designer-deliverable-spec.md` §2)
27
+ - `--reference-image` = `master_composite_option_[selectedMcOption].png`
28
+ - 生成后 `playcraft image info` 检查;若槽位重叠,必须重生成
29
+
30
+ ## Step 5 — Gate #2b Handoff Pack
31
+
32
+ > **Checklist**: `refs/designer-handoff-v2-checklist.md`
33
+
34
+ 1. 补全 `docs/style-exploration.md`(ASR 路径、**Motion Notes**、Experience Flow)
35
+ 2. 更新 `logs/designer-log.md`:**ASR Coverage Matrix**(100% contract rows)、**Palette Locked**、Style Intent / Anti-Pattern
36
+ 3. 更新 handoff + `gates.#2b = pending`
37
+ 4. **STOP** — 禁止 Phase 2 音频与批量视觉样本 PNG
@@ -0,0 +1,109 @@
1
+ # Developer Dev Handoff (L2)
2
+
3
+ Use during **Phase 2 integration** and before marking `devStatus: ready`.
4
+
5
+ ## Dev command
6
+
7
+ ```bash
8
+ cat package.json # read scripts.dev (webpack / vite / etc.)
9
+ npm run dev
10
+ ```
11
+
12
+ - **Not** `playcraft start` — Dev is the project's `scripts.dev`.
13
+ - Record the URL from terminal output (e.g. `http://localhost:5173`) in `project-state.md` → `devUrl`.
14
+ - Prefer leaving the server running for Reviewer; if it stops, Reviewer or orchestrator may restart and refresh `devUrl`.
15
+
16
+ ## Dev iteration rhythm
17
+
18
+ During integration, repeat:
19
+
20
+ 1. Change code / wire assets
21
+ 2. `npm run dev` (restart if HMR is insufficient)
22
+ 3. Self-check UI + gameplay + runtime (checklists below)
23
+ 4. Log in `developer-log.md` → **Dev self-check**
24
+ 5. If upstream issue → blockers + ICP + STOP (orchestrator routes TA/Designer)
25
+
26
+ **Do not** wait until the last minute for a single Dev pass.
27
+
28
+ ## UI checklist (vs MC + layout-spec)
29
+
30
+ | Check | Source |
31
+ | -------------------------------------------------- | --------------------------------------- |
32
+ | Zones and hierarchy match layout-spec | `docs/layout-spec.md` |
33
+ | Colors / mood match approved style | `docs/style-exploration.md`, Gate #2 MC |
34
+ | Element placement matches storyboard Visual Intent | Master Composite frames |
35
+ | Text-as-image assets visible, correct aspect | `assetMapping` paths |
36
+ | No broken images / wrong sprites / style drift | Dev browser |
37
+ | Mobile viewport (e.g. 750×1334) acceptable | Dev browser resize |
38
+
39
+ ## Gameplay checklist (vs design-brief + PGS)
40
+
41
+ | Check | Source |
42
+ | ------------------------------------------ | ---------------------- |
43
+ | Hook → Tutorial → Gameplay → End Card flow | `docs/design-brief.md` |
44
+ | Rules, scoring, win/lose match PM contract | design-brief + PGS |
45
+ | **First level guaranteed success** | atom-plan / PGS |
46
+ | Near-Win and difficulty feel as specified | design-brief |
47
+ | CTA on End Card | runtime test |
48
+
49
+ ## Runtime checklist
50
+
51
+ - No white screen or blocking console errors
52
+ - Full playthrough without dead ends
53
+ - BGM/SFX at correct events
54
+ - State machine stable; CTA handler fires (`mraid` / `FbPlayableAd` / `ExitApi` as applicable)
55
+
56
+ ## devUrl recording
57
+
58
+ In `docs/project-state.md` → **Dev Preview**:
59
+
60
+ | Field | When |
61
+ | ---------------- | ---------------------------------------------------- |
62
+ | `devUrl` | After `npm run dev` shows listening URL |
63
+ | `devStatus` | `pending` → `ready` or `blocked_upstream` / `failed` |
64
+ | `devStartedBy` | `developer` |
65
+ | `devLastChecked` | ISO timestamp after each meaningful Dev pass |
66
+
67
+ Also note devUrl in `docs/developer-log.md` → **Dev self-check**.
68
+
69
+ ## Upstream blocker template
70
+
71
+ Add to `developer-log.md` → **## Upstream blockers**:
72
+
73
+ ```markdown
74
+ | Path | Issue | Expected | routeTo | Status |
75
+ | ----------------- | ------- | ---------------------------------- | ------- | ------ |
76
+ | assets/ui/foo.png | missing | 256×256 PNG per layout-spec zone A | TA | open |
77
+ ```
78
+
79
+ In `docs/intent-clarifications.md`:
80
+
81
+ - **Context**: what Dev showed (screenshot description or path)
82
+ - **Gap**: vs MC / contract / design-brief
83
+ - **Acceptance**: exact path, dimensions, style, or audio mood required
84
+ - **routeTo**: TA | Designer | PM
85
+
86
+ Set `project-state.md`:
87
+
88
+ - `devStatus: blocked_upstream`
89
+ - `devBlockers`: same rows as log
90
+
91
+ **STOP** after filing — wait for orchestrator to re-invoke upstream role, then **re-run Dev loop**.
92
+
93
+ ## After rework — re-verify checklist
94
+
95
+ 1. Confirm blocker paths exist on disk (`ls`, `playcraft image info` if needed)
96
+ 2. `npm run dev`
97
+ 3. Re-run UI + gameplay + runtime checklists for affected areas
98
+ 4. Close blocker rows (`status: resolved`) or escalate if still wrong
99
+ 5. Only then set `devStatus: ready` and stage → `review`
100
+
101
+ ## Dev ready checklist (`devStatus: ready` — all required)
102
+
103
+ - [ ] UI checklist pass in Dev
104
+ - [ ] Gameplay checklist pass in Dev
105
+ - [ ] Runtime checklist pass in Dev
106
+ - [ ] No open rows in Upstream blockers / `devBlockers`
107
+ - [ ] `devUrl` recorded and server reachable
108
+ - [ ] `developer-log.md` Dev self-check complete
109
+ - [ ] **Not** required: `playcraft build`, user running terminal commands