@playcraft/cli 0.1.49-beta → 0.1.51

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 (395) 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 -274
  133. package/dist/workspace-runtime/previews/single-file.js +0 -43
  134. package/dist/workspace-runtime/processes/managed-writes.js +0 -69
  135. package/dist/workspace-runtime/serve.js +0 -343
  136. package/dist/workspace-runtime/server/accept-operation.js +0 -61
  137. package/dist/workspace-runtime/server/auth.js +0 -21
  138. package/dist/workspace-runtime/server/connectivity.js +0 -209
  139. package/dist/workspace-runtime/server/desktop-host.js +0 -429
  140. package/dist/workspace-runtime/server/desktop-preview-config.js +0 -81
  141. package/dist/workspace-runtime/server/desktop-preview-service.js +0 -157
  142. package/dist/workspace-runtime/server/desktop-preview-static.js +0 -53
  143. package/dist/workspace-runtime/server/desktop-preview.js +0 -189
  144. package/dist/workspace-runtime/server/dispatch.js +0 -1393
  145. package/dist/workspace-runtime/server/endpoints.js +0 -21
  146. package/dist/workspace-runtime/server/execution-group.js +0 -90
  147. package/dist/workspace-runtime/server/http.js +0 -1316
  148. package/dist/workspace-runtime/server/lock.js +0 -53
  149. package/dist/workspace-runtime/server/operation-record.js +0 -33
  150. package/dist/workspace-runtime/server/rfb-watch-gate.js +0 -168
  151. package/dist/workspace-runtime/server/session-restore.js +0 -84
  152. package/dist/workspace-runtime/server/source-uploader.js +0 -138
  153. package/dist/workspace-runtime/server/submit-operation.js +0 -41
  154. package/dist/workspace-runtime/server/terminal-host.js +0 -366
  155. package/dist/workspace-runtime/server/types.js +0 -1
  156. package/dist/workspace-runtime/server/workspace-transfer.js +0 -168
  157. package/dist/workspace-runtime/verify-artifact.js +0 -59
  158. package/dist/workspace-runtime/workspaces/append-only-log.js +0 -62
  159. package/dist/workspace-runtime/workspaces/archive.js +0 -207
  160. package/dist/workspace-runtime/workspaces/artifact-events.js +0 -55
  161. package/dist/workspace-runtime/workspaces/artifact-files.js +0 -199
  162. package/dist/workspace-runtime/workspaces/artifact-receipts.js +0 -89
  163. package/dist/workspace-runtime/workspaces/artifacts.js +0 -282
  164. package/dist/workspace-runtime/workspaces/asset-library-import.js +0 -366
  165. package/dist/workspace-runtime/workspaces/attachment-content.js +0 -73
  166. package/dist/workspace-runtime/workspaces/attachments.js +0 -185
  167. package/dist/workspace-runtime/workspaces/batch-commit.js +0 -142
  168. package/dist/workspace-runtime/workspaces/binary-content.js +0 -65
  169. package/dist/workspace-runtime/workspaces/binary-write.js +0 -112
  170. package/dist/workspace-runtime/workspaces/cli-context.js +0 -23
  171. package/dist/workspace-runtime/workspaces/cli-credentials.js +0 -115
  172. package/dist/workspace-runtime/workspaces/composer-context.js +0 -147
  173. package/dist/workspace-runtime/workspaces/context-error.js +0 -2
  174. package/dist/workspace-runtime/workspaces/delivery-build.js +0 -331
  175. package/dist/workspace-runtime/workspaces/delivery-store.js +0 -168
  176. package/dist/workspace-runtime/workspaces/delivery.js +0 -64
  177. package/dist/workspace-runtime/workspaces/dependencies.js +0 -279
  178. package/dist/workspace-runtime/workspaces/developer-command.js +0 -98
  179. package/dist/workspace-runtime/workspaces/directories.js +0 -132
  180. package/dist/workspace-runtime/workspaces/directory-access.js +0 -37
  181. package/dist/workspace-runtime/workspaces/directory-attachments.js +0 -245
  182. package/dist/workspace-runtime/workspaces/directory-create.js +0 -57
  183. package/dist/workspace-runtime/workspaces/directory-maintenance.js +0 -111
  184. package/dist/workspace-runtime/workspaces/directory-stats.js +0 -49
  185. package/dist/workspace-runtime/workspaces/disk-snapshot.js +0 -31
  186. package/dist/workspace-runtime/workspaces/empty-template.js +0 -42
  187. package/dist/workspace-runtime/workspaces/file-content.js +0 -48
  188. package/dist/workspace-runtime/workspaces/files-search.js +0 -116
  189. package/dist/workspace-runtime/workspaces/files.js +0 -150
  190. package/dist/workspace-runtime/workspaces/git-credential-broker.js +0 -312
  191. package/dist/workspace-runtime/workspaces/git-credential-helper.js +0 -68
  192. package/dist/workspace-runtime/workspaces/git-direct-store.js +0 -155
  193. package/dist/workspace-runtime/workspaces/git.js +0 -670
  194. package/dist/workspace-runtime/workspaces/instructions.js +0 -56
  195. package/dist/workspace-runtime/workspaces/json5-edit.js +0 -170
  196. package/dist/workspace-runtime/workspaces/library-attachments.js +0 -268
  197. package/dist/workspace-runtime/workspaces/operation-log.js +0 -23
  198. package/dist/workspace-runtime/workspaces/optional-platform-skills.js +0 -14
  199. package/dist/workspace-runtime/workspaces/parameters.js +0 -272
  200. package/dist/workspace-runtime/workspaces/prepare.js +0 -278
  201. package/dist/workspace-runtime/workspaces/registry.js +0 -251
  202. package/dist/workspace-runtime/workspaces/remix-references.js +0 -301
  203. package/dist/workspace-runtime/workspaces/revisions.js +0 -31
  204. package/dist/workspace-runtime/workspaces/session-image.js +0 -104
  205. package/dist/workspace-runtime/workspaces/shared-git.js +0 -40
  206. package/dist/workspace-runtime/workspaces/skill-artifact-loader.js +0 -95
  207. package/dist/workspace-runtime/workspaces/skills.js +0 -191
  208. package/dist/workspace-runtime/workspaces/transfer-quota.js +0 -69
  209. package/dist/workspace-runtime/workspaces/transfer.js +0 -471
  210. package/dist/workspace-runtime/workspaces/turn-changes.js +0 -75
  211. package/dist/workspace-runtime/workspaces/video-attachments.js +0 -49
  212. package/project-template/.claude/skills/playcraft-replica-validation/SKILL.md +0 -25
  213. package/project-template/.claude/skills/playcraft-replica-validation/references/contracts.md +0 -79
  214. package/project-template/.claude/skills/playcraft-video-understanding/SKILL.md +0 -29
  215. package/project-template/.claude/skills/playcraft-video-understanding/references/contracts.md +0 -37
  216. package/project-template-v2/.claude/agents/artist.md +0 -82
  217. package/project-template-v2/.claude/agents/developer.md +0 -153
  218. package/project-template-v2/.claude/agents/game-designer.md +0 -264
  219. package/project-template-v2/.claude/agents/refs/artist-art-style-catalog.md +0 -533
  220. package/project-template-v2/.claude/agents/refs/artist-color-audio-recipes.md +0 -153
  221. package/project-template-v2/.claude/agents/refs/artist-dimension-axis.md +0 -27
  222. package/project-template-v2/.claude/agents/refs/artist-master-composite-recipes.md +0 -208
  223. package/project-template-v2/.claude/agents/refs/atom-skill-library.md +0 -81
  224. package/project-template-v2/.claude/agents/refs/developer-impl-cookbook.md +0 -432
  225. package/project-template-v2/.claude/agents/refs/framework-5-component-filter.md +0 -252
  226. package/project-template-v2/.claude/agents/refs/framework-game-feel-juice.md +0 -266
  227. package/project-template-v2/.claude/agents/refs/framework-mda.md +0 -147
  228. package/project-template-v2/.claude/agents/refs/game-designer-gameplay-sufficiency.md +0 -123
  229. package/project-template-v2/.claude/agents/refs/ta-3d-flip-recipe.md +0 -88
  230. package/project-template-v2/.claude/agents/refs/ta-atlas-deliverable-standard.md +0 -67
  231. package/project-template-v2/.claude/agents/refs/ta-batch-pipeline-recipes.md +0 -120
  232. package/project-template-v2/.claude/agents/refs/ta-image-generation-detail.md +0 -300
  233. package/project-template-v2/.claude/agents/refs/ta-image-ops-reference.md +0 -495
  234. package/project-template-v2/.claude/agents/refs/ta-pipeline-cookbook.md +0 -1141
  235. package/project-template-v2/.claude/agents/refs/ta-tools-reference.md +0 -111
  236. package/project-template-v2/.claude/agents/refs/ta-vfx-preset-catalog.md +0 -365
  237. package/project-template-v2/.claude/agents/refs/threejs-cannon-pitfalls.md +0 -412
  238. package/project-template-v2/.claude/agents/reviewer.md +0 -75
  239. package/project-template-v2/.claude/agents/technical-artist.md +0 -86
  240. package/project-template-v2/.claude/hooks/snapshot-milestone.mjs +0 -243
  241. package/project-template-v2/.claude/hooks/user-prompt.mjs +0 -133
  242. package/project-template-v2/.claude/settings.json +0 -33
  243. package/project-template-v2/.claude/skills/brainstorming/SKILL.md +0 -161
  244. package/project-template-v2/.claude/skills/brainstorming/scripts/frame-template.html +0 -270
  245. package/project-template-v2/.claude/skills/brainstorming/scripts/helper.js +0 -177
  246. package/project-template-v2/.claude/skills/brainstorming/scripts/server.cjs +0 -354
  247. package/project-template-v2/.claude/skills/brainstorming/scripts/start-server.sh +0 -148
  248. package/project-template-v2/.claude/skills/brainstorming/scripts/stop-server.sh +0 -56
  249. package/project-template-v2/.claude/skills/brainstorming/scripts/wait-for-selection.sh +0 -62
  250. package/project-template-v2/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
  251. package/project-template-v2/.claude/skills/brainstorming/visual-companion.md +0 -309
  252. package/project-template-v2/.claude/skills/playcraft-ad-psychology/SKILL.md +0 -182
  253. package/project-template-v2/.claude/skills/playcraft-art-style-guide/SKILL.md +0 -123
  254. package/project-template-v2/.claude/skills/playcraft-asset-state-sheet/SKILL.md +0 -205
  255. package/project-template-v2/.claude/skills/playcraft-audio-generation/SKILL.md +0 -280
  256. package/project-template-v2/.claude/skills/playcraft-batch-pipeline/SKILL.md +0 -184
  257. package/project-template-v2/.claude/skills/playcraft-build-optimizer/SKILL.md +0 -306
  258. package/project-template-v2/.claude/skills/playcraft-image-generation/SKILL.md +0 -298
  259. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +0 -123
  260. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +0 -254
  261. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +0 -324
  262. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +0 -97
  263. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +0 -118
  264. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +0 -137
  265. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +0 -397
  266. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +0 -296
  267. package/project-template-v2/.claude/skills/playcraft-image-ops/SKILL.md +0 -122
  268. package/project-template-v2/.claude/skills/playcraft-image-processing/SKILL.md +0 -219
  269. package/project-template-v2/.claude/skills/playcraft-masking/SKILL.md +0 -373
  270. package/project-template-v2/.claude/skills/playcraft-playable-optimization/SKILL.md +0 -161
  271. package/project-template-v2/.claude/skills/playcraft-research/SKILL.md +0 -215
  272. package/project-template-v2/.claude/skills/playcraft-skill-recommender/SKILL.md +0 -382
  273. package/project-template-v2/.claude/skills/playcraft-sprite-generation/SKILL.md +0 -423
  274. package/project-template-v2/.claude/skills/playcraft-sprite-remix/SKILL.md +0 -158
  275. package/project-template-v2/.claude/skills/playcraft-sprite-sheet/SKILL.md +0 -100
  276. package/project-template-v2/.claude/skills/playcraft-storyboard/SKILL.md +0 -167
  277. package/project-template-v2/.claude/skills/playcraft-style-qa/SKILL.md +0 -270
  278. package/project-template-v2/.claude/skills/playcraft-text-rendering/SKILL.md +0 -236
  279. package/project-template-v2/.claude/skills/playcraft-vfx-animation/SKILL.md +0 -130
  280. package/project-template-v2/.claude/skills/playwright-cli/SKILL.md +0 -390
  281. package/project-template-v2/.claude/skills/playwright-cli/references/element-attributes.md +0 -23
  282. package/project-template-v2/.claude/skills/playwright-cli/references/playwright-tests.md +0 -39
  283. package/project-template-v2/.claude/skills/playwright-cli/references/request-mocking.md +0 -87
  284. package/project-template-v2/.claude/skills/playwright-cli/references/running-code.md +0 -240
  285. package/project-template-v2/.claude/skills/playwright-cli/references/session-management.md +0 -226
  286. package/project-template-v2/.claude/skills/playwright-cli/references/spec-driven-testing.md +0 -308
  287. package/project-template-v2/.claude/skills/playwright-cli/references/storage-state.md +0 -275
  288. package/project-template-v2/.claude/skills/playwright-cli/references/test-generation.md +0 -134
  289. package/project-template-v2/.claude/skills/playwright-cli/references/tracing.md +0 -142
  290. package/project-template-v2/.claude/skills/playwright-cli/references/video-recording.md +0 -153
  291. package/project-template-v2/.claude/skills/session-analyzer/SKILL.md +0 -386
  292. package/project-template-v2/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +0 -182
  293. package/project-template-v2/.claude/skills/session-analyzer/scripts/find-turns.mjs +0 -72
  294. package/project-template-v2/.claude/skills/session-analyzer/scripts/heavy-output.mjs +0 -121
  295. package/project-template-v2/.claude/skills/session-analyzer/scripts/resolve-session.mjs +0 -102
  296. package/project-template-v2/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +0 -127
  297. package/project-template-v2/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +0 -106
  298. package/project-template-v2/.claude/skills/session-analyzer/scripts/time-gaps.mjs +0 -128
  299. package/project-template-v2/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +0 -67
  300. package/project-template-v2/.claude/snapshot.mjs +0 -263
  301. package/project-template-v2/.playcraft/skills.lock.json +0 -152
  302. package/project-template-v2/CLAUDE.md +0 -146
  303. package/project-template-v2/assets/audio/bgm/.gitkeep +0 -0
  304. package/project-template-v2/assets/audio/sfx/.gitkeep +0 -0
  305. package/project-template-v2/assets/bundles/.gitkeep +0 -0
  306. package/project-template-v2/assets/images/bg/.gitkeep +0 -0
  307. package/project-template-v2/assets/images/reference/.gitkeep +0 -0
  308. package/project-template-v2/assets/images/storyboard/.gitkeep +0 -0
  309. package/project-template-v2/assets/images/tiles/.gitkeep +0 -0
  310. package/project-template-v2/assets/images/ui/.gitkeep +0 -0
  311. package/project-template-v2/assets/images/vfx/.gitkeep +0 -0
  312. package/project-template-v2/assets/models/.gitkeep +0 -0
  313. package/project-template-v2/docs/harness/iteration-1/context-flow.md +0 -254
  314. package/project-template-v2/docs/harness/iteration-1/generate-flow.md +0 -91
  315. package/project-template-v2/docs/harness/iteration-1/ideate-flow.md +0 -214
  316. package/project-template-v2/docs/harness/iteration-1/optimize-flow.md +0 -75
  317. package/project-template-v2/docs/harness/iteration-1/wrapup-flow.md +0 -63
  318. package/project-template-v2/docs/harness/iteration-2/context-flow.md +0 -223
  319. package/project-template-v2/docs/harness/iteration-2/generate-flow.md +0 -129
  320. package/project-template-v2/docs/harness/iteration-2/ideate-flow.md +0 -267
  321. package/project-template-v2/docs/harness/iteration-2/optimize-flow.md +0 -164
  322. package/project-template-v2/docs/harness/iteration-2/wrapup-flow.md +0 -115
  323. package/project-template-v2/docs/harness/orchestrator-flow.md +0 -364
  324. package/project-template-v2/docs/project-state.json +0 -60
  325. package/project-template-v2/docs/project-state.md +0 -72
  326. package/project-template-v2/docs/standards/README.md +0 -225
  327. package/project-template-v2/docs/standards/agent-behavior-standards.md +0 -174
  328. package/project-template-v2/docs/standards/artifacts/design-brief.md +0 -19
  329. package/project-template-v2/docs/standards/artifacts/design.md +0 -22
  330. package/project-template-v2/docs/standards/artifacts/game-code.md +0 -41
  331. package/project-template-v2/docs/standards/artifacts/todo-list.md +0 -41
  332. package/project-template-v2/docs/standards/iter1-agent-behavior-standards.md +0 -343
  333. package/project-template-v2/game/index.ts +0 -18
  334. package/project-template-v2/globals.d.ts +0 -51
  335. package/project-template-v2/index.css +0 -34
  336. package/project-template-v2/index.html +0 -18
  337. package/project-template-v2/main.ts +0 -9
  338. package/project-template-v2/package.json +0 -46
  339. package/project-template-v2/skills/_shared/scripts/dispatch-clear.mjs +0 -31
  340. package/project-template-v2/skills/_shared/scripts/dispatch-set.mjs +0 -86
  341. package/project-template-v2/skills/_shared/scripts/dod-check.mjs +0 -153
  342. package/project-template-v2/skills/_shared/scripts/handoff-append.mjs +0 -70
  343. package/project-template-v2/skills/_shared/scripts/lib/validator-artifacts.mjs +0 -91
  344. package/project-template-v2/skills/_shared/scripts/pipeline/dod-config.mjs +0 -131
  345. package/project-template-v2/skills/_shared/scripts/pipeline/index.mjs +0 -80
  346. package/project-template-v2/skills/_shared/scripts/pipeline/iteration-1-core.mjs +0 -90
  347. package/project-template-v2/skills/_shared/scripts/pipeline/iteration-2-wrap.mjs +0 -93
  348. package/project-template-v2/skills/_shared/scripts/pipeline/iteration-3-visual.mjs +0 -23
  349. package/project-template-v2/skills/_shared/scripts/render-project-state.mjs +0 -230
  350. package/project-template-v2/skills/_shared/scripts/state-advance-stage.mjs +0 -58
  351. package/project-template-v2/skills/_shared/scripts/state-get.mjs +0 -339
  352. package/project-template-v2/skills/_shared/scripts/state-handoff.mjs +0 -39
  353. package/project-template-v2/skills/_shared/scripts/state-set.mjs +0 -94
  354. package/project-template-v2/skills/_shared/scripts/state-store.mjs +0 -783
  355. package/project-template-v2/skills/_shared/scripts/todo-add.mjs +0 -88
  356. package/project-template-v2/skills/_shared/scripts/todo-get.mjs +0 -130
  357. package/project-template-v2/skills/_shared/scripts/todo-remove.mjs +0 -33
  358. package/project-template-v2/skills/_shared/scripts/todo-set.mjs +0 -47
  359. package/project-template-v2/skills/_shared/scripts/verify-asset-code-sync.mjs +0 -268
  360. package/project-template-v2/skills/_shared/scripts/verify-env.mjs +0 -285
  361. package/project-template-v2/skills/_shared/scripts/verify-placeholders.mjs +0 -161
  362. package/project-template-v2/skills/playable-autoplay/SKILL.md +0 -176
  363. package/project-template-v2/skills/playable-autoplay/agents/openai.yaml +0 -4
  364. package/project-template-v2/skills/playable-debug/SKILL.md +0 -116
  365. package/project-template-v2/skills/playable-debug/agents/openai.yaml +0 -4
  366. package/project-template-v2/skills/playable-debug/references/debug-config.md +0 -40
  367. package/project-template-v2/skills/playable-record/SKILL.md +0 -140
  368. package/project-template-v2/skills/playable-record/scripts/lib/dev-server.mjs +0 -104
  369. package/project-template-v2/skills/playable-record/scripts/lib/record-audio-bridge.js +0 -141
  370. package/project-template-v2/skills/playable-record/scripts/record-playable.mjs +0 -425
  371. package/project-template-v2/skills/playable-record/scripts/verify-contract.mjs +0 -261
  372. package/project-template-v2/skills/playable-record/scripts/verify-firstwin.mjs +0 -398
  373. package/project-template-v2/skills/playable-record/scripts/verify-fusion.mjs +0 -322
  374. package/project-template-v2/skills/playable-record/scripts/verify-lifecycle.mjs +0 -105
  375. package/project-template-v2/skills/playable-record/scripts/verify-vlm-video.mjs +0 -230
  376. package/project-template-v2/skills/playable-validate/SKILL.md +0 -61
  377. package/project-template-v2/skills/playable-validate/validation-rules.md +0 -14
  378. package/project-template-v2/skills/playable-verify-ui/SKILL.md +0 -63
  379. package/project-template-v2/skills/playable-verify-ui/scripts/lib/__init__.py +0 -1
  380. package/project-template-v2/skills/playable-verify-ui/scripts/lib/config_expr.js +0 -218
  381. package/project-template-v2/skills/playable-verify-ui/scripts/lib/node_utils.js +0 -51
  382. package/project-template-v2/skills/playable-verify-ui/scripts/lib/profile_loader.py +0 -59
  383. package/project-template-v2/skills/playable-verify-ui/scripts/lib/report.py +0 -106
  384. package/project-template-v2/skills/playable-verify-ui/scripts/lib/runtime_contract.js +0 -116
  385. package/project-template-v2/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +0 -59
  386. package/project-template-v2/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +0 -64
  387. package/project-template-v2/skills/playable-verify-ui/scripts/verify_runtime_contract.js +0 -58
  388. package/project-template-v2/skills/playable-verify-ui/scripts/verify_text_overlap.py +0 -333
  389. package/project-template-v2/ta-workspace/scripts/.gitkeep +0 -0
  390. package/project-template-v2/tsconfig.json +0 -20
  391. package/project-template-v2/vite.config.ts +0 -27
  392. package/project-templates/batch-locks/phaser.yaml +0 -922
  393. package/project-templates/batch-locks/threejs.yaml +0 -978
  394. package/project-templates/empty/AGENTS.md +0 -41
  395. package/project-templates/empty/gitignore +0 -33
