@playcraft/cli 0.1.50-beta → 0.1.52

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 (406) hide show
  1. package/README.md +3 -62
  2. package/dist/agent/local-backend.js +1 -1
  3. package/dist/cli-root-help.js +0 -2
  4. package/dist/commands/build-all.js +19 -5
  5. package/dist/commands/build.js +28 -15
  6. package/dist/commands/create.js +33 -26
  7. package/dist/commands/image.js +6 -2
  8. package/dist/commands/login.js +42 -84
  9. package/dist/commands/skills.js +0 -4
  10. package/dist/commands/tools-3d.js +0 -11
  11. package/dist/commands/tools-generation.js +137 -69
  12. package/dist/commands/tools-image-context.js +29 -0
  13. package/dist/commands/tools-utils.js +12 -0
  14. package/dist/commands/tools.js +2 -2
  15. package/dist/config.js +4 -59
  16. package/dist/index.js +3 -40
  17. package/dist/remix/clone.js +0 -2
  18. package/dist/remix/init-template.js +0 -2
  19. package/dist/remix/pull.js +0 -2
  20. package/dist/remix/push.js +1 -21
  21. package/dist/utils/agent-api-client.js +30 -210
  22. package/dist/utils/image-asset-context.js +228 -0
  23. package/dist/utils/playcraft-http-client.js +4 -6
  24. package/package.json +5 -15
  25. package/project-template/.claude/agents/refs/ta-image-generation-detail.md +67 -123
  26. package/project-template/.claude/skills/playcraft-image-generation/SKILL.md +135 -63
  27. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +42 -33
  28. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +18 -20
  29. package/project-template/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +6 -7
  30. package/project-template/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +39 -39
  31. package/project-templates/phaser/.claude/agents/refs/ta-image-generation-detail.md +59 -59
  32. package/project-templates/phaser/.claude/skills/playcraft-image-generation/SKILL.md +135 -63
  33. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +42 -33
  34. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +18 -20
  35. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +6 -7
  36. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +39 -39
  37. package/project-templates/threejs/.claude/agents/refs/ta-image-generation-detail.md +59 -59
  38. package/project-templates/threejs/.claude/skills/playcraft-image-generation/SKILL.md +135 -63
  39. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +42 -33
  40. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +18 -20
  41. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +6 -7
  42. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +39 -39
  43. package/SKILLS_REGISTRY.md +0 -149
  44. package/dist/auth/account-activation.js +0 -157
  45. package/dist/auth/messages.js +0 -30
  46. package/dist/commands/build-temp.js +0 -26
  47. package/dist/commands/platform-skills.generated.js +0 -19
  48. package/dist/commands/playable.js +0 -53
  49. package/dist/commands/tools-batch.js +0 -113
  50. package/dist/commands/video.js +0 -122
  51. package/dist/commands/workspace-runtime.js +0 -54
  52. package/dist/commands/workspace.js +0 -40
  53. package/dist/project-skills/builtin-import.js +0 -225
  54. package/dist/project-skills/commands.js +0 -77
  55. package/dist/project-skills/lifecycle.js +0 -28
  56. package/dist/project-skills/local-run.js +0 -112
  57. package/dist/project-skills/local-store.js +0 -221
  58. package/dist/project-skills/messages.js +0 -80
  59. package/dist/project-skills/reconcile.js +0 -62
  60. package/dist/project-skills/remote-cache.js +0 -51
  61. package/dist/project-skills/validation.js +0 -19
  62. package/dist/recording/messages.js +0 -40
  63. package/dist/recording/project-digest.js +0 -85
  64. package/dist/recording/recorder.js +0 -293
  65. package/dist/recording/scenario.js +0 -50
  66. package/dist/skill-registry/client.js +0 -345
  67. package/dist/skill-registry/commands.js +0 -180
  68. package/dist/skill-registry/evaluation-client.js +0 -156
  69. package/dist/skill-registry/evaluation-commands.js +0 -174
  70. package/dist/skill-registry/messages.js +0 -177
  71. package/dist/skill-registry/package.js +0 -275
  72. package/dist/skill-registry/platform-package.js +0 -100
  73. package/dist/utils/environment-endpoints.js +0 -17
  74. package/dist/utils/error-diagnostics.js +0 -20
  75. package/dist/utils/tool-operation-journal.js +0 -124
  76. package/dist/utils/video-evidence-git.js +0 -81
  77. package/dist/video-replication/client.js +0 -234
  78. package/dist/video-replication/comparison-evidence.js +0 -149
  79. package/dist/video-replication/comparison-files.js +0 -57
  80. package/dist/video-replication/comparison-log.js +0 -72
  81. package/dist/video-replication/comparison-messages.js +0 -104
  82. package/dist/video-replication/comparison-output.js +0 -63
  83. package/dist/video-replication/comparison-preflight.js +0 -66
  84. package/dist/video-replication/comparison.js +0 -230
  85. package/dist/video-replication/diagnostics.js +0 -41
  86. package/dist/video-replication/evidence.js +0 -165
  87. package/dist/video-replication/media.js +0 -112
  88. package/dist/video-replication/messages.js +0 -97
  89. package/dist/workspace/messages.js +0 -67
  90. package/dist/workspace/transfer-client.js +0 -233
  91. package/dist/workspace/transfer-errors.js +0 -48
  92. package/dist/workspace-runtime/batch/content-changes.js +0 -30
  93. package/dist/workspace-runtime/batch/control.js +0 -86
  94. package/dist/workspace-runtime/batch/deliver.js +0 -173
  95. package/dist/workspace-runtime/batch/freeze.js +0 -101
  96. package/dist/workspace-runtime/batch/generate.js +0 -249
  97. package/dist/workspace-runtime/batch/git.js +0 -40
  98. package/dist/workspace-runtime/batch/occupancy.js +0 -8
  99. package/dist/workspace-runtime/batch/policy.js +0 -70
  100. package/dist/workspace-runtime/batch/prepare.js +0 -317
  101. package/dist/workspace-runtime/batch/processes.js +0 -72
  102. package/dist/workspace-runtime/batch/records.js +0 -113
  103. package/dist/workspace-runtime/batch/routes.js +0 -61
  104. package/dist/workspace-runtime/batch/source-candidate.js +0 -86
  105. package/dist/workspace-runtime/batch/source-capture.js +0 -146
  106. package/dist/workspace-runtime/batch/source-failure.js +0 -43
  107. package/dist/workspace-runtime/batch/source-publish.js +0 -130
  108. package/dist/workspace-runtime/codex/app-server.js +0 -1065
  109. package/dist/workspace-runtime/codex/compact.js +0 -46
  110. package/dist/workspace-runtime/codex/config-toml.js +0 -107
  111. package/dist/workspace-runtime/codex/delivery-tools.js +0 -144
  112. package/dist/workspace-runtime/codex/jsonrpc-stdio.js +0 -145
  113. package/dist/workspace-runtime/codex/launcher-client.js +0 -177
  114. package/dist/workspace-runtime/codex/loopback.js +0 -146
  115. package/dist/workspace-runtime/codex/mcp-config.js +0 -39
  116. package/dist/workspace-runtime/codex/model-broker.js +0 -263
  117. package/dist/workspace-runtime/codex/native-adapter.js +0 -9
  118. package/dist/workspace-runtime/codex/permissions.js +0 -79
  119. package/dist/workspace-runtime/codex/thread-image.js +0 -38
  120. package/dist/workspace-runtime/codex/tool-response.js +0 -10
  121. package/dist/workspace-runtime/codex/ui-instructions.js +0 -4
  122. package/dist/workspace-runtime/codex/ui-tools.js +0 -203
  123. package/dist/workspace-runtime/codex/work-mode.js +0 -15
  124. package/dist/workspace-runtime/main.js +0 -10
  125. package/dist/workspace-runtime/persistence/journal.js +0 -365
  126. package/dist/workspace-runtime/persistence/native-subagents.js +0 -162
  127. package/dist/workspace-runtime/persistence/sqlite-client.js +0 -77
  128. package/dist/workspace-runtime/persistence/sqlite-worker.js +0 -1161
  129. package/dist/workspace-runtime/persistence/stopped-execution.js +0 -77
  130. package/dist/workspace-runtime/previews/diagnostics.js +0 -44
  131. package/dist/workspace-runtime/previews/output.js +0 -36
  132. package/dist/workspace-runtime/previews/publish.js +0 -283
  133. package/dist/workspace-runtime/previews/runtime-preview.js +0 -177
  134. package/dist/workspace-runtime/previews/single-file.js +0 -43
  135. package/dist/workspace-runtime/processes/managed-writes.js +0 -69
  136. package/dist/workspace-runtime/serve.js +0 -441
  137. package/dist/workspace-runtime/server/accept-operation.js +0 -61
  138. package/dist/workspace-runtime/server/asset-transfers.js +0 -63
  139. package/dist/workspace-runtime/server/auth.js +0 -21
  140. package/dist/workspace-runtime/server/connectivity.js +0 -209
  141. package/dist/workspace-runtime/server/desktop-host.js +0 -429
  142. package/dist/workspace-runtime/server/desktop-preview-config.js +0 -81
  143. package/dist/workspace-runtime/server/desktop-preview-service.js +0 -157
  144. package/dist/workspace-runtime/server/desktop-preview-static.js +0 -53
  145. package/dist/workspace-runtime/server/desktop-preview.js +0 -189
  146. package/dist/workspace-runtime/server/dispatch.js +0 -1632
  147. package/dist/workspace-runtime/server/endpoints.js +0 -21
  148. package/dist/workspace-runtime/server/execution-group.js +0 -90
  149. package/dist/workspace-runtime/server/http.js +0 -1340
  150. package/dist/workspace-runtime/server/lock.js +0 -53
  151. package/dist/workspace-runtime/server/operation-record.js +0 -33
  152. package/dist/workspace-runtime/server/rfb-watch-gate.js +0 -168
  153. package/dist/workspace-runtime/server/session-restore.js +0 -84
  154. package/dist/workspace-runtime/server/source-uploader.js +0 -138
  155. package/dist/workspace-runtime/server/submit-operation.js +0 -41
  156. package/dist/workspace-runtime/server/terminal-host.js +0 -366
  157. package/dist/workspace-runtime/server/types.js +0 -1
  158. package/dist/workspace-runtime/server/workspace-transfer.js +0 -168
  159. package/dist/workspace-runtime/verify-artifact.js +0 -59
  160. package/dist/workspace-runtime/workspaces/append-only-log.js +0 -62
  161. package/dist/workspace-runtime/workspaces/archive.js +0 -207
  162. package/dist/workspace-runtime/workspaces/artifact-events.js +0 -55
  163. package/dist/workspace-runtime/workspaces/artifact-files.js +0 -199
  164. package/dist/workspace-runtime/workspaces/artifact-receipts.js +0 -89
  165. package/dist/workspace-runtime/workspaces/artifacts.js +0 -282
  166. package/dist/workspace-runtime/workspaces/asset-library-import.js +0 -366
  167. package/dist/workspace-runtime/workspaces/asset-transfer-dependencies.js +0 -81
  168. package/dist/workspace-runtime/workspaces/asset-transfer-publish.js +0 -434
  169. package/dist/workspace-runtime/workspaces/asset-transfer-storage.js +0 -389
  170. package/dist/workspace-runtime/workspaces/attachment-content.js +0 -73
  171. package/dist/workspace-runtime/workspaces/attachments.js +0 -185
  172. package/dist/workspace-runtime/workspaces/batch-commit.js +0 -142
  173. package/dist/workspace-runtime/workspaces/binary-content.js +0 -65
  174. package/dist/workspace-runtime/workspaces/binary-write.js +0 -112
  175. package/dist/workspace-runtime/workspaces/cli-context.js +0 -23
  176. package/dist/workspace-runtime/workspaces/cli-credentials.js +0 -115
  177. package/dist/workspace-runtime/workspaces/composer-context.js +0 -147
  178. package/dist/workspace-runtime/workspaces/context-error.js +0 -2
  179. package/dist/workspace-runtime/workspaces/delivery-build.js +0 -331
  180. package/dist/workspace-runtime/workspaces/delivery-store.js +0 -168
  181. package/dist/workspace-runtime/workspaces/delivery.js +0 -64
  182. package/dist/workspace-runtime/workspaces/dependencies.js +0 -279
  183. package/dist/workspace-runtime/workspaces/developer-command.js +0 -98
  184. package/dist/workspace-runtime/workspaces/directories.js +0 -132
  185. package/dist/workspace-runtime/workspaces/directory-access.js +0 -37
  186. package/dist/workspace-runtime/workspaces/directory-attachments.js +0 -245
  187. package/dist/workspace-runtime/workspaces/directory-create.js +0 -57
  188. package/dist/workspace-runtime/workspaces/directory-maintenance.js +0 -111
  189. package/dist/workspace-runtime/workspaces/directory-mutations.js +0 -238
  190. package/dist/workspace-runtime/workspaces/directory-revisions.js +0 -56
  191. package/dist/workspace-runtime/workspaces/directory-stats.js +0 -49
  192. package/dist/workspace-runtime/workspaces/disk-snapshot.js +0 -31
  193. package/dist/workspace-runtime/workspaces/empty-template.js +0 -42
  194. package/dist/workspace-runtime/workspaces/file-content.js +0 -48
  195. package/dist/workspace-runtime/workspaces/files-search.js +0 -116
  196. package/dist/workspace-runtime/workspaces/files.js +0 -150
  197. package/dist/workspace-runtime/workspaces/git-credential-broker.js +0 -312
  198. package/dist/workspace-runtime/workspaces/git-credential-helper.js +0 -68
  199. package/dist/workspace-runtime/workspaces/git-direct-store.js +0 -155
  200. package/dist/workspace-runtime/workspaces/git.js +0 -670
  201. package/dist/workspace-runtime/workspaces/instructions.js +0 -56
  202. package/dist/workspace-runtime/workspaces/json5-edit.js +0 -313
  203. package/dist/workspace-runtime/workspaces/library-attachments.js +0 -268
  204. package/dist/workspace-runtime/workspaces/operation-log.js +0 -23
  205. package/dist/workspace-runtime/workspaces/optional-platform-skills.js +0 -14
  206. package/dist/workspace-runtime/workspaces/parameter-agent-inputs.js +0 -87
  207. package/dist/workspace-runtime/workspaces/parameter-agent-protocol.js +0 -29
  208. package/dist/workspace-runtime/workspaces/parameter-agent-store.js +0 -58
  209. package/dist/workspace-runtime/workspaces/parameter-agent.js +0 -282
  210. package/dist/workspace-runtime/workspaces/parameters.js +0 -295
  211. package/dist/workspace-runtime/workspaces/prepare.js +0 -278
  212. package/dist/workspace-runtime/workspaces/registry.js +0 -251
  213. package/dist/workspace-runtime/workspaces/remix-references.js +0 -301
  214. package/dist/workspace-runtime/workspaces/revisions.js +0 -31
  215. package/dist/workspace-runtime/workspaces/session-image.js +0 -104
  216. package/dist/workspace-runtime/workspaces/shared-git.js +0 -40
  217. package/dist/workspace-runtime/workspaces/skill-artifact-loader.js +0 -95
  218. package/dist/workspace-runtime/workspaces/skills.js +0 -191
  219. package/dist/workspace-runtime/workspaces/transfer-quota.js +0 -69
  220. package/dist/workspace-runtime/workspaces/transfer.js +0 -471
  221. package/dist/workspace-runtime/workspaces/turn-changes.js +0 -75
  222. package/dist/workspace-runtime/workspaces/video-attachments.js +0 -49
  223. package/project-template/.claude/skills/playcraft-replica-validation/SKILL.md +0 -25
  224. package/project-template/.claude/skills/playcraft-replica-validation/references/contracts.md +0 -79
  225. package/project-template/.claude/skills/playcraft-video-understanding/SKILL.md +0 -29
  226. package/project-template/.claude/skills/playcraft-video-understanding/references/contracts.md +0 -37
  227. package/project-template-v2/.claude/agents/artist.md +0 -82
  228. package/project-template-v2/.claude/agents/developer.md +0 -153
  229. package/project-template-v2/.claude/agents/game-designer.md +0 -264
  230. package/project-template-v2/.claude/agents/refs/artist-art-style-catalog.md +0 -533
  231. package/project-template-v2/.claude/agents/refs/artist-color-audio-recipes.md +0 -153
  232. package/project-template-v2/.claude/agents/refs/artist-dimension-axis.md +0 -27
  233. package/project-template-v2/.claude/agents/refs/artist-master-composite-recipes.md +0 -208
  234. package/project-template-v2/.claude/agents/refs/atom-skill-library.md +0 -81
  235. package/project-template-v2/.claude/agents/refs/developer-impl-cookbook.md +0 -432
  236. package/project-template-v2/.claude/agents/refs/framework-5-component-filter.md +0 -252
  237. package/project-template-v2/.claude/agents/refs/framework-game-feel-juice.md +0 -266
  238. package/project-template-v2/.claude/agents/refs/framework-mda.md +0 -147
  239. package/project-template-v2/.claude/agents/refs/game-designer-gameplay-sufficiency.md +0 -123
  240. package/project-template-v2/.claude/agents/refs/ta-3d-flip-recipe.md +0 -88
  241. package/project-template-v2/.claude/agents/refs/ta-atlas-deliverable-standard.md +0 -67
  242. package/project-template-v2/.claude/agents/refs/ta-batch-pipeline-recipes.md +0 -120
  243. package/project-template-v2/.claude/agents/refs/ta-image-generation-detail.md +0 -300
  244. package/project-template-v2/.claude/agents/refs/ta-image-ops-reference.md +0 -495
  245. package/project-template-v2/.claude/agents/refs/ta-pipeline-cookbook.md +0 -1141
  246. package/project-template-v2/.claude/agents/refs/ta-tools-reference.md +0 -111
  247. package/project-template-v2/.claude/agents/refs/ta-vfx-preset-catalog.md +0 -365
  248. package/project-template-v2/.claude/agents/refs/threejs-cannon-pitfalls.md +0 -412
  249. package/project-template-v2/.claude/agents/reviewer.md +0 -75
  250. package/project-template-v2/.claude/agents/technical-artist.md +0 -86
  251. package/project-template-v2/.claude/hooks/snapshot-milestone.mjs +0 -243
  252. package/project-template-v2/.claude/hooks/user-prompt.mjs +0 -133
  253. package/project-template-v2/.claude/settings.json +0 -33
  254. package/project-template-v2/.claude/skills/brainstorming/SKILL.md +0 -161
  255. package/project-template-v2/.claude/skills/brainstorming/scripts/frame-template.html +0 -270
  256. package/project-template-v2/.claude/skills/brainstorming/scripts/helper.js +0 -177
  257. package/project-template-v2/.claude/skills/brainstorming/scripts/server.cjs +0 -354
  258. package/project-template-v2/.claude/skills/brainstorming/scripts/start-server.sh +0 -148
  259. package/project-template-v2/.claude/skills/brainstorming/scripts/stop-server.sh +0 -56
  260. package/project-template-v2/.claude/skills/brainstorming/scripts/wait-for-selection.sh +0 -62
  261. package/project-template-v2/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
  262. package/project-template-v2/.claude/skills/brainstorming/visual-companion.md +0 -309
  263. package/project-template-v2/.claude/skills/playcraft-ad-psychology/SKILL.md +0 -182
  264. package/project-template-v2/.claude/skills/playcraft-art-style-guide/SKILL.md +0 -123
  265. package/project-template-v2/.claude/skills/playcraft-asset-state-sheet/SKILL.md +0 -205
  266. package/project-template-v2/.claude/skills/playcraft-audio-generation/SKILL.md +0 -280
  267. package/project-template-v2/.claude/skills/playcraft-batch-pipeline/SKILL.md +0 -184
  268. package/project-template-v2/.claude/skills/playcraft-build-optimizer/SKILL.md +0 -306
  269. package/project-template-v2/.claude/skills/playcraft-image-generation/SKILL.md +0 -298
  270. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +0 -123
  271. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +0 -254
  272. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +0 -324
  273. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +0 -97
  274. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +0 -118
  275. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +0 -137
  276. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +0 -397
  277. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +0 -296
  278. package/project-template-v2/.claude/skills/playcraft-image-ops/SKILL.md +0 -122
  279. package/project-template-v2/.claude/skills/playcraft-image-processing/SKILL.md +0 -219
  280. package/project-template-v2/.claude/skills/playcraft-masking/SKILL.md +0 -373
  281. package/project-template-v2/.claude/skills/playcraft-playable-optimization/SKILL.md +0 -161
  282. package/project-template-v2/.claude/skills/playcraft-research/SKILL.md +0 -215
  283. package/project-template-v2/.claude/skills/playcraft-skill-recommender/SKILL.md +0 -382
  284. package/project-template-v2/.claude/skills/playcraft-sprite-generation/SKILL.md +0 -423
  285. package/project-template-v2/.claude/skills/playcraft-sprite-remix/SKILL.md +0 -158
  286. package/project-template-v2/.claude/skills/playcraft-sprite-sheet/SKILL.md +0 -100
  287. package/project-template-v2/.claude/skills/playcraft-storyboard/SKILL.md +0 -167
  288. package/project-template-v2/.claude/skills/playcraft-style-qa/SKILL.md +0 -270
  289. package/project-template-v2/.claude/skills/playcraft-text-rendering/SKILL.md +0 -236
  290. package/project-template-v2/.claude/skills/playcraft-vfx-animation/SKILL.md +0 -130
  291. package/project-template-v2/.claude/skills/playwright-cli/SKILL.md +0 -390
  292. package/project-template-v2/.claude/skills/playwright-cli/references/element-attributes.md +0 -23
  293. package/project-template-v2/.claude/skills/playwright-cli/references/playwright-tests.md +0 -39
  294. package/project-template-v2/.claude/skills/playwright-cli/references/request-mocking.md +0 -87
  295. package/project-template-v2/.claude/skills/playwright-cli/references/running-code.md +0 -240
  296. package/project-template-v2/.claude/skills/playwright-cli/references/session-management.md +0 -226
  297. package/project-template-v2/.claude/skills/playwright-cli/references/spec-driven-testing.md +0 -308
  298. package/project-template-v2/.claude/skills/playwright-cli/references/storage-state.md +0 -275
  299. package/project-template-v2/.claude/skills/playwright-cli/references/test-generation.md +0 -134
  300. package/project-template-v2/.claude/skills/playwright-cli/references/tracing.md +0 -142
  301. package/project-template-v2/.claude/skills/playwright-cli/references/video-recording.md +0 -153
  302. package/project-template-v2/.claude/skills/session-analyzer/SKILL.md +0 -386
  303. package/project-template-v2/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +0 -182
  304. package/project-template-v2/.claude/skills/session-analyzer/scripts/find-turns.mjs +0 -72
  305. package/project-template-v2/.claude/skills/session-analyzer/scripts/heavy-output.mjs +0 -121
  306. package/project-template-v2/.claude/skills/session-analyzer/scripts/resolve-session.mjs +0 -102
  307. package/project-template-v2/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +0 -127
  308. package/project-template-v2/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +0 -106
  309. package/project-template-v2/.claude/skills/session-analyzer/scripts/time-gaps.mjs +0 -128
  310. package/project-template-v2/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +0 -67
  311. package/project-template-v2/.claude/snapshot.mjs +0 -263
  312. package/project-template-v2/.playcraft/skills.lock.json +0 -152
  313. package/project-template-v2/CLAUDE.md +0 -146
  314. package/project-template-v2/assets/audio/bgm/.gitkeep +0 -0
  315. package/project-template-v2/assets/audio/sfx/.gitkeep +0 -0
  316. package/project-template-v2/assets/bundles/.gitkeep +0 -0
  317. package/project-template-v2/assets/images/bg/.gitkeep +0 -0
  318. package/project-template-v2/assets/images/reference/.gitkeep +0 -0
  319. package/project-template-v2/assets/images/storyboard/.gitkeep +0 -0
  320. package/project-template-v2/assets/images/tiles/.gitkeep +0 -0
  321. package/project-template-v2/assets/images/ui/.gitkeep +0 -0
  322. package/project-template-v2/assets/images/vfx/.gitkeep +0 -0
  323. package/project-template-v2/assets/models/.gitkeep +0 -0
  324. package/project-template-v2/docs/harness/iteration-1/context-flow.md +0 -254
  325. package/project-template-v2/docs/harness/iteration-1/generate-flow.md +0 -91
  326. package/project-template-v2/docs/harness/iteration-1/ideate-flow.md +0 -214
  327. package/project-template-v2/docs/harness/iteration-1/optimize-flow.md +0 -75
  328. package/project-template-v2/docs/harness/iteration-1/wrapup-flow.md +0 -63
  329. package/project-template-v2/docs/harness/iteration-2/context-flow.md +0 -223
  330. package/project-template-v2/docs/harness/iteration-2/generate-flow.md +0 -129
  331. package/project-template-v2/docs/harness/iteration-2/ideate-flow.md +0 -267
  332. package/project-template-v2/docs/harness/iteration-2/optimize-flow.md +0 -164
  333. package/project-template-v2/docs/harness/iteration-2/wrapup-flow.md +0 -115
  334. package/project-template-v2/docs/harness/orchestrator-flow.md +0 -364
  335. package/project-template-v2/docs/project-state.json +0 -60
  336. package/project-template-v2/docs/project-state.md +0 -72
  337. package/project-template-v2/docs/standards/README.md +0 -225
  338. package/project-template-v2/docs/standards/agent-behavior-standards.md +0 -174
  339. package/project-template-v2/docs/standards/artifacts/design-brief.md +0 -19
  340. package/project-template-v2/docs/standards/artifacts/design.md +0 -22
  341. package/project-template-v2/docs/standards/artifacts/game-code.md +0 -41
  342. package/project-template-v2/docs/standards/artifacts/todo-list.md +0 -41
  343. package/project-template-v2/docs/standards/iter1-agent-behavior-standards.md +0 -343
  344. package/project-template-v2/game/index.ts +0 -18
  345. package/project-template-v2/globals.d.ts +0 -51
  346. package/project-template-v2/index.css +0 -34
  347. package/project-template-v2/index.html +0 -18
  348. package/project-template-v2/main.ts +0 -9
  349. package/project-template-v2/package.json +0 -46
  350. package/project-template-v2/skills/_shared/scripts/dispatch-clear.mjs +0 -31
  351. package/project-template-v2/skills/_shared/scripts/dispatch-set.mjs +0 -86
  352. package/project-template-v2/skills/_shared/scripts/dod-check.mjs +0 -153
  353. package/project-template-v2/skills/_shared/scripts/handoff-append.mjs +0 -70
  354. package/project-template-v2/skills/_shared/scripts/lib/validator-artifacts.mjs +0 -91
  355. package/project-template-v2/skills/_shared/scripts/pipeline/dod-config.mjs +0 -131
  356. package/project-template-v2/skills/_shared/scripts/pipeline/index.mjs +0 -80
  357. package/project-template-v2/skills/_shared/scripts/pipeline/iteration-1-core.mjs +0 -90
  358. package/project-template-v2/skills/_shared/scripts/pipeline/iteration-2-wrap.mjs +0 -93
  359. package/project-template-v2/skills/_shared/scripts/pipeline/iteration-3-visual.mjs +0 -23
  360. package/project-template-v2/skills/_shared/scripts/render-project-state.mjs +0 -230
  361. package/project-template-v2/skills/_shared/scripts/state-advance-stage.mjs +0 -58
  362. package/project-template-v2/skills/_shared/scripts/state-get.mjs +0 -339
  363. package/project-template-v2/skills/_shared/scripts/state-handoff.mjs +0 -39
  364. package/project-template-v2/skills/_shared/scripts/state-set.mjs +0 -94
  365. package/project-template-v2/skills/_shared/scripts/state-store.mjs +0 -783
  366. package/project-template-v2/skills/_shared/scripts/todo-add.mjs +0 -88
  367. package/project-template-v2/skills/_shared/scripts/todo-get.mjs +0 -130
  368. package/project-template-v2/skills/_shared/scripts/todo-remove.mjs +0 -33
  369. package/project-template-v2/skills/_shared/scripts/todo-set.mjs +0 -47
  370. package/project-template-v2/skills/_shared/scripts/verify-asset-code-sync.mjs +0 -268
  371. package/project-template-v2/skills/_shared/scripts/verify-env.mjs +0 -285
  372. package/project-template-v2/skills/_shared/scripts/verify-placeholders.mjs +0 -161
  373. package/project-template-v2/skills/playable-autoplay/SKILL.md +0 -176
  374. package/project-template-v2/skills/playable-autoplay/agents/openai.yaml +0 -4
  375. package/project-template-v2/skills/playable-debug/SKILL.md +0 -116
  376. package/project-template-v2/skills/playable-debug/agents/openai.yaml +0 -4
  377. package/project-template-v2/skills/playable-debug/references/debug-config.md +0 -40
  378. package/project-template-v2/skills/playable-record/SKILL.md +0 -140
  379. package/project-template-v2/skills/playable-record/scripts/lib/dev-server.mjs +0 -104
  380. package/project-template-v2/skills/playable-record/scripts/lib/record-audio-bridge.js +0 -141
  381. package/project-template-v2/skills/playable-record/scripts/record-playable.mjs +0 -425
  382. package/project-template-v2/skills/playable-record/scripts/verify-contract.mjs +0 -261
  383. package/project-template-v2/skills/playable-record/scripts/verify-firstwin.mjs +0 -398
  384. package/project-template-v2/skills/playable-record/scripts/verify-fusion.mjs +0 -322
  385. package/project-template-v2/skills/playable-record/scripts/verify-lifecycle.mjs +0 -105
  386. package/project-template-v2/skills/playable-record/scripts/verify-vlm-video.mjs +0 -230
  387. package/project-template-v2/skills/playable-validate/SKILL.md +0 -61
  388. package/project-template-v2/skills/playable-validate/validation-rules.md +0 -14
  389. package/project-template-v2/skills/playable-verify-ui/SKILL.md +0 -63
  390. package/project-template-v2/skills/playable-verify-ui/scripts/lib/__init__.py +0 -1
  391. package/project-template-v2/skills/playable-verify-ui/scripts/lib/config_expr.js +0 -218
  392. package/project-template-v2/skills/playable-verify-ui/scripts/lib/node_utils.js +0 -51
  393. package/project-template-v2/skills/playable-verify-ui/scripts/lib/profile_loader.py +0 -59
  394. package/project-template-v2/skills/playable-verify-ui/scripts/lib/report.py +0 -106
  395. package/project-template-v2/skills/playable-verify-ui/scripts/lib/runtime_contract.js +0 -116
  396. package/project-template-v2/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +0 -59
  397. package/project-template-v2/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +0 -64
  398. package/project-template-v2/skills/playable-verify-ui/scripts/verify_runtime_contract.js +0 -58
  399. package/project-template-v2/skills/playable-verify-ui/scripts/verify_text_overlap.py +0 -333
  400. package/project-template-v2/ta-workspace/scripts/.gitkeep +0 -0
  401. package/project-template-v2/tsconfig.json +0 -20
  402. package/project-template-v2/vite.config.ts +0 -27
  403. package/project-templates/batch-locks/phaser.yaml +0 -922
  404. package/project-templates/batch-locks/threejs.yaml +0 -978
  405. package/project-templates/empty/AGENTS.md +0 -41
  406. package/project-templates/empty/gitignore +0 -33
