@playcraft/cli 0.0.44 → 0.0.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (992) hide show
  1. package/dist/atom-tree/build-skeleton.js +180 -0
  2. package/dist/atom-tree/fusion-hints.js +86 -0
  3. package/dist/atom-tree/selection.js +402 -0
  4. package/dist/commands/build-all.js +33 -5
  5. package/dist/commands/build.js +7 -1
  6. package/dist/commands/create.js +774 -50
  7. package/dist/commands/image.js +11 -0
  8. package/dist/commands/prad.js +61 -0
  9. package/dist/commands/remix.js +20 -0
  10. package/dist/commands/skills.js +961 -185
  11. package/dist/commands/tools-detect.js +56 -0
  12. package/dist/commands/tools-generation.js +21 -0
  13. package/dist/commands/tools-video-review.js +100 -0
  14. package/dist/commands/tools.js +4 -0
  15. package/dist/index.js +2 -0
  16. package/dist/prad/atom-ref.js +23 -0
  17. package/dist/prad/check.js +377 -0
  18. package/dist/prad/check.test.js +49 -0
  19. package/dist/prad/explain.js +109 -0
  20. package/dist/prad/load-spec.js +23 -0
  21. package/dist/prad/paths.js +83 -0
  22. package/dist/prad/skills-index.js +60 -0
  23. package/dist/remix/init-template.js +80 -0
  24. package/dist/scaffold/compose.js +211 -0
  25. package/engine-packs/phaser/game/adapters/phaser.ts +52 -0
  26. package/engine-packs/phaser/game/config/game-config.ts +46 -0
  27. package/engine-packs/phaser/game/contract/publish.ts +141 -0
  28. package/engine-packs/phaser/game/contract/types.ts +34 -0
  29. package/engine-packs/phaser/game/index.ts +81 -0
  30. package/engine-packs/phaser/game/runtime-contract.ts +28 -0
  31. package/engine-packs/phaser/manifest.json +1 -0
  32. package/engine-packs/phaser/package.deps.json +1 -0
  33. package/engine-packs/threejs/game/config/.gitkeep +0 -0
  34. package/engine-packs/threejs/game/config/game-config.ts +46 -0
  35. package/engine-packs/threejs/game/contract/publish.ts +141 -0
  36. package/engine-packs/threejs/game/contract/types.ts +34 -0
  37. package/engine-packs/threejs/game/gameplay/.gitkeep +0 -0
  38. package/engine-packs/threejs/game/index.ts +76 -0
  39. package/engine-packs/threejs/game/runtime-contract.ts +15 -0
  40. package/engine-packs/threejs/game/scenes/.gitkeep +0 -0
  41. package/engine-packs/threejs/manifest.json +1 -0
  42. package/engine-packs/threejs/package.deps.json +8 -0
  43. package/package.json +18 -4
  44. package/project-template/.claude/agents/artist.md +101 -0
  45. package/project-template/.claude/agents/developer.md +90 -93
  46. package/project-template/.claude/agents/game-designer.md +192 -0
  47. package/project-template/.claude/agents/refs/README.md +57 -51
  48. package/project-template/.claude/agents/refs/{designer-color-audio-recipes.md → artist-color-audio-recipes.md} +2 -2
  49. package/project-template/.claude/agents/refs/{designer-deliverable-spec.md → artist-deliverable-spec.md} +57 -57
  50. package/project-template/.claude/agents/refs/{designer-dimension-axis.md → artist-dimension-axis.md} +5 -5
  51. package/project-template/.claude/agents/refs/{designer-handoff-v2-checklist.md → artist-handoff-v2-checklist.md} +15 -15
  52. package/project-template/.claude/agents/refs/artist-legacy-fallback.md +14 -0
  53. package/project-template/.claude/agents/refs/{designer-master-composite-recipes.md → artist-master-composite-recipes.md} +3 -3
  54. package/project-template/.claude/agents/refs/artist-style-exploration-flow.md +55 -0
  55. package/project-template/.claude/agents/refs/developer-dev-handoff.md +83 -40
  56. package/project-template/.claude/agents/refs/developer-impl-cookbook.md +365 -67
  57. package/project-template/.claude/agents/refs/developer-legacy-fallback.md +15 -0
  58. package/project-template/.claude/agents/refs/developer-phase1-flow.md +131 -85
  59. package/project-template/.claude/agents/refs/framework-5-component-filter.md +252 -0
  60. package/project-template/.claude/agents/refs/framework-game-feel-juice.md +266 -0
  61. package/project-template/.claude/agents/refs/framework-mda.md +147 -0
  62. package/project-template/.claude/agents/refs/game-designer-gameplay-sufficiency.md +123 -0
  63. package/project-template/.claude/agents/refs/game-designer-legacy-fallback.md +15 -0
  64. package/project-template/.claude/agents/refs/game-designer-workflow-detail.md +69 -0
  65. package/project-template/.claude/agents/refs/implementation-plan-guide.md +316 -0
  66. package/project-template/.claude/agents/refs/reviewer-convergence-eval.md +247 -33
  67. package/project-template/.claude/agents/refs/reviewer-legacy-fallback.md +14 -0
  68. package/project-template/.claude/agents/refs/skill-selector-guide.md +465 -0
  69. package/project-template/.claude/agents/refs/skill-value-layers.md +145 -0
  70. package/project-template/.claude/agents/refs/storyboard-generation-guide.md +110 -0
  71. package/project-template/.claude/agents/refs/ta-atlas-deliverable-standard.md +4 -4
  72. package/project-template/.claude/agents/refs/ta-pipeline-cookbook.md +101 -104
  73. package/project-template/.claude/agents/refs/technical-artist-legacy-fallback.md +14 -0
  74. package/project-template/.claude/agents/reviewer.md +81 -95
  75. package/project-template/.claude/agents/technical-artist.md +71 -95
  76. package/project-template/.claude/hooks/README.md +83 -35
  77. package/project-template/.claude/hooks/asr-coverage-validate.mjs +19 -19
  78. package/project-template/.claude/hooks/block-developer-preflight.mjs +185 -0
  79. package/project-template/.claude/hooks/block-ring1-tasklist.mjs +95 -0
  80. package/project-template/.claude/hooks/gate-dispatcher.mjs +78 -0
  81. package/project-template/.claude/hooks/gate-runner.mjs +557 -0
  82. package/project-template/.claude/hooks/gate.mjs +170 -0
  83. package/project-template/.claude/hooks/snapshot-milestone.mjs +246 -0
  84. package/project-template/.claude/hooks/user-prompt.mjs +193 -0
  85. package/project-template/.claude/hooks/validate-atom-tree-selection.mjs +281 -0
  86. package/project-template/.claude/hooks/validate-workflow-stop.mjs +1535 -95
  87. package/project-template/.claude/settings.json +54 -9
  88. package/project-template/.claude/skills/brainstorming/SKILL.md +161 -0
  89. package/project-template/.claude/skills/brainstorming/scripts/frame-template.html +270 -0
  90. package/project-template/.claude/skills/brainstorming/scripts/helper.js +177 -0
  91. package/project-template/.claude/skills/brainstorming/scripts/server.cjs +354 -0
  92. package/project-template/.claude/skills/brainstorming/scripts/start-server.sh +148 -0
  93. package/project-template/.claude/skills/brainstorming/scripts/stop-server.sh +56 -0
  94. package/project-template/.claude/skills/brainstorming/scripts/wait-for-selection.sh +62 -0
  95. package/project-template/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  96. package/project-template/.claude/skills/brainstorming/visual-companion.md +309 -0
  97. package/project-template/.claude/skills/playcraft-ad-psychology/SKILL.md +3 -3
  98. package/project-template/.claude/skills/playcraft-art-style-guide/SKILL.md +3 -3
  99. package/project-template/.claude/skills/playcraft-asset-state-sheet/SKILL.md +35 -25
  100. package/project-template/.claude/skills/playcraft-audio-generation/SKILL.md +15 -15
  101. package/project-template/.claude/skills/playcraft-build-optimizer/SKILL.md +5 -5
  102. package/project-template/.claude/skills/playcraft-image-generation/SKILL.md +5 -5
  103. package/project-template/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +5 -5
  104. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +116 -27
  105. package/project-template/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +1 -1
  106. package/project-template/.claude/skills/playcraft-image-processing/SKILL.md +219 -0
  107. package/project-template/.claude/skills/playcraft-playable-optimization/SKILL.md +161 -0
  108. package/project-template/.claude/skills/playcraft-research/SKILL.md +24 -21
  109. package/project-template/.claude/skills/playcraft-skill-recommender/SKILL.md +331 -0
  110. package/project-template/.claude/skills/playcraft-sprite-generation/SKILL.md +48 -48
  111. package/project-template/.claude/skills/playcraft-sprite-remix/SKILL.md +158 -0
  112. package/project-template/.claude/skills/playcraft-sprite-sheet/SKILL.md +100 -0
  113. package/project-template/.claude/skills/playcraft-storyboard/SKILL.md +4 -4
  114. package/project-template/.claude/skills/playcraft-style-qa/SKILL.md +45 -45
  115. package/project-template/.claude/skills/playcraft-text-rendering/SKILL.md +27 -27
  116. package/project-template/.claude/skills/session-analyzer/SKILL.md +386 -0
  117. package/project-template/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +182 -0
  118. package/project-template/.claude/skills/session-analyzer/scripts/find-turns.mjs +72 -0
  119. package/project-template/.claude/skills/session-analyzer/scripts/heavy-output.mjs +121 -0
  120. package/project-template/.claude/skills/session-analyzer/scripts/resolve-session.mjs +103 -0
  121. package/project-template/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +127 -0
  122. package/project-template/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +106 -0
  123. package/project-template/.claude/skills/session-analyzer/scripts/time-gaps.mjs +128 -0
  124. package/project-template/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +67 -0
  125. package/project-template/.claude/snapshot.mjs +350 -0
  126. package/project-template/.codebuddy/settings.json +53 -0
  127. package/project-template/.cursor/hooks.json +1 -1
  128. package/project-template/.cursor/rules/playcraft-orchestrator.mdc +91 -86
  129. package/project-template/.cursor/rules/playcraft-subagent-boundary.mdc +16 -5
  130. package/project-template/CHANGELOG.md +105 -0
  131. package/project-template/CLAUDE.md +58 -254
  132. package/project-template/docs/DESIGN.md +65 -0
  133. package/project-template/docs/intent-clarifications.md +58 -0
  134. package/project-template/docs/pipeline-overview.md +69 -0
  135. package/project-template/docs/project-state.md +211 -0
  136. package/project-template/docs/team/agent-conduct.md +51 -105
  137. package/project-template/docs/team/agent-runtime-matrix.md +60 -74
  138. package/project-template/docs/team/atom-tree-format.md +169 -0
  139. package/project-template/docs/team/collaboration.md +319 -225
  140. package/project-template/docs/team/core-model.md +80 -46
  141. package/project-template/docs/team/game-designer-migration-todo.md +8 -0
  142. package/project-template/docs/team/harness-legacy-deprecation.md +23 -0
  143. package/project-template/docs/team/platform-capabilities.md +16 -13
  144. package/project-template/docs/team/workflow-changelog.md +95 -23
  145. package/project-template/docs/team/workflow-consistency-checklist.md +93 -45
  146. package/project-template/focus-lab/.gitkeep +0 -0
  147. package/project-template/game/.playcraft-scaffold-pending +0 -0
  148. package/project-template/game/index.ts +18 -0
  149. package/project-template/globals.d.ts +51 -0
  150. package/project-template/index.css +34 -0
  151. package/project-template/index.html +18 -0
  152. package/project-template/main.ts +9 -0
  153. package/project-template/package.json +79 -0
  154. package/project-template/skills/README.md +52 -0
  155. package/project-template/skills/_shared/agent-prep.md +136 -0
  156. package/project-template/skills/_shared/requirements.txt +1 -0
  157. package/project-template/skills/_shared/scripts/__pycache__/placeholder_audio_lib.cpython-311.pyc +0 -0
  158. package/project-template/skills/_shared/scripts/__pycache__/placeholder_lib.cpython-311.pyc +0 -0
  159. package/project-template/skills/_shared/scripts/build-evidence-gate.mjs +87 -0
  160. package/project-template/skills/_shared/scripts/context-budget.mjs +215 -0
  161. package/project-template/skills/_shared/scripts/create-playable.mjs +140 -0
  162. package/project-template/skills/_shared/scripts/dev-start.mjs +151 -0
  163. package/project-template/skills/_shared/scripts/disclosure-config.mjs +480 -0
  164. package/project-template/skills/_shared/scripts/ensure-project.mjs +532 -0
  165. package/project-template/skills/_shared/scripts/gen-placeholder-audio.py +345 -0
  166. package/project-template/skills/_shared/scripts/gen-placeholder.py +244 -0
  167. package/project-template/skills/_shared/scripts/harness-smoke.mjs +257 -0
  168. package/project-template/skills/_shared/scripts/lib/validator-artifacts.mjs +129 -0
  169. package/project-template/skills/_shared/scripts/placeholder-pack-sheet.mjs +67 -0
  170. package/project-template/skills/_shared/scripts/placeholder_audio_lib.py +142 -0
  171. package/project-template/skills/_shared/scripts/placeholder_lib.py +993 -0
  172. package/project-template/skills/_shared/scripts/render-project-state.mjs +278 -0
  173. package/project-template/skills/_shared/scripts/ring-config.mjs +252 -0
  174. package/project-template/skills/_shared/scripts/skills-check.mjs +176 -0
  175. package/project-template/skills/_shared/scripts/slice-set.mjs +77 -0
  176. package/project-template/skills/_shared/scripts/state-advance-ring.mjs +63 -0
  177. package/project-template/skills/_shared/scripts/state-get.mjs +215 -0
  178. package/project-template/skills/_shared/scripts/state-handoff.mjs +120 -0
  179. package/project-template/skills/_shared/scripts/state-set.mjs +113 -0
  180. package/project-template/skills/_shared/scripts/state-store.mjs +893 -0
  181. package/project-template/skills/_shared/scripts/sync-template-skills.mjs +112 -0
  182. package/project-template/skills/_shared/scripts/verify-asset-code-sync.mjs +265 -0
  183. package/project-template/skills/_shared/scripts/verify-atom-conformance.mjs +181 -0
  184. package/project-template/skills/_shared/scripts/verify-env.mjs +285 -0
  185. package/project-template/skills/_shared/scripts/verify-placeholders.mjs +161 -0
  186. package/project-template/skills/_shared/scripts/workflow-doctor.mjs +348 -0
  187. package/project-template/skills/playable-animate/SKILL.md +52 -0
  188. package/project-template/skills/playable-animate/agents/openai.yaml +4 -0
  189. package/project-template/skills/playable-animate/references/board-refresh.md +30 -0
  190. package/project-template/skills/playable-animate/references/diagnosis-checklist.md +25 -0
  191. package/project-template/skills/playable-animate/references/entrance-sequencing.md +33 -0
  192. package/project-template/skills/playable-animate/references/interaction-timing.md +23 -0
  193. package/project-template/skills/playable-art/SKILL.md +203 -0
  194. package/project-template/skills/playable-art/agents/openai.yaml +4 -0
  195. package/project-template/skills/playable-art/references/alpha-postprocess.md +46 -0
  196. package/project-template/skills/playable-art/references/cta-art-spec.md +59 -0
  197. package/project-template/skills/playable-art/references/layout-proportions.md +30 -0
  198. package/project-template/skills/playable-art/references/prompt-patterns.md +83 -0
  199. package/project-template/skills/playable-art/references/reference-comparison.md +30 -0
  200. package/project-template/skills/playable-art/references/sheet-import-v2.md +91 -0
  201. package/project-template/skills/playable-art/scripts/__pycache__/import-gpt-art-sheets-v2.cpython-311.pyc +0 -0
  202. package/project-template/skills/playable-art/scripts/__pycache__/import_gpt_art_pipeline.cpython-311.pyc +0 -0
  203. package/project-template/skills/playable-art/scripts/__pycache__/review-processed-assets.cpython-311.pyc +0 -0
  204. package/project-template/skills/playable-art/scripts/build-atlas.py +332 -0
  205. package/project-template/skills/playable-art/scripts/chroma-key.py +50 -0
  206. package/project-template/skills/playable-art/scripts/extract-alpha-split.py +65 -0
  207. package/project-template/skills/playable-art/scripts/extract-dual-bg-alpha.py +118 -0
  208. package/project-template/skills/playable-art/scripts/import-gpt-art-sheets-v2.py +403 -0
  209. package/project-template/skills/playable-art/scripts/import-gpt-art-sheets.py +280 -0
  210. package/project-template/skills/playable-art/scripts/import-gpt-tile-sheet.py +114 -0
  211. package/project-template/skills/playable-art/scripts/import_gpt_art_pipeline.py +321 -0
  212. package/project-template/skills/playable-art/scripts/import_gpt_art_sheets_v2_test.py +126 -0
  213. package/project-template/skills/playable-art/scripts/placeholder_common.py +98 -0
  214. package/project-template/skills/playable-art/scripts/remove-bg.py +91 -0
  215. package/project-template/skills/playable-art/scripts/review-processed-assets.py +468 -0
  216. package/project-template/skills/playable-art/scripts/review_processed_assets_test.py +116 -0
  217. package/project-template/skills/playable-art/scripts/verify-alpha-clean.py +105 -0
  218. package/project-template/skills/playable-debug/SKILL.md +116 -0
  219. package/project-template/skills/playable-debug/agents/openai.yaml +4 -0
  220. package/project-template/skills/playable-debug/references/debug-config.md +40 -0
  221. package/project-template/skills/playable-focus/SKILL.md +148 -0
  222. package/project-template/skills/playable-focus/scripts/bootstrap-playground.mjs +84 -0
  223. package/project-template/skills/playable-focus/scripts/extract-focus-frames.mjs +87 -0
  224. package/project-template/skills/playable-focus/scripts/generate-focus-reports.mjs +121 -0
  225. package/project-template/skills/playable-focus/scripts/playground.mjs +390 -0
  226. package/project-template/skills/playable-focus/templates/focus-lab/frame.html +39 -0
  227. package/project-template/skills/playable-focus/templates/focus-lab/harness/clean-stage.js +114 -0
  228. package/project-template/skills/playable-focus/templates/focus-lab/harness/frame-lab-scene.js +94 -0
  229. package/project-template/skills/playable-focus/templates/focus-lab/harness/particle-lab-scene.js +224 -0
  230. package/project-template/skills/playable-focus/templates/focus-lab/model.html +16 -0
  231. package/project-template/skills/playable-focus/templates/focus-lab/particle.html +38 -0
  232. package/project-template/skills/playable-focus/templates/focus-lab/shatter.html +47 -0
  233. package/project-template/skills/playable-focus/templates/playground/registry.template.json +55 -0
  234. package/project-template/skills/playable-focus/templates/playground/vfx-catalog.template.json +280 -0
  235. package/project-template/skills/playable-fx-decompose/SKILL.md +212 -0
  236. package/project-template/skills/playable-fx-decompose/examples.md +89 -0
  237. package/project-template/skills/playable-fx-decompose/reference.md +201 -0
  238. package/project-template/skills/playable-fx-decompose/requirements.txt +2 -0
  239. package/project-template/skills/playable-fx-decompose/scripts/build-blank-tile-crack.py +192 -0
  240. package/project-template/skills/playable-fx-decompose/scripts/fix-shard-debris-frames.py +60 -0
  241. package/project-template/skills/playable-fx-decompose/scripts/generate-shard-debris.py +276 -0
  242. package/project-template/skills/playable-fx-peak/SKILL.md +237 -0
  243. package/project-template/skills/playable-fx-peak/requirements.txt +2 -0
  244. package/project-template/skills/playable-fx-peak/scripts/fix-frame-edges.py +70 -0
  245. package/project-template/skills/playable-fx-peak/scripts/repack-frame-sequence.py +526 -0
  246. package/project-template/skills/playable-fx-peak/scripts/validate-frame-anchors.py +130 -0
  247. package/project-template/skills/playable-placeholder/SKILL.md +239 -0
  248. package/project-template/skills/playable-record/SKILL.md +166 -0
  249. package/project-template/skills/playable-record/scripts/lib/build-artifact.mjs +92 -0
  250. package/project-template/skills/playable-record/scripts/lib/dev-server.mjs +104 -0
  251. package/project-template/skills/playable-record/scripts/lib/record-audio-bridge.js +141 -0
  252. package/project-template/skills/playable-record/scripts/lib/slice-structure-verify.mjs +199 -0
  253. package/project-template/skills/playable-record/scripts/record-playable.mjs +583 -0
  254. package/project-template/skills/playable-record/scripts/verify-build.mjs +185 -0
  255. package/project-template/skills/playable-record/scripts/verify-contract.mjs +261 -0
  256. package/project-template/skills/playable-record/scripts/verify-firstwin.mjs +398 -0
  257. package/project-template/skills/playable-record/scripts/verify-fusion.mjs +320 -0
  258. package/project-template/skills/playable-record/scripts/verify-lifecycle.mjs +78 -0
  259. package/project-template/skills/playable-record/scripts/verify-slice-artist.mjs +53 -0
  260. package/project-template/skills/playable-record/scripts/verify-slice-ta.mjs +53 -0
  261. package/project-template/skills/playable-record/scripts/verify-slice.mjs +142 -0
  262. package/project-template/skills/playable-record/scripts/verify-visual-ring.mjs +250 -0
  263. package/project-template/skills/playable-record/scripts/verify-visual-ring1.mjs +190 -0
  264. package/project-template/skills/playable-record/scripts/verify-vlm-video.mjs +227 -0
  265. package/project-template/skills/playable-validate/SKILL.md +260 -0
  266. package/project-template/skills/playable-validate/references/checklist-detail.md +36 -0
  267. package/project-template/skills/playable-validate/references/single-html-bundle.md +76 -0
  268. package/project-template/skills/playable-validate/validation-rules.md +200 -0
  269. package/project-template/skills/playable-verify-ui/SKILL.md +295 -0
  270. package/project-template/skills/playable-verify-ui/examples/asset-manifest.example.json +36 -0
  271. package/project-template/skills/playable-verify-ui/examples/mahjong-match.profile.yaml +334 -0
  272. package/project-template/skills/playable-verify-ui/profiles/template.profile.yaml +84 -0
  273. package/project-template/skills/playable-verify-ui/reference.md +165 -0
  274. package/project-template/skills/playable-verify-ui/references/phaser-patterns.md +67 -0
  275. package/project-template/skills/playable-verify-ui/references/scaling-decision-tree.md +51 -0
  276. package/project-template/skills/playable-verify-ui/requirements.txt +7 -0
  277. package/project-template/skills/playable-verify-ui/schema/asset-manifest.schema.json +68 -0
  278. package/project-template/skills/playable-verify-ui/schema/playable-ui-profile.schema.json +171 -0
  279. package/project-template/skills/playable-verify-ui/scripts/__pycache__/asset_manifest.cpython-311.pyc +0 -0
  280. package/project-template/skills/playable-verify-ui/scripts/__pycache__/verify_slice_plan.cpython-311.pyc +0 -0
  281. package/project-template/skills/playable-verify-ui/scripts/__pycache__/verify_vision_evidence.cpython-311.pyc +0 -0
  282. package/project-template/skills/playable-verify-ui/scripts/asset_manifest.py +231 -0
  283. package/project-template/skills/playable-verify-ui/scripts/lib/__init__.py +1 -0
  284. package/project-template/skills/playable-verify-ui/scripts/lib/config_expr.js +218 -0
  285. package/project-template/skills/playable-verify-ui/scripts/lib/node_utils.js +51 -0
  286. package/project-template/skills/playable-verify-ui/scripts/lib/profile_loader.py +59 -0
  287. package/project-template/skills/playable-verify-ui/scripts/lib/report.py +106 -0
  288. package/project-template/skills/playable-verify-ui/scripts/lib/runtime_contract.js +116 -0
  289. package/project-template/skills/playable-verify-ui/scripts/measure_frame_content.py +77 -0
  290. package/project-template/skills/playable-verify-ui/scripts/run_all.py +265 -0
  291. package/project-template/skills/playable-verify-ui/scripts/verify_asset_sizes.py +77 -0
  292. package/project-template/skills/playable-verify-ui/scripts/verify_assets_present.py +62 -0
  293. package/project-template/skills/playable-verify-ui/scripts/verify_atlas_budget.py +84 -0
  294. package/project-template/skills/playable-verify-ui/scripts/verify_atlas_frames.py +79 -0
  295. package/project-template/skills/playable-verify-ui/scripts/verify_bg_clean.py +365 -0
  296. package/project-template/skills/playable-verify-ui/scripts/verify_doc_asset_sync.py +90 -0
  297. package/project-template/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +59 -0
  298. package/project-template/skills/playable-verify-ui/scripts/verify_game_config_load.js +54 -0
  299. package/project-template/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +64 -0
  300. package/project-template/skills/playable-verify-ui/scripts/verify_layout_regions.js +110 -0
  301. package/project-template/skills/playable-verify-ui/scripts/verify_profile_schema.py +37 -0
  302. package/project-template/skills/playable-verify-ui/scripts/verify_ring1_visual.py +211 -0
  303. package/project-template/skills/playable-verify-ui/scripts/verify_runtime_contract.js +58 -0
  304. package/project-template/skills/playable-verify-ui/scripts/verify_script_load_order.js +73 -0
  305. package/project-template/skills/playable-verify-ui/scripts/verify_slice_plan.py +238 -0
  306. package/project-template/skills/playable-verify-ui/scripts/verify_slice_plan_test.py +125 -0
  307. package/project-template/skills/playable-verify-ui/scripts/verify_text_overlap.py +333 -0
  308. package/project-template/skills/playable-verify-ui/scripts/verify_tile_consistency.py +323 -0
  309. package/project-template/skills/playable-verify-ui/scripts/verify_vision_evidence.py +894 -0
  310. package/project-template/skills/playable-verify-ui/scripts/verify_vision_evidence_test.py +122 -0
  311. package/project-template/skills/playable-verify-ui/scripts/verify_visual.py +422 -0
  312. package/project-template/templates/{designer-log.template.md → artist-log.template.md} +26 -31
  313. package/project-template/templates/atom-tree.template.json +133 -0
  314. package/project-template/templates/design-brief.template.md +59 -162
  315. package/project-template/templates/design-lens-checklist.reference.md +14 -14
  316. package/project-template/templates/design-methodology.md +25 -25
  317. package/project-template/templates/design.template.md +50 -0
  318. package/project-template/templates/developer-log.template.md +187 -63
  319. package/project-template/templates/five-axis-framework.md +89 -44
  320. package/project-template/templates/gen-placeholder-audio.template.mjs +63 -0
  321. package/project-template/templates/gen-placeholders.template.mjs +81 -0
  322. package/project-template/templates/intent-clarifications.template.md +7 -7
  323. package/project-template/templates/layout-spec.template.md +32 -20
  324. package/project-template/templates/plan.template.md +80 -0
  325. package/project-template/templates/project-state.template.md +90 -191
  326. package/project-template/templates/review-report.template.md +208 -24
  327. package/project-template/templates/style-exploration.template.md +8 -8
  328. package/project-template/templates/ta-log.template.md +58 -35
  329. package/project-template/tsconfig.json +20 -0
  330. package/project-template/vite.config.ts +27 -0
  331. package/project-templates/phaser/.claude/agents/artist.md +101 -0
  332. package/project-templates/phaser/.claude/agents/developer.md +123 -0
  333. package/project-templates/phaser/.claude/agents/game-designer.md +192 -0
  334. package/project-templates/phaser/.claude/agents/refs/README.md +77 -0
  335. package/project-templates/phaser/.claude/agents/refs/artist-art-style-catalog.md +533 -0
  336. package/project-templates/phaser/.claude/agents/refs/artist-color-audio-recipes.md +153 -0
  337. package/project-templates/phaser/.claude/agents/refs/artist-deliverable-spec.md +230 -0
  338. package/project-templates/phaser/.claude/agents/refs/artist-dimension-axis.md +27 -0
  339. package/project-templates/phaser/.claude/agents/refs/artist-handoff-v2-checklist.md +76 -0
  340. package/project-templates/phaser/.claude/agents/refs/artist-legacy-fallback.md +14 -0
  341. package/project-templates/phaser/.claude/agents/refs/artist-master-composite-recipes.md +208 -0
  342. package/project-templates/phaser/.claude/agents/refs/artist-style-exploration-flow.md +55 -0
  343. package/project-templates/phaser/.claude/agents/refs/developer-dev-handoff.md +152 -0
  344. package/project-templates/phaser/.claude/agents/refs/developer-impl-cookbook.md +432 -0
  345. package/project-templates/phaser/.claude/agents/refs/developer-legacy-fallback.md +15 -0
  346. package/project-templates/phaser/.claude/agents/refs/developer-phase1-flow.md +404 -0
  347. package/project-templates/phaser/.claude/agents/refs/framework-5-component-filter.md +252 -0
  348. package/project-templates/phaser/.claude/agents/refs/framework-game-feel-juice.md +266 -0
  349. package/project-templates/phaser/.claude/agents/refs/framework-mda.md +147 -0
  350. package/project-templates/phaser/.claude/agents/refs/game-designer-gameplay-sufficiency.md +123 -0
  351. package/project-templates/phaser/.claude/agents/refs/game-designer-legacy-fallback.md +15 -0
  352. package/project-templates/phaser/.claude/agents/refs/game-designer-workflow-detail.md +69 -0
  353. package/project-templates/phaser/.claude/agents/refs/implementation-plan-guide.md +309 -0
  354. package/project-templates/phaser/.claude/agents/refs/reviewer-convergence-eval.md +350 -0
  355. package/project-templates/phaser/.claude/agents/refs/reviewer-legacy-fallback.md +14 -0
  356. package/project-templates/phaser/.claude/agents/refs/reviewer-six-dimension-eval.md +6 -0
  357. package/project-templates/phaser/.claude/agents/refs/skill-selector-guide.md +465 -0
  358. package/project-templates/phaser/.claude/agents/refs/skill-value-layers.md +145 -0
  359. package/project-templates/phaser/.claude/agents/refs/storyboard-generation-guide.md +110 -0
  360. package/project-templates/phaser/.claude/agents/refs/ta-3d-flip-recipe.md +88 -0
  361. package/project-templates/phaser/.claude/agents/refs/ta-atlas-deliverable-standard.md +67 -0
  362. package/project-templates/phaser/.claude/agents/refs/ta-batch-pipeline-recipes.md +120 -0
  363. package/project-templates/phaser/.claude/agents/refs/ta-image-generation-detail.md +300 -0
  364. package/project-templates/phaser/.claude/agents/refs/ta-image-ops-reference.md +495 -0
  365. package/project-templates/phaser/.claude/agents/refs/ta-pipeline-cookbook.md +1141 -0
  366. package/project-templates/phaser/.claude/agents/refs/ta-tools-reference.md +111 -0
  367. package/project-templates/phaser/.claude/agents/refs/ta-vfx-preset-catalog.md +365 -0
  368. package/project-templates/phaser/.claude/agents/refs/technical-artist-legacy-fallback.md +14 -0
  369. package/project-templates/phaser/.claude/agents/reviewer.md +116 -0
  370. package/project-templates/phaser/.claude/agents/technical-artist.md +100 -0
  371. package/project-templates/phaser/.claude/hooks/README.md +120 -0
  372. package/project-templates/phaser/.claude/hooks/asr-coverage-validate.mjs +381 -0
  373. package/project-templates/phaser/.claude/hooks/block-developer-preflight.mjs +185 -0
  374. package/project-templates/phaser/.claude/hooks/block-ring1-tasklist.mjs +95 -0
  375. package/project-templates/phaser/.claude/hooks/gate-dispatcher.mjs +78 -0
  376. package/project-templates/phaser/.claude/hooks/gate-runner.mjs +557 -0
  377. package/project-templates/phaser/.claude/hooks/gate.mjs +171 -0
  378. package/project-templates/phaser/.claude/hooks/snapshot-milestone.mjs +247 -0
  379. package/project-templates/phaser/.claude/hooks/user-prompt.mjs +194 -0
  380. package/project-templates/phaser/.claude/hooks/validate-atom-tree-selection.mjs +281 -0
  381. package/project-templates/phaser/.claude/hooks/validate-workflow-stop.mjs +1889 -0
  382. package/project-templates/phaser/.claude/settings.json +81 -0
  383. package/project-templates/phaser/.claude/skills/brainstorming/SKILL.md +161 -0
  384. package/project-templates/phaser/.claude/skills/brainstorming/scripts/frame-template.html +270 -0
  385. package/project-templates/phaser/.claude/skills/brainstorming/scripts/helper.js +177 -0
  386. package/project-templates/phaser/.claude/skills/brainstorming/scripts/server.cjs +354 -0
  387. package/project-templates/phaser/.claude/skills/brainstorming/scripts/start-server.sh +148 -0
  388. package/project-templates/phaser/.claude/skills/brainstorming/scripts/stop-server.sh +56 -0
  389. package/project-templates/phaser/.claude/skills/brainstorming/scripts/wait-for-selection.sh +62 -0
  390. package/project-templates/phaser/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  391. package/project-templates/phaser/.claude/skills/brainstorming/visual-companion.md +309 -0
  392. package/project-templates/phaser/.claude/skills/playcraft-ad-psychology/SKILL.md +182 -0
  393. package/project-templates/phaser/.claude/skills/playcraft-art-style-guide/SKILL.md +123 -0
  394. package/project-templates/phaser/.claude/skills/playcraft-asset-state-sheet/SKILL.md +205 -0
  395. package/project-templates/phaser/.claude/skills/playcraft-audio-generation/SKILL.md +280 -0
  396. package/project-templates/phaser/.claude/skills/playcraft-batch-pipeline/SKILL.md +184 -0
  397. package/project-templates/phaser/.claude/skills/playcraft-build-optimizer/SKILL.md +306 -0
  398. package/project-templates/phaser/.claude/skills/playcraft-image-generation/SKILL.md +298 -0
  399. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +123 -0
  400. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +254 -0
  401. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +324 -0
  402. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +97 -0
  403. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +118 -0
  404. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +137 -0
  405. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +397 -0
  406. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +296 -0
  407. package/project-templates/phaser/.claude/skills/playcraft-image-ops/SKILL.md +122 -0
  408. package/project-templates/phaser/.claude/skills/playcraft-image-processing/SKILL.md +219 -0
  409. package/project-templates/phaser/.claude/skills/playcraft-masking/SKILL.md +373 -0
  410. package/project-templates/phaser/.claude/skills/playcraft-playable-optimization/SKILL.md +161 -0
  411. package/project-templates/phaser/.claude/skills/playcraft-research/SKILL.md +215 -0
  412. package/project-templates/phaser/.claude/skills/playcraft-skill-recommender/SKILL.md +331 -0
  413. package/project-templates/phaser/.claude/skills/playcraft-sprite-generation/SKILL.md +423 -0
  414. package/project-templates/phaser/.claude/skills/playcraft-sprite-remix/SKILL.md +158 -0
  415. package/project-templates/phaser/.claude/skills/playcraft-sprite-sheet/SKILL.md +100 -0
  416. package/project-templates/phaser/.claude/skills/playcraft-storyboard/SKILL.md +167 -0
  417. package/project-templates/phaser/.claude/skills/playcraft-style-qa/SKILL.md +270 -0
  418. package/project-templates/phaser/.claude/skills/playcraft-text-rendering/SKILL.md +236 -0
  419. package/project-templates/phaser/.claude/skills/playcraft-vfx-animation/SKILL.md +130 -0
  420. package/project-templates/phaser/.claude/skills/playwright-cli/SKILL.md +390 -0
  421. package/project-templates/phaser/.claude/skills/playwright-cli/references/element-attributes.md +23 -0
  422. package/project-templates/phaser/.claude/skills/playwright-cli/references/playwright-tests.md +39 -0
  423. package/project-templates/phaser/.claude/skills/playwright-cli/references/request-mocking.md +87 -0
  424. package/project-templates/phaser/.claude/skills/playwright-cli/references/running-code.md +240 -0
  425. package/project-templates/phaser/.claude/skills/playwright-cli/references/session-management.md +226 -0
  426. package/project-templates/phaser/.claude/skills/playwright-cli/references/spec-driven-testing.md +308 -0
  427. package/project-templates/phaser/.claude/skills/playwright-cli/references/storage-state.md +275 -0
  428. package/project-templates/phaser/.claude/skills/playwright-cli/references/test-generation.md +134 -0
  429. package/project-templates/phaser/.claude/skills/playwright-cli/references/tracing.md +142 -0
  430. package/project-templates/phaser/.claude/skills/playwright-cli/references/video-recording.md +153 -0
  431. package/project-templates/phaser/.claude/skills/session-analyzer/SKILL.md +386 -0
  432. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +182 -0
  433. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/find-turns.mjs +72 -0
  434. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/heavy-output.mjs +121 -0
  435. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/resolve-session.mjs +103 -0
  436. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +127 -0
  437. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +106 -0
  438. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/time-gaps.mjs +128 -0
  439. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +67 -0
  440. package/project-templates/phaser/.claude/snapshot.mjs +257 -0
  441. package/project-templates/phaser/.cursor/hooks.json +17 -0
  442. package/project-templates/phaser/.cursor/rules/playcraft-orchestrator.mdc +142 -0
  443. package/project-templates/phaser/.cursor/rules/playcraft-subagent-boundary.mdc +29 -0
  444. package/project-templates/phaser/.playcraft-engine +1 -0
  445. package/project-templates/phaser/CHANGELOG.md +105 -0
  446. package/project-templates/phaser/CLAUDE.md +84 -0
  447. package/project-templates/phaser/assets/audio/bgm/.gitkeep +0 -0
  448. package/project-templates/phaser/assets/audio/sfx/.gitkeep +0 -0
  449. package/project-templates/phaser/assets/bundles/.gitkeep +0 -0
  450. package/project-templates/phaser/assets/images/bg/.gitkeep +0 -0
  451. package/project-templates/phaser/assets/images/reference/.gitkeep +0 -0
  452. package/project-templates/phaser/assets/images/storyboard/.gitkeep +0 -0
  453. package/project-templates/phaser/assets/images/tiles/.gitkeep +0 -0
  454. package/project-templates/phaser/assets/images/ui/.gitkeep +0 -0
  455. package/project-templates/phaser/assets/images/vfx/.gitkeep +0 -0
  456. package/project-templates/phaser/assets/models/.gitkeep +0 -0
  457. package/project-templates/phaser/docs/DESIGN.md +65 -0
  458. package/project-templates/phaser/docs/intent-clarifications.md +58 -0
  459. package/project-templates/phaser/docs/pipeline-overview.md +69 -0
  460. package/project-templates/phaser/docs/project-state.md +211 -0
  461. package/project-templates/phaser/docs/scaffold-manifest.md +10 -0
  462. package/project-templates/phaser/docs/team/agent-conduct.md +67 -0
  463. package/project-templates/phaser/docs/team/agent-runtime-matrix.md +80 -0
  464. package/project-templates/phaser/docs/team/atom-tree-format.md +114 -0
  465. package/project-templates/phaser/docs/team/collaboration.md +391 -0
  466. package/project-templates/phaser/docs/team/core-model.md +85 -0
  467. package/project-templates/phaser/docs/team/game-designer-migration-todo.md +8 -0
  468. package/project-templates/phaser/docs/team/harness-legacy-deprecation.md +23 -0
  469. package/project-templates/phaser/docs/team/platform-capabilities.md +18 -0
  470. package/project-templates/phaser/docs/team/workflow-changelog.md +137 -0
  471. package/project-templates/phaser/docs/team/workflow-consistency-checklist.md +240 -0
  472. package/project-templates/phaser/focus-lab/.gitkeep +0 -0
  473. package/project-templates/phaser/game/adapters/phaser.ts +52 -0
  474. package/project-templates/phaser/game/config/.gitkeep +0 -0
  475. package/project-templates/phaser/game/config/game-config.ts +46 -0
  476. package/project-templates/phaser/game/contract/publish.ts +141 -0
  477. package/project-templates/phaser/game/contract/types.ts +34 -0
  478. package/project-templates/phaser/game/gameplay/.gitkeep +0 -0
  479. package/project-templates/phaser/game/index.ts +81 -0
  480. package/project-templates/phaser/game/runtime-contract.ts +28 -0
  481. package/project-templates/phaser/game/scenes/.gitkeep +0 -0
  482. package/project-templates/phaser/globals.d.ts +51 -0
  483. package/project-templates/phaser/index.css +34 -0
  484. package/project-templates/phaser/index.html +18 -0
  485. package/project-templates/phaser/main.ts +9 -0
  486. package/project-templates/phaser/package.json +79 -0
  487. package/project-templates/phaser/skills/README.md +52 -0
  488. package/project-templates/phaser/skills/_shared/agent-prep.md +136 -0
  489. package/project-templates/phaser/skills/_shared/requirements.txt +1 -0
  490. package/project-templates/phaser/skills/_shared/scripts/build-evidence-gate.mjs +87 -0
  491. package/project-templates/phaser/skills/_shared/scripts/context-budget.mjs +215 -0
  492. package/project-templates/phaser/skills/_shared/scripts/create-playable.mjs +140 -0
  493. package/project-templates/phaser/skills/_shared/scripts/dev-start.mjs +151 -0
  494. package/project-templates/phaser/skills/_shared/scripts/disclosure-config.mjs +480 -0
  495. package/project-templates/phaser/skills/_shared/scripts/ensure-project.mjs +532 -0
  496. package/project-templates/phaser/skills/_shared/scripts/gen-placeholder-audio.py +345 -0
  497. package/project-templates/phaser/skills/_shared/scripts/gen-placeholder.py +244 -0
  498. package/project-templates/phaser/skills/_shared/scripts/harness-smoke.mjs +257 -0
  499. package/project-templates/phaser/skills/_shared/scripts/lib/validator-artifacts.mjs +129 -0
  500. package/project-templates/phaser/skills/_shared/scripts/placeholder-pack-sheet.mjs +67 -0
  501. package/project-templates/phaser/skills/_shared/scripts/placeholder_audio_lib.py +142 -0
  502. package/project-templates/phaser/skills/_shared/scripts/placeholder_lib.py +993 -0
  503. package/project-templates/phaser/skills/_shared/scripts/render-project-state.mjs +278 -0
  504. package/project-templates/phaser/skills/_shared/scripts/ring-config.mjs +252 -0
  505. package/project-templates/phaser/skills/_shared/scripts/skills-check.mjs +176 -0
  506. package/project-templates/phaser/skills/_shared/scripts/slice-set.mjs +77 -0
  507. package/project-templates/phaser/skills/_shared/scripts/state-advance-ring.mjs +63 -0
  508. package/project-templates/phaser/skills/_shared/scripts/state-get.mjs +215 -0
  509. package/project-templates/phaser/skills/_shared/scripts/state-handoff.mjs +120 -0
  510. package/project-templates/phaser/skills/_shared/scripts/state-set.mjs +113 -0
  511. package/project-templates/phaser/skills/_shared/scripts/state-store.mjs +893 -0
  512. package/project-templates/phaser/skills/_shared/scripts/sync-template-skills.mjs +112 -0
  513. package/project-templates/phaser/skills/_shared/scripts/verify-asset-code-sync.mjs +265 -0
  514. package/project-templates/phaser/skills/_shared/scripts/verify-atom-conformance.mjs +181 -0
  515. package/project-templates/phaser/skills/_shared/scripts/verify-env.mjs +285 -0
  516. package/project-templates/phaser/skills/_shared/scripts/verify-placeholders.mjs +161 -0
  517. package/project-templates/phaser/skills/_shared/scripts/workflow-doctor.mjs +348 -0
  518. package/project-templates/phaser/skills/playable-animate/SKILL.md +52 -0
  519. package/project-templates/phaser/skills/playable-animate/agents/openai.yaml +4 -0
  520. package/project-templates/phaser/skills/playable-animate/references/board-refresh.md +30 -0
  521. package/project-templates/phaser/skills/playable-animate/references/diagnosis-checklist.md +25 -0
  522. package/project-templates/phaser/skills/playable-animate/references/entrance-sequencing.md +33 -0
  523. package/project-templates/phaser/skills/playable-animate/references/interaction-timing.md +23 -0
  524. package/project-templates/phaser/skills/playable-art/SKILL.md +203 -0
  525. package/project-templates/phaser/skills/playable-art/agents/openai.yaml +4 -0
  526. package/project-templates/phaser/skills/playable-art/references/alpha-postprocess.md +46 -0
  527. package/project-templates/phaser/skills/playable-art/references/cta-art-spec.md +59 -0
  528. package/project-templates/phaser/skills/playable-art/references/layout-proportions.md +30 -0
  529. package/project-templates/phaser/skills/playable-art/references/prompt-patterns.md +83 -0
  530. package/project-templates/phaser/skills/playable-art/references/reference-comparison.md +30 -0
  531. package/project-templates/phaser/skills/playable-art/references/sheet-import-v2.md +91 -0
  532. package/project-templates/phaser/skills/playable-art/scripts/build-atlas.py +332 -0
  533. package/project-templates/phaser/skills/playable-art/scripts/chroma-key.py +50 -0
  534. package/project-templates/phaser/skills/playable-art/scripts/extract-alpha-split.py +65 -0
  535. package/project-templates/phaser/skills/playable-art/scripts/extract-dual-bg-alpha.py +118 -0
  536. package/project-templates/phaser/skills/playable-art/scripts/import-gpt-art-sheets-v2.py +403 -0
  537. package/project-templates/phaser/skills/playable-art/scripts/import-gpt-art-sheets.py +280 -0
  538. package/project-templates/phaser/skills/playable-art/scripts/import-gpt-tile-sheet.py +114 -0
  539. package/project-templates/phaser/skills/playable-art/scripts/import_gpt_art_pipeline.py +321 -0
  540. package/project-templates/phaser/skills/playable-art/scripts/import_gpt_art_sheets_v2_test.py +126 -0
  541. package/project-templates/phaser/skills/playable-art/scripts/placeholder_common.py +98 -0
  542. package/project-templates/phaser/skills/playable-art/scripts/remove-bg.py +91 -0
  543. package/project-templates/phaser/skills/playable-art/scripts/review-processed-assets.py +468 -0
  544. package/project-templates/phaser/skills/playable-art/scripts/review_processed_assets_test.py +116 -0
  545. package/project-templates/phaser/skills/playable-art/scripts/verify-alpha-clean.py +105 -0
  546. package/project-templates/phaser/skills/playable-debug/SKILL.md +116 -0
  547. package/project-templates/phaser/skills/playable-debug/agents/openai.yaml +4 -0
  548. package/project-templates/phaser/skills/playable-debug/references/debug-config.md +40 -0
  549. package/project-templates/phaser/skills/playable-focus/SKILL.md +148 -0
  550. package/project-templates/phaser/skills/playable-focus/scripts/bootstrap-playground.mjs +84 -0
  551. package/project-templates/phaser/skills/playable-focus/scripts/extract-focus-frames.mjs +87 -0
  552. package/project-templates/phaser/skills/playable-focus/scripts/generate-focus-reports.mjs +121 -0
  553. package/project-templates/phaser/skills/playable-focus/scripts/playground.mjs +390 -0
  554. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/frame.html +39 -0
  555. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/harness/clean-stage.js +114 -0
  556. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/harness/frame-lab-scene.js +94 -0
  557. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/harness/particle-lab-scene.js +224 -0
  558. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/model.html +16 -0
  559. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/particle.html +38 -0
  560. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/shatter.html +47 -0
  561. package/project-templates/phaser/skills/playable-fx-decompose/SKILL.md +212 -0
  562. package/project-templates/phaser/skills/playable-fx-decompose/examples.md +89 -0
  563. package/project-templates/phaser/skills/playable-fx-decompose/reference.md +201 -0
  564. package/project-templates/phaser/skills/playable-fx-decompose/requirements.txt +2 -0
  565. package/project-templates/phaser/skills/playable-fx-decompose/scripts/build-blank-tile-crack.py +192 -0
  566. package/project-templates/phaser/skills/playable-fx-decompose/scripts/fix-shard-debris-frames.py +60 -0
  567. package/project-templates/phaser/skills/playable-fx-decompose/scripts/generate-shard-debris.py +276 -0
  568. package/project-templates/phaser/skills/playable-fx-peak/SKILL.md +237 -0
  569. package/project-templates/phaser/skills/playable-fx-peak/requirements.txt +2 -0
  570. package/project-templates/phaser/skills/playable-fx-peak/scripts/fix-frame-edges.py +70 -0
  571. package/project-templates/phaser/skills/playable-fx-peak/scripts/repack-frame-sequence.py +526 -0
  572. package/project-templates/phaser/skills/playable-fx-peak/scripts/validate-frame-anchors.py +130 -0
  573. package/project-templates/phaser/skills/playable-placeholder/SKILL.md +239 -0
  574. package/project-templates/phaser/skills/playable-record/SKILL.md +166 -0
  575. package/project-templates/phaser/skills/playable-record/scripts/lib/build-artifact.mjs +92 -0
  576. package/project-templates/phaser/skills/playable-record/scripts/lib/dev-server.mjs +104 -0
  577. package/project-templates/phaser/skills/playable-record/scripts/lib/record-audio-bridge.js +141 -0
  578. package/project-templates/phaser/skills/playable-record/scripts/lib/slice-structure-verify.mjs +199 -0
  579. package/project-templates/phaser/skills/playable-record/scripts/record-playable.mjs +583 -0
  580. package/project-templates/phaser/skills/playable-record/scripts/verify-build.mjs +185 -0
  581. package/project-templates/phaser/skills/playable-record/scripts/verify-contract.mjs +261 -0
  582. package/project-templates/phaser/skills/playable-record/scripts/verify-firstwin.mjs +398 -0
  583. package/project-templates/phaser/skills/playable-record/scripts/verify-fusion.mjs +320 -0
  584. package/project-templates/phaser/skills/playable-record/scripts/verify-lifecycle.mjs +78 -0
  585. package/project-templates/phaser/skills/playable-record/scripts/verify-slice-artist.mjs +53 -0
  586. package/project-templates/phaser/skills/playable-record/scripts/verify-slice-ta.mjs +53 -0
  587. package/project-templates/phaser/skills/playable-record/scripts/verify-slice.mjs +142 -0
  588. package/project-templates/phaser/skills/playable-record/scripts/verify-visual-ring.mjs +250 -0
  589. package/project-templates/phaser/skills/playable-record/scripts/verify-visual-ring1.mjs +190 -0
  590. package/project-templates/phaser/skills/playable-record/scripts/verify-vlm-video.mjs +227 -0
  591. package/project-templates/phaser/skills/playable-validate/SKILL.md +260 -0
  592. package/project-templates/phaser/skills/playable-validate/references/checklist-detail.md +36 -0
  593. package/project-templates/phaser/skills/playable-validate/references/single-html-bundle.md +76 -0
  594. package/project-templates/phaser/skills/playable-validate/validation-rules.md +200 -0
  595. package/project-templates/phaser/skills/playable-verify-ui/SKILL.md +295 -0
  596. package/project-templates/phaser/skills/playable-verify-ui/examples/asset-manifest.example.json +36 -0
  597. package/project-templates/phaser/skills/playable-verify-ui/examples/mahjong-match.profile.yaml +334 -0
  598. package/project-templates/phaser/skills/playable-verify-ui/profiles/template.profile.yaml +84 -0
  599. package/project-templates/phaser/skills/playable-verify-ui/reference.md +165 -0
  600. package/project-templates/phaser/skills/playable-verify-ui/references/phaser-patterns.md +67 -0
  601. package/project-templates/phaser/skills/playable-verify-ui/references/scaling-decision-tree.md +51 -0
  602. package/project-templates/phaser/skills/playable-verify-ui/requirements.txt +7 -0
  603. package/project-templates/phaser/skills/playable-verify-ui/schema/asset-manifest.schema.json +68 -0
  604. package/project-templates/phaser/skills/playable-verify-ui/schema/playable-ui-profile.schema.json +171 -0
  605. package/project-templates/phaser/skills/playable-verify-ui/scripts/asset_manifest.py +231 -0
  606. package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/__init__.py +1 -0
  607. package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/config_expr.js +218 -0
  608. package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/node_utils.js +51 -0
  609. package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/profile_loader.py +59 -0
  610. package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/report.py +106 -0
  611. package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/runtime_contract.js +116 -0
  612. package/project-templates/phaser/skills/playable-verify-ui/scripts/measure_frame_content.py +77 -0
  613. package/project-templates/phaser/skills/playable-verify-ui/scripts/run_all.py +265 -0
  614. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_asset_sizes.py +77 -0
  615. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_assets_present.py +62 -0
  616. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_atlas_budget.py +84 -0
  617. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_atlas_frames.py +79 -0
  618. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_bg_clean.py +365 -0
  619. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_doc_asset_sync.py +90 -0
  620. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +59 -0
  621. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_game_config_load.js +54 -0
  622. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +64 -0
  623. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_layout_regions.js +110 -0
  624. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_profile_schema.py +37 -0
  625. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_ring1_visual.py +211 -0
  626. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_runtime_contract.js +58 -0
  627. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_script_load_order.js +73 -0
  628. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_slice_plan.py +238 -0
  629. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_slice_plan_test.py +125 -0
  630. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_text_overlap.py +333 -0
  631. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_tile_consistency.py +323 -0
  632. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_vision_evidence.py +894 -0
  633. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_vision_evidence_test.py +122 -0
  634. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_visual.py +422 -0
  635. package/project-templates/phaser/ta-workspace/scripts/.gitkeep +0 -0
  636. package/project-templates/phaser/templates/artist-log.template.md +182 -0
  637. package/project-templates/phaser/templates/atom-tree.template.json +133 -0
  638. package/project-templates/phaser/templates/design-brief.template.md +92 -0
  639. package/project-templates/phaser/templates/design-lens-checklist.reference.md +117 -0
  640. package/project-templates/phaser/templates/design-methodology.md +99 -0
  641. package/project-templates/phaser/templates/design.template.md +50 -0
  642. package/project-templates/phaser/templates/developer-log.template.md +258 -0
  643. package/project-templates/phaser/templates/five-axis-framework.md +194 -0
  644. package/project-templates/phaser/templates/gen-placeholder-audio.template.mjs +63 -0
  645. package/project-templates/phaser/templates/gen-placeholders.template.mjs +81 -0
  646. package/project-templates/phaser/templates/intent-clarifications.template.md +58 -0
  647. package/project-templates/phaser/templates/layout-spec.template.md +198 -0
  648. package/project-templates/phaser/templates/plan.template.md +80 -0
  649. package/project-templates/phaser/templates/project-state.template.md +136 -0
  650. package/project-templates/phaser/templates/review-report.template.md +275 -0
  651. package/project-templates/phaser/templates/style-exploration.template.md +93 -0
  652. package/project-templates/phaser/templates/ta-log.template.md +394 -0
  653. package/project-templates/phaser/tsconfig.json +20 -0
  654. package/project-templates/phaser/vite.config.ts +27 -0
  655. package/project-templates/threejs/.claude/agents/artist.md +101 -0
  656. package/project-templates/threejs/.claude/agents/developer.md +123 -0
  657. package/project-templates/threejs/.claude/agents/game-designer.md +192 -0
  658. package/project-templates/threejs/.claude/agents/refs/README.md +77 -0
  659. package/project-templates/threejs/.claude/agents/refs/artist-art-style-catalog.md +533 -0
  660. package/project-templates/threejs/.claude/agents/refs/artist-color-audio-recipes.md +153 -0
  661. package/project-templates/threejs/.claude/agents/refs/artist-deliverable-spec.md +230 -0
  662. package/project-templates/threejs/.claude/agents/refs/artist-dimension-axis.md +27 -0
  663. package/project-templates/threejs/.claude/agents/refs/artist-handoff-v2-checklist.md +76 -0
  664. package/project-templates/threejs/.claude/agents/refs/artist-legacy-fallback.md +14 -0
  665. package/project-templates/threejs/.claude/agents/refs/artist-master-composite-recipes.md +208 -0
  666. package/project-templates/threejs/.claude/agents/refs/artist-style-exploration-flow.md +55 -0
  667. package/project-templates/threejs/.claude/agents/refs/developer-dev-handoff.md +152 -0
  668. package/project-templates/threejs/.claude/agents/refs/developer-impl-cookbook.md +432 -0
  669. package/project-templates/threejs/.claude/agents/refs/developer-legacy-fallback.md +15 -0
  670. package/project-templates/threejs/.claude/agents/refs/developer-phase1-flow.md +404 -0
  671. package/project-templates/threejs/.claude/agents/refs/framework-5-component-filter.md +252 -0
  672. package/project-templates/threejs/.claude/agents/refs/framework-game-feel-juice.md +266 -0
  673. package/project-templates/threejs/.claude/agents/refs/framework-mda.md +147 -0
  674. package/project-templates/threejs/.claude/agents/refs/game-designer-gameplay-sufficiency.md +123 -0
  675. package/project-templates/threejs/.claude/agents/refs/game-designer-legacy-fallback.md +15 -0
  676. package/project-templates/threejs/.claude/agents/refs/game-designer-workflow-detail.md +69 -0
  677. package/project-templates/threejs/.claude/agents/refs/implementation-plan-guide.md +309 -0
  678. package/project-templates/threejs/.claude/agents/refs/reviewer-convergence-eval.md +350 -0
  679. package/project-templates/threejs/.claude/agents/refs/reviewer-legacy-fallback.md +14 -0
  680. package/project-templates/threejs/.claude/agents/refs/reviewer-six-dimension-eval.md +6 -0
  681. package/project-templates/threejs/.claude/agents/refs/skill-selector-guide.md +465 -0
  682. package/project-templates/threejs/.claude/agents/refs/skill-value-layers.md +145 -0
  683. package/project-templates/threejs/.claude/agents/refs/storyboard-generation-guide.md +110 -0
  684. package/project-templates/threejs/.claude/agents/refs/ta-3d-flip-recipe.md +88 -0
  685. package/project-templates/threejs/.claude/agents/refs/ta-atlas-deliverable-standard.md +67 -0
  686. package/project-templates/threejs/.claude/agents/refs/ta-batch-pipeline-recipes.md +120 -0
  687. package/project-templates/threejs/.claude/agents/refs/ta-image-generation-detail.md +300 -0
  688. package/project-templates/threejs/.claude/agents/refs/ta-image-ops-reference.md +495 -0
  689. package/project-templates/threejs/.claude/agents/refs/ta-pipeline-cookbook.md +1141 -0
  690. package/project-templates/threejs/.claude/agents/refs/ta-tools-reference.md +111 -0
  691. package/project-templates/threejs/.claude/agents/refs/ta-vfx-preset-catalog.md +365 -0
  692. package/project-templates/threejs/.claude/agents/refs/technical-artist-legacy-fallback.md +14 -0
  693. package/project-templates/threejs/.claude/agents/reviewer.md +116 -0
  694. package/project-templates/threejs/.claude/agents/technical-artist.md +100 -0
  695. package/project-templates/threejs/.claude/hooks/README.md +120 -0
  696. package/project-templates/threejs/.claude/hooks/asr-coverage-validate.mjs +381 -0
  697. package/project-templates/threejs/.claude/hooks/block-developer-preflight.mjs +185 -0
  698. package/project-templates/threejs/.claude/hooks/block-ring1-tasklist.mjs +95 -0
  699. package/project-templates/threejs/.claude/hooks/gate-dispatcher.mjs +78 -0
  700. package/project-templates/threejs/.claude/hooks/gate-runner.mjs +557 -0
  701. package/project-templates/threejs/.claude/hooks/gate.mjs +171 -0
  702. package/project-templates/threejs/.claude/hooks/snapshot-milestone.mjs +247 -0
  703. package/project-templates/threejs/.claude/hooks/user-prompt.mjs +194 -0
  704. package/project-templates/threejs/.claude/hooks/validate-atom-tree-selection.mjs +281 -0
  705. package/project-templates/threejs/.claude/hooks/validate-workflow-stop.mjs +1889 -0
  706. package/project-templates/threejs/.claude/settings.json +81 -0
  707. package/project-templates/threejs/.claude/skills/brainstorming/SKILL.md +161 -0
  708. package/project-templates/threejs/.claude/skills/brainstorming/scripts/frame-template.html +270 -0
  709. package/project-templates/threejs/.claude/skills/brainstorming/scripts/helper.js +177 -0
  710. package/project-templates/threejs/.claude/skills/brainstorming/scripts/server.cjs +354 -0
  711. package/project-templates/threejs/.claude/skills/brainstorming/scripts/start-server.sh +148 -0
  712. package/project-templates/threejs/.claude/skills/brainstorming/scripts/stop-server.sh +56 -0
  713. package/project-templates/threejs/.claude/skills/brainstorming/scripts/wait-for-selection.sh +62 -0
  714. package/project-templates/threejs/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  715. package/project-templates/threejs/.claude/skills/brainstorming/visual-companion.md +309 -0
  716. package/project-templates/threejs/.claude/skills/playcraft-ad-psychology/SKILL.md +182 -0
  717. package/project-templates/threejs/.claude/skills/playcraft-art-style-guide/SKILL.md +123 -0
  718. package/project-templates/threejs/.claude/skills/playcraft-asset-state-sheet/SKILL.md +205 -0
  719. package/project-templates/threejs/.claude/skills/playcraft-audio-generation/SKILL.md +280 -0
  720. package/project-templates/threejs/.claude/skills/playcraft-batch-pipeline/SKILL.md +184 -0
  721. package/project-templates/threejs/.claude/skills/playcraft-build-optimizer/SKILL.md +306 -0
  722. package/project-templates/threejs/.claude/skills/playcraft-image-generation/SKILL.md +298 -0
  723. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +123 -0
  724. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +254 -0
  725. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +324 -0
  726. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +97 -0
  727. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +118 -0
  728. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +137 -0
  729. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +397 -0
  730. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +296 -0
  731. package/project-templates/threejs/.claude/skills/playcraft-image-ops/SKILL.md +122 -0
  732. package/project-templates/threejs/.claude/skills/playcraft-image-processing/SKILL.md +219 -0
  733. package/project-templates/threejs/.claude/skills/playcraft-masking/SKILL.md +373 -0
  734. package/project-templates/threejs/.claude/skills/playcraft-playable-optimization/SKILL.md +161 -0
  735. package/project-templates/threejs/.claude/skills/playcraft-research/SKILL.md +215 -0
  736. package/project-templates/threejs/.claude/skills/playcraft-skill-recommender/SKILL.md +331 -0
  737. package/project-templates/threejs/.claude/skills/playcraft-sprite-generation/SKILL.md +423 -0
  738. package/project-templates/threejs/.claude/skills/playcraft-sprite-remix/SKILL.md +158 -0
  739. package/project-templates/threejs/.claude/skills/playcraft-sprite-sheet/SKILL.md +100 -0
  740. package/project-templates/threejs/.claude/skills/playcraft-storyboard/SKILL.md +167 -0
  741. package/project-templates/threejs/.claude/skills/playcraft-style-qa/SKILL.md +270 -0
  742. package/project-templates/threejs/.claude/skills/playcraft-text-rendering/SKILL.md +236 -0
  743. package/project-templates/threejs/.claude/skills/playcraft-vfx-animation/SKILL.md +130 -0
  744. package/project-templates/threejs/.claude/skills/playwright-cli/SKILL.md +390 -0
  745. package/project-templates/threejs/.claude/skills/playwright-cli/references/element-attributes.md +23 -0
  746. package/project-templates/threejs/.claude/skills/playwright-cli/references/playwright-tests.md +39 -0
  747. package/project-templates/threejs/.claude/skills/playwright-cli/references/request-mocking.md +87 -0
  748. package/project-templates/threejs/.claude/skills/playwright-cli/references/running-code.md +240 -0
  749. package/project-templates/threejs/.claude/skills/playwright-cli/references/session-management.md +226 -0
  750. package/project-templates/threejs/.claude/skills/playwright-cli/references/spec-driven-testing.md +308 -0
  751. package/project-templates/threejs/.claude/skills/playwright-cli/references/storage-state.md +275 -0
  752. package/project-templates/threejs/.claude/skills/playwright-cli/references/test-generation.md +134 -0
  753. package/project-templates/threejs/.claude/skills/playwright-cli/references/tracing.md +142 -0
  754. package/project-templates/threejs/.claude/skills/playwright-cli/references/video-recording.md +153 -0
  755. package/project-templates/threejs/.claude/skills/session-analyzer/SKILL.md +386 -0
  756. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +182 -0
  757. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/find-turns.mjs +72 -0
  758. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/heavy-output.mjs +121 -0
  759. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/resolve-session.mjs +103 -0
  760. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +127 -0
  761. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +106 -0
  762. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/time-gaps.mjs +128 -0
  763. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +67 -0
  764. package/project-templates/threejs/.claude/snapshot.mjs +257 -0
  765. package/project-templates/threejs/.cursor/hooks.json +17 -0
  766. package/project-templates/threejs/.cursor/rules/playcraft-orchestrator.mdc +142 -0
  767. package/project-templates/threejs/.cursor/rules/playcraft-subagent-boundary.mdc +29 -0
  768. package/project-templates/threejs/.playcraft-engine +1 -0
  769. package/project-templates/threejs/CHANGELOG.md +105 -0
  770. package/project-templates/threejs/CLAUDE.md +84 -0
  771. package/project-templates/threejs/assets/audio/bgm/.gitkeep +0 -0
  772. package/project-templates/threejs/assets/audio/sfx/.gitkeep +0 -0
  773. package/project-templates/threejs/assets/bundles/.gitkeep +0 -0
  774. package/project-templates/threejs/assets/images/bg/.gitkeep +0 -0
  775. package/project-templates/threejs/assets/images/reference/.gitkeep +0 -0
  776. package/project-templates/threejs/assets/images/storyboard/.gitkeep +0 -0
  777. package/project-templates/threejs/assets/images/tiles/.gitkeep +0 -0
  778. package/project-templates/threejs/assets/images/ui/.gitkeep +0 -0
  779. package/project-templates/threejs/assets/images/vfx/.gitkeep +0 -0
  780. package/project-templates/threejs/assets/models/.gitkeep +0 -0
  781. package/project-templates/threejs/docs/DESIGN.md +65 -0
  782. package/project-templates/threejs/docs/intent-clarifications.md +58 -0
  783. package/project-templates/threejs/docs/pipeline-overview.md +69 -0
  784. package/project-templates/threejs/docs/project-state.md +211 -0
  785. package/project-templates/threejs/docs/scaffold-manifest.md +10 -0
  786. package/project-templates/threejs/docs/team/agent-conduct.md +67 -0
  787. package/project-templates/threejs/docs/team/agent-runtime-matrix.md +80 -0
  788. package/project-templates/threejs/docs/team/atom-tree-format.md +114 -0
  789. package/project-templates/threejs/docs/team/collaboration.md +391 -0
  790. package/project-templates/threejs/docs/team/core-model.md +85 -0
  791. package/project-templates/threejs/docs/team/game-designer-migration-todo.md +8 -0
  792. package/project-templates/threejs/docs/team/harness-legacy-deprecation.md +23 -0
  793. package/project-templates/threejs/docs/team/platform-capabilities.md +18 -0
  794. package/project-templates/threejs/docs/team/workflow-changelog.md +137 -0
  795. package/project-templates/threejs/docs/team/workflow-consistency-checklist.md +240 -0
  796. package/project-templates/threejs/focus-lab/.gitkeep +0 -0
  797. package/project-templates/threejs/game/config/.gitkeep +0 -0
  798. package/project-templates/threejs/game/config/game-config.ts +46 -0
  799. package/project-templates/threejs/game/contract/publish.ts +141 -0
  800. package/project-templates/threejs/game/contract/types.ts +34 -0
  801. package/project-templates/threejs/game/gameplay/.gitkeep +0 -0
  802. package/project-templates/threejs/game/index.ts +76 -0
  803. package/project-templates/threejs/game/runtime-contract.ts +15 -0
  804. package/project-templates/threejs/game/scenes/.gitkeep +0 -0
  805. package/project-templates/threejs/globals.d.ts +51 -0
  806. package/project-templates/threejs/index.css +34 -0
  807. package/project-templates/threejs/index.html +18 -0
  808. package/project-templates/threejs/main.ts +9 -0
  809. package/project-templates/threejs/package.json +79 -0
  810. package/project-templates/threejs/skills/README.md +52 -0
  811. package/project-templates/threejs/skills/_shared/agent-prep.md +136 -0
  812. package/project-templates/threejs/skills/_shared/requirements.txt +1 -0
  813. package/project-templates/threejs/skills/_shared/scripts/build-evidence-gate.mjs +87 -0
  814. package/project-templates/threejs/skills/_shared/scripts/context-budget.mjs +215 -0
  815. package/project-templates/threejs/skills/_shared/scripts/create-playable.mjs +140 -0
  816. package/project-templates/threejs/skills/_shared/scripts/dev-start.mjs +151 -0
  817. package/project-templates/threejs/skills/_shared/scripts/disclosure-config.mjs +480 -0
  818. package/project-templates/threejs/skills/_shared/scripts/ensure-project.mjs +532 -0
  819. package/project-templates/threejs/skills/_shared/scripts/gen-placeholder-audio.py +345 -0
  820. package/project-templates/threejs/skills/_shared/scripts/gen-placeholder.py +244 -0
  821. package/project-templates/threejs/skills/_shared/scripts/harness-smoke.mjs +257 -0
  822. package/project-templates/threejs/skills/_shared/scripts/lib/validator-artifacts.mjs +129 -0
  823. package/project-templates/threejs/skills/_shared/scripts/placeholder-pack-sheet.mjs +67 -0
  824. package/project-templates/threejs/skills/_shared/scripts/placeholder_audio_lib.py +142 -0
  825. package/project-templates/threejs/skills/_shared/scripts/placeholder_lib.py +993 -0
  826. package/project-templates/threejs/skills/_shared/scripts/render-project-state.mjs +278 -0
  827. package/project-templates/threejs/skills/_shared/scripts/ring-config.mjs +252 -0
  828. package/project-templates/threejs/skills/_shared/scripts/skills-check.mjs +176 -0
  829. package/project-templates/threejs/skills/_shared/scripts/slice-set.mjs +77 -0
  830. package/project-templates/threejs/skills/_shared/scripts/state-advance-ring.mjs +63 -0
  831. package/project-templates/threejs/skills/_shared/scripts/state-get.mjs +215 -0
  832. package/project-templates/threejs/skills/_shared/scripts/state-handoff.mjs +120 -0
  833. package/project-templates/threejs/skills/_shared/scripts/state-set.mjs +113 -0
  834. package/project-templates/threejs/skills/_shared/scripts/state-store.mjs +893 -0
  835. package/project-templates/threejs/skills/_shared/scripts/sync-template-skills.mjs +112 -0
  836. package/project-templates/threejs/skills/_shared/scripts/verify-asset-code-sync.mjs +265 -0
  837. package/project-templates/threejs/skills/_shared/scripts/verify-atom-conformance.mjs +181 -0
  838. package/project-templates/threejs/skills/_shared/scripts/verify-env.mjs +285 -0
  839. package/project-templates/threejs/skills/_shared/scripts/verify-placeholders.mjs +161 -0
  840. package/project-templates/threejs/skills/_shared/scripts/workflow-doctor.mjs +348 -0
  841. package/project-templates/threejs/skills/playable-animate/SKILL.md +52 -0
  842. package/project-templates/threejs/skills/playable-animate/agents/openai.yaml +4 -0
  843. package/project-templates/threejs/skills/playable-animate/references/board-refresh.md +30 -0
  844. package/project-templates/threejs/skills/playable-animate/references/diagnosis-checklist.md +25 -0
  845. package/project-templates/threejs/skills/playable-animate/references/entrance-sequencing.md +33 -0
  846. package/project-templates/threejs/skills/playable-animate/references/interaction-timing.md +23 -0
  847. package/project-templates/threejs/skills/playable-art/SKILL.md +203 -0
  848. package/project-templates/threejs/skills/playable-art/agents/openai.yaml +4 -0
  849. package/project-templates/threejs/skills/playable-art/references/alpha-postprocess.md +46 -0
  850. package/project-templates/threejs/skills/playable-art/references/cta-art-spec.md +59 -0
  851. package/project-templates/threejs/skills/playable-art/references/layout-proportions.md +30 -0
  852. package/project-templates/threejs/skills/playable-art/references/prompt-patterns.md +83 -0
  853. package/project-templates/threejs/skills/playable-art/references/reference-comparison.md +30 -0
  854. package/project-templates/threejs/skills/playable-art/references/sheet-import-v2.md +91 -0
  855. package/project-templates/threejs/skills/playable-art/scripts/build-atlas.py +332 -0
  856. package/project-templates/threejs/skills/playable-art/scripts/chroma-key.py +50 -0
  857. package/project-templates/threejs/skills/playable-art/scripts/extract-alpha-split.py +65 -0
  858. package/project-templates/threejs/skills/playable-art/scripts/extract-dual-bg-alpha.py +118 -0
  859. package/project-templates/threejs/skills/playable-art/scripts/import-gpt-art-sheets-v2.py +403 -0
  860. package/project-templates/threejs/skills/playable-art/scripts/import-gpt-art-sheets.py +280 -0
  861. package/project-templates/threejs/skills/playable-art/scripts/import-gpt-tile-sheet.py +114 -0
  862. package/project-templates/threejs/skills/playable-art/scripts/import_gpt_art_pipeline.py +321 -0
  863. package/project-templates/threejs/skills/playable-art/scripts/import_gpt_art_sheets_v2_test.py +126 -0
  864. package/project-templates/threejs/skills/playable-art/scripts/placeholder_common.py +98 -0
  865. package/project-templates/threejs/skills/playable-art/scripts/remove-bg.py +91 -0
  866. package/project-templates/threejs/skills/playable-art/scripts/review-processed-assets.py +468 -0
  867. package/project-templates/threejs/skills/playable-art/scripts/review_processed_assets_test.py +116 -0
  868. package/project-templates/threejs/skills/playable-art/scripts/verify-alpha-clean.py +105 -0
  869. package/project-templates/threejs/skills/playable-debug/SKILL.md +116 -0
  870. package/project-templates/threejs/skills/playable-debug/agents/openai.yaml +4 -0
  871. package/project-templates/threejs/skills/playable-debug/references/debug-config.md +40 -0
  872. package/project-templates/threejs/skills/playable-focus/SKILL.md +148 -0
  873. package/project-templates/threejs/skills/playable-focus/scripts/bootstrap-playground.mjs +84 -0
  874. package/project-templates/threejs/skills/playable-focus/scripts/extract-focus-frames.mjs +87 -0
  875. package/project-templates/threejs/skills/playable-focus/scripts/generate-focus-reports.mjs +121 -0
  876. package/project-templates/threejs/skills/playable-focus/scripts/playground.mjs +390 -0
  877. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/frame.html +39 -0
  878. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/harness/clean-stage.js +114 -0
  879. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/harness/frame-lab-scene.js +94 -0
  880. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/harness/particle-lab-scene.js +224 -0
  881. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/model.html +16 -0
  882. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/particle.html +38 -0
  883. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/shatter.html +47 -0
  884. package/project-templates/threejs/skills/playable-fx-decompose/SKILL.md +212 -0
  885. package/project-templates/threejs/skills/playable-fx-decompose/examples.md +89 -0
  886. package/project-templates/threejs/skills/playable-fx-decompose/reference.md +201 -0
  887. package/project-templates/threejs/skills/playable-fx-decompose/requirements.txt +2 -0
  888. package/project-templates/threejs/skills/playable-fx-decompose/scripts/build-blank-tile-crack.py +192 -0
  889. package/project-templates/threejs/skills/playable-fx-decompose/scripts/fix-shard-debris-frames.py +60 -0
  890. package/project-templates/threejs/skills/playable-fx-decompose/scripts/generate-shard-debris.py +276 -0
  891. package/project-templates/threejs/skills/playable-fx-peak/SKILL.md +237 -0
  892. package/project-templates/threejs/skills/playable-fx-peak/requirements.txt +2 -0
  893. package/project-templates/threejs/skills/playable-fx-peak/scripts/fix-frame-edges.py +70 -0
  894. package/project-templates/threejs/skills/playable-fx-peak/scripts/repack-frame-sequence.py +526 -0
  895. package/project-templates/threejs/skills/playable-fx-peak/scripts/validate-frame-anchors.py +130 -0
  896. package/project-templates/threejs/skills/playable-placeholder/SKILL.md +239 -0
  897. package/project-templates/threejs/skills/playable-record/SKILL.md +166 -0
  898. package/project-templates/threejs/skills/playable-record/scripts/lib/build-artifact.mjs +92 -0
  899. package/project-templates/threejs/skills/playable-record/scripts/lib/dev-server.mjs +104 -0
  900. package/project-templates/threejs/skills/playable-record/scripts/lib/record-audio-bridge.js +141 -0
  901. package/project-templates/threejs/skills/playable-record/scripts/lib/slice-structure-verify.mjs +199 -0
  902. package/project-templates/threejs/skills/playable-record/scripts/record-playable.mjs +583 -0
  903. package/project-templates/threejs/skills/playable-record/scripts/verify-build.mjs +185 -0
  904. package/project-templates/threejs/skills/playable-record/scripts/verify-contract.mjs +261 -0
  905. package/project-templates/threejs/skills/playable-record/scripts/verify-firstwin.mjs +398 -0
  906. package/project-templates/threejs/skills/playable-record/scripts/verify-fusion.mjs +320 -0
  907. package/project-templates/threejs/skills/playable-record/scripts/verify-lifecycle.mjs +78 -0
  908. package/project-templates/threejs/skills/playable-record/scripts/verify-slice-artist.mjs +53 -0
  909. package/project-templates/threejs/skills/playable-record/scripts/verify-slice-ta.mjs +53 -0
  910. package/project-templates/threejs/skills/playable-record/scripts/verify-slice.mjs +142 -0
  911. package/project-templates/threejs/skills/playable-record/scripts/verify-visual-ring.mjs +250 -0
  912. package/project-templates/threejs/skills/playable-record/scripts/verify-visual-ring1.mjs +190 -0
  913. package/project-templates/threejs/skills/playable-record/scripts/verify-vlm-video.mjs +227 -0
  914. package/project-templates/threejs/skills/playable-validate/SKILL.md +260 -0
  915. package/project-templates/threejs/skills/playable-validate/references/checklist-detail.md +36 -0
  916. package/project-templates/threejs/skills/playable-validate/references/single-html-bundle.md +76 -0
  917. package/project-templates/threejs/skills/playable-validate/validation-rules.md +200 -0
  918. package/project-templates/threejs/skills/playable-verify-ui/SKILL.md +295 -0
  919. package/project-templates/threejs/skills/playable-verify-ui/examples/asset-manifest.example.json +36 -0
  920. package/project-templates/threejs/skills/playable-verify-ui/examples/mahjong-match.profile.yaml +334 -0
  921. package/project-templates/threejs/skills/playable-verify-ui/profiles/template.profile.yaml +84 -0
  922. package/project-templates/threejs/skills/playable-verify-ui/reference.md +165 -0
  923. package/project-templates/threejs/skills/playable-verify-ui/references/phaser-patterns.md +67 -0
  924. package/project-templates/threejs/skills/playable-verify-ui/references/scaling-decision-tree.md +51 -0
  925. package/project-templates/threejs/skills/playable-verify-ui/requirements.txt +7 -0
  926. package/project-templates/threejs/skills/playable-verify-ui/schema/asset-manifest.schema.json +68 -0
  927. package/project-templates/threejs/skills/playable-verify-ui/schema/playable-ui-profile.schema.json +171 -0
  928. package/project-templates/threejs/skills/playable-verify-ui/scripts/asset_manifest.py +231 -0
  929. package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/__init__.py +1 -0
  930. package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/config_expr.js +218 -0
  931. package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/node_utils.js +51 -0
  932. package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/profile_loader.py +59 -0
  933. package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/report.py +106 -0
  934. package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/runtime_contract.js +116 -0
  935. package/project-templates/threejs/skills/playable-verify-ui/scripts/measure_frame_content.py +77 -0
  936. package/project-templates/threejs/skills/playable-verify-ui/scripts/run_all.py +265 -0
  937. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_asset_sizes.py +77 -0
  938. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_assets_present.py +62 -0
  939. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_atlas_budget.py +84 -0
  940. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_atlas_frames.py +79 -0
  941. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_bg_clean.py +365 -0
  942. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_doc_asset_sync.py +90 -0
  943. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +59 -0
  944. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_game_config_load.js +54 -0
  945. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +64 -0
  946. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_layout_regions.js +110 -0
  947. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_profile_schema.py +37 -0
  948. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_ring1_visual.py +211 -0
  949. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_runtime_contract.js +58 -0
  950. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_script_load_order.js +73 -0
  951. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_slice_plan.py +238 -0
  952. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_slice_plan_test.py +125 -0
  953. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_text_overlap.py +333 -0
  954. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_tile_consistency.py +323 -0
  955. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_vision_evidence.py +894 -0
  956. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_vision_evidence_test.py +122 -0
  957. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_visual.py +422 -0
  958. package/project-templates/threejs/ta-workspace/scripts/.gitkeep +0 -0
  959. package/project-templates/threejs/templates/artist-log.template.md +182 -0
  960. package/project-templates/threejs/templates/atom-tree.template.json +133 -0
  961. package/project-templates/threejs/templates/design-brief.template.md +92 -0
  962. package/project-templates/threejs/templates/design-lens-checklist.reference.md +117 -0
  963. package/project-templates/threejs/templates/design-methodology.md +99 -0
  964. package/project-templates/threejs/templates/design.template.md +50 -0
  965. package/project-templates/threejs/templates/developer-log.template.md +258 -0
  966. package/project-templates/threejs/templates/five-axis-framework.md +194 -0
  967. package/project-templates/threejs/templates/gen-placeholder-audio.template.mjs +63 -0
  968. package/project-templates/threejs/templates/gen-placeholders.template.mjs +81 -0
  969. package/project-templates/threejs/templates/intent-clarifications.template.md +58 -0
  970. package/project-templates/threejs/templates/layout-spec.template.md +198 -0
  971. package/project-templates/threejs/templates/plan.template.md +80 -0
  972. package/project-templates/threejs/templates/project-state.template.md +136 -0
  973. package/project-templates/threejs/templates/review-report.template.md +275 -0
  974. package/project-templates/threejs/templates/style-exploration.template.md +93 -0
  975. package/project-templates/threejs/templates/ta-log.template.md +394 -0
  976. package/project-templates/threejs/tsconfig.json +20 -0
  977. package/project-templates/threejs/vite.config.ts +27 -0
  978. package/dist/atom-plan/validate-atom-plan.js +0 -298
  979. package/project-template/.claude/agents/designer.md +0 -124
  980. package/project-template/.claude/agents/pm.md +0 -166
  981. package/project-template/.claude/agents/refs/designer-style-exploration-flow.md +0 -67
  982. package/project-template/.claude/agents/refs/pm-workflow-detail.md +0 -567
  983. package/project-template/.claude/hooks/validate-atom-plan.mjs +0 -224
  984. package/project-template/.claude/skills/playcraft-workflow/SKILL.md +0 -485
  985. package/project-template/docs/team/atom-plan-format.md +0 -173
  986. package/project-template/templates/atom-plan.template.json +0 -44
  987. package/project-template/templates/atom-plan.template.md +0 -108
  988. /package/dist/{atom-plan → asr}/validate-asr-coverage.js +0 -0
  989. /package/{project-template → engine-packs/phaser}/game/config/.gitkeep +0 -0
  990. /package/{project-template → engine-packs/phaser}/game/gameplay/.gitkeep +0 -0
  991. /package/{project-template → engine-packs/phaser}/game/scenes/.gitkeep +0 -0
  992. /package/project-template/.claude/agents/refs/{designer-art-style-catalog.md → artist-art-style-catalog.md} +0 -0