@@ -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
+ 透明交付通过 `background: transparent` / `--background transparent` 或目标字段配置表达。用户未明确要求背景且字段没有明确不透明约束时,默认透明,包括卡牌、棋子和面板。下方常规前景模板描述主体、文字、风格、构图与材质;源图背景遵循主文第 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
+ - 需要透明交付时传 `background: transparent` / `--background transparent`。
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
+ - 需要透明交付 → `background: transparent` / `--background transparent`,按主文第 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,18 @@ 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
+ | 独立元素(角色/车/道具/图标)需透明 | `--background transparent`,按主文第 2 节准备源图背景 | 保留透明通道,验证每格前景与边缘 |
137
+ | 卡牌/棋子/UI 面板(矩形本体) | 默认 `--background transparent`,保留牌面与边框 | 验证本体外透明,按目标尺寸 resize |
138
+ | 用户/字段明确要求保留背景的最终素材 | `--background opaque`,整张图片不透明 | 保留背景,按目标尺寸 resize |
136
139
 
137
140
  **注意事项**:
138
141
 
139
142
  - 每批最多 **4×4 = 16 个元素**,超过会出现混乱
140
143
  - 每个格的描述要精确,包含特征性视觉元素
141
144
  - 切分后用 `sprite-split --rows N --columns M` 按网格切分
