@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,6 +1,6 @@
1
1
  # Style Exploration
2
2
 
3
- > Designer Phase 1 output (`designer-handoff-v2`). Gate #2 = narrative + style lock via **Master Composite (MC)** + **ASR** after option selection.
3
+ > Artist Phase 1 output (`designer-handoff-v2`). **Ring 3** style lock via **Master Composite (MC)** + **ASR** after user selects an MC option at Ring Gate.
4
4
 
5
5
  ## Style Direction Summary
6
6
 
@@ -19,7 +19,7 @@
19
19
  **Art approach**: {{1-2 sentences}}
20
20
  **Alignment with design-brief**: {{brief alignment}}
21
21
 
22
- #### Master Composite (Gate #2a)
22
+ #### Master Composite (ring 3 clarify — MC options)
23
23
 
24
24
  | File | Description |
25
25
  | ------------------------------------------------------------ | ----------------------------------------------------------- |
@@ -58,23 +58,23 @@
58
58
 
59
59
  ---
60
60
 
61
- <!-- Repeat per option (2–3). Gate #2a: user picks A/B/C. Gate #2b: add ASR + Motion Notes below for selected option only. -->
61
+ <!-- Repeat per option (2–3). Ring 3 Ring Gate: user picks A/B/C. Ring 3 build: add ASR + Motion Notes below for selected option only. -->
62
62
 
63
- ## Selected option (after Gate #2a)
63
+ ## Selected option (after ring 3 Ring Gate — MC selection)
64
64
 
65
65
  - **Selected**: {{A/B/C}}
66
66
  - **MC path**: `assets/images/storyboard/master_composite_option_{{X}}.png`
67
67
 
68
- ### ASR (Gate #2b)
68
+ ### ASR (ring 3 build)
69
69
 
70
70
  | File | Role |
71
71
  | ------------------------------------------------------- | ----------------------- |
72
72
  | `assets/images/reference/ui_state_sheet_{{X}}.png` | UI component states |
73
73
  | `assets/images/reference/element_state_sheet_{{X}}.png` | Gameplay element states |
74
74
 
75
- Detail tables: `logs/designer-log.md` § ASR Coverage Matrix.
75
+ Detail tables: `logs/artist-log.md` § ASR Coverage Matrix.
76
76
 
77
- ### Motion Notes (Gate #2b)
77
+ ### Motion Notes (ring 3 build)
78
78
 
79
79
  | Transition | Type | Duration | Notes |
80
80
  | ------------------- | ------------------- | -------- | ----- |
@@ -84,7 +84,7 @@ Detail tables: `logs/designer-log.md` § ASR Coverage Matrix.
84
84
 
85
85
  ## Recommendation
86
86
 
87
- {{Which option and why — ties to PM Emotional Arc}}
87
+ {{Which option and why — ties to Game Designer Emotional Arc}}
88
88
 
89
89
  ## User Decision
90
90
 
@@ -2,17 +2,17 @@
2
2
 
3
3
  ## Upstream Intake
4
4
 
5
- > **Step 0a — mandatory before Skill Discovery or any generation.** Read each doc; one-line takeaway proves you understood upstream work. PM/Designer keep **四件套** short — detail is in `style-exploration` + this project's `designer-log`.
5
+ > **Step 0a — mandatory before Skill Discovery or any generation.** Read each doc; one-line takeaway proves you understood upstream work. Game Designer/Artist keep **四件套** short — detail is in `style-exploration` + this project's `artist-log`.
6
6
 
7
7
  | Doc | Read ✓ | One-line takeaway (what matters for TA this round) |
8
8
  | --------------------------- | ------ | ------------------------------------------------------- |
9
9
  | `docs/project-state.md` | ☐ | {{e.g. Wave 1 done, selectedMcOption=B}} |
10
10
  | `docs/design-brief.md` | ☐ | {{e.g. Competence arc, match-3, Hook=wrong-move tease}} |