@@ -0,0 +1,110 @@
1
+ # Storyboard Generation Guide — MC 5-Panel 生产流程
2
+
3
+ > **用途**:Orchestrator 在 **ring 3 `loop: clarify`** spawn storyboard subagent 时注入的执行指南。Subagent 按本文件流程,通过 Skill tool 加载具体规范,完成 Master Composite 生产。
4
+ >
5
+ > **产出终点**:≥2 套 MC 选项 + `style-exploration.md` § Master Composite 写入 + `artist-log.md` § Image Production Preflight 填写完毕。
6
+
7
+ ## 输入(由 Orchestrator 提供或 subagent 自行读取)
8
+
9
+ | 文件 | 关注内容 |
10
+ | ---------------------- | ---------------------------------------------------------------------- |
11
+ | `docs/design-brief.md` | 游戏类型、核心玩法、目标受众、Hook 策略、Style Direction、元素类型 |
12
+ | `docs/DESIGN.md` | 玩家体验契约、Experience Flow、元素种类 |
13
+ | `docs/atom-tree.json` | `meta.selectedAtoms` 概览(了解哪些元素需要出现在 Panel 1)— if exists |
14
+
15
+ > **Note**: `layout-spec.md` does not exist yet at ring 3 MC generation. Element types and style direction come from `design-brief.md` and `DESIGN.md`.
16
+
17
+ ---
18
+
19
+ ## Step 1 — Image Production Preflight
20
+
21
+ **目标**:在生成任何图片前,系统性读取相关 Skills 并记录决策。
22
+
23
+ **操作**:
24
+
25
+ 1. 使用 Skill tool 依次加载以下 Skills,每个读完后在 `logs/artist-log.md` § **Image Production Preflight** 标记 ✓ 并写一行决策摘要:
26
+
27
+ | # | Skill | 重点阅读段落 | 决策内容 |
28
+ | --- | ---------------------------- | --------------------------------------- | ------------------------------------------ |
29
+ | 1 | `playcraft-storyboard` | §0 尺寸原则、§1 五格内容、§3 模型白名单 | 布局选择(横排/网格)、分辨率档位(2K/4K) |
30
+ | 2 | `playcraft-image-generation` | §3 模型选择决策树、§3.1 背景色幕策略 | 为 MC 选定模型(仅白名单内) |
31
+ | 3 | `playcraft-art-style-guide` | 9 风格决策树 | 为方案 A/B 各选定风格方向关键词 |
32
+ | 4 | `playcraft-ad-psychology` | Hook 类型 + 面板心理学映射 | Panel 2-5 的心理学策略选择 |
33
+
34
+ 2. 在 `artist-log.md` 中确认:
35
+ - 每个 Skill 行 ✓ + 决策摘要
36
+ - 从 `docs/design-brief.md` / `docs/DESIGN.md` 统计的元素类型列表
37
+
38
+ **禁止**:未完成 Preflight 就开始生成 MC。
39
+
40
+ ---
41
+
42
+ ## Step 2 — 生成 Master Composite(≥2 方案)
43
+
44
+ **目标**:产出至少 2 套不同风格方向的 5-panel MC,供用户在 **ring 3 Ring Gate** 选择。
45
+
46
+ **执行规范**(从 Skill 获得,此处仅为流程提示):
47
+
48
+ 1. **Prompt 构造**:
49
+ - 按 `playcraft-storyboard` §2 Prompt 公式结构
50
+ - Panel 1(concept panel):**必须包含 design-brief / DESIGN.md 中定义的所有 element type**
51
+ - Panels 2-5:根据 Step 1 选定的 Hook 心理学策略设计内容
52
+ - 游戏类型对应的 prompt 配方参考:`.claude/agents/refs/artist-master-composite-recipes.md`
53
+
54
+ 2. **生成参数**:
55
+ - 模型:**仅** `playcraft-storyboard` §3 白名单内(`mulerouter/gpt-image-2` 或 `mulerouter/nano-banana-2`)
56
+ - 尺寸:`--aspect-ratio 45:16 --width 3600 --height 1280`(2K)或 `--width 4096 --height 1455`(4K)
57
+ - 多方案差异来自 **prompt / 配色 / 构图 / 风格关键词**,不是换弱模型
58
+
59
+ 3. **生成后验收**(每张必做):
60
+
61
+ ```bash
62
+ playcraft image info --input assets/images/storyboard/master_composite_option_[X].png
63
+ ```
64
+
65
+ - 总宽高比 width/height ≈ **2.81**(45:16)
66
+ - 单格推算 (width÷5) : height ≈ **9:16**(0.5625)
67
+ - 不合格 → **必须重生成**
68
+
69
+ 4. **输出命名**:
70
+ ```
71
+ assets/images/storyboard/master_composite_option_A.png
72
+ assets/images/storyboard/master_composite_option_B.png
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Step 3 — 写入 style-exploration.md + 完成
78
+
79
+ **目标**:将 MC 成果写入项目文档,为 ring 3 Ring Gate 准备材料。
80
+
81
+ 1. 在 `docs/style-exploration.md` 的 **Master Composite** 部分写入:
82
+ - 每套方案的图片路径
83
+ - 风格关键词
84
+ - 体验流文字说明(5 panels 的叙事逻辑)
85
+ - **此时不写 ASR 路径**(ASR 是后续 Artist 的工作)
86
+
87
+ 2. 确认所有 MC 文件已生成 + 验收通过。
88
+
89
+ ---
90
+
91
+ ## 完成条件
92
+
93
+ | # | 检查项 | 标准 |
94
+ | --- | -------------------- | ------------------------------------------------------------ |
95
+ | 1 | Preflight | `artist-log.md` § Image Production Preflight 4 行 Skill 均 ✓ |
96
+ | 2 | MC 数量 | ≥2 方案(option_A + option_B 至少) |
97
+ | 3 | MC 比例 | 每张 `playcraft image info` 验证通过(≈2.81) |
98
+ | 4 | Panel 1 | 包含 design-brief / DESIGN.md 所有 element type(目视) |
99
+ | 5 | style-exploration.md | MC 部分已写入路径 + 风格 + 体验流 |
100
+ | 6 | 模型合规 | 仅使用白名单模型(带 `mulerouter/` 前缀) |
101
+
102
+ ---
103
+
104
+ ## 注意事项
105
+
106
+ - **不做 ASR** — 那是 Artist 在 ring 3 Ring Gate(MC 选定)后的工作
107
+ - **不做音频** — 那是 Artist Phase 2 的工作
108
+ - **不更新项目状态** — Orchestrator 负责通过 `npm run state:set` 做 handoff 更新
109
+ - **英文 prompt** — 所有图片生成 prompt 使用英文
110
+ - **JSON sidecar** — 生成后检查自动产生的 `.json` 文件,确认 aspectRatio/imageSize 正确
@@ -1,7 +1,7 @@
1
1
  # TA Atlas Deliverable Standard
2
2
 
3
- > **When**: `stage: production` branch in `technical-artist.md` § Runtime.
4
- > **Contract source**: `layout-spec.md` atlas groups + `assetMapping` (Gate #1 locked).
3
+ > **When**: ring 4 `loop: build` Wave 2 branch in `technical-artist.md` § Runtime.
4
+ > **Contract source**: `layout-spec.md` atlas groups + `assetMapping` (ring 2 layout-spec lock).
5
5
 
6
6
  ## Defaults
7
7
 
@@ -15,7 +15,7 @@
15
15
 
16
16
  ## Atlas grouping rules
17
17
 
18
- 1. Read PM's **atlas grouping table** in `layout-spec.md` (group name → elementIds → `atlasPath`).
18
+ 1. Read Game Designer's **atlas grouping table** in `layout-spec.md` (group name → elementIds → `atlasPath`).
19
19
  2. **≥2 elements in same group** → TA MUST deliver **one** `.webp` + `.json`; map each element via `frameId` in assetMapping.
20
20
  3. **Do not** split one group into scattered files.
21
21
  4. **Exceptions** (single file OK): full-screen background, digit strip, MC/ASR reference (non-runtime), animation-only atlases (one animation = one atlas).
@@ -28,7 +28,7 @@
28
28
  playcraft image convert --input atlas.png --output assets/images/tiles/tiles_atlas.webp --quality 85
29
29
  ```
