@playcraft/cli 0.0.39 → 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 (121) 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/fix-ids.js +17 -3
  7. package/dist/commands/fix-ids.test.js +264 -0
  8. package/dist/commands/image.js +1337 -43
  9. package/dist/commands/login.js +60 -2
  10. package/dist/commands/recommend.js +1 -1
  11. package/dist/commands/remix.js +213 -0
  12. package/dist/commands/skills.js +1379 -0
  13. package/dist/commands/tools-3d.js +473 -0
  14. package/dist/commands/tools-generation.js +454 -0
  15. package/dist/commands/tools-project.js +400 -0
  16. package/dist/commands/tools-research.js +37 -0
  17. package/dist/commands/tools-research.test.js +216 -0
  18. package/dist/commands/tools-utils.js +164 -0
  19. package/dist/commands/tools.js +7 -616
  20. package/dist/config.js +2 -0
  21. package/dist/index.js +20 -2
  22. package/dist/utils/agent-api-client.js +52 -16
  23. package/package.json +9 -3
  24. package/project-template/.claude/agents/designer.md +116 -0
  25. package/project-template/.claude/agents/developer.md +133 -0
  26. package/project-template/.claude/agents/pm.md +164 -0
  27. package/project-template/.claude/agents/refs/README.md +67 -0
  28. package/project-template/.claude/agents/refs/designer-art-style-catalog.md +533 -0
  29. package/project-template/.claude/agents/refs/designer-color-audio-recipes.md +153 -0
  30. package/project-template/.claude/agents/refs/designer-deliverable-spec.md +167 -0
  31. package/project-template/.claude/agents/refs/designer-dimension-axis.md +27 -0
  32. package/project-template/.claude/agents/refs/designer-handoff-v2-checklist.md +68 -0
  33. package/project-template/.claude/agents/refs/designer-master-composite-recipes.md +216 -0
  34. package/project-template/.claude/agents/refs/designer-style-exploration-flow.md +37 -0
  35. package/project-template/.claude/agents/refs/developer-dev-handoff.md +109 -0
  36. package/project-template/.claude/agents/refs/developer-impl-cookbook.md +134 -0
  37. package/project-template/.claude/agents/refs/developer-phase1-flow.md +211 -0
  38. package/project-template/.claude/agents/refs/pm-workflow-detail.md +545 -0
  39. package/project-template/.claude/agents/refs/reviewer-six-dimension-eval.md +286 -0
  40. package/project-template/.claude/agents/refs/ta-3d-flip-recipe.md +85 -0
  41. package/project-template/.claude/agents/refs/ta-atlas-deliverable-standard.md +46 -0
  42. package/project-template/.claude/agents/refs/ta-batch-pipeline-recipes.md +120 -0
  43. package/project-template/.claude/agents/refs/ta-image-generation-detail.md +356 -0
  44. package/project-template/.claude/agents/refs/ta-image-ops-reference.md +495 -0
  45. package/project-template/.claude/agents/refs/ta-pipeline-cookbook.md +699 -0
  46. package/project-template/.claude/agents/refs/ta-tools-reference.md +111 -0
  47. package/project-template/.claude/agents/refs/ta-vfx-preset-catalog.md +365 -0
  48. package/project-template/.claude/agents/reviewer.md +103 -0
  49. package/project-template/.claude/agents/technical-artist.md +111 -0
  50. package/project-template/.claude/hooks/README.md +36 -0
  51. package/project-template/.claude/hooks/validate-atom-plan.mjs +224 -0
  52. package/project-template/.claude/hooks/validate-workflow-stop.mjs +258 -0
  53. package/project-template/.claude/settings.json +32 -0
  54. package/project-template/.claude/settings.local.json +4 -0
  55. package/project-template/.claude/skills/playcraft-ad-psychology/SKILL.md +182 -0
  56. package/project-template/.claude/skills/playcraft-art-style-guide/SKILL.md +123 -0
  57. package/project-template/.claude/skills/playcraft-asset-state-sheet/SKILL.md +141 -0
  58. package/project-template/.claude/skills/playcraft-audio-generation/SKILL.md +280 -0
  59. package/project-template/.claude/skills/playcraft-batch-pipeline/SKILL.md +184 -0
  60. package/project-template/.claude/skills/playcraft-build-optimizer/SKILL.md +306 -0
  61. package/project-template/.claude/skills/playcraft-image-generation/SKILL.md +229 -0
  62. package/project-template/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +123 -0
  63. package/project-template/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +254 -0
  64. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +235 -0
  65. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +97 -0
  66. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +118 -0
  67. package/project-template/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +137 -0
  68. package/project-template/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +397 -0
  69. package/project-template/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +296 -0
  70. package/project-template/.claude/skills/playcraft-image-ops/SKILL.md +122 -0
  71. package/project-template/.claude/skills/playcraft-masking/SKILL.md +373 -0
  72. package/project-template/.claude/skills/playcraft-research/SKILL.md +212 -0
  73. package/project-template/.claude/skills/playcraft-sprite-generation/SKILL.md +423 -0
  74. package/project-template/.claude/skills/playcraft-storyboard/SKILL.md +148 -0
  75. package/project-template/.claude/skills/playcraft-style-qa/SKILL.md +270 -0
  76. package/project-template/.claude/skills/playcraft-text-rendering/SKILL.md +236 -0
  77. package/project-template/.claude/skills/playcraft-vfx-animation/SKILL.md +130 -0
  78. package/project-template/.claude/skills/playcraft-workflow/SKILL.md +396 -0
  79. package/project-template/.cursor/hooks.json +17 -0
  80. package/project-template/.cursor/rules/playcraft-orchestrator.mdc +87 -0
  81. package/project-template/.cursor/rules/playcraft-subagent-boundary.mdc +18 -0
  82. package/project-template/CLAUDE.md +240 -0
  83. package/project-template/assets/audio/bgm/.gitkeep +0 -0
  84. package/project-template/assets/audio/sfx/.gitkeep +0 -0
  85. package/project-template/assets/bundles/.gitkeep +0 -0
  86. package/project-template/assets/images/bg/.gitkeep +0 -0
  87. package/project-template/assets/images/reference/.gitkeep +0 -0
  88. package/project-template/assets/images/storyboard/.gitkeep +0 -0
  89. package/project-template/assets/images/tiles/.gitkeep +0 -0
  90. package/project-template/assets/images/ui/.gitkeep +0 -0
  91. package/project-template/assets/images/vfx/.gitkeep +0 -0
  92. package/project-template/assets/models/.gitkeep +0 -0
  93. package/project-template/docs/team/agent-conduct.md +105 -0
  94. package/project-template/docs/team/agent-runtime-matrix.md +62 -0
  95. package/project-template/docs/team/atom-plan-format.md +74 -0
  96. package/project-template/docs/team/collaboration.md +288 -0
  97. package/project-template/docs/team/core-model.md +50 -0
  98. package/project-template/docs/team/platform-capabilities.md +15 -0
  99. package/project-template/docs/team/workflow-changelog.md +51 -0
  100. package/project-template/docs/team/workflow-consistency-checklist.md +128 -0
  101. package/project-template/game/config/.gitkeep +0 -0
  102. package/project-template/game/gameplay/.gitkeep +0 -0
  103. package/project-template/game/scenes/.gitkeep +0 -0
  104. package/project-template/logs/.gitkeep +0 -0
  105. package/project-template/ta-workspace/logs/.gitkeep +0 -0
  106. package/project-template/ta-workspace/scripts/.gitkeep +0 -0
  107. package/project-template/ta-workspace/tmp/.gitkeep +0 -0
  108. package/project-template/templates/atom-plan.template.json +26 -0
  109. package/project-template/templates/atom-plan.template.md +76 -0
  110. package/project-template/templates/design-brief.template.md +195 -0
  111. package/project-template/templates/design-lens-checklist.reference.md +117 -0
  112. package/project-template/templates/design-methodology.md +99 -0
  113. package/project-template/templates/designer-log.template.md +98 -0
  114. package/project-template/templates/developer-log.template.md +140 -0
  115. package/project-template/templates/five-axis-framework.md +186 -0
  116. package/project-template/templates/intent-clarifications.template.md +58 -0
  117. package/project-template/templates/layout-spec.template.md +132 -0
  118. package/project-template/templates/project-state.template.md +219 -0
  119. package/project-template/templates/review-report.template.md +166 -0
  120. package/project-template/templates/style-exploration.template.md +93 -0
  121. package/project-template/templates/ta-log.template.md +205 -0
