@playcraft/cli 0.0.40 → 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/README.md +66 -3
- package/dist/atom-plan/validate-atom-plan.js +298 -0
- package/dist/cli-root-help.js +1 -1
- package/dist/commands/3d.js +363 -0
- package/dist/commands/create.js +337 -0
- package/dist/commands/image.js +1337 -43
- package/dist/commands/recommend.js +1 -1
- package/dist/commands/remix.js +213 -0
- package/dist/commands/skills.js +1379 -0
- package/dist/commands/tools-3d.js +473 -0
- package/dist/commands/tools-generation.js +452 -0
- package/dist/commands/tools-project.js +400 -0
- package/dist/commands/tools-research.js +37 -0
- package/dist/commands/tools-research.test.js +216 -0
- package/dist/commands/tools-utils.js +183 -0
- package/dist/commands/tools.js +7 -616
- package/dist/config.js +2 -0
- package/dist/index.js +19 -1
- package/dist/utils/version-checker.js +8 -11
- package/package.json +9 -3
- package/project-template/.claude/agents/designer.md +120 -0
- package/project-template/.claude/agents/developer.md +124 -0
- package/project-template/.claude/agents/pm.md +164 -0
- package/project-template/.claude/agents/refs/README.md +73 -0
- package/project-template/.claude/agents/refs/designer-art-style-catalog.md +533 -0
- package/project-template/.claude/agents/refs/designer-color-audio-recipes.md +153 -0
- package/project-template/.claude/agents/refs/designer-deliverable-spec.md +191 -0
- package/project-template/.claude/agents/refs/designer-dimension-axis.md +27 -0
- package/project-template/.claude/agents/refs/designer-handoff-v2-checklist.md +68 -0
- package/project-template/.claude/agents/refs/designer-master-composite-recipes.md +208 -0
- package/project-template/.claude/agents/refs/designer-style-exploration-flow.md +37 -0
- package/project-template/.claude/agents/refs/developer-dev-handoff.md +109 -0
- package/project-template/.claude/agents/refs/developer-impl-cookbook.md +134 -0
- package/project-template/.claude/agents/refs/developer-phase1-flow.md +136 -0
- package/project-template/.claude/agents/refs/pm-workflow-detail.md +551 -0
- package/project-template/.claude/agents/refs/reviewer-convergence-eval.md +130 -0
- package/project-template/.claude/agents/refs/reviewer-six-dimension-eval.md +6 -0
- package/project-template/.claude/agents/refs/ta-3d-flip-recipe.md +85 -0
- package/project-template/.claude/agents/refs/ta-atlas-deliverable-standard.md +67 -0
- package/project-template/.claude/agents/refs/ta-batch-pipeline-recipes.md +120 -0
- package/project-template/.claude/agents/refs/ta-image-generation-detail.md +356 -0
- package/project-template/.claude/agents/refs/ta-image-ops-reference.md +495 -0
- package/project-template/.claude/agents/refs/ta-pipeline-cookbook.md +1108 -0
- package/project-template/.claude/agents/refs/ta-tools-reference.md +111 -0
- package/project-template/.claude/agents/refs/ta-vfx-preset-catalog.md +365 -0
- package/project-template/.claude/agents/reviewer.md +127 -0
- package/project-template/.claude/agents/technical-artist.md +122 -0
- package/project-template/.claude/hooks/README.md +44 -0
- package/project-template/.claude/hooks/validate-atom-plan.mjs +224 -0
- package/project-template/.claude/hooks/validate-workflow-stop.mjs +343 -0
- package/project-template/.claude/settings.json +36 -0
- package/project-template/.claude/settings.local.json +4 -0
- package/project-template/.claude/skills/playcraft-ad-psychology/SKILL.md +182 -0
- package/project-template/.claude/skills/playcraft-art-style-guide/SKILL.md +123 -0
- package/project-template/.claude/skills/playcraft-asset-state-sheet/SKILL.md +141 -0
- package/project-template/.claude/skills/playcraft-audio-generation/SKILL.md +280 -0
- package/project-template/.claude/skills/playcraft-batch-pipeline/SKILL.md +184 -0
- package/project-template/.claude/skills/playcraft-build-optimizer/SKILL.md +306 -0
- package/project-template/.claude/skills/playcraft-image-generation/SKILL.md +279 -0
- package/project-template/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +123 -0
- package/project-template/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +254 -0
- package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +235 -0
- package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +97 -0
- package/project-template/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +118 -0
- package/project-template/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +137 -0
- package/project-template/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +397 -0
- package/project-template/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +296 -0
- package/project-template/.claude/skills/playcraft-image-ops/SKILL.md +122 -0
- package/project-template/.claude/skills/playcraft-masking/SKILL.md +373 -0
- package/project-template/.claude/skills/playcraft-research/SKILL.md +212 -0
- package/project-template/.claude/skills/playcraft-sprite-generation/SKILL.md +423 -0
- package/project-template/.claude/skills/playcraft-storyboard/SKILL.md +167 -0
- package/project-template/.claude/skills/playcraft-style-qa/SKILL.md +270 -0
- package/project-template/.claude/skills/playcraft-text-rendering/SKILL.md +236 -0
- package/project-template/.claude/skills/playcraft-vfx-animation/SKILL.md +130 -0
- package/project-template/.claude/skills/playcraft-workflow/SKILL.md +485 -0
- 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/hooks.json +17 -0
- package/project-template/.cursor/rules/playcraft-orchestrator.mdc +137 -0
- package/project-template/.cursor/rules/playcraft-subagent-boundary.mdc +18 -0
- package/project-template/CLAUDE.md +280 -0
- package/project-template/assets/audio/bgm/.gitkeep +0 -0
- package/project-template/assets/audio/sfx/.gitkeep +0 -0
- package/project-template/assets/bundles/.gitkeep +0 -0
- package/project-template/assets/images/bg/.gitkeep +0 -0
- package/project-template/assets/images/reference/.gitkeep +0 -0
- package/project-template/assets/images/storyboard/.gitkeep +0 -0
- package/project-template/assets/images/tiles/.gitkeep +0 -0
- package/project-template/assets/images/ui/.gitkeep +0 -0
- package/project-template/assets/images/vfx/.gitkeep +0 -0
- package/project-template/assets/models/.gitkeep +0 -0
- package/project-template/docs/team/agent-conduct.md +121 -0
- package/project-template/docs/team/agent-runtime-matrix.md +62 -0
- package/project-template/docs/team/atom-plan-format.md +105 -0
- package/project-template/docs/team/collaboration.md +297 -0
- package/project-template/docs/team/core-model.md +50 -0
- package/project-template/docs/team/platform-capabilities.md +15 -0
- package/project-template/docs/team/workflow-changelog.md +65 -0
- package/project-template/docs/team/workflow-consistency-checklist.md +140 -0
- package/project-template/game/config/.gitkeep +0 -0
- package/project-template/game/gameplay/.gitkeep +0 -0
- package/project-template/game/scenes/.gitkeep +0 -0
- package/project-template/logs/.gitkeep +0 -0
- package/project-template/ta-workspace/logs/.gitkeep +0 -0
- package/project-template/ta-workspace/scripts/.gitkeep +0 -0
- package/project-template/ta-workspace/tmp/.gitkeep +0 -0
- package/project-template/templates/atom-plan.template.json +26 -0
- package/project-template/templates/atom-plan.template.md +108 -0
- package/project-template/templates/design-brief.template.md +195 -0
- package/project-template/templates/design-lens-checklist.reference.md +117 -0
- package/project-template/templates/design-methodology.md +99 -0
- package/project-template/templates/designer-log.template.md +114 -0
- package/project-template/templates/developer-log.template.md +134 -0
- package/project-template/templates/five-axis-framework.md +186 -0
- package/project-template/templates/intent-clarifications.template.md +58 -0
- package/project-template/templates/layout-spec.template.md +146 -0
- package/project-template/templates/project-state.template.md +237 -0
- package/project-template/templates/review-report.template.md +91 -0
- package/project-template/templates/style-exploration.template.md +93 -0
- package/project-template/templates/ta-log.template.md +343 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# Agent Collaboration Reference
|
|
2
|
+
|
|
3
|
+
## Glossary
|
|
4
|
+
|
|
5
|
+
Canonical terms used across `CLAUDE.md`, agent L1 files, and `refs/`. Prefer the **Canonical** column in new edits.
|
|
6
|
+
|
|
7
|
+
| Canonical | Also called | Meaning |
|
|
8
|
+
| ------------------------------ | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
9
|
+
| **Gate #1 package** (四件套) | four design docs, PM four docs | PM deliverables before Gate #1 STOP: `docs/project-state.md` + `docs/design-brief.md` + `docs/layout-spec.md` + **`docs/atom-plan.json`**(主)+ `docs/atom-plan.md`(Context 辅) |
|
|
10
|
+
| **Asset Contract** | Asset Path Contract, assetMapping contract | Locked `layout-spec.md` `assetMapping` paths (+ atlas groups, `frameId`) after Gate #1 — no unilateral path changes |
|
|
11
|
+
| **devUrl** | Dev URL, preview link | Local Dev server URL from `npm run dev`; orchestrator shares at Gate #3; user never runs dev themselves |
|
|
12
|
+
| **Designer Phase 1 / Phase 2** | — | Ph.1 = MC + ASR + Handoff Pack; Ph.2 = audio + digit + VisualAtom status (v2) |
|
|
13
|
+
| **ASR Coverage Matrix** | — | `designer-log` table: every contract id → ASR slot; Gate #2b mandatory |
|
|
14
|
+
| **Palette Locked** | — | MC-sampled hex in `designer-log`; delta vs `layout-spec` |
|
|
15
|
+
| **production-serial-v1** | workflow spec version (superseded) | See `workflow-changelog.md`; serial production waves within `production` stage |
|
|
16
|
+
| **convergence-v1** | workflow spec version (current) | Three convergence loops: design_check → ui_diff → load_check + Gate #3 user |
|
|
17
|
+
| **design_check** | Reviewer mode | Soft checklist before Gate #1 / #2b — completeness only, not subjective quality |
|
|
18
|
+
| **ui_diff** | Reviewer mode | Browser screenshots vs MC panels; routes ui_rework (max 5 rounds) |
|
|
19
|
+
| **load_check** | Reviewer mode | Page loads + no console errors before Gate #3; no gameplay walkthrough |
|
|
20
|
+
| **ui_ready** | devStatus value | UI shell complete; gameplay rules not yet implemented |
|
|
21
|
+
| **designer-handoff-v2** | visual handoff spec | MC + ASR + Handoff Pack; bundled in convergence-v1 |
|
|
22
|
+
| **Production Pipeline** | serial waves in `project-state` | Wave 1 Designer Ph.2 → Wave 2 TA; Developer in `ui_pass` |
|
|
23
|
+
| **Developer ui_pass** | — | UI shell + scene switch + simple states; no core gameplay rules |
|
|
24
|
+
| **Developer gameplay_pass** | — | Core gameplay on verified UI; PGS + first level success |
|
|
25
|
+
| **Four-doc discipline** | 四件套写作纪律 | PM/Designer: contracts only in four docs; narrative in style-exploration + designer-log; TA/Dev intake: agent-conduct + log templates |
|
|
26
|
+
| **TA Step 0 / 1 / 2** | (not "Phase") | **TA cookbook only**: Step 0 = Skill Discovery; Step 1 = Asset Completion; Step 2 = Technical Pipeline — TA runs all three in one `production` invoke |
|
|
27
|
+
| **reworkRound** | `handoff.rework_round` (legacy) | Superseded by **`uiReworkRound`** for UI convergence (0–5) |
|
|
28
|
+
| **uiReworkRound** | `handoff.ui_rework_round` | Counts **ui_diff failures** (0 → 5 max); at 5 → orchestrator decision |
|
|
29
|
+
| **ICP** | Intent Clarification Protocol | Async agent Q&A in `docs/intent-clarifications.md`; orchestrator does not interrupt user |
|
|
30
|
+
| **MC** | Master Composite | Five 9:16 panels in one image: concept panel + Hook / Onboarding / End Card / CTA storyboards |
|
|
31
|
+
| **ASR** | Asset State Reference Sheet | 资产状态参考精灵图板:UI 组件状态板 + 元素状态板;Gate #2a 后产出;供 TA crop 量产(非 runtime atlas) |
|
|
32
|
+
|
|
33
|
+
## Mission vs Goals vs Workflow
|
|
34
|
+
|
|
35
|
+
| Layer | Location | Purpose |
|
|
36
|
+
| ---------------- | ---------------------------------- | ----------------------------------------------------------------------------- |
|
|
37
|
+
| **Team Mission** | `CLAUDE.md` § Mission | Shared vision — why we build playable ads |
|
|
38
|
+
| **Role Goals** | `.claude/agents/<role>.md` § Goals | **What this role must achieve**, in priority order (Top 3 + success criteria) |
|
|
39
|
+
| **Workflow** | Same agent file + `refs/` | How to execute; exit criteria point back to Goals |
|
|
40
|
+
|
|
41
|
+
When instructions conflict: **Goals § Core responsibilities** wins over workflow shortcuts (e.g. Developer must not set `devStatus: ready` with open upstream blockers). Enforceable MUST/NEVER: [agent-conduct.md](agent-conduct.md).
|
|
42
|
+
|
|
43
|
+
## Gate Protocol (Orchestrator-Only)
|
|
44
|
+
|
|
45
|
+
Only the **Orchestrator** (main session) may use `AskUserQuestion` toward the user. Sub-agents prepare materials, update `project-state`, then **STOP**.
|
|
46
|
+
|
|
47
|
+
| Gate | Sub-agent deliverable | STOP signal (`project-state`) | Orchestrator action |
|
|
48
|
+
| ------- | ---------------------------------------------------------------- | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
49
|
+
| **#1** | PM: four design docs ready for review | `gates.#1 = pending` | Invoke `@reviewer design_check` → pass → `AskUserQuestion` → on pass: `gates.#1 = passed`, `stage: style_exploration`, invoke `@designer` |
|
|
50
|
+
| **#2a** | Designer: MC options A/B[/C] + partial `style-exploration.md` | `gates.#2a = pending` | `AskUserQuestion` pick option → set `selectedMcOption` → resume `@designer` (no Reviewer pre-check) |
|
|
51
|
+
| **#2b** | Designer: ASR 双板 + complete `style-exploration` + designer-log | `gates.#2b = pending` | Invoke `@reviewer design_check` → pass → `AskUserQuestion` confirm MC+ASR → `gates.#2b = passed`, `stage: production`, invoke `@designer` Ph.2 only |
|
|
52
|
+
| **#3** | Reviewer `load_check` pass + `devStatus: ready` | `gates.#3 = pending` | Show **devUrl** → user accept → `stage: done` (gameplay judged by user) |
|
|
53
|
+
|
|
54
|
+
Sub-agent pattern: **write artifacts → update `## Agent handoff` + gates → STOP (no user questions).**
|
|
55
|
+
|
|
56
|
+
## Agent Handoff
|
|
57
|
+
|
|
58
|
+
Machine-readable runtime block in `docs/project-state.md` (YAML fence under `## Agent handoff`). Sub-agents and orchestrator use it as the **single source** for STOP / resume / next step.
|
|
59
|
+
|
|
60
|
+
| Field | Writer | Meaning |
|
|
61
|
+
| -------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------ |
|
|
62
|
+
| `subagent` | Sub-agent on STOP | Role that just finished (`pm`, `designer`, `technical-artist`, `developer`, `reviewer`, `none`) |
|
|
63
|
+
| `subagent_stop` | Sub-agent on STOP | `true` = do not continue work until orchestrator acts |
|
|
64
|
+
| `waiting_for` | Both | `user_gate` = orchestrator must run Gate; `orchestrator` = wait for invoke; `none` = active work |
|
|
65
|
+
| `gate_pending` | Sub-agent when gate pending | `"1"` \| `"2a"` \| `"2b"` \| `"3"` \| `null` — sync with Gates table |
|
|
66
|
+
| `next_orchestrator_action` | Sub-agent on STOP (**required**) | One sentence: the **only** legal next step for orchestrator |
|
|
67
|
+
| `last_completed_by` | Sub-agent on STOP | Same as `subagent` or action label |
|
|
68
|
+
| `rework_round` | Reviewer on ui_diff fail / orchestrator | Keep in sync with `uiReworkRound` in Gate resume fields (legacy alias) |
|
|
69
|
+
| `block_reason` | Optional | Why pipeline cannot advance |
|
|
70
|
+
|
|
71
|
+
**Orchestrator loop:** read handoff → if `gate_pending` + `user_gate` → Gate only → else if `subagent_stop` → execute `next_orchestrator_action` → reset handoff before invoke.
|
|
72
|
+
|
|
73
|
+
**Sub-agent loop:** read handoff → if already stopped for this role → refuse duplicate work → else branch per agent `## Runtime` → update handoff → append `--- PLAYCRAFT_STOP ---` footer.
|
|
74
|
+
|
|
75
|
+
## STOP sync checklist
|
|
76
|
+
|
|
77
|
+
On every sub-agent STOP, update **in order** (see [agent-conduct.md § Invoke protocol](agent-conduct.md#invoke-protocol-all-sub-agents)):
|
|
78
|
+
|
|
79
|
+
1. **Gates table** — set `#N = pending` when gate materials ready (if applicable).
|
|
80
|
+
2. **`## Agent handoff`** — all fields; `subagent_stop: true`; `next_orchestrator_action` required.
|
|
81
|
+
3. **Progress Checkpoint** — one row (stage, agent, action, outcome).
|
|
82
|
+
4. **Production Pipeline** — when `stage: production`, set this role's wave row to `done` + notes when wave complete.
|
|
83
|
+
5. **Plan convergence (TA / Developer only)** — before STOP, ensure `logs/ta-log.md` § **Production Plan** or `logs/developer-log.md` § **UI Pass Plan** / **Gameplay Pass Plan** is complete (Risk Checklist all `[x]`, no `{{placeholders}}`). Hook `validate-workflow-stop.mjs` enforces on subagent stop.
|
|
84
|
+
|
|
85
|
+
Example (update only your row when track complete):
|
|
86
|
+
|
|
87
|
+
| Wave | Agent | Status | Notes |
|
|
88
|
+
| ---- | ---------------- | ------ | --------------------------------------------------- |
|
|
89
|
+
| 1 | Designer | done | Ph.2: BGM + SFX + digit strip; VisualAtoms ASR-done |
|
|
90
|
+
| 2 | Technical Artist | done | All TA atoms + Compliance green |
|
|
91
|
+
|
|
92
|
+
Checkpoint is a **human log** for context — **not** the routing source (handoff is).
|
|
93
|
+
|
|
94
|
+
## Stage field ownership
|
|
95
|
+
|
|
96
|
+
| Field / transition | Writer |
|
|
97
|
+
| ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
|
|
98
|
+
| `gates.#N = pending` | Sub-agent before STOP |
|
|
99
|
+
| `gates.#N = passed` | **Orchestrator** after user confirms Gate |
|
|
100
|
+
| Mainline `stage` (`pm` → `style_exploration` → `production` → `ui_pass` → `ui_review` → `ui_rework` → `gameplay_pass` → `done`) | **Orchestrator only** |
|
|
101
|
+
| `selectedMcOption` | Orchestrator after Gate #2a |
|
|
102
|
+
| `devStatus`, `devUrl`, `devBlockers` | Developer |
|
|
103
|
+
| `uiReviewStatus`, `uiReworkRound`, `loadCheck` | Reviewer |
|
|
104
|
+
|
|
105
|
+
Sub-agents **MUST NOT** set mainline `stage`. They request orchestrator via `next_orchestrator_action` (e.g. `Invoke @reviewer`).
|
|
106
|
+
|
|
107
|
+
## UI rework sequence (orchestrator-owned)
|
|
108
|
+
|
|
109
|
+
1. **Reviewer** (`ui_diff`) — screenshots vs MC panels → fail: UI Diff Report in `review-report.md`, `uiReworkRound` +1, handoff `next_orchestrator_action: "Set stage=ui_rework, invoke routed agents per review-report"` → STOP (**no** `stage: ui_rework` in reviewer write).
|
|
110
|
+
2. **Orchestrator** — Set `stage: ui_rework`, invoke `@developer` / `@technical-artist` / `@designer` per Action Items (`routeTo`).
|
|
111
|
+
3. **Developer** (primary) — Fix UI issues → `devStatus: ui_ready` → handoff `Invoke @reviewer ui_diff` → STOP.
|
|
112
|
+
4. **Orchestrator** — Invoke `@reviewer ui_diff` again; on pass (or `uiReworkRound == 5`) → `stage: gameplay_pass`.
|
|
113
|
+
|
|
114
|
+
Max **5** UI rework rounds. Gameplay has no AI rework loop — only `load_check` before Gate #3.
|
|
115
|
+
|
|
116
|
+
## Master Composite — five panels
|
|
117
|
+
|
|
118
|
+
| Name | Panel | `playcraft-storyboard` label | Role |
|
|
119
|
+
| --------------------- | ----- | ------------------------------------------------- | ------------------------------------------------------------------------ |
|
|
120
|
+
| **Concept panel** | 1 | Main Gameplay | All key element types + static text + full UI; TA primary extract source |
|
|
121
|
+
| **Storyboard panels** | 2–5 | Hook / Onboarding / End Card / CTA Always Visible | Per-stage visual intent; Developer scene reference |
|
|
122
|
+
|
|
123
|
+
## User interaction model (three phases)
|
|
124
|
+
|
|
125
|
+
| Phase | User | Agents |
|
|
126
|
+
| -------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
|
|
127
|
+
| **A — Choose** | **Orchestrator only** — `AskUserQuestion` for Gate #1, #2a, #2b | Sub-agents STOP when gate materials ready; no mass production until Gate #2b passed |
|
|
128
|
+
| **B — Produce** | Not interrupted for terminal commands | Serial: Designer Ph.2 → TA → Developer (`ui_pass` → `gameplay_pass`) |
|
|
129
|
+
| **C — Dev delivery** | **Gate #3 only**: open **devUrl** from orchestrator | Developer UI+gameplay → Reviewer `load_check` → user accepts gameplay in browser |
|
|
130
|
+
|
|
131
|
+
**User never runs `npm run dev`.** Delivery endpoint = Dev URL acceptance (`done`), not `playcraft build`.
|
|
132
|
+
|
|
133
|
+
## Agent responsibility matrix (priority order)
|
|
134
|
+
|
|
135
|
+
| # | PM | Designer | Technical Artist | Developer | Reviewer |
|
|
136
|
+
| -------- | --------------------------------------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------ |
|
|
137
|
+
| **1** | Define experience + gameplay (`design-brief`, flow) | Lock visual + narrative — **MC = UI spec for Developer** | Style-faithful mass production from MC/ASR | **UI shell** (`ui_pass`: layout + scene switch) | `design_check` before Gates; `ui_diff` vs MC |
|
|
138
|
+
| **2** | Zero-ambiguity contracts (`layout-spec`, `atom-plan`) | Handoff Pack: ASR Coverage Matrix, Palette Locked, Motion Notes | 100% `assetMapping` at spec (path check only) | **Gameplay** (`gameplay_pass`: PGS, first level success) | `load_check` before Gate #3 |
|
|
139
|
+
| **3** | Gates + ICP; **spec-gap** vs **asset rework** arbitration | Audio + digit strip; **respond to Developer visual/audio rework** | Production-grade assets; **respond on `routeTo: ta` in ui_diff** | **Dev preview owner** (`npm run dev`, devUrl, upstream blockers) | Route UI issues in ui_diff; no gameplay AI audit |
|
|
140
|
+
| **Last** | — | — | — | `playcraft build` = **future**, not `done` | — |
|
|
141
|
+
|
|
142
|
+
Full detail: `.claude/agents/<role>.md` § Goals.
|
|
143
|
+
|
|
144
|
+
## Project Directory — What Exists vs What Agents Create
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
<project-root>/ ← playcraft create <name> 初始化后
|
|
148
|
+
│
|
|
149
|
+
├── CLAUDE.md ✅ 已存在(协作总纲)
|
|
150
|
+
├── .claude/agents/ ✅ 已存在(5 个 Agent 指令 + refs/ 详细参考)
|
|
151
|
+
│ ├── pm.md PM(项目管理)
|
|
152
|
+
│ ├── designer.md Designer(设计)
|
|
153
|
+
│ ├── technical-artist.md Technical Artist(技术美术)
|
|
154
|
+
│ ├── developer.md Developer(开发)
|
|
155
|
+
│ ├── reviewer.md Reviewer(审核)
|
|
156
|
+
│ └── refs/ L2 按需细则
|
|
157
|
+
├── .claude/skills/ ✅ 已存在(平台工具 Skill)
|
|
158
|
+
├── .claude/settings.local.json ✅ 模板(权限白名单,见文件内说明)
|
|
159
|
+
├── .cursor/rules/ ✅ 编排与边界规则(Cursor 主会话)
|
|
160
|
+
├── .cursor/hooks.json ✅ Cursor subagentStop → validate-workflow-stop
|
|
161
|
+
├── .claude/settings.json ✅ Claude Code SubagentStop hooks(可提交)
|
|
162
|
+
├── .claude/hooks/ ✅ 共享校验脚本(见 README)
|
|
163
|
+
├── docs/team/agent-conduct.md ✅ 已存在(MUST/NEVER 行为契约)
|
|
164
|
+
├── templates/ ✅ 已存在(只读,Agent 创建文档时参考)
|
|
165
|
+
├── .gitignore ✅ 已存在
|
|
166
|
+
│
|
|
167
|
+
├── ta-workspace/scripts/ ✅ 已存在(TA 写 Node.js 批量脚本,入库)
|
|
168
|
+
├── ta-workspace/logs/ ✅ 已存在(gitkeep,脚本日志不入库)
|
|
169
|
+
├── ta-workspace/tmp/ ✅ 已存在(gitkeep,临时产物不入库)
|
|
170
|
+
│
|
|
171
|
+
├── assets/images/{bg,tiles,ui,vfx,reference}/ ✅ 已存在(gitkeep 占位;reference = ASR 双板)
|
|
172
|
+
├── assets/audio/{bgm,sfx}/ ✅ 已存在(gitkeep 占位)
|
|
173
|
+
├── assets/models/ ✅ 已存在(gitkeep 占位,3D GLB 资产)
|
|
174
|
+
├── assets/bundles/ ✅ 已存在(gitkeep 占位)
|
|
175
|
+
│
|
|
176
|
+
│ 以下目录/文件在 playcraft create 时为空,由 Agent 运行时填充:
|
|
177
|
+
│
|
|
178
|
+
├── docs/project-state.md ⏳ PM 创建
|
|
179
|
+
├── docs/design-brief.md ⏳ PM 创建
|
|
180
|
+
├── docs/layout-spec.md ⏳ PM 创建
|
|
181
|
+
├── docs/atom-plan.json ⏳ PM 创建(skillsMatch + atoms[] DAG)
|
|
182
|
+
├── docs/atom-plan.md ⏳ PM 创建(验收标准 + Context 富集区)
|
|
183
|
+
├── docs/style-exploration.md ⏳ Designer Phase 1 创建
|
|
184
|
+
│
|
|
185
|
+
├── assets/images/** ⏳ Designer (样本) + TA (补全)
|
|
186
|
+
├── assets/audio/** ⏳ Designer (生成) + TA (后处理)
|
|
187
|
+
├── assets/models/** ⏳ TA (3D 管线)
|
|
188
|
+
├── assets/bundles/** ⏳ Designer + TA (atom 封包)
|
|
189
|
+
│
|
|
190
|
+
├── game/gameplay/ ⏳ Developer Phase 1
|
|
191
|
+
├── game/config/ ⏳ Developer Phase 1
|
|
192
|
+
├── game/scenes/ ⏳ Developer Phase 1
|
|
193
|
+
├── game/index.html ⏳ Developer Phase 1 + 2
|
|
194
|
+
│
|
|
195
|
+
├── logs/designer-log.md ⏳ Designer
|
|
196
|
+
├── logs/ta-log.md ⏳ Technical Artist
|
|
197
|
+
├── logs/developer-log.md ⏳ Developer
|
|
198
|
+
└── logs/review-report.md ⏳ Reviewer
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Directory Conventions
|
|
202
|
+
|
|
203
|
+
**All agents MUST follow this structure.**
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
<project-root>/
|
|
207
|
+
├── docs/ Design documents (PM creates, all agents reference)
|
|
208
|
+
├── assets/
|
|
209
|
+
│ ├── images/{bg,tiles,ui,vfx,reference} Visual assets (ASR in reference/; samples + TA completions)
|
|
210
|
+
│ ├── audio/{bgm,sfx} Audio assets (Designer generates, TA post-processes)
|
|
211
|
+
│ ├── models/ 3D GLB assets (TA production)
|
|
212
|
+
│ └── bundles/ Atom bundles (Designer + TA create)
|
|
213
|
+
├── game/
|
|
214
|
+
│ ├── gameplay/ PGS + state machine (Developer)
|
|
215
|
+
│ ├── config/ Level configs (Developer)
|
|
216
|
+
│ ├── scenes/ Scene definitions (Developer)
|
|
217
|
+
│ └── index.html Entry point (Developer)
|
|
218
|
+
├── logs/ Work logs + review report
|
|
219
|
+
├── ta-workspace/ TA batch scripts + temp files
|
|
220
|
+
└── templates/ Read-only reference templates
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## File Read/Write Matrix
|
|
224
|
+
|
|
225
|
+
| File/Directory | PM | Designer | **TA** | Developer | Reviewer |
|
|
226
|
+
| --------------------------- | ------ | ----------------------- | ------------------------------------- | ----------------------- | -------- |
|
|
227
|
+
| `docs/project-state.md` | Create | Update stage | **Update stage** | Update stage | Read |
|
|
228
|
+
| `docs/design-brief.md` | Create | Read | **Read** | Read | Read |
|
|
229
|
+
| `docs/layout-spec.md` | Create | **Read (contract)** | **Read (contract)** | **Read (contract)** | Read |
|
|
230
|
+
| `docs/atom-plan.json` | Create | Update `atoms[].status` | Update `atoms[].status` | Update `atoms[].status` | Read |
|
|
231
|
+
| `docs/atom-plan.md` | Create | Asset Skill Context | TA Skill Context | Impl Skill Context | Read |
|
|
232
|
+
| `docs/style-exploration.md` | — | Create (Phase 1) | **Read** | Read | Read |
|
|
233
|
+
| `assets/images/` | — | **Create (samples)** | **Create (completions + processing)** | Read | Read |
|
|
234
|
+
| `assets/audio/` | — | **Create** | **Post-process** | Read | Read |
|
|
235
|
+
| `assets/models/` | — | — | **Create (3D pipeline)** | Read | Read |
|
|
236
|
+
| `assets/bundles/` | — | **Create (partial)** | **Create (TA atoms)** | Read | Read |
|
|
237
|
+
| `game/` | — | — | — | **Create** | Read |
|
|
238
|
+
| `logs/designer-log.md` | — | Create+Update | Read | Read | Read |
|
|
239
|
+
| `logs/ta-log.md` | — | — | **Create** | Read | Read |
|
|
240
|
+
| `logs/developer-log.md` | — | — | — | Create+Update | Read |
|
|
241
|
+
| `logs/review-report.md` | — | — | — | — | Create |
|
|
242
|
+
|
|
243
|
+
**Key**: Designer and TA both write `assets/`, but responsibilities don't overlap:
|
|
244
|
+
|
|
245
|
+
- Designer: MC + ASR (Phase 1), audio + digit strip + atom status (Phase 2)
|
|
246
|
+
- TA writes completion assets and technically processed production-grade files
|
|
247
|
+
|
|
248
|
+
## Asset Contract (Asset Path Contract)
|
|
249
|
+
|
|
250
|
+
`layout-spec.md` defines **element ID → atlas+frame or file path**, **locked after Gate #1**:
|
|
251
|
+
|
|
252
|
+
- **PM** defines `assetMapping`, **atlas grouping table**, and specs (default: **WebP** images, **MP3** audio)
|
|
253
|
+
- **≥2 elements same class** (tiles / ui / vfx) → one **`.webp` + `.json`** atlas per group; each element has `frameId`
|
|
254
|
+
- **Exceptions**: full-screen bg (single webp), digit strip (single webp), MC/ASR reference (non-runtime)
|
|
255
|
+
- **Designer** delivers MP3 audio + digit strip webp at contracted paths
|
|
256
|
+
- **TA** delivers runtime atlases + post-processed MP3 per [ta-atlas-deliverable-standard.md](../../.claude/agents/refs/ta-atlas-deliverable-standard.md)
|
|
257
|
+
- **Developer** (`ui_pass` / `gameplay_pass`) binds `loadImage`/atlas+frame at contract paths with **real files** on disk, then integrates in Dev
|
|
258
|
+
- **Path / frame mismatch = integration failure** — TA Compliance + Reviewer check
|
|
259
|
+
- **No unilateral path changes** — PM + user-approved contract change only
|
|
260
|
+
|
|
261
|
+
## Four-doc discipline
|
|
262
|
+
|
|
263
|
+
PM and Designer **own different layers**; TA and Developer **read all layers** at wave start (Upstream Intake).
|
|
264
|
+
|
|
265
|
+
| Layer | Files | Writer | Content rule |
|
|
266
|
+
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
267
|
+
| **Contracts (四件套)** | `project-state`, `design-brief`, `layout-spec`, `atom-plan`(**`atom-plan.json`** 机器契约 + **`atom-plan.md`** Gate #1 仅 Acceptance) | PM (Designer: read-only except ICP path fixes) | **Key fields only** — decisions, paths, DAG (`atoms[]`), status. No hex in brief; no Atom List mirror; no prompts or MC/ASR prose. |
|
|
268
|
+
| **Visual narrative** | `style-exploration`, `logs/designer-log` | Designer | MC/ASR intent, Handoff Pack, Coverage Matrix, Style Intent Notes |
|
|
269
|
+
| **Production proof** | `logs/ta-log`, `logs/developer-log` | TA / Developer | Upstream Intake table (mandatory), then pipeline / implementation logs |
|
|
270
|
+
|
|
271
|
+
Enforceable rules: [agent-conduct.md](agent-conduct.md) (§ PM / Designer / TA / Developer). L2: `ta-pipeline-cookbook.md` Step 0a, `developer-phase1-flow.md` Step 0.
|
|
272
|
+
|
|
273
|
+
## Spec Quick-Check
|
|
274
|
+
|
|
275
|
+
Within 30 seconds of each wave start, the active agent validates Layout Spec:
|
|
276
|
+
|
|
277
|
+
| Checker | When | Checks | On Gap |
|
|
278
|
+
| --------- | ---------------------------------------------------------- | ---------------------------------------------------- | ----------------------------------------------------------------- |
|
|
279
|
+
| TA | Production Pipeline Wave 2 (TA entry) | Every assetMapping entry has clear size/format specs | Write `spec-gap` to project-state.md, PM supplements within 5 min |
|
|
280
|
+
| Developer | `ui_pass` / `gameplay_pass` start (after TA Wave 2 `done`) | Every GameplayAtom reference exists in assetMapping | Same |
|
|
281
|
+
|
|
282
|
+
## DAG Modification Protocol
|
|
283
|
+
|
|
284
|
+
- **Default**: Follow PM's plan
|
|
285
|
+
- **Allowed**: Add/remove/modify atoms — update `atom-plan.json` `atoms[]` + record in `atom-plan.md` § DAG Revisions
|
|
286
|
+
- **Stop for direction changes**: Switching gameplay/style → report back
|
|
287
|
+
- **Reviewer audits**: Every revision evaluated for reasonableness
|
|
288
|
+
|
|
289
|
+
## Upstream rework routing (Dev blockers)
|
|
290
|
+
|
|
291
|
+
| `routeTo` | Trigger | Orchestrator action |
|
|
292
|
+
| ------------ | -------------------------------------------------------------------- | ------------------------------------------------- |
|
|
293
|
+
| **TA** | Missing file, wrong size/format, style drift in mass-produced assets | Re-invoke `@technical-artist` → then `@developer` |
|
|
294
|
+
| **Designer** | Wrong/missing sample, audio mood, supplementary art | Re-invoke `@designer` → then `@developer` |
|
|
295
|
+
| **PM** | Contract ambiguity, gameplay vs spec conflict | `@pm` arbitrates ICP → then `@developer` |
|
|
296
|
+
|
|
297
|
+
Developer sets `devStatus: blocked_upstream` and **STOPs** until rework completes.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Core Model — Remix = DAG(Atom[])
|
|
2
|
+
|
|
3
|
+
## Atom DAG Structure
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
ScaffoldAtom (skeleton)
|
|
7
|
+
├── VisualAtom[] (baseline) → Designer (Phase 1 ASR; v2)
|
|
8
|
+
├── VisualAtom[] (completions)→ Technical Artist
|
|
9
|
+
├── VisualAtom[] (sprites/3D) → Technical Artist
|
|
10
|
+
├── AudioAtom[] (generation) → Designer
|
|
11
|
+
├── AudioAtom[] (processing) → Technical Artist
|
|
12
|
+
├── VFXAtom[] / AnimationAtom[]→ Technical Artist
|
|
13
|
+
├── ConfigAtom[] → Developer
|
|
14
|
+
└── GameplayAtom → Developer
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Atom Three Elements
|
|
18
|
+
|
|
19
|
+
| Element | Meaning |
|
|
20
|
+
| ----------- | -------------------------------------------- |
|
|
21
|
+
| **Recipe** | How it was made (prompt, model, seed) |
|
|
22
|
+
| **Result** | What it is (image/audio/JSON file) |
|
|
23
|
+
| **Binding** | How it's used (where in the DAG it connects) |
|
|
24
|
+
|
|
25
|
+
## Atom Assignment Rules (5 Agents)
|
|
26
|
+
|
|
27
|
+
| Atom Type | assignTo | Notes |
|
|
28
|
+
| ---------------------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
29
|
+
| `GameplayAtom` | Developer | PGS rules, state machine |
|
|
30
|
+
| `ConfigAtom` | Developer | Level config, difficulty curve |
|
|
31
|
+
| `VisualAtom` (baseline) | Designer | **designer-handoff-v2**: baseline = ASR slots in Phase 1; Phase 2 mark `done` with `actualOutput: ASR:...` or ICP supplementary PNG only |
|
|
32
|
+
| `VisualAtom` (completions: remaining elements) | TA | Derive full set from samples |
|
|
33
|
+
| `VisualAtom` (sprite sheets/animation/VFX) | TA | Technical pipeline |
|
|
34
|
+
| `VisualAtom` (3D models/GLB) | TA | 3D pipeline; needs `referenceSource` |
|
|
35
|
+
| `AudioAtom` (original generation) | Designer | BGM/SFX generation |
|
|
36
|
+
| `AudioAtom` (post-processing) | TA | compress/trim/loop |
|
|
37
|
+
| `VFXAtom` | TA | VFX sprite sheets |
|
|
38
|
+
| `AnimationAtom` | TA | Animation sprite sheets |
|
|
39
|
+
|
|
40
|
+
**Simple rule** (v2): Designer locks **MC + ASR** direction; TA mass-produces from ASR/MC to contract paths. Designer does not batch-export tile/UI PNGs at `assetMapping` in Phase 2.
|
|
41
|
+
|
|
42
|
+
## Scheduling Metadata (PM injects into `docs/atom-plan.json` → `atoms[]`)
|
|
43
|
+
|
|
44
|
+
| Field | Meaning | Impact |
|
|
45
|
+
| --------------------------- | ----------------------------------- | ------------------------------------------------------------------- |
|
|
46
|
+
| `assignTo` | Which agent executes | Required for all atoms |
|
|
47
|
+
| `referenceSource` | Reference image source for 3D atoms | `"designer-sample"` → starts immediately; `"ta-completion"` → waits |
|
|
48
|
+
| `dependsOn: [atomId]` | Explicit prerequisites | Determines execution order |
|
|
49
|
+
| `priority: high/normal/low` | Priority level | Affects TA scheduling |
|
|
50
|
+
| `parallelGroup` | Parallel execution group | Same-group atoms start simultaneously |
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Platform Capabilities
|
|
2
|
+
|
|
3
|
+
| Category | Command Prefix | Used By |
|
|
4
|
+
| ------------------- | --------------------------------------------------------------- | ---------------------------------------------------- |
|
|
5
|
+
| AI Image Generation | `playcraft tools generate-image` | Designer / TA |
|
|
6
|
+
| AI 3D Generation | `playcraft tools generate-3d` | **TA** |
|
|
7
|
+
| 3D Pipeline | `playcraft 3d *` | **TA** |
|
|
8
|
+
| Sprite Sheets | `playcraft image sprite-sheet/sprite-split/animate/use-vfx` | **TA** |
|
|
9
|
+
| Image Processing | `playcraft image resize/crop/convert/remove-background/overlay` | **TA** |
|
|
10
|
+
| Audio Generation | `playcraft tools generate-sfx/generate-bgm` | Designer |
|
|
11
|
+
| Audio Processing | `playcraft audio compress/trim/loop/...` | **TA** |
|
|
12
|
+
| Skills Discovery | `playcraft skills list/match` | All agents |
|
|
13
|
+
| Asset Info | `playcraft image info` / `playcraft audio info` | TA / Reviewer |
|
|
14
|
+
| Dev preview | `npm run dev` (project `scripts.dev`) | Developer / Reviewer / orchestrator (refresh devUrl) |
|
|
15
|
+
| Build (future) | `playcraft build` / `build-all` | Not required for current `done` gate |
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Workflow Changelog
|
|
2
|
+
|
|
3
|
+
Template workflow spec versions for `packages/cli/project-template`. New projects from `playcraft create` copy the current template; record the version in each project's `docs/project-state.md` § Workflow spec.
|
|
4
|
+
|
|
5
|
+
## convergence-v1 (current)
|
|
6
|
+
|
|
7
|
+
**Effective**: project-template default for new playable-ad projects.
|
|
8
|
+
|
|
9
|
+
### Summary
|
|
10
|
+
|
|
11
|
+
- **Three convergence loops**: (1) Reviewer `design_check` before Gate #1 / #2b; (2) `ui_pass` → `ui_review` ⇄ `ui_rework` (max 5 rounds) with `ui_diff` (browser screenshots vs MC); (3) `gameplay_pass` → Reviewer `load_check` → Gate #3 user gameplay acceptance.
|
|
12
|
+
- **Developer split**: `ui_pass` (UI shell + light logic, `devStatus: ui_ready`) then `gameplay_pass` (core gameplay, `devStatus: ready`).
|
|
13
|
+
- **Removed**: `integration`, `review`, `rework`, six-dimension final review, AI gameplay walkthrough.
|
|
14
|
+
- **Production orchestration** unchanged: after Gate #2b, **strict serial** — Designer Ph.2 → TA → Developer (`ui_pass`).
|
|
15
|
+
- Visual delivery unchanged from **designer-handoff-v2** (MC + ASR, Handoff Pack, Phase 2 audio/digit only).
|
|
16
|
+
- **Reviewer tooling**: `playwright-cli` skill for browser automation (screenshot, console, resize).
|
|
17
|
+
|
|
18
|
+
### Stage chain
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
pm → style_exploration → production → ui_pass → ui_review ⇄ ui_rework → gameplay_pass → done
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Production waves (serial)
|
|
25
|
+
|
|
26
|
+
| Wave | Agent | Stage | Orchestrator invoke |
|
|
27
|
+
| ---- | ---------------- | ------------ | --------------------------------------------------- |
|
|
28
|
+
| 1 | Designer | `production` | `@designer` Ph.2 only after Gate #2b |
|
|
29
|
+
| 2 | Technical Artist | `production` | `@technical-artist` after Wave 1 `done` |
|
|
30
|
+
| 3 | Developer | `ui_pass` | `@developer` after Wave 2 `done` + Compliance green |
|
|
31
|
+
|
|
32
|
+
### Trade-offs
|
|
33
|
+
|
|
34
|
+
| Benefit | Cost |
|
|
35
|
+
| ------------------------------------------------------------ | ------------------------------------------------- |
|
|
36
|
+
| UI convergence independently verifiable before gameplay | Extra Reviewer round + up to 5 UI rework cycles |
|
|
37
|
+
| Design defects caught before user Gates | Gate #1/#2b require extra Reviewer invoke |
|
|
38
|
+
| Gameplay quality left to human (Canvas opaque to automation) | No AI gameplay audit — user must judge at Gate #3 |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## production-serial-v1
|
|
43
|
+
|
|
44
|
+
**Superseded by** `convergence-v1` for orchestration; serial production waves below still apply within `production` stage.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## designer-handoff-v2
|
|
49
|
+
|
|
50
|
+
**Superseded by** `production-serial-v1` for orchestration; visual rules below still apply.
|
|
51
|
+
|
|
52
|
+
### Summary
|
|
53
|
+
|
|
54
|
+
- Visual baseline locked in **Phase 1**: Master Composite (MC) + **ASR** dual sheets (UI + element state reference).
|
|
55
|
+
- **Phase 2 Designer**: BGM, SFX, digit strip only; `assignTo: Designer` VisualAtoms marked `done` when covered by ASR (not separate `tile_sample_*.png` batch).
|
|
56
|
+
- **Gate #2b Handoff Pack**: ASR Coverage Matrix, Palette Locked, Motion Notes in `designer-log` / `style-exploration`.
|
|
57
|
+
- Retired paths: `exploded_view_*.png`, `concept_selected.png`, per-frame `concept_*.png` / `hook_*.png` deliverable tables.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## designer-handoff-v1 (legacy)
|
|
62
|
+
|
|
63
|
+
- Single **Exploded View** (or scattered concept/storyboard PNGs) as TA extract source.
|
|
64
|
+
- Phase 2 sometimes assumed Designer outputs `tile_sample_*.png` at `assetMapping` paths.
|
|
65
|
+
- `playcraft-exploded-view` skill id (removed in v2).
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Workflow Consistency Checklist
|
|
2
|
+
|
|
3
|
+
Maintenance checklist after editing `packages/cli/project-template`. Run before merging doc changes.
|
|
4
|
+
|
|
5
|
+
## Phase A — Invoke protocol
|
|
6
|
+
|
|
7
|
+
- [x] `agent-conduct.md`: § Invoke protocol (all sub-agents)
|
|
8
|
+
- [x] All five agents: First Step = handoff → Runtime → conditional refs
|
|
9
|
+
- [x] Checkpoint documented as human log only (collaboration § STOP sync)
|
|
10
|
+
|
|
11
|
+
## Phase B — Track done & stage sync
|
|
12
|
+
|
|
13
|
+
- [x] Each agent Runtime has **Track done** note
|
|
14
|
+
- [x] `CLAUDE.md` + `playcraft-orchestrator.mdc`: § Stage sync on handoff
|
|
15
|
+
- [x] `project-state.template.md`: handoff Examples comment block
|
|
16
|
+
|
|
17
|
+
## Phase C — STOP sync
|
|
18
|
+
|
|
19
|
+
- [x] `collaboration.md`: § STOP sync checklist (4 steps)
|
|
20
|
+
- [x] `agent-conduct.md`: sub-agents MUST complete STOP sync
|
|
21
|
+
|
|
22
|
+
## Phase D — L1 < 220 lines
|
|
23
|
+
|
|
24
|
+
- [x] `pm.md`, `designer.md`, `developer.md`, `reviewer.md`, `technical-artist.md` each **< 220** lines
|
|
25
|
+
- [x] New refs registered in `refs/README.md` with L1 back-links
|
|
26
|
+
- [x] `designer-deliverable-spec.md`, `designer-style-exploration-flow.md`, `developer-phase1-flow.md` exist
|
|
27
|
+
|
|
28
|
+
## Phase F — TA atlas / WebP / MP3
|
|
29
|
+
|
|
30
|
+
- [x] `ta-atlas-deliverable-standard.md` exists; TA L1 + Runtime reference it
|
|
31
|
+
- [x] `layout-spec.template.md`: atlas grouping table, webp defaults, frameId column
|
|
32
|
+
- [x] `collaboration.md` § Asset Contract: WebP atlas + MP3
|
|
33
|
+
- [x] PM `pm-workflow-detail.md`: Atlas grouping at Gate #1
|
|
34
|
+
- [x] Developer cookbook: atlasPath + frameId binding
|
|
35
|
+
|
|
36
|
+
## Round 3 — Invoke 体感打磨
|
|
37
|
+
|
|
38
|
+
### Phase A — Runtime 入口微调
|
|
39
|
+
|
|
40
|
+
- [x] Designer Runtime: Phase 1 Skill Discovery → style-exploration-flow (one line)
|
|
41
|
+
- [x] Developer Runtime: Spec Quick-Check (30s, MUST) on production branch
|
|
42
|
+
- [x] Developer Ph.1 STOP: `next_orchestrator_action` = single value `Wait for parallel tracks`
|
|
43
|
+
- [x] TA Step 0: verb pipeline (no E→A→B→C→D shorthand in L1)
|
|
44
|
+
- [x] TA Compliance: atlas grouping table check + spec-gap routeTo PM
|
|
45
|
+
|
|
46
|
+
### Phase B — L1 术语显式化
|
|
47
|
+
|
|
48
|
+
- [x] PM Runtime: 四件套 list + atlas groups + Style Direction in Track done
|
|
49
|
+
- [x] Reviewer Goals: six dimension names + Vetoes listed
|
|
50
|
+
- [x] Designer Track done: MC 5×9:16 ratio (≈ 2.81)
|
|
51
|
+
|
|
52
|
+
### Phase C — 跨 Agent 同步
|
|
53
|
+
|
|
54
|
+
- [x] `collaboration.md` § STOP sync: Parallel Tracking table example
|
|
55
|
+
- [x] `CLAUDE.md` + `playcraft-orchestrator.mdc`: Stage sync includes `Run Gate #2a`
|
|
56
|
+
- [x] All five L1 Mission: link to CLAUDE § Stage Model
|
|
57
|
+
- [x] `developer-phase1-flow.md`: linear Step 1–8 ordering
|
|
58
|
+
|
|
59
|
+
### Phase D — 重复段清理
|
|
60
|
+
|
|
61
|
+
- [x] Developer L1: no separate `## Phase 1` / `## Phase 2` headings (Execute L2 under Runtime)
|
|
62
|
+
- [x] Designer Phase 2: skills/refs/output only (no duplicate Trigger)
|
|
63
|
+
- [x] Developer Important Rules: Test-first + Atlas binding split (#5 / #6)
|
|
64
|
+
- [x] Reviewer Output: sync `handoff.rework_round` on fail
|
|
65
|
+
|
|
66
|
+
## Gate & orchestration (baseline)
|
|
67
|
+
|
|
68
|
+
- [x] Gate Protocol matches CLAUDE Orchestration table
|
|
69
|
+
- [x] All five agents: Runtime + PLAYCRAFT_STOP
|
|
70
|
+
- [x] PM Gate #1 four docs; Reviewer no `stage: rework`; Developer handoff Invoke @reviewer
|
|
71
|
+
|
|
72
|
+
## Polish pass (Glossary / deliverable cards / TA Step naming)
|
|
73
|
+
|
|
74
|
+
- [x] `collaboration.md`: § Glossary (canonical terms)
|
|
75
|
+
- [x] `pm.md`: § Gate #1 Deliverable Card
|
|
76
|
+
- [x] Reviewer: `rework_round` failure budget explicit in L1 + `reviewer-six-dimension-eval.md`
|
|
77
|
+
- [x] `refs/README.md`: § 按 invoke 场景反查
|
|
78
|
+
- [x] `ta-pipeline-cookbook.md`: Step 0/1/2 (not Phase 0/1/2)
|
|
79
|
+
- [x] `CLAUDE.md`: Single-Agent Fallback removed; sub-agent invoke required
|
|
80
|
+
|
|
81
|
+
## Phase G — Designer Handoff v2
|
|
82
|
+
|
|
83
|
+
- [x] `docs/team/workflow-changelog.md` documents `designer-handoff-v2`
|
|
84
|
+
- [x] `templates/project-state.template.md` § Workflow spec + Parallel Tracking (audio + digit + atom status)
|
|
85
|
+
- [x] `designer-deliverable-spec.md`: Handoff Pack, Phase 2 VisualAtom rules; no legacy Phase 2 visual-only-TA sentence
|
|
86
|
+
- [x] `designer-handoff-v2-checklist.md` linked from `designer-style-exploration-flow.md` Step 5
|
|
87
|
+
- [x] `templates/style-exploration.template.md` uses MC + ASR (no `concept_{{a}}.png`)
|
|
88
|
+
- [x] `templates/designer-log.template.md`: ASR Coverage Matrix + Palette Locked
|
|
89
|
+
- [x] `playcraft-style-qa` uses MC path; no `concept_selected.png`
|
|
90
|
+
- [x] `playcraft-asset-state-sheet` skill exists; `playcraft-exploded-view` removed
|
|
91
|
+
- [x] `core-model.md` + `atom-plan.template.md` v2 VisualAtom baseline
|
|
92
|
+
- [x] Vitest `designer-handoff-v2` cases pass
|
|
93
|
+
|
|
94
|
+
## Phase J — atom-plan JSON canonical
|
|
95
|
+
|
|
96
|
+
- [x] `docs/team/atom-plan-format.md` — JSON + MD split, PM Gate #1 flow
|
|
97
|
+
- [x] `templates/atom-plan.template.json` + trimmed `atom-plan.template.md` (no inline Skills Match Snapshot)
|
|
98
|
+
- [x] `pm-workflow-detail.md` Step 8 + Gate checklist → `atom-plan.json` + `validate-atom-plan`
|
|
99
|
+
- [x] `playcraft-workflow` living DAG + `collaboration.md` / `agent-conduct.md` aligned
|
|
100
|
+
- [x] `.claude/hooks/validate-atom-plan.mjs` + PM STOP in `settings.json` / `.cursor/hooks.json`
|
|
101
|
+
- [x] `validate-workflow-stop.mjs` requires `atom-plan.json` for TA/Developer intake
|
|
102
|
+
- [x] Vitest `atom-plan-json-and-validate-hook` passes
|
|
103
|
+
|
|
104
|
+
## Phase I — Upstream intake + four-doc discipline + hooks
|
|
105
|
+
|
|
106
|
+
- [x] `agent-conduct.md`: PM/Designer four-doc discipline; TA/Developer Upstream Intake MUST
|
|
107
|
+
- [x] `ta-pipeline-cookbook.md` Step 0a + `developer-phase1-flow.md` Step 0
|
|
108
|
+
- [x] `ta-log.template.md` + `developer-log.template.md` § Upstream Intake
|
|
109
|
+
- [x] `pm.md` + `pm-workflow-detail.md` + `designer.md` + `collaboration.md` § Four-doc discipline
|
|
110
|
+
- [x] `.claude/settings.json` + `.cursor/hooks.json` → `validate-workflow-stop.mjs`
|
|
111
|
+
- [x] Vitest `upstream-intake` + `validate-workflow-stop.test.ts` pass
|
|
112
|
+
|
|
113
|
+
## Phase H — Production serial v1
|
|
114
|
+
|
|
115
|
+
- [x] `workflow-changelog.md`: `production-serial-v1` current; no Migration section
|
|
116
|
+
- [x] `templates/project-state.template.md`: `workflowSpecVersion` = `production-serial-v1`; § Production Pipeline (no Parallel Tracking / THREE-WAY)
|
|
117
|
+
- [x] Gate #2b: orchestrator invokes `@designer` only; serial `@technical-artist` → `integration` `@developer`
|
|
118
|
+
- [x] `designer.md` STOP: `Invoke @technical-artist`; `technical-artist.md`: `Set stage=integration, invoke @developer`
|
|
119
|
+
- [x] `developer.md` Runtime: no `stage: production` row; single `integration` branch
|
|
120
|
+
- [x] `developer-phase1-flow.md`: trigger `integration`; no assets-not-required / Parallel with
|
|
121
|
+
- [x] `CLAUDE.md` + `playcraft-orchestrator.mdc` + `collaboration.md` + `agent-conduct.md` + `agent-runtime-matrix.md` aligned
|
|
122
|
+
- [x] Vitest `production-serial-v1` cases pass
|
|
123
|
+
|
|
124
|
+
## Phase K — Plan convergence (TA + Developer)
|
|
125
|
+
|
|
126
|
+
- [x] `templates/ta-log.template.md`: § Production Plan (Coverage / Atlas / Pipeline Order / Risk)
|
|
127
|
+
- [x] `templates/developer-log.template.md`: § Implementation Plan (Architecture / Scene-Asset / PGS / Risk)
|
|
128
|
+
- [x] `validate-workflow-stop.mjs`: validates Plan section + Risk Checklist + no placeholders
|
|
129
|
+
- [x] `.claude/hooks/README.md`: documents Plan validation on STOP
|
|
130
|
+
- [x] `technical-artist.md` + `developer.md`: Runtime + Track done + Important Rules reference Plan
|
|
131
|
+
- [x] `ta-pipeline-cookbook.md` Step 0d + `developer-phase1-flow.md` Step 3b
|
|
132
|
+
- [x] `agent-conduct.md`: TA/Developer MUST/MUST NOT for Plan before production/code
|
|
133
|
+
- [x] `collaboration.md` § STOP sync checklist step 5 (Plan convergence)
|
|
134
|
+
- [x] Vitest `validate-workflow-stop.test.ts` covers `validatePlan`
|
|
135
|
+
|
|
136
|
+
## Automated
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
cd packages/cli && pnpm exec vitest run test/project-template-workflow.test.ts test/validate-workflow-stop.test.ts
|
|
140
|
+
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"skillsMatch": {
|
|
4
|
+
"engine": "{{engine}}",
|
|
5
|
+
"engineSource": "inferred",
|
|
6
|
+
"intent": ["{{gameplayType}}", "{{mechanic}}", "{{keywords}}"],
|
|
7
|
+
"items": [],
|
|
8
|
+
"mediaGroups": []
|
|
9
|
+
},
|
|
10
|
+
"atoms": [
|
|
11
|
+
{
|
|
12
|
+
"atomId": "{{production_atom_id}}",
|
|
13
|
+
"slot": "{{slot_name}}",
|
|
14
|
+
"type": "GameplayAtom",
|
|
15
|
+
"assignTo": "Developer",
|
|
16
|
+
"dependsOn": [],
|
|
17
|
+
"skillRef": "{{aigameplay_atomId_or_null}}",
|
|
18
|
+
"priority": "high",
|
|
19
|
+
"parallelGroup": null,
|
|
20
|
+
"referenceSource": null,
|
|
21
|
+
"status": "pending",
|
|
22
|
+
"actualOutput": null
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"dagRevisions": []
|
|
26
|
+
}
|