30
30
  3. Validate sidecar JSON: frame count = element count in group; grid params in `ta-log.md`.
31
- 4. Audio: Designer MP3 → `playcraft audio compress/trim/loop/fade` → output **MP3**; verify with `playcraft audio info`.
31
+ 4. Audio: Artist MP3 → `playcraft audio compress/trim/loop/fade` → output **MP3**; verify with `playcraft audio info`.
32
32
 
33
33
  ## Transparency requirements
34
34
 
@@ -1,34 +1,38 @@
1
- # TA Pipeline Cookbook
1
+ ---
2
+ readWhen: 'Technical Artist Wave 2 only; read Step 0a first, then continue section by section'
3
+ ---
4
+
5
+ # TA (Technical Artist, 技术美术) Pipeline Cookbook
2
6
 
3
- > Read by Technical Artist at **production** Wave 2 entry (**Step 0a → 0 → 1 → 2** in order). **Prerequisite:** Production Pipeline Wave 1 (Designer Ph.2) = `done` — orchestrator invokes TA only after Designer wave completes.
7
+ > Read by Technical Artist at **production** Wave 2 entry (**Step 0a → 0 → 1 → 2** in order). **Prerequisite:** Production Pipeline Wave 1 (Artist Ph.2) = `done` — orchestrator invokes TA only after Artist wave completes.
4
8
 