142
- - 模板:[gen-batch-sprite.template.mjs](gen-batch-sprite.template.mjs)
145
+ - 模板:[gen-batch-sprite.template.mjs](gen-batch-sprite.template.mjs):`backgroundMode='automatic'` 为常规流程,`removeBg` 表示最终是否透明。独立色幕需显式设 `backgroundMode='chroma'`、所选模型和色幕颜色;脚本关闭整板自动去背,切分后逐格去背。
143
146
 
144
147
  ---
145
148
 
@@ -183,7 +186,7 @@ gpt-image-2 是目前质量最高的文生图模型,prompt 套路略有不同
183
186
  - **英文 prompt 效果最佳**,中文理解也不错但英文更稳定
184
187
  - 对**复杂场景**、**细节描述**处理能力远超其他模型
185
188
  - 支持**图生图 edit 模式**(传 `--reference-image`),局部编辑能力强
186
- - 不支持透明 PNG 输出(ALPHA = no),需绿幕策略
189
+ - 不支持原生透明 PNG (Portable Network Graphics, 便携式网络图形) 输出(ALPHA = no);透明交付仍由工具后处理。明确选择独立色幕制作时再按主文第 3 节处理。
187
190
 
188
191
  ### prompt 格式建议
189
192
 
@@ -231,6 +234,7 @@ elements centered in each cell, no borders between cells.
231
234
  ```bash
232
235
  playcraft tools generate-image \
233
236
  --prompt "A sword icon, flat 2D..." \
237
+ --background transparent \
234
238
  --output assets/gen/sword \
235
239
  --count 4 \
236
240
  --image-model iegg-litellm/gpt-image-2
@@ -248,6 +252,7 @@ playcraft tools generate-image \
248
252
  # 一次 API 调用生成 4 个候选,选最好的(比 4 次独立调用更高效)
249
253
  playcraft tools generate-image \
250
254
  --prompt "..." \
255
+ --background "$BACKGROUND_MODE" \
251
256
  --output "test/concept" \
252
257
  --count 4 \
253
258
  --image-model iegg-litellm/gpt-image-2
@@ -270,6 +275,8 @@ playcraft tools generate-image \
270
275
  >
271
276
  > 注意:`figer_icon.aiimage`、`win_result_panel.aiimage` 等 atom Skills 提供了带参考图的生成配方,Game Designer `playcraft skills match` 能匹配到时优先使用。本节模板用于无对应 atom Skill 的场景。
272
277
 
278
+ 下方独立界面前景通过 `background: transparent` / `--background transparent` 要求最终透明;模板描述主体,调用前按主文第 2 节补充适用于所选模型的源图背景。
279
+
273
280
  ### 🟠 CTA 按钮(Call-to-Action Button)
274
281
 
275
282
  ```
