@playcraft/cli 0.0.41 → 0.0.43
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/atom-plan/validate-asr-coverage.js +317 -0
- package/dist/commands/prad.js +61 -0
- package/dist/commands/remix.js +4 -2
- package/dist/commands/skills.js +24 -0
- package/dist/commands/tools-generation.js +2 -4
- package/dist/commands/tools-utils.js +19 -0
- package/dist/prad/atom-ref.js +23 -0
- package/dist/prad/check.js +377 -0
- package/dist/prad/check.test.js +27 -0
- package/dist/prad/explain.js +109 -0
- package/dist/prad/load-spec.js +23 -0
- package/dist/prad/paths.js +83 -0
- package/dist/prad/skills-index.js +60 -0
- package/dist/utils/version-checker.js +8 -11
- package/package.json +3 -3
- package/project-template/.claude/agents/designer.md +34 -26
- package/project-template/.claude/agents/developer.md +55 -62
- package/project-template/.claude/agents/pm.md +3 -1
- package/project-template/.claude/agents/refs/README.md +21 -15
- package/project-template/.claude/agents/refs/designer-deliverable-spec.md +70 -7
- package/project-template/.claude/agents/refs/designer-handoff-v2-checklist.md +21 -13
- package/project-template/.claude/agents/refs/designer-master-composite-recipes.md +20 -28
- package/project-template/.claude/agents/refs/designer-style-exploration-flow.md +39 -9
- package/project-template/.claude/agents/refs/developer-dev-handoff.md +1 -1
- package/project-template/.claude/agents/refs/developer-phase1-flow.md +81 -156
- package/project-template/.claude/agents/refs/pm-workflow-detail.md +24 -2
- package/project-template/.claude/agents/refs/reviewer-convergence-eval.md +142 -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 +474 -29
- package/project-template/.claude/agents/reviewer.md +65 -38
- package/project-template/.claude/agents/technical-artist.md +38 -25
- package/project-template/.claude/hooks/README.md +40 -4
- package/project-template/.claude/hooks/asr-coverage-validate.mjs +381 -0
- package/project-template/.claude/hooks/validate-workflow-stop.mjs +196 -5
- package/project-template/.claude/settings.json +4 -0
- package/project-template/.claude/skills/playcraft-asset-state-sheet/SKILL.md +76 -22
- package/project-template/.claude/skills/playcraft-image-generation/SKILL.md +84 -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/agent-runtime-matrix.md +71 -39
- package/project-template/docs/team/atom-plan-format.md +101 -2
- package/project-template/docs/team/collaboration.md +57 -48
- package/project-template/docs/team/core-model.md +20 -19
- package/project-template/docs/team/workflow-changelog.md +28 -14
- package/project-template/docs/team/workflow-consistency-checklist.md +64 -0
- package/project-template/templates/atom-plan.template.json +18 -0
- package/project-template/templates/atom-plan.template.md +35 -3
- package/project-template/templates/designer-log.template.md +94 -5
- package/project-template/templates/developer-log.template.md +95 -101
- package/project-template/templates/layout-spec.template.md +62 -8
- 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 +180 -14
|
@@ -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,57 @@
|
|
|
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.** Filter `atom-plan.json` → `skillsMatch.mediaGroups` by `extension`; TA is responsible for **`.aiimage` + `.aisprite`** (Designer handles `.aiaudio`).
|
|
38
|
+
|
|
39
|
+
| mediaGroup atomId | extension | Matches TA atom? | Disposition | Reason (if skipped) | Output path (if linked) |
|
|
40
|
+
| ----------------- | ------------------ | ---------------- | ------------- | ------------------------------- | ----------------------- |
|
|
41
|
+
| {{mg_atomId}} | .aiimage/.aisprite | {{atom_id / —}} | linked / skip | {{style mismatch / wrong dims}} | {{path / —}} |
|
|
42
|
+
|
|
43
|
+
<!--
|
|
44
|
+
TA scope (this table):
|
|
45
|
+
.aiimage — single-shot image bundles (bg, single ui element, single tile)
|
|
46
|
+
.aisprite — sprite-sheet bundles (multi-frame: tile sets, vfx, animations)
|
|
47
|
+
|
|
48
|
+
Out of TA scope (do NOT fill rows for these — Designer owns them):
|
|
49
|
+
.aiaudio — BGM / SFX → see designer-log.md § mediaGroups Reuse
|
|
50
|
+
|
|
51
|
+
Filter command:
|
|
52
|
+
cat docs/atom-plan.json | jq '.skillsMatch.mediaGroups[] | select(.extension == ".aiimage" or .extension == ".aisprite")'
|
|
53
|
+
|
|
54
|
+
Disposition rules:
|
|
55
|
+
linked → playcraft skills link → post-process (resize/convert/transparency) → status=done
|
|
56
|
+
skip → quality / style / wrong dimensions → document reason → generate from scratch
|
|
57
|
+
|
|
58
|
+
This section MUST be filled before proceeding to Step 0 Skill Discovery.
|
|
59
|
+
-->
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Skill Preflight
|
|
64
|
+
|
|
65
|
+
> **Step 0 Part C — mandatory before production.** Read all relevant playcraft pipeline Skills.
|
|
66
|
+
|
|
67
|
+
| Skill | 已读 | 关键决策摘要 |
|
|
68
|
+
| --------------------------- | ---- | --------------------------------------------------------- |
|
|
69
|
+
| playcraft-image-generation | ☐ | {{model choice, reference-image strategy, background}} |
|
|
70
|
+
| playcraft-masking | ☐ | {{floodfill tolerance, segment fallback, method-ai case}} |
|
|
71
|
+
| playcraft-sprite-generation | ☐ | {{single-frame→merge workflow, batch threshold}} |
|
|
72
|
+
| playcraft-text-rendering | ☐ | {{blue screen for text, stroke protection}} |
|
|
73
|
+
| playcraft-vfx-animation | ☐ | {{per-frame generation, blue screen for VFX}} |
|
|
74
|
+
| playcraft-batch-pipeline | ☐ | {{>5 elements → script, reference anchoring}} |
|
|
75
|
+
| playcraft-style-qa | ☐ | {{dark-bg verify, MC consistency check}} |
|
|
76
|
+
|
|
77
|
+
<!--
|
|
78
|
+
MUST be filled before Step 1 bulk generation. Each row: ✅ after reading + one-line decision summary.
|
|
79
|
+
Without this table → no bulk generation → no STOP.
|
|
80
|
+
-->
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
33
84
|
## Style Interpretation
|
|
34
85
|
|
|
35
86
|
> **Step 0c — Mandatory before any completion work.**
|
|
@@ -40,14 +91,106 @@
|
|
|
40
91
|
| {{n}} | "{{designer_quote}}" | {{my_interpretation}} | high/medium/low | proceed / clarify |
|
|
41
92
|
|
|
42
93
|
<!--
|
|
43
|
-
Confidence rules:
|
|
94
|
+
Confidence rules (atom-granularity — hold only the affected asset type, not the whole Wave 2):
|
|
44
95
|
high → proceed with completion
|
|
45
96
|
medium → proceed, but include style interpretation in --reference-image prompt
|
|
46
|
-
low →
|
|
97
|
+
low → HOLD that asset type only: write question to docs/intent-clarifications.md
|
|
98
|
+
(routeTo: designer if style ambiguity; routeTo: pm if contract ambiguity)
|
|
99
|
+
→ continue producing OTHER asset types where confidence ≥ medium
|
|
100
|
+
→ resume the held type only after ICP answer (or Designer supplementary PNG per
|
|
101
|
+
designer-deliverable-spec.md § "ICP supplementary PNG — when (and only when)")
|
|
102
|
+
|
|
103
|
+
You may STOP only when EVERY remaining asset type is held at confidence=low — otherwise keep
|
|
104
|
+
making progress on the producible ones in parallel with the ICP wait.
|
|
105
|
+
-->
|
|
106
|
+
|
|
107
|
+
## Production Plan
|
|
108
|
+
|
|
109
|
+
> **Step 0d — mandatory before any asset generation.** Plan WHAT to produce, in WHAT order, using WHAT pipeline.
|
|
110
|
+
|
|
111
|
+
### Coverage Plan
|
|
112
|
+
|
|
113
|
+
| assetMapping id | Contract path | Pipeline | Reference source | Priority |
|
|
114
|
+
| --------------- | ------------------------- | ---------------------- | ----------------- | --------------- |
|
|
115
|
+
| {{elementId}} | {{path from layout-spec}} | {{extract/generate/…}} | {{MC/ASR/sample}} | {{high/normal}} |
|
|
47
116
|
|
|
48
|
-
|
|
117
|
+
<!--
|
|
118
|
+
One row per layout-spec assetMapping entry. Row count must match assetMapping count (no gaps).
|
|
49
119
|
-->
|
|
50
120
|
|
|
121
|
+
### Atlas Assembly Plan
|
|
122
|
+
|
|
123
|
+
| Atlas group | Output path (.webp + .json) | Elements (frameIds) | Layout |
|
|
124
|
+
| ----------- | ------------------------------- | -------------------- | ------------ |
|
|
125
|
+
| {{tiles}} | {{assets/images/tiles/…_atlas}} | {{tile_01..tile_06}} | {{3x2 grid}} |
|
|
126
|
+
|
|
127
|
+
<!--
|
|
128
|
+
Must match layout-spec § atlas grouping table.
|
|
129
|
+
-->
|
|
130
|
+
|
|
131
|
+
### Pipeline Order
|
|
132
|
+
|
|
133
|
+
1. Extract: crop MC/ASR reference elements (Stage E)
|
|
134
|
+
2. Complete: batch generate remaining elements (Stage A)
|
|
135
|
+
3. Process: resize + format convert to WebP (Stage B)
|
|
136
|
+
4. Assemble: build atlases with JSON sidecars (Stage C)
|
|
137
|
+
5. Verify: Compliance Gate on all paths
|
|
138
|
+
|
|
139
|
+
### Risk Checklist
|
|
140
|
+
|
|
141
|
+
- [ ] Every assetMapping entry in Coverage Plan (no gaps)
|
|
142
|
+
- [ ] Atlas groups match layout-spec grouping table
|
|
143
|
+
- [ ] MC + ASR reference images accessible
|
|
144
|
+
- [ ] Style Interpretation confidence ≥ medium for all asset types
|
|
145
|
+
- [ ] Transparency Classification table complete (Step 0e below)
|
|
146
|
+
|
|
147
|
+
**MUST NOT** start bulk generation until every Risk Checklist item is checked `[x]`.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Transparency Classification
|
|
152
|
+
|
|
153
|
+
> **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.
|
|
154
|
+
|
|
155
|
+
| # | assetMapping path | needsAlpha | bgStrategy | 推导依据 | 去背工具 | 回退工具 | 验证结果 |
|
|
156
|
+
| ----- | ----------------- | -------------- | --------------------------------------------------------------- | --------------------------------- | ---------------------------------------------------- | ----------------------------------------- | ----------- |
|
|
157
|
+
| {{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}} | {{✅ / ❓}} |
|
|
158
|
+
|
|
159
|
+
<!--
|
|
160
|
+
TA auto-derives transparency — does NOT depend on PM fields.
|
|
161
|
+
|
|
162
|
+
needsAlpha derivation (from assetMapping path):
|
|
163
|
+
images/bg/ → false (full-screen background)
|
|
164
|
+
images/ui/ → true (UI overlay)
|
|
165
|
+
images/txt/ → true (text image)
|
|
166
|
+
images/vfx/ → true (VFX sprite)
|
|
167
|
+
images/tiles/ → true (default; unless card/board rect body → false)
|
|
168
|
+
|
|
169
|
+
bgStrategy derivation (from element color palette):
|
|
170
|
+
Gold/yellow/orange/amber → bluescreen (NEVER green — color bleed)
|
|
171
|
+
Green/teal/cyan → bluescreen (NEVER green — same family)
|
|
172
|
+
Blue/indigo/purple → greenscreen (NEVER blue — same family)
|
|
173
|
+
VFX glow/particle → bluescreen (warm tones common)
|
|
174
|
+
Text/digit images → bluescreen (often gold/white)
|
|
175
|
+
Multi-color/rainbow → magenta (last resort)
|
|
176
|
+
Red/pink/white/black → greenscreen or bluescreen (both safe)
|
|
177
|
+
|
|
178
|
+
TA tool chain (must use, never skip):
|
|
179
|
+
1st: playcraft image remove-background --method floodfill --tolerance 25
|
|
180
|
+
2nd: playcraft image segment --boxes (complex edges, known position)
|
|
181
|
+
3rd: playcraft image remove-background --method ai (hair/transparency)
|
|
182
|
+
4th: playcraft image segment --text (unknown position, last resort)
|
|
183
|
+
Extract: playcraft image crop (grid) or decompose-layers (multi-layer MC)
|
|
184
|
+
|
|
185
|
+
Post-verify: overlay on #1A1A2E dark bg to check:
|
|
186
|
+
✅ No white edges, no chroma residue, no black blocks, clean edges
|
|
187
|
+
❌ If any issue → escalate through fallback tool chain
|
|
188
|
+
-->
|
|
189
|
+
|
|
190
|
+
**MUST NOT** proceed to Step 1 bulk generation if any row has `❓ pending` in 验证结果.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
51
194
|
## Style Reference
|
|
52
195
|
|
|
53
196
|
- **Master reference (MC)**: `assets/images/storyboard/master_composite_option_{{selectedMcOption}}.png`
|
|
@@ -162,17 +305,40 @@ Every row must be PASS before advancing to integration.
|
|
|
162
305
|
|
|
163
306
|
### Spec Compliance Summary
|
|
164
307
|
|
|
165
|
-
| Check
|
|
166
|
-
|
|
|
167
|
-
| Background dimensions
|
|
168
|
-
| Tile dimensions
|
|
169
|
-
| UI element dimensions
|
|
170
|
-
|
|
|
171
|
-
|
|
|
172
|
-
|
|
|
173
|
-
|
|
|
174
|
-
|
|
|
175
|
-
|
|
|
308
|
+
| Check | Target | Actual | Result |
|
|
309
|
+
| -------------------------- | ---------------------------------------------------------- | ---------- | ------------- |
|
|
310
|
+
| Background dimensions | {{assetSpec}} | {{actual}} | {{PASS/FAIL}} |
|
|
311
|
+
| Tile dimensions | {{assetSpec}} | {{actual}} | {{PASS/FAIL}} |
|
|
312
|
+
| UI element dimensions | {{assetSpec}} | {{actual}} | {{PASS/FAIL}} |
|
|
313
|
+
| **Text dimensions** | `images/txt/*` per `layout-spec` text spec (W×H per label) | {{actual}} | {{PASS/FAIL}} |
|
|
314
|
+
| **Digit Strip dimensions** | `images/txt/digits*` cellW × cellH × frameCount (0–9 = 10) | {{actual}} | {{PASS/FAIL}} |
|
|
315
|
+
| Background file size | < 500KB | {{actual}} | {{PASS/FAIL}} |
|
|
316
|
+
| Tile file size | < 100KB per tile | {{actual}} | {{PASS/FAIL}} |
|
|
317
|
+
| BGM file size | < 300KB | {{actual}} | {{PASS/FAIL}} |
|
|
318
|
+
| SFX file size | < 50KB per SFX | {{actual}} | {{PASS/FAIL}} |
|
|
319
|
+
| Total assets size | ≤ 2-3MB | {{actual}} | {{PASS/FAIL}} |
|
|
320
|
+
| Sprite sheet JSON paired | Every .png sheet has .json | {{yes/no}} | {{PASS/FAIL}} |
|
|
321
|
+
|
|
322
|
+
<!--
|
|
323
|
+
Text dimensions: every `images/txt/*` asset must match per-label W×H from layout-spec § Static text (or atlas grouping for text atlas).
|
|
324
|
+
Digit Strip dimensions: digit sprite (typically `images/txt/digits.webp` or `images/ui/digits.webp`) must satisfy:
|
|
325
|
+
- frameCount = 10 (0–9) — for score / countdown / level display
|
|
326
|
+
- width == cellW × frameCount (when laid out as a single row)
|
|
327
|
+
- height == cellH (single-row strip) OR width × height matches multi-row grid in JSON sidecar
|
|
328
|
+
- channels = 4 (alpha for overlay)
|
|
329
|
+
If digit strip is split across multiple paths (e.g. small + large) each needs its own row.
|
|
330
|
+
-->
|
|
331
|
+
|
|
332
|
+
### Transparency Compliance
|
|
333
|
+
|
|
334
|
+
| Check | Target | Actual | Result |
|
|
335
|
+
| ---------------------------- | -------------------------------------------------- | ---------- | ------------- |
|
|
336
|
+
| Classification table | All rows filled, no ❓ pending | {{status}} | {{PASS/FAIL}} |
|
|
337
|
+
| Alpha channels (transparent) | All transparent assets channels=4 | {{count}} | {{PASS/FAIL}} |
|
|
338
|
+
| Dark-bg verify (transparent) | All transparent assets clean on #1A1A2E overlay | {{count}} | {{PASS/FAIL}} |
|
|
339
|
+
| BG full-coverage | All backgrounds edge-to-edge, no fade/white corner | {{status}} | {{PASS/FAIL}} |
|
|
340
|
+
| Atlas per-frame verify | VFX/atlas each frame verified on dark bg | {{status}} | {{PASS/FAIL}} |
|
|
341
|
+
| Chroma residue | Zero color residue from chroma key removal | {{status}} | {{PASS/FAIL}} |
|
|
176
342
|
|
|
177
343
|
### Compliance Verdict
|
|
178
344
|
|