5
9
  ## Step 0a — Upstream Intake (mandatory, before Skill Discovery)
6
10
 
7
- > **Purpose:** Understand what PM locked, what Designer delivered, and what Wave 1 added — without re-reading everything in four docs (PM/Designer keep them concise; narrative lives in style-exploration + designer-log).
11
+ > **Purpose:** Understand what Game Designer locked, what Artist delivered, and what Wave 1 added — without re-reading everything in four docs (Game Designer/Artist keep them concise; narrative lives in style-exploration + artist-log).
8
12
 
9
13
  Read each file (Read tool or shell), then fill **`logs/ta-log.md` § Upstream Intake** before any generation.
10
14
 
11
15
  ```bash
12
- cat docs/project-state.md # stage, gates, Pipeline waves, spec-gap
16
+ npm run state:get -- --json # current ring, gate route, Pipeline waves, spec-gap
13
17
  cat docs/design-brief.md # experience flow, Style Direction, gameplay — prompt + QA context
14
18
  cat docs/layout-spec.md # assetMapping, atlas groups, dimensions (contract)
15
- cat docs/atom-plan.json # assignTo: TA, dependsOn
16
- cat docs/atom-plan.md # TA Skill Context
19
+ cat docs/atom-tree.json # selectedAtoms + mediaGroups only; no execution status
20
+ cat docs/atom-tree.md # reading guide + mediaGroups decisions
17
21
  cat docs/style-exploration.md
18
- cat logs/designer-log.md
22
+ cat logs/artist-log.md
19
23
  ls assets/images/reference/ # MC + ASR paths
20
- ls assets/audio/ # Designer Ph.2 raw audio (if present)
24
+ ls assets/audio/ # Artist Ph.2 raw audio (if present)
21
25
  ```
