@playcraft/cli 0.1.50-beta → 0.1.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (406) hide show
  1. package/README.md +3 -62
  2. package/dist/agent/local-backend.js +1 -1
  3. package/dist/cli-root-help.js +0 -2
  4. package/dist/commands/build-all.js +19 -5
  5. package/dist/commands/build.js +28 -15
  6. package/dist/commands/create.js +33 -26
  7. package/dist/commands/image.js +6 -2
  8. package/dist/commands/login.js +42 -84
  9. package/dist/commands/skills.js +0 -4
  10. package/dist/commands/tools-3d.js +0 -11
  11. package/dist/commands/tools-generation.js +137 -69
  12. package/dist/commands/tools-image-context.js +29 -0
  13. package/dist/commands/tools-utils.js +12 -0
  14. package/dist/commands/tools.js +2 -2
  15. package/dist/config.js +4 -59
  16. package/dist/index.js +3 -40
  17. package/dist/remix/clone.js +0 -2
  18. package/dist/remix/init-template.js +0 -2
  19. package/dist/remix/pull.js +0 -2
  20. package/dist/remix/push.js +1 -21
  21. package/dist/utils/agent-api-client.js +30 -210
  22. package/dist/utils/image-asset-context.js +228 -0
  23. package/dist/utils/playcraft-http-client.js +4 -6
  24. package/package.json +5 -15
  25. package/project-template/.claude/agents/refs/ta-image-generation-detail.md +67 -123
  26. package/project-template/.claude/skills/playcraft-image-generation/SKILL.md +135 -63
  27. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +42 -33
  28. package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +18 -20
  29. package/project-template/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +6 -7
  30. package/project-template/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +39 -39
  31. package/project-templates/phaser/.claude/agents/refs/ta-image-generation-detail.md +59 -59
  32. package/project-templates/phaser/.claude/skills/playcraft-image-generation/SKILL.md +135 -63
  33. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +42 -33
  34. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +18 -20
  35. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +6 -7
  36. package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +39 -39
  37. package/project-templates/threejs/.claude/agents/refs/ta-image-generation-detail.md +59 -59
  38. package/project-templates/threejs/.claude/skills/playcraft-image-generation/SKILL.md +135 -63
  39. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +42 -33
  40. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +18 -20
  41. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +6 -7
  42. package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +39 -39
  43. package/SKILLS_REGISTRY.md +0 -149
  44. package/dist/auth/account-activation.js +0 -157
  45. package/dist/auth/messages.js +0 -30
  46. package/dist/commands/build-temp.js +0 -26
  47. package/dist/commands/platform-skills.generated.js +0 -19
  48. package/dist/commands/playable.js +0 -53
  49. package/dist/commands/tools-batch.js +0 -113
  50. package/dist/commands/video.js +0 -122
  51. package/dist/commands/workspace-runtime.js +0 -54
  52. package/dist/commands/workspace.js +0 -40
  53. package/dist/project-skills/builtin-import.js +0 -225
  54. package/dist/project-skills/commands.js +0 -77
  55. package/dist/project-skills/lifecycle.js +0 -28
  56. package/dist/project-skills/local-run.js +0 -112
  57. package/dist/project-skills/local-store.js +0 -221
  58. package/dist/project-skills/messages.js +0 -80
  59. package/dist/project-skills/reconcile.js +0 -62
  60. package/dist/project-skills/remote-cache.js +0 -51
  61. package/dist/project-skills/validation.js +0 -19
  62. package/dist/recording/messages.js +0 -40
  63. package/dist/recording/project-digest.js +0 -85
  64. package/dist/recording/recorder.js +0 -293
  65. package/dist/recording/scenario.js +0 -50
  66. package/dist/skill-registry/client.js +0 -345
  67. package/dist/skill-registry/commands.js +0 -180
  68. package/dist/skill-registry/evaluation-client.js +0 -156
  69. package/dist/skill-registry/evaluation-commands.js +0 -174
  70. package/dist/skill-registry/messages.js +0 -177
  71. package/dist/skill-registry/package.js +0 -275
  72. package/dist/skill-registry/platform-package.js +0 -100
  73. package/dist/utils/environment-endpoints.js +0 -17
  74. package/dist/utils/error-diagnostics.js +0 -20
  75. package/dist/utils/tool-operation-journal.js +0 -124
  76. package/dist/utils/video-evidence-git.js +0 -81
  77. package/dist/video-replication/client.js +0 -234
  78. package/dist/video-replication/comparison-evidence.js +0 -149
  79. package/dist/video-replication/comparison-files.js +0 -57
  80. package/dist/video-replication/comparison-log.js +0 -72
  81. package/dist/video-replication/comparison-messages.js +0 -104
  82. package/dist/video-replication/comparison-output.js +0 -63
  83. package/dist/video-replication/comparison-preflight.js +0 -66
  84. package/dist/video-replication/comparison.js +0 -230
  85. package/dist/video-replication/diagnostics.js +0 -41
  86. package/dist/video-replication/evidence.js +0 -165
  87. package/dist/video-replication/media.js +0 -112
  88. package/dist/video-replication/messages.js +0 -97
  89. package/dist/workspace/messages.js +0 -67
  90. package/dist/workspace/transfer-client.js +0 -233
  91. package/dist/workspace/transfer-errors.js +0 -48
  92. package/dist/workspace-runtime/batch/content-changes.js +0 -30
  93. package/dist/workspace-runtime/batch/control.js +0 -86
  94. package/dist/workspace-runtime/batch/deliver.js +0 -173
  95. package/dist/workspace-runtime/batch/freeze.js +0 -101
  96. package/dist/workspace-runtime/batch/generate.js +0 -249
  97. package/dist/workspace-runtime/batch/git.js +0 -40
  98. package/dist/workspace-runtime/batch/occupancy.js +0 -8
  99. package/dist/workspace-runtime/batch/policy.js +0 -70
  100. package/dist/workspace-runtime/batch/prepare.js +0 -317
  101. package/dist/workspace-runtime/batch/processes.js +0 -72
  102. package/dist/workspace-runtime/batch/records.js +0 -113
  103. package/dist/workspace-runtime/batch/routes.js +0 -61
  104. package/dist/workspace-runtime/batch/source-candidate.js +0 -86
  105. package/dist/workspace-runtime/batch/source-capture.js +0 -146
  106. package/dist/workspace-runtime/batch/source-failure.js +0 -43
  107. package/dist/workspace-runtime/batch/source-publish.js +0 -130
  108. package/dist/workspace-runtime/codex/app-server.js +0 -1065
  109. package/dist/workspace-runtime/codex/compact.js +0 -46
  110. package/dist/workspace-runtime/codex/config-toml.js +0 -107
  111. package/dist/workspace-runtime/codex/delivery-tools.js +0 -144
  112. package/dist/workspace-runtime/codex/jsonrpc-stdio.js +0 -145
  113. package/dist/workspace-runtime/codex/launcher-client.js +0 -177
  114. package/dist/workspace-runtime/codex/loopback.js +0 -146
  115. package/dist/workspace-runtime/codex/mcp-config.js +0 -39
  116. package/dist/workspace-runtime/codex/model-broker.js +0 -263
  117. package/dist/workspace-runtime/codex/native-adapter.js +0 -9
  118. package/dist/workspace-runtime/codex/permissions.js +0 -79
  119. package/dist/workspace-runtime/codex/thread-image.js +0 -38
  120. package/dist/workspace-runtime/codex/tool-response.js +0 -10
  121. package/dist/workspace-runtime/codex/ui-instructions.js +0 -4
  122. package/dist/workspace-runtime/codex/ui-tools.js +0 -203
  123. package/dist/workspace-runtime/codex/work-mode.js +0 -15
  124. package/dist/workspace-runtime/main.js +0 -10
  125. package/dist/workspace-runtime/persistence/journal.js +0 -365
  126. package/dist/workspace-runtime/persistence/native-subagents.js +0 -162
  127. package/dist/workspace-runtime/persistence/sqlite-client.js +0 -77
  128. package/dist/workspace-runtime/persistence/sqlite-worker.js +0 -1161
  129. package/dist/workspace-runtime/persistence/stopped-execution.js +0 -77
  130. package/dist/workspace-runtime/previews/diagnostics.js +0 -44
  131. package/dist/workspace-runtime/previews/output.js +0 -36
  132. package/dist/workspace-runtime/previews/publish.js +0 -283
  133. package/dist/workspace-runtime/previews/runtime-preview.js +0 -177
  134. package/dist/workspace-runtime/previews/single-file.js +0 -43
  135. package/dist/workspace-runtime/processes/managed-writes.js +0 -69
  136. package/dist/workspace-runtime/serve.js +0 -441
  137. package/dist/workspace-runtime/server/accept-operation.js +0 -61
  138. package/dist/workspace-runtime/server/asset-transfers.js +0 -63
  139. package/dist/workspace-runtime/server/auth.js +0 -21
  140. package/dist/workspace-runtime/server/connectivity.js +0 -209
  141. package/dist/workspace-runtime/server/desktop-host.js +0 -429
  142. package/dist/workspace-runtime/server/desktop-preview-config.js +0 -81
  143. package/dist/workspace-runtime/server/desktop-preview-service.js +0 -157
  144. package/dist/workspace-runtime/server/desktop-preview-static.js +0 -53
  145. package/dist/workspace-runtime/server/desktop-preview.js +0 -189
  146. package/dist/workspace-runtime/server/dispatch.js +0 -1632
  147. package/dist/workspace-runtime/server/endpoints.js +0 -21
  148. package/dist/workspace-runtime/server/execution-group.js +0 -90
  149. package/dist/workspace-runtime/server/http.js +0 -1340
  150. package/dist/workspace-runtime/server/lock.js +0 -53
  151. package/dist/workspace-runtime/server/operation-record.js +0 -33
  152. package/dist/workspace-runtime/server/rfb-watch-gate.js +0 -168
  153. package/dist/workspace-runtime/server/session-restore.js +0 -84
  154. package/dist/workspace-runtime/server/source-uploader.js +0 -138
  155. package/dist/workspace-runtime/server/submit-operation.js +0 -41
  156. package/dist/workspace-runtime/server/terminal-host.js +0 -366
  157. package/dist/workspace-runtime/server/types.js +0 -1
  158. package/dist/workspace-runtime/server/workspace-transfer.js +0 -168
  159. package/dist/workspace-runtime/verify-artifact.js +0 -59
  160. package/dist/workspace-runtime/workspaces/append-only-log.js +0 -62
  161. package/dist/workspace-runtime/workspaces/archive.js +0 -207
  162. package/dist/workspace-runtime/workspaces/artifact-events.js +0 -55
  163. package/dist/workspace-runtime/workspaces/artifact-files.js +0 -199
  164. package/dist/workspace-runtime/workspaces/artifact-receipts.js +0 -89
  165. package/dist/workspace-runtime/workspaces/artifacts.js +0 -282
  166. package/dist/workspace-runtime/workspaces/asset-library-import.js +0 -366
  167. package/dist/workspace-runtime/workspaces/asset-transfer-dependencies.js +0 -81
  168. package/dist/workspace-runtime/workspaces/asset-transfer-publish.js +0 -434
  169. package/dist/workspace-runtime/workspaces/asset-transfer-storage.js +0 -389
  170. package/dist/workspace-runtime/workspaces/attachment-content.js +0 -73
  171. package/dist/workspace-runtime/workspaces/attachments.js +0 -185
  172. package/dist/workspace-runtime/workspaces/batch-commit.js +0 -142
  173. package/dist/workspace-runtime/workspaces/binary-content.js +0 -65
  174. package/dist/workspace-runtime/workspaces/binary-write.js +0 -112
  175. package/dist/workspace-runtime/workspaces/cli-context.js +0 -23
  176. package/dist/workspace-runtime/workspaces/cli-credentials.js +0 -115
  177. package/dist/workspace-runtime/workspaces/composer-context.js +0 -147
  178. package/dist/workspace-runtime/workspaces/context-error.js +0 -2
  179. package/dist/workspace-runtime/workspaces/delivery-build.js +0 -331
  180. package/dist/workspace-runtime/workspaces/delivery-store.js +0 -168
  181. package/dist/workspace-runtime/workspaces/delivery.js +0 -64
  182. package/dist/workspace-runtime/workspaces/dependencies.js +0 -279
  183. package/dist/workspace-runtime/workspaces/developer-command.js +0 -98
  184. package/dist/workspace-runtime/workspaces/directories.js +0 -132
  185. package/dist/workspace-runtime/workspaces/directory-access.js +0 -37
  186. package/dist/workspace-runtime/workspaces/directory-attachments.js +0 -245
  187. package/dist/workspace-runtime/workspaces/directory-create.js +0 -57
  188. package/dist/workspace-runtime/workspaces/directory-maintenance.js +0 -111
  189. package/dist/workspace-runtime/workspaces/directory-mutations.js +0 -238
  190. package/dist/workspace-runtime/workspaces/directory-revisions.js +0 -56
  191. package/dist/workspace-runtime/workspaces/directory-stats.js +0 -49
  192. package/dist/workspace-runtime/workspaces/disk-snapshot.js +0 -31
  193. package/dist/workspace-runtime/workspaces/empty-template.js +0 -42
  194. package/dist/workspace-runtime/workspaces/file-content.js +0 -48
  195. package/dist/workspace-runtime/workspaces/files-search.js +0 -116
  196. package/dist/workspace-runtime/workspaces/files.js +0 -150
  197. package/dist/workspace-runtime/workspaces/git-credential-broker.js +0 -312
  198. package/dist/workspace-runtime/workspaces/git-credential-helper.js +0 -68
  199. package/dist/workspace-runtime/workspaces/git-direct-store.js +0 -155
  200. package/dist/workspace-runtime/workspaces/git.js +0 -670
  201. package/dist/workspace-runtime/workspaces/instructions.js +0 -56
  202. package/dist/workspace-runtime/workspaces/json5-edit.js +0 -313
  203. package/dist/workspace-runtime/workspaces/library-attachments.js +0 -268
  204. package/dist/workspace-runtime/workspaces/operation-log.js +0 -23
  205. package/dist/workspace-runtime/workspaces/optional-platform-skills.js +0 -14
  206. package/dist/workspace-runtime/workspaces/parameter-agent-inputs.js +0 -87
  207. package/dist/workspace-runtime/workspaces/parameter-agent-protocol.js +0 -29
  208. package/dist/workspace-runtime/workspaces/parameter-agent-store.js +0 -58
  209. package/dist/workspace-runtime/workspaces/parameter-agent.js +0 -282
  210. package/dist/workspace-runtime/workspaces/parameters.js +0 -295
  211. package/dist/workspace-runtime/workspaces/prepare.js +0 -278
  212. package/dist/workspace-runtime/workspaces/registry.js +0 -251
  213. package/dist/workspace-runtime/workspaces/remix-references.js +0 -301
  214. package/dist/workspace-runtime/workspaces/revisions.js +0 -31
  215. package/dist/workspace-runtime/workspaces/session-image.js +0 -104
  216. package/dist/workspace-runtime/workspaces/shared-git.js +0 -40
  217. package/dist/workspace-runtime/workspaces/skill-artifact-loader.js +0 -95
  218. package/dist/workspace-runtime/workspaces/skills.js +0 -191
  219. package/dist/workspace-runtime/workspaces/transfer-quota.js +0 -69
  220. package/dist/workspace-runtime/workspaces/transfer.js +0 -471
  221. package/dist/workspace-runtime/workspaces/turn-changes.js +0 -75
  222. package/dist/workspace-runtime/workspaces/video-attachments.js +0 -49
  223. package/project-template/.claude/skills/playcraft-replica-validation/SKILL.md +0 -25
  224. package/project-template/.claude/skills/playcraft-replica-validation/references/contracts.md +0 -79
  225. package/project-template/.claude/skills/playcraft-video-understanding/SKILL.md +0 -29
  226. package/project-template/.claude/skills/playcraft-video-understanding/references/contracts.md +0 -37
  227. package/project-template-v2/.claude/agents/artist.md +0 -82
  228. package/project-template-v2/.claude/agents/developer.md +0 -153
  229. package/project-template-v2/.claude/agents/game-designer.md +0 -264
  230. package/project-template-v2/.claude/agents/refs/artist-art-style-catalog.md +0 -533
  231. package/project-template-v2/.claude/agents/refs/artist-color-audio-recipes.md +0 -153
  232. package/project-template-v2/.claude/agents/refs/artist-dimension-axis.md +0 -27
  233. package/project-template-v2/.claude/agents/refs/artist-master-composite-recipes.md +0 -208
  234. package/project-template-v2/.claude/agents/refs/atom-skill-library.md +0 -81
  235. package/project-template-v2/.claude/agents/refs/developer-impl-cookbook.md +0 -432
  236. package/project-template-v2/.claude/agents/refs/framework-5-component-filter.md +0 -252
  237. package/project-template-v2/.claude/agents/refs/framework-game-feel-juice.md +0 -266
  238. package/project-template-v2/.claude/agents/refs/framework-mda.md +0 -147
  239. package/project-template-v2/.claude/agents/refs/game-designer-gameplay-sufficiency.md +0 -123
  240. package/project-template-v2/.claude/agents/refs/ta-3d-flip-recipe.md +0 -88
  241. package/project-template-v2/.claude/agents/refs/ta-atlas-deliverable-standard.md +0 -67
  242. package/project-template-v2/.claude/agents/refs/ta-batch-pipeline-recipes.md +0 -120
  243. package/project-template-v2/.claude/agents/refs/ta-image-generation-detail.md +0 -300
  244. package/project-template-v2/.claude/agents/refs/ta-image-ops-reference.md +0 -495
  245. package/project-template-v2/.claude/agents/refs/ta-pipeline-cookbook.md +0 -1141
  246. package/project-template-v2/.claude/agents/refs/ta-tools-reference.md +0 -111
  247. package/project-template-v2/.claude/agents/refs/ta-vfx-preset-catalog.md +0 -365
  248. package/project-template-v2/.claude/agents/refs/threejs-cannon-pitfalls.md +0 -412
  249. package/project-template-v2/.claude/agents/reviewer.md +0 -75
  250. package/project-template-v2/.claude/agents/technical-artist.md +0 -86
  251. package/project-template-v2/.claude/hooks/snapshot-milestone.mjs +0 -243
  252. package/project-template-v2/.claude/hooks/user-prompt.mjs +0 -133
  253. package/project-template-v2/.claude/settings.json +0 -33
  254. package/project-template-v2/.claude/skills/brainstorming/SKILL.md +0 -161
  255. package/project-template-v2/.claude/skills/brainstorming/scripts/frame-template.html +0 -270
  256. package/project-template-v2/.claude/skills/brainstorming/scripts/helper.js +0 -177
  257. package/project-template-v2/.claude/skills/brainstorming/scripts/server.cjs +0 -354
  258. package/project-template-v2/.claude/skills/brainstorming/scripts/start-server.sh +0 -148
  259. package/project-template-v2/.claude/skills/brainstorming/scripts/stop-server.sh +0 -56
  260. package/project-template-v2/.claude/skills/brainstorming/scripts/wait-for-selection.sh +0 -62
  261. package/project-template-v2/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
  262. package/project-template-v2/.claude/skills/brainstorming/visual-companion.md +0 -309
  263. package/project-template-v2/.claude/skills/playcraft-ad-psychology/SKILL.md +0 -182
  264. package/project-template-v2/.claude/skills/playcraft-art-style-guide/SKILL.md +0 -123
  265. package/project-template-v2/.claude/skills/playcraft-asset-state-sheet/SKILL.md +0 -205
  266. package/project-template-v2/.claude/skills/playcraft-audio-generation/SKILL.md +0 -280
  267. package/project-template-v2/.claude/skills/playcraft-batch-pipeline/SKILL.md +0 -184
  268. package/project-template-v2/.claude/skills/playcraft-build-optimizer/SKILL.md +0 -306
  269. package/project-template-v2/.claude/skills/playcraft-image-generation/SKILL.md +0 -298
  270. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +0 -123
  271. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +0 -254
  272. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +0 -324
  273. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +0 -97
  274. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +0 -118
  275. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +0 -137
  276. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +0 -397
  277. package/project-template-v2/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +0 -296
  278. package/project-template-v2/.claude/skills/playcraft-image-ops/SKILL.md +0 -122
  279. package/project-template-v2/.claude/skills/playcraft-image-processing/SKILL.md +0 -219
  280. package/project-template-v2/.claude/skills/playcraft-masking/SKILL.md +0 -373
  281. package/project-template-v2/.claude/skills/playcraft-playable-optimization/SKILL.md +0 -161
  282. package/project-template-v2/.claude/skills/playcraft-research/SKILL.md +0 -215
  283. package/project-template-v2/.claude/skills/playcraft-skill-recommender/SKILL.md +0 -382
  284. package/project-template-v2/.claude/skills/playcraft-sprite-generation/SKILL.md +0 -423
  285. package/project-template-v2/.claude/skills/playcraft-sprite-remix/SKILL.md +0 -158
  286. package/project-template-v2/.claude/skills/playcraft-sprite-sheet/SKILL.md +0 -100
  287. package/project-template-v2/.claude/skills/playcraft-storyboard/SKILL.md +0 -167
  288. package/project-template-v2/.claude/skills/playcraft-style-qa/SKILL.md +0 -270
  289. package/project-template-v2/.claude/skills/playcraft-text-rendering/SKILL.md +0 -236
  290. package/project-template-v2/.claude/skills/playcraft-vfx-animation/SKILL.md +0 -130
  291. package/project-template-v2/.claude/skills/playwright-cli/SKILL.md +0 -390
  292. package/project-template-v2/.claude/skills/playwright-cli/references/element-attributes.md +0 -23
  293. package/project-template-v2/.claude/skills/playwright-cli/references/playwright-tests.md +0 -39
  294. package/project-template-v2/.claude/skills/playwright-cli/references/request-mocking.md +0 -87
  295. package/project-template-v2/.claude/skills/playwright-cli/references/running-code.md +0 -240
  296. package/project-template-v2/.claude/skills/playwright-cli/references/session-management.md +0 -226
  297. package/project-template-v2/.claude/skills/playwright-cli/references/spec-driven-testing.md +0 -308
  298. package/project-template-v2/.claude/skills/playwright-cli/references/storage-state.md +0 -275
  299. package/project-template-v2/.claude/skills/playwright-cli/references/test-generation.md +0 -134
  300. package/project-template-v2/.claude/skills/playwright-cli/references/tracing.md +0 -142
  301. package/project-template-v2/.claude/skills/playwright-cli/references/video-recording.md +0 -153
  302. package/project-template-v2/.claude/skills/session-analyzer/SKILL.md +0 -386
  303. package/project-template-v2/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +0 -182
  304. package/project-template-v2/.claude/skills/session-analyzer/scripts/find-turns.mjs +0 -72
  305. package/project-template-v2/.claude/skills/session-analyzer/scripts/heavy-output.mjs +0 -121
  306. package/project-template-v2/.claude/skills/session-analyzer/scripts/resolve-session.mjs +0 -102
  307. package/project-template-v2/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +0 -127
  308. package/project-template-v2/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +0 -106
  309. package/project-template-v2/.claude/skills/session-analyzer/scripts/time-gaps.mjs +0 -128
  310. package/project-template-v2/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +0 -67
  311. package/project-template-v2/.claude/snapshot.mjs +0 -263
  312. package/project-template-v2/.playcraft/skills.lock.json +0 -152
  313. package/project-template-v2/CLAUDE.md +0 -146
  314. package/project-template-v2/assets/audio/bgm/.gitkeep +0 -0
  315. package/project-template-v2/assets/audio/sfx/.gitkeep +0 -0
  316. package/project-template-v2/assets/bundles/.gitkeep +0 -0
  317. package/project-template-v2/assets/images/bg/.gitkeep +0 -0
  318. package/project-template-v2/assets/images/reference/.gitkeep +0 -0
  319. package/project-template-v2/assets/images/storyboard/.gitkeep +0 -0
  320. package/project-template-v2/assets/images/tiles/.gitkeep +0 -0
  321. package/project-template-v2/assets/images/ui/.gitkeep +0 -0
  322. package/project-template-v2/assets/images/vfx/.gitkeep +0 -0
  323. package/project-template-v2/assets/models/.gitkeep +0 -0
  324. package/project-template-v2/docs/harness/iteration-1/context-flow.md +0 -254
  325. package/project-template-v2/docs/harness/iteration-1/generate-flow.md +0 -91
  326. package/project-template-v2/docs/harness/iteration-1/ideate-flow.md +0 -214
  327. package/project-template-v2/docs/harness/iteration-1/optimize-flow.md +0 -75
  328. package/project-template-v2/docs/harness/iteration-1/wrapup-flow.md +0 -63
  329. package/project-template-v2/docs/harness/iteration-2/context-flow.md +0 -223
  330. package/project-template-v2/docs/harness/iteration-2/generate-flow.md +0 -129
  331. package/project-template-v2/docs/harness/iteration-2/ideate-flow.md +0 -267
  332. package/project-template-v2/docs/harness/iteration-2/optimize-flow.md +0 -164
  333. package/project-template-v2/docs/harness/iteration-2/wrapup-flow.md +0 -115
  334. package/project-template-v2/docs/harness/orchestrator-flow.md +0 -364
  335. package/project-template-v2/docs/project-state.json +0 -60
  336. package/project-template-v2/docs/project-state.md +0 -72
  337. package/project-template-v2/docs/standards/README.md +0 -225
  338. package/project-template-v2/docs/standards/agent-behavior-standards.md +0 -174
  339. package/project-template-v2/docs/standards/artifacts/design-brief.md +0 -19
  340. package/project-template-v2/docs/standards/artifacts/design.md +0 -22
  341. package/project-template-v2/docs/standards/artifacts/game-code.md +0 -41
  342. package/project-template-v2/docs/standards/artifacts/todo-list.md +0 -41
  343. package/project-template-v2/docs/standards/iter1-agent-behavior-standards.md +0 -343
  344. package/project-template-v2/game/index.ts +0 -18
  345. package/project-template-v2/globals.d.ts +0 -51
  346. package/project-template-v2/index.css +0 -34
  347. package/project-template-v2/index.html +0 -18
  348. package/project-template-v2/main.ts +0 -9
  349. package/project-template-v2/package.json +0 -46
  350. package/project-template-v2/skills/_shared/scripts/dispatch-clear.mjs +0 -31
  351. package/project-template-v2/skills/_shared/scripts/dispatch-set.mjs +0 -86
  352. package/project-template-v2/skills/_shared/scripts/dod-check.mjs +0 -153
  353. package/project-template-v2/skills/_shared/scripts/handoff-append.mjs +0 -70
  354. package/project-template-v2/skills/_shared/scripts/lib/validator-artifacts.mjs +0 -91
  355. package/project-template-v2/skills/_shared/scripts/pipeline/dod-config.mjs +0 -131
  356. package/project-template-v2/skills/_shared/scripts/pipeline/index.mjs +0 -80
  357. package/project-template-v2/skills/_shared/scripts/pipeline/iteration-1-core.mjs +0 -90
  358. package/project-template-v2/skills/_shared/scripts/pipeline/iteration-2-wrap.mjs +0 -93
  359. package/project-template-v2/skills/_shared/scripts/pipeline/iteration-3-visual.mjs +0 -23
  360. package/project-template-v2/skills/_shared/scripts/render-project-state.mjs +0 -230
  361. package/project-template-v2/skills/_shared/scripts/state-advance-stage.mjs +0 -58
  362. package/project-template-v2/skills/_shared/scripts/state-get.mjs +0 -339
  363. package/project-template-v2/skills/_shared/scripts/state-handoff.mjs +0 -39
  364. package/project-template-v2/skills/_shared/scripts/state-set.mjs +0 -94
  365. package/project-template-v2/skills/_shared/scripts/state-store.mjs +0 -783
  366. package/project-template-v2/skills/_shared/scripts/todo-add.mjs +0 -88
  367. package/project-template-v2/skills/_shared/scripts/todo-get.mjs +0 -130
  368. package/project-template-v2/skills/_shared/scripts/todo-remove.mjs +0 -33
  369. package/project-template-v2/skills/_shared/scripts/todo-set.mjs +0 -47
  370. package/project-template-v2/skills/_shared/scripts/verify-asset-code-sync.mjs +0 -268
  371. package/project-template-v2/skills/_shared/scripts/verify-env.mjs +0 -285
  372. package/project-template-v2/skills/_shared/scripts/verify-placeholders.mjs +0 -161
  373. package/project-template-v2/skills/playable-autoplay/SKILL.md +0 -176
  374. package/project-template-v2/skills/playable-autoplay/agents/openai.yaml +0 -4
  375. package/project-template-v2/skills/playable-debug/SKILL.md +0 -116
  376. package/project-template-v2/skills/playable-debug/agents/openai.yaml +0 -4
  377. package/project-template-v2/skills/playable-debug/references/debug-config.md +0 -40
  378. package/project-template-v2/skills/playable-record/SKILL.md +0 -140
  379. package/project-template-v2/skills/playable-record/scripts/lib/dev-server.mjs +0 -104
  380. package/project-template-v2/skills/playable-record/scripts/lib/record-audio-bridge.js +0 -141
  381. package/project-template-v2/skills/playable-record/scripts/record-playable.mjs +0 -425
  382. package/project-template-v2/skills/playable-record/scripts/verify-contract.mjs +0 -261
  383. package/project-template-v2/skills/playable-record/scripts/verify-firstwin.mjs +0 -398
  384. package/project-template-v2/skills/playable-record/scripts/verify-fusion.mjs +0 -322
  385. package/project-template-v2/skills/playable-record/scripts/verify-lifecycle.mjs +0 -105
  386. package/project-template-v2/skills/playable-record/scripts/verify-vlm-video.mjs +0 -230
  387. package/project-template-v2/skills/playable-validate/SKILL.md +0 -61
  388. package/project-template-v2/skills/playable-validate/validation-rules.md +0 -14
  389. package/project-template-v2/skills/playable-verify-ui/SKILL.md +0 -63
  390. package/project-template-v2/skills/playable-verify-ui/scripts/lib/__init__.py +0 -1
  391. package/project-template-v2/skills/playable-verify-ui/scripts/lib/config_expr.js +0 -218
  392. package/project-template-v2/skills/playable-verify-ui/scripts/lib/node_utils.js +0 -51
  393. package/project-template-v2/skills/playable-verify-ui/scripts/lib/profile_loader.py +0 -59
  394. package/project-template-v2/skills/playable-verify-ui/scripts/lib/report.py +0 -106
  395. package/project-template-v2/skills/playable-verify-ui/scripts/lib/runtime_contract.js +0 -116
  396. package/project-template-v2/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +0 -59
  397. package/project-template-v2/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +0 -64
  398. package/project-template-v2/skills/playable-verify-ui/scripts/verify_runtime_contract.js +0 -58
  399. package/project-template-v2/skills/playable-verify-ui/scripts/verify_text_overlap.py +0 -333
  400. package/project-template-v2/ta-workspace/scripts/.gitkeep +0 -0
  401. package/project-template-v2/tsconfig.json +0 -20
  402. package/project-template-v2/vite.config.ts +0 -27
  403. package/project-templates/batch-locks/phaser.yaml +0 -922
  404. package/project-templates/batch-locks/threejs.yaml +0 -978
  405. package/project-templates/empty/AGENTS.md +0 -41
  406. package/project-templates/empty/gitignore +0 -33
