@playcraft/cli 0.0.41 → 0.0.42

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 (49) hide show
  1. package/dist/commands/tools-generation.js +2 -4
  2. package/dist/commands/tools-utils.js +19 -0
  3. package/dist/utils/version-checker.js +8 -11
  4. package/package.json +3 -3
  5. package/project-template/.claude/agents/designer.md +12 -8
  6. package/project-template/.claude/agents/developer.md +53 -62
  7. package/project-template/.claude/agents/refs/README.md +21 -15
  8. package/project-template/.claude/agents/refs/designer-deliverable-spec.md +24 -0
  9. package/project-template/.claude/agents/refs/designer-master-composite-recipes.md +20 -28
  10. package/project-template/.claude/agents/refs/developer-phase1-flow.md +81 -156
  11. package/project-template/.claude/agents/refs/pm-workflow-detail.md +6 -0
  12. package/project-template/.claude/agents/refs/reviewer-convergence-eval.md +130 -0
  13. package/project-template/.claude/agents/refs/reviewer-six-dimension-eval.md +4 -284
  14. package/project-template/.claude/agents/refs/ta-atlas-deliverable-standard.md +27 -6
  15. package/project-template/.claude/agents/refs/ta-pipeline-cookbook.md +433 -24
  16. package/project-template/.claude/agents/reviewer.md +62 -38
  17. package/project-template/.claude/agents/technical-artist.md +36 -25
  18. package/project-template/.claude/hooks/README.md +9 -1
  19. package/project-template/.claude/hooks/validate-workflow-stop.mjs +86 -1
  20. package/project-template/.claude/settings.json +4 -0
  21. package/project-template/.claude/skills/playcraft-image-generation/SKILL.md +65 -15
  22. package/project-template/.claude/skills/playcraft-storyboard/SKILL.md +26 -7
  23. package/project-template/.claude/skills/playcraft-workflow/SKILL.md +104 -15
  24. package/project-template/.claude/skills/playwright-cli/SKILL.md +390 -0
  25. package/project-template/.claude/skills/playwright-cli/references/element-attributes.md +23 -0
  26. package/project-template/.claude/skills/playwright-cli/references/playwright-tests.md +39 -0
  27. package/project-template/.claude/skills/playwright-cli/references/request-mocking.md +87 -0
  28. package/project-template/.claude/skills/playwright-cli/references/running-code.md +240 -0
  29. package/project-template/.claude/skills/playwright-cli/references/session-management.md +226 -0
  30. package/project-template/.claude/skills/playwright-cli/references/spec-driven-testing.md +312 -0
  31. package/project-template/.claude/skills/playwright-cli/references/storage-state.md +275 -0
  32. package/project-template/.claude/skills/playwright-cli/references/test-generation.md +138 -0
  33. package/project-template/.claude/skills/playwright-cli/references/tracing.md +142 -0
  34. package/project-template/.claude/skills/playwright-cli/references/video-recording.md +157 -0
  35. package/project-template/.cursor/rules/playcraft-orchestrator.mdc +74 -24
  36. package/project-template/.cursor/rules/playcraft-subagent-boundary.mdc +1 -1
  37. package/project-template/CLAUDE.md +99 -59
  38. package/project-template/docs/team/agent-conduct.md +42 -26
  39. package/project-template/docs/team/atom-plan-format.md +33 -2
  40. package/project-template/docs/team/collaboration.md +57 -48
  41. package/project-template/docs/team/workflow-changelog.md +28 -14
  42. package/project-template/docs/team/workflow-consistency-checklist.md +12 -0
  43. package/project-template/templates/atom-plan.template.md +35 -3
  44. package/project-template/templates/designer-log.template.md +16 -0
  45. package/project-template/templates/developer-log.template.md +95 -101
  46. package/project-template/templates/layout-spec.template.md +14 -0
  47. package/project-template/templates/project-state.template.md +51 -33
  48. package/project-template/templates/review-report.template.md +76 -151
  49. package/project-template/templates/ta-log.template.md +138 -0