22
26
 
23
- | Doc | You need from it (one line in ta-log) |
24
- | ------------------- | ---------------------------------------------------- |
25
- | `project-state` | Current wave, blockers, `selectedMcOption` |
26
- | `design-brief` | Hook→EndCard beats + Style Direction for completions |
27
- | `layout-spec` | Every path you must fill + atlas groups |
28
- | `atom-plan.json` | TA atom list + dependencies |
29
- | `atom-plan.md` | TA Skill Context |
30
- | `style-exploration` | Confirmed MC path + per-panel visual intent |
31
- | `designer-log` | Handoff Pack, Style Intent Notes, ASR inventory |
27
+ | Doc | You need from it (one line in ta-log) |
28
+ | ------------------- | ----------------------------------------------------------- |
29
+ | `project-state` | Current wave, blockers, `selectedMcOption` |
30
+ | `design-brief` | Hook→EndCard beats + Style Direction for completions |
31
+ | `layout-spec` | Every path you must fill + atlas groups |
32
+ | `atom-tree.json` | TA atom list + dependencies |
33
+ | `atom-tree.md` | Acceptance Criteria + reading guide + mediaGroups decisions |
34
+ | `style-exploration` | Confirmed MC path + per-panel visual intent |
35
+ | `artist-log` | Handoff Pack, Style Intent Notes, ASR inventory |
32
36
 
