@playcraft/cli 0.0.43 → 0.0.46

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 (996) 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 +13 -7
  6. package/dist/commands/create.js +774 -50
  7. package/dist/commands/image.js +11 -0
  8. package/dist/commands/prad.js +3 -3
  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/check.test.js +23 -1
  17. package/dist/prad/skills-index.js +1 -1
  18. package/dist/remix/init-template.js +80 -0
  19. package/dist/scaffold/compose.js +211 -0
  20. package/engine-packs/phaser/game/adapters/phaser.ts +52 -0
  21. package/engine-packs/phaser/game/config/game-config.ts +46 -0
  22. package/engine-packs/phaser/game/contract/publish.ts +141 -0
  23. package/engine-packs/phaser/game/contract/types.ts +34 -0
  24. package/engine-packs/phaser/game/index.ts +81 -0
  25. package/engine-packs/phaser/game/runtime-contract.ts +28 -0
  26. package/engine-packs/phaser/manifest.json +1 -0
  27. package/engine-packs/phaser/package.deps.json +1 -0
  28. package/engine-packs/threejs/game/config/game-config.ts +46 -0
  29. package/engine-packs/threejs/game/contract/publish.ts +141 -0
  30. package/engine-packs/threejs/game/contract/types.ts +34 -0
  31. package/engine-packs/threejs/game/index.ts +76 -0
  32. package/engine-packs/threejs/game/runtime-contract.ts +15 -0
  33. package/engine-packs/threejs/manifest.json +1 -0
  34. package/engine-packs/threejs/package.deps.json +8 -0
  35. package/package.json +18 -4
  36. package/project-template/.claude/agents/artist.md +101 -0
  37. package/project-template/.claude/agents/developer.md +90 -93
  38. package/project-template/.claude/agents/game-designer.md +192 -0
  39. package/project-template/.claude/agents/refs/README.md +57 -51
  40. package/project-template/.claude/agents/refs/{designer-color-audio-recipes.md → artist-color-audio-recipes.md} +2 -2
  41. package/project-template/.claude/agents/refs/{designer-deliverable-spec.md → artist-deliverable-spec.md} +57 -57
  42. package/project-template/.claude/agents/refs/{designer-dimension-axis.md → artist-dimension-axis.md} +5 -5
  43. package/project-template/.claude/agents/refs/{designer-handoff-v2-checklist.md → artist-handoff-v2-checklist.md} +15 -15
  44. package/project-template/.claude/agents/refs/artist-legacy-fallback.md +14 -0
  45. package/project-template/.claude/agents/refs/{designer-master-composite-recipes.md → artist-master-composite-recipes.md} +3 -3
  46. package/project-template/.claude/agents/refs/artist-style-exploration-flow.md +55 -0
  47. package/project-template/.claude/agents/refs/developer-dev-handoff.md +83 -40
  48. package/project-template/.claude/agents/refs/developer-impl-cookbook.md +365 -67
  49. package/project-template/.claude/agents/refs/developer-legacy-fallback.md +15 -0
  50. package/project-template/.claude/agents/refs/developer-phase1-flow.md +131 -85
  51. package/project-template/.claude/agents/refs/framework-5-component-filter.md +252 -0
  52. package/project-template/.claude/agents/refs/framework-game-feel-juice.md +266 -0
  53. package/project-template/.claude/agents/refs/framework-mda.md +147 -0
  54. package/project-template/.claude/agents/refs/game-designer-gameplay-sufficiency.md +123 -0
  55. package/project-template/.claude/agents/refs/game-designer-legacy-fallback.md +15 -0
  56. package/project-template/.claude/agents/refs/game-designer-workflow-detail.md +69 -0
  57. package/project-template/.claude/agents/refs/implementation-plan-guide.md +316 -0
  58. package/project-template/.claude/agents/refs/reviewer-convergence-eval.md +247 -33
  59. package/project-template/.claude/agents/refs/reviewer-legacy-fallback.md +14 -0
  60. package/project-template/.claude/agents/refs/skill-selector-guide.md +465 -0
  61. package/project-template/.claude/agents/refs/skill-value-layers.md +145 -0
  62. package/project-template/.claude/agents/refs/storyboard-generation-guide.md +110 -0
  63. package/project-template/.claude/agents/refs/ta-atlas-deliverable-standard.md +4 -4
  64. package/project-template/.claude/agents/refs/ta-pipeline-cookbook.md +101 -104
  65. package/project-template/.claude/agents/refs/technical-artist-legacy-fallback.md +14 -0
  66. package/project-template/.claude/agents/reviewer.md +81 -95
  67. package/project-template/.claude/agents/technical-artist.md +71 -95
  68. package/project-template/.claude/hooks/README.md +83 -35
  69. package/project-template/.claude/hooks/asr-coverage-validate.mjs +19 -19
  70. package/project-template/.claude/hooks/block-developer-preflight.mjs +185 -0
  71. package/project-template/.claude/hooks/block-ring1-tasklist.mjs +95 -0
  72. package/project-template/.claude/hooks/gate-dispatcher.mjs +78 -0
  73. package/project-template/.claude/hooks/gate-runner.mjs +557 -0
  74. package/project-template/.claude/hooks/gate.mjs +170 -0
  75. package/project-template/.claude/hooks/snapshot-milestone.mjs +246 -0
  76. package/project-template/.claude/hooks/user-prompt.mjs +193 -0
  77. package/project-template/.claude/hooks/validate-atom-tree-selection.mjs +281 -0
  78. package/project-template/.claude/hooks/validate-workflow-stop.mjs +1535 -95
  79. package/project-template/.claude/settings.json +54 -9
  80. package/project-template/.claude/skills/brainstorming/SKILL.md +161 -0
  81. package/project-template/.claude/skills/brainstorming/scripts/frame-template.html +270 -0
  82. package/project-template/.claude/skills/brainstorming/scripts/helper.js +177 -0
  83. package/project-template/.claude/skills/brainstorming/scripts/server.cjs +354 -0
  84. package/project-template/.claude/skills/brainstorming/scripts/start-server.sh +148 -0
  85. package/project-template/.claude/skills/brainstorming/scripts/stop-server.sh +56 -0
  86. package/project-template/.claude/skills/brainstorming/scripts/wait-for-selection.sh +62 -0
  87. package/project-template/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  88. package/project-template/.claude/skills/brainstorming/visual-companion.md +309 -0
  89. package/project-template/.claude/skills/playcraft-ad-psychology/SKILL.md +3 -3
  90. package/project-template/.claude/skills/playcraft-art-style-guide/SKILL.md +3 -3
  91. package/project-template/.claude/skills/playcraft-asset-state-sheet/SKILL.md +35 -25
  92. package/project-template/.claude/skills/playcraft-audio-generation/SKILL.md +15 -15
  93. package/project-template/.claude/skills/playcraft-build-optimizer/SKILL.md +5 -5
  94. package/project-template/.claude/skills/playcraft-image-generation/SKILL.md +5 -5
  95. package/project-template/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +5 -5
  96. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +116 -27
  97. package/project-template/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +1 -1
  98. package/project-template/.claude/skills/playcraft-image-processing/SKILL.md +219 -0
  99. package/project-template/.claude/skills/playcraft-playable-optimization/SKILL.md +161 -0
  100. package/project-template/.claude/skills/playcraft-research/SKILL.md +24 -21
  101. package/project-template/.claude/skills/playcraft-skill-recommender/SKILL.md +331 -0
  102. package/project-template/.claude/skills/playcraft-sprite-generation/SKILL.md +48 -48
  103. package/project-template/.claude/skills/playcraft-sprite-remix/SKILL.md +158 -0
  104. package/project-template/.claude/skills/playcraft-sprite-sheet/SKILL.md +100 -0
  105. package/project-template/.claude/skills/playcraft-storyboard/SKILL.md +4 -4
  106. package/project-template/.claude/skills/playcraft-style-qa/SKILL.md +45 -45
  107. package/project-template/.claude/skills/playcraft-text-rendering/SKILL.md +27 -27
  108. package/project-template/.claude/skills/session-analyzer/SKILL.md +386 -0
  109. package/project-template/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +182 -0
  110. package/project-template/.claude/skills/session-analyzer/scripts/find-turns.mjs +72 -0
  111. package/project-template/.claude/skills/session-analyzer/scripts/heavy-output.mjs +121 -0
  112. package/project-template/.claude/skills/session-analyzer/scripts/resolve-session.mjs +103 -0
  113. package/project-template/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +127 -0
  114. package/project-template/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +106 -0
  115. package/project-template/.claude/skills/session-analyzer/scripts/time-gaps.mjs +128 -0
  116. package/project-template/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +67 -0
  117. package/project-template/.claude/snapshot.mjs +350 -0
  118. package/project-template/.codebuddy/settings.json +53 -0
  119. package/project-template/.cursor/hooks.json +1 -1
  120. package/project-template/.cursor/rules/playcraft-orchestrator.mdc +91 -86
  121. package/project-template/.cursor/rules/playcraft-subagent-boundary.mdc +16 -5
  122. package/project-template/CHANGELOG.md +105 -0
  123. package/project-template/CLAUDE.md +58 -254
  124. package/project-template/docs/DESIGN.md +65 -0
  125. package/project-template/docs/intent-clarifications.md +58 -0
  126. package/project-template/docs/pipeline-overview.md +69 -0
  127. package/project-template/docs/project-state.md +211 -0
  128. package/project-template/docs/team/agent-conduct.md +51 -105
  129. package/project-template/docs/team/agent-runtime-matrix.md +60 -74
  130. package/project-template/docs/team/atom-tree-format.md +169 -0
  131. package/project-template/docs/team/collaboration.md +319 -225
  132. package/project-template/docs/team/core-model.md +80 -46
  133. package/project-template/docs/team/game-designer-migration-todo.md +8 -0
  134. package/project-template/docs/team/harness-legacy-deprecation.md +23 -0
  135. package/project-template/docs/team/platform-capabilities.md +16 -13
  136. package/project-template/docs/team/workflow-changelog.md +95 -23
  137. package/project-template/docs/team/workflow-consistency-checklist.md +93 -45
  138. package/project-template/focus-lab/.gitkeep +0 -0
  139. package/project-template/game/.playcraft-scaffold-pending +0 -0
  140. package/project-template/game/index.ts +18 -0
  141. package/project-template/globals.d.ts +51 -0
  142. package/project-template/index.css +34 -0
  143. package/project-template/index.html +18 -0
  144. package/project-template/main.ts +9 -0
  145. package/project-template/package.json +79 -0
  146. package/project-template/skills/README.md +52 -0
  147. package/project-template/skills/_shared/agent-prep.md +136 -0
  148. package/project-template/skills/_shared/requirements.txt +1 -0
  149. package/project-template/skills/_shared/scripts/build-evidence-gate.mjs +87 -0
  150. package/project-template/skills/_shared/scripts/context-budget.mjs +215 -0
  151. package/project-template/skills/_shared/scripts/create-playable.mjs +140 -0
  152. package/project-template/skills/_shared/scripts/dev-start.mjs +151 -0
  153. package/project-template/skills/_shared/scripts/disclosure-config.mjs +480 -0
  154. package/project-template/skills/_shared/scripts/ensure-project.mjs +532 -0
  155. package/project-template/skills/_shared/scripts/gen-placeholder-audio.py +345 -0
  156. package/project-template/skills/_shared/scripts/gen-placeholder.py +244 -0
  157. package/project-template/skills/_shared/scripts/harness-smoke.mjs +257 -0
  158. package/project-template/skills/_shared/scripts/lib/validator-artifacts.mjs +129 -0
  159. package/project-template/skills/_shared/scripts/placeholder-pack-sheet.mjs +67 -0
  160. package/project-template/skills/_shared/scripts/placeholder_audio_lib.py +142 -0
  161. package/project-template/skills/_shared/scripts/placeholder_lib.py +993 -0
  162. package/project-template/skills/_shared/scripts/render-project-state.mjs +278 -0
  163. package/project-template/skills/_shared/scripts/ring-config.mjs +252 -0
  164. package/project-template/skills/_shared/scripts/skills-check.mjs +176 -0
  165. package/project-template/skills/_shared/scripts/slice-set.mjs +77 -0
  166. package/project-template/skills/_shared/scripts/state-advance-ring.mjs +63 -0
  167. package/project-template/skills/_shared/scripts/state-get.mjs +215 -0
  168. package/project-template/skills/_shared/scripts/state-handoff.mjs +120 -0
  169. package/project-template/skills/_shared/scripts/state-set.mjs +113 -0
  170. package/project-template/skills/_shared/scripts/state-store.mjs +893 -0
  171. package/project-template/skills/_shared/scripts/sync-template-skills.mjs +112 -0
  172. package/project-template/skills/_shared/scripts/verify-asset-code-sync.mjs +265 -0
  173. package/project-template/skills/_shared/scripts/verify-atom-conformance.mjs +181 -0
  174. package/project-template/skills/_shared/scripts/verify-env.mjs +285 -0
  175. package/project-template/skills/_shared/scripts/verify-placeholders.mjs +161 -0
  176. package/project-template/skills/_shared/scripts/workflow-doctor.mjs +348 -0
  177. package/project-template/skills/playable-animate/SKILL.md +52 -0
  178. package/project-template/skills/playable-animate/agents/openai.yaml +4 -0
  179. package/project-template/skills/playable-animate/references/board-refresh.md +30 -0
  180. package/project-template/skills/playable-animate/references/diagnosis-checklist.md +25 -0
  181. package/project-template/skills/playable-animate/references/entrance-sequencing.md +33 -0
  182. package/project-template/skills/playable-animate/references/interaction-timing.md +23 -0
  183. package/project-template/skills/playable-art/SKILL.md +203 -0
  184. package/project-template/skills/playable-art/agents/openai.yaml +4 -0
  185. package/project-template/skills/playable-art/references/alpha-postprocess.md +46 -0
  186. package/project-template/skills/playable-art/references/cta-art-spec.md +59 -0
  187. package/project-template/skills/playable-art/references/layout-proportions.md +30 -0
  188. package/project-template/skills/playable-art/references/prompt-patterns.md +83 -0
  189. package/project-template/skills/playable-art/references/reference-comparison.md +30 -0
  190. package/project-template/skills/playable-art/references/sheet-import-v2.md +91 -0
  191. package/project-template/skills/playable-art/scripts/build-atlas.py +332 -0
  192. package/project-template/skills/playable-art/scripts/chroma-key.py +50 -0
  193. package/project-template/skills/playable-art/scripts/extract-alpha-split.py +65 -0
  194. package/project-template/skills/playable-art/scripts/extract-dual-bg-alpha.py +118 -0
  195. package/project-template/skills/playable-art/scripts/import-gpt-art-sheets-v2.py +403 -0
  196. package/project-template/skills/playable-art/scripts/import-gpt-art-sheets.py +280 -0
  197. package/project-template/skills/playable-art/scripts/import-gpt-tile-sheet.py +114 -0
  198. package/project-template/skills/playable-art/scripts/import_gpt_art_pipeline.py +321 -0
  199. package/project-template/skills/playable-art/scripts/import_gpt_art_sheets_v2_test.py +126 -0
  200. package/project-template/skills/playable-art/scripts/placeholder_common.py +98 -0
  201. package/project-template/skills/playable-art/scripts/remove-bg.py +91 -0
  202. package/project-template/skills/playable-art/scripts/review-processed-assets.py +468 -0
  203. package/project-template/skills/playable-art/scripts/review_processed_assets_test.py +116 -0
  204. package/project-template/skills/playable-art/scripts/verify-alpha-clean.py +105 -0
  205. package/project-template/skills/playable-debug/SKILL.md +116 -0
  206. package/project-template/skills/playable-debug/agents/openai.yaml +4 -0
  207. package/project-template/skills/playable-debug/references/debug-config.md +40 -0
  208. package/project-template/skills/playable-focus/SKILL.md +148 -0
  209. package/project-template/skills/playable-focus/scripts/bootstrap-playground.mjs +84 -0
  210. package/project-template/skills/playable-focus/scripts/extract-focus-frames.mjs +87 -0
  211. package/project-template/skills/playable-focus/scripts/generate-focus-reports.mjs +121 -0
  212. package/project-template/skills/playable-focus/scripts/playground.mjs +390 -0
  213. package/project-template/skills/playable-focus/templates/focus-lab/frame.html +39 -0
  214. package/project-template/skills/playable-focus/templates/focus-lab/harness/clean-stage.js +114 -0
  215. package/project-template/skills/playable-focus/templates/focus-lab/harness/frame-lab-scene.js +94 -0
  216. package/project-template/skills/playable-focus/templates/focus-lab/harness/particle-lab-scene.js +224 -0
  217. package/project-template/skills/playable-focus/templates/focus-lab/model.html +16 -0
  218. package/project-template/skills/playable-focus/templates/focus-lab/particle.html +38 -0
  219. package/project-template/skills/playable-focus/templates/focus-lab/shatter.html +47 -0
  220. package/project-template/skills/playable-focus/templates/playground/registry.template.json +55 -0
  221. package/project-template/skills/playable-focus/templates/playground/vfx-catalog.template.json +280 -0
  222. package/project-template/skills/playable-fx-decompose/SKILL.md +212 -0
  223. package/project-template/skills/playable-fx-decompose/examples.md +89 -0
  224. package/project-template/skills/playable-fx-decompose/reference.md +201 -0
  225. package/project-template/skills/playable-fx-decompose/requirements.txt +2 -0
  226. package/project-template/skills/playable-fx-decompose/scripts/build-blank-tile-crack.py +192 -0
  227. package/project-template/skills/playable-fx-decompose/scripts/fix-shard-debris-frames.py +60 -0
  228. package/project-template/skills/playable-fx-decompose/scripts/generate-shard-debris.py +276 -0
  229. package/project-template/skills/playable-fx-peak/SKILL.md +237 -0
  230. package/project-template/skills/playable-fx-peak/requirements.txt +2 -0
  231. package/project-template/skills/playable-fx-peak/scripts/fix-frame-edges.py +70 -0
  232. package/project-template/skills/playable-fx-peak/scripts/repack-frame-sequence.py +526 -0
  233. package/project-template/skills/playable-fx-peak/scripts/validate-frame-anchors.py +130 -0
  234. package/project-template/skills/playable-placeholder/SKILL.md +239 -0
  235. package/project-template/skills/playable-record/SKILL.md +166 -0
  236. package/project-template/skills/playable-record/scripts/lib/build-artifact.mjs +92 -0
  237. package/project-template/skills/playable-record/scripts/lib/dev-server.mjs +104 -0
  238. package/project-template/skills/playable-record/scripts/lib/record-audio-bridge.js +141 -0
  239. package/project-template/skills/playable-record/scripts/lib/slice-structure-verify.mjs +199 -0
  240. package/project-template/skills/playable-record/scripts/record-playable.mjs +583 -0
  241. package/project-template/skills/playable-record/scripts/verify-build.mjs +185 -0
  242. package/project-template/skills/playable-record/scripts/verify-contract.mjs +261 -0
  243. package/project-template/skills/playable-record/scripts/verify-firstwin.mjs +398 -0
  244. package/project-template/skills/playable-record/scripts/verify-fusion.mjs +320 -0
  245. package/project-template/skills/playable-record/scripts/verify-lifecycle.mjs +78 -0
  246. package/project-template/skills/playable-record/scripts/verify-slice-artist.mjs +53 -0
  247. package/project-template/skills/playable-record/scripts/verify-slice-ta.mjs +53 -0
  248. package/project-template/skills/playable-record/scripts/verify-slice.mjs +142 -0
  249. package/project-template/skills/playable-record/scripts/verify-visual-ring.mjs +250 -0
  250. package/project-template/skills/playable-record/scripts/verify-visual-ring1.mjs +190 -0
  251. package/project-template/skills/playable-record/scripts/verify-vlm-video.mjs +227 -0
  252. package/project-template/skills/playable-validate/SKILL.md +260 -0
  253. package/project-template/skills/playable-validate/references/checklist-detail.md +36 -0
  254. package/project-template/skills/playable-validate/references/single-html-bundle.md +76 -0
  255. package/project-template/skills/playable-validate/validation-rules.md +200 -0
  256. package/project-template/skills/playable-verify-ui/SKILL.md +295 -0
  257. package/project-template/skills/playable-verify-ui/examples/asset-manifest.example.json +36 -0
  258. package/project-template/skills/playable-verify-ui/examples/mahjong-match.profile.yaml +334 -0
  259. package/project-template/skills/playable-verify-ui/profiles/template.profile.yaml +84 -0
  260. package/project-template/skills/playable-verify-ui/reference.md +165 -0
  261. package/project-template/skills/playable-verify-ui/references/phaser-patterns.md +67 -0
  262. package/project-template/skills/playable-verify-ui/references/scaling-decision-tree.md +51 -0
  263. package/project-template/skills/playable-verify-ui/requirements.txt +7 -0
  264. package/project-template/skills/playable-verify-ui/schema/asset-manifest.schema.json +68 -0
  265. package/project-template/skills/playable-verify-ui/schema/playable-ui-profile.schema.json +171 -0
  266. package/project-template/skills/playable-verify-ui/scripts/asset_manifest.py +231 -0
  267. package/project-template/skills/playable-verify-ui/scripts/lib/__init__.py +1 -0
  268. package/project-template/skills/playable-verify-ui/scripts/lib/config_expr.js +218 -0
  269. package/project-template/skills/playable-verify-ui/scripts/lib/node_utils.js +51 -0
  270. package/project-template/skills/playable-verify-ui/scripts/lib/profile_loader.py +59 -0
  271. package/project-template/skills/playable-verify-ui/scripts/lib/report.py +106 -0
  272. package/project-template/skills/playable-verify-ui/scripts/lib/runtime_contract.js +116 -0
  273. package/project-template/skills/playable-verify-ui/scripts/measure_frame_content.py +77 -0
  274. package/project-template/skills/playable-verify-ui/scripts/run_all.py +265 -0
  275. package/project-template/skills/playable-verify-ui/scripts/verify_asset_sizes.py +77 -0
  276. package/project-template/skills/playable-verify-ui/scripts/verify_assets_present.py +62 -0
  277. package/project-template/skills/playable-verify-ui/scripts/verify_atlas_budget.py +84 -0
  278. package/project-template/skills/playable-verify-ui/scripts/verify_atlas_frames.py +79 -0
  279. package/project-template/skills/playable-verify-ui/scripts/verify_bg_clean.py +365 -0
  280. package/project-template/skills/playable-verify-ui/scripts/verify_doc_asset_sync.py +90 -0
  281. package/project-template/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +59 -0
  282. package/project-template/skills/playable-verify-ui/scripts/verify_game_config_load.js +54 -0
  283. package/project-template/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +64 -0
  284. package/project-template/skills/playable-verify-ui/scripts/verify_layout_regions.js +110 -0
  285. package/project-template/skills/playable-verify-ui/scripts/verify_profile_schema.py +37 -0
  286. package/project-template/skills/playable-verify-ui/scripts/verify_ring1_visual.py +211 -0
  287. package/project-template/skills/playable-verify-ui/scripts/verify_runtime_contract.js +58 -0
  288. package/project-template/skills/playable-verify-ui/scripts/verify_script_load_order.js +73 -0
  289. package/project-template/skills/playable-verify-ui/scripts/verify_slice_plan.py +238 -0
  290. package/project-template/skills/playable-verify-ui/scripts/verify_slice_plan_test.py +125 -0
  291. package/project-template/skills/playable-verify-ui/scripts/verify_text_overlap.py +333 -0
  292. package/project-template/skills/playable-verify-ui/scripts/verify_tile_consistency.py +323 -0
  293. package/project-template/skills/playable-verify-ui/scripts/verify_vision_evidence.py +894 -0
  294. package/project-template/skills/playable-verify-ui/scripts/verify_vision_evidence_test.py +122 -0
  295. package/project-template/skills/playable-verify-ui/scripts/verify_visual.py +422 -0
  296. package/project-template/templates/{designer-log.template.md → artist-log.template.md} +26 -31
  297. package/project-template/templates/atom-tree.template.json +133 -0
  298. package/project-template/templates/design-brief.template.md +59 -162
  299. package/project-template/templates/design-lens-checklist.reference.md +14 -14
  300. package/project-template/templates/design-methodology.md +25 -25
  301. package/project-template/templates/design.template.md +50 -0
  302. package/project-template/templates/developer-log.template.md +187 -63
  303. package/project-template/templates/five-axis-framework.md +89 -44
  304. package/project-template/templates/gen-placeholder-audio.template.mjs +63 -0
  305. package/project-template/templates/gen-placeholders.template.mjs +81 -0
  306. package/project-template/templates/intent-clarifications.template.md +7 -7
  307. package/project-template/templates/layout-spec.template.md +32 -20
  308. package/project-template/templates/plan.template.md +80 -0
  309. package/project-template/templates/project-state.template.md +90 -191
  310. package/project-template/templates/review-report.template.md +208 -24
  311. package/project-template/templates/style-exploration.template.md +8 -8
  312. package/project-template/templates/ta-log.template.md +58 -35
  313. package/project-template/tsconfig.json +20 -0
  314. package/project-template/vite.config.ts +27 -0
  315. package/project-templates/phaser/.claude/agents/artist.md +101 -0
  316. package/project-templates/phaser/.claude/agents/developer.md +123 -0
  317. package/project-templates/phaser/.claude/agents/game-designer.md +192 -0
  318. package/project-templates/phaser/.claude/agents/refs/README.md +77 -0
  319. package/project-templates/phaser/.claude/agents/refs/artist-art-style-catalog.md +533 -0
  320. package/project-templates/phaser/.claude/agents/refs/artist-color-audio-recipes.md +153 -0
  321. package/project-templates/phaser/.claude/agents/refs/artist-deliverable-spec.md +230 -0
  322. package/project-templates/phaser/.claude/agents/refs/artist-dimension-axis.md +27 -0
  323. package/project-templates/phaser/.claude/agents/refs/artist-handoff-v2-checklist.md +76 -0
  324. package/project-templates/phaser/.claude/agents/refs/artist-legacy-fallback.md +14 -0
  325. package/project-templates/phaser/.claude/agents/refs/artist-master-composite-recipes.md +208 -0
  326. package/project-templates/phaser/.claude/agents/refs/artist-style-exploration-flow.md +55 -0
  327. package/project-templates/phaser/.claude/agents/refs/developer-dev-handoff.md +152 -0
  328. package/project-templates/phaser/.claude/agents/refs/developer-impl-cookbook.md +432 -0
  329. package/project-templates/phaser/.claude/agents/refs/developer-legacy-fallback.md +15 -0
  330. package/project-templates/phaser/.claude/agents/refs/developer-phase1-flow.md +404 -0
  331. package/project-templates/phaser/.claude/agents/refs/framework-5-component-filter.md +252 -0
  332. package/project-templates/phaser/.claude/agents/refs/framework-game-feel-juice.md +266 -0
  333. package/project-templates/phaser/.claude/agents/refs/framework-mda.md +147 -0
  334. package/project-templates/phaser/.claude/agents/refs/game-designer-gameplay-sufficiency.md +123 -0
  335. package/project-templates/phaser/.claude/agents/refs/game-designer-legacy-fallback.md +15 -0
  336. package/project-templates/phaser/.claude/agents/refs/game-designer-workflow-detail.md +69 -0
  337. package/project-templates/phaser/.claude/agents/refs/implementation-plan-guide.md +309 -0
  338. package/project-templates/phaser/.claude/agents/refs/reviewer-convergence-eval.md +350 -0
  339. package/project-templates/phaser/.claude/agents/refs/reviewer-legacy-fallback.md +14 -0
  340. package/project-templates/phaser/.claude/agents/refs/reviewer-six-dimension-eval.md +6 -0
  341. package/project-templates/phaser/.claude/agents/refs/skill-selector-guide.md +465 -0
  342. package/project-templates/phaser/.claude/agents/refs/skill-value-layers.md +145 -0
  343. package/project-templates/phaser/.claude/agents/refs/storyboard-generation-guide.md +110 -0
  344. package/project-templates/phaser/.claude/agents/refs/ta-3d-flip-recipe.md +88 -0
  345. package/project-templates/phaser/.claude/agents/refs/ta-atlas-deliverable-standard.md +67 -0
  346. package/project-templates/phaser/.claude/agents/refs/ta-batch-pipeline-recipes.md +120 -0
  347. package/project-templates/phaser/.claude/agents/refs/ta-image-generation-detail.md +300 -0
  348. package/project-templates/phaser/.claude/agents/refs/ta-image-ops-reference.md +495 -0
  349. package/project-templates/phaser/.claude/agents/refs/ta-pipeline-cookbook.md +1141 -0
  350. package/project-templates/phaser/.claude/agents/refs/ta-tools-reference.md +111 -0
  351. package/project-templates/phaser/.claude/agents/refs/ta-vfx-preset-catalog.md +365 -0
  352. package/project-templates/phaser/.claude/agents/refs/technical-artist-legacy-fallback.md +14 -0
  353. package/project-templates/phaser/.claude/agents/reviewer.md +116 -0
  354. package/project-templates/phaser/.claude/agents/technical-artist.md +100 -0
  355. package/project-templates/phaser/.claude/hooks/README.md +120 -0
  356. package/project-templates/phaser/.claude/hooks/asr-coverage-validate.mjs +381 -0
  357. package/project-templates/phaser/.claude/hooks/block-developer-preflight.mjs +185 -0
  358. package/project-templates/phaser/.claude/hooks/block-ring1-tasklist.mjs +95 -0
  359. package/project-templates/phaser/.claude/hooks/gate-dispatcher.mjs +78 -0
  360. package/project-templates/phaser/.claude/hooks/gate-runner.mjs +557 -0
  361. package/project-templates/phaser/.claude/hooks/gate.mjs +171 -0
  362. package/project-templates/phaser/.claude/hooks/snapshot-milestone.mjs +247 -0
  363. package/project-templates/phaser/.claude/hooks/user-prompt.mjs +194 -0
  364. package/project-templates/phaser/.claude/hooks/validate-atom-tree-selection.mjs +281 -0
  365. package/project-templates/phaser/.claude/hooks/validate-workflow-stop.mjs +1889 -0
  366. package/project-templates/phaser/.claude/settings.json +81 -0
  367. package/project-templates/phaser/.claude/skills/brainstorming/SKILL.md +161 -0
  368. package/project-templates/phaser/.claude/skills/brainstorming/scripts/frame-template.html +270 -0
  369. package/project-templates/phaser/.claude/skills/brainstorming/scripts/helper.js +177 -0
  370. package/project-templates/phaser/.claude/skills/brainstorming/scripts/server.cjs +354 -0
  371. package/project-templates/phaser/.claude/skills/brainstorming/scripts/start-server.sh +148 -0
  372. package/project-templates/phaser/.claude/skills/brainstorming/scripts/stop-server.sh +56 -0
  373. package/project-templates/phaser/.claude/skills/brainstorming/scripts/wait-for-selection.sh +62 -0
  374. package/project-templates/phaser/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  375. package/project-templates/phaser/.claude/skills/brainstorming/visual-companion.md +309 -0
  376. package/project-templates/phaser/.claude/skills/playcraft-ad-psychology/SKILL.md +182 -0
  377. package/project-templates/phaser/.claude/skills/playcraft-art-style-guide/SKILL.md +123 -0
  378. package/project-templates/phaser/.claude/skills/playcraft-asset-state-sheet/SKILL.md +205 -0
  379. package/project-templates/phaser/.claude/skills/playcraft-audio-generation/SKILL.md +280 -0
  380. package/project-templates/phaser/.claude/skills/playcraft-batch-pipeline/SKILL.md +184 -0
  381. package/project-templates/phaser/.claude/skills/playcraft-build-optimizer/SKILL.md +306 -0
  382. package/project-templates/phaser/.claude/skills/playcraft-image-generation/SKILL.md +298 -0
  383. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +123 -0
  384. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +254 -0
  385. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +324 -0
  386. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +97 -0
  387. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +118 -0
  388. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +137 -0
  389. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +397 -0
  390. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +296 -0
  391. package/project-templates/phaser/.claude/skills/playcraft-image-ops/SKILL.md +122 -0
  392. package/project-templates/phaser/.claude/skills/playcraft-image-processing/SKILL.md +219 -0
  393. package/project-templates/phaser/.claude/skills/playcraft-masking/SKILL.md +373 -0
  394. package/project-templates/phaser/.claude/skills/playcraft-playable-optimization/SKILL.md +161 -0
  395. package/project-templates/phaser/.claude/skills/playcraft-research/SKILL.md +215 -0
  396. package/project-templates/phaser/.claude/skills/playcraft-skill-recommender/SKILL.md +331 -0
  397. package/project-templates/phaser/.claude/skills/playcraft-sprite-generation/SKILL.md +423 -0
  398. package/project-templates/phaser/.claude/skills/playcraft-sprite-remix/SKILL.md +158 -0
  399. package/project-templates/phaser/.claude/skills/playcraft-sprite-sheet/SKILL.md +100 -0
  400. package/project-templates/phaser/.claude/skills/playcraft-storyboard/SKILL.md +167 -0
  401. package/project-templates/phaser/.claude/skills/playcraft-style-qa/SKILL.md +270 -0
  402. package/project-templates/phaser/.claude/skills/playcraft-text-rendering/SKILL.md +236 -0
  403. package/project-templates/phaser/.claude/skills/playcraft-vfx-animation/SKILL.md +130 -0
  404. package/project-templates/phaser/.claude/skills/playwright-cli/SKILL.md +390 -0
  405. package/project-templates/phaser/.claude/skills/playwright-cli/references/element-attributes.md +23 -0
  406. package/project-templates/phaser/.claude/skills/playwright-cli/references/playwright-tests.md +39 -0
  407. package/project-templates/phaser/.claude/skills/playwright-cli/references/request-mocking.md +87 -0
  408. package/project-templates/phaser/.claude/skills/playwright-cli/references/running-code.md +240 -0
  409. package/project-templates/phaser/.claude/skills/playwright-cli/references/session-management.md +226 -0
  410. package/project-templates/phaser/.claude/skills/playwright-cli/references/spec-driven-testing.md +308 -0
  411. package/project-templates/phaser/.claude/skills/playwright-cli/references/storage-state.md +275 -0
  412. package/project-templates/phaser/.claude/skills/playwright-cli/references/test-generation.md +134 -0
  413. package/project-templates/phaser/.claude/skills/playwright-cli/references/tracing.md +142 -0
  414. package/project-templates/phaser/.claude/skills/playwright-cli/references/video-recording.md +153 -0
  415. package/project-templates/phaser/.claude/skills/session-analyzer/SKILL.md +386 -0
  416. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +182 -0
  417. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/find-turns.mjs +72 -0
  418. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/heavy-output.mjs +121 -0
  419. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/resolve-session.mjs +103 -0
  420. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +127 -0
  421. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +106 -0
  422. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/time-gaps.mjs +128 -0
  423. package/project-templates/phaser/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +67 -0
  424. package/project-templates/phaser/.claude/snapshot.mjs +257 -0
  425. package/project-templates/phaser/.cursor/hooks.json +17 -0
  426. package/project-templates/phaser/.cursor/rules/playcraft-orchestrator.mdc +142 -0
  427. package/project-templates/phaser/.cursor/rules/playcraft-subagent-boundary.mdc +29 -0
  428. package/project-templates/phaser/.playcraft-engine +1 -0
  429. package/project-templates/phaser/CHANGELOG.md +105 -0
  430. package/project-templates/phaser/CLAUDE.md +84 -0
  431. package/project-templates/phaser/assets/audio/bgm/.gitkeep +0 -0
  432. package/project-templates/phaser/assets/audio/sfx/.gitkeep +0 -0
  433. package/project-templates/phaser/assets/bundles/.gitkeep +0 -0
  434. package/project-templates/phaser/assets/images/bg/.gitkeep +0 -0
  435. package/project-templates/phaser/assets/images/reference/.gitkeep +0 -0
  436. package/project-templates/phaser/assets/images/storyboard/.gitkeep +0 -0
  437. package/project-templates/phaser/assets/images/tiles/.gitkeep +0 -0
  438. package/project-templates/phaser/assets/images/ui/.gitkeep +0 -0
  439. package/project-templates/phaser/assets/images/vfx/.gitkeep +0 -0
  440. package/project-templates/phaser/assets/models/.gitkeep +0 -0
  441. package/project-templates/phaser/docs/DESIGN.md +65 -0
  442. package/project-templates/phaser/docs/intent-clarifications.md +58 -0
  443. package/project-templates/phaser/docs/pipeline-overview.md +69 -0
  444. package/project-templates/phaser/docs/project-state.md +211 -0
  445. package/project-templates/phaser/docs/scaffold-manifest.md +10 -0
  446. package/project-templates/phaser/docs/team/agent-conduct.md +67 -0
  447. package/project-templates/phaser/docs/team/agent-runtime-matrix.md +80 -0
  448. package/project-templates/phaser/docs/team/atom-tree-format.md +114 -0
  449. package/project-templates/phaser/docs/team/collaboration.md +391 -0
  450. package/project-templates/phaser/docs/team/core-model.md +85 -0
  451. package/project-templates/phaser/docs/team/game-designer-migration-todo.md +8 -0
  452. package/project-templates/phaser/docs/team/harness-legacy-deprecation.md +23 -0
  453. package/project-templates/phaser/docs/team/platform-capabilities.md +18 -0
  454. package/project-templates/phaser/docs/team/workflow-changelog.md +137 -0
  455. package/project-templates/phaser/docs/team/workflow-consistency-checklist.md +240 -0
  456. package/project-templates/phaser/focus-lab/.gitkeep +0 -0
  457. package/project-templates/phaser/game/adapters/phaser.ts +52 -0
  458. package/project-templates/phaser/game/config/.gitkeep +0 -0
  459. package/project-templates/phaser/game/config/game-config.ts +46 -0
  460. package/project-templates/phaser/game/contract/publish.ts +141 -0
  461. package/project-templates/phaser/game/contract/types.ts +34 -0
  462. package/project-templates/phaser/game/gameplay/.gitkeep +0 -0
  463. package/project-templates/phaser/game/index.ts +81 -0
  464. package/project-templates/phaser/game/runtime-contract.ts +28 -0
  465. package/project-templates/phaser/game/scenes/.gitkeep +0 -0
  466. package/project-templates/phaser/globals.d.ts +51 -0
  467. package/project-templates/phaser/index.css +34 -0
  468. package/project-templates/phaser/index.html +18 -0
  469. package/project-templates/phaser/main.ts +9 -0
  470. package/project-templates/phaser/package.json +79 -0
  471. package/project-templates/phaser/skills/README.md +52 -0
  472. package/project-templates/phaser/skills/_shared/agent-prep.md +136 -0
  473. package/project-templates/phaser/skills/_shared/requirements.txt +1 -0
  474. package/project-templates/phaser/skills/_shared/scripts/build-evidence-gate.mjs +87 -0
  475. package/project-templates/phaser/skills/_shared/scripts/context-budget.mjs +215 -0
  476. package/project-templates/phaser/skills/_shared/scripts/create-playable.mjs +140 -0
  477. package/project-templates/phaser/skills/_shared/scripts/dev-start.mjs +151 -0
  478. package/project-templates/phaser/skills/_shared/scripts/disclosure-config.mjs +480 -0
  479. package/project-templates/phaser/skills/_shared/scripts/ensure-project.mjs +532 -0
  480. package/project-templates/phaser/skills/_shared/scripts/gen-placeholder-audio.py +345 -0
  481. package/project-templates/phaser/skills/_shared/scripts/gen-placeholder.py +244 -0
  482. package/project-templates/phaser/skills/_shared/scripts/harness-smoke.mjs +257 -0
  483. package/project-templates/phaser/skills/_shared/scripts/lib/validator-artifacts.mjs +129 -0
  484. package/project-templates/phaser/skills/_shared/scripts/placeholder-pack-sheet.mjs +67 -0
  485. package/project-templates/phaser/skills/_shared/scripts/placeholder_audio_lib.py +142 -0
  486. package/project-templates/phaser/skills/_shared/scripts/placeholder_lib.py +993 -0
  487. package/project-templates/phaser/skills/_shared/scripts/render-project-state.mjs +278 -0
  488. package/project-templates/phaser/skills/_shared/scripts/ring-config.mjs +252 -0
  489. package/project-templates/phaser/skills/_shared/scripts/skills-check.mjs +176 -0
  490. package/project-templates/phaser/skills/_shared/scripts/slice-set.mjs +77 -0
  491. package/project-templates/phaser/skills/_shared/scripts/state-advance-ring.mjs +63 -0
  492. package/project-templates/phaser/skills/_shared/scripts/state-get.mjs +215 -0
  493. package/project-templates/phaser/skills/_shared/scripts/state-handoff.mjs +120 -0
  494. package/project-templates/phaser/skills/_shared/scripts/state-set.mjs +113 -0
  495. package/project-templates/phaser/skills/_shared/scripts/state-store.mjs +893 -0
  496. package/project-templates/phaser/skills/_shared/scripts/sync-template-skills.mjs +112 -0
  497. package/project-templates/phaser/skills/_shared/scripts/verify-asset-code-sync.mjs +265 -0
  498. package/project-templates/phaser/skills/_shared/scripts/verify-atom-conformance.mjs +181 -0
  499. package/project-templates/phaser/skills/_shared/scripts/verify-env.mjs +285 -0
  500. package/project-templates/phaser/skills/_shared/scripts/verify-placeholders.mjs +161 -0
  501. package/project-templates/phaser/skills/_shared/scripts/workflow-doctor.mjs +348 -0
  502. package/project-templates/phaser/skills/playable-animate/SKILL.md +52 -0
  503. package/project-templates/phaser/skills/playable-animate/agents/openai.yaml +4 -0
  504. package/project-templates/phaser/skills/playable-animate/references/board-refresh.md +30 -0
  505. package/project-templates/phaser/skills/playable-animate/references/diagnosis-checklist.md +25 -0
  506. package/project-templates/phaser/skills/playable-animate/references/entrance-sequencing.md +33 -0
  507. package/project-templates/phaser/skills/playable-animate/references/interaction-timing.md +23 -0
  508. package/project-templates/phaser/skills/playable-art/SKILL.md +203 -0
  509. package/project-templates/phaser/skills/playable-art/agents/openai.yaml +4 -0
  510. package/project-templates/phaser/skills/playable-art/references/alpha-postprocess.md +46 -0
  511. package/project-templates/phaser/skills/playable-art/references/cta-art-spec.md +59 -0
  512. package/project-templates/phaser/skills/playable-art/references/layout-proportions.md +30 -0
  513. package/project-templates/phaser/skills/playable-art/references/prompt-patterns.md +83 -0
  514. package/project-templates/phaser/skills/playable-art/references/reference-comparison.md +30 -0
  515. package/project-templates/phaser/skills/playable-art/references/sheet-import-v2.md +91 -0
  516. package/project-templates/phaser/skills/playable-art/scripts/build-atlas.py +332 -0
  517. package/project-templates/phaser/skills/playable-art/scripts/chroma-key.py +50 -0
  518. package/project-templates/phaser/skills/playable-art/scripts/extract-alpha-split.py +65 -0
  519. package/project-templates/phaser/skills/playable-art/scripts/extract-dual-bg-alpha.py +118 -0
  520. package/project-templates/phaser/skills/playable-art/scripts/import-gpt-art-sheets-v2.py +403 -0
  521. package/project-templates/phaser/skills/playable-art/scripts/import-gpt-art-sheets.py +280 -0
  522. package/project-templates/phaser/skills/playable-art/scripts/import-gpt-tile-sheet.py +114 -0
  523. package/project-templates/phaser/skills/playable-art/scripts/import_gpt_art_pipeline.py +321 -0
  524. package/project-templates/phaser/skills/playable-art/scripts/import_gpt_art_sheets_v2_test.py +126 -0
  525. package/project-templates/phaser/skills/playable-art/scripts/placeholder_common.py +98 -0
  526. package/project-templates/phaser/skills/playable-art/scripts/remove-bg.py +91 -0
  527. package/project-templates/phaser/skills/playable-art/scripts/review-processed-assets.py +468 -0
  528. package/project-templates/phaser/skills/playable-art/scripts/review_processed_assets_test.py +116 -0
  529. package/project-templates/phaser/skills/playable-art/scripts/verify-alpha-clean.py +105 -0
  530. package/project-templates/phaser/skills/playable-debug/SKILL.md +116 -0
  531. package/project-templates/phaser/skills/playable-debug/agents/openai.yaml +4 -0
  532. package/project-templates/phaser/skills/playable-debug/references/debug-config.md +40 -0
  533. package/project-templates/phaser/skills/playable-focus/SKILL.md +148 -0
  534. package/project-templates/phaser/skills/playable-focus/scripts/bootstrap-playground.mjs +84 -0
  535. package/project-templates/phaser/skills/playable-focus/scripts/extract-focus-frames.mjs +87 -0
  536. package/project-templates/phaser/skills/playable-focus/scripts/generate-focus-reports.mjs +121 -0
  537. package/project-templates/phaser/skills/playable-focus/scripts/playground.mjs +390 -0
  538. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/frame.html +39 -0
  539. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/harness/clean-stage.js +114 -0
  540. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/harness/frame-lab-scene.js +94 -0
  541. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/harness/particle-lab-scene.js +224 -0
  542. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/model.html +16 -0
  543. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/particle.html +38 -0
  544. package/project-templates/phaser/skills/playable-focus/templates/focus-lab/shatter.html +47 -0
  545. package/project-templates/phaser/skills/playable-fx-decompose/SKILL.md +212 -0
  546. package/project-templates/phaser/skills/playable-fx-decompose/examples.md +89 -0
  547. package/project-templates/phaser/skills/playable-fx-decompose/reference.md +201 -0
  548. package/project-templates/phaser/skills/playable-fx-decompose/requirements.txt +2 -0
  549. package/project-templates/phaser/skills/playable-fx-decompose/scripts/build-blank-tile-crack.py +192 -0
  550. package/project-templates/phaser/skills/playable-fx-decompose/scripts/fix-shard-debris-frames.py +60 -0
  551. package/project-templates/phaser/skills/playable-fx-decompose/scripts/generate-shard-debris.py +276 -0
  552. package/project-templates/phaser/skills/playable-fx-peak/SKILL.md +237 -0
  553. package/project-templates/phaser/skills/playable-fx-peak/requirements.txt +2 -0
  554. package/project-templates/phaser/skills/playable-fx-peak/scripts/fix-frame-edges.py +70 -0
  555. package/project-templates/phaser/skills/playable-fx-peak/scripts/repack-frame-sequence.py +526 -0
  556. package/project-templates/phaser/skills/playable-fx-peak/scripts/validate-frame-anchors.py +130 -0
  557. package/project-templates/phaser/skills/playable-placeholder/SKILL.md +239 -0
  558. package/project-templates/phaser/skills/playable-record/SKILL.md +166 -0
  559. package/project-templates/phaser/skills/playable-record/scripts/lib/build-artifact.mjs +92 -0
  560. package/project-templates/phaser/skills/playable-record/scripts/lib/dev-server.mjs +104 -0
  561. package/project-templates/phaser/skills/playable-record/scripts/lib/record-audio-bridge.js +141 -0
  562. package/project-templates/phaser/skills/playable-record/scripts/lib/slice-structure-verify.mjs +199 -0
  563. package/project-templates/phaser/skills/playable-record/scripts/record-playable.mjs +583 -0
  564. package/project-templates/phaser/skills/playable-record/scripts/verify-build.mjs +185 -0
  565. package/project-templates/phaser/skills/playable-record/scripts/verify-contract.mjs +261 -0
  566. package/project-templates/phaser/skills/playable-record/scripts/verify-firstwin.mjs +398 -0
  567. package/project-templates/phaser/skills/playable-record/scripts/verify-fusion.mjs +320 -0
  568. package/project-templates/phaser/skills/playable-record/scripts/verify-lifecycle.mjs +78 -0
  569. package/project-templates/phaser/skills/playable-record/scripts/verify-slice-artist.mjs +53 -0
  570. package/project-templates/phaser/skills/playable-record/scripts/verify-slice-ta.mjs +53 -0
  571. package/project-templates/phaser/skills/playable-record/scripts/verify-slice.mjs +142 -0
  572. package/project-templates/phaser/skills/playable-record/scripts/verify-visual-ring.mjs +250 -0
  573. package/project-templates/phaser/skills/playable-record/scripts/verify-visual-ring1.mjs +190 -0
  574. package/project-templates/phaser/skills/playable-record/scripts/verify-vlm-video.mjs +227 -0
  575. package/project-templates/phaser/skills/playable-validate/SKILL.md +260 -0
  576. package/project-templates/phaser/skills/playable-validate/references/checklist-detail.md +36 -0
  577. package/project-templates/phaser/skills/playable-validate/references/single-html-bundle.md +76 -0
  578. package/project-templates/phaser/skills/playable-validate/validation-rules.md +200 -0
  579. package/project-templates/phaser/skills/playable-verify-ui/SKILL.md +295 -0
  580. package/project-templates/phaser/skills/playable-verify-ui/examples/asset-manifest.example.json +36 -0
  581. package/project-templates/phaser/skills/playable-verify-ui/examples/mahjong-match.profile.yaml +334 -0
  582. package/project-templates/phaser/skills/playable-verify-ui/profiles/template.profile.yaml +84 -0
  583. package/project-templates/phaser/skills/playable-verify-ui/reference.md +165 -0
  584. package/project-templates/phaser/skills/playable-verify-ui/references/phaser-patterns.md +67 -0
  585. package/project-templates/phaser/skills/playable-verify-ui/references/scaling-decision-tree.md +51 -0
  586. package/project-templates/phaser/skills/playable-verify-ui/requirements.txt +7 -0
  587. package/project-templates/phaser/skills/playable-verify-ui/schema/asset-manifest.schema.json +68 -0
  588. package/project-templates/phaser/skills/playable-verify-ui/schema/playable-ui-profile.schema.json +171 -0
  589. package/project-templates/phaser/skills/playable-verify-ui/scripts/asset_manifest.py +231 -0
  590. package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/__init__.py +1 -0
  591. package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/config_expr.js +218 -0
  592. package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/node_utils.js +51 -0
  593. package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/profile_loader.py +59 -0
  594. package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/report.py +106 -0
  595. package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/runtime_contract.js +116 -0
  596. package/project-templates/phaser/skills/playable-verify-ui/scripts/measure_frame_content.py +77 -0
  597. package/project-templates/phaser/skills/playable-verify-ui/scripts/run_all.py +265 -0
  598. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_asset_sizes.py +77 -0
  599. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_assets_present.py +62 -0
  600. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_atlas_budget.py +84 -0
  601. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_atlas_frames.py +79 -0
  602. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_bg_clean.py +365 -0
  603. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_doc_asset_sync.py +90 -0
  604. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +59 -0
  605. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_game_config_load.js +54 -0
  606. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +64 -0
  607. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_layout_regions.js +110 -0
  608. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_profile_schema.py +37 -0
  609. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_ring1_visual.py +211 -0
  610. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_runtime_contract.js +58 -0
  611. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_script_load_order.js +73 -0
  612. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_slice_plan.py +238 -0
  613. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_slice_plan_test.py +125 -0
  614. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_text_overlap.py +333 -0
  615. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_tile_consistency.py +323 -0
  616. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_vision_evidence.py +894 -0
  617. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_vision_evidence_test.py +122 -0
  618. package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_visual.py +422 -0
  619. package/project-templates/phaser/ta-workspace/scripts/.gitkeep +0 -0
  620. package/project-templates/phaser/templates/artist-log.template.md +182 -0
  621. package/project-templates/phaser/templates/atom-tree.template.json +133 -0
  622. package/project-templates/phaser/templates/design-brief.template.md +92 -0
  623. package/project-templates/phaser/templates/design-lens-checklist.reference.md +117 -0
  624. package/project-templates/phaser/templates/design-methodology.md +99 -0
  625. package/project-templates/phaser/templates/design.template.md +50 -0
  626. package/project-templates/phaser/templates/developer-log.template.md +258 -0
  627. package/project-templates/phaser/templates/five-axis-framework.md +194 -0
  628. package/project-templates/phaser/templates/gen-placeholder-audio.template.mjs +63 -0
  629. package/project-templates/phaser/templates/gen-placeholders.template.mjs +81 -0
  630. package/project-templates/phaser/templates/intent-clarifications.template.md +58 -0
  631. package/project-templates/phaser/templates/layout-spec.template.md +198 -0
  632. package/project-templates/phaser/templates/plan.template.md +80 -0
  633. package/project-templates/phaser/templates/project-state.template.md +136 -0
  634. package/project-templates/phaser/templates/review-report.template.md +275 -0
  635. package/project-templates/phaser/templates/style-exploration.template.md +93 -0
  636. package/project-templates/phaser/templates/ta-log.template.md +394 -0
  637. package/project-templates/phaser/tsconfig.json +20 -0
  638. package/project-templates/phaser/vite.config.ts +27 -0
  639. package/project-templates/threejs/.claude/agents/artist.md +101 -0
  640. package/project-templates/threejs/.claude/agents/developer.md +123 -0
  641. package/project-templates/threejs/.claude/agents/game-designer.md +192 -0
  642. package/project-templates/threejs/.claude/agents/refs/README.md +77 -0
  643. package/project-templates/threejs/.claude/agents/refs/artist-art-style-catalog.md +533 -0
  644. package/project-templates/threejs/.claude/agents/refs/artist-color-audio-recipes.md +153 -0
  645. package/project-templates/threejs/.claude/agents/refs/artist-deliverable-spec.md +230 -0
  646. package/project-templates/threejs/.claude/agents/refs/artist-dimension-axis.md +27 -0
  647. package/project-templates/threejs/.claude/agents/refs/artist-handoff-v2-checklist.md +76 -0
  648. package/project-templates/threejs/.claude/agents/refs/artist-legacy-fallback.md +14 -0
  649. package/project-templates/threejs/.claude/agents/refs/artist-master-composite-recipes.md +208 -0
  650. package/project-templates/threejs/.claude/agents/refs/artist-style-exploration-flow.md +55 -0
  651. package/project-templates/threejs/.claude/agents/refs/developer-dev-handoff.md +152 -0
  652. package/project-templates/threejs/.claude/agents/refs/developer-impl-cookbook.md +432 -0
  653. package/project-templates/threejs/.claude/agents/refs/developer-legacy-fallback.md +15 -0
  654. package/project-templates/threejs/.claude/agents/refs/developer-phase1-flow.md +404 -0
  655. package/project-templates/threejs/.claude/agents/refs/framework-5-component-filter.md +252 -0
  656. package/project-templates/threejs/.claude/agents/refs/framework-game-feel-juice.md +266 -0
  657. package/project-templates/threejs/.claude/agents/refs/framework-mda.md +147 -0
  658. package/project-templates/threejs/.claude/agents/refs/game-designer-gameplay-sufficiency.md +123 -0
  659. package/project-templates/threejs/.claude/agents/refs/game-designer-legacy-fallback.md +15 -0
  660. package/project-templates/threejs/.claude/agents/refs/game-designer-workflow-detail.md +69 -0
  661. package/project-templates/threejs/.claude/agents/refs/implementation-plan-guide.md +309 -0
  662. package/project-templates/threejs/.claude/agents/refs/reviewer-convergence-eval.md +350 -0
  663. package/project-templates/threejs/.claude/agents/refs/reviewer-legacy-fallback.md +14 -0
  664. package/project-templates/threejs/.claude/agents/refs/reviewer-six-dimension-eval.md +6 -0
  665. package/project-templates/threejs/.claude/agents/refs/skill-selector-guide.md +465 -0
  666. package/project-templates/threejs/.claude/agents/refs/skill-value-layers.md +145 -0
  667. package/project-templates/threejs/.claude/agents/refs/storyboard-generation-guide.md +110 -0
  668. package/project-templates/threejs/.claude/agents/refs/ta-3d-flip-recipe.md +88 -0
  669. package/project-templates/threejs/.claude/agents/refs/ta-atlas-deliverable-standard.md +67 -0
  670. package/project-templates/threejs/.claude/agents/refs/ta-batch-pipeline-recipes.md +120 -0
  671. package/project-templates/threejs/.claude/agents/refs/ta-image-generation-detail.md +300 -0
  672. package/project-templates/threejs/.claude/agents/refs/ta-image-ops-reference.md +495 -0
  673. package/project-templates/threejs/.claude/agents/refs/ta-pipeline-cookbook.md +1141 -0
  674. package/project-templates/threejs/.claude/agents/refs/ta-tools-reference.md +111 -0
  675. package/project-templates/threejs/.claude/agents/refs/ta-vfx-preset-catalog.md +365 -0
  676. package/project-templates/threejs/.claude/agents/refs/technical-artist-legacy-fallback.md +14 -0
  677. package/project-templates/threejs/.claude/agents/reviewer.md +116 -0
  678. package/project-templates/threejs/.claude/agents/technical-artist.md +100 -0
  679. package/project-templates/threejs/.claude/hooks/README.md +120 -0
  680. package/project-templates/threejs/.claude/hooks/asr-coverage-validate.mjs +381 -0
  681. package/project-templates/threejs/.claude/hooks/block-developer-preflight.mjs +185 -0
  682. package/project-templates/threejs/.claude/hooks/block-ring1-tasklist.mjs +95 -0
  683. package/project-templates/threejs/.claude/hooks/gate-dispatcher.mjs +78 -0
  684. package/project-templates/threejs/.claude/hooks/gate-runner.mjs +557 -0
  685. package/project-templates/threejs/.claude/hooks/gate.mjs +171 -0
  686. package/project-templates/threejs/.claude/hooks/snapshot-milestone.mjs +247 -0
  687. package/project-templates/threejs/.claude/hooks/user-prompt.mjs +194 -0
  688. package/project-templates/threejs/.claude/hooks/validate-atom-tree-selection.mjs +281 -0
  689. package/project-templates/threejs/.claude/hooks/validate-workflow-stop.mjs +1889 -0
  690. package/project-templates/threejs/.claude/settings.json +81 -0
  691. package/project-templates/threejs/.claude/skills/brainstorming/SKILL.md +161 -0
  692. package/project-templates/threejs/.claude/skills/brainstorming/scripts/frame-template.html +270 -0
  693. package/project-templates/threejs/.claude/skills/brainstorming/scripts/helper.js +177 -0
  694. package/project-templates/threejs/.claude/skills/brainstorming/scripts/server.cjs +354 -0
  695. package/project-templates/threejs/.claude/skills/brainstorming/scripts/start-server.sh +148 -0
  696. package/project-templates/threejs/.claude/skills/brainstorming/scripts/stop-server.sh +56 -0
  697. package/project-templates/threejs/.claude/skills/brainstorming/scripts/wait-for-selection.sh +62 -0
  698. package/project-templates/threejs/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  699. package/project-templates/threejs/.claude/skills/brainstorming/visual-companion.md +309 -0
  700. package/project-templates/threejs/.claude/skills/playcraft-ad-psychology/SKILL.md +182 -0
  701. package/project-templates/threejs/.claude/skills/playcraft-art-style-guide/SKILL.md +123 -0
  702. package/project-templates/threejs/.claude/skills/playcraft-asset-state-sheet/SKILL.md +205 -0
  703. package/project-templates/threejs/.claude/skills/playcraft-audio-generation/SKILL.md +280 -0
  704. package/project-templates/threejs/.claude/skills/playcraft-batch-pipeline/SKILL.md +184 -0
  705. package/project-templates/threejs/.claude/skills/playcraft-build-optimizer/SKILL.md +306 -0
  706. package/project-templates/threejs/.claude/skills/playcraft-image-generation/SKILL.md +298 -0
  707. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +123 -0
  708. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +254 -0
  709. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +324 -0
  710. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +97 -0
  711. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +118 -0
  712. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +137 -0
  713. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +397 -0
  714. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +296 -0
  715. package/project-templates/threejs/.claude/skills/playcraft-image-ops/SKILL.md +122 -0
  716. package/project-templates/threejs/.claude/skills/playcraft-image-processing/SKILL.md +219 -0
  717. package/project-templates/threejs/.claude/skills/playcraft-masking/SKILL.md +373 -0
  718. package/project-templates/threejs/.claude/skills/playcraft-playable-optimization/SKILL.md +161 -0
  719. package/project-templates/threejs/.claude/skills/playcraft-research/SKILL.md +215 -0
  720. package/project-templates/threejs/.claude/skills/playcraft-skill-recommender/SKILL.md +331 -0
  721. package/project-templates/threejs/.claude/skills/playcraft-sprite-generation/SKILL.md +423 -0
  722. package/project-templates/threejs/.claude/skills/playcraft-sprite-remix/SKILL.md +158 -0
  723. package/project-templates/threejs/.claude/skills/playcraft-sprite-sheet/SKILL.md +100 -0
  724. package/project-templates/threejs/.claude/skills/playcraft-storyboard/SKILL.md +167 -0
  725. package/project-templates/threejs/.claude/skills/playcraft-style-qa/SKILL.md +270 -0
  726. package/project-templates/threejs/.claude/skills/playcraft-text-rendering/SKILL.md +236 -0
  727. package/project-templates/threejs/.claude/skills/playcraft-vfx-animation/SKILL.md +130 -0
  728. package/project-templates/threejs/.claude/skills/playwright-cli/SKILL.md +390 -0
  729. package/project-templates/threejs/.claude/skills/playwright-cli/references/element-attributes.md +23 -0
  730. package/project-templates/threejs/.claude/skills/playwright-cli/references/playwright-tests.md +39 -0
  731. package/project-templates/threejs/.claude/skills/playwright-cli/references/request-mocking.md +87 -0
  732. package/project-templates/threejs/.claude/skills/playwright-cli/references/running-code.md +240 -0
  733. package/project-templates/threejs/.claude/skills/playwright-cli/references/session-management.md +226 -0
  734. package/project-templates/threejs/.claude/skills/playwright-cli/references/spec-driven-testing.md +308 -0
  735. package/project-templates/threejs/.claude/skills/playwright-cli/references/storage-state.md +275 -0
  736. package/project-templates/threejs/.claude/skills/playwright-cli/references/test-generation.md +134 -0
  737. package/project-templates/threejs/.claude/skills/playwright-cli/references/tracing.md +142 -0
  738. package/project-templates/threejs/.claude/skills/playwright-cli/references/video-recording.md +153 -0
  739. package/project-templates/threejs/.claude/skills/session-analyzer/SKILL.md +386 -0
  740. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +182 -0
  741. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/find-turns.mjs +72 -0
  742. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/heavy-output.mjs +121 -0
  743. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/resolve-session.mjs +103 -0
  744. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +127 -0
  745. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +106 -0
  746. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/time-gaps.mjs +128 -0
  747. package/project-templates/threejs/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +67 -0
  748. package/project-templates/threejs/.claude/snapshot.mjs +257 -0
  749. package/project-templates/threejs/.cursor/hooks.json +17 -0
  750. package/project-templates/threejs/.cursor/rules/playcraft-orchestrator.mdc +142 -0
  751. package/project-templates/threejs/.cursor/rules/playcraft-subagent-boundary.mdc +29 -0
  752. package/project-templates/threejs/.playcraft-engine +1 -0
  753. package/project-templates/threejs/CHANGELOG.md +105 -0
  754. package/project-templates/threejs/CLAUDE.md +84 -0
  755. package/project-templates/threejs/assets/audio/bgm/.gitkeep +0 -0
  756. package/project-templates/threejs/assets/audio/sfx/.gitkeep +0 -0
  757. package/project-templates/threejs/assets/bundles/.gitkeep +0 -0
  758. package/project-templates/threejs/assets/images/bg/.gitkeep +0 -0
  759. package/project-templates/threejs/assets/images/reference/.gitkeep +0 -0
  760. package/project-templates/threejs/assets/images/storyboard/.gitkeep +0 -0
  761. package/project-templates/threejs/assets/images/tiles/.gitkeep +0 -0
  762. package/project-templates/threejs/assets/images/ui/.gitkeep +0 -0
  763. package/project-templates/threejs/assets/images/vfx/.gitkeep +0 -0
  764. package/project-templates/threejs/assets/models/.gitkeep +0 -0
  765. package/project-templates/threejs/docs/DESIGN.md +65 -0
  766. package/project-templates/threejs/docs/intent-clarifications.md +58 -0
  767. package/project-templates/threejs/docs/pipeline-overview.md +69 -0
  768. package/project-templates/threejs/docs/project-state.md +211 -0
  769. package/project-templates/threejs/docs/scaffold-manifest.md +10 -0
  770. package/project-templates/threejs/docs/team/agent-conduct.md +67 -0
  771. package/project-templates/threejs/docs/team/agent-runtime-matrix.md +80 -0
  772. package/project-templates/threejs/docs/team/atom-tree-format.md +114 -0
  773. package/project-templates/threejs/docs/team/collaboration.md +391 -0
  774. package/project-templates/threejs/docs/team/core-model.md +85 -0
  775. package/project-templates/threejs/docs/team/game-designer-migration-todo.md +8 -0
  776. package/project-templates/threejs/docs/team/harness-legacy-deprecation.md +23 -0
  777. package/project-templates/threejs/docs/team/platform-capabilities.md +18 -0
  778. package/project-templates/threejs/docs/team/workflow-changelog.md +137 -0
  779. package/project-templates/threejs/docs/team/workflow-consistency-checklist.md +240 -0
  780. package/project-templates/threejs/focus-lab/.gitkeep +0 -0
  781. package/project-templates/threejs/game/config/.gitkeep +0 -0
  782. package/project-templates/threejs/game/config/game-config.ts +46 -0
  783. package/project-templates/threejs/game/contract/publish.ts +141 -0
  784. package/project-templates/threejs/game/contract/types.ts +34 -0
  785. package/project-templates/threejs/game/gameplay/.gitkeep +0 -0
  786. package/project-templates/threejs/game/index.ts +76 -0
  787. package/project-templates/threejs/game/runtime-contract.ts +15 -0
  788. package/project-templates/threejs/game/scenes/.gitkeep +0 -0
  789. package/project-templates/threejs/globals.d.ts +51 -0
  790. package/project-templates/threejs/index.css +34 -0
  791. package/project-templates/threejs/index.html +18 -0
  792. package/project-templates/threejs/main.ts +9 -0
  793. package/project-templates/threejs/package.json +79 -0
  794. package/project-templates/threejs/skills/README.md +52 -0
  795. package/project-templates/threejs/skills/_shared/agent-prep.md +136 -0
  796. package/project-templates/threejs/skills/_shared/requirements.txt +1 -0
  797. package/project-templates/threejs/skills/_shared/scripts/build-evidence-gate.mjs +87 -0
  798. package/project-templates/threejs/skills/_shared/scripts/context-budget.mjs +215 -0
  799. package/project-templates/threejs/skills/_shared/scripts/create-playable.mjs +140 -0
  800. package/project-templates/threejs/skills/_shared/scripts/dev-start.mjs +151 -0
  801. package/project-templates/threejs/skills/_shared/scripts/disclosure-config.mjs +480 -0
  802. package/project-templates/threejs/skills/_shared/scripts/ensure-project.mjs +532 -0
  803. package/project-templates/threejs/skills/_shared/scripts/gen-placeholder-audio.py +345 -0
  804. package/project-templates/threejs/skills/_shared/scripts/gen-placeholder.py +244 -0
  805. package/project-templates/threejs/skills/_shared/scripts/harness-smoke.mjs +257 -0
  806. package/project-templates/threejs/skills/_shared/scripts/lib/validator-artifacts.mjs +129 -0
  807. package/project-templates/threejs/skills/_shared/scripts/placeholder-pack-sheet.mjs +67 -0
  808. package/project-templates/threejs/skills/_shared/scripts/placeholder_audio_lib.py +142 -0
  809. package/project-templates/threejs/skills/_shared/scripts/placeholder_lib.py +993 -0
  810. package/project-templates/threejs/skills/_shared/scripts/render-project-state.mjs +278 -0
  811. package/project-templates/threejs/skills/_shared/scripts/ring-config.mjs +252 -0
  812. package/project-templates/threejs/skills/_shared/scripts/skills-check.mjs +176 -0
  813. package/project-templates/threejs/skills/_shared/scripts/slice-set.mjs +77 -0
  814. package/project-templates/threejs/skills/_shared/scripts/state-advance-ring.mjs +63 -0
  815. package/project-templates/threejs/skills/_shared/scripts/state-get.mjs +215 -0
  816. package/project-templates/threejs/skills/_shared/scripts/state-handoff.mjs +120 -0
  817. package/project-templates/threejs/skills/_shared/scripts/state-set.mjs +113 -0
  818. package/project-templates/threejs/skills/_shared/scripts/state-store.mjs +893 -0
  819. package/project-templates/threejs/skills/_shared/scripts/sync-template-skills.mjs +112 -0
  820. package/project-templates/threejs/skills/_shared/scripts/verify-asset-code-sync.mjs +265 -0
  821. package/project-templates/threejs/skills/_shared/scripts/verify-atom-conformance.mjs +181 -0
  822. package/project-templates/threejs/skills/_shared/scripts/verify-env.mjs +285 -0
  823. package/project-templates/threejs/skills/_shared/scripts/verify-placeholders.mjs +161 -0
  824. package/project-templates/threejs/skills/_shared/scripts/workflow-doctor.mjs +348 -0
  825. package/project-templates/threejs/skills/playable-animate/SKILL.md +52 -0
  826. package/project-templates/threejs/skills/playable-animate/agents/openai.yaml +4 -0
  827. package/project-templates/threejs/skills/playable-animate/references/board-refresh.md +30 -0
  828. package/project-templates/threejs/skills/playable-animate/references/diagnosis-checklist.md +25 -0
  829. package/project-templates/threejs/skills/playable-animate/references/entrance-sequencing.md +33 -0
  830. package/project-templates/threejs/skills/playable-animate/references/interaction-timing.md +23 -0
  831. package/project-templates/threejs/skills/playable-art/SKILL.md +203 -0
  832. package/project-templates/threejs/skills/playable-art/agents/openai.yaml +4 -0
  833. package/project-templates/threejs/skills/playable-art/references/alpha-postprocess.md +46 -0
  834. package/project-templates/threejs/skills/playable-art/references/cta-art-spec.md +59 -0
  835. package/project-templates/threejs/skills/playable-art/references/layout-proportions.md +30 -0
  836. package/project-templates/threejs/skills/playable-art/references/prompt-patterns.md +83 -0
  837. package/project-templates/threejs/skills/playable-art/references/reference-comparison.md +30 -0
  838. package/project-templates/threejs/skills/playable-art/references/sheet-import-v2.md +91 -0
  839. package/project-templates/threejs/skills/playable-art/scripts/build-atlas.py +332 -0
  840. package/project-templates/threejs/skills/playable-art/scripts/chroma-key.py +50 -0
  841. package/project-templates/threejs/skills/playable-art/scripts/extract-alpha-split.py +65 -0
  842. package/project-templates/threejs/skills/playable-art/scripts/extract-dual-bg-alpha.py +118 -0
  843. package/project-templates/threejs/skills/playable-art/scripts/import-gpt-art-sheets-v2.py +403 -0
  844. package/project-templates/threejs/skills/playable-art/scripts/import-gpt-art-sheets.py +280 -0
  845. package/project-templates/threejs/skills/playable-art/scripts/import-gpt-tile-sheet.py +114 -0
  846. package/project-templates/threejs/skills/playable-art/scripts/import_gpt_art_pipeline.py +321 -0
  847. package/project-templates/threejs/skills/playable-art/scripts/import_gpt_art_sheets_v2_test.py +126 -0
  848. package/project-templates/threejs/skills/playable-art/scripts/placeholder_common.py +98 -0
  849. package/project-templates/threejs/skills/playable-art/scripts/remove-bg.py +91 -0
  850. package/project-templates/threejs/skills/playable-art/scripts/review-processed-assets.py +468 -0
  851. package/project-templates/threejs/skills/playable-art/scripts/review_processed_assets_test.py +116 -0
  852. package/project-templates/threejs/skills/playable-art/scripts/verify-alpha-clean.py +105 -0
  853. package/project-templates/threejs/skills/playable-debug/SKILL.md +116 -0
  854. package/project-templates/threejs/skills/playable-debug/agents/openai.yaml +4 -0
  855. package/project-templates/threejs/skills/playable-debug/references/debug-config.md +40 -0
  856. package/project-templates/threejs/skills/playable-focus/SKILL.md +148 -0
  857. package/project-templates/threejs/skills/playable-focus/scripts/bootstrap-playground.mjs +84 -0
  858. package/project-templates/threejs/skills/playable-focus/scripts/extract-focus-frames.mjs +87 -0
  859. package/project-templates/threejs/skills/playable-focus/scripts/generate-focus-reports.mjs +121 -0
  860. package/project-templates/threejs/skills/playable-focus/scripts/playground.mjs +390 -0
  861. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/frame.html +39 -0
  862. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/harness/clean-stage.js +114 -0
  863. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/harness/frame-lab-scene.js +94 -0
  864. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/harness/particle-lab-scene.js +224 -0
  865. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/model.html +16 -0
  866. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/particle.html +38 -0
  867. package/project-templates/threejs/skills/playable-focus/templates/focus-lab/shatter.html +47 -0
  868. package/project-templates/threejs/skills/playable-fx-decompose/SKILL.md +212 -0
  869. package/project-templates/threejs/skills/playable-fx-decompose/examples.md +89 -0
  870. package/project-templates/threejs/skills/playable-fx-decompose/reference.md +201 -0
  871. package/project-templates/threejs/skills/playable-fx-decompose/requirements.txt +2 -0
  872. package/project-templates/threejs/skills/playable-fx-decompose/scripts/build-blank-tile-crack.py +192 -0
  873. package/project-templates/threejs/skills/playable-fx-decompose/scripts/fix-shard-debris-frames.py +60 -0
  874. package/project-templates/threejs/skills/playable-fx-decompose/scripts/generate-shard-debris.py +276 -0
  875. package/project-templates/threejs/skills/playable-fx-peak/SKILL.md +237 -0
  876. package/project-templates/threejs/skills/playable-fx-peak/requirements.txt +2 -0
  877. package/project-templates/threejs/skills/playable-fx-peak/scripts/fix-frame-edges.py +70 -0
  878. package/project-templates/threejs/skills/playable-fx-peak/scripts/repack-frame-sequence.py +526 -0
  879. package/project-templates/threejs/skills/playable-fx-peak/scripts/validate-frame-anchors.py +130 -0
  880. package/project-templates/threejs/skills/playable-placeholder/SKILL.md +239 -0
  881. package/project-templates/threejs/skills/playable-record/SKILL.md +166 -0
  882. package/project-templates/threejs/skills/playable-record/scripts/lib/build-artifact.mjs +92 -0
  883. package/project-templates/threejs/skills/playable-record/scripts/lib/dev-server.mjs +104 -0
  884. package/project-templates/threejs/skills/playable-record/scripts/lib/record-audio-bridge.js +141 -0
  885. package/project-templates/threejs/skills/playable-record/scripts/lib/slice-structure-verify.mjs +199 -0
  886. package/project-templates/threejs/skills/playable-record/scripts/record-playable.mjs +583 -0
  887. package/project-templates/threejs/skills/playable-record/scripts/verify-build.mjs +185 -0
  888. package/project-templates/threejs/skills/playable-record/scripts/verify-contract.mjs +261 -0
  889. package/project-templates/threejs/skills/playable-record/scripts/verify-firstwin.mjs +398 -0
  890. package/project-templates/threejs/skills/playable-record/scripts/verify-fusion.mjs +320 -0
  891. package/project-templates/threejs/skills/playable-record/scripts/verify-lifecycle.mjs +78 -0
  892. package/project-templates/threejs/skills/playable-record/scripts/verify-slice-artist.mjs +53 -0
  893. package/project-templates/threejs/skills/playable-record/scripts/verify-slice-ta.mjs +53 -0
  894. package/project-templates/threejs/skills/playable-record/scripts/verify-slice.mjs +142 -0
  895. package/project-templates/threejs/skills/playable-record/scripts/verify-visual-ring.mjs +250 -0
  896. package/project-templates/threejs/skills/playable-record/scripts/verify-visual-ring1.mjs +190 -0
  897. package/project-templates/threejs/skills/playable-record/scripts/verify-vlm-video.mjs +227 -0
  898. package/project-templates/threejs/skills/playable-validate/SKILL.md +260 -0
  899. package/project-templates/threejs/skills/playable-validate/references/checklist-detail.md +36 -0
  900. package/project-templates/threejs/skills/playable-validate/references/single-html-bundle.md +76 -0
  901. package/project-templates/threejs/skills/playable-validate/validation-rules.md +200 -0
  902. package/project-templates/threejs/skills/playable-verify-ui/SKILL.md +295 -0
  903. package/project-templates/threejs/skills/playable-verify-ui/examples/asset-manifest.example.json +36 -0
  904. package/project-templates/threejs/skills/playable-verify-ui/examples/mahjong-match.profile.yaml +334 -0
  905. package/project-templates/threejs/skills/playable-verify-ui/profiles/template.profile.yaml +84 -0
  906. package/project-templates/threejs/skills/playable-verify-ui/reference.md +165 -0
  907. package/project-templates/threejs/skills/playable-verify-ui/references/phaser-patterns.md +67 -0
  908. package/project-templates/threejs/skills/playable-verify-ui/references/scaling-decision-tree.md +51 -0
  909. package/project-templates/threejs/skills/playable-verify-ui/requirements.txt +7 -0
  910. package/project-templates/threejs/skills/playable-verify-ui/schema/asset-manifest.schema.json +68 -0
  911. package/project-templates/threejs/skills/playable-verify-ui/schema/playable-ui-profile.schema.json +171 -0
  912. package/project-templates/threejs/skills/playable-verify-ui/scripts/asset_manifest.py +231 -0
  913. package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/__init__.py +1 -0
  914. package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/config_expr.js +218 -0
  915. package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/node_utils.js +51 -0
  916. package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/profile_loader.py +59 -0
  917. package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/report.py +106 -0
  918. package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/runtime_contract.js +116 -0
  919. package/project-templates/threejs/skills/playable-verify-ui/scripts/measure_frame_content.py +77 -0
  920. package/project-templates/threejs/skills/playable-verify-ui/scripts/run_all.py +265 -0
  921. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_asset_sizes.py +77 -0
  922. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_assets_present.py +62 -0
  923. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_atlas_budget.py +84 -0
  924. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_atlas_frames.py +79 -0
  925. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_bg_clean.py +365 -0
  926. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_doc_asset_sync.py +90 -0
  927. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +59 -0
  928. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_game_config_load.js +54 -0
  929. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +64 -0
  930. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_layout_regions.js +110 -0
  931. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_profile_schema.py +37 -0
  932. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_ring1_visual.py +211 -0
  933. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_runtime_contract.js +58 -0
  934. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_script_load_order.js +73 -0
  935. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_slice_plan.py +238 -0
  936. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_slice_plan_test.py +125 -0
  937. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_text_overlap.py +333 -0
  938. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_tile_consistency.py +323 -0
  939. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_vision_evidence.py +894 -0
  940. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_vision_evidence_test.py +122 -0
  941. package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_visual.py +422 -0
  942. package/project-templates/threejs/ta-workspace/scripts/.gitkeep +0 -0
  943. package/project-templates/threejs/templates/artist-log.template.md +182 -0
  944. package/project-templates/threejs/templates/atom-tree.template.json +133 -0
  945. package/project-templates/threejs/templates/design-brief.template.md +92 -0
  946. package/project-templates/threejs/templates/design-lens-checklist.reference.md +117 -0
  947. package/project-templates/threejs/templates/design-methodology.md +99 -0
  948. package/project-templates/threejs/templates/design.template.md +50 -0
  949. package/project-templates/threejs/templates/developer-log.template.md +258 -0
  950. package/project-templates/threejs/templates/five-axis-framework.md +194 -0
  951. package/project-templates/threejs/templates/gen-placeholder-audio.template.mjs +63 -0
  952. package/project-templates/threejs/templates/gen-placeholders.template.mjs +81 -0
  953. package/project-templates/threejs/templates/intent-clarifications.template.md +58 -0
  954. package/project-templates/threejs/templates/layout-spec.template.md +198 -0
  955. package/project-templates/threejs/templates/plan.template.md +80 -0
  956. package/project-templates/threejs/templates/project-state.template.md +136 -0
  957. package/project-templates/threejs/templates/review-report.template.md +275 -0
  958. package/project-templates/threejs/templates/style-exploration.template.md +93 -0
  959. package/project-templates/threejs/templates/ta-log.template.md +394 -0
  960. package/project-templates/threejs/tsconfig.json +20 -0
  961. package/project-templates/threejs/vite.config.ts +27 -0
  962. package/dist/atom-plan/validate-atom-plan.js +0 -298
  963. package/dist/playable/base-builder.js +0 -265
  964. package/dist/playable/builder.js +0 -1462
  965. package/dist/playable/converter.js +0 -150
  966. package/dist/playable/index.js +0 -3
  967. package/dist/playable/platforms/base.js +0 -12
  968. package/dist/playable/platforms/facebook.js +0 -37
  969. package/dist/playable/platforms/index.js +0 -24
  970. package/dist/playable/platforms/snapchat.js +0 -59
  971. package/dist/playable/playable-builder.js +0 -521
  972. package/dist/playable/types.js +0 -1
  973. package/dist/playable/vite/config-builder.js +0 -136
  974. package/dist/playable/vite/platform-configs.js +0 -102
  975. package/dist/playable/vite/plugin-model-compression.js +0 -63
  976. package/dist/playable/vite/plugin-platform.js +0 -65
  977. package/dist/playable/vite/plugin-playcanvas.js +0 -454
  978. package/dist/playable/vite-builder.js +0 -125
  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/settings.local.json +0 -4
  985. package/project-template/.claude/skills/playcraft-workflow/SKILL.md +0 -485
  986. package/project-template/docs/team/atom-plan-format.md +0 -173
  987. package/project-template/templates/atom-plan.template.json +0 -44
  988. package/project-template/templates/atom-plan.template.md +0 -108
  989. /package/dist/{atom-plan → asr}/validate-asr-coverage.js +0 -0
  990. /package/{project-template → engine-packs/phaser}/game/config/.gitkeep +0 -0
  991. /package/{project-template → engine-packs/phaser}/game/gameplay/.gitkeep +0 -0
  992. /package/{project-template → engine-packs/phaser}/game/scenes/.gitkeep +0 -0
  993. /package/{project-template/logs → engine-packs/threejs/game/config}/.gitkeep +0 -0
  994. /package/{project-template/ta-workspace/logs → engine-packs/threejs/game/gameplay}/.gitkeep +0 -0
  995. /package/{project-template/ta-workspace/tmp → engine-packs/threejs/game/scenes}/.gitkeep +0 -0
  996. /package/project-template/.claude/agents/refs/{designer-art-style-catalog.md → artist-art-style-catalog.md} +0 -0