@@ -88,6 +88,9 @@ Each elementId in assetMapping uses atlasPath + frameId OR single visualAsset pa
88
88
  | -------------- | ------------------------------------- | ------- | ------------------------------------- |
89
89
  | {{element_id}} | assets/images/tiles/tiles_atlas.webp | tile_01 | {{sfx_path_or_dash}} |
90
90
  | — | assets/images/bg/{{bg_filename}}.webp | — | — |
91
+ | — | assets/images/ui/{{ui_element}}.webp | — | — |
92
+ | — | assets/images/txt/{{text}}.webp | — | — |
93
+ | — | assets/images/vfx/{{vfx}}.webp | — | — |
91
94
  | — | — | — | assets/audio/sfx/{{sfx_filename}}.mp3 |
92
95
  | — | — | — | assets/audio/bgm/{{bgm_filename}}.mp3 |
93
96
 
@@ -97,6 +100,17 @@ CRITICAL: This mapping is the integration contract!
97
100
  - Developer references EXACTLY these paths in code
98
101
  - Path mismatch = integration failure
99
102
  - Use "—" for cells that don't apply
103
+
104
+ Transparency convention (TA auto-derives from path — PM does NOT define):
105
+ assets/images/bg/ → opaque, full-screen background (TA verifies edge-to-edge)
106
+ assets/images/ui/ → needs alpha (TA applies chroma key + remove-background)
107
+ assets/images/txt/ → needs alpha (TA applies chroma key + remove-background)
108
+ assets/images/vfx/ → needs alpha (TA applies chroma key + remove-background)
109
+ assets/images/tiles/ → needs alpha by default (except card faces / board pieces)
110
+ assets/audio/ → N/A (not image)
111
+
112
+ TA determines chroma key color (green/blue/magenta) based on element color palette
113
+ and color conflict rules — see ta-pipeline-cookbook.md Step 0e.
100
114
  -->
101
115
 
102
116
  ## Text Assets
@@ -4,11 +4,11 @@
4
4
 
5
5
  | Field | Value |
6
6
  | ----------------------- | --------------------------------------------------------------------- |
7
- | **workflowSpecVersion** | `production-serial-v1` |
7
+ | **workflowSpecVersion** | `convergence-v1` |
8
8
  | **Changelog** | [docs/team/workflow-changelog.md](../docs/team/workflow-changelog.md) |
9
9
 
10
10
  <!--
11
- production-serial-v1: Gate #2b production Wave 1 Designer Ph.2Wave 2 TA integration Developer.
11
+ convergence-v1: Three convergence loops design_check (Gate #1/#2b) ui_pass/ui_review/ui_reworkgameplay_pass/load_checkGate #3.
12
12
  Visual baseline (designer-handoff-v2): Phase 1 = MC + ASR; Phase 2 Designer = audio + digit strip + VisualAtom status only.
13
13
  -->
14
14
 
@@ -32,7 +32,7 @@
32
32
 
33
33
  **{{current_stage}}** — {{stage_description}}
34
34
 
35
- `pm` → `style_exploration` → `production` → `integration` → `review` ⇄ `rework` → `done`
35
+ `pm` → `style_exploration` → `production` → `ui_pass` → `ui_review` ⇄ `ui_rework` → `gameplay_pass` → `done`
36
36
 
37
37
  <!-- Stage definitions: see CLAUDE.md § Stage Model -->
38
38
 
@@ -40,12 +40,12 @@
40
40
 
41
41
  > Only the **orchestrator** runs `AskUserQuestion` toward the user. Sub-agents set `pending` and STOP.
42
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) |
43
+ | Gate | Status | Notes |
44
+ | ------------------ | ------------------ | ---------------------------------------------------------------------------- |
45
+ | #1 Direction | {{passed/pending}} | Orchestrator confirms after PM four docs + Reviewer design_check + STOP |
46
+ | #2a MC selection | {{passed/pending}} | Orchestrator picks A/B/C → sets `selectedMcOption` below |
47
+ | #2b MC + ASR final | {{passed/pending}} | Reviewer design_check → Orchestrator confirms MC + ASR → `stage: production` |
48
+ | #3 Dev acceptance | {{passed/pending}} | Reviewer load_check pass → user opens devUrl (orchestrator link only) |
49
49
 