@@ -280,13 +287,13 @@ Important details: [bright orange / gold / green] gradient fill,
280
287
  subtle drop shadow below button, glossy highlight on top edge,
281
288
  3px white inner border, corners rounded radius 24px
282
289
  Use case: Game ad install button, isolated asset, HTML5 playable ad
283
- Constraints: Transparent background, no extra elements, centered, clean crisp edges,
290
+ Constraints: No extra elements, centered, clean crisp edges,
284
291
  no watermark
285
292
  ```
286
293
 
287
294
  - CTA 颜色必须是游戏画面中**最少使用**的颜色(对比稀缺性原则)
288
295
  - 触控目标区域 ≥ 48×48px,生成建议尺寸 360×120px(9:3 比例)
289
- - 后处理:不需要去背景(直接生成透明背景或用绿幕)
296
+ - 后处理由工具完成,验证最终透明背景、文字与边缘。
290
297
 
291
298
  ---
292
299
 
@@ -299,7 +306,7 @@ Important details: [color] filled portion [80% of total width], unfilled portion
299
306
  rounded end caps, thin outer frame in [darker shade],
300
307
  optional inner glow on filled section
301
308
  Use case: Game HUD progress indicator, isolated UI element
302
- Constraints: Transparent background, horizontal orientation, no text labels,
309
+ Constraints: Horizontal orientation, no text labels,
303
310
  clean edges, no watermark
304
311
  ```