@@ -1,280 +1,84 @@
1
1
  # PlayCraft Playable Ads Project
2
2
 
3
- ## Mission
3
+ ## L0 Quickstart
4
4
 
5
- > **构建超高品质的可玩广告。** 品质优先,不惜体积与时长。打造让玩家沉浸、让广告主满意的顶级 HTML5 迷你游戏体验。每一个环节都追求极致——从视觉到交互,从音感到节奏,从第一秒的 Hook 到最后一个 CTA。
5
+ You are building a playable ad: a self-contained HTML5 mini-game. Daily work is driven by a **slice queue** (`dispatchPacket`); **growth rings** are the outer budget, convergence boundary, and user Ring Gate.
6
6
 
7
- ## What You're Building
7
+ Start every turn with the smallest possible context:
8
8
 
9
- A **playable ad** — a self-contained HTML5 mini-game that runs inside an ad slot.
10
- It hooks the player in 3 seconds, delivers a compressed gameplay experience, then drives to an install CTA.
11
-
12
- ### Hard Constraints (non-negotiable)
13
-
14
- - **First level guarantees player success** — tutorial must be unlosable
15
- - **Hook decides everything** — first 3 seconds are the lifeline
16
-
17
- ## Project State
18
-
19
- **Always read `docs/project-state.md` first.** Parse **`## Agent handoff`** (YAML) before any orchestration or sub-agent work. It tracks:
20
-
21
- - Current stage and active agent(s)
22
- - Gates (#1, #2a, #2b, #3), `selectedMcOption`, `uiReworkRound`
23
- - Handoff: `subagent_stop`, `gate_pending`, `next_orchestrator_action`
24
- - Completed checkpoints (resume from here, not from scratch)
25
- - File index pointing to all design docs and assets
26
- - Production Pipeline serial waves (Designer Ph.2 → TA → Developer in `ui_pass` / `gameplay_pass`)
27
-
28
- ## Stage Model
29
-
30
- ```
31
- pm → style_exploration → production → ui_pass → ui_review ⇄ ui_rework → gameplay_pass → done
9
+ ```bash
10
+ npm run workflow:doctor
11
+ npm run state:get
32
12
  ```
33
13
 
34
- | Stage | Active Agent(s) | Completion |
35
- | ------------------- | ------------------------------------- | ------------------------------------------------------------------------- |
36
- | `pm` | PM | Gate #1 passed (after Reviewer `design_check`) |
37
- | `style_exploration` | Designer Phase 1 | Gate #2b passed (MC + ASR; after Reviewer `design_check`) |
38
- | `production` | Designer Ph.2 → **TA** (serial waves) | Production Pipeline Wave 1 + Wave 2 both `done` |
39
- | `ui_pass` | **Developer** (UI shell only) | `devStatus: ui_ready` + devUrl; light logic only (no core gameplay rules) |
40
- | `ui_review` | Reviewer (`ui_diff`) | Browser screenshots vs MC panels pass (or max 5 `ui_rework` rounds) |
41
- | `ui_rework` | Developer (+ TA/Designer on demand) | Fixes per UI Diff Report → re-enter `ui_review` |
42
- | `gameplay_pass` | **Developer** (core gameplay) | `devStatus: ready` + devUrl; Reviewer `load_check` → Gate #3 |
43
- | `done` | — | Gate #3 passed (user accepts at devUrl) |
44
-
45
- ## Agent Team
46
-
47
- 5 specialized agents, each with full instructions in `.claude/agents/<name>.md` (see **Goals** § Core responsibilities in each file).
48
-
49
- | Agent | Top 3 responsibilities (priority order) | Invoke when |
50
- | -------------------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------------- |
51
- | **PM** | 1) Experience + gameplay design 2) Zero-ambiguity contracts 3) Gates + ICP | `@pm` — start project, spec gaps |
52
- | **Designer** | 1) Gate #2 visual+narrative (MC = Developer UI spec) 2) TA-ready handoff 3) Audio + digit strip | `@designer` — style exploration, audio |
53
- | **Technical Artist** | 1) Style-faithful mass production 2) 100% assetMapping 3) Production-grade assets for Developer | `@technical-artist` — asset pipeline |
54
- | **Developer** | 1) Dev UI matches MC 2) Dev gameplay matches PM 3) Dev preview owner — **final owner of devUrl** | `@developer` — integrate, `npm run dev` self-check |
55
- | **Reviewer** | 1) `design_check` before Gates 2) `ui_diff` (screenshots vs MC) 3) `load_check` before Gate #3 | `@reviewer` — design / UI / load convergence |
56
-
57
- ### PM is the project owner
58
-
59
- PM is accountable for **intent and contracts** (Layout Spec + Atom Plan, degradation decisions). **User-facing Gate dialogue** is handled by the **Orchestrator** (you), not sub-agents — see [agent-conduct.md](docs/team/agent-conduct.md).
60
-
61
- ### Gates (Orchestrator-Only)
62
-
63
- Full protocol: [docs/team/collaboration.md § Gate Protocol](docs/team/collaboration.md#gate-protocol-orchestrator-only).
64
-
65
- 1. **Gate #1 (Direction)** — PM prepares four docs → **Reviewer `design_check`** → **you** `AskUserQuestion` → user confirms gameplay + style direction
66
- 2. **Gate #2a (MC selection)** — Designer produces MC options → **you** `AskUserQuestion` → set `selectedMcOption` (no Reviewer pre-check)
67
- 3. **Gate #2b (MC + ASR final)** — Designer produces ASR sheets (UI + element) + docs → **Reviewer `design_check`** → **you** `AskUserQuestion` → then `stage: production`
68
- 4. **Gate #3 (Dev delivery)** — Reviewer `load_check` pass → **you** share **devUrl** → user accepts in browser (user never runs `npm run dev`; gameplay judged by user)
69
-
70
- **Master Composite** — five 9:16 panels in one image: **Panel 1 = concept panel** (Main Gameplay, all element types); **Panels 2–5 = storyboard** (Hook, Onboarding, End Card, CTA). See collaboration.md § MC five panels.
71
-
72
- ### Key Mechanisms
73
-
74
- **Asset Contract** — Layout Spec `assetMapping` paths are locked after Gate #1:
75
-
76
- - **TA** produces files at these exact paths (production Wave 2)
77
- - **Developer** (`ui_pass`): bind real assets, scene switching, simple states → **`npm run dev`** → `devStatus: ui_ready` + devUrl
78
- - **Developer** (`gameplay_pass`): add core gameplay on verified UI → `devStatus: ready` + devUrl (see Dev Preview Protocol)
79
-
80
- **Spec Quick-Check** — 30s validation per wave:
81
-
82
- - **TA** (production Wave 2 start): every assetMapping entry has clear size/format specs
83
- - **Developer** (`ui_pass` start): every GameplayAtom reference exists in assetMapping
84
- - Gaps → `spec-gap` in project-state.md → PM auto-supplements within 5 min
85
-
86
- **UI Rework Loop** — Max 5 iterations (`uiReworkRound` in project-state):
87
-
88
- - Reviewer `ui_diff` routes issues by target agent (`developer` / `ta` / `designer`)
89
- - Severity: `critical` / `major` (must fix) / `minor` (log only, does not block pass)
90
- - After 5 rounds → orchestrator decision (proceed to `gameplay_pass` or escalate to user)
91
-
92
- **Gameplay delivery** — No AI rework loop. Reviewer `load_check` only (page loads, no console errors). Gameplay quality = **user at Gate #3**.
93
-
94
- **Intent Clarification Protocol (ICP)** — Agent-to-agent async Q&A during production:
95
-
96
- - Any agent writes questions to `docs/intent-clarifications.md`; target agent answers
97
- - Non-blocking: asker continues with reasonable assumption, adjusts if needed after answer
98
- - PM monitors: >3 open questions or single agent receiving >3 questions → intent transmission fault
99
- - Designer adds Style Intent Notes + Anti-Pattern Notes to `designer-log.md` to reduce TA ambiguity
100
- - TA runs Style Interpretation Check + Micro-Batch Validation before batch production
101
- - Developer maps storyboard frames to code scenes in `developer-log.md`
102
- - **Developer is the final owner of the Dev preview outcome** — if Dev shows missing/wrong assets, Developer routes rework to TA/Designer via ICP (see Dev Preview Protocol)
103
-
104
- ### Designer vs Technical Artist
105
-
106
- Designer = **"生"** (creative generation): **Master Composite** (concept panel + four storyboard panels), **ASR** (UI + element state reference sheets), all audio (BGM + SFX).
107
- TA = **"产"** (production pipeline): extract from MC/ASR (via `crop` / `segment`), complete full asset set, runtime atlases, 3D, VFX, post-processing.
14
+ `state:get` tells you the current `iteration`, `loop`, `currentAction`, `next_orchestrator_action`, `contextPacket`, current required files, allowed tasks, forbidden tasks, current verifiers, and next commands. **Use `state:get` as your handoff summary — never open or hand-edit `docs/project-state.md`.** Read `contextPacket` first, then only the files `state:get` lists as required. Pull deeper docs only when the current action names them.
108
15
 
109
- ## User interaction model
16
+ > **State is programmatic.** `docs/project-state.json` is the machine source of truth, including `handoffContext` shared working memory; `docs/project-state.md` is a GENERATED, read-only view re-rendered after every write. **Read state with `npm run state:get`; write state with `npm run state:set` (or `npm run ring:gate` / STOP hooks).** Do not edit the markdown by hand — your edits will be overwritten on the next write, and the tables you need always exist because the renderer emits them.
110
17
 
111
- Three phases — **do not ask the user to run terminal commands** for preview.
18
+ ## Non-Negotiables
112
19
 
113
- | Phase | Who talks to user | User does |
114
- | ---------------------- | ----------------------------------------- | --------------------------------------------------------------- |
115
- | **A — Choose** | **Orchestrator only** (`AskUserQuestion`) | Gate #1, #2a, #2b — no sub-agent user prompts |
116
- | **B — Produce** | Nobody (ICP is agent-to-agent) | Nothing |
117
- | **C — Deliver in Dev** | **Orchestrator** | Gate #3: open **devUrl** you provide; accept or request changes |
20
+ - First level must guarantee player success.
21
+ - Runtime must start at `HOOK`.
22
+ - `autoPlay()` must progress from player-reachable actions to `ENDCARD`; do not fake victory by directly setting `ENDCARD`, repainting the whole board into a win, or calling a win screen directly.
23
+ - For Ring 1, do not create internal Task lists (`TaskCreate` / `TaskUpdate` / …). **You are the orchestrator** — dispatch role subagents via `Task` / `@game-designer` / temporary ref-flow atom-selection subagent / `@developer`; do **not** role-play Designer, atom selector, or Developer inline in one session.
24
+ - Use project scripts only: `npm run ...` or repository-provided `playcraft ...`; never use `npx`.
25
+ - Typecheck with `npm run typecheck`.
26
+ - Harness pass standard is `window.__playable`; legacy `window.__game` scene hooks are migration-only.
27
+ - User Ring Gate is orchestrator-only.
28
+ - Follow `state:get` output, not remembered Ring instructions.
118
29
 
119
- ## Dev preview protocol
30
+ ## Slice-axis dispatch (primary — orchestrator)
120
31
 
121
- **Dev** = local preview via **`npm run dev`** at project root (implementation is whatever `package.json` → `scripts.dev` defines). **Not** `playcraft start` unless the project script explicitly uses it.
32
+ When `npm run state:get -- --json dispatchPacket dispatchMode recommendedNextAction` returns **`dispatchMode: true`**:
122
33
 
123
- | Role | Runs `npm run dev`? | Responsibility |
124
- | ---------------------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------- |
125
- | **Developer** | **Yes** (throughout `ui_pass` + `gameplay_pass`) | **Final owner of Dev outcome** — UI shell then gameplay at devUrl |
126
- | **Reviewer** | **Yes** if needed | **`playwright-cli`**: `design_check` (docs), `ui_diff` (screenshots vs MC), `load_check` (no errors) |
127
- | **You (orchestrator)** | Only if dev server stopped | Keep devUrl valid for Gate #3; **user only clicks the link** |
128
- | **PM / Designer / TA** | No | Fix assets when Developer blocks upstream (see below) |
129
- | **User** | **Never** | Gate #3: click devUrl only |
34
+ 1. **Dispatch unit** = `role + doWhat + flow + sliceId` from `dispatchPacket` — not ring loop names.
35
+ 2. Invoke subagents with **packet scope only**; never say "Ring 1 build" or ask them to self-identify Ring / Gate / Loop.
36
+ 3. After STOP: trust **`sliceState`** + STOP hook (`verify:slice` / `verify:slice-artist` / `verify:slice-ta`, then `slice:set`) — not handoff markdown as authority.
37
+ 4. **`ring:gate`** still runs for objective DoD and user Ring Gate; it aggregates slice queue terminal state but does **not** replace per-slice verify on STOP.
130
38
 
131
- ### Developer upstream rework
39
+ When **`dispatchPacket` is null** (`dispatchMode: false`): use the legacy growth-ring path below until Designer seeds `sliceState`.
132
40
 
133
- When Developer finds **missing or substandard** Designer/TA output in Dev:
41
+ ## Current Workflow
134
42
 
135
- 1. Log blockers in `developer-log.md` + `project-state.md` (`devStatus: blocked_upstream`, `devBlockers`).
136
- 2. Write `docs/intent-clarifications.md` with paths, gap vs MC/spec, and acceptance criteria.
137
- 3. Mark affected atoms `blocked` in `atom-plan.md`.
138
- 4. **You** re-invoke `@technical-artist` and/or `@designer` for targeted rework → then `@developer` again.
139
- 5. Developer re-runs `npm run dev` until no open blockers → `devStatus: ui_ready` (after `ui_pass`) or `devStatus: ready` (after `gameplay_pass`) + **devUrl**.
43
+ 1. Read state with `npm run state:get` (never open the generated `docs/project-state.md`).
44
+ 2. If `dispatchMode: true` → follow `recommendedNextAction` / `dispatchPacket`; else follow `next_orchestrator_action`.
45
+ 3. Keep work inside the current slice (dispatch mode) or current ring (legacy).
46
+ 4. After a sub-agent stops, run verifiers from `state:get` (per-slice verify before ring gate when slices are active).
47
+ 5. When `ring:gate` says `canAskUser: yes`, the orchestrator asks the user to accept the dev URL.
140
48
 
141
- **Never** set `devStatus: ui_ready` or `ready` with placeholders, open `devBlockers`, or silent skips.
49
+ ## Ring 1 Dispatch Path (legacy growth-rings — orchestrator)
142
50
 
143
- ### Gate #3 (orchestrator only)
51
+ When `state:get` reports `iteration: 1`, **stay orchestrator** — invoke role subagents; do not inline their work.
144
52
 
145
- 1. Reviewer `load_check: passed` (page loads within 10s, console has no Error-level logs).
146
- 2. Read **devUrl** from `project-state.md`; if dev server down, run `npm run dev` and refresh devUrl (user still only opens the link).
147
- 3. `AskUserQuestion`: show devUrl + accept / request changes (route to PM/Designer/TA/Developer).
148
- 4. User accepts → `stage: done`, `gates.#3 = passed`.
53
+ | `loop` | Orchestrator does |
54
+ | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
55
+ | `clarify` | **Invoke `@game-designer`** — ring 1 clarify (single concise `docs/DESIGN.md`). Do not write `DESIGN.md` yourself. |
56
+ | (after GD STOP) | **Spawn a temporary ref-flow atom-selection subagent** — create the minimal ring 1 atom-tree package: engine decision, compact gameplay trunk, selected atoms, and ring 1 verifier metadata. Do not make main orchestrator select atoms inline. |
57
+ | (after selector STOP) | Run scaffold gate: `validate-atom-tree-selection` → `init-template --from-atom-tree` → `npm install` → `npm run verify:contract` → `npm run verify:lifecycle`. Set `loop: build`, then **Invoke `@developer`**. |
58
+ | `build` | **Invoke `@developer`** — ring 1 build only the smallest verifiable playable spine (placeholder art, one player-reachable action loop, `window.__playable`). Developer self-gates with `verify:contract` + `verify:lifecycle` + `verify:firstwin` + `verify:placeholders` on STOP. |
59
+ | `verify` | Run `npm run ring:gate -- --iteration 1` (no `@reviewer` in ring 1). |
149
60
 
150
- **Current delivery endpoint = user acceptance in Dev.** `playcraft build` is **future**, not required for `done`.
61
+ Follow `next_orchestrator_action` from handoff when `subagent_stop: true`. See `docs/team/collaboration.md` § Ring 1 engine scaffold.
151
62
 
152
- ## Orchestration Protocol
63
+ ## Deeper References
153
64
 
154
- When you receive a user request to create a playable ad, determine your execution mode first.
65
+ Use these only when the current action needs them:
155
66
 
156
- ### Multi-Agent Mode (default, preferred)
67
+ | Need | Read |
68
+ | ---------------------------------------------- | ----------------------------------------- |
69
+ | Full collaboration and Ring Gate protocol | `docs/team/collaboration.md` |
70
+ | Role conduct and MUST/NEVER rules | `docs/team/agent-conduct.md` |
71
+ | Runtime model and `window.__playable` boundary | `docs/team/core-model.md` |
72
+ | Post-stop verification matrix | `docs/team/agent-runtime-matrix.md` |
73
+ | Atom-tree schema and Skill selection | `docs/team/atom-tree-format.md` |
74
+ | Legacy harness migration | `docs/team/harness-legacy-deprecation.md` |
157
75
 
158
- If sub-agent invocation is available (Claude Code `@agent` syntax), **you are the orchestrator**. Do NOT role-play all agents yourself in one session.
76
+ ## Directory Map
159
77
 
160
- ### Orchestrator startup (every turn)
161
-
162
- 1. Read `docs/project-state.md` → parse **`## Agent handoff`** YAML + Gates table.
163
- 2. If `gate_pending` is non-null and `waiting_for: user_gate` → run **only** that Gate (`AskUserQuestion`) — **do not** invoke sub-agents.
164
- 3. If `subagent_stop: true` and `waiting_for: orchestrator` → execute **only** `next_orchestrator_action`.
165
- 4. Confirm `stage` matches last passed gate before advancing.
166
- 5. Before invoke: reset handoff (`subagent_stop: false`, `waiting_for: none`, set `subagent` to target).
167
-
168
- See `docs/team/collaboration.md` § Agent Handoff, § Stage field ownership, § Rework sequence.
169
-
170
- ### Stage sync on handoff
171
-
172
- When executing `next_orchestrator_action`, **also** update mainline `stage` / gates:
173
-
174
- | `next_orchestrator_action` contains | Orchestrator **must** write |
175
- | ----------------------------------------- | -------------------------------------------------------------------------------------------------- |
176
- | `Run Gate #1` | After user pass: `gates.#1 = passed`, `stage: style_exploration` |
177
- | `Invoke @reviewer design_check Gate #1` | Before Gate #1 — Reviewer soft checklist on four docs |
178
- | `Run Gate #2a` | `gates.#2a = passed`, set `selectedMcOption`, resume `@designer` (stage stays `style_exploration`) |
179
- | `Invoke @reviewer design_check Gate #2b` | Before Gate #2b — Reviewer soft checklist on MC + ASR |
180
- | `Run Gate #2b` | `gates.#2b = passed`, `stage: production`, invoke `@designer` Ph.2 only |
181
- | `Invoke @technical-artist` | Production Pipeline Wave 1 `done` → invoke TA (Wave 2) |
182
- | `Set stage=ui_pass` / invoke `@developer` | Production Pipeline Wave 2 `done` → `stage: ui_pass` |
183
- | `Invoke @reviewer ui_diff` | `stage: ui_review`; Developer `devStatus: ui_ready` |
184
- | `Set stage=ui_rework` | `stage: ui_rework` + invoke routed agents per UI Diff Report |
185
- | `Set stage=gameplay_pass` | UI convergence pass → `stage: gameplay_pass` → invoke `@developer` |
186
- | `Invoke @reviewer load_check` | `devStatus: ready` → Reviewer load_check before Gate #3 |
187
- | `Run Gate #3` | `gates.#3 = pending` → user accept → `stage: done`, `gates.#3 = passed` |
188
-
189
- **Stage transition table:**
190
-
191
- | Current Stage | Trigger | Your Action |
192
- | ------------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------- |
193
- | (start) | User prompt received | Invoke `@pm` |
194
- | `pm` | PM STOP + `gates.#1 = pending` | Invoke `@reviewer` `design_check` Gate #1 → pass → Gate #1 → on pass invoke `@designer` |
195
- | `style_exploration` | Designer STOP + `gates.#2a = pending` | Gate #2a `AskUserQuestion` → set `selectedMcOption` → resume `@designer` |
196
- | `style_exploration` | Designer STOP + `gates.#2b = pending` | Invoke `@reviewer` `design_check` Gate #2b → pass → Gate #2b → `stage: production` → `@designer` Ph.2 |
197
- | `production` | Designer Wave 1 `done` | Invoke `@technical-artist` (Wave 2) |
198
- | `production` | TA Wave 2 `done` (Compliance green) | `stage: ui_pass` → invoke `@developer` (UI shell only) |
199
- | `ui_pass` | `devStatus: ui_ready` | `stage: ui_review` → invoke `@reviewer` `ui_diff` |
200
- | `ui_pass` | `devStatus: blocked_upstream` | Re-invoke `@technical-artist` / `@designer` per `devBlockers` → then `@developer` |
201
- | `ui_review` | Fail + `uiReworkRound` &lt; 5 | `stage: ui_rework` → invoke routed agents → `@developer` → `@reviewer` `ui_diff` |
202
- | `ui_review` | Pass or 5 rounds reached | `stage: gameplay_pass` → invoke `@developer` (gameplay) |
203
- | `gameplay_pass` | `devStatus: ready` | Invoke `@reviewer` `load_check` → Gate #3 devUrl |
204
- | `gameplay_pass` | `load_check` fail | Re-invoke `@developer` → `@reviewer` `load_check` |
205
- | `done` | Gate #3 passed | Project complete |
206
-
207
- **How to invoke sub-agents:**
208
-
209
- - Each `@agent-name` corresponds to `.claude/agents/<name>.md`
210
- - Sub-agents read `project-state.md` + **`## Agent handoff`**; follow each agent's **Runtime** section
211
- - Sub-agents update handoff + gates and **STOP** — they do **not** `AskUserQuestion` or change mainline `stage`
212
- - You read handoff between every invoke (startup checklist above)
213
- - **Only you** run Gate #1 / #2a / #2b / #3 user interactions
214
-
215
- **Requires sub-agent invoke** (`@pm`, `@designer`, `@technical-artist`, `@developer`, `@reviewer`). Do not role-play all five roles in one session — use Claude Code or Cursor agent spawn.
216
-
217
- ### Dispatching Principle (WHAT not HOW)
218
-
219
- **你不是全知全能的指挥官。** Sub-agent 有完整的 `.claude/agents/<role>.md` + `refs/` + Skills。
220
-
221
- **调度时只传递:**
222
-
223
- 1. **目标**(atoms to complete, stage entry condition)
224
- 2. **关键约束/提醒**(如 `mediaGroups` 有可用预制资产、`skillRef` 列表)
225
- 3. **上游状态**(which Waves done, which files exist)
226
-
227
- **禁止在调度消息中:**
228
-
229
- - 编写详细生产步骤(agent 自己读 refs/ + Skills 决定 HOW)
230
- - 越俎代庖选择 prompt / model / 工具参数
231
- - 替 agent 做 Skill Preflight 或 Transparency Classification
232
-
233
- ### Post-STOP Verification (阶段转换前必须)
234
-
235
- Sub-agent STOP 后,**先验证再转阶段**:
236
-
237
- | 验证项 | 失败处理 |
238
- | ----------------------------- | ----------------- |
239
- | 所有 atoms `status ≠ pending` | 要求补全 |
240
- | `actualOutput` 文件存在 | 要求补全 |
241
- | `atom-plan.md` Context 非空 | 要求回填 |
242
- | Skill Preflight 已完成 | 拒绝 STOP,重新入 |
243
- | mediaGroups 处置已记录 | 要求补充 |
244
-
245
- 验证失败 → **不转阶段**,re-invoke 该 agent 补全。详见 `.cursor/rules/playcraft-orchestrator.mdc`。
246
-
247
- ## Directory Layout
248
-
249
- ```
250
- docs/ Design documents (project-state, design-brief, layout-spec, atom-plan, style-exploration)
251
- assets/ images/{bg,tiles,ui,vfx,storyboard,reference} audio/{bgm,sfx} models/ bundles/
252
- game/ gameplay/ config/ scenes/ index.html
253
- logs/ designer-log / ta-log / developer-log / review-report
254
- templates/ Read-only reference templates
255
- ta-workspace/ TA batch scripts (scripts/) + temp files (logs/, tmp/)
78
+ ```text
79
+ docs/ project-state, DESIGN, ring-specific specs
80
+ game/ runtime implementation
81
+ logs/ developer/reviewer/artist/TA logs
82
+ assets/ placeholder and production media
83
+ skills/ local verifier, record, art, and workflow scripts
256
84
  ```
257
-
258
- ## Golden Rules
259
-
260
- Project-level principles (full MUST/NEVER: [docs/team/agent-conduct.md](docs/team/agent-conduct.md)):
261
-
262
- 1. First level must guarantee player success
263
- 2. Hook decides everything — first 3 seconds
264
- 3. Quality first — do not compromise quality for file size or play time
265
- 4. Style Gate (#2a + #2b) cannot be skipped — no production without confirmed MC + ASR
266
- 5. Layout Spec is the sole three-way alignment mechanism — do not violate
267
- 6. Asset Contract paths are immutable after Gate #1
268
- 7. Production serial: Designer Ph.2 → TA → Developer (`ui_pass` → `gameplay_pass`) — never invoke `@developer` during `production`
269
- 8. UI rework max 5 rounds (`uiReworkRound`) — then orchestrator decision or proceed to `gameplay_pass`
270
- 9. Dev delivery: Developer owns Dev quality; Reviewer `load_check` + user gameplay judgment at Gate #3
271
- 10. No `playcraft build` for `done` — endpoint is `devStatus: ready` + user devUrl acceptance
272
-
273
- ## Detailed References
274
-
275
- | Document | Contents |
276
- | ------------------------------------------------------------------------ | ---------------------------------------------------- |
277
- | [docs/team/agent-conduct.md](docs/team/agent-conduct.md) | MUST/NEVER behavior contract |
278
- | [docs/team/collaboration.md](docs/team/collaboration.md) | Gate Protocol, directory tree, R/W matrix, MC panels |
279
- | [docs/team/core-model.md](docs/team/core-model.md) | Remix = DAG(Atom[]) model |
280
- | [docs/team/platform-capabilities.md](docs/team/platform-capabilities.md) | `playcraft` CLI by role |
@@ -0,0 +1,65 @@
1
+ # {Game Name} — Ring 1 Core Gameplay Contract
2
+
3
+ <!--
4
+ Ring 1 only. This file is the single Game Designer deliverable for the first
5
+ ring. It defines what the player can do, why the core loop is fun, how the
6
+ game starts at HOOK, and how the first level is guaranteed winnable.
7
+
8
+ Do not add layout-spec, production assets, CTA (Call to Action, 行动召唤)
9
+ polish, ASR (Asset State Reference, 资产状态参考), full MP4 (MPEG-4 Part 14,
10
+ 视频容器格式), or multi-level progression here. Those are disclosed by
11
+ state:get in later rings.
12
+ -->
13
+
14
+ **Date**: {YYYY-MM-DD}
15
+ **Engine**: {phaser / threejs / undecided}
16
+
17
+ ---
18
+
19
+ ## 1. Player Promise
20
+
21
+ {Describe the playable in 3-5 sentences from the player's point of view. Focus on what the player sees, what they can do, and the first satisfying outcome.}
22
+
23
+ ---
24
+
25
+ ## 2. Core Loop
26
+
27
+ ### 2.1 One Player-Available Action Chain
28
+
29
+ > **Player sees**: {what object / board / target is visible}
30
+ > **Player does**: {tap / drag / aim / choose}
31
+ > **Game responds**: {immediate feedback and state change}
32
+ > **Next decision**: {what new information lets the player act again}
33
+
34
+ ### 2.2 Loop Evolution
35
+
36
+ {Describe what changes after 3-5 successful actions: more confidence, combo payoff, clearer goal, or rising tension.}
37
+
38
+ ---
39
+
40
+ ## 3. Core Rules
41
+
42
+ ### 3.1 Valid Actions
43
+
44
+ - {Action}: valid when {condition}; result is {state change / feedback}.
45
+
46
+ ### 3.2 Invalid Actions
47
+
48
+ - {Invalid action}: game responds with {non-blocking feedback}; the first-level win path remains available.
49
+
50
+ ### 3.3 Win / Lose
51
+
52
+ - **Win**: {condition}; player reaches `ENDCARD`.
53
+ - **Lose**: {condition, or "not present in first level"}.
54
+
55
+ ---
56
+
57
+ ## 4. First-Level Win Strategy
58
+
59
+ {Explain the exact mechanism that makes the first level winnable: constrained setup, guided target, simplified rules, generous timing, or locked failure path. Do not only write "guaranteed win".}
60
+
61
+ ---
62
+
63
+ ## 5. Ring 1 HOOK Entry
64
+
65
+ {Describe the starting HOOK state that is visible immediately when the game loads. It should be enough for `verify:lifecycle` to observe `HOOK`, then for `autoPlay()` to advance through player-reachable actions to `ENDCARD`.}
@@ -0,0 +1,58 @@
1
+ # Intent Clarifications
2
+
3
+ > **Living Document**: Agent 间异步澄清的共享空间。
4
+ > 所有 Agent 可读;提问 Agent 和目标 Agent 可写。
5
+ > 不阻塞流水线 — 提问 Agent 先用合理推断继续,回答到达后评估是否调整。
6
+
7
+ ## Open Questions
8
+
9
+ | # | From | To | Atom/Topic | Question | Raised At | Status |
10
+ | ----- | -------------- | ---------------- | -------------------- | --------------------- | -------------- | ------ |
11
+ | {{n}} | {{agent_name}} | {{target_agent}} | {{atom_id_or_topic}} | {{specific_question}} | {{stage_name}} | open |
12
+
13
+ <!--
14
+ Status values:
15
+ open — 等待目标 Agent 回答
16
+ pending — 目标 Agent 已看到,正在处理
17
+ answered — 目标 Agent 已回答,提问 Agent 尚未确认
18
+ resolved — 双方达成一致,已移入 Resolved 表
19
+
20
+ Rules:
21
+ - 提问必须具体,不能是"风格不对"这种模糊描述
22
+ - 必须引用具体文件路径或 atomId,方便目标 Agent 定位
23
+ - Confidence = low 的风格解读问题必须写入此表
24
+ - Developer 发现故事板与 layout-spec 坐标不一致时,必须向 Game Designer 提问
25
+ -->
26
+
27
+ ## Resolved
28
+
29
+ | # | From | To | Question Summary | Answer | Resolution | Closed By |
30
+ | ----- | -------------- | ---------------- | -------------------- | --------------- | ----------------------- | -------------- |
31
+ | {{n}} | {{agent_name}} | {{target_agent}} | {{one_line_summary}} | {{answer_text}} | {{how_it_was_resolved}} | {{agent_name}} |
32
+
33
+ <!--
34
+ Resolution examples:
35
+ - "已补充到 artist-log.md Style Intent Notes"
36
+ - "已更新 layout-spec.md zones 坐标"
37
+ - "Game Designer 裁决:以故事板为准,layout-spec 将修正"
38
+ - "双方同意保持现状,偏差在可接受范围"
39
+ -->
40
+
41
+ ## Metrics
42
+
43
+ | Metric | Value |
44
+ | ---------------------- | --------- |
45
+ | Total questions raised | {{count}} |
46
+ | Unresolved | {{count}} |
47
+ | By Artist | {{count}} |
48
+ | By TA | {{count}} |
49
+ | By Developer | {{count}} |
50
+ | By Game Designer | {{count}} |
51
+ | By Reviewer | {{count}} |
52
+
53
+ <!--
54
+ Game Designer monitors this table:
55
+ - If single Agent receives >3 questions → intent transmission fault, record in DAG Revisions
56
+ - If unresolved >3 at any time → Game Designer must intervene and assign priority
57
+ - If Reviewer finds unresolved questions at review stage → deduct Intent Transmission score
58
+ -->
@@ -0,0 +1,69 @@
1
+ # PlayCraft Pipeline Overview (growth-rings-v1)
2
+
3
+ > **Workflow spec**: `growth-rings-v1` — supersedes waterfall stages (`pm → storyboard → development → …`).
4
+
5
+ ## Slice-axis dispatch (harness v1)
6
+
7
+ When `docs/project-state.json` has an **active slice** (`sliceState.activeSliceId` ≠ `none`):
8
+
9
+ ```text
10
+ orchestrator → state:get dispatchPacket → invoke role(doWhat, flow, sliceId) → verify:slice → slice:set → STOP
11
+ ```
12
+
13
+ - **Orchestrator** is the sole dispatcher; `state:get` `currentAction` / `recommendedNextAction` are slice-first (not "Ring N build").
14
+ - **Ring** = outer budget, non-regression boundary, convergence, and user Ring Gate — not subagent daily axis.
15
+ - **Legacy fallback**: empty slice queue → ring:loop handoff matrix below still applies.
16
+
17
+ ## Growth rings
18
+
19
+ ```
20
+ Ring 1 playable seed → semantic spine clarify → [temporary ref-flow + init-template + verify:contract + verify:lifecycle] → build → verify → Ring Gate
21
+ Ring 2 gameplay skeleton + layout intent clarify → build → verify → Ring Gate
22
+ Ring 3 Hook/CTA + ad wrapper + style context clarify → build → verify → Ring Gate
23
+ Ring 4 production assets + integration clarify → build → verify → Ring Gate → done
24
+ ```
25
+
26
+ ## Engine scaffold (ring 1 only)
27
+
28
+ | Step | Command | Owner |
29
+ | ----------------------- | ------------------------------------------------ | --------------------------------------------------------------------- |
30
+ | Atom-tree metadata | `playcraft skills init-atom-tree --intent "..."` | temporary ref-flow subagent |
31
+ | Engine `game/` skeleton | `playcraft remix init-template --from-atom-tree` | Orchestrator (legacy: before first `@developer` in ring 1 build loop) |
32
+ | Contract probe | `npm run verify:contract` | Orchestrator gate, then Developer |
33
+ | Lifecycle probe | `npm run verify:lifecycle` | Orchestrator gate, then Developer |
34
+ | Placeholder probe | `npm run verify:placeholders` | Developer |
35
+
36
+ Supported adapters (v1): **phaser**, **threejs**. Unified harness surface: **`window.__playable`**.
37
+
38
+ ## Role × loop matrix
39
+
40
+ | Ring | clarify | build | verify |
41
+ | ---- | ------------------------------------------------------------ | ------------------------------------------ | ---------------------------------------------------------------- |
42
+ | 1 | Game Designer playable seed → temporary ref-flow selector | Developer (semantic placeholder spine) | script-owned `ring:gate` |
43
+ | 2 | Game Designer (periphery + layout intent) → ref/plan context | Developer (gameplay skeleton) | Reviewer + `verify:ui` |
44
+ | 3 | Game Designer Hook/CTA intent + Artist MC/ASR context | Developer (ad wrapper + style integration) | Reviewer + `playable_validate` |
45
+ | 4 | Spec-gap only | Artist W1 → TA W2 → Developer | Reviewer `ui_diff` + `verify:visual` + `verify:atom-conformance` |
46
+
47
+ ## Objective DoD (ring:gate)
48
+
49
+ | Ring | Script verifiers | Review verifiers |
50
+ | ---- | ------------------------------------------------------------------------------- | -------------------------------- |
51
+ | 1 | `verify:contract`, `verify:lifecycle`, `verify:firstwin`, `verify:placeholders` | script-owned |
52
+ | 2 | Ring 1 DoD + disclosed UI / MP4 evidence gates | `gameplay_conformance` |
53
+ | 3 | same | + `playable_validate` (hook/CTA) |
54
+ | 4 | + `verify:visual`, `verify:ui:assets`, `verify:atom-conformance` | `ui_diff` evidence |
55
+
56
+ ## Orchestrator decision shortcuts
57
+
58
+ 1. Every turn: `npm run workflow:doctor` (optional `--strict` in CI)
59
+ 2. Sub-agent STOP → read `contextPacket` + routing handoff → execute `next_orchestrator_action` only
60
+ 3. **Legacy ring 1 scaffold** (when `dispatchPacket` is null): ref-flow selection + `init-template --from-atom-tree` + `verify:contract` + `verify:lifecycle` before `@developer`
61
+ 4. Before Ring Gate: `npm run ring:gate -- --iteration N` must pass
62
+ 5. Ring Gate pass → archive `archivedRings` + ring context snapshot, then `iteration+1`, `loop: clarify`
63
+ 6. `done` = user accepts devUrl at ring 4 Ring Gate — not `playcraft build`
64
+
65
+ ## Key docs
66
+
67
+ - [CLAUDE.md](../CLAUDE.md) — orchestration protocol
68
+ - [docs/team/collaboration.md](team/collaboration.md) — Ring Gate Protocol, handoff
69
+ - [docs/team/agent-runtime-matrix.md](team/agent-runtime-matrix.md) — fake-invoke matrix