50
50
  ## Agent handoff
51
51
 
@@ -82,13 +82,21 @@ Designer Gate #2a STOP:
82
82
  next_orchestrator_action: "Run Gate #2a"
83
83
  last_completed_by: designer
84
84
 
85
- Developer integration STOP:
85
+ Developer ui_pass STOP:
86
86
  subagent: developer
87
87
  subagent_stop: true
88
88
  waiting_for: orchestrator
89
89
  gate_pending: null
90
- next_orchestrator_action: "Invoke @reviewer"
90
+ next_orchestrator_action: "Invoke @reviewer ui_diff"
91
91
  last_completed_by: developer
92
+
93
+ Reviewer ui_diff pass STOP:
94
+ subagent: reviewer
95
+ subagent_stop: true
96
+ waiting_for: orchestrator
97
+ gate_pending: null
98
+ next_orchestrator_action: "Set stage=gameplay_pass, invoke @developer"
99
+ last_completed_by: reviewer
92
100
  -->
93
101
 
94
102
  ## Gate resume fields
@@ -96,30 +104,40 @@ Developer integration STOP:
96
104
  | Field | Value |
97
105
  | ---------------- | -------------------------------------------------- |
98
106
  | selectedMcOption | {{A / B / C — set by orchestrator after Gate #2a}} |
99
- | reworkRound | {{0 / 1 / 2 — incremented by Reviewer on fail}} |
107
+ | uiReworkRound | {{0–5 — incremented by Reviewer on ui_diff fail}} |
100
108
 
101
109
  ## Dev Preview
102
110
 
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}} |
111
+ | Field | Value |
112
+ | -------------- | ---------------------------------------------------------------------------- |
113
+ | devCommand | npm run dev |
114
+ | devScript | {{from package.json scripts.dev}} |
115
+ | devUrl | {{http://... — Developer records when ready; orchestrator uses for Gate #3}} |
116
+ | devStatus | pending / ui_ready / ready / blocked_upstream / failed |
117
+ | devBlockers | {{list: assetPath, issue, routeTo (TA/Designer/PM), status}} |
118
+ | devStartedBy | developer / reviewer / orchestrator |
119
+ | devLastChecked | {{ISO timestamp}} |
120
+ | loadCheck | pending / passed / failed |
121
+ | loadCheckNotes | {{console errors, white screen, load time}} |
122
+
123
+ ## UI Review
124
+
125
+ | Field | Value |
126
+ | ---------------- | ------------------------------------------ |
127
+ | uiReviewStatus | pending / passed / failed |
128
+ | uiReworkRound | {{0–5}} |
129
+ | uiDiffReportPath | logs/review-report.md |
130
+ | uiDiffNotes | {{summary of MC vs screenshot comparison}} |
114
131
 
115
132
  <!--
116
133
  devStatus:
117
- pending — integration not finished
118
- ready Developer self-check passed, no open blockers; safe to invoke Reviewer
134
+ pending — ui_pass or gameplay_pass not finished
135
+ ui_ready UI shell complete (scene switch, layout, simple states); safe to invoke Reviewer ui_diff
136
+ ready — gameplay_pass complete; safe to invoke Reviewer load_check
119
137
  blocked_upstream — Developer waiting on TA/Designer rework (orchestrator re-invokes)
120
138
  failed — dev server could not start; document error
121
139
 
122
- Developer MUST NOT set ready while devBlockers has open items.
140
+ Developer MUST NOT set ui_ready/ready while devBlockers has open items.
123
141
  -->
124
142
 
125
143
  ## File Index
@@ -164,21 +182,21 @@ Developer MUST NOT set ready while devBlockers has open items.
164
182
 
165
183
  ### Reviewer Output
166
184
 
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}} |
185
+ | File | Description | Status |
186
+ | --------------------------------------------------------- | ------------------------------------------- | ---------- |
187
+ | [review-report.md](logs/review-report.md) | design_check / ui_diff / load_check reports | {{status}} |
188
+ | [intent-clarifications.md](docs/intent-clarifications.md) | Agent-to-agent Q&A (ICP) | {{status}} |
171
189
 