305
312
 
@@ -317,8 +324,7 @@ Important details: warm skin tone, white sleeve cuff visible at wrist,
317
324
  soft drop shadow beneath finger tip, friendly approachable style,
318
325
  [optional: subtle animated glow ring around fingertip]
319
326
  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
327
+ Constraints: No extra limbs or elements, finger pointing at bottom-center
322
328
  ```
323
329
 
324
330
  **箭头变体**(更简洁):
@@ -328,7 +334,7 @@ Subject: Bold cartoon arrow pointing [down / right], game tutorial UI
328
334
  Style: flat 2D, thick outline 4px, rounded arrowhead
329
335
  Important details: [bright yellow / white] fill, [dark outline],
330
336
  slight perspective tilt for depth, attention-grabbing
331
- Constraints: Transparent background, single clean arrow shape, no text
337
+ Constraints: Single clean arrow shape, no text
332
338
  ```
333
339
 
334
340
  ---
@@ -342,7 +348,7 @@ Important details: white or [light color] fill, [2–3px] dark outline,
342
348
  tail pointing [down-left / down-center], interior empty for text overlay,
343
349
  subtle inner shadow or gradient
344
350
  Use case: Game tutorial hint tooltip, isolated UI asset
345
- Constraints: Transparent background, no text inside, clean edges,
351
+ Constraints: No text inside, clean edges,
346
352
  no watermark, no extra decorations