@@ -0,0 +1,219 @@
1
+ # Project State
2
+
3
+ ## Workflow spec
4
+
5
+ | Field | Value |
6
+ | ----------------------- | --------------------------------------------------------------------- |
7
+ | **workflowSpecVersion** | `production-serial-v1` |
8
+ | **Changelog** | [docs/team/workflow-changelog.md](../docs/team/workflow-changelog.md) |
9
+
10
+ <!--
11
+ production-serial-v1: Gate #2b → production Wave 1 Designer Ph.2 → Wave 2 TA → integration Developer.
12
+ Visual baseline (designer-handoff-v2): Phase 1 = MC + ASR; Phase 2 Designer = audio + digit strip + VisualAtom status only.
13
+ -->
14
+
15
+ ## User Intent
16
+
17
+ > {{user_intent — ≤2 sentences; do NOT restate Style Direction or five-axis tables from design-brief}}
18
+
19
+ ## Gate #1 Options
20
+
21
+ <!--
22
+ Gate #1 only — orchestrator reads this + design-brief. One row per option; no Style Direction prose.
23
+ Delete this section after Gate #1 passes.
24
+ -->
25
+
26
+ | Option | Mechanic | Dimension | Interaction | Narrative | Arc | Risk | Recommended |
27
+ | ------ | -------- | --------- | ----------- | --------- | ----- | ---------------- | ----------- |
28
+ | A | {{…}} | {{…}} | {{…}} | {{L0–L3}} | {{…}} | {{low/med/high}} | {{yes/no}} |
29
+ | B | {{…}} | {{…}} | {{…}} | {{…}} | {{…}} | {{…}} | {{yes/no}} |
30
+
31
+ ## Current Stage
32
+
33
+ **{{current_stage}}** — {{stage_description}}
34
+
35
+ `pm` → `style_exploration` → `production` → `integration` → `review` ⇄ `rework` → `done`
36
+
37
+ <!-- Stage definitions: see CLAUDE.md § Stage Model -->
38
+
39
+ ## Gates
40
+
41
+ > Only the **orchestrator** runs `AskUserQuestion` toward the user. Sub-agents set `pending` and STOP.
42
+
43
+ | Gate | Status | Notes |
44
+ | ------------------ | ------------------ | ------------------------------------------------------------------------------- |
45
+ | #1 Direction | {{passed/pending}} | Orchestrator confirms after PM four docs + STOP |
46
+ | #2a MC selection | {{passed/pending}} | Orchestrator picks A/B/C → sets `selectedMcOption` below |
47
+ | #2b MC + ASR final | {{passed/pending}} | Orchestrator confirms MC + ASR sheets (UI + element) → then `stage: production` |
48
+ | #3 Dev acceptance | {{passed/pending}} | User opens devUrl (orchestrator link only) |
49
+
50
+ ## Agent handoff
51
+
52
+ > Sub-agents and orchestrator **must** read/write this block before STOP or invoke. See `docs/team/collaboration.md` § Agent Handoff.
53
+
54
+ ```yaml
55
+ subagent: none
56
+ subagent_stop: false
57
+ waiting_for: orchestrator
58
+ gate_pending: null
59
+ next_orchestrator_action: null
60
+ last_completed_by: null
61
+ rework_round: 0
62
+ block_reason: null
63
+ ```
64
+
65
+ <!--
66
+ Examples (copy structure on STOP — do not leave nulls):
67
+
68
+ PM Gate #1 STOP:
69
+ subagent: pm
70
+ subagent_stop: true
71
+ waiting_for: user_gate
72
+ gate_pending: "1"
73
+ next_orchestrator_action: "Run Gate #1 AskUserQuestion"
74
+ last_completed_by: pm
75
+ rework_round: 0
76
+
77
+ Designer Gate #2a STOP:
78
+ subagent: designer
79
+ subagent_stop: true
80
+ waiting_for: user_gate
81
+ gate_pending: "2a"
82
+ next_orchestrator_action: "Run Gate #2a"
83
+ last_completed_by: designer
84
+
85
+ Developer integration STOP:
86
+ subagent: developer
87
+ subagent_stop: true
88
+ waiting_for: orchestrator
89
+ gate_pending: null
90
+ next_orchestrator_action: "Invoke @reviewer"
91
+ last_completed_by: developer
92
+ -->
93
+
94
+ ## Gate resume fields
95
+
96
+ | Field | Value |
97
+ | ---------------- | -------------------------------------------------- |
98
+ | selectedMcOption | {{A / B / C — set by orchestrator after Gate #2a}} |
99
+ | reworkRound | {{0 / 1 / 2 — incremented by Reviewer on fail}} |
100
+
101
+ ## Dev Preview
102
+
103
+ | Field | Value |
104
+ | ---------------- | ---------------------------------------------------------------------------- |
105
+ | devCommand | npm run dev |
106
+ | devScript | {{from package.json scripts.dev}} |
107
+ | devUrl | {{http://... — Developer records when ready; orchestrator uses for Gate #3}} |
108
+ | devStatus | pending / ready / blocked_upstream / failed |
109
+ | devBlockers | {{list: assetPath, issue, routeTo (TA/Designer/PM), status}} |
110
+ | devStartedBy | developer / reviewer / orchestrator |
111
+ | devLastChecked | {{ISO timestamp}} |
112
+ | reviewerDevCheck | pending / passed / failed |
113
+ | reviewerDevNotes | {{UI + gameplay check summary}} |
114
+
115
+ <!--
116
+ devStatus:
117
+ pending — integration not finished
118
+ ready — Developer self-check passed, no open blockers; safe to invoke Reviewer
119
+ blocked_upstream — Developer waiting on TA/Designer rework (orchestrator re-invokes)
120
+ failed — dev server could not start; document error
121
+
122
+ Developer MUST NOT set ready while devBlockers has open items.
123
+ -->
124
+
125
+ ## File Index
126
+
127
+ ### PM Output
128
+
129
+ | File | Description | Status |
130
+ | --------------------------------------- | --------------------------------------------- | ---------- |
131
+ | [design-brief.md](docs/design-brief.md) | Style Direction + experience flow (mechanics) | {{status}} |
132
+ | [layout-spec.md](docs/layout-spec.md) | Paths, palette hex, assetMapping, atlas | {{status}} |
133
+ | [atom-plan.json](docs/atom-plan.json) | skillsMatch + atoms[] (machine contract) | {{status}} |
134
+ | [atom-plan.md](docs/atom-plan.md) | Acceptance criteria + Context enrichments | {{status}} |
135
+
136
+ ### Designer Output
137
+
138
+ | File/Directory | Description | Status |
139
+ | ------------------------------------------------- | ----------------------------------------- | ---------- |
140
+ | [style-exploration.md](docs/style-exploration.md) | Style options + concept mockups (Phase 1) | {{status}} |
141
+ | [designer-log.md](logs/designer-log.md) | Work log + delivery manifest | {{status}} |
142
+ | `assets/images/` | Key creative samples (Designer) | {{status}} |
143
+ | `assets/audio/` | BGM + SFX (original generation) | {{status}} |
144
+ | `assets/bundles/` | Designer atom bundles | {{status}} |
145
+
146
+ ### Technical Artist Output
147
+
148
+ | File/Directory | Description | Status |
149
+ | --------------------------- | ---------------------------------------------------------------- | ---------- |
150
+ | [ta-log.md](logs/ta-log.md) | Work log + compliance report | {{status}} |
151
+ | `assets/images/` | Completed asset set (TA completions + sprite sheets + processed) | {{status}} |
152
+ | `assets/audio/` | Post-processed audio (compress/trim/loop) | {{status}} |
153
+ | `assets/bundles/` | TA atom bundles | {{status}} |
154
+
155
+ ### Developer Output
156
+
157
+ | File/Directory | Description | Status |
158
+ | ----------------------------------------- | ------------------------------------------------------ | ---------- |
159
+ | [developer-log.md](logs/developer-log.md) | Work log + Dev self-check + devUrl + upstream blockers | {{status}} |
160
+ | `game/gameplay/` | PGS + state machine | {{status}} |
161
+ | `game/config/` | Level configuration | {{status}} |
162
+ | `game/scenes/` | Scene definitions | {{status}} |
163
+ | `game/index.html` | Entry point | {{status}} |
164
+
165
+ ### Reviewer Output
166
+
167
+ | File | Description | Status |
168
+ | --------------------------------------------------------- | ------------------------------------------------ | ---------- |
169
+ | [review-report.md](logs/review-report.md) | Six-dimension evaluation + Dev walkthrough notes | {{status}} |
170
+ | [intent-clarifications.md](docs/intent-clarifications.md) | Agent-to-agent Q&A (ICP) | {{status}} |
171
+
172
+ ## Production Pipeline (Serial)
173
+
174
+ <!-- Only relevant when stage = production or transitioning to integration -->
175
+
176
+ | Wave | Agent | Status | Notes |
177
+ | ---- | ---------------- | ---------- | ------------------------------------------ |
178
+ | 1 | Designer | {{status}} | Ph.2: audio + digit + VisualAtom status |
179
+ | 2 | Technical Artist | {{status}} | Spec Quick-Check → bulk → Compliance green |
180
+
181
+ <!-- Wave 3 Developer runs in stage = integration only — not tracked here -->
182
+
183
+ ## Intent Clarification Tracking
184
+
185
+ <!-- Monitor ICP activity during production -->
186
+
187
+ | Metric | Value |
188
+ | ------------------------------------------ | ---------- |
189
+ | Open questions in intent-clarifications.md | {{count}} |
190
+ | Unresolved for > 10 min | {{count}} |
191
+ | Designer questions received | {{count}} |
192
+ | TA questions received | {{count}} |
193
+ | Developer questions received | {{count}} |
194
+ | PM intervention needed | {{yes/no}} |
195
+
196
+ <!--
197
+ PM monitors this table:
198
+ - Open questions > 3 → PM must intervene
199
+ - Single Agent receives > 3 questions → record "intent transmission fault" in DAG Revisions
200
+ -->
201
+
202
+ <!--
203
+ Orchestrator serial rules:
204
+ - Gate #2b passed → invoke @designer only (Wave 1)
205
+ - Wave 1 = done → invoke @technical-artist (Wave 2)
206
+ - Wave 2 = done → stage: integration → invoke @developer
207
+ - Optional: 30s spot-check ta-log Compliance + contract paths exist before @developer
208
+ -->
209
+
210
+ ## Progress Checkpoint
211
+
212
+ <!--
213
+ One row per major step — decision summary only, not full contract text.
214
+ Gate #1 example Notes: "Option B recommended; Competence + match-3" (not a copy of design-brief).
215
+ -->
216
+
217
+ | # | Stage | Agent | Action | Result | Notes |
218
+ | ----- | --------- | --------- | ----------------- | ----------- | ----------------------------- |
219
+ | {{n}} | {{stage}} | {{agent}} | {{what_was_done}} | {{outcome}} | {{key_decisions_or_blockers}} |
@@ -0,0 +1,166 @@
1
+ # Review Report
2
+
3
+ ## Verdict
4
+
5
+ **{{pass/conditional-pass/fail}}** — Total Score: {{total}}/30
6
+
7
+ ## Six-Dimension Scores
8
+
9
+ | Dimension | Score | Details |
10
+ | ----------------------- | --------- | ----------------------- |
11
+ | Experience Flow | {{1-5}}/5 | {{specific_evaluation}} |
12
+ | Creative Appeal | {{1-5}}/5 | {{specific_evaluation}} |
13
+ | Style Consistency | {{1-5}}/5 | {{specific_evaluation}} |
14
+ | Intent Fidelity | {{1-5}}/5 | {{specific_evaluation}} |
15
+ | Difficulty Balance | {{1-5}}/5 | {{specific_evaluation}} |
16
+ | **Intent Transmission** | {{1-5}}/5 | {{specific_evaluation}} |
17
+
18
+ <!--
19
+ Scoring guide:
20
+ 5 — Excellent: exceeds expectations, ready to ship
21
+ 4 — Good: meets standard, minor tweaks then ship
22
+ 3 — Acceptable: basically works, needs improvement
23
+ 2 — Below standard: obvious problems, partial redo
24
+ 1 — Seriously deficient: directional error, full redo
25
+
26
+ Pass thresholds (6 dimensions × 5 max = 30):
27
+ >= 24: Pass (avg 4.0 per dimension)
28
+ 18-23: Conditional pass (fix issues then re-review)
29
+ < 18: Fail (route back to responsible agents)
30
+
31
+ Intent Transmission scoring:
32
+ 5 — Zero open clarifications, TA self-check all pass, Developer mapping complete
33
+ 4 — 1-2 resolved clarifications, no impact on quality
34
+ 3 — Unresolved clarifications exist, or TA has low-confidence items
35
+ 2 — Multiple unresolved clarifications, or Developer missing visual mapping
36
+ 1 — Severe intent transmission failure, downstream agents made major wrong assumptions
37
+ -->
38
+
39
+ ## DAG Coverage
40
+
41
+ | Metric | Value |
42
+ | ----------------------------------- | ------------------------ |
43
+ | Total atoms | {{total}} |
44
+ | Completed | {{completed}} |
45
+ | Skipped | {{skipped}} |
46
+ | Blocked | {{blocked}} |
47
+ | Missing (not in plan but should be) | {{missing_list_or_none}} |
48
+
49
+ ## DAG Revision Audit
50
+
51
+ | Revision | Agent | Type | Reasonable? | Notes |
52
+ | ------------------- | --------- | --------------------- | ----------------------- | -------------- |
53
+ | {{revision_number}} | {{agent}} | {{add/remove/modify}} | {{yes/no/questionable}} | {{assessment}} |
54
+
55
+ <!--
56
+ Assess each revision:
57
+ - Was the change necessary?
58
+ - Was the reason documented?
59
+ - Did it deviate from original intent?
60
+ - Would it have been better to escalate?
61
+ -->
62
+
63
+ ## Layout Spec Compliance
64
+
65
+ | Check | Pass? | Details |
66
+ | --------------------------------- | ---------- | ----------- |
67
+ | Asset sizes match `assetSpec` | {{yes/no}} | {{details}} |
68
+ | Filenames match `assetMapping` | {{yes/no}} | {{details}} |
69
+ | Color palette followed | {{yes/no}} | {{details}} |
70
+ | Element IDs aligned in code | {{yes/no}} | {{details}} |
71
+ | Grid config matches zones | {{yes/no}} | {{details}} |
72
+ | Zone coordinates in scene correct | {{yes/no}} | {{details}} |
73
+ | Binding completeness | {{yes/no}} | {{details}} |
74
+ | Bidirectional closure | {{yes/no}} | {{details}} |
75
+
76
+ ## Technical Checks
77
+
78
+ | Check | Pass? | Value | Standard |
79
+ | ------------------- | ---------- | --------------- | ---------------------------- |
80
+ | Total file size | {{yes/no}} | {{actual_size}} | <= 5MB (ideal <= 2MB) |
81
+ | External requests | {{yes/no}} | {{count}} | 0 |
82
+ | CTA implementation | {{yes/no}} | — | Click triggers store/install |
83
+ | Entry file exists | {{yes/no}} | — | game/index.html present |
84
+ | Viewport meta | {{yes/no}} | — | user-scalable=no |
85
+ | Orientation support | {{yes/no}} | — | At least portrait |
86
+
87
+ ## Veto Items
88
+
89
+ <!-- These cause automatic FAIL regardless of score -->
90
+
91
+ - [ ] First level guarantees player success
92
+ - [ ] CTA is implemented and functional
93
+ - [ ] Zero external network requests
94
+ - [ ] Entry file (game/index.html) exists
95
+
96
+ ## Issues
97
+
98
+ | # | Severity | Dimension | Description | Suggestion | Route To |
99
+ | ----- | ------------------------ | ------------- | ----------------- | -------------- | ---------------------------- |
100
+ | {{n}} | {{critical/major/minor}} | {{dimension}} | {{what_is_wrong}} | {{how_to_fix}} | {{PM/Designer/TA/Developer}} |
101
+
102
+ <!--
103
+ Severity levels:
104
+ - critical: Blocks delivery, must fix
105
+ - major: Significantly impacts quality, should fix
106
+ - minor: Polish item, nice to fix
107
+
108
+ Every issue MUST have:
109
+ 1. Specific description (not vague)
110
+ 2. Actionable fix suggestion
111
+ 3. Clear routing to responsible agent
112
+ -->
113
+
114
+ ## Action Items
115
+
116
+ <!--
117
+ Aggregated from Issues table above.
118
+ Grouped by target agent for easy handoff.
119
+ -->
120
+
121
+ ### For PM
122
+
123
+ | # | Issue Ref | Action Required | Priority |
124
+ | ----- | -------------- | ------------------- | ------------------- |
125
+ | {{n}} | Issue #{{ref}} | {{specific_action}} | {{high/medium/low}} |
126
+
127
+ ### For Designer
128
+
129
+ | # | Issue Ref | Action Required | Priority |
130
+ | ----- | -------------- | ------------------- | ------------------- |
131
+ | {{n}} | Issue #{{ref}} | {{specific_action}} | {{high/medium/low}} |
132
+
133
+ ### For Technical Artist
134
+
135
+ | # | Issue Ref | Action Required | Priority |
136
+ | ----- | -------------- | ------------------- | ------------------- |
137
+ | {{n}} | Issue #{{ref}} | {{specific_action}} | {{high/medium/low}} |
138
+
139
+ ### For Developer
140
+
141
+ | # | Issue Ref | Action Required | Priority |
142
+ | ----- | -------------- | ------------------- | ------------------- |
143
+ | {{n}} | Issue #{{ref}} | {{specific_action}} | {{high/medium/low}} |
144
+
145
+ ## Rework Status
146
+
147
+ <!-- Only fill if verdict is not "pass" -->
148
+
149
+ | Field | Value |
150
+ | ------------------------ | --------------------------------- |
151
+ | Rework round | {{1st / 2nd / N/A}} |
152
+ | Force Gate #3? | {{yes (2nd round exceeded) / no}} |
153
+ | Previous issues resolved | {{list resolved issue #s}} |
154
+
155
+ ## Summary
156
+
157
+ {{overall_assessment_paragraph}}
158
+
159
+ <!--
160
+ Include:
161
+ - Overall impression from player perspective
162
+ - Strongest dimension
163
+ - Weakest dimension
164
+ - Key recommendation for next iteration
165
+ - Whether re-review is needed after fixes
166
+ -->
@@ -0,0 +1,93 @@
1
+ # Style Exploration
2
+
3
+ > Designer Phase 1 output (`designer-handoff-v2`). Gate #2 = narrative + style lock via **Master Composite (MC)** + **ASR** after option selection.
4
+
5
+ ## Style Direction Summary
6
+
7
+ - **Art style**: {{art_style_from_brief}}
8
+ - **Color mood**: {{color_mood}}
9
+ - **Element theme**: {{element_theme}}
10
+ - **References**: {{reference_games_or_styles}}
11
+ - **Emotional Arc**: {{emotional_arc_from_brief}}
12
+
13
+ ## Options
14
+
15
+ ### Option {{A/B/C}}: {{option_name}}
16
+
17
+ **Keywords**: {{3-5 keywords}}
18
+ **Color temperature**: {{warm/cold/neutral}}
19
+ **Art approach**: {{1-2 sentences}}
20
+ **Alignment with design-brief**: {{brief alignment}}
21
+
22
+ #### Master Composite (Gate #2a)
23
+
24
+ | File | Description |
25
+ | ------------------------------------------------------------ | ----------------------------------------------------------- |
26
+ | `assets/images/storyboard/master_composite_option_{{a}}.png` | 5×9:16 panels: concept + Hook + Onboarding + End Card + CTA |
27
+
28
+ **MC prompt** (summary or path to sidecar `.json`):
29
+
30
+ ```
31
+ {{master_composite_prompt_summary}}
32
+ ```
33
+
34
+ #### Panels (embedded in MC — not separate files)
35
+
36
+ | Panel # | Label | Time | Visual intent |
37
+ | ------- | ------------------ | ------- | ----------------------------------------- |
38
+ | 1 | Main Gameplay | — | Full UI + all element types + static text |
39
+ | 2 | Key Hook | 0-3s | {{hook intent}} |
40
+ | 3 | Onboarding HUD | 3-10s | {{tutorial intent}} |
41
+ | 4 | End Card | 25-30s | {{end card intent}} |
42
+ | 5 | CTA Always Visible | in-game | {{persistent CTA}} |
43
+
44
+ #### Experience Flow Design
45
+
46
+ **Emotional Arc Visualization**:
47
+
48
+ - Hook → {{visual signals}}
49
+ - Tutorial → {{visual signals}}
50
+ - Gameplay Peak → {{near-win signals}}
51
+ - End Card → {{resolution signals}}
52
+
53
+ **Near-Win Visual Composition**: {{description}}
54
+
55
+ **Attention Guidance per Stage**: Hook / Tutorial / Gameplay / End Card — {{paths}}
56
+
57
+ **Audio-Emotion Rhythm** (for Phase 2 BGM/SFX): {{per-stage audio notes}}
58
+
59
+ ---
60
+
61
+ <!-- Repeat per option (2–3). Gate #2a: user picks A/B/C. Gate #2b: add ASR + Motion Notes below for selected option only. -->
62
+
63
+ ## Selected option (after Gate #2a)
64
+
65
+ - **Selected**: {{A/B/C}}
66
+ - **MC path**: `assets/images/storyboard/master_composite_option_{{X}}.png`
67
+
68
+ ### ASR (Gate #2b)
69
+
70
+ | File | Role |
71
+ | ------------------------------------------------------- | ----------------------- |
72
+ | `assets/images/reference/ui_state_sheet_{{X}}.png` | UI component states |
73
+ | `assets/images/reference/element_state_sheet_{{X}}.png` | Gameplay element states |
74
+
75
+ Detail tables: `logs/designer-log.md` § ASR Coverage Matrix.
76
+
77
+ ### Motion Notes (Gate #2b)
78
+
79
+ | Transition | Type | Duration | Notes |
80
+ | ------------------- | ------------------- | -------- | ----- |
81
+ | Hook → Tutorial | {{fade/zoom/swipe}} | {{~ms}} | |
82
+ | Tutorial → Gameplay | | | |
83
+ | Gameplay → End Card | | | |
84
+
85
+ ## Recommendation
86
+
87
+ {{Which option and why — ties to PM Emotional Arc}}
88
+
89
+ ## User Decision
90
+
91
+ - **Selected option**: {{A/B/C}}
92
+ - **User feedback**: {{adjustments}}
93
+ - **Confirmed MC**: `assets/images/storyboard/master_composite_option_{{X}}.png`
@@ -0,0 +1,205 @@
1
+ # Technical Artist Log
2
+
3
+ ## Upstream Intake
4
+
5
+ > **Step 0a — mandatory before Skill Discovery or any generation.** Read each doc; one-line takeaway proves you understood upstream work. PM/Designer keep **四件套** short — detail is in `style-exploration` + this project's `designer-log`.
6
+
7
+ | Doc | Read ✓ | One-line takeaway (what matters for TA this round) |
8
+ | --------------------------- | ------ | ------------------------------------------------------- |
9
+ | `docs/project-state.md` | ☐ | {{e.g. Wave 1 done, selectedMcOption=B}} |
10
+ | `docs/design-brief.md` | ☐ | {{e.g. Competence arc, match-3, Hook=wrong-move tease}} |
11
+ | `docs/layout-spec.md` | ☐ | {{e.g. 42 assetMapping rows, 3 atlas groups}} |
12
+ | `docs/atom-plan.json` | ☐ | {{e.g. 18 TA atoms, C₁ refs designer-sample}} |
13
+ | `docs/atom-plan.md` | ☐ | TA Skill Context |
14
+ | `docs/style-exploration.md` | ☐ | {{e.g. MC path + storyboard EndCard tone}} |
15
+ | `logs/designer-log.md` | ☐ | {{e.g. Palette Locked delta, Style Intent Notes}} |
16
+
17
+ ```bash
18
+ # Optional paste: ls assets/images/reference/ + key contract dirs after read
19
+ {{intake_ls_snippet}}
20
+ ```
21
+
22
+ ---
23
+
24
+ ## Delivery Summary
25
+
26
+ - **Assigned atoms**: {{total_assigned}}
27
+ - **Completed**: {{total_completed}}
28
+ - **Skipped**: {{total_skipped}}
29
+ - **Blocked**: {{total_blocked}}
30
+ - **Designer samples received**: {{designer_sample_count}} files
31
+ - **TA-completed elements**: {{ta_completed_count}} files
32
+
33
+ ## Style Interpretation
34
+
35
+ > **Step 0c — Mandatory before any completion work.**
36
+ > Read `logs/designer-log.md` Style Intent Notes, write your interpretation here.
37
+
38
+ | # | Designer Intent (Quote from designer-log.md) | My Interpretation | Confidence | Action |
39
+ | ----- | -------------------------------------------- | --------------------- | --------------- | ----------------- |
40
+ | {{n}} | "{{designer_quote}}" | {{my_interpretation}} | high/medium/low | proceed / clarify |
41
+
42
+ <!--
43
+ Confidence rules:
44
+ high → proceed with completion
45
+ medium → proceed, but include style interpretation in --reference-image prompt
46
+ low → MUST write question to docs/intent-clarifications.md before proceeding
47
+
48
+ Do NOT proceed with any asset type where confidence = low.
49
+ -->
50
+
51
+ ## Style Reference
52
+
53
+ - **Master reference (MC)**: `assets/images/storyboard/master_composite_option_{{selectedMcOption}}.png`
54
+ - **ASR references**: `ui_state_sheet_{{selectedMcOption}}.png`, `element_state_sheet_{{selectedMcOption}}.png`
55
+ - **Designer samples used as reference**: {{designer_sample_paths}}
56
+ - **Reference model used**: `{{model_name}}` (must be `google/` native for style-consistent completions)
57
+
58
+ ---
59
+
60
+ ## Asset Completion Log
61
+
62
+ > Records all elements derived from Designer samples.
63
+
64
+ ### {{atom_id}} — {{slot_name}}
65
+
66
+ - **Status**: {{status}}
67
+ - **Completion type**: {{derived_from_sample | sprite_sheet | 3d_render | animation | vfx}}
68
+ - **Source samples**: {{designer_sample_paths}}
69
+ - **Elements completed**:
70
+ | File | Dimensions | Size | Notes |
71
+ |------|-----------|------|-------|
72
+ | {{path}} | {{WxH}} | {{size}} | {{notes}} |
73
+ - **Pipeline**:
74
+ ```
75
+ {{step 1: e.g., generate-image --reference-image ...}}
76
+ {{step 2: e.g., image remove-background ...}}
77
+ {{step 3: e.g., image resize ...}}
78
+ ```
79
+ - **Model used**: {{model_name}}
80
+ - **Reference images**: {{reference_image_paths}}
81
+
82
+ <!-- Repeat for each completion atom -->
83
+
84
+ ---
85
+
86
+ ## Technical Pipeline Log
87
+
88
+ > Records all technical production work (sprite sheets, 3D, animation, VFX, post-processing).
89
+
90
+ ### {{atom_id}} — {{slot_name}}
91
+
92
+ - **Status**: {{status}}
93
+ - **Pipeline type**: {{sprite_sheet | 3d_model | animation_frames | vfx | image_processing | audio_processing}}
94
+ - **Input**: {{input_files}}
95
+ - **Output**: {{output_files}}
96
+ - **Commands executed**:
97
+ ```bash
98
+ {{command 1}}
99
+ {{command 2}}
100
+ ```
101
+ - **Result**:
102
+ | File | Format | Dimensions | Size | Frame Count |
103
+ |------|--------|-----------|------|-------------|
104
+ | {{path}} | {{format}} | {{WxH}} | {{size}} | {{N or —}} |
105
+
106
+ <!--
107
+ For sprite_sheet / animation_frames / vfx pipeline types, fill the Sprite Grid Params section below.
108
+ JSON is only auto-generated by `sprite-sheet` command. `animate` and `use-vfx` produce PNG only.
109
+ -->
110
+
111
+ - **Sprite Grid Params** _(animation_frames / vfx 必填;sprite_sheet 填"见 JSON")_:
112
+ - columns: {{N or "见 JSON"}}
113
+ - frameWidth: {{W}}px _(or "见 JSON")_
114
+ - frameHeight: {{H}}px _(or "见 JSON")_
115
+ - frameCount: {{N or "见 JSON"}}
116
+ - padding: {{0 or N}}px
117
+ - JSON available: {{yes — `<path>.json` (sprite-sheet) / no — params above are source of truth (animate/use-vfx)}}
118
+ - Dimensions verified: {{width = cols×frameW ✅ / ❌ mismatch}} | {{channels = 4 ✅ / ❌ no alpha}}
119
+
120
+ <!-- Repeat for each pipeline atom -->
121
+
122
+ ---
123
+
124
+ ## Micro-Batch Validation
125
+
126
+ > **Per asset type — first 2 completions must pass validation before continuing batch production.**
127
+ > Compare each completion side-by-side with the Designer sample.
128
+
129
+ ### {{asset_type}} (e.g., tiles / ui / bg / vfx)
130
+
131
+ | Batch | Files | Consistency Score (1-5) | Deviation Items | Adjustments Made |
132
+ | ----- | ------------- | ----------------------- | ------------------ | ---------------- |
133
+ | {{n}} | {{file_list}} | {{score}} | {{deviation_list}} | {{adjustments}} |
134
+
135
+ <!--
136
+ Consistency Score criteria:
137
+ 5 — Perfect match: could be mistaken for original designer sample
138
+ 4 — Good match: minor differences only visible on close inspection
139
+ 3 — Acceptable match: style is recognizable but some attributes drift
140
+ 2 — Poor match: obvious style deviation, needs significant adjustment
141
+ 1 — Mismatch: completely different style, STOP and ask Designer
142
+
143
+ Score < 3 → STOP this asset type, write question to docs/intent-clarifications.md
144
+ -->
145
+
146
+ ---
147
+
148
+ ## Compliance Gate Results
149
+
150
+ > Completed after Designer Ph.2 is confirmed done. Verify all assetMapping entries.
151
+
152
+ ### Asset Coverage Check
153
+
154
+ | assetMapping Entry | Expected Path | File Exists? | Dimensions | Size | Status |
155
+ | ------------------ | -------------------- | ------------ | ---------- | -------- | ------------- |
156
+ | {{elementId}} | {{visualAsset_path}} | {{Yes/No}} | {{WxH}} | {{size}} | {{PASS/FAIL}} |
157
+
158
+ <!--
159
+ Fill one row per entry in layout-spec.md assetMapping.
160
+ Every row must be PASS before advancing to integration.
161
+ -->
162
+
163
+ ### Spec Compliance Summary
164
+
165
+ | Check | Target | Actual | Result |
166
+ | ------------------------ | -------------------------- | ---------- | ------------- |
167
+ | Background dimensions | {{assetSpec}} | {{actual}} | {{PASS/FAIL}} |
168
+ | Tile dimensions | {{assetSpec}} | {{actual}} | {{PASS/FAIL}} |
169
+ | UI element dimensions | {{assetSpec}} | {{actual}} | {{PASS/FAIL}} |
170
+ | Background file size | < 500KB | {{actual}} | {{PASS/FAIL}} |
171
+ | Tile file size | < 100KB per tile | {{actual}} | {{PASS/FAIL}} |
172
+ | BGM file size | < 300KB | {{actual}} | {{PASS/FAIL}} |
173
+ | SFX file size | < 50KB per SFX | {{actual}} | {{PASS/FAIL}} |
174
+ | Total assets size | ≤ 2-3MB | {{actual}} | {{PASS/FAIL}} |
175
+ | Sprite sheet JSON paired | Every .png sheet has .json | {{yes/no}} | {{PASS/FAIL}} |
176
+
177
+ ### Compliance Verdict
178
+
179
+ - **Overall**: {{PASS / FAIL}}
180
+ - **Blockers** (if any): {{list of FAIL items that block integration}}
181
+ - **Ready for Developer Phase 2**: {{Yes / No — pending fixes}}
182
+
183
+ ---
184
+
185
+ ## Handoff to Developer
186
+
187
+ Summary of what TA delivers to Developer:
188
+
189
+ | Asset Type | Count | Paths | Notes |
190
+ | ------------------- | ----- | ---------------------- | --------------------- |
191
+ | Background images | {{N}} | `assets/images/bg/` | {{notes}} |
192
+ | Tile/element images | {{N}} | `assets/images/tiles/` | {{notes}} |
193
+ | UI elements | {{N}} | `assets/images/ui/` | {{notes}} |
194
+ | Sprite sheet atlas | {{N}} | `assets/images/*/` | Each has paired .json |
195
+ | Animation frames | {{N}} | `assets/images/*/` | {{notes}} |
196
+ | VFX sprite sheets | {{N}} | `assets/images/vfx/` | {{notes}} |
197
+ | 3D GLB models | {{N}} | `assets/models/` | {{notes}} |
198
+ | BGM audio | {{N}} | `assets/audio/bgm/` | {{notes}} |
199
+ | SFX audio | {{N}} | `assets/audio/sfx/` | {{notes}} |
200
+
201
+ **All files path-match `layout-spec.md` assetMapping**: {{Yes / No}}
202
+
203
+ <!--
204
+ If No, list discrepancies here so Developer knows to use alternate paths.
205
+ -->