172
190
  ## Production Pipeline (Serial)
173
191
 
174
- <!-- Only relevant when stage = production or transitioning to integration -->
192
+ <!-- Only relevant when stage = production or transitioning to ui_pass -->
175
193
 
176
194
  | Wave | Agent | Status | Notes |
177
195
  | ---- | ---------------- | ---------- | ------------------------------------------ |
178
196
  | 1 | Designer | {{status}} | Ph.2: audio + digit + VisualAtom status |
179
197
  | 2 | Technical Artist | {{status}} | Spec Quick-Check → bulk → Compliance green |
180
198
 
181
- <!-- Wave 3 Developer runs in stage = integration only — not tracked here -->
199
+ <!-- Wave 3 Developer runs in stage = ui_pass — not tracked here -->
182
200
 
183
201
  ## Intent Clarification Tracking
184
202
 
@@ -203,7 +221,7 @@ PM monitors this table:
203
221
  Orchestrator serial rules:
204
222
  - Gate #2b passed → invoke @designer only (Wave 1)
205
223
  - Wave 1 = done → invoke @technical-artist (Wave 2)
206
- - Wave 2 = done → stage: integration → invoke @developer
224
+ - Wave 2 = done → stage: ui_pass → invoke @developer
207
225
  - Optional: 30s spot-check ta-log Compliance + contract paths exist before @developer
208
226
  -->
209
227
 
@@ -1,166 +1,91 @@
1
1
  # Review Report
2
2
 
3
+ > Fill **one section** matching the review mode orchestrator invoked: `design_check` | `ui_diff` | `load_check`.
4
+
5
+ ## Review Mode
6
+
7
+ **{{design_check / ui_diff / load_check}}** — {{ISO timestamp}}
8
+
3
9
  ## Verdict
4
10
 
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
11
+ **{{pass / fail}}**
128
12
 
129
- | # | Issue Ref | Action Required | Priority |
130
- | ----- | -------------- | ------------------- | ------------------- |
131
- | {{n}} | Issue #{{ref}} | {{specific_action}} | {{high/medium/low}} |
13
+ ---
132
14
 
133
- ### For Technical Artist
15
+ ## design_check (Gate #1 / #2b)
134
16
 
135
- | # | Issue Ref | Action Required | Priority |
136
- | ----- | -------------- | ------------------- | ------------------- |
137
- | {{n}} | Issue #{{ref}} | {{specific_action}} | {{high/medium/low}} |
17
+ ### Gate
138
18
 
139
- ### For Developer
19
+ **{{#1 / #2b}}**
140
20
 
141
- | # | Issue Ref | Action Required | Priority |
142
- | ----- | -------------- | ------------------- | ------------------- |
143
- | {{n}} | Issue #{{ref}} | {{specific_action}} | {{high/medium/low}} |
21
+ ### Checklist
144
22
 
145
- ## Rework Status
23
+ | Item | Pass? | Notes |
24
+ | ------------------ | ---------- | ----------- |
25
+ | {{checklist item}} | {{yes/no}} | {{details}} |
146
26
 
147
- <!-- Only fill if verdict is not "pass" -->
27
+ ### Missing / defects
148
28
 
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}} |
29
+ | # | Issue | routeTo |
30
+ | ----- | --------------- | ------------- |
31
+ | {{n}} | {{description}} | pm / designer |
154
32
 