347
353
  ```
348
354
 
@@ -362,7 +368,7 @@ Important details: [treasure chest]: lid slightly ajar, golden glow escaping fro
362
368
  [gold coins]: scattered pile, gleaming highlights, not neatly stacked (implies uncollected);
363
369
  [gem crystal]: large, brilliant facets, floating above ground, clearly valuable
364
370
  Use case: EndCard reward visual, creates FOMO and drives install
365
- Constraints: Transparent background, centered, isolated subject,
371
+ Constraints: Centered, isolated subject,
366
372
  no CTA text (added separately), warm celebratory lighting
367
373
  ```
368
374
 
@@ -373,25 +379,19 @@ Constraints: Transparent background, centered, isolated subject,
373
379
 
374
380
  ### 📊 UI 元素背景处理规则速查
375
381
 
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) |
382
+ CTA 按钮、进度条、引导手势、对话气泡与 EndCard 奖励图标都通过 `background: transparent` / `--background transparent` 要求最终透明;主体内容使用上述模板,源图背景按主文第 2 节准备。交付后验证文字、完整前景及深浅背景上的边缘。独立色幕制作沿用主文第 3 节的单一背景与独立去背流程。
383
383
 
384
384
  ---
385
385
 
386
386
  ## 六、常见问题 & 修正方案
387
387
 
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 或换模型 |
388
+ | 问题 | 原因 | 修正 |
389
+ | ------------------ | -------------------- | ------------------------------------------------------------------------ |
390
+ | 图标边缘有阴影 | 模型默认加立体效果 | 加 `no shadow, no drop shadow, flat 2D` |
391
+ | 构图不居中 | 没有明确指定 | 加 `centered composition, subject centered` |
392
+ | 背景不干净 | 交付要求或处理不匹配 | 核对背景开关、字段配置及模型对应的源图规则;检查最终验收,不混加背景要求 |
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 或换模型 |
@@ -1,24 +1,25 @@
1
- # TA 图片生成进阶参考
1
+ # TA (Technical Artist, 技术美术师) 图片生成进阶参考
2
2
 
3
3
  > 本文件供 TA/Designer 在需要精灵图直出、Edit 模型变体、错误恢复等进阶场景时按需查阅。核心决策逻辑见 `playcraft-image-generation` skill。
4
4
 
5
5
  ---
6
6
 
7
- ## 1. gpt-image-2 精灵图直出 + 批量出图策略
7
+ ## 1. 精灵图直出 + 批量出图策略
8
8
 
9
9
  ### 策略一:直接生成整张精灵图(最高效)
10
10
 
11
- **gpt-image-2 可以一次 API 调用就生成一张包含多个元素的网格图**,后续用 `sprite-split` 切分。避免逐个生成的低效循环。
11
+ **一次 API (Application Programming Interface, 应用程序编程接口) 调用生成包含多个元素的网格图**,后续用 `sprite-split` 切分。使用主文选定的模型,不因批量生成自动改用旧模型。
12
12
 
13
- > gpt-image-2 本身就慢(单图 7-8 分钟正常,精灵图 90-150 秒正常)。**调用 gpt-image-2 时不要设 `--timeout`**,让它自然完成。"慢"不是卡死,不要中途 Ctrl+C 换模型。真正的失败是 `API 500` 或 `fetch failed`,那才需要切换 provider。
13
+ > 保留命令行默认等待时间。等待本身不表示请求失败;本地超时也不表示后端已停止,确认原请求状态后再决定下一步,避免重复计费。
14
14
 
15
15
  #### 先判断:元素需要透明背景吗?
16
16
 
17
17
  ```
18
18
  需要透明背景(独立元素:角色、车、道具、图标)?
19
- ├─ YES → 绿幕策略:prompt 所有格子加 "solid bright green #00FF00 background"
20
- │ 切分后对每帧跑 remove-background --tolerance 25
21
- └─ NO → 白底策略:prompt 加 "white background"(卡牌/棋盘/UI 面板适用)
19
+ ├─ 常规透明交付 → --remove-background;按主文第 2 节准备源图背景
20
+ │ 切分后保留透明通道,不重复去背
21
+ ├─ 不透明牌面/场景 → --no-remove-background;白色牌面属于主体
22
+ └─ 明确选择独立色幕 → 仅限主文第 3 节;关闭整板自动去背,切分后逐格去背
22
23
  ```
23
24
 
24
25
  #### 白底示例(卡牌,不需要去背景)
@@ -28,8 +29,8 @@ playcraft tools generate-image \
28
29
  --prompt "Sprite sheet grid, 4 columns × 2 rows. Each cell: one playing card face, flat 2D, white card face, uniform size. Row 1: Ace of Spades, 2 of Spades, 3 of Spades, 4 of Spades. Row 2: 5 of Spades, 6 of Spades, 7 of Spades, 8 of Spades. Grid layout, equal cell size, no border between cells." \
29
30
  --output assets/gen/cards_sheet.png \
30
31
  --aspect-ratio 3:2 \
31
- --image-model iegg-litellm/gpt-image-2
32
- # gpt-image-2 不设 --timeout,精灵图 90-150s 正常,等待即可
32
+ --image-model iegg-litellm/gpt-image-2.5-sunburst \
33
+ --no-remove-background
33
34
 
34
35
  # 查尺寸再切分(frame-width=总宽/列数, frame-height=总高/行数)
35
36
  playcraft image info --input assets/gen/cards_sheet.png
@@ -40,36 +41,51 @@ playcraft image sprite-split \
40
41
  --frame-width <总宽/4> --frame-height <总高/2>
41
42
  ```
42
43
 
43
- #### 绿幕示例(独立元素,需要透明背景)
44
+ #### 自动透明示例(独立元素)
44
45
 
45
46
  ```bash
46
- # Step 1:生成绿幕精灵图
47
+ # Step 1:Image 2.5 由后端组装源图背景并验收透明交付
47
48
  playcraft tools generate-image \
