@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.
- package/dist/commands/tools-generation.js +2 -4
- package/dist/commands/tools-utils.js +19 -0
- package/dist/utils/version-checker.js +8 -11
- package/package.json +3 -3
- package/project-template/.claude/agents/designer.md +12 -8
- package/project-template/.claude/agents/developer.md +53 -62
- package/project-template/.claude/agents/refs/README.md +21 -15
- package/project-template/.claude/agents/refs/designer-deliverable-spec.md +24 -0
- package/project-template/.claude/agents/refs/designer-master-composite-recipes.md +20 -28
- package/project-template/.claude/agents/refs/developer-phase1-flow.md +81 -156
- package/project-template/.claude/agents/refs/pm-workflow-detail.md +6 -0
- package/project-template/.claude/agents/refs/reviewer-convergence-eval.md +130 -0
- package/project-template/.claude/agents/refs/reviewer-six-dimension-eval.md +4 -284
- package/project-template/.claude/agents/refs/ta-atlas-deliverable-standard.md +27 -6
- package/project-template/.claude/agents/refs/ta-pipeline-cookbook.md +433 -24
- package/project-template/.claude/agents/reviewer.md +62 -38
- package/project-template/.claude/agents/technical-artist.md +36 -25
- package/project-template/.claude/hooks/README.md +9 -1
- package/project-template/.claude/hooks/validate-workflow-stop.mjs +86 -1
- package/project-template/.claude/settings.json +4 -0
- package/project-template/.claude/skills/playcraft-image-generation/SKILL.md +65 -15
- package/project-template/.claude/skills/playcraft-storyboard/SKILL.md +26 -7
- package/project-template/.claude/skills/playcraft-workflow/SKILL.md +104 -15
- package/project-template/.claude/skills/playwright-cli/SKILL.md +390 -0
- package/project-template/.claude/skills/playwright-cli/references/element-attributes.md +23 -0
- package/project-template/.claude/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/project-template/.claude/skills/playwright-cli/references/request-mocking.md +87 -0
- package/project-template/.claude/skills/playwright-cli/references/running-code.md +240 -0
- package/project-template/.claude/skills/playwright-cli/references/session-management.md +226 -0
- package/project-template/.claude/skills/playwright-cli/references/spec-driven-testing.md +312 -0
- package/project-template/.claude/skills/playwright-cli/references/storage-state.md +275 -0
- package/project-template/.claude/skills/playwright-cli/references/test-generation.md +138 -0
- package/project-template/.claude/skills/playwright-cli/references/tracing.md +142 -0
- package/project-template/.claude/skills/playwright-cli/references/video-recording.md +157 -0
- package/project-template/.cursor/rules/playcraft-orchestrator.mdc +74 -24
- package/project-template/.cursor/rules/playcraft-subagent-boundary.mdc +1 -1
- package/project-template/CLAUDE.md +99 -59
- package/project-template/docs/team/agent-conduct.md +42 -26
- package/project-template/docs/team/atom-plan-format.md +33 -2
- package/project-template/docs/team/collaboration.md +57 -48
- package/project-template/docs/team/workflow-changelog.md +28 -14
- package/project-template/docs/team/workflow-consistency-checklist.md +12 -0
- package/project-template/templates/atom-plan.template.md +35 -3
- package/project-template/templates/designer-log.template.md +16 -0
- package/project-template/templates/developer-log.template.md +95 -101
- package/project-template/templates/layout-spec.template.md +14 -0
- package/project-template/templates/project-state.template.md +51 -33
- package/project-template/templates/review-report.template.md +76 -151
- 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** | `
|
|
7
|
+
| **workflowSpecVersion** | `convergence-v1` |
|
|
8
8
|
| **Changelog** | [docs/team/workflow-changelog.md](../docs/team/workflow-changelog.md) |
|
|
9
9
|
|
|
10
10
|
<!--
|
|
11
|
-
|
|
11
|
+
convergence-v1: Three convergence loops — design_check (Gate #1/#2b) → ui_pass/ui_review/ui_rework → gameplay_pass/load_check → Gate #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` → `
|
|
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
|
|
48
|
-
| #3 Dev acceptance | {{passed/pending}} |
|
|
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
|
|
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
|
-
|
|
|
107
|
+
| uiReworkRound | {{0–5 — incremented by Reviewer on ui_diff fail}} |
|
|
100
108
|
|
|
101
109
|
## Dev Preview
|
|
102
110
|
|
|
103
|
-
| Field
|
|
104
|
-
|
|
|
105
|
-
| devCommand
|
|
106
|
-
| devScript
|
|
107
|
-
| devUrl
|
|
108
|
-
| devStatus
|
|
109
|
-
| devBlockers
|
|
110
|
-
| devStartedBy
|
|
111
|
-
| devLastChecked
|
|
112
|
-
|
|
|
113
|
-
|
|
|
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 —
|
|
118
|
-
|
|
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
|
|
168
|
-
| --------------------------------------------------------- |
|
|
169
|
-
| [review-report.md](logs/review-report.md) |
|
|
170
|
-
| [intent-clarifications.md](docs/intent-clarifications.md) | Agent-to-agent Q&A (ICP)
|
|
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
|
|
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 =
|
|
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:
|
|
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/
|
|
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
|
-
|
|
130
|
-
| ----- | -------------- | ------------------- | ------------------- |
|
|
131
|
-
| {{n}} | Issue #{{ref}} | {{specific_action}} | {{high/medium/low}} |
|
|
13
|
+
---
|
|
132
14
|
|
|
133
|
-
|
|
15
|
+
## design_check (Gate #1 / #2b)
|
|
134
16
|
|
|
135
|
-
|
|
136
|
-
| ----- | -------------- | ------------------- | ------------------- |
|
|
137
|
-
| {{n}} | Issue #{{ref}} | {{specific_action}} | {{high/medium/low}} |
|
|
17
|
+
### Gate
|
|
138
18
|
|
|
139
|
-
|
|
19
|
+
**{{#1 / #2b}}**
|
|
140
20
|
|
|
141
|
-
|
|
142
|
-
| ----- | -------------- | ------------------- | ------------------- |
|
|
143
|
-
| {{n}} | Issue #{{ref}} | {{specific_action}} | {{high/medium/low}} |
|
|
21
|
+
### Checklist
|
|
144
22
|
|
|
145
|
-
|
|
23
|
+
| Item | Pass? | Notes |
|
|
24
|
+
| ------------------ | ---------- | ----------- |
|
|
25
|
+
| {{checklist item}} | {{yes/no}} | {{details}} |
|
|
146
26
|
|
|
147
|
-
|
|
27
|
+
### Missing / defects
|
|
148
28
|
|
|
149
|
-
|
|
|
150
|
-
|
|
|
151
|
-
|
|
|
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
|
-
|
|
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
|
-
|
|
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}}
|