@@ -1,373 +0,0 @@
1
- ---
2
- name: playcraft-masking
3
- description: PlayCraft 蒙版与智能抠图完整指南。涵盖 decompose-layers(302 Qwen 整图分层)、segment(SAM3 语义分割)的文本/框选模式、mask+rgba 输出、remove-background 选型、蒙版合成与轮廓描边。TA 在处理抠图、蒙版或背景替换任务前必读。
4
- triggers: 蒙版,mask,抠图,去背景,remove-background,语义分割,segment,SAM,SAM3,decompose-layers,图层分层,layered,背景替换,透明背景,RGBA,floodfill,ai抠图,轮廓描边,背景分离,foreground,主体提取
5
- ---
6
-
7
- # PlayCraft 蒙版与智能抠图完整指南
8
-
9
- ## 0. 工具速查
10
-
11
- | 工具 | 适用场景 | 速度 | 质量 |
12
- | -------------------------------------- | ------------------------------------------------- | ---------------------- | -------------------- |
13
- | `remove-background --method floodfill` | 纯色背景(绿幕、白底、渐变色) | 快(本地) | 中等,边缘较硬 |
14
- | `remove-background --method ai` | 任意复杂背景 | 慢(调后端) | 高,支持半透明/毛发 |
15
- | `decompose-layers` | **整图**拆成 N 个语义 RGBA 层(Master Composite) | 慢(302,约 1–2 分钟) | 高,全尺寸分层 PNG |
16
- | `segment` | 按 prompt **指定对象**抠图/蒙版 | 慢(SAM3) | 最高,产出 mask+rgba |
17
-
18
- **决策逻辑**:
19
-
20
- ```
21
- 要从整张合成稿一次性拆出背景/角色/UI 等多层?
22
- ├─ 是 → decompose-layers(需 Admin 配置 302 API Key;本地图需公网 URL 或 --input HTTPS)
23
- └─ 否 → 背景是纯色/绿幕?
24
- ├─ 是 → remove-background --method floodfill
25
- └─ 否 → 需要 mask 文件供后续合成?
26
- ├─ 是 → segment(或已知位置用 crop)
27
- └─ 否 → remove-background --method ai
28
- ```
29
-
30
- **decompose-layers vs segment**:
31
-
32
- - **decompose-layers**:无 per-object prompt,自动分层;适合 Master Composite 拆解;**不能**指定「只要第 3 格 tile」。ASR 优先用 `crop`。
33
- - **segment**:开放词汇或框选单个对象;适合精确蒙版;密集网格上**禁止**纯 text prompt(见下文 §2)。
34
-
35
- ---
36
-
37
- ## 1. decompose-layers — 302 Qwen 整图语义分层
38
-
39
- 将整张图拆成 `num_layers` 张带透明通道的 PNG(默认 4 层),用于 Master Composite 元素提取(ASR 优先 crop,不用本命令)。
40
-
41
- ```bash
42
- playcraft image decompose-layers \
43
- --input assets/images/storyboard/master_composite.png \
44
- --output-dir ta-workspace/tmp/layers \
45
- --num-layers 4 \
46
- --prompt ""
47
-
48
- # 输入已是公网 URL 时(推荐本地 dev)
49
- playcraft image decompose-layers \
50
- --input "https://example.com/composite.png" \
51
- --output-dir ./layers-out
52
- ```
53
-
54
- **配置**:Admin → 系统 → AI → `provider=302`、`modelKind=image` + API Key(与 302 生图共用,**不必**单独添加 qwen-image-layered 模型项)。
55
-
56
- **输出**:`layer_00.png` … `layer_{N-1}.png` + `decompose-layers-meta.json`。
57
-
58
- ---
59
-
60
- ## 2. remove-background — 去背景
61
-
62
- ### Floodfill 模式(纯色背景)
63
-
64
- ```bash
65
- # 基础用法(默认 floodfill,去除纯色背景)
66
- playcraft image remove-background \
67
- --input assets/images/tiles/tile_greenscreen.png \
68
- --output assets/images/tiles/tile_transparent.png
69
-
70
- # 调整容差(--tolerance,默认 30)
71
- # 值越高,容错越大(适合渐变背景或有噪点的纯色背景)
72
- playcraft image remove-background \
73
- --input assets/images/character/character_white_bg.png \
74
- --output assets/images/character/character_transparent.png \
75
- --method floodfill \
76
- --tolerance 50
77
-
78
- # 边缘平滑度(--edge-smooth,默认 2,最大有效 4)
79
- # 值越高,边缘越柔和(减少锯齿)
80
- playcraft image remove-background \
81
- --input assets/images/tiles/tile_white.png \
82
- --output assets/images/tiles/tile_clean.png \
83
- --tolerance 30 \
84
- --edge-smooth 3
85
- ```
86
-
87
- **Floodfill 参数说明**:
88
-
89
- | 参数 | 默认值 | 说明 |
90
- | --------------- | ------ | -------------------------------------------------- |
91
- | `--tolerance` | 30 | 颜色容差(0-255):背景色在此范围内的像素都被去掉 |
92
- | `--edge-smooth` | 2 | 边缘平滑(0-4):对边缘 alpha 做高斯平滑,减少锯齿 |
93
-
94
- **什么时候调大 tolerance**:
95
-
96
- - 白色背景但图中有浅色元素 → tolerance 太大会误删内容,建议 20-30
97
- - 绿幕背景有轻微渐变 → 可试 40-60
98
- - 背景有明显噪点 → 50+
99
-
100
- ### AI 模式(复杂背景)
101
-
102
- ```bash
103
- playcraft image remove-background \
104
- --input assets/images/character/character_scene.png \
105
- --output assets/images/character/character_cutout.png \
106
- --method ai \
107
- --model small # small(快)或 medium(精细)
108
-
109
- # 跳过 alpha 精化(更快,边缘稍粗)
110
- playcraft image remove-background \
111
- --input source.png \
112
- --output output.png \
113
- --method ai \
114
- --no-refine
115
- ```
116
-
117
- **AI 模式 vs Floodfill 选型表**:
118
-
119
- | 特征 | 选 floodfill | 选 ai |
120
- | -------------------------------- | ------------ | ----- |
121
- | 背景是纯色(绿、白、蓝) | 是 | — |
122
- | 背景有复杂纹理/渐变/场景 | — | 是 |
123
- | 角色有半透明部分(衣物、头发丝) | — | 是 |
124
- | 需要快速批量处理 | 是 | — |
125
- | 追求最高精度 | — | 是 |
126
-
127
- ---
128
-
129
- ## 3. segment — SAM3 语义分割
130
-
131
- `segment` 调用后端 SAM3 模型,对图片中的对象进行精确语义分割,产出**蒙版文件**(mask)和**透明抠图**(rgba)。
132
-
133
- **适用场景**:
134
-
135
- - 需要精确 mask 文件供后续合成操作使用
136
- - 从游戏截图中精确分离多个游戏元素
137
- - 需要不规则形状的蒙版(圆形徽章、异形 UI 元素)
138
-
139
- ### ⚠️ 模式选择决策(必读)
140
-
141
- > **对网格/已知布局图(如 ASR state sheets、authoring sprite sheets),严禁使用纯 text prompt!**
142
- >
143
- > text prompt 在多元素密集图上歧义极大——SAM3 无法准确区分"整个 tile 方块"和"方块内的水果 icon"。
144
-
145
- ```
146
- 提取目标的位置已知或可计算?
147
- ├─ 是(网格布局、规则排列)
148
- │ → 优先 playcraft image crop(最可靠,零 AI 歧义)
149
- │ → 次选 segment --boxes(需要精确蒙版时)
150
- │
151
- ├─ 位置大致可估、需要精确蒙版
152
- │ → segment --boxes(用近似 bbox 框选)
153
- │
154
- └─ 位置完全未知、元素形状不规则
155
- → segment --text(最后手段)
156
- → prompt 必须极其具体,包含位置/颜色/上下文描述
157
- ```
158
-
159
- **常见错误示例**:
160
-
161
- - ❌ `--text "apple tile icon"` → 可能只切出苹果水果,丢失 tile 方块底板
162
- - ❌ `--text "panda character"` → 图上有 panda face tile + panda 角色,返回多个 instance
163
- - ✅ `--boxes '[[50,50,450,450]]'` → 框选已知位置的完整元素
164
- - ✅ `playcraft image crop --x 50 --y 50 --width 400 --height 400` → 零歧义直切
165
-
166
- ### 文本提示模式(仅用于位置未知、元素分布不规则场景)
167
-
168
- ```bash
169
- # 用文字描述要提取的对象(仅适用于元素位置无法提前计算的场景)
170
- playcraft image segment \
171
- --input assets/images/screenshot.png \
172
- --text "the main character" \
173
- --output-dir assets/images/segment_output/
174
-
175
- # 提取特定游戏元素
176
- playcraft image segment \
177
- --input assets/images/game_scene.png \
178
- --text "the treasure chest" \
179
- --output-dir /tmp/segment/
180
- ```
181
-
182
- **text prompt 最佳实践**:
183
-
184
- - 描述要尽可能具体:加颜色、位置、完整性描述
185
- - ✅ `"the complete rounded square tile with green apple in top-left area"`
186
- - ❌ `"apple tile icon"`(歧义:是苹果本身?还是整个 tile 方块?)
187
- - 返回多个 instance 时,不要盲目取 score 最高的——检查 bbox 尺寸是否合理
188
-
189
- ### 框选模式(多对象精确分割)
190
-
191
- ```bash
192
- # --boxes 接受 JSON 数组,每个元素为 [x1, y1, x2, y2](左上角和右下角坐标)
193
- playcraft image segment \
194
- --input assets/images/game_scene.png \
195
- --boxes '[[50, 100, 200, 300], [350, 150, 500, 400]]' \
196
- --box-labels '["player", "enemy"]' \
197
- --output-dir /tmp/segment/
198
-
199
- # 单个框(无需 box-labels 时)
200
- playcraft image segment \
201
- --input assets/images/tile_sheet.png \
202
- --boxes '[[0, 0, 128, 128]]' \
203
- --output-dir /tmp/segment/
204
- ```
205
-
206
- ### 输出结构
207
-
208
- `segment` 在 `--output-dir` 下生成:
209
-
210
- ```
211
- segment_output/
212
- ├── 00_mask.png # 二值蒙版(白=前景,黑=背景)
213
- ├── 00_rgba.png # 透明背景抠图(直接可用)
214
- ├── 01_mask.png # 第二个对象的蒙版(若多框)
215
- ├── 01_rgba.png # 第二个对象的透明抠图
216
- └── segment-meta.json # 分割元数据(坐标、置信度等)
217
- ```
218
-
219
- ### 阈值调节(边缘精细度)
220
-
221
- ```bash
222
- # --threshold(默认 0.3):越低保留越多细节,但可能包含噪点
223
- # 越高边缘越干净,但可能丢失细节(毛发、透明边缘)
224
- playcraft image segment \
225
- --input game_scene.png \
226
- --text "the hero character" \
227
- --threshold 0.2 \ # 较低:保留更多边缘细节
228
- --output-dir /tmp/segment/
229
-
230
- # --mask-threshold:后端蒙版生成阈值(高级参数)
231
- playcraft image segment \
232
- --input source.png \
233
- --text "the dragon" \
234
- --threshold 0.3 \
235
- --mask-threshold 0.5 \
236
- --output-dir /tmp/segment/
237
- ```
238
-
239
- ### 仅生成蒙版(不要 rgba)
240
-
241
- ```bash
242
- # --no-rgba:跳过 rgba 生成,只输出 mask(更快)
243
- playcraft image segment \
244
- --input source.png \
245
- --text "the background elements" \
246
- --no-rgba \
247
- --output-dir /tmp/masks/
248
- ```
249
-
250
- ---
251
-
252
- ## 4. 蒙版合成工作流
253
-
254
- ### 工作流 A:换背景(最常用)
255
-
256
- ```bash
257
- # 1. 用 segment 提取角色(带透明背景)
258
- playcraft image segment \
259
- --input assets/images/character_with_bg.png \
260
- --text "the game character" \
261
- --output-dir /tmp/char_segment/
262
- # → 产出 /tmp/char_segment/00_rgba.png
263
-
264
- # 2. 用 overlay 把角色合成到新背景上
265
- playcraft image overlay \
266
- --base assets/images/bg/new_background.png \
267
- --overlay /tmp/char_segment/00_rgba.png \
268
- --output assets/images/character_on_new_bg.png \
269
- --gravity center
270
- ```
271
-
272
- ### 工作流 B:多层合成(背景 + 角色 + UI)
273
-
274
- ```bash
275
- # 层1:基础背景
276
- cp assets/images/bg/background.png /tmp/composite.png
277
-
278
- # 层2:叠加角色(居中偏下)
279
- playcraft image overlay \
280
- --base /tmp/composite.png \
281
- --overlay assets/images/character/character_transparent.png \
282
- --output /tmp/composite.png \
283
- --gravity south
284
-
285
- # 层3:叠加 UI 层(顶部)
286
- playcraft image overlay \
287
- --base /tmp/composite.png \
288
- --overlay assets/images/ui/hud_overlay.png \
289
- --output assets/images/final_scene.png \
290
- --gravity north
291
- ```
292
-
293
- ### 工作流 C:轮廓描边效果
294
-
295
- 用蒙版制作发光轮廓描边:
296
-
297
- ```bash
298
- # 1. 提取蒙版
299
- playcraft image segment \
300
- --input assets/images/character.png \
301
- --text "character" \
302
- --output-dir /tmp/seg/
303
-
304
- # 2. 把蒙版 tint 为描边颜色(金色)
305
- playcraft image tint \
306
- --input /tmp/seg/00_mask.png \
307
- --output /tmp/outline_colored.png \
308
- --color "#FFD700"
309
-
310
- # 3. 扩大描边层(pad 向外扩 4px)
311
- playcraft image pad \
312
- --input /tmp/outline_colored.png \
313
- --output /tmp/outline_padded.png \
314
- --all 4
315
-
316
- # 4. 叠回:描边层在底,原图在上
317
- playcraft image overlay \
318
- --base /tmp/outline_padded.png \
319
- --overlay /tmp/seg/00_rgba.png \
320
- --output assets/images/character_outlined.png \
321
- --gravity center
322
- ```
323
-
324
- ### 工作流 D:批量替换素材背景
325
-
326
- ```bash
327
- # 对多张带绿幕背景的素材批量去背
328
- for f in assets/images/raw/tile_*_greenscreen.png; do
329
- name=$(basename "$f" _greenscreen.png)
330
- playcraft image remove-background \
331
- --input "$f" \
332
- --output "assets/images/tiles/${name}.png" \
333
- --method floodfill \
334
- --tolerance 40
335
- done
336
- ```
337
-
338
- ---
339
-
340
- ## 5. 常见问题排查
341
-
342
- ### 边缘有绿色/白色残留(floodfill)
343
-
344
- ```bash
345
- # 原因:tolerance 太低,部分背景像素未被删除
346
- # 修复:适当提高 tolerance(每次 +10 尝试)
347
- playcraft image remove-background \
348
- --input source.png --output output.png \
349
- --tolerance 50 # 从 30 提升到 50
350
- ```
351
-
352
- ### segment 分割到了错误的对象
353
-
354
- ```bash
355
- # 原因:文本提示不够精确
356
- # 修复方案 1:更具体的描述
357
- --text "the blue warrior character in the center" # 加颜色/位置描述
358
-
359
- # 修复方案 2:改用框选模式,精确框出目标区域
360
- --boxes '[[x1, y1, x2, y2]]' # 先用 playcraft image info 确认图片尺寸
361
- ```
362
-
363
- ### rgba 输出有半透明噪点
364
-
365
- ```bash
366
- # 原因:threshold 太低
367
- # 修复:提高 threshold(从 0.3 到 0.5)
368
- playcraft image segment \
369
- --input source.png \
370
- --text "target object" \
371
- --threshold 0.5 \
372
- --output-dir /tmp/seg/
373
- ```
@@ -1,161 +0,0 @@
1
- ---
2
- name: playcraft-playable-optimization
3
- description: >-
4
- Loop 3 optimization toolkit for PlayCraft playable ads: video validate loop,
5
- image validator, headed MP4 recording, FX/animation polish, and L→G focus
6
- playground. Use during development ready-state, ui_review/ui_rework, and the
7
- optional ring 4 deep optimization after final Ring Gate.
8
- allowed-tools:
9
- - Bash(npm run state:get:*)
10
- - Bash(npm run ensure:project:*)
11
- - Bash(npm run verify:ui:*)
12
- - Bash(npm run record:mp4:*)
13
- - Bash(npm run playground:*)
14
- - Bash(npm run sweep:L1:*)
15
- - Bash(npm run sweep:G1:*)
16
- - Bash(npm run repack:frames:*)
17
- - Read
18
- - Write
19
- - Edit
20
- ---
21
-
22
- # PlayCraft Playable Optimization Toolkit
23
-
24
- Abbreviations used here: UI (User Interface, 用户界面), MP4 (MPEG-4 Part 14, 视频容器格式), FX (Effects, 特效), ASR (Asset State Reference, 资产状态参考).
25
-
26
- > **定位**:PlayCraft 三 loop 中 **Loop 3(优化模板)** 的执行引擎。不改 PlayCraft 的 Agent 编排,只提供工具 + 调用协议。
27
- >
28
- > **给谁用**:Developer(build 收尾)、Reviewer(ring 4 verify / optional optimization)、Developer / TA / Artist(ui_diff 修复)。
29
-
30
- ---
31
-
32
- ## 起手式(每次调用前必做)
33
-
34
- ```bash
35
- npm run state:get -- --json
36
- npm run ensure:project
37
- ```
38
-
39
- 先读 `state:get`,只运行 `nextCommands` / `currentRingVerifiers` 中已经披露的工具。`ensure:project` 只做目录、脚本和依赖准备,不代表当前 Ring 必须跑 UI / MP4 验证。
40
-
41
- `ensure:project` 会:
42
-
43
- - 检查/创建 `recordings/`、`validate/`、`focus-lab/`、`playground/`。
44
- - 若无 `playable.ui.profile.yaml` 则从 template 复制一份。
45
- - 合并 `package.json` scripts。
46
- - 自动 `npm install` + `npx playwright install chromium`(首次)。
47
-
48
- PlayCraft 是 **Vite** 项目,`ensure-project` 会检测到 `vite.config.ts` + 根目录 `index.html`,不会要求 `game/index.html`。
49
-
50
- ---
51
-
52
- ## 与 PlayCraft growth-rings 的接点
53
-
54
- | iteration / loop | 谁调用 | 调用什么 | 产出 |
55
- | ----------------------------- | ----------------------- | --------------------------------------------------------------- | ------------------------------ |
56
- | ring 1 `loop: build`(收尾) | Developer | `state:get` 披露的 contract/lifecycle/firstwin | 轻量 HOOK 生命周期 + 首关可胜 |
57
- | ring 2+ `loop: build`(收尾) | Developer | 仅运行 `state:get.nextCommands` 中的 `verify:ui` / `record:mp4` | 当前 Ring 证据 |
58
- | ring 4 `loop: verify` | Reviewer | `verify:ui` → `playwright-cli` 截图 | asset/layout 先行拦截 |
59
- | ring 4 verify ui_diff fail | Developer / TA / Artist | 读 `playable-validate` 子 skill 做最小 fix | 修复后重跑 verify + record |
60
- | ring 4 optional optimization | Reviewer / Orchestrator | `playable-validate` loop | `validate/PLAYABLE-*.md` + MP4 |
61
-
62
- ---
63
-
64
- ## 一句话指令表
65
-
66
- | 用户/Agent 意图 | 命令/入口 |
67
- | ------------------------ | ----------------------------------------------------------------------------- |
68
- | 查看当前可运行命令 | `npm run state:get -- --json` |
69
- | 整片优化到可交付 | 读 `skills/playable-validate/SKILL.md` § Agent 入口 |
70
- | 检查 UI / atlas / layout | 仅当 `state:get.nextCommands` 披露:`npm run verify:ui` |
71
- | 录完整局 headed MP4 | 仅当 `state:get.nextCommands` 披露:`npm run record:mp4 -- --headed --fps=60` |
72
- | 只录某个 focus zone | `npm run record:focus -- --scope=PHASE --fixture=endcard-win --headed` |
73
- | 优化 match 碎裂 FX | 读 `skills/playable-fx-decompose/SKILL.md` |
74
- | 优化帧光效 / burst | 读 `skills/playable-fx-peak/SKILL.md` |
75
- | 优化动效手感 | 读 `skills/playable-animate/SKILL.md` |
76
- | 局部 L→G 穷举 | `npm run sweep:L1` / `npm run sweep:G1` |
77
-
78
- ---
79
-
80
- ## Vite 项目注意事项
81
-
82
- PlayCraft 项目用 Vite,`record:mp4` 默认脚本已经带了 `--use-dev --url=http://localhost:3000/`。只在当前 Ring 已披露 `record:mp4` 时运行:
83
-
84
- ```bash
85
- npm run record:mp4 -- --headed --fps=60
86
- ```
87
-
88
- 这会:
89
-
90
- 1. 在当前目录启动 `npm run dev`。
91
- 2. 等待 `http://localhost:3000/` 可访问。
92
- 3. 用 Playwright 打开该 URL 并录制。
93
-
94
- 如果 Vite 端口不是 3000,改 `package.json` 里的 `record:mp4` 脚本,或手动:
95
-
96
- ```bash
97
- # 终端 1
98
- npm run dev
99
-
100
- # 终端 2 / Agent
101
- npm run record:mp4 -- --url=http://localhost:5173/ --headed --fps=60
102
- ```
103
-
104
- ---
105
-
106
- ## 录制前提:游戏需暴露 harness 契约
107
-
108
- Recorder / `verify:contract` 以 **`window.__playable`** 为 pass 标准(见 `game/contract/` + `publishPlayableRuntime()`):
109
-
110
- ```js
111
- window.__playable.autoPlay(); // 一键推进到 ENDCARD
112
- window.__playable.getState(); // { currentPhase, isGameOver }
113
- window.__playable.getCanvas?.(); // 可选,供录屏取 canvas
114
- window.__playable.hideDebugUi?.(); // 可选,录屏前隐藏 debug UI
115
- ```
116
-
117
- `window.__game` 可保留为引擎句柄(如 Phaser.Game),但**不得**在其上挂载 `start` / `autoPlay` 等 harness 方法。
118
-
119
- **Legacy 路径(仅 warn,2026-Q3 移除)**:旧项目若仍只暴露 `MainScene._onDebugAutoPlay()` + `sceneManager`,verify 仍可通过但会提示迁移到 `window.__playable`。
120
-
121
- ---
122
-
123
- ## 标准工作流(按 gate 披露执行)
124
-
125
- ```
126
- npm run state:get -- --json
127
- npm run ensure:project
128
- # Run only commands disclosed by state:get.nextCommands.
129
- # Then review MP4 evidence, make the smallest fix, and rerun disclosed gates.
130
- ```
131
-
132
- ---
133
-
134
- ## 输出规范
135
-
136
- - MP4 证据:`recordings/playable-YYYYMMDD-HHmmss.mp4`
137
- - 报告:`validate/PLAYABLE-YYYYMMDD-HHmmss.md`
138
- - Focus 录屏:`recordings/focus/...`
139
- - 给用户/ orchestrator:结论 + 证据路径 + 1–3 条 vs 基线
140
-
141
- ---
142
-
143
- ## 依赖
144
-
145
- - Node.js 18+
146
- - Python 3 + `pip install pyyaml jsonschema pillow`
147
- - ffmpeg(`brew install ffmpeg`)
148
- - Playwright Chromium(由 `ensure-project` 自动安装)
149
-
150
- ---
151
-
152
- ## 相关文件
153
-
154
- - `skills/playable-validate/SKILL.md` — 整片优化主入口
155
- - `skills/playable-verify-ui/SKILL.md` — Image Validator
156
- - `skills/playable-record/SKILL.md` — 录屏
157
- - `skills/playable-debug/SKILL.md` — 一键通关
158
- - `skills/playable-fx-peak/SKILL.md` — 帧光效
159
- - `skills/playable-fx-decompose/SKILL.md` — 碎裂
160
- - `skills/playable-animate/SKILL.md` — 动效手感
161
- - `skills/playable-focus/SKILL.md` — L→G playground