11
11
  | `docs/layout-spec.md` | ☐ | {{e.g. 42 assetMapping rows, 3 atlas groups}} |
12
- | `docs/atom-plan.json` | ☐ | {{e.g. 18 TA atoms, C₁ refs designer-sample}} |
13
- | `docs/atom-plan.md` | ☐ | TA Skill Context |
12
+ | `docs/atom-tree.json` | ☐ | {{e.g. 18 TA atoms, C₁ refs artist-sample}} |
13
+ | `docs/atom-tree.md` | ☐ | Reading guide + mediaGroups decisions |
14
14
  | `docs/style-exploration.md` | ☐ | {{e.g. MC path + storyboard EndCard tone}} |
15
- | `logs/designer-log.md` | ☐ | {{e.g. Palette Locked delta, Style Intent Notes}} |
15
+ | `logs/artist-log.md` | ☐ | {{e.g. Palette Locked delta, Style Intent Notes}} |
16
16
 
17
17
  ```bash
18
18
  # Optional paste: ls assets/images/reference/ + key contract dirs after read
@@ -27,14 +27,14 @@
27
27
  - **Completed**: {{total_completed}}
28
28
  - **Skipped**: {{total_skipped}}
29
29
  - **Blocked**: {{total_blocked}}
30
- - **Designer samples received**: {{designer_sample_count}} files
30
+ - **Artist samples received**: {{artist_sample_count}} files
31
31
  - **TA-completed elements**: {{ta_completed_count}} files
32
32
 
33
33
  ---
34
34
 
35
35
  ## mediaGroups Reuse
36
36
 
37
- > **Step 0 Pre — mandatory before Skill Discovery.** Filter `atom-plan.json` → `skillsMatch.mediaGroups` by `extension`; TA is responsible for **`.aiimage` + `.aisprite`** (Designer handles `.aiaudio`).
37
+ > **Step 0 Pre — mandatory before Skill Discovery.** Filter `atom-tree.json` → `meta.skillsMatch.mediaGroups` by `extension`; TA is responsible for **`.aiimage` + `.aisprite`** (Artist handles `.aiaudio`).
38
38
 
39
39
  | mediaGroup atomId | extension | Matches TA atom? | Disposition | Reason (if skipped) | Output path (if linked) |
40
40
  | ----------------- | ------------------ | ---------------- | ------------- | ------------------------------- | ----------------------- |
@@ -45,11 +45,11 @@
45
45
  .aiimage — single-shot image bundles (bg, single ui element, single tile)
46
46
  .aisprite — sprite-sheet bundles (multi-frame: tile sets, vfx, animations)
47
47
 
48
- Out of TA scope (do NOT fill rows for these — Designer owns them):
49
- .aiaudio — BGM / SFX → see designer-log.md § mediaGroups Reuse
48
+ Out of TA scope (do NOT fill rows for these — Artist owns them):
49
+ .aiaudio — BGM / SFX → see artist-log.md § mediaGroups Reuse
50
50
 
51
51
  Filter command:
52
- cat docs/atom-plan.json | jq '.skillsMatch.mediaGroups[] | select(.extension == ".aiimage" or .extension == ".aisprite")'
52
+ cat docs/atom-tree.json | jq '.meta.skillsMatch.mediaGroups[] | select(.extension == ".aiimage" or .extension == ".aisprite")'
53
53
 
54
54
  Disposition rules:
55
55
  linked → playcraft skills link → post-process (resize/convert/transparency) → status=done
@@ -84,21 +84,21 @@
84
84
  ## Style Interpretation
85
85
 
86
86
  > **Step 0c — Mandatory before any completion work.**
87
- > Read `logs/designer-log.md` Style Intent Notes, write your interpretation here.
87
+ > Read `logs/artist-log.md` Style Intent Notes, write your interpretation here.
88
88
 
89
- | # | Designer Intent (Quote from designer-log.md) | My Interpretation | Confidence | Action |
90
- | ----- | -------------------------------------------- | --------------------- | --------------- | ----------------- |
91
- | {{n}} | "{{designer_quote}}" | {{my_interpretation}} | high/medium/low | proceed / clarify |
89
+ | # | Artist Intent (Quote from artist-log.md) | My Interpretation | Confidence | Action |
90
+ | ----- | ---------------------------------------- | --------------------- | --------------- | ----------------- |
91
+ | {{n}} | "{{artist_quote}}" | {{my_interpretation}} | high/medium/low | proceed / clarify |
92
92
 
93
93
  <!--
94
94
  Confidence rules (atom-granularity — hold only the affected asset type, not the whole Wave 2):
95
95
  high → proceed with completion
96
96
  medium → proceed, but include style interpretation in --reference-image prompt
97
97
  low → HOLD that asset type only: write question to docs/intent-clarifications.md
98
- (routeTo: designer if style ambiguity; routeTo: pm if contract ambiguity)
98
+ (routeTo: artist if style ambiguity; routeTo: game-designer if contract ambiguity)
99
99
  → continue producing OTHER asset types where confidence ≥ medium
100
- → resume the held type only after ICP answer (or Designer supplementary PNG per
101
- designer-deliverable-spec.md § "ICP supplementary PNG — when (and only when)")
100
+ → resume the held type only after ICP answer (or Artist supplementary PNG per
101
+ artist-deliverable-spec.md § "ICP supplementary PNG — when (and only when)")
102
102
 
103
103
  You may STOP only when EVERY remaining asset type is held at confidence=low — otherwise keep
104
104
  making progress on the producible ones in parallel with the ICP wait.
@@ -150,14 +150,14 @@ Must match layout-spec § atlas grouping table.
150
150
 
151
151
  ## Transparency Classification
152
152
 
153
- > **Step 0e — mandatory before any generation.** TA auto-derives `needsAlpha` from path convention + `bgStrategy` from element color palette. See `ta-pipeline-cookbook.md` Step 0e for full rules.
153
+ > **Step 0e — mandatory before any generation.** TA auto-derives `needsAlpha` from path convention + `alphaStrategy` from element color palette and edge softness. See `ta-pipeline-cookbook.md` Step 0e and `skills/playable-art/references/alpha-postprocess.md` for full rules.
154
154
 
155
- | # | assetMapping path | needsAlpha | bgStrategy | 推导依据 | 去背工具 | 回退工具 | 验证结果 |
156
- | ----- | ----------------- | -------------- | --------------------------------------------------------------- | --------------------------------- | ---------------------------------------------------- | ----------------------------------------- | ----------- |
157
- | {{n}} | {{path}} | {{true/false}} | {{greenscreen/bluescreen/magenta/extract/full-coverage/opaque}} | {{路径: ui/ + 色彩: 红色系→绿幕}} | {{remove-bg floodfill t=25 / segment --boxes / N/A}} | {{segment / remove-bg --method ai / N/A}} | {{✅ / ❓}} |
155
+ | # | assetMapping path | needsAlpha | alphaStrategy | Prompt strategy | Postprocess tool | Fallback | Dark-bg verify | 验证结果 |
156
+ | ----- | ----------------- | -------------- | -------------------------------------------------- | ---------------------------- | ----------------------------------------------------- | ---------------------------------- | -------------- | ----------- |
157
+ | {{n}} | {{path}} | {{true/false}} | {{chroma / dual-bg-diff / rgb-alpha-split / black-add / opaque}} | {{green key / RGB+A / etc.}} | {{remove-bg / extract-alpha-split / dual-bg / N/A}} | {{rgb-alpha-split / black-add / N/A}} | {{clean / fail}} | {{✅ / ❓}} |
158
158
 
159
159
  <!--
160
- TA auto-derives transparency — does NOT depend on PM fields.
160
+ TA auto-derives transparency — does NOT depend on Game Designer fields.
161
161
 
162
162
  needsAlpha derivation (from assetMapping path):
163
163
  images/bg/ → false (full-screen background)
@@ -166,20 +166,26 @@ needsAlpha derivation (from assetMapping path):
166
166
  images/vfx/ → true (VFX sprite)
167
167
  images/tiles/ → true (default; unless card/board rect body → false)
168
168
 
169
- bgStrategy derivation (from element color palette):
169
+ alphaStrategy derivation:
170
+ Hard-edge UI/text/sprite → chroma (choose green/blue/magenta by palette conflict)
171
+ Soft antialias/shadow → rgb-alpha-split first; dual-bg-diff only when geometry is fixed
172
+ VFX glow/particle/ring → black-add when ADD blend is acceptable; otherwise rgb-alpha-split
173
+ Full-screen background → opaque
174
+
175
+ chroma key color derivation:
170
176
  Gold/yellow/orange/amber → bluescreen (NEVER green — color bleed)
171
177
  Green/teal/cyan → bluescreen (NEVER green — same family)
172
178
  Blue/indigo/purple → greenscreen (NEVER blue — same family)
173
- VFX glow/particle → bluescreen (warm tones common)
174
- Text/digit images → bluescreen (often gold/white)
175
179
  Multi-color/rainbow → magenta (last resort)
176
180
  Red/pink/white/black → greenscreen or bluescreen (both safe)
177
181
 
178
182
  TA tool chain (must use, never skip):
179
183
  1st: playcraft image remove-background --method floodfill --tolerance 25
180
- 2nd: playcraft image segment --boxes (complex edges, known position)
181
- 3rd: playcraft image remove-background --method ai (hair/transparency)
182
- 4th: playcraft image segment --text (unknown position, last resort)
184
+ 2nd: python3 skills/playable-art/scripts/extract-alpha-split.py (RGB+A side-by-side)
185
+ 3rd: python3 skills/playable-art/scripts/extract-dual-bg-alpha.py (matched dual backgrounds)
186
+ 4th: playcraft image segment --boxes (complex edges, known position)
187
+ 5th: playcraft image remove-background --method ai (hair/transparency)
188
+ 6th: playcraft image segment --text (unknown position, last resort)
183
189
  Extract: playcraft image crop (grid) or decompose-layers (multi-layer MC)
184
190
 
185
191
  Post-verify: overlay on #1A1A2E dark bg to check:
@@ -189,26 +195,41 @@ Post-verify: overlay on #1A1A2E dark bg to check:
189
195
 
190
196
  **MUST NOT** proceed to Step 1 bulk generation if any row has `❓ pending` in 验证结果.
191
197
 
198
+ ### Video Alpha Classification
199
+
200
+ | # | video path | videoAlphaStrategy | Matte source | Validator evidence | Fallback |
201
+ | ----- | ---------- | ------------------------------------------------------- | ----------------------- | ------------------ | -------------------- |
202
+ | {{n}} | {{path}} | {{chroma-video / dual-bg-video / rgb-alpha-video / opaque-video}} | {{green / dual / alpha / n-a}} | {{MP4 timestamp + symptom}} | {{rerender / still sprite / n-a}} |
203
+
204
+ <!--
205
+ Video alpha is a production convention in this template, not a full codec pipeline.
206
+ Validator feedback must still route symptoms:
207
+ green edge / matte spill → chroma-video key conflict
208
+ double subject / shimmer → dual-bg-video geometry drift
209
+ alpha timing mismatch → rgb-alpha-video matte alignment
210
+ black box around glow → use black-add still frames or VFX clean harness
211
+ -->
212
+
192
213
  ---
193
214
 
194
215
  ## Style Reference
195
216
 
196
217
  - **Master reference (MC)**: `assets/images/storyboard/master_composite_option_{{selectedMcOption}}.png`
197
218
  - **ASR references**: `ui_state_sheet_{{selectedMcOption}}.png`, `element_state_sheet_{{selectedMcOption}}.png`
198
- - **Designer samples used as reference**: {{designer_sample_paths}}
219
+ - **Artist samples used as reference**: {{artist_sample_paths}}
199
220
  - **Reference model used**: `{{model_name}}` (must be `google/` native for style-consistent completions)
200
221
 
201
222
  ---
202
223
 
203
224
  ## Asset Completion Log
204
225
 
205
- > Records all elements derived from Designer samples.
226
+ > Records all elements derived from Artist samples.
206
227
 
207
228
  ### {{atom_id}} — {{slot_name}}
208
229
 
209
230
  - **Status**: {{status}}
210
231
  - **Completion type**: {{derived_from_sample | sprite_sheet | 3d_render | animation | vfx}}
211
- - **Source samples**: {{designer_sample_paths}}
232
+ - **Source samples**: {{artist_sample_paths}}
212
233
  - **Elements completed**:
213
234
  | File | Dimensions | Size | Notes |
214
235
  |------|-----------|------|-------|
@@ -267,7 +288,7 @@ JSON is only auto-generated by `sprite-sheet` command. `animate` and `use-vfx` p
267
288
  ## Micro-Batch Validation
268
289
 
269
290
  > **Per asset type — first 2 completions must pass validation before continuing batch production.**
270
- > Compare each completion side-by-side with the Designer sample.
291
+ > Compare each completion side-by-side with the Artist sample.
271
292
 
272
293
  ### {{asset_type}} (e.g., tiles / ui / bg / vfx)
273
294
 
@@ -277,11 +298,11 @@ JSON is only auto-generated by `sprite-sheet` command. `animate` and `use-vfx` p
277
298
 
278
299
  <!--
279
300
  Consistency Score criteria:
280
- 5 — Perfect match: could be mistaken for original designer sample
301
+ 5 — Perfect match: could be mistaken for original artist sample
281
302
  4 — Good match: minor differences only visible on close inspection
282
303
  3 — Acceptable match: style is recognizable but some attributes drift
283
304
  2 — Poor match: obvious style deviation, needs significant adjustment
284
- 1 — Mismatch: completely different style, STOP and ask Designer
305
+ 1 — Mismatch: completely different style, STOP and ask Artist
285
306
 
286
307
  Score < 3 → STOP this asset type, write question to docs/intent-clarifications.md
287
308
  -->
@@ -290,7 +311,7 @@ Score < 3 → STOP this asset type, write question to docs/intent-clarifications
290
311
 
291
312
  ## Compliance Gate Results
292
313
 
293
- > Completed after Designer Ph.2 is confirmed done. Verify all assetMapping entries.
314
+ > Completed after Artist Ph.2 is confirmed done. Verify all assetMapping entries.
294
315
 
295
316
  ### Asset Coverage Check
296
317
 
@@ -336,6 +357,8 @@ Every row must be PASS before advancing to integration.
336
357
  | Classification table | All rows filled, no ❓ pending | {{status}} | {{PASS/FAIL}} |
337
358
  | Alpha channels (transparent) | All transparent assets channels=4 | {{count}} | {{PASS/FAIL}} |
338
359
  | Dark-bg verify (transparent) | All transparent assets clean on #1A1A2E overlay | {{count}} | {{PASS/FAIL}} |
360
+ | Alpha strategy recorded | Every transparent asset has alphaStrategy + fallback | {{status}} | {{PASS/FAIL}} |
361
+ | Video alpha strategy | Every video asset has videoAlphaStrategy or opaque-video | {{status}} | {{PASS/FAIL}} |
339
362
  | BG full-coverage | All backgrounds edge-to-edge, no fade/white corner | {{status}} | {{PASS/FAIL}} |
340
363
  | Atlas per-frame verify | VFX/atlas each frame verified on dark bg | {{status}} | {{PASS/FAIL}} |
341
364
  | Chroma residue | Zero color residue from chroma key removal | {{status}} | {{PASS/FAIL}} |
@@ -344,7 +367,7 @@ Every row must be PASS before advancing to integration.
344
367
 
345
368
  - **Overall**: {{PASS / FAIL}}
346
369
  - **Blockers** (if any): {{list of FAIL items that block integration}}
347
- - **Ready for Developer Phase 2**: {{Yes / No — pending fixes}}
370
+ - **Ready for Reviewer ui_diff**: {{Yes / No — pending fixes}}
348
371
 
349
372
  ---
350
373
 
@@ -0,0 +1,20 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "lib": ["DOM", "DOM.Iterable", "ES2020"],
5
+ "module": "ESNext",
6
+ "moduleResolution": "bundler",
7
+ "strict": true,
8
+ "skipLibCheck": true,
9
+ "esModuleInterop": true,
10
+ "allowSyntheticDefaultImports": true,
11
+ "resolveJsonModule": true,
12
+ "isolatedModules": true,
13
+ "noEmit": true,
14
+ "types": ["node"],
15
+ "paths": {
16
+ "assets/*": ["./assets/*"]
17
+ }
18
+ },
19
+ "include": ["main.ts", "game/**/*.ts", "globals.d.ts", "vite.config.ts"]
20
+ }
@@ -0,0 +1,27 @@
1
+ import { defineConfig } from "vite";
2
+ import path from "path";
3
+
4
+ export default defineConfig(({ command }) => ({
5
+ define: {
6
+ __DEV__: JSON.stringify(command === "serve"),
7
+ },
8
+ resolve: {
9
+ alias: {
10
+ assets: path.resolve(__dirname, "assets"),
11
+ },
12
+ },
13
+ server: {
14
+ host: "0.0.0.0",
15
+ // Preferred port; strictPort:false (the default, set explicitly here for
16
+ // intent) lets Vite auto-increment when 3000 is taken. The harness scripts
17
+ // (dev:start / verify:* / record:mp4) parse Vite's actual "Local:" URL, so
18
+ // port drift never needs to be tracked by hand. See dev-start.mjs.
19
+ port: 3000,
20
+ strictPort: false,
21
+ open: true,
22
+ },
23
+ build: {
24
+ outDir: "dist",
25
+ sourcemap: true,
26
+ },
27
+ }));
@@ -0,0 +1,101 @@
1
+ ---
2
+ name: artist
3
+ description: 'Artist: produces scoped visual intent, composite references, and asset-state context when dispatched.'
4
+ tools:
5
+ - 'Read'
6
+ - 'Write'
7
+ - 'Grep'
8
+ - 'Glob'
9
+ - 'Skill'
10
+ - 'Bash(ls:*)'
11
+ - 'Bash(cat:*)'
12
+ - 'Bash(find:*)'
13
+ - 'Bash(npm run state:get:*)'
14
+ - 'Bash(npm run slice:set:*)'
15
+ - 'Bash(npm run verify:slice-artist*)'
16
+ - 'Bash(playcraft image info:*)'
17
+ - 'Bash(playcraft tools search-image:*)'
18
+ ---
19
+
20
+ # Artist — Role Contract
21
+
22
+ ## Role Essence
23
+
24
+ You produce scoped visual direction and visual handoff context.
25
+
26
+ Your stable responsibility is clarifying what the playable should look and feel like through visual intent, MC (Master Composite, 主合成图) references, ASR (Asset State Reference, 资产状态参考) context, and artifact refs when explicitly dispatched.
27
+
28
+ You are not the gameplay designer, runtime implementer, Technical Artist (TA, 技术美术), reviewer, or orchestrator.
29
+
30
+ ## Dispatch Contract
31
+
32
+ Start every run with:
33
+
34
+ ```bash
35
+ npm run state:get -- --json dispatchPacket
36
+ ```
37
+
38
+ If `dispatchPacket.role` is `artist`, execute only that packet:
39
+
40
+ - Obey `doWhat`, `flow`, `allowedFiles`, `forbiddenTasks`, and `acceptance`.
41
+ - Produce visual context or artifact refs only within the packet scope.
42
+ - Write a minimal artist slice manifest when verification requires it.
43
+ - Run the packet verifier when requested:
44
+ ```bash
45
+ npm run verify:slice-artist
46
+ ```
47
+ - On pass, set the slice verified.
48
+ - On fail or blocked input, set a routable failure with owner and reason.
49
+
50
+ Do not begin bulk production, asset slicing, transparency cleanup, atlas assembly, audio work, or runtime integration unless the packet explicitly asks.
51
+
52
+ ## Inputs
53
+
54
+ Use only the disclosed context:
55
+
56
+ - `dispatchPacket`
57
+ - `docs/design-brief.md` or `docs/style-exploration.md` when allowed
58
+ - existing visual references included in `allowedFiles`
59
+ - `docs/atom-tree.json` only for slice-linked context
60
+
61
+ Do not read production logs or Technical Artist references unless the packet includes them.
62
+
63
+ ## Outputs
64
+
65
+ Produce one or more packet-scoped outputs:
66
+
67
+ - style intent summary
68
+ - MC reference or storyboard note
69
+ - ASR context / state reference
70
+ - artifact refs that already exist or were explicitly produced
71
+ - `validate/slice-artist/<sliceId>.json` when required
72
+ - `slice:set verified` or `slice:set failed route=... reason=...`
73
+
74
+ Keep outputs useful to the next role, not decorative.
75
+
76
+ ## STOP Contract
77
+
78
+ Before STOP:
79
+
80
+ - The active artist slice must be verified or failed with a route and reason.
81
+ - Every artifact ref in a manifest must exist.
82
+ - Context must state what downstream roles should preserve.
83
+ - Missing upstream design should be routed, not guessed.
84
+
85
+ ## Forbidden Ownership
86
+
87
+ You must not:
88
+
89
+ - define gameplay mechanics
90
+ - implement runtime files
91
+ - produce final production asset sets by default
92
+ - create Technical Artist manifests
93
+ - decide process phase from project state
94
+ - write broad style essays unrelated to the packet
95
+ - mark visual quality accepted on behalf of Reviewer
96
+
97
+ ## Legacy Fallback
98
+
99
+ Only when `dispatchPacket` is null and `sliceState` is empty, follow [`refs/artist-legacy-fallback.md`](refs/artist-legacy-fallback.md).
100
+
101
+ Legacy fallback does not apply to slice-axis dispatch.
@@ -0,0 +1,123 @@
1
+ ---
2
+ name: developer
3
+ description: 'Developer: executes one dispatched slice, edits only allowed files, and completes through build verification.'
4
+ tools:
5
+ - 'Read'
6
+ - 'Grep'
7
+ - 'Glob'
8
+ - 'Write'
9
+ - 'Edit'
10
+ - 'Skill'
11
+ - 'Bash(ls:*)'
12
+ - 'Bash(cat:*)'
13
+ - 'Bash(find:*)'
14
+ - 'Bash(grep:*)'
15
+ - 'Bash(npm run build*)'
16
+ - 'Bash(npm run state:get:*)'
17
+ - 'Bash(npm run slice:set:*)'
18
+ - 'Bash(npm run dev*)'
19
+ - 'Bash(npm run placeholder:gen*)'
20
+ - 'Bash(playcraft skills:*)'
21
+ - 'Bash(playcraft image info:*)'
22
+ - 'Bash(playcraft audio info:*)'
23
+ ---
24
+
25
+ # Developer — Role Contract
26
+
27
+ ## Role Essence
28
+
29
+ You implement exactly one dispatched runtime slice at a time.
30
+
31
+ Your stable responsibility is turning a scoped gameplay or integration hypothesis into working code, then proving it with the verifier or build artifact requested by the packet.
32
+
33
+ You are not the designer, reviewer, artist, Technical Artist (TA, 技术美术), or orchestrator. You do not decide broader process phase, add extra features, or complete future work because it seems nearby.
34
+
35
+ ## Dispatch Contract
36
+
37
+ Start every run with:
38
+
39
+ ```bash
40
+ npm run state:get -- --json dispatchPacket
41
+ ```
42
+
43
+ If `dispatchPacket.role` is `developer`, execute only that packet:
44
+
45
+ - Implement the single `doWhat` / `hypothesis`.
46
+ - Edit only `allowedFiles`.
47
+ - Avoid everything in `forbiddenTasks`.
48
+ - Preserve existing runtime contracts unless the packet explicitly changes them.
49
+ - Do not infer extra win, ENDCARD, HUD, CTA (Call To Action, 行动号召), tutorial, polish, or asset work.
50
+ - Do not run standalone verifier commands unless the packet explicitly asks. The intended acceptance path is `npm run build`, which will converge on `validate/build.json`.
51
+
52
+ Default completion loop:
53
+
54
+ ```bash
55
+ npm run build
56
+ ```
57
+
58
+ Then:
59
+
60
+ - If build verification passes, set the slice verified:
61
+ ```bash
62
+ npm run slice:set -- status=verified verification="build verification ok"
63
+ ```
64
+ - If build verification fails, read the produced validation artifact, fix within the slice scope, and build again.
65
+ - If the failure belongs to another role or blocked input, set a routable failure:
66
+ ```bash
67
+ npm run slice:set -- status=failed route=<role> reason="<failKey>"
68
+ ```
69
+
70
+ Never mark a slice verified from intuition or from a hand-written summary.
71
+
72
+ ## Inputs
73
+
74
+ Use the packet first:
75
+
76
+ - `dispatchPacket`
77
+ - files in `allowedFiles`
78
+ - `docs/DESIGN.md` only when included or necessary to interpret the slice
79
+ - `docs/atom-tree.json` only for skill refs attached to the slice
80
+ - validation artifact such as `validate/build.json` after build
81
+
82
+ Do not read layout, style, production, review, or handoff logs unless the packet includes them.
83
+
84
+ ## Outputs
85
+
86
+ Produce only what the packet needs:
87
+
88
+ - code changes inside `allowedFiles`
89
+ - placeholder assets only when the packet permits them
90
+ - validation artifact from the build / verifier path
91
+ - `slice:set verified` or `slice:set failed route=... reason=...`
92
+
93
+ Keep code small. The best implementation is the smallest one that satisfies the acceptance checks without hiding future work inside the current slice.
94
+
95
+ ## STOP Contract
96
+
97
+ Before STOP:
98
+
99
+ - The active slice must be verified or failed with a route and reason.
100
+ - Verification must come from the requested verifier/build artifact, not from prose.
101
+ - No forbidden task may be partially implemented.
102
+ - No unrelated files may be changed.
103
+ - The next action must be encoded in slice state, not buried in a markdown handoff.
104
+
105
+ If `npm run build` fails for environment reasons, record a blocked/routed state instead of pretending gameplay failed.
106
+
107
+ ## Forbidden Ownership
108
+
109
+ You must not:
110
+
111
+ - rewrite design intent
112
+ - choose or reinterpret skills for Designer
113
+ - create production art or final asset manifests
114
+ - review your own work as final acceptance
115
+ - expand the slice into a full feature backlog
116
+ - change orchestrator state or user acceptance state
117
+ - implement CTA / ENDCARD / HUD / polish unless the packet explicitly includes them
118
+
119
+ ## Legacy Fallback
120
+
121
+ Only when `dispatchPacket` is null and `sliceState` is empty, follow [`refs/developer-legacy-fallback.md`](refs/developer-legacy-fallback.md).
122
+
123
+ Legacy fallback does not apply to slice-axis dispatch.