33
37
  **MUST NOT** start Step 0 Skill Discovery or Step 1 gap table until Upstream Intake rows are ticked.
34
38
 
@@ -36,11 +40,11 @@ ls assets/audio/ # Designer Ph.2 raw audio (if present)
36
40
 
37
41
  ## Step 0 Pre: mediaGroups Asset Reuse (mandatory, before any generation)
38
42
 
39
- > **Purpose:** `atom-plan.json` → `skillsMatch.mediaGroups` contains pre-matched reusable assets from the skills library. These assets have already been validated by PM's `playcraft skills match`. **TA MUST check and link available media assets before generating anything from scratch.**
43
+ > **Purpose:** `atom-tree.json` → `skillsMatch.mediaGroups` contains pre-matched reusable assets from the skills library. These assets are selected by temporary atom-selection / ref-flow, not Game Designer. **TA MUST check and link available media assets before generating anything from scratch.**
40
44
 
41
45
  ```bash
42
- # 1. Read mediaGroups from atom-plan.json
43
- cat docs/atom-plan.json | jq '.skillsMatch.mediaGroups'
46
+ # 1. Read mediaGroups from atom-tree.json
47
+ cat docs/atom-tree.json | jq '.meta.skillsMatch.mediaGroups'
44
48
  ```
45
49
 