48
- --prompt "Sprite sheet grid, 3 columns × 1 row. Each cell: one car, flat 2D vector, bold outline, centered, isolated on solid bright green #00FF00 background. [Row1,Col1]: red sports car front view; [Row1,Col2]: blue SUV front view; [Row1,Col3]: yellow taxi front view. Grid layout, equal cell size, no border between cells." \
49
+ --prompt "Sprite sheet grid, 3 columns × 1 row. Each cell: one car, flat 2D vector, bold outline, centered, isolated subject. [Row1,Col1]: red sports car front view; [Row1,Col2]: blue SUV front view; [Row1,Col3]: yellow taxi front view. Grid layout, equal cell size, no border between cells." \
49
50
  --output assets/gen/cars_sheet.png \
50
51
  --aspect-ratio 3:2 \
51
- --image-model iegg-litellm/gpt-image-2
52
- # gpt-image-2 不设 --timeout,精灵图 90-150s 正常,等待即可
52
+ --image-model iegg-litellm/gpt-image-2.5-sunburst \
53
+ --remove-background
53
54
 
54
55
  # Step 2:切分
55
56
  playcraft image info --input assets/gen/cars_sheet.png
56
57
  playcraft image sprite-split \
57
58
  --input assets/gen/cars_sheet.png \
58
- --output-dir assets/gen/cars-split/ \
59
+ --output-dir assets/images/cars/ \
59
60
  --rows 1 --columns 3 \
60
61
  --frame-width <总宽/3> --frame-height <总高>
61
62
 
62
- # Step 3:逐帧去背景(绿幕用 tolerance 25)
63
- for f in assets/gen/cars-split/frame_*.png; do
64
- name=$(basename "$f")
65
- playcraft image remove-background \
66
- --input "$f" \
67
- --output "assets/images/cars/$name" \
68
- --tolerance 25
69
- done
63
+ # Step 3:验证每格主体完整及深浅背景上的透明边缘,不重复去背
64
+ ```
65
+
66
+ 明确选用其他模型时,同样传 `--remove-background`,但首次 prompt 需追加单一 `on a uniform solid pure white background for subsequent background removal`;后端不会像 Image 2.5 那样自动补源图背景。
67
+
68
+ #### 独立色幕示例(仅限明确选择的制作流程)
69
+
70
+ 先按主文第 3 节选与主体不冲突的色幕。参考图和交付规格来自目标字段时先读取,再显式传给中间图请求,省略 `--target-asset`,避免字段透明要求覆盖保留色幕的开关。
71
+
72
+ ```bash
73
+ # 已明确锁定不支持原生透明的模型与品红色幕;常规流程不使用此分支
74
+ playcraft tools generate-image \
75
+ --prompt "Sprite sheet grid, 3 columns × 1 row. [Row1,Col1]: red sports car; [Row1,Col2]: blue SUV; [Row1,Col3]: yellow taxi. Each car isolated, centered on a uniform solid #FF00FF background, equal cell size, no borders, no shadows." \
76
+ --output assets/gen/cars_chroma.png \
77
+ --aspect-ratio 3:2 \
78
+ --image-model mulerouter/gpt-image-2 \
79
+ --no-remove-background
80
+
81
+ # 读取实际尺寸并 sprite-split 后,逐格去背;品红使用 tolerance 20
82
+ playcraft image remove-background \
83
+ --input assets/gen/cars-split/frame_r0_c0.png \
84
+ --output assets/images/cars/red_car.png \
85
+ --tolerance 20
70
86
  ```
71
87
 
72
- **Provider 选择**:iegg-litellm/gpt-image-2 质量最高;google/gemini-3.1-flash-image-preview 最稳定且参考图正常工作。
88
+ 其他格同样处理,并分别验收。自动透明图使用 `backgroundMode='automatic'`;独立色幕脚本设 `backgroundMode='chroma'`、`chromaColor` 和 `chromaTolerance`,不要把两种流程混用。
73
89
 
74
90
  **Prompt 关键词**:`sprite sheet grid, N columns × M rows, grid layout, equal cell size, uniform size`
75
91
 
@@ -173,34 +189,16 @@ node ta-workspace/scripts/gen-<name>-variants.mjs
173
189
 
174
190
  ## 3. 错误恢复策略
175
191
 
176
- > **gpt-image-2 超时规则(最重要)**:gpt-image-2 慢是设计如此,不是故障。单图 7-8 分钟、精灵图 90-150 秒均属正常范围。**调用 gpt-image-2 时永远不要设 `--timeout`**,也不要因为"等了很久"就 Ctrl+C 中断。只有收到 `API 500` 或 `fetch failed` 才切换 provider。
177
-
178
- | 错误现象 | 模型 | 原因 | 立即行动 |
179
- | ---------------------- | ------------------------------------------- | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
180
- | `API 500` | 任意 | 该 provider 节点不可用 | **立即换同模型的另一个 provider**(如 `iegg-litellm/gpt-image-2` → `mulerouter/gpt-image-2` → `302/gpt-image-2`) |
181
- | `fetch failed` | 任意 | provider 网络不通 | 换另一个 provider |
182
- | 等待 7-8 分钟还未返回 | **gpt-image-2** | 正常现象,模型本身就慢 | **继续等待,不要中断**;若超过 15 分钟仍无响应则换同模型另一 provider |
183
- | 等待 >120s 无响应 | **非 gpt-image-2**(gemini/nano-banana 等) | 请求卡死 | Ctrl+C 中止,换另一个 provider 或换模型;可加 `--timeout 60` 防止下次卡住 |
184
- | 精灵图等待 90-150s | **gpt-image-2** | 正常现象 | 继续等待;**不要设 `--timeout`** |
185
- | `--count N` 触发限流 | 任意 | 并发提交多任务超过 provider 限制 | 降低 count 或改用精灵图直出策略 |
186
- | `reference-image` 报错 | 任意 | 模型 CAPABILITY 为 `text→image`,不支持参考图 | 换 CAPABILITY 为 `text+image` 或 `image→image` 的模型 |
187
- | 风格偏差大 | 任意 | Prompt 不够具体 | 参考 prompt-cookbook.md 对应素材类型模板 |
188
- | 质量不达标 | 非 gpt-image-2 | 模型能力不够 | 换 gpt-image-2(最高质量)+ 参考 prompt-cookbook 质量修饰词 |
189
-
190
- ### 模型回退顺序
192
+ 后端统一限制模型、供应商与重生成的总尝试次数;命令行默认不额外重试。普通素材默认模型选择、原生透明优先与剩余一次干净底图重生成均以主文第 2 节为准,脚本不再叠加模型回退链。
191
193
 
192
- ```
193
- gpt-image-2(最高质量,三个 provider 互为回退):
194
- 1. iegg-litellm/gpt-image-2
195
- 2. mulerouter/gpt-image-2
196
- 3. 302/gpt-image-2
197
-
198
- 稳定回退(非 gpt-image-2):
199
- 4. google/gemini-3.1-flash-image-preview
200
- 5. mulerouter/nano-banana-2
201
- ```
202
-
203
- **同一个 provider 最多重试 1 次**,失败立即切换到同模型的另一个 provider,不要等待。
194
+ | 错误现象 | 立即行动 |
195
+ | ---------------------- | ----------------------------------------------------------------------------------------------- |
196
+ | 仍在等待 / 本地超时 | 确认原请求状态,等待或核实后端已结束;不要并发重发,也不要仅因等待改模型。 |
197
+ | 上游错误 / 网络失败 | 记录请求编号、实际 provider/model 与尝试次数,报告后端诊断;用户或流程锁定的模型不静默更换。 |
198
+ | 透明源图或最终验收失败 | 报告失败阶段并停止;不把棋盘格、补边或未完成的去背当成功,不自行改用色幕。 |
199
+ | 去背处理失败 | 报告处理错误并停止,不重复生图或降低最终透明要求。 |
200
+ | 参考图 / 交付参数错误 | 修正路径或参数后再发送;保留用户及字段约束,不丢弃参考图继续生成。 |
201
+ | 风格或内容偏差 | 参考 prompt-cookbook 的主体模板,检查实际模型、参考图与交付规格;新一轮生成仍保留最终背景要求。 |
204
202
 
205
203
  ---
206
204
 
@@ -208,7 +206,7 @@ gpt-image-2(最高质量,三个 provider 互为回退):
208
206
 
209
207
  ### 首选策略:精灵图直出(见第 1 节)
210
208
 
211
- **优先让 gpt-image-2 直接生成包含多个元素的网格图**,然后用 `sprite-split` 切分。这是最高效的做法,避免逐个 API 调用。只有在以下情况才退化为逐个调用:
209
+ **优先用本次选定的模型生成包含多个元素的网格图**,然后用 `sprite-split` 切分,避免逐个 API 调用。只有在以下情况才退化为逐个调用:
212
210
 
213
211
  - 需要 reference-image 一致性(网格 prompt 不稳定)
214
212
  - 每个元素差异太大,一张图放不下
@@ -239,6 +237,8 @@ cp .claude/skills/playcraft-image-generation/reference/process-batch.template.mj
239
237
  node ta-workspace/scripts/process-<name>.mjs
240
238
  ```