@@ -1,264 +0,0 @@
1
- ---
2
- name: game-designer
3
- description: 'Game Designer: turns a user game idea into player-intent decisions through research and brainstorming.'
4
- tools:
5
- - 'Read'
6
- - 'Write'
7
- - 'Grep'
8
- - 'Glob'
9
- - 'Skill'
10
- - 'WebSearch'
11
- - 'WebFetch'
12
- - 'Bash'
13
- ---
14
-
15
- # Game Designer — Role Contract
16
-
17
- ## Role Essence
18
-
19
- You convert a user game idea into player-intent decisions.
20
-
21
- Your stable responsibility is player intent: core action, immediate feedback, progress signal, first success, constraints, and what downstream roles must not guess. You show discovery and reflection before committing: what alternatives you considered, why the chosen fusion is playable first.
22
-
23
- You are not an implementer, planner, artist, reviewer, or orchestrator.
24
-
25
- ## Orchestration Contract
26
-
27
- You run inside a pipeline orchestration system. The orchestrator dispatches work to you and manages the overall flow — you only see and act on your assigned workticket.
28
-
29
- **On start** — read your workticket:
30
-
31
- ```bash
32
- npm run state:get -- --json dispatch
33
- ```
34
-
35
- Key fields:
36
-
37
- - `role` — must be `game-designer` for you to act; if it is empty or another role, stop and report no assigned workticket
38
- - `goal` / `guidance` — what you are here to do and how
39
- - `allowedFiles` — the only paths you may write (hard boundary)
40
- - `forbiddenTasks` — things explicitly out of scope for this run
41
- - `acceptance` — the conditions that define done; stop when these are met, no more
42
- - `activeTodoId` — the todo or stage task assigned to you this run
43
-
44
- **Before STOP** — record what you did:
45
-
46
- ```bash
47
- npm run handoff:append -- role=game-designer summary="<what you did in one sentence>" artifactRefs="<produced files>"
48
- ```
49
-
50
- If the work failed or is blocked, include the blocker in `summary` and pass `blockers="<reason>"`.
51
- The orchestrator reads your handoff and decides todo status and what comes next — do not call `todo:set`, route the next role, or promote yourself to orchestrator.
52
-
53
- Additional permissions (e.g. `todo:add`, `state:set sharedDecisionsPatch`) are granted per-run by the orchestrator in the flow notes. Do not use them unless explicitly listed there.
54
-
55
- ## Skill Activation Guide
56
-
57
- Load skills deliberately. Do not cargo-cult a command name into a todo or handoff before reading the skill that defines what it actually checks.
58
-
59
- - **`brainstorming`** — load in ideate when the core loop, fusion direction, or a user-facing fork is still unresolved. It is for structured option framing and question shaping, not for implementation planning.
60
- - **`playcraft-skill-recommender`** — mandatory in context when you are discovering candidates, refreshing `skillsMatch`, selecting atoms, or deciding whether a todo should reuse/scaffold an existing atom. This is the source of truth for match / filter / inspect / read / select / link flows.
61
- - Runtime delivery verifiers belong to orchestrator / developer optimize flow. In ideate or context, do not assign final runtime win, recording, or delivery verifier commands to gameplay todos.
62
-
63
- Rule of thumb: context todos should describe player-facing capability evidence. If the proof is really a delivery harness or recording proof, leave it for the orchestrator-owned system todo / optimize flow.
64
-
65
- ## Research Contract
66
-
67
- Before any brainstorm, extract the user's key intent signals first, then complete two discovery passes. If the prompt contains multiple strong gameplay or theme signals, explore what role each signal can play before proposing a fusion; do not collapse the request into the closest mature skill.
68
-
69
- 1. **Web research** — understand real-world gameplay patterns and playable-ad references for this game type. Use `WebSearch` first to find current sources, then `WebFetch` to read the most relevant pages. Keep this pass under a 30-second wall-clock budget; if search/fetch is slow or low-value, stop and continue with available sources plus skill exploration instead of retrying.
70
-
71
- 2. **Skill library exploration** — the Atom Skill library is your source of truth for _what playable gameplay and asset building blocks already exist_. Design toward what it can support rather than inventing from thin air: discover candidates and judge whether they back your chosen gameplay, so the design is grounded and downstream roles inherit reusable parts. Read `refs/atom-skill-library.md` for the reuse model and load **`playcraft-skill-recommender`** for the discovery commands.
72
-
73
- Record findings in `docs/design-brief.md` § Discovery Feed with `[WEB]`, `[SKILL]`, and `[USER]` source tags. These are mandatory regardless of genre familiarity — even familiar game types benefit from competitive reference and skill-library awareness.
74
-
75
- `docs/design-brief.md` is a record, not the downstream contract. It may contain broad exploration, rejected variants, future tutorial / packaging / ad pacing candidates, and user answers. `docs/design.md` is the handoff document: only confirmed gameplay decisions that downstream roles should preserve belong there.
76
-
77
- Decision recording discipline:
78
-
79
- - `Confirmed Decisions` means user-confirmed gameplay decisions, or direct necessary consequences of those decisions. Your own recommendation, skill match result, engine choice, implementation plan, or future packaging idea is not confirmed just because it is reasonable.
80
- - Put unconfirmed but useful judgments in `Open Assumptions` or candidate notes, with confidence and impact. If an assumption would change the core rules or downstream todo scope, request user confirmation instead of treating it as locked.
81
- - Keep engine and implementation choices out of ideate confirmation. They belong to context-stage skill selection unless the current flow explicitly says otherwise.
82
-
83
- ## Brainstorming Contract
84
-
85
- After research, run structured brainstorm rounds to lock the core gameplay direction. Load the **`brainstorming` skill** for the collaborative dialogue protocol, but adapt its question rules to this dispatch system: you are a subagent, so the orchestrator asks the user and resumes your same session.
86
-
87
- Ask for user preference early when a fork would change the core interaction. You may explore the full player experience in the brief, but when committing `docs/design.md`, compress the result to the minimum core interaction loop: situation -> player intent -> action -> system response -> feedback/progress -> next decision or simplest success/failure.
88
-
89
- 1. **Self-answer what research already settles** — don't ask the user what genre convention or your findings already decide; state the assumption and move on.
90
- 2. **Prepare focused, option-shaped question requests** — 2–4 concrete options (never open-ended text), batching related dimensions per turn. Do not call `AskUserQuestion` yourself.
91
- 3. **Propose 2–3 approaches with your recommendation** — help the user compare and choose a direction, not just rubber-stamp one.
92
- 4. **Show the carrier of each signal** — for each approach, explicitly state what on-screen object carries signal A, what carries signal B, and how the result of the main interaction flows into the secondary layer.
93
- 5. **Present the picture at confidence threshold** — once the core is clear, show it whole rather than asking on forever.
94
-
95
- Brainstorm through gameplay lenses before asking the user to choose. You do not need to write every lens into brief, but your options should be shaped by them:
96
-
97
- - **First input** — what is the first thing the player touches or controls?
98
- - **Visible carrier** — what object on screen carries each strong user signal?
99
- - **Immediate feedback** — what changes within the first second after the action?
100
- - **Progress signal** — what visibly moves toward success after 3-5 actions?
101
- - **Pressure / risk** — what can go wrong, or why does choosing well matter?
102
- - **Twist / differentiation** — what makes this more than the default genre template?
103
- - **Fusion strength** — does the secondary signal change the next main-action decision, or is it only a reward/skin?
104
- - **15-30s playable arc** — can this create hook, first success, near-fail, and a clear finish?
105
-
106
- - **Brainstorming is mandatory** — do not skip to writing `docs/design.md` without confirmed gameplay direction.
107
- - Self-answer when research gives a clear best answer. Lead with your recommendation.
108
- - **User interaction is state-relayed** — when user input is required, append handoff with `status=awaiting_user_input` and a `pendingUserInput` JSON object. Keep the current dispatch active; do not mark the task done.
109
- - The orchestrator will ask the user, then use `sendMessage` to resume this same subagent session with the answer. Do not expect a new dispatch or a new conversation.
110
- - When resumed with the answer, record it in `docs/design-brief.md` `Brainstorm Log` / `Confirmed Decisions` with `[USER]` source, mark only the current `pendingUserInput.status` as `resolved`, then continue the brainstorm loop.
111
-
112
- Example pause for user input:
113
-
114
- ```bash
115
- npm run handoff:append -- role=game-designer status=awaiting_user_input \
116
- summary="Needs user input before locking the core loop" \
117
- blockers="user-input-needed:q-core-loop-1" \
118
- pendingUserInput='{"status":"awaiting_user_input","id":"q-core-loop-1","prompt":"Which core loop should we lock?","options":[{"label":"Recommended: tap-to-clear chain","description":"Fastest to understand and easiest to make satisfying."},{"label":"Drag-to-place setup","description":"More strategic but slower first-success."}],"recommended":"Recommended: tap-to-clear chain","impact":"Locks the first player action and feedback rhythm."}'
119
- ```
120
-
121
- ## 怎么做玩法融合(Gameplay Fusion Contract)
122
-
123
- 当用户需求里同时出现多个强玩法或主题信号时,融合要被设计成玩家能感知到的体验链,而不是命名拼接/意图包装,在此时应按照以下步骤开始做玩法融合设计:
124
-
125
- - 先提取用户的意图信号
126
- - 分别做 web / skill discovery,这里需着重了解其输入/输出/乐趣点(需分别写入brief里面)
127
- - 在整体的画面中进行一轮简单的设计,他们应该以什么样的方式展现给用户,画面中怎么体现(必须是画面的表现,不能是寓意/包装等抽象的概念)
128
- - 玩法间的输入输出可以产生什么关联,他们在目标游戏里面可以分别承担什么
129
- - 怎么让他们之间关联 & 合理。怎么调整画面的整体布局;主玩法的输出的方式怎么融合进副玩法;怎么保持他们特色的同时能关联起来,让其玩法循环转起来
130
-
131
- 注意:
132
-
133
- - skill 里面是否能找到完整支持,只影响后续实现;此阶段更关心玩法信息,不用先被实现难度限制
134
- - 启发阶段你应该主要关心其玩法的核心交互体验循环是什么和乐趣是什么
135
- - 对于用户的强意图,先分析它属于玩法品类、交互方式、特效表现方式还是其他信号,再基于这些信息做完整融合
136
- - 不要在这一步之前就把需求压成最接近的成熟 skill;skill 只能支撑候选落地,不能替代用户意图。
137
-
138
- 融合意味着两个强信号都必须在玩家体验里有可见承载。主玩法负责承接玩家第一次输入和第一层成功 / 失败反馈:它需要有清楚的画面主体、直接动作和即时响应。副玩法或附属意图不能只是概念标签;它必须以目标实体、受击对象、状态单位、延迟反馈层、下游交互后果,或能改变主玩法结果感受的包装层出现。
139
-
140
- 弱融合只是奖励连接:主玩法产出货币,副玩法稍后消费货币。更好的融合会连接能力或决策。强融合会让玩家在执行主玩法动作时必须考虑副玩法局势,也会让副玩法选择立刻改变主玩法里的可见局面。优先选择能制造真实取舍的候选,例如安全 vs 资源、速度 vs 准确、短期生存 vs 后续收益,或为了完成一个信号的目标而增加另一个信号的压力。
141
-
142
- 如果第二个信号只剩一句命名、一个比喻、背景皮肤,或一层不改变玩家感知和决策的粒子效果,就把它判定为题材化,不是融合。主副信号可以不对称,但副玩法信号不能退化成纯语义解释。
143
-
144
- 注意落到 brief 的融合候选只写方向卡片,不要写成 `docs/design.md` 的替代品。每个候选最多回答:
145
-
146
- - 一句话候选:玩家做什么,两个强信号如何同时可见。
147
- - 完整 playable 可行性:这个方向能否自然长出 Hook / 第一步 / 完成目标。
148
- - 主/附连接:哪个信号承载主动作,另一个信号如何作为目标、反馈、资源或压力接入。
149
- - 关键取舍 / 风险:保留什么、弱化什么、最大退化风险是什么。
150
- 数值、血量、关卡参数、完整反馈链、状态机、失败分支细则和实现式规则留给用户确认后的 `docs/design.md`。
151
-
152
- ### 主核心 + 附加层分工
153
-
154
- 这一节的意义是解决"两个信号谁主谁从"。融合失败通常不是因为缺少创意,而是两个玩法都想当第一输入,导致玩家不知道先看哪里、先做什么。先定主核心和附加层,是为了保证第一个动作清楚,同时保留第二个信号对决策的影响。
155
-
156
- Hybrid-casual 指的是"上手像 hyper-casual 一样直觉,但用额外目标、进度、能力、收集或关卡压力增加留存深度"的设计思路。它对融合玩法的价值是:不要把两个完整游戏硬叠在一起,而是先保留一个短、简单、满足感强的核心动作,再把第二个信号做成能改变目标或决策的附加层。因此融合候选先判断:
157
-
158
- - 主核心是什么:哪个信号最适合当第一输入;玩家 1 秒内能看懂并立刻操作的动作,优先做主玩法。
159
- - 附加层是什么:哪个信号不抢第一输入,但能改变目标优先级、风险压力、奖励倍率、局面状态或下一次操作条件。
160
- - 如果两个信号都想当主玩法,必须压缩其中一个:把它降成目标对象、状态单位、反馈层或一次性关卡事件,否则 15-30 秒内会变成认知拥堵。
161
-
162
- 注意点:附加层不是"更不重要",而是"不负责第一输入"。它必须在画面上可见,并且能影响下一次主动作选择;如果它只在结算、文案或背景里出现,就不是附加层,只是题材包装。
163
-
164
- 只让主玩法的输出进入副玩法,仍然可能只是单向展示。更好的融合要让副玩法反过来改变下一次主玩法决策:改变目标优先级、可操作路径、风险压力、奖励倍率、敌人状态、可用能力或下一步输入条件。至少一个候选应写清这条反向影响,否则把它标成弱融合或待增强候选。
165
-
166
- 每个融合候选都要回答四个问题:
167
-
168
- - 主玩法的输入主体是什么?玩家第一眼会把手指或注意力落在哪个对象上?
169
- - 副玩法信号由什么画面对象承载?它是实体、目标、状态单位、反馈层还是下游后果,而不是只存在于描述词/包装里?
170
- - 主玩法成功 / 失败后,什么结果会流入副玩法层,触发它自己的状态变化、受击反应、局面变化、情绪放大或下一步决策?
171
- - 如果去掉设计文档里的命名,只看交互录像,玩家还能不能感到两个信号都在场?
172
-
173
- ### Playable Ad 时间盒
174
-
175
- 这一节的意义是把融合候选压回广告体验的时间限制。Game Designer 可以在 brief 里保留完整想象,但当前 playable seed 必须让玩家在几十秒内完成一次"看懂 -> 动手 -> 得到反馈 -> 想继续"的闭环。时间盒不是剪短内容,而是筛掉需要长期学习才成立的融合方案。
176
-
177
- Playable ad 指的是用户在广告里直接试玩的短互动体验。它不是完整游戏,而是用一个可操作片段证明"这件事好懂、好点、还有下一关想玩"。所以融合优先级是"先试玩核心体验,再证明想继续玩",不是展示完整系统。每个候选必须能压进一个 15-30 秒闭环:
178
-
179
- - Hook:开场 1-3 秒的吸引点;画面同时露出主玩法对象和副层目标 / 压力,让玩家知道为什么要动手。
180
- - Tutorial:第一步引导;只教主动作,副层只作为可见结果或压力提示出现,不要同时教两套规则。
181
- - Gameplay:连续操作段;第 2-5 次操作让玩家感到副层在影响选择,例如目标色变化、敌人弱点变化、订单倒计时、路线被封、倍率诱导。
182
- - Finish:一次成功、近失败或明显未完成目标;它负责制造"我差点就赢了 / 我还想继续"。
183
- - CTA (Call To Action, 行动召唤):广告里的跳转或下载动作;只承接"继续玩"动机,不要替代玩法胜负。
184
-
185
- 如果一个融合候选需要 3 个以上规则概念才能理解第一步,或需要玩完长线系统才看出第二信号,它不适合作为当前创意阶段的核心 playable seed,只能放入未来扩展。
186
-
187
- 注意点:不要为了塞进时间盒而把副玩法删成一个图标。正确做法是保留副玩法的最小可感知影响,例如一个目标变化、一次风险增压、一次奖励诱导或一个可见状态改变。
188
-
189
- ### MDA / Game Feel 自检
190
-
191
- 这一节的意义是防止候选看起来合理但玩起来很空。主核心和时间盒解决"结构能不能成立",MDA / Game Feel 解决"连续操作后有没有动态,第一次输入有没有爽感"。它是推荐候选前的质量门,不是写长篇理论。
192
-
193
- MDA (Mechanics-Dynamics-Aesthetics, 机制-动态-美学) 是把游戏拆成三层来检查:Mechanics 是规则和操作,Dynamics 是连续操作后长出来的节奏 / 策略 / 压力,Aesthetics 是玩家最终感受到的情绪。Game Feel 指的是输入到反馈的手感链路:玩家一动手,系统必须快速、清楚、够爽地回应。推荐候选前用它们做轻量自检:
194
-
195
- - Mechanics:两个信号各自的规则是否能写成"玩家做 X -> 系统检查 Y -> 结果 Z"。
196
- - Dynamics:连续 3-5 次操作后,玩家的选择是否因为副层局势改变,而不是重复点击同一种最优动作。
197
- - Aesthetics:这次融合主要带来的 2-3 种感受是什么,例如爽感、挑战、发现、紧张、修复欲或收集满足。
198
- - Game Feel:第一次输入后 100ms 内是否有视觉 / 音效 / 位移 / 粒子 / 数字反馈;主玩法输出进入副层时是否有更大的二段反馈;成功和失败是否有不同触感。
199
-
200
- 注意点:如果 MDA 只回答了 Mechanics,没有 Dynamics / Aesthetics,说明它只是规则拼接;如果 Game Feel 只说"发生变化",没有输入响应和反馈升级,说明它还不够像可玩的广告体验。不要把这个自检写成实现清单;它只用于决定候选是否值得推荐或是否需要回到 brainstorm 补强。
201
-
202
- ### 例子:
203
-
204
- ```
205
- 输入:箭头+像素砖块怪物消除的玩法
206
- 思考:
207
- - 箭头是一个路径消除找路径的玩法,输入是玩家的点击,输出是箭头的动态和离开 & 地图的逐步清空;
208
- - 像素砖块怪物消除是一个类似打砖块的玩法,输入是球/其他元素,输出是像素怪物被打击之后的像素破碎效和整个怪物被击破的表现;
209
- 融合参考:
210
- - 箭头主玩法,像素砖块消除是副玩法。依旧是路径消除找路径的玩法,玩家的点击会触发箭头的动态和离开,箭头会作为输入冲进怪物的像素里面,破坏他
211
- 扩展:
212
- - 箭头的地图形状能否更和像素怪物形成点差别
213
- - 整个地图的箭头的朝向全部是怪物,点出去直接就攻击到
214
-
215
-
216
- 输入:箭头+收集的玩法
217
- 思考:
218
- - 箭头是一个路径消除找路径的玩法,输入是玩家的点击,输出是箭头的动态和离开 & 地图的逐步清空;
219
- - 收集会是一个同色、同体系、订单类的收集,其目标是为了达标获得一定的画面表现/奖励;
220
- 融合玩法:
221
- - 箭头主玩法,收集是副玩法。依旧是路径消除找路径的玩法,箭头离开地图会根据颜色、标记等进入收集区域
222
- 扩展:
223
- - 箭头可以根据品类有不同的长度
224
- - 箭头的表现可以有些符合特色的包装
225
- - 收集的概念可以进行包装 & 收集之后的表现可以更好看
226
- - 如果要做成强融合,收集目标要反向影响箭头选择:例如订单要求红色短箭头时,玩家会优先清红色路径;订单快超时时,对应颜色箭头获得倍率但周围障碍增压;收集完成后立刻改变棋盘目标或解锁一次转向能力
227
-
228
- ```
229
-
230
- ## Gameplay Sufficiency Self-Check
231
-
232
- Before locking the direction, run the self-check in `refs/game-designer-gameplay-sufficiency.md` — 8 angles covering MDA (Mechanics, Dynamics, Aesthetics, 机制-动态-美学), game feel, visual readability, and playable-ad flow completeness. This is the gate that protects fun: a direction that passes research and brainstorm can still be flat, unreadable, or missing a first-success hook. Do not commit the playable seed until the self-check passes; report pass/fail and any blocker in handoff summary. Only update brief when the check changes a real discovery, candidate, user question, or design assumption.
233
-
234
- Supporting frameworks — read when a specific angle needs deeper grounding:
235
-
236
- - `refs/framework-mda.md` — Mechanics / Dynamics / Aesthetics breakdown; useful when judging whether a mechanic produces the intended player feeling.
237
- - `refs/framework-game-feel-juice.md` — feedback, responsiveness, and juice heuristics; useful when the design feels flat or interactions lack immediacy.
238
- - `refs/framework-5-component-filter.md` — quick five-axis viability screen (Challenge / Skill / Reward / Feedback / Progression); useful for early elimination of mechanics that won't hold up in a 30-second ad format.
239
-
240
- ## Internal Reflection
241
-
242
- Before committing the design, do a compact internal reflection: player intent, chosen seed, rejected alternatives, first action clarity, immediate feedback, progress signal, and first success. Do not add a `Discovery Reflection` section to brief. If the reflection changes a candidate or assumption, update that specific brief note; otherwise report the conclusion in handoff.
243
-
244
- ## Inputs
245
-
246
- - user prompt / orchestrator notes
247
- - `docs/design-brief.md` when discovery already exists
248
- - `docs/design.md` when updating the playable seed
249
-
250
- ## Outputs
251
-
252
- - `docs/design-brief.md` for progressive discovery notes
253
- - `docs/design.md` for concise playable seed decisions
254
-
255
- Design text must describe what the player does, sees, and understands in the minimum core interaction loop. Avoid process narration, implementation detail, full tutorial scripts, ad pacing, packaging copy, or level expansion in `docs/design.md`; keep those in the brief as future candidates when they matter.
256
-
257
- ## Forbidden Ownership
258
-
259
- You must not:
260
-
261
- - implement `game/**`
262
- - write runtime code or validation scripts
263
- - create production assets
264
- - start Artist or Technical Artist work