@playcraft/cli 0.1.33 → 0.1.35-prod

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 (346) hide show
  1. package/README.md +3 -56
  2. package/dist/agent/local-backend.js +1 -1
  3. package/dist/cli-root-help.js +0 -2
  4. package/dist/commands/build.js +4 -9
  5. package/dist/commands/create.js +33 -26
  6. package/dist/commands/image.js +6 -2
  7. package/dist/commands/login.js +42 -84
  8. package/dist/commands/skills.js +0 -2
  9. package/dist/commands/tools-3d.js +0 -11
  10. package/dist/commands/tools-generation.js +109 -68
  11. package/dist/commands/tools-image-context.js +23 -0
  12. package/dist/commands/tools.js +2 -2
  13. package/dist/config.js +4 -59
  14. package/dist/index.js +3 -36
  15. package/dist/remix/clone.js +0 -2
  16. package/dist/remix/init-template.js +0 -2
  17. package/dist/remix/pull.js +0 -2
  18. package/dist/remix/push.js +1 -21
  19. package/dist/utils/agent-api-client.js +30 -185
  20. package/dist/utils/image-asset-context.js +105 -0
  21. package/dist/utils/playcraft-http-client.js +4 -6
  22. package/package.json +5 -14
  23. package/project-template/.claude/agents/refs/ta-image-generation-detail.md +67 -123
  24. package/project-template/.claude/skills/playcraft-image-generation/SKILL.md +105 -44
  25. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +42 -33
  26. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +18 -20
  27. package/project-template/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +6 -7
  28. package/project-template/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +36 -39
  29. package/project-templates/phaser/.claude/agents/refs/ta-image-generation-detail.md +59 -59
  30. package/project-templates/phaser/.claude/skills/playcraft-image-generation/SKILL.md +105 -44
  31. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +42 -33
  32. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +18 -20
  33. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +6 -7
  34. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +36 -39
  35. package/project-templates/threejs/.claude/agents/refs/ta-image-generation-detail.md +59 -59
  36. package/project-templates/threejs/.claude/skills/playcraft-image-generation/SKILL.md +105 -44
  37. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +42 -33
  38. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +18 -20
  39. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +6 -7
  40. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +36 -39
  41. package/dist/auth/account-activation.js +0 -157
  42. package/dist/auth/messages.js +0 -30
  43. package/dist/commands/platform-skills.generated.js +0 -19
  44. package/dist/commands/playable.js +0 -53
  45. package/dist/commands/tools-batch.js +0 -87
  46. package/dist/commands/video.js +0 -111
  47. package/dist/commands/workspace-runtime.js +0 -54
  48. package/dist/commands/workspace.js +0 -35
  49. package/dist/project-skills/builtin-import.js +0 -225
  50. package/dist/project-skills/commands.js +0 -77
  51. package/dist/project-skills/lifecycle.js +0 -28
  52. package/dist/project-skills/local-run.js +0 -112
  53. package/dist/project-skills/local-store.js +0 -221
  54. package/dist/project-skills/messages.js +0 -80
  55. package/dist/project-skills/reconcile.js +0 -62
  56. package/dist/project-skills/remote-cache.js +0 -51
  57. package/dist/project-skills/validation.js +0 -19
  58. package/dist/recording/messages.js +0 -40
  59. package/dist/recording/project-digest.js +0 -85
  60. package/dist/recording/recorder.js +0 -293
  61. package/dist/recording/scenario.js +0 -50
  62. package/dist/utils/environment-endpoints.js +0 -17
  63. package/dist/utils/tool-operation-journal.js +0 -124
  64. package/dist/utils/video-evidence-git.js +0 -81
  65. package/dist/video-replication/client.js +0 -222
  66. package/dist/video-replication/comparison-evidence.js +0 -149
  67. package/dist/video-replication/comparison-files.js +0 -57
  68. package/dist/video-replication/comparison-log.js +0 -72
  69. package/dist/video-replication/comparison-messages.js +0 -104
  70. package/dist/video-replication/comparison-output.js +0 -63
  71. package/dist/video-replication/comparison-preflight.js +0 -66
  72. package/dist/video-replication/comparison.js +0 -216
  73. package/dist/video-replication/evidence.js +0 -165
  74. package/dist/video-replication/media.js +0 -111
  75. package/dist/video-replication/messages.js +0 -89
  76. package/dist/workspace/messages.js +0 -35
  77. package/dist/workspace/transfer-client.js +0 -174
  78. package/dist/workspace-runtime/codex/app-server.js +0 -965
  79. package/dist/workspace-runtime/codex/compact.js +0 -46
  80. package/dist/workspace-runtime/codex/config-toml.js +0 -107
  81. package/dist/workspace-runtime/codex/jsonrpc-stdio.js +0 -145
  82. package/dist/workspace-runtime/codex/launcher-client.js +0 -177
  83. package/dist/workspace-runtime/codex/loopback.js +0 -146
  84. package/dist/workspace-runtime/codex/mcp-config.js +0 -39
  85. package/dist/workspace-runtime/codex/model-broker.js +0 -263
  86. package/dist/workspace-runtime/codex/native-adapter.js +0 -9
  87. package/dist/workspace-runtime/codex/permissions.js +0 -70
  88. package/dist/workspace-runtime/codex/work-mode.js +0 -15
  89. package/dist/workspace-runtime/main.js +0 -10
  90. package/dist/workspace-runtime/persistence/journal.js +0 -355
  91. package/dist/workspace-runtime/persistence/native-subagents.js +0 -162
  92. package/dist/workspace-runtime/persistence/sqlite-client.js +0 -77
  93. package/dist/workspace-runtime/persistence/sqlite-worker.js +0 -1096
  94. package/dist/workspace-runtime/previews/output.js +0 -36
  95. package/dist/workspace-runtime/previews/publish.js +0 -262
  96. package/dist/workspace-runtime/previews/single-file.js +0 -43
  97. package/dist/workspace-runtime/processes/managed-writes.js +0 -69
  98. package/dist/workspace-runtime/production/contracts.js +0 -17
  99. package/dist/workspace-runtime/production/controller.js +0 -207
  100. package/dist/workspace-runtime/production/dependencies.js +0 -60
  101. package/dist/workspace-runtime/production/native.js +0 -203
  102. package/dist/workspace-runtime/production/processes.js +0 -86
  103. package/dist/workspace-runtime/production/save-command.js +0 -35
  104. package/dist/workspace-runtime/production/source-copy.js +0 -91
  105. package/dist/workspace-runtime/production/stages.js +0 -205
  106. package/dist/workspace-runtime/production/storage.js +0 -60
  107. package/dist/workspace-runtime/serve.js +0 -207
  108. package/dist/workspace-runtime/server/auth.js +0 -21
  109. package/dist/workspace-runtime/server/connectivity.js +0 -201
  110. package/dist/workspace-runtime/server/desktop-host.js +0 -429
  111. package/dist/workspace-runtime/server/desktop-preview-config.js +0 -81
  112. package/dist/workspace-runtime/server/desktop-preview-service.js +0 -157
  113. package/dist/workspace-runtime/server/desktop-preview-static.js +0 -53
  114. package/dist/workspace-runtime/server/desktop-preview.js +0 -189
  115. package/dist/workspace-runtime/server/dispatch.js +0 -1174
  116. package/dist/workspace-runtime/server/endpoints.js +0 -19
  117. package/dist/workspace-runtime/server/execution-group.js +0 -85
  118. package/dist/workspace-runtime/server/http.js +0 -1127
  119. package/dist/workspace-runtime/server/lock.js +0 -53
  120. package/dist/workspace-runtime/server/rfb-watch-gate.js +0 -168
  121. package/dist/workspace-runtime/server/terminal-host.js +0 -366
  122. package/dist/workspace-runtime/server/types.js +0 -1
  123. package/dist/workspace-runtime/server/workspace-transfer.js +0 -99
  124. package/dist/workspace-runtime/workspaces/archive.js +0 -207
  125. package/dist/workspace-runtime/workspaces/artifact-events.js +0 -55
  126. package/dist/workspace-runtime/workspaces/artifact-files.js +0 -197
  127. package/dist/workspace-runtime/workspaces/artifact-receipts.js +0 -89
  128. package/dist/workspace-runtime/workspaces/artifacts.js +0 -282
  129. package/dist/workspace-runtime/workspaces/attachment-content.js +0 -123
  130. package/dist/workspace-runtime/workspaces/attachments.js +0 -181
  131. package/dist/workspace-runtime/workspaces/batch-commit.js +0 -142
  132. package/dist/workspace-runtime/workspaces/cli-context.js +0 -23
  133. package/dist/workspace-runtime/workspaces/cli-credentials.js +0 -111
  134. package/dist/workspace-runtime/workspaces/composer-context.js +0 -125
  135. package/dist/workspace-runtime/workspaces/context-error.js +0 -2
  136. package/dist/workspace-runtime/workspaces/dependencies.js +0 -264
  137. package/dist/workspace-runtime/workspaces/developer-command.js +0 -64
  138. package/dist/workspace-runtime/workspaces/directories.js +0 -123
  139. package/dist/workspace-runtime/workspaces/directory-access.js +0 -37
  140. package/dist/workspace-runtime/workspaces/directory-attachments.js +0 -245
  141. package/dist/workspace-runtime/workspaces/directory-maintenance.js +0 -111
  142. package/dist/workspace-runtime/workspaces/directory-stats.js +0 -49
  143. package/dist/workspace-runtime/workspaces/disk-snapshot.js +0 -31
  144. package/dist/workspace-runtime/workspaces/empty-template.js +0 -40
  145. package/dist/workspace-runtime/workspaces/files-search.js +0 -116
  146. package/dist/workspace-runtime/workspaces/files.js +0 -120
  147. package/dist/workspace-runtime/workspaces/git-credential-broker.js +0 -312
  148. package/dist/workspace-runtime/workspaces/git-credential-helper.js +0 -68
  149. package/dist/workspace-runtime/workspaces/git-direct-store.js +0 -155
  150. package/dist/workspace-runtime/workspaces/git.js +0 -658
  151. package/dist/workspace-runtime/workspaces/instructions.js +0 -56
  152. package/dist/workspace-runtime/workspaces/json5-edit.js +0 -170
  153. package/dist/workspace-runtime/workspaces/library-attachments.js +0 -268
  154. package/dist/workspace-runtime/workspaces/parameters.js +0 -272
  155. package/dist/workspace-runtime/workspaces/prepare.js +0 -264
  156. package/dist/workspace-runtime/workspaces/registry.js +0 -236
  157. package/dist/workspace-runtime/workspaces/revisions.js +0 -31
  158. package/dist/workspace-runtime/workspaces/skill-artifact-loader.js +0 -91
  159. package/dist/workspace-runtime/workspaces/skills.js +0 -189
  160. package/dist/workspace-runtime/workspaces/transfer.js +0 -288
  161. package/dist/workspace-runtime/workspaces/turn-changes.js +0 -72
  162. package/dist/workspace-runtime/workspaces/video-attachments.js +0 -49
  163. package/project-template/.claude/skills/playcraft-replica-validation/SKILL.md +0 -25
  164. package/project-template/.claude/skills/playcraft-replica-validation/references/contracts.md +0 -79
  165. package/project-template/.claude/skills/playcraft-video-understanding/SKILL.md +0 -29
  166. package/project-template/.claude/skills/playcraft-video-understanding/references/contracts.md +0 -37
  167. package/project-template-v2/.claude/agents/artist.md +0 -82
  168. package/project-template-v2/.claude/agents/developer.md +0 -153
  169. package/project-template-v2/.claude/agents/game-designer.md +0 -264
  170. package/project-template-v2/.claude/agents/refs/artist-art-style-catalog.md +0 -533
  171. package/project-template-v2/.claude/agents/refs/artist-color-audio-recipes.md +0 -153
  172. package/project-template-v2/.claude/agents/refs/artist-dimension-axis.md +0 -27
  173. package/project-template-v2/.claude/agents/refs/artist-master-composite-recipes.md +0 -208
  174. package/project-template-v2/.claude/agents/refs/atom-skill-library.md +0 -81
  175. package/project-template-v2/.claude/agents/refs/developer-impl-cookbook.md +0 -432
  176. package/project-template-v2/.claude/agents/refs/framework-5-component-filter.md +0 -252
  177. package/project-template-v2/.claude/agents/refs/framework-game-feel-juice.md +0 -266
  178. package/project-template-v2/.claude/agents/refs/framework-mda.md +0 -147
  179. package/project-template-v2/.claude/agents/refs/game-designer-gameplay-sufficiency.md +0 -123
  180. package/project-template-v2/.claude/agents/refs/ta-3d-flip-recipe.md +0 -88
  181. package/project-template-v2/.claude/agents/refs/ta-atlas-deliverable-standard.md +0 -67
  182. package/project-template-v2/.claude/agents/refs/ta-batch-pipeline-recipes.md +0 -120
  183. package/project-template-v2/.claude/agents/refs/ta-image-generation-detail.md +0 -300
  184. package/project-template-v2/.claude/agents/refs/ta-image-ops-reference.md +0 -495
  185. package/project-template-v2/.claude/agents/refs/ta-pipeline-cookbook.md +0 -1141
  186. package/project-template-v2/.claude/agents/refs/ta-tools-reference.md +0 -111
  187. package/project-template-v2/.claude/agents/refs/ta-vfx-preset-catalog.md +0 -365
  188. package/project-template-v2/.claude/agents/refs/threejs-cannon-pitfalls.md +0 -412
  189. package/project-template-v2/.claude/agents/reviewer.md +0 -75
  190. package/project-template-v2/.claude/agents/technical-artist.md +0 -86
  191. package/project-template-v2/.claude/hooks/snapshot-milestone.mjs +0 -243
  192. package/project-template-v2/.claude/hooks/user-prompt.mjs +0 -133
  193. package/project-template-v2/.claude/settings.json +0 -33
  194. package/project-template-v2/.claude/skills/brainstorming/SKILL.md +0 -161
  195. package/project-template-v2/.claude/skills/brainstorming/scripts/frame-template.html +0 -270
  196. package/project-template-v2/.claude/skills/brainstorming/scripts/helper.js +0 -177
  197. package/project-template-v2/.claude/skills/brainstorming/scripts/server.cjs +0 -354
  198. package/project-template-v2/.claude/skills/brainstorming/scripts/start-server.sh +0 -148
  199. package/project-template-v2/.claude/skills/brainstorming/scripts/stop-server.sh +0 -56
  200. package/project-template-v2/.claude/skills/brainstorming/scripts/wait-for-selection.sh +0 -62
  201. package/project-template-v2/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
  202. package/project-template-v2/.claude/skills/brainstorming/visual-companion.md +0 -309
  203. package/project-template-v2/.claude/skills/playcraft-ad-psychology/SKILL.md +0 -182
  204. package/project-template-v2/.claude/skills/playcraft-art-style-guide/SKILL.md +0 -123
  205. package/project-template-v2/.claude/skills/playcraft-asset-state-sheet/SKILL.md +0 -205
  206. package/project-template-v2/.claude/skills/playcraft-audio-generation/SKILL.md +0 -280
  207. package/project-template-v2/.claude/skills/playcraft-batch-pipeline/SKILL.md +0 -184
  208. package/project-template-v2/.claude/skills/playcraft-build-optimizer/SKILL.md +0 -306
  209. package/project-template-v2/.claude/skills/playcraft-image-generation/SKILL.md +0 -298
  210. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +0 -123
  211. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +0 -254
  212. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +0 -324
  213. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +0 -97
  214. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +0 -118
  215. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +0 -137
  216. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +0 -397
  217. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +0 -296
  218. package/project-template-v2/.claude/skills/playcraft-image-ops/SKILL.md +0 -122
  219. package/project-template-v2/.claude/skills/playcraft-image-processing/SKILL.md +0 -219
  220. package/project-template-v2/.claude/skills/playcraft-masking/SKILL.md +0 -373
  221. package/project-template-v2/.claude/skills/playcraft-playable-optimization/SKILL.md +0 -161
  222. package/project-template-v2/.claude/skills/playcraft-research/SKILL.md +0 -215
  223. package/project-template-v2/.claude/skills/playcraft-skill-recommender/SKILL.md +0 -382
  224. package/project-template-v2/.claude/skills/playcraft-sprite-generation/SKILL.md +0 -423
  225. package/project-template-v2/.claude/skills/playcraft-sprite-remix/SKILL.md +0 -158
  226. package/project-template-v2/.claude/skills/playcraft-sprite-sheet/SKILL.md +0 -100
  227. package/project-template-v2/.claude/skills/playcraft-storyboard/SKILL.md +0 -167
  228. package/project-template-v2/.claude/skills/playcraft-style-qa/SKILL.md +0 -270
  229. package/project-template-v2/.claude/skills/playcraft-text-rendering/SKILL.md +0 -236
  230. package/project-template-v2/.claude/skills/playcraft-vfx-animation/SKILL.md +0 -130
  231. package/project-template-v2/.claude/skills/playwright-cli/SKILL.md +0 -390
  232. package/project-template-v2/.claude/skills/playwright-cli/references/element-attributes.md +0 -23
  233. package/project-template-v2/.claude/skills/playwright-cli/references/playwright-tests.md +0 -39
  234. package/project-template-v2/.claude/skills/playwright-cli/references/request-mocking.md +0 -87
  235. package/project-template-v2/.claude/skills/playwright-cli/references/running-code.md +0 -240
  236. package/project-template-v2/.claude/skills/playwright-cli/references/session-management.md +0 -226
  237. package/project-template-v2/.claude/skills/playwright-cli/references/spec-driven-testing.md +0 -308
  238. package/project-template-v2/.claude/skills/playwright-cli/references/storage-state.md +0 -275
  239. package/project-template-v2/.claude/skills/playwright-cli/references/test-generation.md +0 -134
  240. package/project-template-v2/.claude/skills/playwright-cli/references/tracing.md +0 -142
  241. package/project-template-v2/.claude/skills/playwright-cli/references/video-recording.md +0 -153
  242. package/project-template-v2/.claude/skills/session-analyzer/SKILL.md +0 -386
  243. package/project-template-v2/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +0 -182
  244. package/project-template-v2/.claude/skills/session-analyzer/scripts/find-turns.mjs +0 -72
  245. package/project-template-v2/.claude/skills/session-analyzer/scripts/heavy-output.mjs +0 -121
  246. package/project-template-v2/.claude/skills/session-analyzer/scripts/resolve-session.mjs +0 -102
  247. package/project-template-v2/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +0 -127
  248. package/project-template-v2/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +0 -106
  249. package/project-template-v2/.claude/skills/session-analyzer/scripts/time-gaps.mjs +0 -128
  250. package/project-template-v2/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +0 -67
  251. package/project-template-v2/.claude/snapshot.mjs +0 -263
  252. package/project-template-v2/.playcraft/skills.lock.json +0 -152
  253. package/project-template-v2/CLAUDE.md +0 -146
  254. package/project-template-v2/assets/audio/bgm/.gitkeep +0 -0
  255. package/project-template-v2/assets/audio/sfx/.gitkeep +0 -0
  256. package/project-template-v2/assets/bundles/.gitkeep +0 -0
  257. package/project-template-v2/assets/images/bg/.gitkeep +0 -0
  258. package/project-template-v2/assets/images/reference/.gitkeep +0 -0
  259. package/project-template-v2/assets/images/storyboard/.gitkeep +0 -0
  260. package/project-template-v2/assets/images/tiles/.gitkeep +0 -0
  261. package/project-template-v2/assets/images/ui/.gitkeep +0 -0
  262. package/project-template-v2/assets/images/vfx/.gitkeep +0 -0
  263. package/project-template-v2/assets/models/.gitkeep +0 -0
  264. package/project-template-v2/docs/harness/iteration-1/context-flow.md +0 -254
  265. package/project-template-v2/docs/harness/iteration-1/generate-flow.md +0 -91
  266. package/project-template-v2/docs/harness/iteration-1/ideate-flow.md +0 -214
  267. package/project-template-v2/docs/harness/iteration-1/optimize-flow.md +0 -75
  268. package/project-template-v2/docs/harness/iteration-1/wrapup-flow.md +0 -63
  269. package/project-template-v2/docs/harness/iteration-2/context-flow.md +0 -223
  270. package/project-template-v2/docs/harness/iteration-2/generate-flow.md +0 -129
  271. package/project-template-v2/docs/harness/iteration-2/ideate-flow.md +0 -267
  272. package/project-template-v2/docs/harness/iteration-2/optimize-flow.md +0 -164
  273. package/project-template-v2/docs/harness/iteration-2/wrapup-flow.md +0 -115
  274. package/project-template-v2/docs/harness/orchestrator-flow.md +0 -364
  275. package/project-template-v2/docs/project-state.json +0 -60
  276. package/project-template-v2/docs/project-state.md +0 -72
  277. package/project-template-v2/docs/standards/README.md +0 -225
  278. package/project-template-v2/docs/standards/agent-behavior-standards.md +0 -174
  279. package/project-template-v2/docs/standards/artifacts/design-brief.md +0 -19
  280. package/project-template-v2/docs/standards/artifacts/design.md +0 -22
  281. package/project-template-v2/docs/standards/artifacts/game-code.md +0 -41
  282. package/project-template-v2/docs/standards/artifacts/todo-list.md +0 -41
  283. package/project-template-v2/docs/standards/iter1-agent-behavior-standards.md +0 -343
  284. package/project-template-v2/game/index.ts +0 -18
  285. package/project-template-v2/globals.d.ts +0 -51
  286. package/project-template-v2/index.css +0 -34
  287. package/project-template-v2/index.html +0 -18
  288. package/project-template-v2/main.ts +0 -9
  289. package/project-template-v2/package.json +0 -46
  290. package/project-template-v2/skills/_shared/scripts/dispatch-clear.mjs +0 -31
  291. package/project-template-v2/skills/_shared/scripts/dispatch-set.mjs +0 -86
  292. package/project-template-v2/skills/_shared/scripts/dod-check.mjs +0 -153
  293. package/project-template-v2/skills/_shared/scripts/handoff-append.mjs +0 -70
  294. package/project-template-v2/skills/_shared/scripts/lib/validator-artifacts.mjs +0 -91
  295. package/project-template-v2/skills/_shared/scripts/pipeline/dod-config.mjs +0 -131
  296. package/project-template-v2/skills/_shared/scripts/pipeline/index.mjs +0 -80
  297. package/project-template-v2/skills/_shared/scripts/pipeline/iteration-1-core.mjs +0 -90
  298. package/project-template-v2/skills/_shared/scripts/pipeline/iteration-2-wrap.mjs +0 -93
  299. package/project-template-v2/skills/_shared/scripts/pipeline/iteration-3-visual.mjs +0 -23
  300. package/project-template-v2/skills/_shared/scripts/render-project-state.mjs +0 -230
  301. package/project-template-v2/skills/_shared/scripts/state-advance-stage.mjs +0 -58
  302. package/project-template-v2/skills/_shared/scripts/state-get.mjs +0 -339
  303. package/project-template-v2/skills/_shared/scripts/state-handoff.mjs +0 -39
  304. package/project-template-v2/skills/_shared/scripts/state-set.mjs +0 -94
  305. package/project-template-v2/skills/_shared/scripts/state-store.mjs +0 -783
  306. package/project-template-v2/skills/_shared/scripts/todo-add.mjs +0 -88
  307. package/project-template-v2/skills/_shared/scripts/todo-get.mjs +0 -130
  308. package/project-template-v2/skills/_shared/scripts/todo-remove.mjs +0 -33
  309. package/project-template-v2/skills/_shared/scripts/todo-set.mjs +0 -47
  310. package/project-template-v2/skills/_shared/scripts/verify-asset-code-sync.mjs +0 -268
  311. package/project-template-v2/skills/_shared/scripts/verify-env.mjs +0 -285
  312. package/project-template-v2/skills/_shared/scripts/verify-placeholders.mjs +0 -161
  313. package/project-template-v2/skills/playable-autoplay/SKILL.md +0 -176
  314. package/project-template-v2/skills/playable-autoplay/agents/openai.yaml +0 -4
  315. package/project-template-v2/skills/playable-debug/SKILL.md +0 -116
  316. package/project-template-v2/skills/playable-debug/agents/openai.yaml +0 -4
  317. package/project-template-v2/skills/playable-debug/references/debug-config.md +0 -40
  318. package/project-template-v2/skills/playable-record/SKILL.md +0 -140
  319. package/project-template-v2/skills/playable-record/scripts/lib/dev-server.mjs +0 -104
  320. package/project-template-v2/skills/playable-record/scripts/lib/record-audio-bridge.js +0 -141
  321. package/project-template-v2/skills/playable-record/scripts/record-playable.mjs +0 -425
  322. package/project-template-v2/skills/playable-record/scripts/verify-contract.mjs +0 -261
  323. package/project-template-v2/skills/playable-record/scripts/verify-firstwin.mjs +0 -398
  324. package/project-template-v2/skills/playable-record/scripts/verify-fusion.mjs +0 -322
  325. package/project-template-v2/skills/playable-record/scripts/verify-lifecycle.mjs +0 -105
  326. package/project-template-v2/skills/playable-record/scripts/verify-vlm-video.mjs +0 -230
  327. package/project-template-v2/skills/playable-validate/SKILL.md +0 -61
  328. package/project-template-v2/skills/playable-validate/validation-rules.md +0 -14
  329. package/project-template-v2/skills/playable-verify-ui/SKILL.md +0 -63
  330. package/project-template-v2/skills/playable-verify-ui/scripts/lib/__init__.py +0 -1
  331. package/project-template-v2/skills/playable-verify-ui/scripts/lib/config_expr.js +0 -218
  332. package/project-template-v2/skills/playable-verify-ui/scripts/lib/node_utils.js +0 -51
  333. package/project-template-v2/skills/playable-verify-ui/scripts/lib/profile_loader.py +0 -59
  334. package/project-template-v2/skills/playable-verify-ui/scripts/lib/report.py +0 -106
  335. package/project-template-v2/skills/playable-verify-ui/scripts/lib/runtime_contract.js +0 -116
  336. package/project-template-v2/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +0 -59
  337. package/project-template-v2/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +0 -64
  338. package/project-template-v2/skills/playable-verify-ui/scripts/verify_runtime_contract.js +0 -58
  339. package/project-template-v2/skills/playable-verify-ui/scripts/verify_text_overlap.py +0 -333
  340. package/project-template-v2/ta-workspace/scripts/.gitkeep +0 -0
  341. package/project-template-v2/tsconfig.json +0 -20
  342. package/project-template-v2/vite.config.ts +0 -27
  343. package/project-templates/batch-locks/phaser.yaml +0 -922
  344. package/project-templates/batch-locks/threejs.yaml +0 -978
  345. package/project-templates/empty/AGENTS.md +0 -39
  346. package/project-templates/empty/gitignore +0 -33
