@playcraft/cli 0.0.44 → 0.0.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/atom-tree/build-skeleton.js +180 -0
- package/dist/atom-tree/fusion-hints.js +86 -0
- package/dist/atom-tree/selection.js +402 -0
- package/dist/commands/build-all.js +33 -5
- package/dist/commands/build.js +7 -1
- package/dist/commands/create.js +774 -50
- package/dist/commands/image.js +11 -0
- package/dist/commands/prad.js +61 -0
- package/dist/commands/remix.js +20 -0
- package/dist/commands/skills.js +961 -185
- package/dist/commands/tools-detect.js +56 -0
- package/dist/commands/tools-generation.js +21 -0
- package/dist/commands/tools-video-review.js +100 -0
- package/dist/commands/tools.js +4 -0
- package/dist/index.js +2 -0
- package/dist/prad/atom-ref.js +23 -0
- package/dist/prad/check.js +377 -0
- package/dist/prad/check.test.js +49 -0
- package/dist/prad/explain.js +109 -0
- package/dist/prad/load-spec.js +23 -0
- package/dist/prad/paths.js +83 -0
- package/dist/prad/skills-index.js +60 -0
- package/dist/remix/init-template.js +80 -0
- package/dist/scaffold/compose.js +211 -0
- package/engine-packs/phaser/game/adapters/phaser.ts +52 -0
- package/engine-packs/phaser/game/config/game-config.ts +46 -0
- package/engine-packs/phaser/game/contract/publish.ts +141 -0
- package/engine-packs/phaser/game/contract/types.ts +34 -0
- package/engine-packs/phaser/game/index.ts +81 -0
- package/engine-packs/phaser/game/runtime-contract.ts +28 -0
- package/engine-packs/phaser/manifest.json +1 -0
- package/engine-packs/phaser/package.deps.json +1 -0
- package/engine-packs/threejs/game/config/.gitkeep +0 -0
- package/engine-packs/threejs/game/config/game-config.ts +46 -0
- package/engine-packs/threejs/game/contract/publish.ts +141 -0
- package/engine-packs/threejs/game/contract/types.ts +34 -0
- package/engine-packs/threejs/game/gameplay/.gitkeep +0 -0
- package/engine-packs/threejs/game/index.ts +76 -0
- package/engine-packs/threejs/game/runtime-contract.ts +15 -0
- package/engine-packs/threejs/game/scenes/.gitkeep +0 -0
- package/engine-packs/threejs/manifest.json +1 -0
- package/engine-packs/threejs/package.deps.json +8 -0
- package/package.json +17 -3
- package/project-template/.claude/agents/artist.md +101 -0
- package/project-template/.claude/agents/developer.md +90 -93
- package/project-template/.claude/agents/game-designer.md +192 -0
- package/project-template/.claude/agents/refs/README.md +57 -51
- package/project-template/.claude/agents/refs/{designer-color-audio-recipes.md → artist-color-audio-recipes.md} +2 -2
- package/project-template/.claude/agents/refs/{designer-deliverable-spec.md → artist-deliverable-spec.md} +57 -57
- package/project-template/.claude/agents/refs/{designer-dimension-axis.md → artist-dimension-axis.md} +5 -5
- package/project-template/.claude/agents/refs/{designer-handoff-v2-checklist.md → artist-handoff-v2-checklist.md} +15 -15
- package/project-template/.claude/agents/refs/artist-legacy-fallback.md +14 -0
- package/project-template/.claude/agents/refs/{designer-master-composite-recipes.md → artist-master-composite-recipes.md} +3 -3
- package/project-template/.claude/agents/refs/artist-style-exploration-flow.md +55 -0
- package/project-template/.claude/agents/refs/developer-dev-handoff.md +83 -40
- package/project-template/.claude/agents/refs/developer-impl-cookbook.md +365 -67
- package/project-template/.claude/agents/refs/developer-legacy-fallback.md +15 -0
- package/project-template/.claude/agents/refs/developer-phase1-flow.md +131 -85
- package/project-template/.claude/agents/refs/framework-5-component-filter.md +252 -0
- package/project-template/.claude/agents/refs/framework-game-feel-juice.md +266 -0
- package/project-template/.claude/agents/refs/framework-mda.md +147 -0
- package/project-template/.claude/agents/refs/game-designer-gameplay-sufficiency.md +123 -0
- package/project-template/.claude/agents/refs/game-designer-legacy-fallback.md +15 -0
- package/project-template/.claude/agents/refs/game-designer-workflow-detail.md +69 -0
- package/project-template/.claude/agents/refs/implementation-plan-guide.md +316 -0
- package/project-template/.claude/agents/refs/reviewer-convergence-eval.md +247 -33
- package/project-template/.claude/agents/refs/reviewer-legacy-fallback.md +14 -0
- package/project-template/.claude/agents/refs/skill-selector-guide.md +465 -0
- package/project-template/.claude/agents/refs/skill-value-layers.md +145 -0
- package/project-template/.claude/agents/refs/storyboard-generation-guide.md +110 -0
- package/project-template/.claude/agents/refs/ta-atlas-deliverable-standard.md +4 -4
- package/project-template/.claude/agents/refs/ta-pipeline-cookbook.md +101 -104
- package/project-template/.claude/agents/refs/technical-artist-legacy-fallback.md +14 -0
- package/project-template/.claude/agents/reviewer.md +81 -95
- package/project-template/.claude/agents/technical-artist.md +71 -95
- package/project-template/.claude/hooks/README.md +83 -35
- package/project-template/.claude/hooks/asr-coverage-validate.mjs +19 -19
- package/project-template/.claude/hooks/block-developer-preflight.mjs +185 -0
- package/project-template/.claude/hooks/block-ring1-tasklist.mjs +95 -0
- package/project-template/.claude/hooks/gate-dispatcher.mjs +78 -0
- package/project-template/.claude/hooks/gate-runner.mjs +557 -0
- package/project-template/.claude/hooks/gate.mjs +170 -0
- package/project-template/.claude/hooks/snapshot-milestone.mjs +246 -0
- package/project-template/.claude/hooks/user-prompt.mjs +193 -0
- package/project-template/.claude/hooks/validate-atom-tree-selection.mjs +281 -0
- package/project-template/.claude/hooks/validate-workflow-stop.mjs +1535 -95
- package/project-template/.claude/settings.json +54 -9
- package/project-template/.claude/skills/brainstorming/SKILL.md +161 -0
- package/project-template/.claude/skills/brainstorming/scripts/frame-template.html +270 -0
- package/project-template/.claude/skills/brainstorming/scripts/helper.js +177 -0
- package/project-template/.claude/skills/brainstorming/scripts/server.cjs +354 -0
- package/project-template/.claude/skills/brainstorming/scripts/start-server.sh +148 -0
- package/project-template/.claude/skills/brainstorming/scripts/stop-server.sh +56 -0
- package/project-template/.claude/skills/brainstorming/scripts/wait-for-selection.sh +62 -0
- package/project-template/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/project-template/.claude/skills/brainstorming/visual-companion.md +309 -0
- package/project-template/.claude/skills/playcraft-ad-psychology/SKILL.md +3 -3
- package/project-template/.claude/skills/playcraft-art-style-guide/SKILL.md +3 -3
- package/project-template/.claude/skills/playcraft-asset-state-sheet/SKILL.md +35 -25
- package/project-template/.claude/skills/playcraft-audio-generation/SKILL.md +15 -15
- package/project-template/.claude/skills/playcraft-build-optimizer/SKILL.md +5 -5
- package/project-template/.claude/skills/playcraft-image-generation/SKILL.md +5 -5
- package/project-template/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +5 -5
- package/project-template/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +116 -27
- package/project-template/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +1 -1
- package/project-template/.claude/skills/playcraft-image-processing/SKILL.md +219 -0
- package/project-template/.claude/skills/playcraft-playable-optimization/SKILL.md +161 -0
- package/project-template/.claude/skills/playcraft-research/SKILL.md +24 -21
- package/project-template/.claude/skills/playcraft-skill-recommender/SKILL.md +331 -0
- package/project-template/.claude/skills/playcraft-sprite-generation/SKILL.md +48 -48
- package/project-template/.claude/skills/playcraft-sprite-remix/SKILL.md +158 -0
- package/project-template/.claude/skills/playcraft-sprite-sheet/SKILL.md +100 -0
- package/project-template/.claude/skills/playcraft-storyboard/SKILL.md +4 -4
- package/project-template/.claude/skills/playcraft-style-qa/SKILL.md +45 -45
- package/project-template/.claude/skills/playcraft-text-rendering/SKILL.md +27 -27
- package/project-template/.claude/skills/session-analyzer/SKILL.md +386 -0
- package/project-template/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +182 -0
- package/project-template/.claude/skills/session-analyzer/scripts/find-turns.mjs +72 -0
- package/project-template/.claude/skills/session-analyzer/scripts/heavy-output.mjs +121 -0
- package/project-template/.claude/skills/session-analyzer/scripts/resolve-session.mjs +103 -0
- package/project-template/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +127 -0
- package/project-template/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +106 -0
- package/project-template/.claude/skills/session-analyzer/scripts/time-gaps.mjs +128 -0
- package/project-template/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +67 -0
- package/project-template/.claude/snapshot.mjs +350 -0
- package/project-template/.codebuddy/settings.json +53 -0
- package/project-template/.cursor/hooks.json +1 -1
- package/project-template/.cursor/rules/playcraft-orchestrator.mdc +91 -86
- package/project-template/.cursor/rules/playcraft-subagent-boundary.mdc +16 -5
- package/project-template/CHANGELOG.md +105 -0
- package/project-template/CLAUDE.md +58 -254
- package/project-template/docs/DESIGN.md +65 -0
- package/project-template/docs/intent-clarifications.md +58 -0
- package/project-template/docs/pipeline-overview.md +69 -0
- package/project-template/docs/project-state.md +211 -0
- package/project-template/docs/team/agent-conduct.md +51 -105
- package/project-template/docs/team/agent-runtime-matrix.md +60 -74
- package/project-template/docs/team/atom-tree-format.md +169 -0
- package/project-template/docs/team/collaboration.md +319 -225
- package/project-template/docs/team/core-model.md +80 -46
- package/project-template/docs/team/game-designer-migration-todo.md +8 -0
- package/project-template/docs/team/harness-legacy-deprecation.md +23 -0
- package/project-template/docs/team/platform-capabilities.md +16 -13
- package/project-template/docs/team/workflow-changelog.md +95 -23
- package/project-template/docs/team/workflow-consistency-checklist.md +93 -45
- package/project-template/focus-lab/.gitkeep +0 -0
- package/project-template/game/.playcraft-scaffold-pending +0 -0
- package/project-template/game/index.ts +18 -0
- package/project-template/globals.d.ts +51 -0
- package/project-template/index.css +34 -0
- package/project-template/index.html +18 -0
- package/project-template/main.ts +9 -0
- package/project-template/package.json +79 -0
- package/project-template/skills/README.md +52 -0
- package/project-template/skills/_shared/agent-prep.md +136 -0
- package/project-template/skills/_shared/requirements.txt +1 -0
- package/project-template/skills/_shared/scripts/build-evidence-gate.mjs +87 -0
- package/project-template/skills/_shared/scripts/context-budget.mjs +215 -0
- package/project-template/skills/_shared/scripts/create-playable.mjs +140 -0
- package/project-template/skills/_shared/scripts/dev-start.mjs +151 -0
- package/project-template/skills/_shared/scripts/disclosure-config.mjs +480 -0
- package/project-template/skills/_shared/scripts/ensure-project.mjs +532 -0
- package/project-template/skills/_shared/scripts/gen-placeholder-audio.py +345 -0
- package/project-template/skills/_shared/scripts/gen-placeholder.py +244 -0
- package/project-template/skills/_shared/scripts/harness-smoke.mjs +257 -0
- package/project-template/skills/_shared/scripts/lib/validator-artifacts.mjs +129 -0
- package/project-template/skills/_shared/scripts/placeholder-pack-sheet.mjs +67 -0
- package/project-template/skills/_shared/scripts/placeholder_audio_lib.py +142 -0
- package/project-template/skills/_shared/scripts/placeholder_lib.py +993 -0
- package/project-template/skills/_shared/scripts/render-project-state.mjs +278 -0
- package/project-template/skills/_shared/scripts/ring-config.mjs +252 -0
- package/project-template/skills/_shared/scripts/skills-check.mjs +176 -0
- package/project-template/skills/_shared/scripts/slice-set.mjs +77 -0
- package/project-template/skills/_shared/scripts/state-advance-ring.mjs +63 -0
- package/project-template/skills/_shared/scripts/state-get.mjs +215 -0
- package/project-template/skills/_shared/scripts/state-handoff.mjs +120 -0
- package/project-template/skills/_shared/scripts/state-set.mjs +113 -0
- package/project-template/skills/_shared/scripts/state-store.mjs +893 -0
- package/project-template/skills/_shared/scripts/sync-template-skills.mjs +112 -0
- package/project-template/skills/_shared/scripts/verify-asset-code-sync.mjs +265 -0
- package/project-template/skills/_shared/scripts/verify-atom-conformance.mjs +181 -0
- package/project-template/skills/_shared/scripts/verify-env.mjs +285 -0
- package/project-template/skills/_shared/scripts/verify-placeholders.mjs +161 -0
- package/project-template/skills/_shared/scripts/workflow-doctor.mjs +348 -0
- package/project-template/skills/playable-animate/SKILL.md +52 -0
- package/project-template/skills/playable-animate/agents/openai.yaml +4 -0
- package/project-template/skills/playable-animate/references/board-refresh.md +30 -0
- package/project-template/skills/playable-animate/references/diagnosis-checklist.md +25 -0
- package/project-template/skills/playable-animate/references/entrance-sequencing.md +33 -0
- package/project-template/skills/playable-animate/references/interaction-timing.md +23 -0
- package/project-template/skills/playable-art/SKILL.md +203 -0
- package/project-template/skills/playable-art/agents/openai.yaml +4 -0
- package/project-template/skills/playable-art/references/alpha-postprocess.md +46 -0
- package/project-template/skills/playable-art/references/cta-art-spec.md +59 -0
- package/project-template/skills/playable-art/references/layout-proportions.md +30 -0
- package/project-template/skills/playable-art/references/prompt-patterns.md +83 -0
- package/project-template/skills/playable-art/references/reference-comparison.md +30 -0
- package/project-template/skills/playable-art/references/sheet-import-v2.md +91 -0
- package/project-template/skills/playable-art/scripts/build-atlas.py +332 -0
- package/project-template/skills/playable-art/scripts/chroma-key.py +50 -0
- package/project-template/skills/playable-art/scripts/extract-alpha-split.py +65 -0
- package/project-template/skills/playable-art/scripts/extract-dual-bg-alpha.py +118 -0
- package/project-template/skills/playable-art/scripts/import-gpt-art-sheets-v2.py +403 -0
- package/project-template/skills/playable-art/scripts/import-gpt-art-sheets.py +280 -0
- package/project-template/skills/playable-art/scripts/import-gpt-tile-sheet.py +114 -0
- package/project-template/skills/playable-art/scripts/import_gpt_art_pipeline.py +321 -0
- package/project-template/skills/playable-art/scripts/import_gpt_art_sheets_v2_test.py +126 -0
- package/project-template/skills/playable-art/scripts/placeholder_common.py +98 -0
- package/project-template/skills/playable-art/scripts/remove-bg.py +91 -0
- package/project-template/skills/playable-art/scripts/review-processed-assets.py +468 -0
- package/project-template/skills/playable-art/scripts/review_processed_assets_test.py +116 -0
- package/project-template/skills/playable-art/scripts/verify-alpha-clean.py +105 -0
- package/project-template/skills/playable-debug/SKILL.md +116 -0
- package/project-template/skills/playable-debug/agents/openai.yaml +4 -0
- package/project-template/skills/playable-debug/references/debug-config.md +40 -0
- package/project-template/skills/playable-focus/SKILL.md +148 -0
- package/project-template/skills/playable-focus/scripts/bootstrap-playground.mjs +84 -0
- package/project-template/skills/playable-focus/scripts/extract-focus-frames.mjs +87 -0
- package/project-template/skills/playable-focus/scripts/generate-focus-reports.mjs +121 -0
- package/project-template/skills/playable-focus/scripts/playground.mjs +390 -0
- package/project-template/skills/playable-focus/templates/focus-lab/frame.html +39 -0
- package/project-template/skills/playable-focus/templates/focus-lab/harness/clean-stage.js +114 -0
- package/project-template/skills/playable-focus/templates/focus-lab/harness/frame-lab-scene.js +94 -0
- package/project-template/skills/playable-focus/templates/focus-lab/harness/particle-lab-scene.js +224 -0
- package/project-template/skills/playable-focus/templates/focus-lab/model.html +16 -0
- package/project-template/skills/playable-focus/templates/focus-lab/particle.html +38 -0
- package/project-template/skills/playable-focus/templates/focus-lab/shatter.html +47 -0
- package/project-template/skills/playable-focus/templates/playground/registry.template.json +55 -0
- package/project-template/skills/playable-focus/templates/playground/vfx-catalog.template.json +280 -0
- package/project-template/skills/playable-fx-decompose/SKILL.md +212 -0
- package/project-template/skills/playable-fx-decompose/examples.md +89 -0
- package/project-template/skills/playable-fx-decompose/reference.md +201 -0
- package/project-template/skills/playable-fx-decompose/requirements.txt +2 -0
- package/project-template/skills/playable-fx-decompose/scripts/build-blank-tile-crack.py +192 -0
- package/project-template/skills/playable-fx-decompose/scripts/fix-shard-debris-frames.py +60 -0
- package/project-template/skills/playable-fx-decompose/scripts/generate-shard-debris.py +276 -0
- package/project-template/skills/playable-fx-peak/SKILL.md +237 -0
- package/project-template/skills/playable-fx-peak/requirements.txt +2 -0
- package/project-template/skills/playable-fx-peak/scripts/fix-frame-edges.py +70 -0
- package/project-template/skills/playable-fx-peak/scripts/repack-frame-sequence.py +526 -0
- package/project-template/skills/playable-fx-peak/scripts/validate-frame-anchors.py +130 -0
- package/project-template/skills/playable-placeholder/SKILL.md +239 -0
- package/project-template/skills/playable-record/SKILL.md +166 -0
- package/project-template/skills/playable-record/scripts/lib/build-artifact.mjs +92 -0
- package/project-template/skills/playable-record/scripts/lib/dev-server.mjs +104 -0
- package/project-template/skills/playable-record/scripts/lib/record-audio-bridge.js +141 -0
- package/project-template/skills/playable-record/scripts/lib/slice-structure-verify.mjs +199 -0
- package/project-template/skills/playable-record/scripts/record-playable.mjs +583 -0
- package/project-template/skills/playable-record/scripts/verify-build.mjs +185 -0
- package/project-template/skills/playable-record/scripts/verify-contract.mjs +261 -0
- package/project-template/skills/playable-record/scripts/verify-firstwin.mjs +398 -0
- package/project-template/skills/playable-record/scripts/verify-fusion.mjs +320 -0
- package/project-template/skills/playable-record/scripts/verify-lifecycle.mjs +78 -0
- package/project-template/skills/playable-record/scripts/verify-slice-artist.mjs +53 -0
- package/project-template/skills/playable-record/scripts/verify-slice-ta.mjs +53 -0
- package/project-template/skills/playable-record/scripts/verify-slice.mjs +142 -0
- package/project-template/skills/playable-record/scripts/verify-visual-ring.mjs +250 -0
- package/project-template/skills/playable-record/scripts/verify-visual-ring1.mjs +190 -0
- package/project-template/skills/playable-record/scripts/verify-vlm-video.mjs +227 -0
- package/project-template/skills/playable-validate/SKILL.md +260 -0
- package/project-template/skills/playable-validate/references/checklist-detail.md +36 -0
- package/project-template/skills/playable-validate/references/single-html-bundle.md +76 -0
- package/project-template/skills/playable-validate/validation-rules.md +200 -0
- package/project-template/skills/playable-verify-ui/SKILL.md +295 -0
- package/project-template/skills/playable-verify-ui/examples/asset-manifest.example.json +36 -0
- package/project-template/skills/playable-verify-ui/examples/mahjong-match.profile.yaml +334 -0
- package/project-template/skills/playable-verify-ui/profiles/template.profile.yaml +84 -0
- package/project-template/skills/playable-verify-ui/reference.md +165 -0
- package/project-template/skills/playable-verify-ui/references/phaser-patterns.md +67 -0
- package/project-template/skills/playable-verify-ui/references/scaling-decision-tree.md +51 -0
- package/project-template/skills/playable-verify-ui/requirements.txt +7 -0
- package/project-template/skills/playable-verify-ui/schema/asset-manifest.schema.json +68 -0
- package/project-template/skills/playable-verify-ui/schema/playable-ui-profile.schema.json +171 -0
- package/project-template/skills/playable-verify-ui/scripts/asset_manifest.py +231 -0
- package/project-template/skills/playable-verify-ui/scripts/lib/__init__.py +1 -0
- package/project-template/skills/playable-verify-ui/scripts/lib/config_expr.js +218 -0
- package/project-template/skills/playable-verify-ui/scripts/lib/node_utils.js +51 -0
- package/project-template/skills/playable-verify-ui/scripts/lib/profile_loader.py +59 -0
- package/project-template/skills/playable-verify-ui/scripts/lib/report.py +106 -0
- package/project-template/skills/playable-verify-ui/scripts/lib/runtime_contract.js +116 -0
- package/project-template/skills/playable-verify-ui/scripts/measure_frame_content.py +77 -0
- package/project-template/skills/playable-verify-ui/scripts/run_all.py +265 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_asset_sizes.py +77 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_assets_present.py +62 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_atlas_budget.py +84 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_atlas_frames.py +79 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_bg_clean.py +365 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_doc_asset_sync.py +90 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +59 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_game_config_load.js +54 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +64 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_layout_regions.js +110 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_profile_schema.py +37 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_ring1_visual.py +211 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_runtime_contract.js +58 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_script_load_order.js +73 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_slice_plan.py +238 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_slice_plan_test.py +125 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_text_overlap.py +333 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_tile_consistency.py +323 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_vision_evidence.py +894 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_vision_evidence_test.py +122 -0
- package/project-template/skills/playable-verify-ui/scripts/verify_visual.py +422 -0
- package/project-template/templates/{designer-log.template.md → artist-log.template.md} +26 -31
- package/project-template/templates/atom-tree.template.json +133 -0
- package/project-template/templates/design-brief.template.md +59 -162
- package/project-template/templates/design-lens-checklist.reference.md +14 -14
- package/project-template/templates/design-methodology.md +25 -25
- package/project-template/templates/design.template.md +50 -0
- package/project-template/templates/developer-log.template.md +187 -63
- package/project-template/templates/five-axis-framework.md +89 -44
- package/project-template/templates/gen-placeholder-audio.template.mjs +63 -0
- package/project-template/templates/gen-placeholders.template.mjs +81 -0
- package/project-template/templates/intent-clarifications.template.md +7 -7
- package/project-template/templates/layout-spec.template.md +32 -20
- package/project-template/templates/plan.template.md +80 -0
- package/project-template/templates/project-state.template.md +90 -191
- package/project-template/templates/review-report.template.md +208 -24
- package/project-template/templates/style-exploration.template.md +8 -8
- package/project-template/templates/ta-log.template.md +58 -35
- package/project-template/tsconfig.json +20 -0
- package/project-template/vite.config.ts +27 -0
- package/project-templates/phaser/.claude/agents/artist.md +101 -0
- package/project-templates/phaser/.claude/agents/developer.md +123 -0
- package/project-templates/phaser/.claude/agents/game-designer.md +192 -0
- package/project-templates/phaser/.claude/agents/refs/README.md +77 -0
- package/project-templates/phaser/.claude/agents/refs/artist-art-style-catalog.md +533 -0
- package/project-templates/phaser/.claude/agents/refs/artist-color-audio-recipes.md +153 -0
- package/project-templates/phaser/.claude/agents/refs/artist-deliverable-spec.md +230 -0
- package/project-templates/phaser/.claude/agents/refs/artist-dimension-axis.md +27 -0
- package/project-templates/phaser/.claude/agents/refs/artist-handoff-v2-checklist.md +76 -0
- package/project-templates/phaser/.claude/agents/refs/artist-legacy-fallback.md +14 -0
- package/project-templates/phaser/.claude/agents/refs/artist-master-composite-recipes.md +208 -0
- package/project-templates/phaser/.claude/agents/refs/artist-style-exploration-flow.md +55 -0
- package/project-templates/phaser/.claude/agents/refs/developer-dev-handoff.md +152 -0
- package/project-templates/phaser/.claude/agents/refs/developer-impl-cookbook.md +432 -0
- package/project-templates/phaser/.claude/agents/refs/developer-legacy-fallback.md +15 -0
- package/project-templates/phaser/.claude/agents/refs/developer-phase1-flow.md +404 -0
- package/project-templates/phaser/.claude/agents/refs/framework-5-component-filter.md +252 -0
- package/project-templates/phaser/.claude/agents/refs/framework-game-feel-juice.md +266 -0
- package/project-templates/phaser/.claude/agents/refs/framework-mda.md +147 -0
- package/project-templates/phaser/.claude/agents/refs/game-designer-gameplay-sufficiency.md +123 -0
- package/project-templates/phaser/.claude/agents/refs/game-designer-legacy-fallback.md +15 -0
- package/project-templates/phaser/.claude/agents/refs/game-designer-workflow-detail.md +69 -0
- package/project-templates/phaser/.claude/agents/refs/implementation-plan-guide.md +309 -0
- package/project-templates/phaser/.claude/agents/refs/reviewer-convergence-eval.md +350 -0
- package/project-templates/phaser/.claude/agents/refs/reviewer-legacy-fallback.md +14 -0
- package/project-templates/phaser/.claude/agents/refs/reviewer-six-dimension-eval.md +6 -0
- package/project-templates/phaser/.claude/agents/refs/skill-selector-guide.md +465 -0
- package/project-templates/phaser/.claude/agents/refs/skill-value-layers.md +145 -0
- package/project-templates/phaser/.claude/agents/refs/storyboard-generation-guide.md +110 -0
- package/project-templates/phaser/.claude/agents/refs/ta-3d-flip-recipe.md +88 -0
- package/project-templates/phaser/.claude/agents/refs/ta-atlas-deliverable-standard.md +67 -0
- package/project-templates/phaser/.claude/agents/refs/ta-batch-pipeline-recipes.md +120 -0
- package/project-templates/phaser/.claude/agents/refs/ta-image-generation-detail.md +300 -0
- package/project-templates/phaser/.claude/agents/refs/ta-image-ops-reference.md +495 -0
- package/project-templates/phaser/.claude/agents/refs/ta-pipeline-cookbook.md +1141 -0
- package/project-templates/phaser/.claude/agents/refs/ta-tools-reference.md +111 -0
- package/project-templates/phaser/.claude/agents/refs/ta-vfx-preset-catalog.md +365 -0
- package/project-templates/phaser/.claude/agents/refs/technical-artist-legacy-fallback.md +14 -0
- package/project-templates/phaser/.claude/agents/reviewer.md +116 -0
- package/project-templates/phaser/.claude/agents/technical-artist.md +100 -0
- package/project-templates/phaser/.claude/hooks/README.md +120 -0
- package/project-templates/phaser/.claude/hooks/asr-coverage-validate.mjs +381 -0
- package/project-templates/phaser/.claude/hooks/block-developer-preflight.mjs +185 -0
- package/project-templates/phaser/.claude/hooks/block-ring1-tasklist.mjs +95 -0
- package/project-templates/phaser/.claude/hooks/gate-dispatcher.mjs +78 -0
- package/project-templates/phaser/.claude/hooks/gate-runner.mjs +557 -0
- package/project-templates/phaser/.claude/hooks/gate.mjs +171 -0
- package/project-templates/phaser/.claude/hooks/snapshot-milestone.mjs +247 -0
- package/project-templates/phaser/.claude/hooks/user-prompt.mjs +194 -0
- package/project-templates/phaser/.claude/hooks/validate-atom-tree-selection.mjs +281 -0
- package/project-templates/phaser/.claude/hooks/validate-workflow-stop.mjs +1889 -0
- package/project-templates/phaser/.claude/settings.json +81 -0
- package/project-templates/phaser/.claude/skills/brainstorming/SKILL.md +161 -0
- package/project-templates/phaser/.claude/skills/brainstorming/scripts/frame-template.html +270 -0
- package/project-templates/phaser/.claude/skills/brainstorming/scripts/helper.js +177 -0
- package/project-templates/phaser/.claude/skills/brainstorming/scripts/server.cjs +354 -0
- package/project-templates/phaser/.claude/skills/brainstorming/scripts/start-server.sh +148 -0
- package/project-templates/phaser/.claude/skills/brainstorming/scripts/stop-server.sh +56 -0
- package/project-templates/phaser/.claude/skills/brainstorming/scripts/wait-for-selection.sh +62 -0
- package/project-templates/phaser/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/project-templates/phaser/.claude/skills/brainstorming/visual-companion.md +309 -0
- package/project-templates/phaser/.claude/skills/playcraft-ad-psychology/SKILL.md +182 -0
- package/project-templates/phaser/.claude/skills/playcraft-art-style-guide/SKILL.md +123 -0
- package/project-templates/phaser/.claude/skills/playcraft-asset-state-sheet/SKILL.md +205 -0
- package/project-templates/phaser/.claude/skills/playcraft-audio-generation/SKILL.md +280 -0
- package/project-templates/phaser/.claude/skills/playcraft-batch-pipeline/SKILL.md +184 -0
- package/project-templates/phaser/.claude/skills/playcraft-build-optimizer/SKILL.md +306 -0
- package/project-templates/phaser/.claude/skills/playcraft-image-generation/SKILL.md +298 -0
- package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +123 -0
- package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +254 -0
- package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +324 -0
- package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +97 -0
- package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +118 -0
- package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +137 -0
- package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +397 -0
- package/project-templates/phaser/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +296 -0
- package/project-templates/phaser/.claude/skills/playcraft-image-ops/SKILL.md +122 -0
- package/project-templates/phaser/.claude/skills/playcraft-image-processing/SKILL.md +219 -0
- package/project-templates/phaser/.claude/skills/playcraft-masking/SKILL.md +373 -0
- package/project-templates/phaser/.claude/skills/playcraft-playable-optimization/SKILL.md +161 -0
- package/project-templates/phaser/.claude/skills/playcraft-research/SKILL.md +215 -0
- package/project-templates/phaser/.claude/skills/playcraft-skill-recommender/SKILL.md +331 -0
- package/project-templates/phaser/.claude/skills/playcraft-sprite-generation/SKILL.md +423 -0
- package/project-templates/phaser/.claude/skills/playcraft-sprite-remix/SKILL.md +158 -0
- package/project-templates/phaser/.claude/skills/playcraft-sprite-sheet/SKILL.md +100 -0
- package/project-templates/phaser/.claude/skills/playcraft-storyboard/SKILL.md +167 -0
- package/project-templates/phaser/.claude/skills/playcraft-style-qa/SKILL.md +270 -0
- package/project-templates/phaser/.claude/skills/playcraft-text-rendering/SKILL.md +236 -0
- package/project-templates/phaser/.claude/skills/playcraft-vfx-animation/SKILL.md +130 -0
- package/project-templates/phaser/.claude/skills/playwright-cli/SKILL.md +390 -0
- package/project-templates/phaser/.claude/skills/playwright-cli/references/element-attributes.md +23 -0
- package/project-templates/phaser/.claude/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/project-templates/phaser/.claude/skills/playwright-cli/references/request-mocking.md +87 -0
- package/project-templates/phaser/.claude/skills/playwright-cli/references/running-code.md +240 -0
- package/project-templates/phaser/.claude/skills/playwright-cli/references/session-management.md +226 -0
- package/project-templates/phaser/.claude/skills/playwright-cli/references/spec-driven-testing.md +308 -0
- package/project-templates/phaser/.claude/skills/playwright-cli/references/storage-state.md +275 -0
- package/project-templates/phaser/.claude/skills/playwright-cli/references/test-generation.md +134 -0
- package/project-templates/phaser/.claude/skills/playwright-cli/references/tracing.md +142 -0
- package/project-templates/phaser/.claude/skills/playwright-cli/references/video-recording.md +153 -0
- package/project-templates/phaser/.claude/skills/session-analyzer/SKILL.md +386 -0
- package/project-templates/phaser/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +182 -0
- package/project-templates/phaser/.claude/skills/session-analyzer/scripts/find-turns.mjs +72 -0
- package/project-templates/phaser/.claude/skills/session-analyzer/scripts/heavy-output.mjs +121 -0
- package/project-templates/phaser/.claude/skills/session-analyzer/scripts/resolve-session.mjs +103 -0
- package/project-templates/phaser/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +127 -0
- package/project-templates/phaser/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +106 -0
- package/project-templates/phaser/.claude/skills/session-analyzer/scripts/time-gaps.mjs +128 -0
- package/project-templates/phaser/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +67 -0
- package/project-templates/phaser/.claude/snapshot.mjs +257 -0
- package/project-templates/phaser/.cursor/hooks.json +17 -0
- package/project-templates/phaser/.cursor/rules/playcraft-orchestrator.mdc +142 -0
- package/project-templates/phaser/.cursor/rules/playcraft-subagent-boundary.mdc +29 -0
- package/project-templates/phaser/.playcraft-engine +1 -0
- package/project-templates/phaser/CHANGELOG.md +105 -0
- package/project-templates/phaser/CLAUDE.md +84 -0
- package/project-templates/phaser/assets/audio/bgm/.gitkeep +0 -0
- package/project-templates/phaser/assets/audio/sfx/.gitkeep +0 -0
- package/project-templates/phaser/assets/bundles/.gitkeep +0 -0
- package/project-templates/phaser/assets/images/bg/.gitkeep +0 -0
- package/project-templates/phaser/assets/images/reference/.gitkeep +0 -0
- package/project-templates/phaser/assets/images/storyboard/.gitkeep +0 -0
- package/project-templates/phaser/assets/images/tiles/.gitkeep +0 -0
- package/project-templates/phaser/assets/images/ui/.gitkeep +0 -0
- package/project-templates/phaser/assets/images/vfx/.gitkeep +0 -0
- package/project-templates/phaser/assets/models/.gitkeep +0 -0
- package/project-templates/phaser/docs/DESIGN.md +65 -0
- package/project-templates/phaser/docs/intent-clarifications.md +58 -0
- package/project-templates/phaser/docs/pipeline-overview.md +69 -0
- package/project-templates/phaser/docs/project-state.md +211 -0
- package/project-templates/phaser/docs/scaffold-manifest.md +10 -0
- package/project-templates/phaser/docs/team/agent-conduct.md +67 -0
- package/project-templates/phaser/docs/team/agent-runtime-matrix.md +80 -0
- package/project-templates/phaser/docs/team/atom-tree-format.md +114 -0
- package/project-templates/phaser/docs/team/collaboration.md +391 -0
- package/project-templates/phaser/docs/team/core-model.md +85 -0
- package/project-templates/phaser/docs/team/game-designer-migration-todo.md +8 -0
- package/project-templates/phaser/docs/team/harness-legacy-deprecation.md +23 -0
- package/project-templates/phaser/docs/team/platform-capabilities.md +18 -0
- package/project-templates/phaser/docs/team/workflow-changelog.md +137 -0
- package/project-templates/phaser/docs/team/workflow-consistency-checklist.md +240 -0
- package/project-templates/phaser/focus-lab/.gitkeep +0 -0
- package/project-templates/phaser/game/adapters/phaser.ts +52 -0
- package/project-templates/phaser/game/config/.gitkeep +0 -0
- package/project-templates/phaser/game/config/game-config.ts +46 -0
- package/project-templates/phaser/game/contract/publish.ts +141 -0
- package/project-templates/phaser/game/contract/types.ts +34 -0
- package/project-templates/phaser/game/gameplay/.gitkeep +0 -0
- package/project-templates/phaser/game/index.ts +81 -0
- package/project-templates/phaser/game/runtime-contract.ts +28 -0
- package/project-templates/phaser/game/scenes/.gitkeep +0 -0
- package/project-templates/phaser/globals.d.ts +51 -0
- package/project-templates/phaser/index.css +34 -0
- package/project-templates/phaser/index.html +18 -0
- package/project-templates/phaser/main.ts +9 -0
- package/project-templates/phaser/package.json +79 -0
- package/project-templates/phaser/skills/README.md +52 -0
- package/project-templates/phaser/skills/_shared/agent-prep.md +136 -0
- package/project-templates/phaser/skills/_shared/requirements.txt +1 -0
- package/project-templates/phaser/skills/_shared/scripts/build-evidence-gate.mjs +87 -0
- package/project-templates/phaser/skills/_shared/scripts/context-budget.mjs +215 -0
- package/project-templates/phaser/skills/_shared/scripts/create-playable.mjs +140 -0
- package/project-templates/phaser/skills/_shared/scripts/dev-start.mjs +151 -0
- package/project-templates/phaser/skills/_shared/scripts/disclosure-config.mjs +480 -0
- package/project-templates/phaser/skills/_shared/scripts/ensure-project.mjs +532 -0
- package/project-templates/phaser/skills/_shared/scripts/gen-placeholder-audio.py +345 -0
- package/project-templates/phaser/skills/_shared/scripts/gen-placeholder.py +244 -0
- package/project-templates/phaser/skills/_shared/scripts/harness-smoke.mjs +257 -0
- package/project-templates/phaser/skills/_shared/scripts/lib/validator-artifacts.mjs +129 -0
- package/project-templates/phaser/skills/_shared/scripts/placeholder-pack-sheet.mjs +67 -0
- package/project-templates/phaser/skills/_shared/scripts/placeholder_audio_lib.py +142 -0
- package/project-templates/phaser/skills/_shared/scripts/placeholder_lib.py +993 -0
- package/project-templates/phaser/skills/_shared/scripts/render-project-state.mjs +278 -0
- package/project-templates/phaser/skills/_shared/scripts/ring-config.mjs +252 -0
- package/project-templates/phaser/skills/_shared/scripts/skills-check.mjs +176 -0
- package/project-templates/phaser/skills/_shared/scripts/slice-set.mjs +77 -0
- package/project-templates/phaser/skills/_shared/scripts/state-advance-ring.mjs +63 -0
- package/project-templates/phaser/skills/_shared/scripts/state-get.mjs +215 -0
- package/project-templates/phaser/skills/_shared/scripts/state-handoff.mjs +120 -0
- package/project-templates/phaser/skills/_shared/scripts/state-set.mjs +113 -0
- package/project-templates/phaser/skills/_shared/scripts/state-store.mjs +893 -0
- package/project-templates/phaser/skills/_shared/scripts/sync-template-skills.mjs +112 -0
- package/project-templates/phaser/skills/_shared/scripts/verify-asset-code-sync.mjs +265 -0
- package/project-templates/phaser/skills/_shared/scripts/verify-atom-conformance.mjs +181 -0
- package/project-templates/phaser/skills/_shared/scripts/verify-env.mjs +285 -0
- package/project-templates/phaser/skills/_shared/scripts/verify-placeholders.mjs +161 -0
- package/project-templates/phaser/skills/_shared/scripts/workflow-doctor.mjs +348 -0
- package/project-templates/phaser/skills/playable-animate/SKILL.md +52 -0
- package/project-templates/phaser/skills/playable-animate/agents/openai.yaml +4 -0
- package/project-templates/phaser/skills/playable-animate/references/board-refresh.md +30 -0
- package/project-templates/phaser/skills/playable-animate/references/diagnosis-checklist.md +25 -0
- package/project-templates/phaser/skills/playable-animate/references/entrance-sequencing.md +33 -0
- package/project-templates/phaser/skills/playable-animate/references/interaction-timing.md +23 -0
- package/project-templates/phaser/skills/playable-art/SKILL.md +203 -0
- package/project-templates/phaser/skills/playable-art/agents/openai.yaml +4 -0
- package/project-templates/phaser/skills/playable-art/references/alpha-postprocess.md +46 -0
- package/project-templates/phaser/skills/playable-art/references/cta-art-spec.md +59 -0
- package/project-templates/phaser/skills/playable-art/references/layout-proportions.md +30 -0
- package/project-templates/phaser/skills/playable-art/references/prompt-patterns.md +83 -0
- package/project-templates/phaser/skills/playable-art/references/reference-comparison.md +30 -0
- package/project-templates/phaser/skills/playable-art/references/sheet-import-v2.md +91 -0
- package/project-templates/phaser/skills/playable-art/scripts/build-atlas.py +332 -0
- package/project-templates/phaser/skills/playable-art/scripts/chroma-key.py +50 -0
- package/project-templates/phaser/skills/playable-art/scripts/extract-alpha-split.py +65 -0
- package/project-templates/phaser/skills/playable-art/scripts/extract-dual-bg-alpha.py +118 -0
- package/project-templates/phaser/skills/playable-art/scripts/import-gpt-art-sheets-v2.py +403 -0
- package/project-templates/phaser/skills/playable-art/scripts/import-gpt-art-sheets.py +280 -0
- package/project-templates/phaser/skills/playable-art/scripts/import-gpt-tile-sheet.py +114 -0
- package/project-templates/phaser/skills/playable-art/scripts/import_gpt_art_pipeline.py +321 -0
- package/project-templates/phaser/skills/playable-art/scripts/import_gpt_art_sheets_v2_test.py +126 -0
- package/project-templates/phaser/skills/playable-art/scripts/placeholder_common.py +98 -0
- package/project-templates/phaser/skills/playable-art/scripts/remove-bg.py +91 -0
- package/project-templates/phaser/skills/playable-art/scripts/review-processed-assets.py +468 -0
- package/project-templates/phaser/skills/playable-art/scripts/review_processed_assets_test.py +116 -0
- package/project-templates/phaser/skills/playable-art/scripts/verify-alpha-clean.py +105 -0
- package/project-templates/phaser/skills/playable-debug/SKILL.md +116 -0
- package/project-templates/phaser/skills/playable-debug/agents/openai.yaml +4 -0
- package/project-templates/phaser/skills/playable-debug/references/debug-config.md +40 -0
- package/project-templates/phaser/skills/playable-focus/SKILL.md +148 -0
- package/project-templates/phaser/skills/playable-focus/scripts/bootstrap-playground.mjs +84 -0
- package/project-templates/phaser/skills/playable-focus/scripts/extract-focus-frames.mjs +87 -0
- package/project-templates/phaser/skills/playable-focus/scripts/generate-focus-reports.mjs +121 -0
- package/project-templates/phaser/skills/playable-focus/scripts/playground.mjs +390 -0
- package/project-templates/phaser/skills/playable-focus/templates/focus-lab/frame.html +39 -0
- package/project-templates/phaser/skills/playable-focus/templates/focus-lab/harness/clean-stage.js +114 -0
- package/project-templates/phaser/skills/playable-focus/templates/focus-lab/harness/frame-lab-scene.js +94 -0
- package/project-templates/phaser/skills/playable-focus/templates/focus-lab/harness/particle-lab-scene.js +224 -0
- package/project-templates/phaser/skills/playable-focus/templates/focus-lab/model.html +16 -0
- package/project-templates/phaser/skills/playable-focus/templates/focus-lab/particle.html +38 -0
- package/project-templates/phaser/skills/playable-focus/templates/focus-lab/shatter.html +47 -0
- package/project-templates/phaser/skills/playable-fx-decompose/SKILL.md +212 -0
- package/project-templates/phaser/skills/playable-fx-decompose/examples.md +89 -0
- package/project-templates/phaser/skills/playable-fx-decompose/reference.md +201 -0
- package/project-templates/phaser/skills/playable-fx-decompose/requirements.txt +2 -0
- package/project-templates/phaser/skills/playable-fx-decompose/scripts/build-blank-tile-crack.py +192 -0
- package/project-templates/phaser/skills/playable-fx-decompose/scripts/fix-shard-debris-frames.py +60 -0
- package/project-templates/phaser/skills/playable-fx-decompose/scripts/generate-shard-debris.py +276 -0
- package/project-templates/phaser/skills/playable-fx-peak/SKILL.md +237 -0
- package/project-templates/phaser/skills/playable-fx-peak/requirements.txt +2 -0
- package/project-templates/phaser/skills/playable-fx-peak/scripts/fix-frame-edges.py +70 -0
- package/project-templates/phaser/skills/playable-fx-peak/scripts/repack-frame-sequence.py +526 -0
- package/project-templates/phaser/skills/playable-fx-peak/scripts/validate-frame-anchors.py +130 -0
- package/project-templates/phaser/skills/playable-placeholder/SKILL.md +239 -0
- package/project-templates/phaser/skills/playable-record/SKILL.md +166 -0
- package/project-templates/phaser/skills/playable-record/scripts/lib/build-artifact.mjs +92 -0
- package/project-templates/phaser/skills/playable-record/scripts/lib/dev-server.mjs +104 -0
- package/project-templates/phaser/skills/playable-record/scripts/lib/record-audio-bridge.js +141 -0
- package/project-templates/phaser/skills/playable-record/scripts/lib/slice-structure-verify.mjs +199 -0
- package/project-templates/phaser/skills/playable-record/scripts/record-playable.mjs +583 -0
- package/project-templates/phaser/skills/playable-record/scripts/verify-build.mjs +185 -0
- package/project-templates/phaser/skills/playable-record/scripts/verify-contract.mjs +261 -0
- package/project-templates/phaser/skills/playable-record/scripts/verify-firstwin.mjs +398 -0
- package/project-templates/phaser/skills/playable-record/scripts/verify-fusion.mjs +320 -0
- package/project-templates/phaser/skills/playable-record/scripts/verify-lifecycle.mjs +78 -0
- package/project-templates/phaser/skills/playable-record/scripts/verify-slice-artist.mjs +53 -0
- package/project-templates/phaser/skills/playable-record/scripts/verify-slice-ta.mjs +53 -0
- package/project-templates/phaser/skills/playable-record/scripts/verify-slice.mjs +142 -0
- package/project-templates/phaser/skills/playable-record/scripts/verify-visual-ring.mjs +250 -0
- package/project-templates/phaser/skills/playable-record/scripts/verify-visual-ring1.mjs +190 -0
- package/project-templates/phaser/skills/playable-record/scripts/verify-vlm-video.mjs +227 -0
- package/project-templates/phaser/skills/playable-validate/SKILL.md +260 -0
- package/project-templates/phaser/skills/playable-validate/references/checklist-detail.md +36 -0
- package/project-templates/phaser/skills/playable-validate/references/single-html-bundle.md +76 -0
- package/project-templates/phaser/skills/playable-validate/validation-rules.md +200 -0
- package/project-templates/phaser/skills/playable-verify-ui/SKILL.md +295 -0
- package/project-templates/phaser/skills/playable-verify-ui/examples/asset-manifest.example.json +36 -0
- package/project-templates/phaser/skills/playable-verify-ui/examples/mahjong-match.profile.yaml +334 -0
- package/project-templates/phaser/skills/playable-verify-ui/profiles/template.profile.yaml +84 -0
- package/project-templates/phaser/skills/playable-verify-ui/reference.md +165 -0
- package/project-templates/phaser/skills/playable-verify-ui/references/phaser-patterns.md +67 -0
- package/project-templates/phaser/skills/playable-verify-ui/references/scaling-decision-tree.md +51 -0
- package/project-templates/phaser/skills/playable-verify-ui/requirements.txt +7 -0
- package/project-templates/phaser/skills/playable-verify-ui/schema/asset-manifest.schema.json +68 -0
- package/project-templates/phaser/skills/playable-verify-ui/schema/playable-ui-profile.schema.json +171 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/asset_manifest.py +231 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/__init__.py +1 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/config_expr.js +218 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/node_utils.js +51 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/profile_loader.py +59 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/report.py +106 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/lib/runtime_contract.js +116 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/measure_frame_content.py +77 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/run_all.py +265 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_asset_sizes.py +77 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_assets_present.py +62 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_atlas_budget.py +84 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_atlas_frames.py +79 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_bg_clean.py +365 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_doc_asset_sync.py +90 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +59 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_game_config_load.js +54 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +64 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_layout_regions.js +110 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_profile_schema.py +37 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_ring1_visual.py +211 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_runtime_contract.js +58 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_script_load_order.js +73 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_slice_plan.py +238 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_slice_plan_test.py +125 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_text_overlap.py +333 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_tile_consistency.py +323 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_vision_evidence.py +894 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_vision_evidence_test.py +122 -0
- package/project-templates/phaser/skills/playable-verify-ui/scripts/verify_visual.py +422 -0
- package/project-templates/phaser/ta-workspace/scripts/.gitkeep +0 -0
- package/project-templates/phaser/templates/artist-log.template.md +182 -0
- package/project-templates/phaser/templates/atom-tree.template.json +133 -0
- package/project-templates/phaser/templates/design-brief.template.md +92 -0
- package/project-templates/phaser/templates/design-lens-checklist.reference.md +117 -0
- package/project-templates/phaser/templates/design-methodology.md +99 -0
- package/project-templates/phaser/templates/design.template.md +50 -0
- package/project-templates/phaser/templates/developer-log.template.md +258 -0
- package/project-templates/phaser/templates/five-axis-framework.md +194 -0
- package/project-templates/phaser/templates/gen-placeholder-audio.template.mjs +63 -0
- package/project-templates/phaser/templates/gen-placeholders.template.mjs +81 -0
- package/project-templates/phaser/templates/intent-clarifications.template.md +58 -0
- package/project-templates/phaser/templates/layout-spec.template.md +198 -0
- package/project-templates/phaser/templates/plan.template.md +80 -0
- package/project-templates/phaser/templates/project-state.template.md +136 -0
- package/project-templates/phaser/templates/review-report.template.md +275 -0
- package/project-templates/phaser/templates/style-exploration.template.md +93 -0
- package/project-templates/phaser/templates/ta-log.template.md +394 -0
- package/project-templates/phaser/tsconfig.json +20 -0
- package/project-templates/phaser/vite.config.ts +27 -0
- package/project-templates/threejs/.claude/agents/artist.md +101 -0
- package/project-templates/threejs/.claude/agents/developer.md +123 -0
- package/project-templates/threejs/.claude/agents/game-designer.md +192 -0
- package/project-templates/threejs/.claude/agents/refs/README.md +77 -0
- package/project-templates/threejs/.claude/agents/refs/artist-art-style-catalog.md +533 -0
- package/project-templates/threejs/.claude/agents/refs/artist-color-audio-recipes.md +153 -0
- package/project-templates/threejs/.claude/agents/refs/artist-deliverable-spec.md +230 -0
- package/project-templates/threejs/.claude/agents/refs/artist-dimension-axis.md +27 -0
- package/project-templates/threejs/.claude/agents/refs/artist-handoff-v2-checklist.md +76 -0
- package/project-templates/threejs/.claude/agents/refs/artist-legacy-fallback.md +14 -0
- package/project-templates/threejs/.claude/agents/refs/artist-master-composite-recipes.md +208 -0
- package/project-templates/threejs/.claude/agents/refs/artist-style-exploration-flow.md +55 -0
- package/project-templates/threejs/.claude/agents/refs/developer-dev-handoff.md +152 -0
- package/project-templates/threejs/.claude/agents/refs/developer-impl-cookbook.md +432 -0
- package/project-templates/threejs/.claude/agents/refs/developer-legacy-fallback.md +15 -0
- package/project-templates/threejs/.claude/agents/refs/developer-phase1-flow.md +404 -0
- package/project-templates/threejs/.claude/agents/refs/framework-5-component-filter.md +252 -0
- package/project-templates/threejs/.claude/agents/refs/framework-game-feel-juice.md +266 -0
- package/project-templates/threejs/.claude/agents/refs/framework-mda.md +147 -0
- package/project-templates/threejs/.claude/agents/refs/game-designer-gameplay-sufficiency.md +123 -0
- package/project-templates/threejs/.claude/agents/refs/game-designer-legacy-fallback.md +15 -0
- package/project-templates/threejs/.claude/agents/refs/game-designer-workflow-detail.md +69 -0
- package/project-templates/threejs/.claude/agents/refs/implementation-plan-guide.md +309 -0
- package/project-templates/threejs/.claude/agents/refs/reviewer-convergence-eval.md +350 -0
- package/project-templates/threejs/.claude/agents/refs/reviewer-legacy-fallback.md +14 -0
- package/project-templates/threejs/.claude/agents/refs/reviewer-six-dimension-eval.md +6 -0
- package/project-templates/threejs/.claude/agents/refs/skill-selector-guide.md +465 -0
- package/project-templates/threejs/.claude/agents/refs/skill-value-layers.md +145 -0
- package/project-templates/threejs/.claude/agents/refs/storyboard-generation-guide.md +110 -0
- package/project-templates/threejs/.claude/agents/refs/ta-3d-flip-recipe.md +88 -0
- package/project-templates/threejs/.claude/agents/refs/ta-atlas-deliverable-standard.md +67 -0
- package/project-templates/threejs/.claude/agents/refs/ta-batch-pipeline-recipes.md +120 -0
- package/project-templates/threejs/.claude/agents/refs/ta-image-generation-detail.md +300 -0
- package/project-templates/threejs/.claude/agents/refs/ta-image-ops-reference.md +495 -0
- package/project-templates/threejs/.claude/agents/refs/ta-pipeline-cookbook.md +1141 -0
- package/project-templates/threejs/.claude/agents/refs/ta-tools-reference.md +111 -0
- package/project-templates/threejs/.claude/agents/refs/ta-vfx-preset-catalog.md +365 -0
- package/project-templates/threejs/.claude/agents/refs/technical-artist-legacy-fallback.md +14 -0
- package/project-templates/threejs/.claude/agents/reviewer.md +116 -0
- package/project-templates/threejs/.claude/agents/technical-artist.md +100 -0
- package/project-templates/threejs/.claude/hooks/README.md +120 -0
- package/project-templates/threejs/.claude/hooks/asr-coverage-validate.mjs +381 -0
- package/project-templates/threejs/.claude/hooks/block-developer-preflight.mjs +185 -0
- package/project-templates/threejs/.claude/hooks/block-ring1-tasklist.mjs +95 -0
- package/project-templates/threejs/.claude/hooks/gate-dispatcher.mjs +78 -0
- package/project-templates/threejs/.claude/hooks/gate-runner.mjs +557 -0
- package/project-templates/threejs/.claude/hooks/gate.mjs +171 -0
- package/project-templates/threejs/.claude/hooks/snapshot-milestone.mjs +247 -0
- package/project-templates/threejs/.claude/hooks/user-prompt.mjs +194 -0
- package/project-templates/threejs/.claude/hooks/validate-atom-tree-selection.mjs +281 -0
- package/project-templates/threejs/.claude/hooks/validate-workflow-stop.mjs +1889 -0
- package/project-templates/threejs/.claude/settings.json +81 -0
- package/project-templates/threejs/.claude/skills/brainstorming/SKILL.md +161 -0
- package/project-templates/threejs/.claude/skills/brainstorming/scripts/frame-template.html +270 -0
- package/project-templates/threejs/.claude/skills/brainstorming/scripts/helper.js +177 -0
- package/project-templates/threejs/.claude/skills/brainstorming/scripts/server.cjs +354 -0
- package/project-templates/threejs/.claude/skills/brainstorming/scripts/start-server.sh +148 -0
- package/project-templates/threejs/.claude/skills/brainstorming/scripts/stop-server.sh +56 -0
- package/project-templates/threejs/.claude/skills/brainstorming/scripts/wait-for-selection.sh +62 -0
- package/project-templates/threejs/.claude/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/project-templates/threejs/.claude/skills/brainstorming/visual-companion.md +309 -0
- package/project-templates/threejs/.claude/skills/playcraft-ad-psychology/SKILL.md +182 -0
- package/project-templates/threejs/.claude/skills/playcraft-art-style-guide/SKILL.md +123 -0
- package/project-templates/threejs/.claude/skills/playcraft-asset-state-sheet/SKILL.md +205 -0
- package/project-templates/threejs/.claude/skills/playcraft-audio-generation/SKILL.md +280 -0
- package/project-templates/threejs/.claude/skills/playcraft-batch-pipeline/SKILL.md +184 -0
- package/project-templates/threejs/.claude/skills/playcraft-build-optimizer/SKILL.md +306 -0
- package/project-templates/threejs/.claude/skills/playcraft-image-generation/SKILL.md +298 -0
- package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/build-sprite-sheet.template.mjs +123 -0
- package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/compare-style.template.mjs +254 -0
- package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-batch-sprite.template.mjs +324 -0
- package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-batch.template.mjs +97 -0
- package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/gen-edit-variants.template.mjs +118 -0
- package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/process-batch.template.mjs +137 -0
- package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/prompt-cookbook.md +397 -0
- package/project-templates/threejs/.claude/skills/playcraft-image-generation/reference/validate-sprite-sheet.template.mjs +296 -0
- package/project-templates/threejs/.claude/skills/playcraft-image-ops/SKILL.md +122 -0
- package/project-templates/threejs/.claude/skills/playcraft-image-processing/SKILL.md +219 -0
- package/project-templates/threejs/.claude/skills/playcraft-masking/SKILL.md +373 -0
- package/project-templates/threejs/.claude/skills/playcraft-playable-optimization/SKILL.md +161 -0
- package/project-templates/threejs/.claude/skills/playcraft-research/SKILL.md +215 -0
- package/project-templates/threejs/.claude/skills/playcraft-skill-recommender/SKILL.md +331 -0
- package/project-templates/threejs/.claude/skills/playcraft-sprite-generation/SKILL.md +423 -0
- package/project-templates/threejs/.claude/skills/playcraft-sprite-remix/SKILL.md +158 -0
- package/project-templates/threejs/.claude/skills/playcraft-sprite-sheet/SKILL.md +100 -0
- package/project-templates/threejs/.claude/skills/playcraft-storyboard/SKILL.md +167 -0
- package/project-templates/threejs/.claude/skills/playcraft-style-qa/SKILL.md +270 -0
- package/project-templates/threejs/.claude/skills/playcraft-text-rendering/SKILL.md +236 -0
- package/project-templates/threejs/.claude/skills/playcraft-vfx-animation/SKILL.md +130 -0
- package/project-templates/threejs/.claude/skills/playwright-cli/SKILL.md +390 -0
- package/project-templates/threejs/.claude/skills/playwright-cli/references/element-attributes.md +23 -0
- package/project-templates/threejs/.claude/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/project-templates/threejs/.claude/skills/playwright-cli/references/request-mocking.md +87 -0
- package/project-templates/threejs/.claude/skills/playwright-cli/references/running-code.md +240 -0
- package/project-templates/threejs/.claude/skills/playwright-cli/references/session-management.md +226 -0
- package/project-templates/threejs/.claude/skills/playwright-cli/references/spec-driven-testing.md +308 -0
- package/project-templates/threejs/.claude/skills/playwright-cli/references/storage-state.md +275 -0
- package/project-templates/threejs/.claude/skills/playwright-cli/references/test-generation.md +134 -0
- package/project-templates/threejs/.claude/skills/playwright-cli/references/tracing.md +142 -0
- package/project-templates/threejs/.claude/skills/playwright-cli/references/video-recording.md +153 -0
- package/project-templates/threejs/.claude/skills/session-analyzer/SKILL.md +386 -0
- package/project-templates/threejs/.claude/skills/session-analyzer/scripts/execution-breakdown.mjs +182 -0
- package/project-templates/threejs/.claude/skills/session-analyzer/scripts/find-turns.mjs +72 -0
- package/project-templates/threejs/.claude/skills/session-analyzer/scripts/heavy-output.mjs +121 -0
- package/project-templates/threejs/.claude/skills/session-analyzer/scripts/resolve-session.mjs +103 -0
- package/project-templates/threejs/.claude/skills/session-analyzer/scripts/subagent-stats.mjs +127 -0
- package/project-templates/threejs/.claude/skills/session-analyzer/scripts/subagent-tool-timeline.mjs +106 -0
- package/project-templates/threejs/.claude/skills/session-analyzer/scripts/time-gaps.mjs +128 -0
- package/project-templates/threejs/.claude/skills/session-analyzer/scripts/turn-timeline.mjs +67 -0
- package/project-templates/threejs/.claude/snapshot.mjs +257 -0
- package/project-templates/threejs/.cursor/hooks.json +17 -0
- package/project-templates/threejs/.cursor/rules/playcraft-orchestrator.mdc +142 -0
- package/project-templates/threejs/.cursor/rules/playcraft-subagent-boundary.mdc +29 -0
- package/project-templates/threejs/.playcraft-engine +1 -0
- package/project-templates/threejs/CHANGELOG.md +105 -0
- package/project-templates/threejs/CLAUDE.md +84 -0
- package/project-templates/threejs/assets/audio/bgm/.gitkeep +0 -0
- package/project-templates/threejs/assets/audio/sfx/.gitkeep +0 -0
- package/project-templates/threejs/assets/bundles/.gitkeep +0 -0
- package/project-templates/threejs/assets/images/bg/.gitkeep +0 -0
- package/project-templates/threejs/assets/images/reference/.gitkeep +0 -0
- package/project-templates/threejs/assets/images/storyboard/.gitkeep +0 -0
- package/project-templates/threejs/assets/images/tiles/.gitkeep +0 -0
- package/project-templates/threejs/assets/images/ui/.gitkeep +0 -0
- package/project-templates/threejs/assets/images/vfx/.gitkeep +0 -0
- package/project-templates/threejs/assets/models/.gitkeep +0 -0
- package/project-templates/threejs/docs/DESIGN.md +65 -0
- package/project-templates/threejs/docs/intent-clarifications.md +58 -0
- package/project-templates/threejs/docs/pipeline-overview.md +69 -0
- package/project-templates/threejs/docs/project-state.md +211 -0
- package/project-templates/threejs/docs/scaffold-manifest.md +10 -0
- package/project-templates/threejs/docs/team/agent-conduct.md +67 -0
- package/project-templates/threejs/docs/team/agent-runtime-matrix.md +80 -0
- package/project-templates/threejs/docs/team/atom-tree-format.md +114 -0
- package/project-templates/threejs/docs/team/collaboration.md +391 -0
- package/project-templates/threejs/docs/team/core-model.md +85 -0
- package/project-templates/threejs/docs/team/game-designer-migration-todo.md +8 -0
- package/project-templates/threejs/docs/team/harness-legacy-deprecation.md +23 -0
- package/project-templates/threejs/docs/team/platform-capabilities.md +18 -0
- package/project-templates/threejs/docs/team/workflow-changelog.md +137 -0
- package/project-templates/threejs/docs/team/workflow-consistency-checklist.md +240 -0
- package/project-templates/threejs/focus-lab/.gitkeep +0 -0
- package/project-templates/threejs/game/config/.gitkeep +0 -0
- package/project-templates/threejs/game/config/game-config.ts +46 -0
- package/project-templates/threejs/game/contract/publish.ts +141 -0
- package/project-templates/threejs/game/contract/types.ts +34 -0
- package/project-templates/threejs/game/gameplay/.gitkeep +0 -0
- package/project-templates/threejs/game/index.ts +76 -0
- package/project-templates/threejs/game/runtime-contract.ts +15 -0
- package/project-templates/threejs/game/scenes/.gitkeep +0 -0
- package/project-templates/threejs/globals.d.ts +51 -0
- package/project-templates/threejs/index.css +34 -0
- package/project-templates/threejs/index.html +18 -0
- package/project-templates/threejs/main.ts +9 -0
- package/project-templates/threejs/package.json +79 -0
- package/project-templates/threejs/skills/README.md +52 -0
- package/project-templates/threejs/skills/_shared/agent-prep.md +136 -0
- package/project-templates/threejs/skills/_shared/requirements.txt +1 -0
- package/project-templates/threejs/skills/_shared/scripts/build-evidence-gate.mjs +87 -0
- package/project-templates/threejs/skills/_shared/scripts/context-budget.mjs +215 -0
- package/project-templates/threejs/skills/_shared/scripts/create-playable.mjs +140 -0
- package/project-templates/threejs/skills/_shared/scripts/dev-start.mjs +151 -0
- package/project-templates/threejs/skills/_shared/scripts/disclosure-config.mjs +480 -0
- package/project-templates/threejs/skills/_shared/scripts/ensure-project.mjs +532 -0
- package/project-templates/threejs/skills/_shared/scripts/gen-placeholder-audio.py +345 -0
- package/project-templates/threejs/skills/_shared/scripts/gen-placeholder.py +244 -0
- package/project-templates/threejs/skills/_shared/scripts/harness-smoke.mjs +257 -0
- package/project-templates/threejs/skills/_shared/scripts/lib/validator-artifacts.mjs +129 -0
- package/project-templates/threejs/skills/_shared/scripts/placeholder-pack-sheet.mjs +67 -0
- package/project-templates/threejs/skills/_shared/scripts/placeholder_audio_lib.py +142 -0
- package/project-templates/threejs/skills/_shared/scripts/placeholder_lib.py +993 -0
- package/project-templates/threejs/skills/_shared/scripts/render-project-state.mjs +278 -0
- package/project-templates/threejs/skills/_shared/scripts/ring-config.mjs +252 -0
- package/project-templates/threejs/skills/_shared/scripts/skills-check.mjs +176 -0
- package/project-templates/threejs/skills/_shared/scripts/slice-set.mjs +77 -0
- package/project-templates/threejs/skills/_shared/scripts/state-advance-ring.mjs +63 -0
- package/project-templates/threejs/skills/_shared/scripts/state-get.mjs +215 -0
- package/project-templates/threejs/skills/_shared/scripts/state-handoff.mjs +120 -0
- package/project-templates/threejs/skills/_shared/scripts/state-set.mjs +113 -0
- package/project-templates/threejs/skills/_shared/scripts/state-store.mjs +893 -0
- package/project-templates/threejs/skills/_shared/scripts/sync-template-skills.mjs +112 -0
- package/project-templates/threejs/skills/_shared/scripts/verify-asset-code-sync.mjs +265 -0
- package/project-templates/threejs/skills/_shared/scripts/verify-atom-conformance.mjs +181 -0
- package/project-templates/threejs/skills/_shared/scripts/verify-env.mjs +285 -0
- package/project-templates/threejs/skills/_shared/scripts/verify-placeholders.mjs +161 -0
- package/project-templates/threejs/skills/_shared/scripts/workflow-doctor.mjs +348 -0
- package/project-templates/threejs/skills/playable-animate/SKILL.md +52 -0
- package/project-templates/threejs/skills/playable-animate/agents/openai.yaml +4 -0
- package/project-templates/threejs/skills/playable-animate/references/board-refresh.md +30 -0
- package/project-templates/threejs/skills/playable-animate/references/diagnosis-checklist.md +25 -0
- package/project-templates/threejs/skills/playable-animate/references/entrance-sequencing.md +33 -0
- package/project-templates/threejs/skills/playable-animate/references/interaction-timing.md +23 -0
- package/project-templates/threejs/skills/playable-art/SKILL.md +203 -0
- package/project-templates/threejs/skills/playable-art/agents/openai.yaml +4 -0
- package/project-templates/threejs/skills/playable-art/references/alpha-postprocess.md +46 -0
- package/project-templates/threejs/skills/playable-art/references/cta-art-spec.md +59 -0
- package/project-templates/threejs/skills/playable-art/references/layout-proportions.md +30 -0
- package/project-templates/threejs/skills/playable-art/references/prompt-patterns.md +83 -0
- package/project-templates/threejs/skills/playable-art/references/reference-comparison.md +30 -0
- package/project-templates/threejs/skills/playable-art/references/sheet-import-v2.md +91 -0
- package/project-templates/threejs/skills/playable-art/scripts/build-atlas.py +332 -0
- package/project-templates/threejs/skills/playable-art/scripts/chroma-key.py +50 -0
- package/project-templates/threejs/skills/playable-art/scripts/extract-alpha-split.py +65 -0
- package/project-templates/threejs/skills/playable-art/scripts/extract-dual-bg-alpha.py +118 -0
- package/project-templates/threejs/skills/playable-art/scripts/import-gpt-art-sheets-v2.py +403 -0
- package/project-templates/threejs/skills/playable-art/scripts/import-gpt-art-sheets.py +280 -0
- package/project-templates/threejs/skills/playable-art/scripts/import-gpt-tile-sheet.py +114 -0
- package/project-templates/threejs/skills/playable-art/scripts/import_gpt_art_pipeline.py +321 -0
- package/project-templates/threejs/skills/playable-art/scripts/import_gpt_art_sheets_v2_test.py +126 -0
- package/project-templates/threejs/skills/playable-art/scripts/placeholder_common.py +98 -0
- package/project-templates/threejs/skills/playable-art/scripts/remove-bg.py +91 -0
- package/project-templates/threejs/skills/playable-art/scripts/review-processed-assets.py +468 -0
- package/project-templates/threejs/skills/playable-art/scripts/review_processed_assets_test.py +116 -0
- package/project-templates/threejs/skills/playable-art/scripts/verify-alpha-clean.py +105 -0
- package/project-templates/threejs/skills/playable-debug/SKILL.md +116 -0
- package/project-templates/threejs/skills/playable-debug/agents/openai.yaml +4 -0
- package/project-templates/threejs/skills/playable-debug/references/debug-config.md +40 -0
- package/project-templates/threejs/skills/playable-focus/SKILL.md +148 -0
- package/project-templates/threejs/skills/playable-focus/scripts/bootstrap-playground.mjs +84 -0
- package/project-templates/threejs/skills/playable-focus/scripts/extract-focus-frames.mjs +87 -0
- package/project-templates/threejs/skills/playable-focus/scripts/generate-focus-reports.mjs +121 -0
- package/project-templates/threejs/skills/playable-focus/scripts/playground.mjs +390 -0
- package/project-templates/threejs/skills/playable-focus/templates/focus-lab/frame.html +39 -0
- package/project-templates/threejs/skills/playable-focus/templates/focus-lab/harness/clean-stage.js +114 -0
- package/project-templates/threejs/skills/playable-focus/templates/focus-lab/harness/frame-lab-scene.js +94 -0
- package/project-templates/threejs/skills/playable-focus/templates/focus-lab/harness/particle-lab-scene.js +224 -0
- package/project-templates/threejs/skills/playable-focus/templates/focus-lab/model.html +16 -0
- package/project-templates/threejs/skills/playable-focus/templates/focus-lab/particle.html +38 -0
- package/project-templates/threejs/skills/playable-focus/templates/focus-lab/shatter.html +47 -0
- package/project-templates/threejs/skills/playable-fx-decompose/SKILL.md +212 -0
- package/project-templates/threejs/skills/playable-fx-decompose/examples.md +89 -0
- package/project-templates/threejs/skills/playable-fx-decompose/reference.md +201 -0
- package/project-templates/threejs/skills/playable-fx-decompose/requirements.txt +2 -0
- package/project-templates/threejs/skills/playable-fx-decompose/scripts/build-blank-tile-crack.py +192 -0
- package/project-templates/threejs/skills/playable-fx-decompose/scripts/fix-shard-debris-frames.py +60 -0
- package/project-templates/threejs/skills/playable-fx-decompose/scripts/generate-shard-debris.py +276 -0
- package/project-templates/threejs/skills/playable-fx-peak/SKILL.md +237 -0
- package/project-templates/threejs/skills/playable-fx-peak/requirements.txt +2 -0
- package/project-templates/threejs/skills/playable-fx-peak/scripts/fix-frame-edges.py +70 -0
- package/project-templates/threejs/skills/playable-fx-peak/scripts/repack-frame-sequence.py +526 -0
- package/project-templates/threejs/skills/playable-fx-peak/scripts/validate-frame-anchors.py +130 -0
- package/project-templates/threejs/skills/playable-placeholder/SKILL.md +239 -0
- package/project-templates/threejs/skills/playable-record/SKILL.md +166 -0
- package/project-templates/threejs/skills/playable-record/scripts/lib/build-artifact.mjs +92 -0
- package/project-templates/threejs/skills/playable-record/scripts/lib/dev-server.mjs +104 -0
- package/project-templates/threejs/skills/playable-record/scripts/lib/record-audio-bridge.js +141 -0
- package/project-templates/threejs/skills/playable-record/scripts/lib/slice-structure-verify.mjs +199 -0
- package/project-templates/threejs/skills/playable-record/scripts/record-playable.mjs +583 -0
- package/project-templates/threejs/skills/playable-record/scripts/verify-build.mjs +185 -0
- package/project-templates/threejs/skills/playable-record/scripts/verify-contract.mjs +261 -0
- package/project-templates/threejs/skills/playable-record/scripts/verify-firstwin.mjs +398 -0
- package/project-templates/threejs/skills/playable-record/scripts/verify-fusion.mjs +320 -0
- package/project-templates/threejs/skills/playable-record/scripts/verify-lifecycle.mjs +78 -0
- package/project-templates/threejs/skills/playable-record/scripts/verify-slice-artist.mjs +53 -0
- package/project-templates/threejs/skills/playable-record/scripts/verify-slice-ta.mjs +53 -0
- package/project-templates/threejs/skills/playable-record/scripts/verify-slice.mjs +142 -0
- package/project-templates/threejs/skills/playable-record/scripts/verify-visual-ring.mjs +250 -0
- package/project-templates/threejs/skills/playable-record/scripts/verify-visual-ring1.mjs +190 -0
- package/project-templates/threejs/skills/playable-record/scripts/verify-vlm-video.mjs +227 -0
- package/project-templates/threejs/skills/playable-validate/SKILL.md +260 -0
- package/project-templates/threejs/skills/playable-validate/references/checklist-detail.md +36 -0
- package/project-templates/threejs/skills/playable-validate/references/single-html-bundle.md +76 -0
- package/project-templates/threejs/skills/playable-validate/validation-rules.md +200 -0
- package/project-templates/threejs/skills/playable-verify-ui/SKILL.md +295 -0
- package/project-templates/threejs/skills/playable-verify-ui/examples/asset-manifest.example.json +36 -0
- package/project-templates/threejs/skills/playable-verify-ui/examples/mahjong-match.profile.yaml +334 -0
- package/project-templates/threejs/skills/playable-verify-ui/profiles/template.profile.yaml +84 -0
- package/project-templates/threejs/skills/playable-verify-ui/reference.md +165 -0
- package/project-templates/threejs/skills/playable-verify-ui/references/phaser-patterns.md +67 -0
- package/project-templates/threejs/skills/playable-verify-ui/references/scaling-decision-tree.md +51 -0
- package/project-templates/threejs/skills/playable-verify-ui/requirements.txt +7 -0
- package/project-templates/threejs/skills/playable-verify-ui/schema/asset-manifest.schema.json +68 -0
- package/project-templates/threejs/skills/playable-verify-ui/schema/playable-ui-profile.schema.json +171 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/asset_manifest.py +231 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/__init__.py +1 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/config_expr.js +218 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/node_utils.js +51 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/profile_loader.py +59 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/report.py +106 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/lib/runtime_contract.js +116 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/measure_frame_content.py +77 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/run_all.py +265 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_asset_sizes.py +77 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_assets_present.py +62 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_atlas_budget.py +84 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_atlas_frames.py +79 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_bg_clean.py +365 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_doc_asset_sync.py +90 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_fetch_antipatterns.py +59 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_game_config_load.js +54 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_hardcoded_layout.js +64 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_layout_regions.js +110 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_profile_schema.py +37 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_ring1_visual.py +211 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_runtime_contract.js +58 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_script_load_order.js +73 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_slice_plan.py +238 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_slice_plan_test.py +125 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_text_overlap.py +333 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_tile_consistency.py +323 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_vision_evidence.py +894 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_vision_evidence_test.py +122 -0
- package/project-templates/threejs/skills/playable-verify-ui/scripts/verify_visual.py +422 -0
- package/project-templates/threejs/ta-workspace/scripts/.gitkeep +0 -0
- package/project-templates/threejs/templates/artist-log.template.md +182 -0
- package/project-templates/threejs/templates/atom-tree.template.json +133 -0
- package/project-templates/threejs/templates/design-brief.template.md +92 -0
- package/project-templates/threejs/templates/design-lens-checklist.reference.md +117 -0
- package/project-templates/threejs/templates/design-methodology.md +99 -0
- package/project-templates/threejs/templates/design.template.md +50 -0
- package/project-templates/threejs/templates/developer-log.template.md +258 -0
- package/project-templates/threejs/templates/five-axis-framework.md +194 -0
- package/project-templates/threejs/templates/gen-placeholder-audio.template.mjs +63 -0
- package/project-templates/threejs/templates/gen-placeholders.template.mjs +81 -0
- package/project-templates/threejs/templates/intent-clarifications.template.md +58 -0
- package/project-templates/threejs/templates/layout-spec.template.md +198 -0
- package/project-templates/threejs/templates/plan.template.md +80 -0
- package/project-templates/threejs/templates/project-state.template.md +136 -0
- package/project-templates/threejs/templates/review-report.template.md +275 -0
- package/project-templates/threejs/templates/style-exploration.template.md +93 -0
- package/project-templates/threejs/templates/ta-log.template.md +394 -0
- package/project-templates/threejs/tsconfig.json +20 -0
- package/project-templates/threejs/vite.config.ts +27 -0
- package/dist/atom-plan/validate-atom-plan.js +0 -298
- package/project-template/.claude/agents/designer.md +0 -124
- package/project-template/.claude/agents/pm.md +0 -166
- package/project-template/.claude/agents/refs/designer-style-exploration-flow.md +0 -67
- package/project-template/.claude/agents/refs/pm-workflow-detail.md +0 -567
- package/project-template/.claude/hooks/validate-atom-plan.mjs +0 -224
- package/project-template/.claude/skills/playcraft-workflow/SKILL.md +0 -485
- package/project-template/docs/team/atom-plan-format.md +0 -173
- package/project-template/templates/atom-plan.template.json +0 -44
- package/project-template/templates/atom-plan.template.md +0 -108
- /package/dist/{atom-plan → asr}/validate-asr-coverage.js +0 -0
- /package/{project-template → engine-packs/phaser}/game/config/.gitkeep +0 -0
- /package/{project-template → engine-packs/phaser}/game/gameplay/.gitkeep +0 -0
- /package/{project-template → engine-packs/phaser}/game/scenes/.gitkeep +0 -0
- /package/project-template/.claude/agents/refs/{designer-art-style-catalog.md → artist-art-style-catalog.md} +0 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Storyboard Generation Guide — MC 5-Panel 生产流程
|
|
2
|
+
|
|
3
|
+
> **用途**:Orchestrator 在 **ring 3 `loop: clarify`** spawn storyboard subagent 时注入的执行指南。Subagent 按本文件流程,通过 Skill tool 加载具体规范,完成 Master Composite 生产。
|
|
4
|
+
>
|
|
5
|
+
> **产出终点**:≥2 套 MC 选项 + `style-exploration.md` § Master Composite 写入 + `artist-log.md` § Image Production Preflight 填写完毕。
|
|
6
|
+
|
|
7
|
+
## 输入(由 Orchestrator 提供或 subagent 自行读取)
|
|
8
|
+
|
|
9
|
+
| 文件 | 关注内容 |
|
|
10
|
+
| ---------------------- | ---------------------------------------------------------------------- |
|
|
11
|
+
| `docs/design-brief.md` | 游戏类型、核心玩法、目标受众、Hook 策略、Style Direction、元素类型 |
|
|
12
|
+
| `docs/DESIGN.md` | 玩家体验契约、Experience Flow、元素种类 |
|
|
13
|
+
| `docs/atom-tree.json` | `meta.selectedAtoms` 概览(了解哪些元素需要出现在 Panel 1)— if exists |
|
|
14
|
+
|
|
15
|
+
> **Note**: `layout-spec.md` does not exist yet at ring 3 MC generation. Element types and style direction come from `design-brief.md` and `DESIGN.md`.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Step 1 — Image Production Preflight
|
|
20
|
+
|
|
21
|
+
**目标**:在生成任何图片前,系统性读取相关 Skills 并记录决策。
|
|
22
|
+
|
|
23
|
+
**操作**:
|
|
24
|
+
|
|
25
|
+
1. 使用 Skill tool 依次加载以下 Skills,每个读完后在 `logs/artist-log.md` § **Image Production Preflight** 标记 ✓ 并写一行决策摘要:
|
|
26
|
+
|
|
27
|
+
| # | Skill | 重点阅读段落 | 决策内容 |
|
|
28
|
+
| --- | ---------------------------- | --------------------------------------- | ------------------------------------------ |
|
|
29
|
+
| 1 | `playcraft-storyboard` | §0 尺寸原则、§1 五格内容、§3 模型白名单 | 布局选择(横排/网格)、分辨率档位(2K/4K) |
|
|
30
|
+
| 2 | `playcraft-image-generation` | §3 模型选择决策树、§3.1 背景色幕策略 | 为 MC 选定模型(仅白名单内) |
|
|
31
|
+
| 3 | `playcraft-art-style-guide` | 9 风格决策树 | 为方案 A/B 各选定风格方向关键词 |
|
|
32
|
+
| 4 | `playcraft-ad-psychology` | Hook 类型 + 面板心理学映射 | Panel 2-5 的心理学策略选择 |
|
|
33
|
+
|
|
34
|
+
2. 在 `artist-log.md` 中确认:
|
|
35
|
+
- 每个 Skill 行 ✓ + 决策摘要
|
|
36
|
+
- 从 `docs/design-brief.md` / `docs/DESIGN.md` 统计的元素类型列表
|
|
37
|
+
|
|
38
|
+
**禁止**:未完成 Preflight 就开始生成 MC。
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Step 2 — 生成 Master Composite(≥2 方案)
|
|
43
|
+
|
|
44
|
+
**目标**:产出至少 2 套不同风格方向的 5-panel MC,供用户在 **ring 3 Ring Gate** 选择。
|
|
45
|
+
|
|
46
|
+
**执行规范**(从 Skill 获得,此处仅为流程提示):
|
|
47
|
+
|
|
48
|
+
1. **Prompt 构造**:
|
|
49
|
+
- 按 `playcraft-storyboard` §2 Prompt 公式结构
|
|
50
|
+
- Panel 1(concept panel):**必须包含 design-brief / DESIGN.md 中定义的所有 element type**
|
|
51
|
+
- Panels 2-5:根据 Step 1 选定的 Hook 心理学策略设计内容
|
|
52
|
+
- 游戏类型对应的 prompt 配方参考:`.claude/agents/refs/artist-master-composite-recipes.md`
|
|
53
|
+
|
|
54
|
+
2. **生成参数**:
|
|
55
|
+
- 模型:**仅** `playcraft-storyboard` §3 白名单内(`mulerouter/gpt-image-2` 或 `mulerouter/nano-banana-2`)
|
|
56
|
+
- 尺寸:`--aspect-ratio 45:16 --width 3600 --height 1280`(2K)或 `--width 4096 --height 1455`(4K)
|
|
57
|
+
- 多方案差异来自 **prompt / 配色 / 构图 / 风格关键词**,不是换弱模型
|
|
58
|
+
|
|
59
|
+
3. **生成后验收**(每张必做):
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
playcraft image info --input assets/images/storyboard/master_composite_option_[X].png
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
- 总宽高比 width/height ≈ **2.81**(45:16)
|
|
66
|
+
- 单格推算 (width÷5) : height ≈ **9:16**(0.5625)
|
|
67
|
+
- 不合格 → **必须重生成**
|
|
68
|
+
|
|
69
|
+
4. **输出命名**:
|
|
70
|
+
```
|
|
71
|
+
assets/images/storyboard/master_composite_option_A.png
|
|
72
|
+
assets/images/storyboard/master_composite_option_B.png
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Step 3 — 写入 style-exploration.md + 完成
|
|
78
|
+
|
|
79
|
+
**目标**:将 MC 成果写入项目文档,为 ring 3 Ring Gate 准备材料。
|
|
80
|
+
|
|
81
|
+
1. 在 `docs/style-exploration.md` 的 **Master Composite** 部分写入:
|
|
82
|
+
- 每套方案的图片路径
|
|
83
|
+
- 风格关键词
|
|
84
|
+
- 体验流文字说明(5 panels 的叙事逻辑)
|
|
85
|
+
- **此时不写 ASR 路径**(ASR 是后续 Artist 的工作)
|
|
86
|
+
|
|
87
|
+
2. 确认所有 MC 文件已生成 + 验收通过。
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 完成条件
|
|
92
|
+
|
|
93
|
+
| # | 检查项 | 标准 |
|
|
94
|
+
| --- | -------------------- | ------------------------------------------------------------ |
|
|
95
|
+
| 1 | Preflight | `artist-log.md` § Image Production Preflight 4 行 Skill 均 ✓ |
|
|
96
|
+
| 2 | MC 数量 | ≥2 方案(option_A + option_B 至少) |
|
|
97
|
+
| 3 | MC 比例 | 每张 `playcraft image info` 验证通过(≈2.81) |
|
|
98
|
+
| 4 | Panel 1 | 包含 design-brief / DESIGN.md 所有 element type(目视) |
|
|
99
|
+
| 5 | style-exploration.md | MC 部分已写入路径 + 风格 + 体验流 |
|
|
100
|
+
| 6 | 模型合规 | 仅使用白名单模型(带 `mulerouter/` 前缀) |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 注意事项
|
|
105
|
+
|
|
106
|
+
- **不做 ASR** — 那是 Artist 在 ring 3 Ring Gate(MC 选定)后的工作
|
|
107
|
+
- **不做音频** — 那是 Artist Phase 2 的工作
|
|
108
|
+
- **不更新项目状态** — Orchestrator 负责通过 `npm run state:set` 做 handoff 更新
|
|
109
|
+
- **英文 prompt** — 所有图片生成 prompt 使用英文
|
|
110
|
+
- **JSON sidecar** — 生成后检查自动产生的 `.json` 文件,确认 aspectRatio/imageSize 正确
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# TA Atlas Deliverable Standard
|
|
2
2
|
|
|
3
|
-
> **When**: `
|
|
4
|
-
> **Contract source**: `layout-spec.md` atlas groups + `assetMapping` (
|
|
3
|
+
> **When**: ring 4 `loop: build` Wave 2 branch in `technical-artist.md` § Runtime.
|
|
4
|
+
> **Contract source**: `layout-spec.md` atlas groups + `assetMapping` (ring 2 layout-spec lock).
|
|
5
5
|
|
|
6
6
|
## Defaults
|
|
7
7
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
## Atlas grouping rules
|
|
17
17
|
|
|
18
|
-
1. Read
|
|
18
|
+
1. Read Game Designer's **atlas grouping table** in `layout-spec.md` (group name → elementIds → `atlasPath`).
|
|
19
19
|
2. **≥2 elements in same group** → TA MUST deliver **one** `.webp` + `.json`; map each element via `frameId` in assetMapping.
|
|
20
20
|
3. **Do not** split one group into scattered files.
|
|
21
21
|
4. **Exceptions** (single file OK): full-screen background, digit strip, MC/ASR reference (non-runtime), animation-only atlases (one animation = one atlas).
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
playcraft image convert --input atlas.png --output assets/images/tiles/tiles_atlas.webp --quality 85
|
|
29
29
|
```
|
|
30
30
|
3. Validate sidecar JSON: frame count = element count in group; grid params in `ta-log.md`.
|
|
31
|
-
4. Audio:
|
|
31
|
+
4. Audio: Artist MP3 → `playcraft audio compress/trim/loop/fade` → output **MP3**; verify with `playcraft audio info`.
|
|
32
32
|
|
|
33
33
|
## Transparency requirements
|
|
34
34
|
|
|
@@ -1,34 +1,38 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
readWhen: 'Technical Artist Wave 2 only; read Step 0a first, then continue section by section'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# TA (Technical Artist, 技术美术) Pipeline Cookbook
|
|
2
6
|
|
|
3
|
-
> Read by Technical Artist at **production** Wave 2 entry (**Step 0a → 0 → 1 → 2** in order). **Prerequisite:** Production Pipeline Wave 1 (
|
|
7
|
+
> Read by Technical Artist at **production** Wave 2 entry (**Step 0a → 0 → 1 → 2** in order). **Prerequisite:** Production Pipeline Wave 1 (Artist Ph.2) = `done` — orchestrator invokes TA only after Artist wave completes.
|
|
4
8
|
|
|
5
9
|
## Step 0a — Upstream Intake (mandatory, before Skill Discovery)
|
|
6
10
|
|
|
7
|
-
> **Purpose:** Understand what
|
|
11
|
+
> **Purpose:** Understand what Game Designer locked, what Artist delivered, and what Wave 1 added — without re-reading everything in four docs (Game Designer/Artist keep them concise; narrative lives in style-exploration + artist-log).
|
|
8
12
|
|
|
9
13
|
Read each file (Read tool or shell), then fill **`logs/ta-log.md` § Upstream Intake** before any generation.
|
|
10
14
|
|
|
11
15
|
```bash
|
|
12
|
-
|
|
16
|
+
npm run state:get -- --json # current ring, gate route, Pipeline waves, spec-gap
|
|
13
17
|
cat docs/design-brief.md # experience flow, Style Direction, gameplay — prompt + QA context
|
|
14
18
|
cat docs/layout-spec.md # assetMapping, atlas groups, dimensions (contract)
|
|
15
|
-
cat docs/atom-
|
|
16
|
-
cat docs/atom-
|
|
19
|
+
cat docs/atom-tree.json # selectedAtoms + mediaGroups only; no execution status
|
|
20
|
+
cat docs/atom-tree.md # reading guide + mediaGroups decisions
|
|
17
21
|
cat docs/style-exploration.md
|
|
18
|
-
cat logs/
|
|
22
|
+
cat logs/artist-log.md
|
|
19
23
|
ls assets/images/reference/ # MC + ASR paths
|
|
20
|
-
ls assets/audio/ #
|
|
24
|
+
ls assets/audio/ # Artist Ph.2 raw audio (if present)
|
|
21
25
|
```
|
|
22
26
|
|
|
23
|
-
| Doc | You need from it (one line in ta-log)
|
|
24
|
-
| ------------------- |
|
|
25
|
-
| `project-state` | Current wave, blockers, `selectedMcOption`
|
|
26
|
-
| `design-brief` | Hook→EndCard beats + Style Direction for completions
|
|
27
|
-
| `layout-spec` | Every path you must fill + atlas groups
|
|
28
|
-
| `atom-
|
|
29
|
-
| `atom-
|
|
30
|
-
| `style-exploration` | Confirmed MC path + per-panel visual intent
|
|
31
|
-
| `
|
|
27
|
+
| Doc | You need from it (one line in ta-log) |
|
|
28
|
+
| ------------------- | ----------------------------------------------------------- |
|
|
29
|
+
| `project-state` | Current wave, blockers, `selectedMcOption` |
|
|
30
|
+
| `design-brief` | Hook→EndCard beats + Style Direction for completions |
|
|
31
|
+
| `layout-spec` | Every path you must fill + atlas groups |
|
|
32
|
+
| `atom-tree.json` | TA atom list + dependencies |
|
|
33
|
+
| `atom-tree.md` | Acceptance Criteria + reading guide + mediaGroups decisions |
|
|
34
|
+
| `style-exploration` | Confirmed MC path + per-panel visual intent |
|
|
35
|
+
| `artist-log` | Handoff Pack, Style Intent Notes, ASR inventory |
|
|
32
36
|
|
|
33
37
|
**MUST NOT** start Step 0 Skill Discovery or Step 1 gap table until Upstream Intake rows are ticked.
|
|
34
38
|
|
|
@@ -36,11 +40,11 @@ ls assets/audio/ # Designer Ph.2 raw audio (if present)
|
|
|
36
40
|
|
|
37
41
|
## Step 0 Pre: mediaGroups Asset Reuse (mandatory, before any generation)
|
|
38
42
|
|
|
39
|
-
> **Purpose:** `atom-
|
|
43
|
+
> **Purpose:** `atom-tree.json` → `skillsMatch.mediaGroups` contains pre-matched reusable assets from the skills library. These assets are selected by temporary atom-selection / ref-flow, not Game Designer. **TA MUST check and link available media assets before generating anything from scratch.**
|
|
40
44
|
|
|
41
45
|
```bash
|
|
42
|
-
# 1. Read mediaGroups from atom-
|
|
43
|
-
cat docs/atom-
|
|
46
|
+
# 1. Read mediaGroups from atom-tree.json
|
|
47
|
+
cat docs/atom-tree.json | jq '.meta.skillsMatch.mediaGroups'
|
|
44
48
|
```
|
|
45
49
|
|
|
46
50
|
For each mediaGroup entry:
|
|
@@ -56,11 +60,7 @@ cp $(playcraft skills read <mediaGroup_atomId> --path) <assetMapping_path>
|
|
|
56
60
|
```
|
|
57
61
|
|
|
58
62
|
3. **Post-process the linked asset** (resize, convert, transparency) — linked assets still need format compliance
|
|
59
|
-
4. **Update
|
|
60
|
-
|
|
61
|
-
```json
|
|
62
|
-
{ "atomId": "<id>", "status": "done", "actualOutput": "<assetMapping_path>" }
|
|
63
|
-
```
|
|
63
|
+
4. **Update production handoff** immediately: record the linked output path in `logs/ta-log.md` and `handoffContext` for Developer. Do not write execution status or output paths into `atom-tree.json`.
|
|
64
64
|
|
|
65
65
|
5. **If NOT matched or quality insufficient** — proceed to Step 0 Skill Discovery + Step 1 generation as normal; document reason in `dagRevisions`:
|
|
66
66
|
|
|
@@ -76,7 +76,7 @@ cp $(playcraft skills read <mediaGroup_atomId> --path) <assetMapping_path>
|
|
|
76
76
|
|
|
77
77
|
---
|
|
78
78
|
|
|
79
|
-
## Step 0 (Skill Discovery)
|
|
79
|
+
## Step 0 (Skill Discovery)
|
|
80
80
|
|
|
81
81
|
Before executing any atom, run two rounds of Skill Discovery:
|
|
82
82
|
|
|
@@ -100,10 +100,10 @@ playcraft skills list --category validator --json
|
|
|
100
100
|
|
|
101
101
|
### Part B — Atom Skill Recipe Read(生成参数提取)
|
|
102
102
|
|
|
103
|
-
For every atom assigned to TA with a non-empty `skillRef` in `atom-
|
|
103
|
+
For every atom assigned to TA with a non-empty `skillRef` in `atom-tree.json` `meta.selectedAtoms`, read its generation recipe:
|
|
104
104
|
|
|
105
105
|
```bash
|
|
106
|
-
# Read generation recipe from
|
|
106
|
+
# Read generation recipe from Game Designer-assigned skillRef
|
|
107
107
|
# Replace <skillRef> with the atom's skillRef value (e.g., jewel_tile.aiimage)
|
|
108
108
|
playcraft skills scaffold <skillRef> --dry-run
|
|
109
109
|
```
|
|
@@ -121,11 +121,11 @@ playcraft skills scaffold jewel_tile.aiimage --dry-run
|
|
|
121
121
|
# model: gpt-image-2
|
|
122
122
|
# variants: blue sapphire / red ruby / green emerald / yellow topaz
|
|
123
123
|
|
|
124
|
-
# Step 2: Generate using recipe prompt +
|
|
124
|
+
# Step 2: Generate using recipe prompt + Artist reference for style consistency
|
|
125
125
|
playcraft tools generate-image \
|
|
126
126
|
--prompt "isometric jewel tile, red ruby, faceted crystal, soft glow, game UI style" \
|
|
127
127
|
--reference-image assets/images/storyboard/master_composite_option_<selectedMcOption>.png \ # style anchor
|
|
128
|
-
--reference-image assets/images/tiles/tile_01.png \ #
|
|
128
|
+
--reference-image assets/images/tiles/tile_01.png \ # Artist's approved sample
|
|
129
129
|
--aspect-ratio 1:1 \
|
|
130
130
|
--image-model gpt-image-2 \ # recipe-recommended model
|
|
131
131
|
--output assets/images/tiles/tile_02.png
|
|
@@ -133,24 +133,18 @@ playcraft tools generate-image \
|
|
|
133
133
|
|
|
134
134
|
**Key principle**: The atom Skill provides the **semantic description** (what the element is); `--reference-image` enforces **visual style** (how it matches this project's look). Both are necessary.
|
|
135
135
|
|
|
136
|
-
If `skillRef` is `—` or empty for an atom, skip Part B for that atom and rely on
|
|
136
|
+
If `skillRef` is `—` or empty for an atom, skip Part B for that atom and rely on Artist's Style Intent Notes alone.
|
|
137
137
|
|
|
138
138
|
---
|
|
139
139
|
|
|
140
|
-
###
|
|
140
|
+
### Optional: append concise findings into `docs/atom-tree.md` under `## Execution Context`
|
|
141
141
|
|
|
142
142
|
```markdown
|
|
143
143
|
### {{atom_id}} — {{slot_name}}
|
|
144
144
|
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
|
|
148
|
-
- aspectRatio: 1:1
|
|
149
|
-
- Recommended model: gpt-image-2
|
|
150
|
-
- Variant directions: blue / red / green / yellow
|
|
151
|
-
- **Matched pipeline Skills**: `playcraft-sprite-sheet` — sprite frame merging workflow
|
|
152
|
-
- **Pipeline decision**: "generate 5 remaining tile colors using recipe prompt + master*composite_option*[X] / ASR crop reference"
|
|
153
|
-
- **Candidate new Skill**: `mahjong_tile_set.aiimage` — full 34-tile batch production
|
|
145
|
+
- Production approach: derive from Artist sample using reference-image
|
|
146
|
+
- Watch Out: preserve recipe semantics, but let project style references dominate the final look
|
|
147
|
+
- Notes: generated remaining tile colors from recipe prompt + MC / ASR reference
|
|
154
148
|
```
|
|
155
149
|
|
|
156
150
|
---
|
|
@@ -208,8 +202,8 @@ cat .claude/skills/playcraft-sprite-generation/SKILL.md
|
|
|
208
202
|
# Read the full expected asset list from layout-spec
|
|
209
203
|
cat docs/layout-spec.md # assetMapping defines EVERY file that must exist
|
|
210
204
|
|
|
211
|
-
# Check what
|
|
212
|
-
cat logs/
|
|
205
|
+
# Check what Artist has already delivered
|
|
206
|
+
cat logs/artist-log.md
|
|
213
207
|
ls assets/images/tiles/
|
|
214
208
|
ls assets/images/bg/
|
|
215
209
|
ls assets/images/ui/
|
|
@@ -225,7 +219,7 @@ cat docs/style-exploration.md # find confirmed option path
|
|
|
225
219
|
# e.g., assets/images/storyboard/master_composite_option_<selectedMcOption>.png
|
|
226
220
|
|
|
227
221
|
# Also use any approved samples as secondary references
|
|
228
|
-
ls assets/images/tiles/ #
|
|
222
|
+
ls assets/images/tiles/ # Artist's samples
|
|
229
223
|
```
|
|
230
224
|
|
|
231
225
|
### Step 3: Complete Missing Elements
|
|
@@ -235,17 +229,17 @@ ls assets/images/tiles/ # Designer's samples
|
|
|
235
229
|
**Prompt 来源优先级**(写 prompt 前先确认):
|
|
236
230
|
|
|
237
231
|
1. **atom Skill recipe**(Step 0 Part B 已提取)— 有 skillRef → 用 recipe 的 prompt 模板,替换变量
|
|
238
|
-
2. **
|
|
232
|
+
2. **Artist Style Intent Notes**(`logs/artist-log.md`)— 无 skillRef 或 recipe 不够具体 → 从 Style Intent Notes 提炼
|
|
239
233
|
3. **design-brief StyleDirection** — 兜底,最通用
|
|
240
234
|
|
|
241
235
|
**少量元素(逐个生成)**:
|
|
242
236
|
|
|
243
237
|
```bash
|
|
244
|
-
# prompt = atom Skill recipe
|
|
238
|
+
# prompt = atom Skill recipe 模板(来自 atom-tree.md `Per-Skill Reading Notes`)+ Artist style notes
|
|
245
239
|
playcraft tools generate-image \
|
|
246
240
|
--prompt "<recipe base prompt, e.g.: isometric jewel tile, red ruby, faceted crystal, soft glow, game UI style>" \
|
|
247
241
|
--reference-image assets/images/storyboard/master_composite_option_<selectedMcOption>.png \ # 风格锚定
|
|
248
|
-
--reference-image assets/images/tiles/<
|
|
242
|
+
--reference-image assets/images/tiles/<artist_sample>.png \ # Artist 样本(若有)
|
|
249
243
|
--output assets/images/tiles/<new_element>.png \
|
|
250
244
|
--aspect-ratio 1:1 \
|
|
251
245
|
--image-model <recipe recommended model, e.g.: gpt-image-2>
|
|
@@ -255,24 +249,23 @@ playcraft tools generate-image \
|
|
|
255
249
|
|
|
256
250
|
```javascript
|
|
257
251
|
// Write this to ta-workspace/scripts/gen-elements.mjs, then run: node ta-workspace/scripts/gen-elements.mjs
|
|
258
|
-
import { execSync } from
|
|
259
|
-
import { existsSync, mkdirSync } from
|
|
252
|
+
import { execSync } from 'child_process';
|
|
253
|
+
import { existsSync, mkdirSync } from 'fs';
|
|
260
254
|
|
|
261
255
|
// MODEL: from atom Skill recipe (Step 0 Part B) or fallback to gemini-flash
|
|
262
|
-
const MODEL =
|
|
263
|
-
const REF =
|
|
264
|
-
|
|
265
|
-
const
|
|
266
|
-
const OUT = "assets/images/tiles";
|
|
256
|
+
const MODEL = 'google/gemini-3.1-flash-image-preview';
|
|
257
|
+
const REF = 'assets/images/storyboard/master_composite_option_<selectedMcOption>.png';
|
|
258
|
+
const REF2 = 'assets/images/tiles/<artist_sample>.png'; // Artist approved sample (add if available)
|
|
259
|
+
const OUT = 'assets/images/tiles';
|
|
267
260
|
|
|
268
|
-
// STYLE: atom Skill recipe base prompt (from
|
|
261
|
+
// STYLE: atom Skill recipe base prompt (from atom-tree.md `Per-Skill Reading Notes`)
|
|
269
262
|
// e.g., "isometric jewel tile, {color} gemstone, faceted crystal surface, soft glow, game UI style"
|
|
270
263
|
// Replace {color} / {variant} per element
|
|
271
|
-
const BASE_PROMPT =
|
|
264
|
+
const BASE_PROMPT = '<atom Skill recipe base prompt from atom-tree.md Per-Skill Reading Notes>';
|
|
272
265
|
|
|
273
266
|
const ELEMENTS = [
|
|
274
|
-
{ name:
|
|
275
|
-
{ name:
|
|
267
|
+
{ name: 'element_01', variant: '<specific variant, e.g.: blue sapphire>' },
|
|
268
|
+
{ name: 'element_02', variant: '<specific variant, e.g.: red ruby>' },
|
|
276
269
|
// ... all elements to generate, using recipe variant directions
|
|
277
270
|
];
|
|
278
271
|
|
|
@@ -290,21 +283,18 @@ for (const el of ELEMENTS) {
|
|
|
290
283
|
}
|
|
291
284
|
|
|
292
285
|
console.log(`[GEN ] ${el.name}`);
|
|
293
|
-
// prompt = BASE_PROMPT with variant filled in +
|
|
294
|
-
const prompt = BASE_PROMPT.replace(
|
|
295
|
-
"{color}",
|
|
296
|
-
el.variant,
|
|
297
|
-
);
|
|
286
|
+
// prompt = BASE_PROMPT with variant filled in + Artist style anchor via --reference-image
|
|
287
|
+
const prompt = BASE_PROMPT.replace('{variant}', el.variant).replace('{color}', el.variant);
|
|
298
288
|
try {
|
|
299
289
|
execSync(
|
|
300
290
|
`playcraft tools generate-image` +
|
|
301
291
|
` --prompt "${prompt}"` +
|
|
302
292
|
` --output "${outPath}" --aspect-ratio 1:1` +
|
|
303
293
|
` --reference-image "${REF}"` +
|
|
304
|
-
(existsSync(REF2) ? ` --reference-image "${REF2}"` :
|
|
294
|
+
(existsSync(REF2) ? ` --reference-image "${REF2}"` : '') +
|
|
305
295
|
` --image-model "${MODEL}"` +
|
|
306
296
|
` --timeout 120`,
|
|
307
|
-
{ stdio:
|
|
297
|
+
{ stdio: 'inherit' },
|
|
308
298
|
);
|
|
309
299
|
done++;
|
|
310
300
|
} catch (e) {
|
|
@@ -413,7 +403,7 @@ playcraft image overlay \
|
|
|
413
403
|
| 验证失败现象 | 根因 | 回退工具 |
|
|
414
404
|
| -------------------------- | ------------------------------ | -------------------------------------------------------------------------- |
|
|
415
405
|
| 色幕残留少量(边缘毛刺) | tolerance 偏低 | `remove-background --tolerance 40`(+15 递增重试) |
|
|
416
|
-
| 色幕残留明显(大面积色块) | 素材色与色幕撞色 | **spec-gap** →
|
|
406
|
+
| 色幕残留明显(大面积色块) | 素材色与色幕撞色 | **spec-gap** → Game Designer 修改 bgStrategy → 用正确色幕重新生成 |
|
|
417
407
|
| 复杂边缘/不规则形状 | floodfill 无法处理复杂轮廓 | `playcraft image segment --boxes '[[x1,y1,x2,y2]]'`(精确框选,SAM3 分割) |
|
|
418
408
|
| 毛发/半透明/渐变边缘 | floodfill 是硬边缘算法 | `playcraft image remove-background --method ai`(AI 语义去背景) |
|
|
419
409
|
| 去背过度(元素被挖掉) | tolerance 过高或素材含近色区域 | 降低 tolerance 到 15-20 → 仍不行则 `segment --boxes` |
|
|
@@ -455,6 +445,13 @@ playcraft image overlay \
|
|
|
455
445
|
|
|
456
446
|
#### bgStrategy = full-coverage(全屏背景)
|
|
457
447
|
|
|
448
|
+
> **Asset layering contract (Ring 4 — mandatory, test11 B11):**
|
|
449
|
+
>
|
|
450
|
+
> - MC / storyboard panels are **reference only** — never crop an entire gameplay panel (board + HUD + fake buttons) into `assets/images/bg/*`.
|
|
451
|
+
> - Background = **clean plate** (gradient/atmosphere only). Generate separately or extract a **pure background region** without UI chrome.
|
|
452
|
+
> - Runtime z-order: `background < tiles < HUD < overlay`. Developer draws interactive HUD; background must not duplicate it.
|
|
453
|
+
> - Gate: `npm run verify:bg-clean` must pass before Ring 4 gate.
|
|
454
|
+
|
|
458
455
|
```bash
|
|
459
456
|
playcraft image info --input <bg_asset>.png --json
|
|
460
457
|
# 验证:尺寸精确匹配 layout-spec 要求
|
|
@@ -652,7 +649,7 @@ node ta-workspace/scripts/validate-sprite-sheet.mjs
|
|
|
652
649
|
|
|
653
650
|
### 3D Pipeline
|
|
654
651
|
|
|
655
|
-
For material/texture swap while preserving symbols or 3D flip animations, see
|
|
652
|
+
For material/texture swap while preserving symbols or 3D flip animations, see `.claude/agents/refs/ta-3d-flip-recipe.md`.
|
|
656
653
|
|
|
657
654
|
**Option A: AI 3D Model Generation**
|
|
658
655
|
|
|
@@ -725,48 +722,48 @@ playcraft audio info --input assets/audio/bgm/bgm.mp3
|
|
|
725
722
|
|
|
726
723
|
## TA agent workflow (L1 → L2 detail)
|
|
727
724
|
|
|
728
|
-
> **Moved from `agents/technical-artist.md`** — Spec Quick-Check through Compliance Gate, reference-image matrix, DAG edits. **Atlas/WebP defaults:** see
|
|
725
|
+
> **Moved from `agents/technical-artist.md`** — Spec Quick-Check through Compliance Gate, reference-image matrix, DAG edits. **Atlas/WebP defaults:** see `.claude/agents/refs/ta-atlas-deliverable-standard.md`.
|
|
729
726
|
|
|
730
727
|
### Step 0: Spec Quick-Check (30s)
|
|
731
728
|
|
|
732
729
|
Validate inputs before any work:
|
|
733
730
|
|
|
734
|
-
- Every `assetMapping` entry has clear size/format requirements → if gaps: `spec-gap`
|
|
735
|
-
- `logs/
|
|
731
|
+
- Every `assetMapping` entry has clear size/format requirements → if gaps: set `block_reason=spec-gap` + routed `next_orchestrator_action` via `npm run state:set`
|
|
732
|
+
- `logs/artist-log.md` exists with Composite path + Style Intent Notes → if missing: `blocked`
|
|
736
733
|
|
|
737
734
|
### Step 0b: Extract Representative Samples
|
|
738
735
|
|
|
739
736
|
> **Invoke `playcraft-masking` skill** for segment/remove-background decision tree.
|
|
740
737
|
|
|
741
|
-
|
|
738
|
+
Artist's **ASR sheets** (UI + element state reference) contain **representative states** (2-3 per type), not full sets. Your job:
|
|
742
739
|
|
|
743
740
|
1. From **ASR** (preferred): `crop` each state slot → `resize` to spec → these become your `--reference-image` for Stage A batch generation
|
|
744
741
|
2. From **Master Composite** (fallback): extract elements not covered in ASR
|
|
745
|
-
3. Check `
|
|
742
|
+
3. Check `artist-log.md` § **ASR Coverage Matrix** — note which states are covered vs which need expansion; Sheet grid metadata table at the top has `rows × cols + cell W×H + padding` for pixel-coordinate computation
|
|
746
743
|
4. Background: generate clean bg using composite as `--reference-image`
|
|
747
744
|
5. Text assets: → **invoke `playcraft-text-rendering` skill**
|
|
748
|
-
6. Representative quality insufficient → ICP request to
|
|
745
|
+
6. Representative quality insufficient → ICP request to Artist for supplementary samples
|
|
749
746
|
|
|
750
|
-
**若 ASR crop 后不可抠**(白边/色幕残留/元素截断/格内场景底)→ **`routeTo:
|
|
747
|
+
**若 ASR crop 后不可抠**(白边/色幕残留/元素截断/格内场景底)→ **`routeTo: artist`** 重生成 ASR 对应格;**不要** TA 自行用 AI 重画整张 ASR。
|
|
751
748
|
|
|
752
749
|
**ASR 提取方法(按优先级)**:
|
|
753
750
|
|
|
754
|
-
> ⚠️ **严禁对 ASR 网格布局图使用纯 text prompt 的 segment!** 使用 `
|
|
751
|
+
> ⚠️ **严禁对 ASR 网格布局图使用纯 text prompt 的 segment!** 使用 `artist-log` 中的槽位坐标 + `crop`。
|
|
755
752
|
|
|
756
|
-
**优先路径:直接读 `atom-
|
|
753
|
+
**优先路径:直接读 `atom-tree.json` → `meta.selectedAtoms.asrSlot`(最高优先级)**
|
|
757
754
|
|
|
758
|
-
|
|
755
|
+
Artist 在 Phase 1 完成 ASR 后会把每个 VisualAtom 的网格坐标写到 `atom-tree.json` → `atoms[i].asrSlot: { sheet, row, col }`(详见 [`docs/team/atom-tree-format.md` § `asrSlot`](../../../docs/team/atom-tree-format.md#asrslot-字段可选--visualatom-基线绑定))。TA 直接用这个字段 + `artist-log` § Sheet grid metadata,省去手翻 Coverage Matrix 的步骤:
|
|
759
756
|
|
|
760
757
|
```bash
|
|
761
|
-
# 1) 从 atom-
|
|
762
|
-
cat docs/atom-
|
|
763
|
-
.
|
|
758
|
+
# 1) 从 atom-tree.json 读取所有有 asrSlot 的 VisualAtom
|
|
759
|
+
cat docs/atom-tree.json | jq -r '
|
|
760
|
+
.meta.selectedAtoms
|
|
764
761
|
| select(.asrSlot != null)
|
|
765
762
|
| "\(.atomId)\t\(.asrSlot.sheet)\t\(.asrSlot.row)\t\(.asrSlot.col)"
|
|
766
763
|
'
|
|
767
764
|
# 输出格式: <atomId>\t<sheet>\t<row>\t<col>
|
|
768
765
|
|
|
769
|
-
# 2) 从
|
|
766
|
+
# 2) 从 artist-log.md § ASR Coverage Matrix § Sheet grid metadata 读 cellW / cellH / padding
|
|
770
767
|
# (单独读一次,缓存到 ta-log 备查)
|
|
771
768
|
|
|
772
769
|
# 3) 计算像素坐标并 crop(脚本化 — ta-workspace/scripts/asr-extract.mjs)
|
|
@@ -783,11 +780,11 @@ cat docs/atom-plan.json | jq -r '
|
|
|
783
780
|
|
|
784
781
|
```
|
|
785
782
|
ASR 是已知网格布局?(ui_state_sheet / element_state_sheet / element_state_sheet_*_2,行列分明)
|
|
786
|
-
├─ atom-
|
|
783
|
+
├─ atom-tree.json 有 asrSlot 字段 → 方法 0(推荐): 上面脚本化批量 crop
|
|
787
784
|
│
|
|
788
785
|
├─ 是但 asrSlot 缺失 → 方法 1: crop 直切(手动查 Coverage Matrix R#C#)
|
|
789
786
|
│ 1. playcraft image info --input assets/images/reference/ui_state_sheet_<X>.png → 获取尺寸
|
|
790
|
-
│ 2. 从
|
|
787
|
+
│ 2. 从 artist-log § ASR Coverage Matrix 读取 Sheet grid 元数据 + 目标行列 (R#C#)
|
|
791
788
|
│ pixel coords: x = (C-1) × (cellW + padding) + padding
|
|
792
789
|
│ y = (R-1) × (cellH + padding) + padding
|
|
793
790
|
│ 3. playcraft image crop --input <asr_sheet> --x <x> --y <y> --width <cellW> --height <cellH> --output <out>
|
|
@@ -799,7 +796,7 @@ ASR 是已知网格布局?(ui_state_sheet / element_state_sheet / element_st
|
|
|
799
796
|
└─ 仅 MC 有该类型 → 方法 3: decompose-layers 或 segment --text(最后手段,见 playcraft-masking)
|
|
800
797
|
```
|
|
801
798
|
|
|
802
|
-
> **若
|
|
799
|
+
> **若 Artist 没有填 `asrSlot`** — 不需要重新 invoke Artist,TA 可以手动从 `artist-log § ASR Coverage Matrix § Coverage` 反查 R#C# 并继续。在 ICP 中提示 Game Designer/Artist 下次预填可加速。
|
|
803
800
|
|
|
804
801
|
**常见踩坑**:
|
|
805
802
|
|
|
@@ -812,7 +809,7 @@ ASR 是已知网格布局?(ui_state_sheet / element_state_sheet / element_st
|
|
|
812
809
|
|
|
813
810
|
> **Invoke `playcraft-style-qa` skill** for methodology.
|
|
814
811
|
|
|
815
|
-
Read
|
|
812
|
+
Read artist-log Style Intent Notes → write interpretation table to `ta-log.md` → confidence low = blocked, medium = proceed with caution, high = proceed.
|
|
816
813
|
|
|
817
814
|
### Step 0d: Production Plan (mandatory, before any generation)
|
|
818
815
|
|
|
@@ -856,7 +853,7 @@ assetMapping 路径所在目录?
|
|
|
856
853
|
└─ 其他路径 → 按素材用途判断:叠加在其他图层上 = true,独立全屏 = false
|
|
857
854
|
```
|
|
858
855
|
|
|
859
|
-
**卡牌/棋子等矩形实体例外**:虽然路径在 `tiles/`,但白色牌面是资产本体的一部分,不需要透明。TA 根据 `design-brief` 的 Style Direction + `
|
|
856
|
+
**卡牌/棋子等矩形实体例外**:虽然路径在 `tiles/`,但白色牌面是资产本体的一部分,不需要透明。TA 根据 `design-brief` 的 Style Direction + `artist-log` 的样本判断。
|
|
860
857
|
|
|
861
858
|
#### 2. 从元素色彩推导 bgStrategy(色幕选型)
|
|
862
859
|
|
|
@@ -864,7 +861,7 @@ assetMapping 路径所在目录?
|
|
|
864
861
|
|
|
865
862
|
- `layout-spec.md` 的 Color Palette(elementId → hex color)
|
|
866
863
|
- `design-brief.md` 的 Style Direction(整体色温描述)
|
|
867
|
-
- `
|
|
864
|
+
- `artist-log.md` 的样本(实际视觉参考)
|
|
868
865
|
|
|
869
866
|
**色幕选型矩阵**:
|
|
870
867
|
|
|
@@ -1016,14 +1013,14 @@ done
|
|
|
1016
1013
|
|
|
1017
1014
|
### Step 1: Skill Discovery
|
|
1018
1015
|
|
|
1019
|
-
- Part A: `playcraft skills list/match` → find pipeline Skills →
|
|
1016
|
+
- Part A: `playcraft skills list/match` → find pipeline Skills → optionally append concise notes to `atom-tree.md` `Execution Context`
|
|
1020
1017
|
- Part B: `playcraft skills scaffold <skillRef> --dry-run` for each atom → extract prompt/model params
|
|
1021
1018
|
(See **Step 0** above for bash examples.)
|
|
1022
1019
|
|
|
1023
1020
|
### Pipeline model (E → T → A → B → C → D)
|
|
1024
1021
|
|
|
1025
1022
|
```
|
|
1026
|
-
|
|
1023
|
+
Ring 3 style lock → TA starts
|
|
1027
1024
|
│
|
|
1028
1025
|
├─ 0a: Upstream Intake
|
|
1029
1026
|
├─ 0b: Extract (E) — decompose-layers or segment references from composites
|
|
@@ -1033,32 +1030,32 @@ Gate #2 → TA starts
|
|
|
1033
1030
|
│
|
|
1034
1031
|
├─ T: Transparency-aware generation (Step 1 with correct chroma key per 0e table)
|
|
1035
1032
|
│ │
|
|
1036
|
-
│ ├─ C₁: generate-3d (if referenceSource="
|
|
1033
|
+
│ ├─ C₁: generate-3d (if referenceSource="artist-sample")
|
|
1037
1034
|
│ │
|
|
1038
1035
|
│ ├─ A: Batch Element Generation (sprite sheet per type, chroma key per 0e)
|
|
1039
1036
|
│ │ │
|
|
1040
1037
|
│ │ ├──→ B: animate / sprite-sheet / use-vfx (VFX always blue screen)
|
|
1041
1038
|
│ │ └──→ C₂: apply-texture (if referenceSource="ta-completion")
|
|
1042
1039
|
│ │
|
|
1043
|
-
│ └─ (extraction insufficient → ICP →
|
|
1040
|
+
│ └─ (extraction insufficient → ICP → Artist supplementary)
|
|
1044
1041
|
│
|
|
1045
1042
|
├─ Step 4: Process (remove-bg per chroma → dark-bg verify each asset)
|
|
1046
1043
|
│
|
|
1047
|
-
├─ D: Audio post-processing (independent, waits for
|
|
1044
|
+
├─ D: Audio post-processing (independent, waits for Artist Ph.2 audio)
|
|
1048
1045
|
│
|
|
1049
1046
|
└─ All done → Compliance Gate (incl. Transparency checks)
|
|
1050
1047
|
```
|
|
1051
1048
|
|
|
1052
1049
|
### Pipeline selection (quick)
|
|
1053
1050
|
|
|
1054
|
-
| Situation | Pipeline | Skill/Ref
|
|
1055
|
-
| ---------------------------------- | ------------------------------- |
|
|
1056
|
-
| Multi-element batch (>3 same type) | Sprite sheet one-shot → split | `playcraft-sprite-generation`
|
|
1057
|
-
| Add animation to static element | animate presets → sprite-sheet | `playcraft-vfx-animation`
|
|
1058
|
-
| Add VFX (glow/particle/trail) | use-vfx presets | `playcraft-vfx-animation`
|
|
1059
|
-
| 3D model + texture | generate-3d → apply-texture |
|
|
1060
|
-
| Color/mood shift only | Image processing (tint/overlay) | `playcraft-image-ops`
|
|
1061
|
-
| Background removal | floodfill / AI / SAM3 | `playcraft-masking`
|
|
1051
|
+
| Situation | Pipeline | Skill/Ref |
|
|
1052
|
+
| ---------------------------------- | ------------------------------- | ------------------------------------------ |
|
|
1053
|
+
| Multi-element batch (>3 same type) | Sprite sheet one-shot → split | `playcraft-sprite-generation` |
|
|
1054
|
+
| Add animation to static element | animate presets → sprite-sheet | `playcraft-vfx-animation` |
|
|
1055
|
+
| Add VFX (glow/particle/trail) | use-vfx presets | `playcraft-vfx-animation` |
|
|
1056
|
+
| 3D model + texture | generate-3d → apply-texture | `.claude/agents/refs/ta-3d-flip-recipe.md` |
|
|
1057
|
+
| Color/mood shift only | Image processing (tint/overlay) | `playcraft-image-ops` |
|
|
1058
|
+
| Background removal | floodfill / AI / SAM3 | `playcraft-masking` |
|
|
1062
1059
|
|
|
1063
1060
|
### Stage A: Batch Element Generation
|
|
1064
1061
|
|
|
@@ -1081,14 +1078,14 @@ Triggered per Stage A output that needs animation. Output: sprite sheet with gri
|
|
|
1081
1078
|
|
|
1082
1079
|
### Stage C: 3D Pipeline
|
|
1083
1080
|
|
|
1084
|
-
> **Read
|
|
1081
|
+
> **Read `.claude/agents/refs/ta-3d-flip-recipe.md`** for material reskin and 3D flip workflows.
|
|
1085
1082
|
|
|
1086
|
-
- C₁ (referenceSource="
|
|
1083
|
+
- C₁ (referenceSource="artist-sample"): starts immediately after extraction
|
|
1087
1084
|
- C₂ (referenceSource="ta-completion"): waits for Stage A output
|
|
1088
1085
|
|
|
1089
1086
|
### Stage D: Audio Post-Processing
|
|
1090
1087
|
|
|
1091
|
-
Independent track, waits only for
|
|
1088
|
+
Independent track, waits only for Artist Ph.2 audio delivery:
|
|
1092
1089
|
|
|
1093
1090
|
- `playcraft audio compress/trim/loop/fade` as needed per layout-spec requirements
|
|
1094
1091
|
- Record all processing in `ta-log.md`
|
|
@@ -1124,7 +1121,7 @@ Independent track, waits only for Designer Ph.2 audio delivery:
|
|
|
1124
1121
|
| 背景图四角有白色/褪色 | prompt 未约束 edge-to-edge | prompt 加 "full bleed, edge to edge, no vignette" |
|
|
1125
1122
|
| 文字/数字图底色未去除 | 未分类为"需要透明",直接 resize 交付 | 回查 Transparency Classification → 补做去背景流程 |
|
|
1126
1123
|
|
|
1127
|
-
**After compliance**: Write `logs/ta-log.md` manifest → mark atoms `✅ done` → update
|
|
1124
|
+
**After compliance**: Write `logs/ta-log.md` manifest → mark atoms `✅ done` → update state with `npm run state:set`.
|
|
1128
1125
|
|
|
1129
1126
|
### Reference image rules
|
|
1130
1127
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Technical Artist Legacy Fallback
|
|
2
|
+
|
|
3
|
+
Use this reference only when `dispatchPacket` is null and `sliceState` is empty.
|
|
4
|
+
|
|
5
|
+
This preserves the older production asset path for existing projects. It is not part of slice-axis dispatch.
|
|
6
|
+
|
|
7
|
+
Legacy behavior:
|
|
8
|
+
|
|
9
|
+
- Read `npm run state:get -- --json` and follow the disclosed current action.
|
|
10
|
+
- Complete upstream intake before production asset work.
|
|
11
|
+
- Produce asset readiness, manifests, and compliance evidence requested by the legacy task.
|
|
12
|
+
- Route missing design, Artist, or Developer inputs instead of inventing them.
|
|
13
|
+
|
|
14
|
+
When `sliceState` exists, return to the main Technical Artist role contract.
|