46
50
  For each mediaGroup entry:
@@ -56,11 +60,7 @@ cp $(playcraft skills read <mediaGroup_atomId> --path) <assetMapping_path>
56
60
  ```
57
61
 
58
62
  3. **Post-process the linked asset** (resize, convert, transparency) — linked assets still need format compliance
59
- 4. **Update atom status** immediately:
60
-
61
- ```json
62
- { "atomId": "<id>", "status": "done", "actualOutput": "<assetMapping_path>" }
63
- ```
63
+ 4. **Update production handoff** immediately: record the linked output path in `logs/ta-log.md` and `handoffContext` for Developer. Do not write execution status or output paths into `atom-tree.json`.
64
64
 
65
65
  5. **If NOT matched or quality insufficient** — proceed to Step 0 Skill Discovery + Step 1 generation as normal; document reason in `dagRevisions`:
66
66
 
@@ -76,7 +76,7 @@ cp $(playcraft skills read <mediaGroup_atomId> --path) <assetMapping_path>
76
76
 
77
77
  ---
78
78
 
79
- ## Step 0 (Skill Discovery) → Enrich TA Skill Context
79
+ ## Step 0 (Skill Discovery)
80
80
 
81
81
  Before executing any atom, run two rounds of Skill Discovery:
82
82
 
@@ -100,10 +100,10 @@ playcraft skills list --category validator --json
100
100
 
101
101
  ### Part B — Atom Skill Recipe Read(生成参数提取)
102
102
 
103
- For every atom assigned to TA with a non-empty `skillRef` in `atom-plan.json` `atoms[]`, read its generation recipe:
103
+ For every atom assigned to TA with a non-empty `skillRef` in `atom-tree.json` `meta.selectedAtoms`, read its generation recipe:
104
104
 
105
105
  ```bash
106
- # Read generation recipe from PM-assigned skillRef
106
+ # Read generation recipe from Game Designer-assigned skillRef
107
107
  # Replace <skillRef> with the atom's skillRef value (e.g., jewel_tile.aiimage)
108
108
  playcraft skills scaffold <skillRef> --dry-run
109
109
  ```
@@ -121,11 +121,11 @@ playcraft skills scaffold jewel_tile.aiimage --dry-run
121
121
  # model: gpt-image-2
122
122
  # variants: blue sapphire / red ruby / green emerald / yellow topaz
123
123
 
124
- # Step 2: Generate using recipe prompt + Designer reference for style consistency
124
+ # Step 2: Generate using recipe prompt + Artist reference for style consistency
125
125
  playcraft tools generate-image \
126
126
  --prompt "isometric jewel tile, red ruby, faceted crystal, soft glow, game UI style" \
127
127
  --reference-image assets/images/storyboard/master_composite_option_<selectedMcOption>.png \ # style anchor
128
- --reference-image assets/images/tiles/tile_01.png \ # Designer's approved sample
128
+ --reference-image assets/images/tiles/tile_01.png \ # Artist's approved sample
129
129
  --aspect-ratio 1:1 \
130
130
  --image-model gpt-image-2 \ # recipe-recommended model
131
131
  --output assets/images/tiles/tile_02.png
@@ -133,24 +133,18 @@ playcraft tools generate-image \
133
133
 
134
134
  **Key principle**: The atom Skill provides the **semantic description** (what the element is); `--reference-image` enforces **visual style** (how it matches this project's look). Both are necessary.
135
135
 
136
- If `skillRef` is `—` or empty for an atom, skip Part B for that atom and rely on Designer's Style Intent Notes alone.
136
+ If `skillRef` is `—` or empty for an atom, skip Part B for that atom and rely on Artist's Style Intent Notes alone.
137
137
 
138
138
  ---
139
139
 
140
- ### Write findings into `docs/atom-plan.md` under `## TA Skill Context`
140
+ ### Optional: append concise findings into `docs/atom-tree.md` under `## Execution Context`
141
141
 
142
142
  ```markdown
143
143
  ### {{atom_id}} — {{slot_name}}
144
144
 
145
- - **Production approach**: (e.g., "derive from Designer sample using reference-image")
146
- - **Atom Skill recipe** (`skillRef: jewel_tile.aiimage`):
147
- - Base prompt template: "isometric jewel tile, {color} gemstone, faceted crystal, soft glow"
148
- - aspectRatio: 1:1
149
- - Recommended model: gpt-image-2
150
- - Variant directions: blue / red / green / yellow
151
- - **Matched pipeline Skills**: `playcraft-sprite-sheet` — sprite frame merging workflow
152
- - **Pipeline decision**: "generate 5 remaining tile colors using recipe prompt + master*composite_option*[X] / ASR crop reference"
153
- - **Candidate new Skill**: `mahjong_tile_set.aiimage` — full 34-tile batch production
145
+ - Production approach: derive from Artist sample using reference-image
146
+ - Watch Out: preserve recipe semantics, but let project style references dominate the final look
147
+ - Notes: generated remaining tile colors from recipe prompt + MC / ASR reference
154
148
  ```
155
149
 
156
150
  ---
@@ -208,8 +202,8 @@ cat .claude/skills/playcraft-sprite-generation/SKILL.md
208
202
  # Read the full expected asset list from layout-spec
209
203
  cat docs/layout-spec.md # assetMapping defines EVERY file that must exist
210
204
 
211
- # Check what Designer has already delivered
212
- cat logs/designer-log.md
205
+ # Check what Artist has already delivered
206
+ cat logs/artist-log.md
213
207
  ls assets/images/tiles/
214
208
  ls assets/images/bg/
215
209
  ls assets/images/ui/
@@ -225,7 +219,7 @@ cat docs/style-exploration.md # find confirmed option path
225
219
  # e.g., assets/images/storyboard/master_composite_option_<selectedMcOption>.png
226
220
 
227
221
  # Also use any approved samples as secondary references
228
- ls assets/images/tiles/ # Designer's samples
222
+ ls assets/images/tiles/ # Artist's samples
229
223
  ```
230
224
 
231
225
  ### Step 3: Complete Missing Elements
@@ -235,17 +229,17 @@ ls assets/images/tiles/ # Designer's samples
235
229
  **Prompt 来源优先级**(写 prompt 前先确认):
236
230
 
237
231
  1. **atom Skill recipe**(Step 0 Part B 已提取)— 有 skillRef → 用 recipe 的 prompt 模板,替换变量
238
- 2. **Designer Style Intent Notes**(`logs/designer-log.md`)— 无 skillRef 或 recipe 不够具体 → 从 Style Intent Notes 提炼
232
+ 2. **Artist Style Intent Notes**(`logs/artist-log.md`)— 无 skillRef 或 recipe 不够具体 → 从 Style Intent Notes 提炼
239
233
  3. **design-brief StyleDirection** — 兜底,最通用
240
234
 
241
235
  **少量元素(逐个生成)**:
242
236
 
243
237
  ```bash
244
- # prompt = atom Skill recipe 模板(已在 TA Skill Context 中提取)+ Designer style notes
238
+ # prompt = atom Skill recipe 模板(来自 atom-tree.md `Per-Skill Reading Notes`)+ Artist style notes
245
239
  playcraft tools generate-image \
246
240
  --prompt "<recipe base prompt, e.g.: isometric jewel tile, red ruby, faceted crystal, soft glow, game UI style>" \
247
241
  --reference-image assets/images/storyboard/master_composite_option_<selectedMcOption>.png \ # 风格锚定
248
- --reference-image assets/images/tiles/<designer_sample>.png \ # Designer 样本(若有)
242
+ --reference-image assets/images/tiles/<artist_sample>.png \ # Artist 样本(若有)
249
243
  --output assets/images/tiles/<new_element>.png \
250
244
  --aspect-ratio 1:1 \
251
245
  --image-model <recipe recommended model, e.g.: gpt-image-2>
@@ -255,24 +249,23 @@ playcraft tools generate-image \
255
249
 