@@ -1,7 +1,7 @@
1
1
  // ============================================================
2
- // gen-batch-sprite.template.mjs — gpt-image-2 精灵图直出脚本模板
2
+ // gen-batch-sprite.template.mjs — 精灵图直出脚本模板
3
3
  //
4
- // 核心原则:让 gpt-image-2 一次 API 调用直接生成包含多个元素的
4
+ // 核心原则:一次 API (Application Programming Interface, 应用程序编程接口) 调用生成包含多个元素的
5
5
  // 网格精灵图,然后用 sprite-split 切分。比逐个生成效率高 N 倍。
6
6
  //
7
7
  // 适用场景:
@@ -34,11 +34,11 @@ function playcraft(args, { capture = false, timeout } = {}) {
34
34
  // ============ CONFIG — 修改这里 ============
35
35
  const CONFIG = {
36
36
  /**
37
- * 精灵图直出模型:永远用 gpt-image-2(图像理解 + 布局能力最强)
38
- * mulerouter 质量更高(建议作为主模型),iegg 更快(备用)
39
- * 注意:精灵图生成比单图慢,通常需要 90-150s,timeout 设 240 以上
37
+ * 使用 list-image-models 核实本次模型;默认示例为 Image 2.5。
38
+ * 用户或制作流程锁定其他模型时填写实际 provider/model。
39
+ * 请求使用命令行默认等待时间,不在脚本中提前杀死仍在运行的请求。
40
40
  */
41
- model: 'mulerouter/gpt-image-2',
41
+ model: 'iegg-litellm/gpt-image-2.5-sunburst',
42
42
 
43
43
  /**
44
44
  * 每批精灵图的列数
@@ -64,21 +64,20 @@ const CONFIG = {
64
64
  /**
65
65
  * 通用风格描述(追加到每个批次 prompt 末尾)
66
66
  *
67
- * 元素需要透明背景(独立元素:角色/车/道具/图标)→ 绿幕策略:
68
- * style: 'flat 2D illustration, isolated on solid bright green #00FF00 background, centered, no shadow'
69
- * removeBg: true (切分后逐帧去背景)
70
- *
71
- * 元素本身就是矩形(卡牌/棋子/UI 面板)→ 白底策略:
72
- * style: 'flat 2D, white background, no shadow, no drop shadow, clean edges'
73
- * removeBg: false
67
+ * 只填写主体风格与构图,源图背景由下方流程选择。
68
+ * 卡牌白色牌面属于主体,应在 items.desc 中描述并设 removeBg=false。
74
69
  */
75
- style: 'flat 2D illustration, isolated on solid bright green #00FF00 background, centered, no shadow',
70
+ style: 'flat 2D illustration, isolated subjects, centered, no shadow',
76
71
  /**
77
- * 切分后是否对每帧执行 remove-background(绿幕去背景)
78
- * true → 独立元素(需透明通道):remove-background --tolerance 25
79
- * false → 卡牌/UI 面板等矩形元素:直接 resize,不去背景
72
+ * 最终是否需要透明:true 为独立元素,false 为不透明牌面/场景。
73
+ * automatic:整板由工具交付透明,切分后保留,不重复去背。
74
+ * chroma:保留色幕中间图,切分后逐格去背;仅限主文第 3 节明确选择的流程。
80
75
  */
81
76
  removeBg: true,
77
+ backgroundMode: 'automatic',
78
+ /** 独立色幕才使用;按主体颜色选择,金/黄/橙/绿用蓝幕,蓝/紫用绿幕。 */
79
+ chromaColor: '#00FF00',
80
+ chromaTolerance: 25,
82
81
 
83
82
  /**
84
83
  * 切分单元尺寸(像素)。留空(null)= 自动按精灵图实际像素尺寸 ÷ 网格推导(推荐)。
@@ -119,7 +118,7 @@ const BATCHES = [
119
118
  // ============ 精灵图 Prompt 构建器 ============
120
119
  /**
121
120
  * 根据 items 列表构建精灵图网格 prompt
122
- * 关键词组合让 gpt-image-2 理解"网格布局"意图
121
+ * 描述网格布局,避免重绘边框或格子标签。
123
122
  */
124
123
  /**
125
124
  * 读取精灵图实际像素尺寸(用于自动推导切分单元尺寸)。
@@ -138,7 +137,7 @@ function readSheetDims(sheetPath) {
138
137
  return null;
139
138
  }
140
139
 
141
- function buildSpriteSheetPrompt(items, columns, style, removeBg) {
140
+ function buildSpriteSheetPrompt(items, columns, config) {
142
141
  const actualRows = Math.ceil(items.length / columns);
143
142
  const cellDescs = items.map((item, i) => {
144
143
  const col = (i % columns) + 1;
@@ -146,10 +145,13 @@ function buildSpriteSheetPrompt(items, columns, style, removeBg) {
146
145
  return `[Row${row},Col${col}]: ${item.desc}`;
147
146
  }).join('; ');
148
147
 
149
- // 绿幕模式强制在 prompt 里明确背景色,避免模型用白底
150
- const bgInstruction = removeBg
151
- ? 'Each element isolated on solid bright green #00FF00 background, no shadow, no gradient background.'
152
- : 'Each element on clean white background.';
148
+ // Image 2.5 由后端组装背景;其他模型首次请求需明确单一干净底色。
149
+ const modelId = config.model.trim().split('/').at(-1);
150
+ const nativeBackground = /^gpt-image-2\.5(?:$|-)/.test(modelId);
151
+ const bgInstruction = !config.removeBg ? '' : config.backgroundMode === 'chroma'
152
+ ? `Each element isolated on a uniform solid ${config.chromaColor} background, no shadow, no gradient background.`
153
+ : nativeBackground ? ''
154
+ : 'Render all foreground elements on a uniform solid pure white background for subsequent background removal. Preserve all elements, text, white details, colors and style.';
153
155
 
154
156
  return [
155
157
  `Sprite sheet grid layout, ${columns} columns × ${actualRows} rows.`,
@@ -157,13 +159,19 @@ function buildSpriteSheetPrompt(items, columns, style, removeBg) {
157
159
  bgInstruction,
158
160
  `Grid layout, uniform cell size, equal spacing, elements perfectly centered in each cell.`,
159
161
  `No borders between cells, no labels, no numbers on cells.`,
160
- style,
161
- ].join(' ');
162
+ config.style,
163
+ ].filter(Boolean).join(' ');
162
164
  }
163
165
 
164
166
  // ============ LOGIC — 通常不需要修改 ============
165
167
 
166
168
  const LOG_FILE = 'ta-workspace/logs/gen-batch-sprite.log';
169
+ if (!['automatic', 'chroma'].includes(CONFIG.backgroundMode)) {
170
+ throw new Error('backgroundMode must be automatic or chroma.');
171
+ }
172
+ if (CONFIG.backgroundMode === 'chroma' && !/^#[\da-f]{6}$/i.test(CONFIG.chromaColor)) {
173
+ throw new Error('chromaColor must be one six-digit hex color.');
174
+ }
167
175
  mkdirSync(CONFIG.sheetDir, { recursive: true });
168
176
  mkdirSync(CONFIG.outputDir, { recursive: true });
169
177
  mkdirSync('ta-workspace/logs', { recursive: true });
@@ -190,7 +198,7 @@ for (let bi = 0; bi < BATCHES.length; bi++) {
190
198
  log(`[SKIP-SHEET] (${bi + 1}/${BATCHES.length}) ${batch.sheetName} already exists`);
191
199
  } else {
192
200
  log(`[GEN-SHEET ] (${bi + 1}/${BATCHES.length}) Generating ${batch.sheetName} (${batch.items.length} elements)`);
193
- const prompt = buildSpriteSheetPrompt(batch.items, CONFIG.columns, CONFIG.style, CONFIG.removeBg);
201
+ const prompt = buildSpriteSheetPrompt(batch.items, CONFIG.columns, CONFIG);
194
202
 
195
203
  try {
196
204
  playcraft(
@@ -200,9 +208,9 @@ for (let bi = 0; bi < BATCHES.length; bi++) {
200
208
  '--output', sheetPath,
201
209
  '--aspect-ratio', CONFIG.aspectRatio,
202
210
  '--image-model', CONFIG.model,
203
- '--timeout', '240',
211
+ CONFIG.removeBg && CONFIG.backgroundMode === 'automatic'
212
+ ? '--remove-background' : '--no-remove-background',
204
213
  ],
205
- { timeout: 300_000 },
206
214
  );
207
215
  log(`[OK-SHEET ] ${batch.sheetName}`);
208
216
  } catch (e) {
@@ -269,10 +277,11 @@ for (let bi = 0; bi < BATCHES.length; bi++) {
269
277
  continue;
270
278
  }
271
279
 
272
- // ── Step 3: 重命名(+可选绿幕去背景)切分结果到最终位置 ─────────
280
+ // ── Step 3: 保留自动透明结果;独立色幕才逐格去背 ────────────────
273
281
  // 任何缺帧 / 处理失败都视为该批次失败(FAIL,不是 WARN):一个不完整的
274
282
  // 批次绝不能被报成 OK-BATCH,否则下游会拿到缺图的资产集。
275
- log(`[RENAME ] Renaming ${batch.items.length} cells${CONFIG.removeBg ? ' + remove-background' : ''}`);
283
+ const removeCellBackground = CONFIG.removeBg && CONFIG.backgroundMode === 'chroma';
284
+ log(`[RENAME ] Renaming ${batch.items.length} cells${removeCellBackground ? ' + remove-background' : ''}`);
276
285
  let processedOk = 0;
277
286
  let batchFailed = false;
278
287
  for (let j = 0; j < batch.items.length; j++) {
@@ -289,13 +298,13 @@ for (let bi = 0; bi < BATCHES.length; bi++) {
289
298
  continue;
290
299
  }
291
300
  try {
292
- if (CONFIG.removeBg) {
293
- // 绿幕去背景(tolerance 25 适合纯绿色 #00FF00 背景)
301
+ if (removeCellBackground) {
302
+ // 只处理独立色幕,保留常规工具已经交付的透明边缘。
294
303
  playcraft([
295
304
  'image', 'remove-background',
296
305
  '--input', srcPath,
297
306
  '--output', dstPath,
298
- '--tolerance', '25',
307
+ '--tolerance', String(CONFIG.chromaTolerance),
299
308
  ]);
300
309
  } else {
301
310
  copyFileSync(srcPath, dstPath);
@@ -1,5 +1,5 @@
1
1
  // ============================================================
2
- // gen-batch.template.mjs — 批量 AI 生图脚本模板
2
+ // gen-batch.template.mjs — 批量 AI (Artificial Intelligence, 人工智能) 生图脚本模板
3
3
  // 用途:从零批量生成一组风格一致的素材(reference-image 模式)
4
4
  //
5
5
  // 使用方式:
@@ -8,22 +8,18 @@
8
8
  // 3. node ta-workspace/scripts/gen-<name>.mjs
9
9
  // ============================================================
10
10
 
11
- import { execSync } from 'child_process';
11
+ import { execFileSync } from 'child_process';
12
12
  import { existsSync, mkdirSync, appendFileSync } from 'fs';
13
13
 
14
14
  // ============ CONFIG — 修改这里 ============
15
15
  const CONFIG = {
16
16
  /**
17
17
  * 生图模型。
18
- * - Phase 1 概念图(追求质量):用 gpt-image-2
19
- * model: 'iegg-litellm/gpt-image-2'
20
- * - Phase 2 批量(reference-image 一致性):用 google/,更稳定
21
- * model: 'google/gemini-3.1-flash-image-preview'
22
- *
23
- * 后端按优先级自动 fallback 多个 provider,无需手动指定 provider。
24
- * text+image CAPABILITY 的模型才支持 --reference-image
18
+ * 先 list-image-models,再填写本次实际模型;普通素材优先 Image 2.5。
19
+ * 用户或制作流程锁定其他模型时保留其选择。
20
+ * 参考图要求模型支持 text+image 或 image→image。
25
21
  */
26
- model: 'google/gemini-3.1-flash-image-preview',
22
+ model: 'iegg-litellm/gpt-image-2.5-sunburst',
27
23
  /** 概念图路径(确认过风格的样本,所有后续图的参考来源) */
28
24
  referenceImage: 'assets/images/concept/approved_sample.png',
29
25
  /** 输出目录 */
@@ -32,9 +28,11 @@ const CONFIG = {
32
28
  aspectRatio: '1:1',
33
29
  /**
34
30
  * 统一风格描述(从 design-brief.md 复制,粘贴到每个 prompt 末尾)
35
- * 示例:"flat 2D icon, vibrant colors, clean edges, white background, no shadow"
31
+ * 示例:"flat 2D icon, vibrant colors, clean edges, no shadow"
36
32
  */
37
33
  style: '<从 design-brief 复制的统一风格描述>',
34
+ /** 最终透明设 true;完整场景或不透明牌面设 false。独立色幕使用精灵图模板。 */
35
+ removeBackground: true,
38
36
  };
39
37
  // ============ DATA — 定义要生成的素材列表 ============
40
38
  const ITEMS = [
@@ -72,17 +70,17 @@ for (let i = 0; i < ITEMS.length; i++) {
72
70
 
73
71
  log(`[GEN ] (${i + 1}/${ITEMS.length}) ${item.name}`);
74
72
 
75
- const promptEscaped = `${item.desc}. ${CONFIG.style}`.replace(/"/g, '\\"');
76
- const cmd =
77
- `playcraft tools generate-image` +
78
- ` --prompt "${promptEscaped}"` +
79
- ` --output "${outPath}"` +
80
- ` --aspect-ratio ${CONFIG.aspectRatio}` +
81
- ` --reference-image "${CONFIG.referenceImage}"` +
82
- ` --image-model "${CONFIG.model}"`;
73
+ const nativeBackground = /^gpt-image-2\.5(?:$|-)/.test(CONFIG.model.trim().split('/').at(-1));
74
+ const sourceBackground = CONFIG.removeBackground && !nativeBackground
75
+ ? 'on a uniform solid pure white background for subsequent background removal' : '';
76
+ const prompt = [item.desc, CONFIG.style, sourceBackground].filter(Boolean).join('. ');
77
+ const args = ['tools', 'generate-image', '--prompt', prompt, '--output', outPath,
78
+ '--aspect-ratio', CONFIG.aspectRatio, '--image-model', CONFIG.model,
79
+ CONFIG.removeBackground ? '--remove-background' : '--no-remove-background'];
80
+ if (CONFIG.referenceImage) args.push('--reference-image', CONFIG.referenceImage);
83
81
 
84
82
  try {
85
- execSync(cmd, { stdio: 'inherit', timeout: 120_000 });
83
+ execFileSync('playcraft', args, { stdio: 'inherit' });
86
84
  done++;
87
85
  log(`[OK ] ${item.name}`);
88
86
  } catch (e) {
@@ -8,10 +8,9 @@
8
8
  // 3. node ta-workspace/scripts/process-<name>.mjs
9
9
  //
10
10
  // 背景处理决策(修改 CONFIG.skipRemoveBg 前请阅读):
11
- // - 独立元素(角色/道具/图标)需透明背景 → skipRemoveBg = false(默认)
12
- // 建议生图时 prompt 加 "on solid bright green #00FF00 background, isolated"
13
- // - 卡牌/棋子/UI面板(矩形本体不需透明)→ skipRemoveBg = true
14
- // 生图时 prompt 加 "flat 2D, no shadow, no 3D effect, clean edges"
11
+ // - 常规工具已验证透明 / 不透明牌面或场景 → skipRemoveBg = true(默认)
12
+ // - 明确选择的独立色幕中间图 → skipRemoveBg = false,按主文第 3 节选择色幕
13
+ // 生成中间图时用 --no-remove-background,最终去背后验证透明边缘
15
14
  // ============================================================
16
15
 
17
16
  import { execSync } from 'child_process';
@@ -32,10 +31,10 @@ const CONFIG = {
32
31
  targetH: 128,
33
32
  /**
34
33
  * 跳过去背景步骤
35
- * - false(默认):执行 remove-background(绿幕素材/独立元素)
36
- * - true:跳过,只做 trim + resize(卡牌/棋子等矩形本体素材)
34
+ * - true(默认):保留已验证透明的结果或不透明牌面/场景,不重复去背
35
+ * - false:仅对独立色幕中间图执行 remove-background
37
36
  */
38
- skipRemoveBg: false,
37
+ skipRemoveBg: true,
39
38
  /**
40
39
  * floodfill 容差(0–255)
41
40
  * 绿幕背景建议 25;默认白背景可用 15
@@ -1,21 +1,23 @@
1
1
  # Image Generation Prompt Cookbook
2
2
 
3
- > 适用于 PlayCraft CLI `playcraft tools generate-image`。
3
+ > 适用于 PlayCraft CLI (Command-Line Interface, 命令行工具) `playcraft tools generate-image` 及沙箱生图工具。
4
4
  > 所有模型均适用;gpt-image-2 类模型对英文 prompt 理解最准确,优先写英文。
5
5
 
6
+ 透明交付通过 `removeBackground: true` / `--remove-background` 或目标字段配置表达。下方常规前景模板描述主体、文字、风格、构图与材质;源图背景遵循主文第 2 节:Image 2.5 由后端组装,不追加背景后缀;明确选用其他模型时,首次请求需追加单一 `on a uniform solid pure white background for subsequent background removal`。不要同时要求透明、白底与色幕。完整场景可以描述背景内容,矩形本体的白色牌面也应保留。独立色幕流程见主文第 3 节,中间图必须关闭自动去背。
7
+
6
8
  ---
7
9
 
8
10
  ## 一、Prompt 万能公式
9
11
 
10
12
  ```
11
- [主体描述] + [风格/介质] + [构图/视角] + [背景] + [质量修饰词]
13
+ [主体描述] + [风格/介质] + [构图/视角] + [场景内容(如需要)] + [质量修饰词]
12
14
  ```
13
15
 
14
16
  **示例**:
15
17
 
16
18
  ```
17
19
  A golden sword icon, flat 2D vector style, centered composition,
18
- white background, clean crisp edges, game UI asset, high quality
20
+ isolated subject, clean crisp edges, game UI asset, high quality
19
21
  ```
20
22
 
21
23
  ---
@@ -26,12 +28,13 @@ white background, clean crisp edges, game UI asset, high quality
26
28
 
27
29
  ```
28
30
  A [物品名] icon, flat 2D vector illustration, bold outlines,
29
- vibrant colors, centered composition, white background,
31
+ vibrant colors, centered composition, isolated subject,
30
32
  no shadow, no gradient, game UI style, sharp crisp edges
31
33
  ```
32
34
 
33
35
  - 关键词:`flat 2D` / `bold outlines` / `centered` / `no shadow` / `game UI style`
34
36
  - 避免:`3D` / `realistic` / `photographic` / `drop shadow`
37
+ - 需要透明交付时传 `removeBackground: true` / `--remove-background`。
35
38
 
36
39
  ### 🃏 卡牌 / 棋子 / 方块(Rectangular Tiles)
37
40
 
@@ -50,12 +53,11 @@ sharp clean edges, centered on white background
50
53
  ```
51
54
  A [角色描述] character, full body visible, game sprite style,
52
55
  [艺术风格: pixel art / cartoon / chibi / realistic],
53
- isolated on solid bright green #00FF00 background,
56
+ isolated subject,
54
57
  centered, facing forward / side view, clean silhouette
55
58
  ```
56
59
 
57
- - 需要透明背景 → **绿幕策略**,prompt 加 `"on solid bright green #00FF00 background, isolated"`
58
- - 后处理:`remove-background --tolerance 25`
60
+ - 需要透明交付 → `removeBackground: true` / `--remove-background`,按主文第 2 节准备源图背景,由后端去背并完成验收。
59
61
 
60
62
  ### 🌄 场景背景(Backgrounds)
61
63
 
@@ -120,7 +122,7 @@ Grid layout, equal cell size, no borders between cells. Bold black ink for spade
120
122
  **图标集示例**(一批 9 个图标):
121
123
 
122
124
  ```
123
- Sprite sheet grid, 3 columns × 3 rows. Flat 2D game icon style, white background.
125
+ Sprite sheet grid, 3 columns × 3 rows. Flat 2D game icon style, isolated subjects.
124
126
  [Row1,Col1]: sword icon; [Row1,Col2]: shield icon; [Row1,Col3]: bow and arrow icon;
125
127
  [Row2,Col1]: magic staff icon; [Row2,Col2]: potion bottle icon; [Row2,Col3]: scroll icon;
126
128
  [Row3,Col1]: coin gold icon; [Row3,Col2]: gem diamond icon; [Row3,Col3]: key icon.
@@ -129,17 +131,17 @@ Each icon centered in its cell, bold outlines, vibrant colors, no shadow.
129
131
 
130
132
  **背景选择(重要!)**:
131
133
 
132
- | 素材类型 | prompt 背景写法 | 切分后处理 |
133
- | ----------------------------------- | --------------------------------------------------- | ---------------------------------- |
134
- | 独立元素(角色/车/道具/图标)需透明 | `isolated on solid bright green #00FF00 background` | `remove-background --tolerance 25` |
135
- | 卡牌/棋子/UI 面板(矩形本体) | `white background, no shadow` | 直接 resize,不去背景 |
134
+ | 素材类型 | 交付要求 | 切分后处理 |
135
+ | ----------------------------------- | ------------------------------------------------ | -------------------------------- |
136
+ | 独立元素(角色/车/道具/图标)需透明 | `--remove-background`,按主文第 2 节准备源图背景 | 保留透明通道,验证每格前景与边缘 |
137
+ | 卡牌/棋子/UI 面板(矩形本体) | `--no-remove-background`,保留白色牌面 | 直接 resize,不去背景 |
136
138
 
137
139
  **注意事项**:
138
140
 
139
141
  - 每批最多 **4×4 = 16 个元素**,超过会出现混乱
140
142
  - 每个格的描述要精确,包含特征性视觉元素
141
143
  - 切分后用 `sprite-split --rows N --columns M` 按网格切分
142
- - 模板:[gen-batch-sprite.template.mjs](gen-batch-sprite.template.mjs)
144
+ - 模板:[gen-batch-sprite.template.mjs](gen-batch-sprite.template.mjs):`backgroundMode='automatic'` 为常规流程,`removeBg` 表示最终是否透明。独立色幕需显式设 `backgroundMode='chroma'`、所选模型和色幕颜色;脚本关闭整板自动去背,切分后逐格去背。
143
145
 
144
146
  ---
145
147
 
@@ -183,7 +185,7 @@ gpt-image-2 是目前质量最高的文生图模型,prompt 套路略有不同
183
185
  - **英文 prompt 效果最佳**,中文理解也不错但英文更稳定
184
186
  - 对**复杂场景**、**细节描述**处理能力远超其他模型
185
187
  - 支持**图生图 edit 模式**(传 `--reference-image`),局部编辑能力强
186
- - 不支持透明 PNG 输出(ALPHA = no),需绿幕策略
188
+ - 不支持原生透明 PNG (Portable Network Graphics, 便携式网络图形) 输出(ALPHA = no);透明交付仍由工具后处理。明确选择独立色幕制作时再按主文第 3 节处理。
187
189
 
188
190
  ### prompt 格式建议
189
191
 
@@ -270,6 +272,8 @@ playcraft tools generate-image \
270
272
  >
271
273
  > 注意:`figer_icon.aiimage`、`win_result_panel.aiimage` 等 atom Skills 提供了带参考图的生成配方,Game Designer `playcraft skills match` 能匹配到时优先使用。本节模板用于无对应 atom Skill 的场景。
272
274
 
275
+ 下方独立界面前景通过 `removeBackground: true` / `--remove-background` 要求最终透明;模板描述主体,调用前按主文第 2 节补充适用于所选模型的源图背景。
276
+
273
277
  ### 🟠 CTA 按钮(Call-to-Action Button)
274
278
 
275
279
  ```
@@ -280,13 +284,13 @@ Important details: [bright orange / gold / green] gradient fill,
280
284
  subtle drop shadow below button, glossy highlight on top edge,
281
285
  3px white inner border, corners rounded radius 24px
282
286
  Use case: Game ad install button, isolated asset, HTML5 playable ad
283
- Constraints: Transparent background, no extra elements, centered, clean crisp edges,
287
+ Constraints: No extra elements, centered, clean crisp edges,
284
288
  no watermark
285
289
  ```
286
290
 
287
291
  - CTA 颜色必须是游戏画面中**最少使用**的颜色(对比稀缺性原则)
288
292
  - 触控目标区域 ≥ 48×48px,生成建议尺寸 360×120px(9:3 比例)
289
- - 后处理:不需要去背景(直接生成透明背景或用绿幕)
293
+ - 后处理由工具完成,验证最终透明背景、文字与边缘。
290
294
 
291
295
  ---
292
296
 
@@ -299,7 +303,7 @@ Important details: [color] filled portion [80% of total width], unfilled portion
299
303
  rounded end caps, thin outer frame in [darker shade],
300
304
  optional inner glow on filled section
301
305
  Use case: Game HUD progress indicator, isolated UI element
302
- Constraints: Transparent background, horizontal orientation, no text labels,
306
+ Constraints: Horizontal orientation, no text labels,
303
307
  clean edges, no watermark
304
308
  ```
305
309
 
@@ -317,8 +321,7 @@ Important details: warm skin tone, white sleeve cuff visible at wrist,
317
321
  soft drop shadow beneath finger tip, friendly approachable style,
318
322
  [optional: subtle animated glow ring around fingertip]
319
323
  Use case: Tutorial overlay tap gesture for playable ad, points toward target element
320
- Constraints: Transparent background, PNG with alpha channel,
321
- no extra limbs or elements, finger pointing at bottom-center
324
+ Constraints: No extra limbs or elements, finger pointing at bottom-center
322
325
  ```
323
326
 
324
327
  **箭头变体**(更简洁):
@@ -328,7 +331,7 @@ Subject: Bold cartoon arrow pointing [down / right], game tutorial UI
328
331
  Style: flat 2D, thick outline 4px, rounded arrowhead
329
332
  Important details: [bright yellow / white] fill, [dark outline],
330
333
  slight perspective tilt for depth, attention-grabbing
331
- Constraints: Transparent background, single clean arrow shape, no text
334
+ Constraints: Single clean arrow shape, no text
332
335
  ```
333
336
 
334
337
  ---
@@ -342,7 +345,7 @@ Important details: white or [light color] fill, [2–3px] dark outline,
342
345
  tail pointing [down-left / down-center], interior empty for text overlay,
343
346
  subtle inner shadow or gradient
344
347
  Use case: Game tutorial hint tooltip, isolated UI asset
345
- Constraints: Transparent background, no text inside, clean edges,
348
+ Constraints: No text inside, clean edges,
346
349
  no watermark, no extra decorations
347
350
  ```
348
351
 
@@ -362,7 +365,7 @@ Important details: [treasure chest]: lid slightly ajar, golden glow escaping fro
362
365
  [gold coins]: scattered pile, gleaming highlights, not neatly stacked (implies uncollected);
363
366
  [gem crystal]: large, brilliant facets, floating above ground, clearly valuable
364
367
  Use case: EndCard reward visual, creates FOMO and drives install
365
- Constraints: Transparent background, centered, isolated subject,
368
+ Constraints: Centered, isolated subject,
366
369
  no CTA text (added separately), warm celebratory lighting
367
370
  ```
368
371
 
@@ -373,25 +376,19 @@ Constraints: Transparent background, centered, isolated subject,
373
376
 
374
377
  ### 📊 UI 元素背景处理规则速查
375
378
 
376
- | UI 元素类型 | prompt 背景写法 | 后处理 |
377
- | ---------------- | ----------------------------------------------- | ------------------------------ |
378
- | CTA 按钮 | `transparent background` 或绿幕 | floodfill 去背 |
379
- | 进度条 | `transparent background` 或绿幕 | floodfill 去背 |
380
- | 引导手势 | `transparent background, PNG with alpha` | floodfill 去背(tolerance 25) |
381
- | 对话气泡 | `transparent background` 或绿幕 | floodfill 去背 |
382
- | EndCard 奖励图标 | 绿幕(`solid bright green #00FF00 background`) | floodfill 去背(tolerance 25) |
379
+ CTA 按钮、进度条、引导手势、对话气泡与 EndCard 奖励图标都通过 `removeBackground: true` / `--remove-background` 要求最终透明;主体内容使用上述模板,源图背景按主文第 2 节准备。交付后验证文字、完整前景及深浅背景上的边缘。独立色幕制作沿用主文第 3 节的单一背景与独立去背流程。
383
380
 
384
381
  ---
385
382
 
386
383
  ## 六、常见问题 & 修正方案
387
384
 
388
- | 问题 | 原因 | 修正 |
389
- | ------------------ | -------------------- | ------------------------------------------------ |
390
- | 图标边缘有阴影 | 模型默认加立体效果 | 加 `no shadow, no drop shadow, flat 2D` |
391
- | 构图不居中 | 没有明确指定 | 加 `centered composition, subject centered` |
392
- | 背景不干净 | 背景描述不够明确 | 加 `solid white background, isolated` 或绿幕策略 |
393
- | 多个物体出现 | 主体不够明确 | 加 `a single [物体]`, `only one [物体]` |
394
- | 文字拼写错误 | 所有模型通病 | 尝试 gpt-image-2(最好),或多生成几张 |
395
- | 风格不一致(批量) | 没用 reference image | Phase 2 必须加 `--reference-image` |
396
- | 细节过于复杂 | 素材尺寸小但细节太多 | 加 `simple design, minimal details, bold shapes` |
397
- | 生成极慢/超时 | 模型负载高 | 换另一个 provider 或换模型 |
385
+ | 问题 | 原因 | 修正 |
386
+ | ------------------ | -------------------- | ------------------------------------------------------------------------ |
387
+ | 图标边缘有阴影 | 模型默认加立体效果 | 加 `no shadow, no drop shadow, flat 2D` |
388
+ | 构图不居中 | 没有明确指定 | 加 `centered composition, subject centered` |
389
+ | 背景不干净 | 交付要求或处理不匹配 | 核对背景开关、字段配置及模型对应的源图规则;检查最终验收,不混加背景要求 |
390
+ | 多个物体出现 | 主体不够明确 | 加 `a single [物体]`, `only one [物体]` |
391
+ | 文字拼写错误 | 所有模型通病 | 尝试 gpt-image-2(最好),或多生成几张 |
392
+ | 风格不一致(批量) | 没用 reference image | Phase 2 必须加 `--reference-image` |
393
+ | 细节过于复杂 | 素材尺寸小但细节太多 | 加 `simple design, minimal details, bold shapes` |
394
+ | 生成极慢/超时 | 模型负载高 | 换另一个 provider 或换模型 |