241
239
 
240
+ 已由生成工具验证透明的图使用 `skipRemoveBg=true`,保留透明边缘;不透明牌面/场景同样跳过去背。只有独立色幕中间图才设为 `false`,按所选色幕设置容差。
241
+
242
242
  ### 合并精灵图
243
243
 
244
244
  参见 [build-sprite-sheet.template.mjs](../../skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs)。
@@ -277,13 +277,13 @@ ta-workspace/
277
277
 
278
278
  ### 脚本模板目录
279
279
 
280
- | 模板 | 用途 | 关键 CONFIG |
281
- | -------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | --------------------------------------------- |
282
- | [gen-batch-sprite.template.mjs](../../skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs) | 精灵图直出(gpt-image-2 网格图 → sprite-split) | `columns`, `rows`, `BATCHES[]` |
283
- | [gen-batch.template.mjs](../../skills/playcraft-image-generation/reference/gen-batch.template.mjs) | 批量从零 AI 生图(reference-image 模式) | `model`, `referenceImage`, `style`, `ITEMS[]` |
284
- | [gen-edit-variants.template.mjs](../../skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs) | 基图 + edit 模型生成变体 | `baseImage`, `editModel`, `VARIANTS[]` |
285
- | [process-batch.template.mjs](../../skills/playcraft-image-generation/reference/process-batch.template.mjs) | 批量去背景 / trim + resize | `inputDir`, `outputDir`, `skipRemoveBg` |
286
- | [build-sprite-sheet.template.mjs](../../skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs) | 精灵图合并 + JSON 验证 | `processedDir`, `columns`, `ORDERED_NAMES[]` |
280
+ | 模板 | 用途 | 关键 CONFIG |
281
+ | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- | ------------------------------------------------------------- |
282
+ | [gen-batch-sprite.template.mjs](../../skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs) | 精灵图直出,自动透明或独立色幕 → sprite-split | `model`, `removeBg`, `backgroundMode`, `columns`, `BATCHES[]` |
283
+ | [gen-batch.template.mjs](../../skills/playcraft-image-generation/reference/gen-batch.template.mjs) | 批量从零 AI 生图(reference-image 模式) | `model`, `referenceImage`, `style`, `ITEMS[]` |
284
+ | [gen-edit-variants.template.mjs](../../skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs) | 基图 + edit 模型生成变体 | `baseImage`, `editModel`, `VARIANTS[]` |
285
+ | [process-batch.template.mjs](../../skills/playcraft-image-generation/reference/process-batch.template.mjs) | 批量去背景 / trim + resize | `inputDir`, `outputDir`, `skipRemoveBg` |
286
+ | [build-sprite-sheet.template.mjs](../../skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs) | 精灵图合并 + JSON 验证 | `processedDir`, `columns`, `ORDERED_NAMES[]` |
287
287
 
288
288
  每个模板均包含:CONFIG/DATA/LOGIC 三段式结构、`existsSync` 幂等跳过、`appendFileSync` 日志、try/catch 错误统计。
289
289