155
- ## Summary
33
+ ### Outcome
34
+
35
+ {{pass → Run Gate / fail → re-invoke agent}}
36
+
37
+ ---
38
+
39
+ ## ui_diff (MC screenshot comparison)
40
+
41
+ ### devUrl
42
+
43
+ {{http://...}}
44
+
45
+ ### Scene comparisons
46
+
47
+ | Scene | Screenshot | MC reference | Severity | Match? | routeTo | Fix suggestion |
48
+ | ----- | --------------------- | ------------ | ------------------------ | ---------- | ------------------------- | -------------- |
49
+ | hook | logs/ui-diff-hook.png | {{mc path}} | {{critical/major/minor}} | {{yes/no}} | {{developer/ta/designer}} | {{fix}} |
50
+
51
+ ### Summary
52
+
53
+ - **uiReworkRound**: {{0–5}}
54
+ - **Blocking issues**: {{count critical + major}}
55
+ - **Minor only**: {{yes/no — does not block pass}}
56
+
57
+ ### Action Items
156
58
 
157
- {{overall_assessment_paragraph}}
59
+ | # | Severity | routeTo | Action |
60
+ | ----- | ------------ | --------- | ---------------- |
61
+ | {{n}} | {{severity}} | {{agent}} | {{specific fix}} |
62
+
63
+ ---
64
+
65
+ ## load_check (pre-Gate #3)
66
+
67
+ ### devUrl
68
+
69
+ {{http://...}}
70
+
71
+ ### Checks
72
+
73
+ | Check | Pass? | Notes |
74
+ | ---------------------- | ---------- | ------------------------- |
75
+ | Page loads ≤10s | {{yes/no}} | {{load time}} |
76
+ | No console Error logs | {{yes/no}} | {{error summary or none}} |
77
+ | game/index.html exists | {{yes/no}} | — |
78
+
79
+ ### Screenshot
80
+
81
+ `logs/load-check.png`
82
+
83
+ ### Outcome
84
+
85
+ {{pass → Run Gate #3 / fail → route Developer}}
86
+
87
+ ---
88
+
89
+ ## Summary
158
90
 
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
- -->
91
+ {{one paragraph overall assessment for this review mode}}
@@ -30,6 +30,46 @@
30
30
  - **Designer samples received**: {{designer_sample_count}} files
31
31
  - **TA-completed elements**: {{ta_completed_count}} files
32
32
 
33
+ ---
34
+
35
+ ## mediaGroups Reuse
36
+
37
+ > **Step 0 Pre — mandatory before Skill Discovery.** Check `atom-plan.json` → `skillsMatch.mediaGroups` for pre-matched reusable assets.
38
+
39
+ | mediaGroup atomId | Matches TA atom? | Disposition | Reason (if skipped) | Output path (if linked) |
40
+ | ----------------- | ---------------- | ------------- | ------------------------ | ----------------------- |
41
+ | {{mg_atomId}} | {{atom_id / —}} | linked / skip | {{style mismatch / N/A}} | {{path / —}} |
42
+
43
+ <!--
44
+ For each mediaGroup entry:
45
+ - "linked" = used the pre-matched asset → playcraft skills link → post-process → status=done
46
+ - "skip" = quality/style mismatch → document reason → generate from scratch
47
+ This section MUST be filled before proceeding to Step 0 Skill Discovery.
48
+ -->
49
+
50
+ ---
51
+
52
+ ## Skill Preflight
53
+
54
+ > **Step 0 Part C — mandatory before production.** Read all relevant playcraft pipeline Skills.
55
+
56
+ | Skill | 已读 | 关键决策摘要 |
57
+ | --------------------------- | ---- | --------------------------------------------------------- |
58
+ | playcraft-image-generation | ☐ | {{model choice, reference-image strategy, background}} |
59
+ | playcraft-masking | ☐ | {{floodfill tolerance, segment fallback, method-ai case}} |
60
+ | playcraft-sprite-generation | ☐ | {{single-frame→merge workflow, batch threshold}} |
61
+ | playcraft-text-rendering | ☐ | {{blue screen for text, stroke protection}} |
62
+ | playcraft-vfx-animation | ☐ | {{per-frame generation, blue screen for VFX}} |
63
+ | playcraft-batch-pipeline | ☐ | {{>5 elements → script, reference anchoring}} |
64
+ | playcraft-style-qa | ☐ | {{dark-bg verify, MC consistency check}} |
65
+
66
+ <!--
67
+ MUST be filled before Step 1 bulk generation. Each row: ✅ after reading + one-line decision summary.
68
+ Without this table → no bulk generation → no STOP.
69
+ -->
70
+
71
+ ---
72
+
33
73
  ## Style Interpretation
34
74
 
35
75
  > **Step 0c — Mandatory before any completion work.**
@@ -48,6 +88,93 @@ Confidence rules:
48
88
  Do NOT proceed with any asset type where confidence = low.
49
89
  -->
50
90
 
91
+ ## Production Plan
92
+
93
+ > **Step 0d — mandatory before any asset generation.** Plan WHAT to produce, in WHAT order, using WHAT pipeline.
94
+
95
+ ### Coverage Plan
96
+
97
+ | assetMapping id | Contract path | Pipeline | Reference source | Priority |
98
+ | --------------- | ------------------------- | ---------------------- | ----------------- | --------------- |
99
+ | {{elementId}} | {{path from layout-spec}} | {{extract/generate/…}} | {{MC/ASR/sample}} | {{high/normal}} |
100
+
101
+ <!--
102
+ One row per layout-spec assetMapping entry. Row count must match assetMapping count (no gaps).
103
+ -->
104
+
105
+ ### Atlas Assembly Plan
106
+
107
+ | Atlas group | Output path (.webp + .json) | Elements (frameIds) | Layout |
108
+ | ----------- | ------------------------------- | -------------------- | ------------ |
109
+ | {{tiles}} | {{assets/images/tiles/…_atlas}} | {{tile_01..tile_06}} | {{3x2 grid}} |
110
+
111
+ <!--
112
+ Must match layout-spec § atlas grouping table.
113
+ -->
114
+
115
+ ### Pipeline Order
116
+
117
+ 1. Extract: crop MC/ASR reference elements (Stage E)
118
+ 2. Complete: batch generate remaining elements (Stage A)
119
+ 3. Process: resize + format convert to WebP (Stage B)
120
+ 4. Assemble: build atlases with JSON sidecars (Stage C)
121
+ 5. Verify: Compliance Gate on all paths
122
+
123
+ ### Risk Checklist
124
+
125
+ - [ ] Every assetMapping entry in Coverage Plan (no gaps)
126
+ - [ ] Atlas groups match layout-spec grouping table
127
+ - [ ] MC + ASR reference images accessible
128
+ - [ ] Style Interpretation confidence ≥ medium for all asset types
129
+ - [ ] Transparency Classification table complete (Step 0e below)
130
+
131
+ **MUST NOT** start bulk generation until every Risk Checklist item is checked `[x]`.
132
+
133
+ ---
134
+
135
+ ## Transparency Classification
136
+
137
+ > **Step 0e — mandatory before any generation.** TA auto-derives `needsAlpha` from path convention + `bgStrategy` from element color palette. See `ta-pipeline-cookbook.md` Step 0e for full rules.
138
+
139
+ | # | assetMapping path | needsAlpha | bgStrategy | 推导依据 | 去背工具 | 回退工具 | 验证结果 |
140
+ | ----- | ----------------- | -------------- | --------------------------------------------------------------- | --------------------------------- | ---------------------------------------------------- | ----------------------------------------- | ----------- |
141
+ | {{n}} | {{path}} | {{true/false}} | {{greenscreen/bluescreen/magenta/extract/full-coverage/opaque}} | {{路径: ui/ + 色彩: 红色系→绿幕}} | {{remove-bg floodfill t=25 / segment --boxes / N/A}} | {{segment / remove-bg --method ai / N/A}} | {{✅ / ❓}} |
142
+
143
+ <!--
144
+ TA auto-derives transparency — does NOT depend on PM fields.
145
+
146
+ needsAlpha derivation (from assetMapping path):
147
+ images/bg/ → false (full-screen background)
148
+ images/ui/ → true (UI overlay)
149
+ images/txt/ → true (text image)
150
+ images/vfx/ → true (VFX sprite)
151
+ images/tiles/ → true (default; unless card/board rect body → false)
152
+
153
+ bgStrategy derivation (from element color palette):
154
+ Gold/yellow/orange/amber → bluescreen (NEVER green — color bleed)
155
+ Green/teal/cyan → bluescreen (NEVER green — same family)
156
+ Blue/indigo/purple → greenscreen (NEVER blue — same family)
157
+ VFX glow/particle → bluescreen (warm tones common)
158
+ Text/digit images → bluescreen (often gold/white)
159
+ Multi-color/rainbow → magenta (last resort)
160
+ Red/pink/white/black → greenscreen or bluescreen (both safe)
161
+
162
+ TA tool chain (must use, never skip):
163
+ 1st: playcraft image remove-background --method floodfill --tolerance 25
164
+ 2nd: playcraft image segment --boxes (complex edges, known position)
165
+ 3rd: playcraft image remove-background --method ai (hair/transparency)
166
+ 4th: playcraft image segment --text (unknown position, last resort)
167
+ Extract: playcraft image crop (grid) or decompose-layers (multi-layer MC)
168
+
169
+ Post-verify: overlay on #1A1A2E dark bg to check:
170
+ ✅ No white edges, no chroma residue, no black blocks, clean edges
171
+ ❌ If any issue → escalate through fallback tool chain
172
+ -->
173
+
174
+ **MUST NOT** proceed to Step 1 bulk generation if any row has `❓ pending` in 验证结果.
175
+
176
+ ---
177
+
51
178
  ## Style Reference
52
179
 
53
180
  - **Master reference (MC)**: `assets/images/storyboard/master_composite_option_{{selectedMcOption}}.png`
@@ -174,6 +301,17 @@ Every row must be PASS before advancing to integration.
174
301
  | Total assets size | ≤ 2-3MB | {{actual}} | {{PASS/FAIL}} |
175
302
  | Sprite sheet JSON paired | Every .png sheet has .json | {{yes/no}} | {{PASS/FAIL}} |
176
303
 
304
+ ### Transparency Compliance
305
+
306
+ | Check | Target | Actual | Result |
307
+ | ---------------------------- | -------------------------------------------------- | ---------- | ------------- |
308
+ | Classification table | All rows filled, no ❓ pending | {{status}} | {{PASS/FAIL}} |
309
+ | Alpha channels (transparent) | All transparent assets channels=4 | {{count}} | {{PASS/FAIL}} |
310
+ | Dark-bg verify (transparent) | All transparent assets clean on #1A1A2E overlay | {{count}} | {{PASS/FAIL}} |
311
+ | BG full-coverage | All backgrounds edge-to-edge, no fade/white corner | {{status}} | {{PASS/FAIL}} |
312
+ | Atlas per-frame verify | VFX/atlas each frame verified on dark bg | {{status}} | {{PASS/FAIL}} |
313
+ | Chroma residue | Zero color residue from chroma key removal | {{status}} | {{PASS/FAIL}} |
314
+
177
315
  ### Compliance Verdict
178
316
 
179
317
  - **Overall**: {{PASS / FAIL}}