256
250
  ```javascript
257
251
  // Write this to ta-workspace/scripts/gen-elements.mjs, then run: node ta-workspace/scripts/gen-elements.mjs
258
- import { execSync } from "child_process";
259
- import { existsSync, mkdirSync } from "fs";
252
+ import { execSync } from 'child_process';
253
+ import { existsSync, mkdirSync } from 'fs';
260
254
 
261
255
  // MODEL: from atom Skill recipe (Step 0 Part B) or fallback to gemini-flash
262
- const MODEL = "google/gemini-3.1-flash-image-preview";
263
- const REF =
264
- "assets/images/storyboard/master_composite_option_<selectedMcOption>.png";
265
- const REF2 = "assets/images/tiles/<designer_sample>.png"; // Designer approved sample (add if available)
266
- const OUT = "assets/images/tiles";
256
+ const MODEL = 'google/gemini-3.1-flash-image-preview';
257
+ const REF = 'assets/images/storyboard/master_composite_option_<selectedMcOption>.png';
258
+ const REF2 = 'assets/images/tiles/<artist_sample>.png'; // Artist approved sample (add if available)
259
+ const OUT = 'assets/images/tiles';
267
260
 
268
- // STYLE: atom Skill recipe base prompt (from TA Skill Context in atom-plan.md)
261
+ // STYLE: atom Skill recipe base prompt (from atom-tree.md `Per-Skill Reading Notes`)
269
262
  // e.g., "isometric jewel tile, {color} gemstone, faceted crystal surface, soft glow, game UI style"
270
263
  // Replace {color} / {variant} per element
271
- const BASE_PROMPT = "<atom Skill recipe base prompt from TA Skill Context>";
264
+ const BASE_PROMPT = '<atom Skill recipe base prompt from atom-tree.md Per-Skill Reading Notes>';
272
265
 
273
266
  const ELEMENTS = [
274
- { name: "element_01", variant: "<specific variant, e.g.: blue sapphire>" },
275
- { name: "element_02", variant: "<specific variant, e.g.: red ruby>" },
267
+ { name: 'element_01', variant: '<specific variant, e.g.: blue sapphire>' },
268
+ { name: 'element_02', variant: '<specific variant, e.g.: red ruby>' },
276
269
  // ... all elements to generate, using recipe variant directions
277
270
  ];
278
271
 
@@ -290,21 +283,18 @@ for (const el of ELEMENTS) {
290
283
  }
291
284
 
292
285
  console.log(`[GEN ] ${el.name}`);
293
- // prompt = BASE_PROMPT with variant filled in + Designer style anchor via --reference-image
294
- const prompt = BASE_PROMPT.replace("{variant}", el.variant).replace(
295
- "{color}",
296
- el.variant,
297
- );
286
+ // prompt = BASE_PROMPT with variant filled in + Artist style anchor via --reference-image
287
+ const prompt = BASE_PROMPT.replace('{variant}', el.variant).replace('{color}', el.variant);
298
288
  try {
299
289
  execSync(
300
290
  `playcraft tools generate-image` +
301
291
  ` --prompt "${prompt}"` +
302
292
  ` --output "${outPath}" --aspect-ratio 1:1` +
303
293
  ` --reference-image "${REF}"` +
304
- (existsSync(REF2) ? ` --reference-image "${REF2}"` : "") +
294
+ (existsSync(REF2) ? ` --reference-image "${REF2}"` : '') +
305
295
  ` --image-model "${MODEL}"` +
306
296
  ` --timeout 120`,
307
- { stdio: "inherit" },
297
+ { stdio: 'inherit' },
308
298
  );
309
299
  done++;
310
300
  } catch (e) {
@@ -413,7 +403,7 @@ playcraft image overlay \
413
403
  | 验证失败现象 | 根因 | 回退工具 |
414
404
  | -------------------------- | ------------------------------ | -------------------------------------------------------------------------- |
415
405
  | 色幕残留少量(边缘毛刺) | tolerance 偏低 | `remove-background --tolerance 40`(+15 递增重试) |
416
- | 色幕残留明显(大面积色块) | 素材色与色幕撞色 | **spec-gap** → PM 修改 bgStrategy → 用正确色幕重新生成 |
406
+ | 色幕残留明显(大面积色块) | 素材色与色幕撞色 | **spec-gap** → Game Designer 修改 bgStrategy → 用正确色幕重新生成 |
417
407
  | 复杂边缘/不规则形状 | floodfill 无法处理复杂轮廓 | `playcraft image segment --boxes '[[x1,y1,x2,y2]]'`(精确框选,SAM3 分割) |
418
408
  | 毛发/半透明/渐变边缘 | floodfill 是硬边缘算法 | `playcraft image remove-background --method ai`(AI 语义去背景) |
419
409
  | 去背过度(元素被挖掉) | tolerance 过高或素材含近色区域 | 降低 tolerance 到 15-20 → 仍不行则 `segment --boxes` |
@@ -455,6 +445,13 @@ playcraft image overlay \
455
445
 
456
446
  #### bgStrategy = full-coverage(全屏背景)
457
447
 
448
+ > **Asset layering contract (Ring 4 — mandatory, test11 B11):**
449
+ >
450
+ > - MC / storyboard panels are **reference only** — never crop an entire gameplay panel (board + HUD + fake buttons) into `assets/images/bg/*`.
451
+ > - Background = **clean plate** (gradient/atmosphere only). Generate separately or extract a **pure background region** without UI chrome.
452
+ > - Runtime z-order: `background < tiles < HUD < overlay`. Developer draws interactive HUD; background must not duplicate it.
453
+ > - Gate: `npm run verify:bg-clean` must pass before Ring 4 gate.
454
+
458
455
  ```bash
459
456
  playcraft image info --input <bg_asset>.png --json
460
457
  # 验证:尺寸精确匹配 layout-spec 要求
@@ -652,7 +649,7 @@ node ta-workspace/scripts/validate-sprite-sheet.mjs
652
649
 
653
650
  ### 3D Pipeline
654
651
 
655
- For material/texture swap while preserving symbols or 3D flip animations, see `refs/ta-3d-flip-recipe.md`.
652
+ For material/texture swap while preserving symbols or 3D flip animations, see `.claude/agents/refs/ta-3d-flip-recipe.md`.
656
653
 
657
654
  **Option A: AI 3D Model Generation**
658
655
 
@@ -725,48 +722,48 @@ playcraft audio info --input assets/audio/bgm/bgm.mp3
725
722
 
726
723
  ## TA agent workflow (L1 → L2 detail)
727
724
 
728
- > **Moved from `agents/technical-artist.md`** — Spec Quick-Check through Compliance Gate, reference-image matrix, DAG edits. **Atlas/WebP defaults:** see `refs/ta-atlas-deliverable-standard.md`.
725
+ > **Moved from `agents/technical-artist.md`** — Spec Quick-Check through Compliance Gate, reference-image matrix, DAG edits. **Atlas/WebP defaults:** see `.claude/agents/refs/ta-atlas-deliverable-standard.md`.
729
726
 
730
727
  ### Step 0: Spec Quick-Check (30s)
731
728
 
732
729
  Validate inputs before any work:
733
730
 
734
- - Every `assetMapping` entry has clear size/format requirements → if gaps: `spec-gap` in project-state.md
735
- - `logs/designer-log.md` exists with Composite path + Style Intent Notes → if missing: `blocked`
731
+ - Every `assetMapping` entry has clear size/format requirements → if gaps: set `block_reason=spec-gap` + routed `next_orchestrator_action` via `npm run state:set`
732
+ - `logs/artist-log.md` exists with Composite path + Style Intent Notes → if missing: `blocked`
736
733
 
737
734
  ### Step 0b: Extract Representative Samples
738
735
 
739
736
  > **Invoke `playcraft-masking` skill** for segment/remove-background decision tree.
740
737
 
741
- Designer's **ASR sheets** (UI + element state reference) contain **representative states** (2-3 per type), not full sets. Your job:
738
+ Artist's **ASR sheets** (UI + element state reference) contain **representative states** (2-3 per type), not full sets. Your job:
742
739
 
743
740
  1. From **ASR** (preferred): `crop` each state slot → `resize` to spec → these become your `--reference-image` for Stage A batch generation
744
741
  2. From **Master Composite** (fallback): extract elements not covered in ASR
745
- 3. Check `designer-log.md` § **ASR Coverage Matrix** — note which states are covered vs which need expansion; Sheet grid metadata table at the top has `rows × cols + cell W×H + padding` for pixel-coordinate computation
742
+ 3. Check `artist-log.md` § **ASR Coverage Matrix** — note which states are covered vs which need expansion; Sheet grid metadata table at the top has `rows × cols + cell W×H + padding` for pixel-coordinate computation
746
743
  4. Background: generate clean bg using composite as `--reference-image`
747
744
  5. Text assets: → **invoke `playcraft-text-rendering` skill**
748
- 6. Representative quality insufficient → ICP request to Designer for supplementary samples
745
+ 6. Representative quality insufficient → ICP request to Artist for supplementary samples
749
746
 
750
- **若 ASR crop 后不可抠**(白边/色幕残留/元素截断/格内场景底)→ **`routeTo: designer`** 重生成 ASR 对应格;**不要** TA 自行用 AI 重画整张 ASR。
747
+ **若 ASR crop 后不可抠**(白边/色幕残留/元素截断/格内场景底)→ **`routeTo: artist`** 重生成 ASR 对应格;**不要** TA 自行用 AI 重画整张 ASR。
751
748
 
752
749
  **ASR 提取方法(按优先级)**:
753
750
 
754
- > ⚠️ **严禁对 ASR 网格布局图使用纯 text prompt 的 segment!** 使用 `designer-log` 中的槽位坐标 + `crop`。
751
+ > ⚠️ **严禁对 ASR 网格布局图使用纯 text prompt 的 segment!** 使用 `artist-log` 中的槽位坐标 + `crop`。
755
752
 
756
- **优先路径:直接读 `atom-plan.json` → `atoms[].asrSlot`(最高优先级)**
753
+ **优先路径:直接读 `atom-tree.json` → `meta.selectedAtoms.asrSlot`(最高优先级)**
757
754
 
758
- Designer 在 Phase 1 完成 ASR 后会把每个 VisualAtom 的网格坐标写到 `atom-plan.json` → `atoms[i].asrSlot: { sheet, row, col }`(详见 [`docs/team/atom-plan-format.md` § `asrSlot`](../../../docs/team/atom-plan-format.md#asrslot-字段可选--visualatom-基线绑定))。TA 直接用这个字段 + `designer-log` § Sheet grid metadata,省去手翻 Coverage Matrix 的步骤:
755
+ Artist 在 Phase 1 完成 ASR 后会把每个 VisualAtom 的网格坐标写到 `atom-tree.json` → `atoms[i].asrSlot: { sheet, row, col }`(详见 [`docs/team/atom-tree-format.md` § `asrSlot`](../../../docs/team/atom-tree-format.md#asrslot-字段可选--visualatom-基线绑定))。TA 直接用这个字段 + `artist-log` § Sheet grid metadata,省去手翻 Coverage Matrix 的步骤:
759
756
 
760
757
  ```bash
761
- # 1) 从 atom-plan.json 读取所有有 asrSlot 的 VisualAtom
762
- cat docs/atom-plan.json | jq -r '
763
- .atoms[]
758
+ # 1) 从 atom-tree.json 读取所有有 asrSlot 的 VisualAtom
759
+ cat docs/atom-tree.json | jq -r '
760
+ .meta.selectedAtoms
764
761
  | select(.asrSlot != null)
765
762
  | "\(.atomId)\t\(.asrSlot.sheet)\t\(.asrSlot.row)\t\(.asrSlot.col)"
766
763
  '
767
764
  # 输出格式: <atomId>\t<sheet>\t<row>\t<col>
768
765
 
769
- # 2) 从 designer-log.md § ASR Coverage Matrix § Sheet grid metadata 读 cellW / cellH / padding
766
+ # 2) 从 artist-log.md § ASR Coverage Matrix § Sheet grid metadata 读 cellW / cellH / padding
770
767
  # (单独读一次,缓存到 ta-log 备查)
771
768
 
772
769
  # 3) 计算像素坐标并 crop(脚本化 — ta-workspace/scripts/asr-extract.mjs)
@@ -783,11 +780,11 @@ cat docs/atom-plan.json | jq -r '
783
780
 
784
781
  ```
785
782
  ASR 是已知网格布局?(ui_state_sheet / element_state_sheet / element_state_sheet_*_2,行列分明)
786
- ├─ atom-plan.json 有 asrSlot 字段 → 方法 0(推荐): 上面脚本化批量 crop
783
+ ├─ atom-tree.json 有 asrSlot 字段 → 方法 0(推荐): 上面脚本化批量 crop
787
784
  │
788
785
  ├─ 是但 asrSlot 缺失 → 方法 1: crop 直切(手动查 Coverage Matrix R#C#)
789
786
  │ 1. playcraft image info --input assets/images/reference/ui_state_sheet_<X>.png → 获取尺寸
790
- │ 2. 从 designer-log § ASR Coverage Matrix 读取 Sheet grid 元数据 + 目标行列 (R#C#)
787
+ │ 2. 从 artist-log § ASR Coverage Matrix 读取 Sheet grid 元数据 + 目标行列 (R#C#)
791
788
  │ pixel coords: x = (C-1) × (cellW + padding) + padding
792
789
  │ y = (R-1) × (cellH + padding) + padding
793
790
  │ 3. playcraft image crop --input <asr_sheet> --x <x> --y <y> --width <cellW> --height <cellH> --output <out>
@@ -799,7 +796,7 @@ ASR 是已知网格布局?(ui_state_sheet / element_state_sheet / element_st
799
796
  └─ 仅 MC 有该类型 → 方法 3: decompose-layers 或 segment --text(最后手段,见 playcraft-masking)
800
797
  ```
801
798
 
802
- > **若 Designer 没有填 `asrSlot`** — 不需要重新 invoke Designer,TA 可以手动从 `designer-log § ASR Coverage Matrix § Coverage` 反查 R#C# 并继续。在 ICP 中提示 PM/Designer 下次预填可加速。
799
+ > **若 Artist 没有填 `asrSlot`** — 不需要重新 invoke Artist,TA 可以手动从 `artist-log § ASR Coverage Matrix § Coverage` 反查 R#C# 并继续。在 ICP 中提示 Game Designer/Artist 下次预填可加速。
803
800
 
804
801
  **常见踩坑**:
805
802
 
@@ -812,7 +809,7 @@ ASR 是已知网格布局?(ui_state_sheet / element_state_sheet / element_st
812
809
 
813
810
  > **Invoke `playcraft-style-qa` skill** for methodology.
814
811
 
815
- Read designer-log Style Intent Notes → write interpretation table to `ta-log.md` → confidence low = blocked, medium = proceed with caution, high = proceed.
812
+ Read artist-log Style Intent Notes → write interpretation table to `ta-log.md` → confidence low = blocked, medium = proceed with caution, high = proceed.
816
813
 
817
814
  ### Step 0d: Production Plan (mandatory, before any generation)
818
815
 
@@ -856,7 +853,7 @@ assetMapping 路径所在目录?
856
853
  └─ 其他路径 → 按素材用途判断:叠加在其他图层上 = true,独立全屏 = false
857
854
  ```
858
855
 
859
- **卡牌/棋子等矩形实体例外**:虽然路径在 `tiles/`,但白色牌面是资产本体的一部分,不需要透明。TA 根据 `design-brief` 的 Style Direction + `designer-log` 的样本判断。
856
+ **卡牌/棋子等矩形实体例外**:虽然路径在 `tiles/`,但白色牌面是资产本体的一部分,不需要透明。TA 根据 `design-brief` 的 Style Direction + `artist-log` 的样本判断。
860
857
 
861
858
  #### 2. 从元素色彩推导 bgStrategy(色幕选型)
862
859
 
@@ -864,7 +861,7 @@ assetMapping 路径所在目录?
864
861
 
865
862
  - `layout-spec.md` 的 Color Palette(elementId → hex color)
866
863
  - `design-brief.md` 的 Style Direction(整体色温描述)
867
- - `designer-log.md` 的样本(实际视觉参考)
864
+ - `artist-log.md` 的样本(实际视觉参考)
868
865
 
869
866
  **色幕选型矩阵**:
870
867
 
@@ -1016,14 +1013,14 @@ done
1016
1013
 
1017
1014
  ### Step 1: Skill Discovery
1018
1015
 
1019
- - Part A: `playcraft skills list/match` → find pipeline Skills → write to atom-plan `## TA Skill Context`
1016
+ - Part A: `playcraft skills list/match` → find pipeline Skills → optionally append concise notes to `atom-tree.md` `Execution Context`
1020
1017
  - Part B: `playcraft skills scaffold <skillRef> --dry-run` for each atom → extract prompt/model params
1021
1018
  (See **Step 0** above for bash examples.)
1022
1019
 
1023
1020
  ### Pipeline model (E → T → A → B → C → D)
1024
1021
 
1025
1022
  ```
1026
- Gate #2 → TA starts
1023
+ Ring 3 style lock → TA starts
1027
1024
  │
1028
1025
  ├─ 0a: Upstream Intake
1029
1026
  ├─ 0b: Extract (E) — decompose-layers or segment references from composites
@@ -1033,32 +1030,32 @@ Gate #2 → TA starts
1033
1030
  │
1034
1031
  ├─ T: Transparency-aware generation (Step 1 with correct chroma key per 0e table)
1035
1032
  │ │
1036
- │ ├─ C₁: generate-3d (if referenceSource="designer-sample")
1033
+ │ ├─ C₁: generate-3d (if referenceSource="artist-sample")
1037
1034
  │ │
1038
1035
  │ ├─ A: Batch Element Generation (sprite sheet per type, chroma key per 0e)
1039
1036
  │ │ │
1040
1037
  │ │ ├──→ B: animate / sprite-sheet / use-vfx (VFX always blue screen)
1041
1038
  │ │ └──→ C₂: apply-texture (if referenceSource="ta-completion")
1042
1039
  │ │
1043
- │ └─ (extraction insufficient → ICP → Designer supplementary)
1040
+ │ └─ (extraction insufficient → ICP → Artist supplementary)
1044
1041
  │
1045
1042
  ├─ Step 4: Process (remove-bg per chroma → dark-bg verify each asset)
1046
1043
  │
1047
- ├─ D: Audio post-processing (independent, waits for Designer Ph.2 audio)
1044
+ ├─ D: Audio post-processing (independent, waits for Artist Ph.2 audio)
1048
1045
  │
1049
1046
  └─ All done → Compliance Gate (incl. Transparency checks)
1050
1047
  ```
1051
1048
 
1052
1049
  ### Pipeline selection (quick)
1053
1050
 
1054
- | Situation | Pipeline | Skill/Ref |
1055
- | ---------------------------------- | ------------------------------- | ----------------------------- |
1056
- | Multi-element batch (>3 same type) | Sprite sheet one-shot → split | `playcraft-sprite-generation` |
1057
- | Add animation to static element | animate presets → sprite-sheet | `playcraft-vfx-animation` |
1058
- | Add VFX (glow/particle/trail) | use-vfx presets | `playcraft-vfx-animation` |
1059
- | 3D model + texture | generate-3d → apply-texture | `refs/ta-3d-flip-recipe.md` |
1060
- | Color/mood shift only | Image processing (tint/overlay) | `playcraft-image-ops` |
1061
- | Background removal | floodfill / AI / SAM3 | `playcraft-masking` |
1051
+ | Situation | Pipeline | Skill/Ref |
1052
+ | ---------------------------------- | ------------------------------- | ------------------------------------------ |
1053
+ | Multi-element batch (>3 same type) | Sprite sheet one-shot → split | `playcraft-sprite-generation` |
1054
+ | Add animation to static element | animate presets → sprite-sheet | `playcraft-vfx-animation` |
1055
+ | Add VFX (glow/particle/trail) | use-vfx presets | `playcraft-vfx-animation` |
1056
+ | 3D model + texture | generate-3d → apply-texture | `.claude/agents/refs/ta-3d-flip-recipe.md` |
1057
+ | Color/mood shift only | Image processing (tint/overlay) | `playcraft-image-ops` |
1058
+ | Background removal | floodfill / AI / SAM3 | `playcraft-masking` |
1062
1059
 
1063
1060
  ### Stage A: Batch Element Generation
1064
1061
 
@@ -1081,14 +1078,14 @@ Triggered per Stage A output that needs animation. Output: sprite sheet with gri
1081
1078
 
1082
1079
  ### Stage C: 3D Pipeline
1083
1080
 
1084
- > **Read `refs/ta-3d-flip-recipe.md`** for material reskin and 3D flip workflows.
1081
+ > **Read `.claude/agents/refs/ta-3d-flip-recipe.md`** for material reskin and 3D flip workflows.
1085
1082
 
1086
- - C₁ (referenceSource="designer-sample"): starts immediately after extraction
1083
+ - C₁ (referenceSource="artist-sample"): starts immediately after extraction
1087
1084
  - C₂ (referenceSource="ta-completion"): waits for Stage A output
1088
1085
 
1089
1086
  ### Stage D: Audio Post-Processing
1090
1087
 
1091
- Independent track, waits only for Designer Ph.2 audio delivery:
1088
+ Independent track, waits only for Artist Ph.2 audio delivery:
1092
1089
 
1093
1090
  - `playcraft audio compress/trim/loop/fade` as needed per layout-spec requirements
1094
1091
  - Record all processing in `ta-log.md`
@@ -1124,7 +1121,7 @@ Independent track, waits only for Designer Ph.2 audio delivery:
1124
1121
  | 背景图四角有白色/褪色 | prompt 未约束 edge-to-edge | prompt 加 "full bleed, edge to edge, no vignette" |
1125
1122
  | 文字/数字图底色未去除 | 未分类为"需要透明",直接 resize 交付 | 回查 Transparency Classification → 补做去背景流程 |
1126
1123
 
1127
- **After compliance**: Write `logs/ta-log.md` manifest → mark atoms `✅ done` → update project-state.md.
1124
+ **After compliance**: Write `logs/ta-log.md` manifest → mark atoms `✅ done` → update state with `npm run state:set`.
1128
1125
 
1129
1126
  ### Reference image rules
1130
1127
 
@@ -0,0 +1,14 @@
1
+ # Technical Artist Legacy Fallback
2
+
3
+ Use this reference only when `dispatchPacket` is null and `sliceState` is empty.
4
+
5
+ This preserves the older production asset path for existing projects. It is not part of slice-axis dispatch.
6
+
7
+ Legacy behavior:
8
+
9
+ - Read `npm run state:get -- --json` and follow the disclosed current action.
10
+ - Complete upstream intake before production asset work.
11
+ - Produce asset readiness, manifests, and compliance evidence requested by the legacy task.
12
+ - Route missing design, Artist, or Developer inputs instead of inventing them.
13
+
14
+ When `sliceState` exists, return to the main Technical Artist role contract.