@oh-story/dsh 0.1.9 → 0.1.11
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/README.md +14 -14
- package/lib/client.js +209 -73
- package/lib/client.js.map +3 -3
- package/lib/drama/manifest.json +248 -168
- package/lib/drama/skills/short-drama/SKILL.md +16 -4
- package/lib/drama/skills/short-drama/assets/project-template/short-drama.json +3 -0
- package/lib/drama/skills/short-drama/references/creator-documents.md +3 -0
- package/lib/drama/skills/short-drama/references/knowhow-index.md +15 -0
- package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +14 -0
- package/lib/drama/skills/short-drama/scripts/project_tool.py +131 -0
- package/lib/drama/skills/short-drama-assets/SKILL.md +2 -1
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +2 -0
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +10 -0
- package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +6 -9
- package/lib/drama/skills/short-drama-assets/references/era-anchors.md +37 -0
- package/lib/drama/skills/short-drama-assets/references/stage-contract.md +2 -0
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +28 -0
- package/lib/drama/skills/short-drama-develop/SKILL.md +10 -4
- package/lib/drama/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -1
- package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +8 -0
- package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +80 -13
- package/lib/drama/skills/short-drama-develop/references/episode-design.md +95 -12
- package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +9 -5
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//347/263/273/347/273/237/346/265/201.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//351/200/206/350/242/255.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//351/207/215/347/224/237/347/251/277/350/266/212.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards.md +10 -7
- package/lib/drama/skills/short-drama-develop/references/premise-devices.md +15 -9
- package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +3 -2
- package/lib/drama/skills/short-drama-develop/references/stage-contract.md +14 -7
- package/lib/drama/skills/short-drama-develop/references/story-craft.md +7 -3
- package/lib/drama/skills/short-drama-edit/SKILL.md +65 -44
- package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +49 -13
- package/lib/drama/skills/short-drama-edit/assets/remotion/package.json +4 -2
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Overlay.tsx +31 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Root.tsx +5 -5
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +68 -69
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/font.ts +39 -29
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/rules.mjs +188 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/schema.ts +26 -13
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/Card.tsx +72 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/CornerChip.tsx +39 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/ScreenText.tsx +36 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/SystemPanel.tsx +44 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/TaskPanel.tsx +100 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/chrome.tsx +197 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/tokens.ts +62 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/tsconfig.json +1 -0
- package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +6 -4
- package/lib/drama/skills/short-drama-edit/references/cut-craft.md +26 -67
- package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +31 -56
- package/lib/drama/skills/short-drama-edit/references/generated-footage.md +42 -78
- package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +44 -92
- package/lib/drama/skills/short-drama-edit/references/stage-contract.md +14 -16
- package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1272 -125
- package/lib/drama/skills/short-drama-edit/scripts/selftest.py +113 -9
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +2 -0
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +11 -0
- package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +3 -3
- package/lib/drama/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +2 -2
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +8 -4
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +10 -3
- package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +25 -1
- package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +1 -0
- package/lib/drama/skills/short-drama-produce/SKILL.md +5 -1
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +14 -20
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +8 -26
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
- package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +142 -1
- package/lib/drama/skills/short-drama-review/SKILL.md +4 -5
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +6 -19
- package/lib/drama/skills/short-drama-review/references/review-method.md +6 -1
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +11 -0
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +77 -3
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +24 -35
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +3 -0
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +23 -11
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +1 -1
- package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
- package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +2 -2
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +139 -34
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +5 -3
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +15 -12
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +29 -0
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +4 -5
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +4 -2
- package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +52 -39
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +24 -21
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +9 -23
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +14 -26
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +1 -1
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +2 -3
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +34 -9
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +3 -2
- package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +8 -1
- package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +103 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/motion_timing_check.py +8 -7
- package/lib/drama/skills/short-drama-write/SKILL.md +10 -7
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +1 -1
- package/lib/drama/skills/short-drama-write/references/script-craft.md +56 -3
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +4 -0
- package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +48 -2
- package/lib/index.js +346 -98
- package/lib/index.js.map +4 -4
- package/lib/novel-to-game/README.md +299 -59
- package/lib/novel-to-game/README_ZH.md +299 -56
- package/lib/novel-to-game/VERSION +1 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +3 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +11 -3
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +397 -8
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +0 -31
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +71 -73
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +78 -89
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +37 -14
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +5 -5
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +2 -1
- package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +11 -16
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +11 -11
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +23 -0
- package/lib/novel-to-game/manifest.json +77 -87
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +7 -12
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +27 -106
- package/lib/novel-to-game/skills/game-build/SKILL.md +13 -14
- package/lib/novel-to-game/skills/game-build/references/blender-asset-workflow.md +24 -0
- package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +45 -82
- package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +14 -45
- package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +30 -65
- package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +13 -27
- package/lib/novel-to-game/skills/game-concept/SKILL.md +13 -15
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +28 -75
- package/lib/novel-to-game/skills/game-qa/SKILL.md +6 -7
- package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +9 -5
- package/lib/novel-to-game/skills/game-world-design/SKILL.md +12 -16
- package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +23 -72
- package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +14 -48
- package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +36 -103
- package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +4 -10
- package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +4 -4
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +9 -21
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +5 -4
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +5 -8
- package/lib/oh-story/manifest.json +607 -327
- package/lib/oh-story/roles/chapter-extractor.md +177 -237
- package/lib/oh-story/roles/character-designer.md +1 -2
- package/lib/oh-story/roles/consistency-checker.md +15 -13
- package/lib/oh-story/roles/narrative-writer.md +36 -38
- package/lib/oh-story/roles/story-architect.md +9 -61
- package/lib/oh-story/roles/story-explorer.md +20 -125
- package/lib/oh-story/roles/story-researcher.md +0 -1
- package/lib/oh-story/skills/story/SKILL.md +15 -9
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story/references/author-memory.md +46 -94
- package/lib/oh-story/skills/story/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-cover/SKILL.md +10 -1
- package/lib/oh-story/skills/story-deslop/SKILL.md +59 -73
- package/lib/oh-story/skills/story-deslop/references/agent-calls.md +5 -0
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +12 -11
- package/lib/oh-story/skills/story-deslop/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +46 -94
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +22 -5
- package/lib/oh-story/skills/story-deslop/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-import/SKILL.md +64 -584
- package/lib/oh-story/skills/story-import/references/character-state-reverse.md +1 -1
- package/lib/oh-story/skills/story-import/references/deep-analysis.md +47 -0
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +1 -1
- package/lib/oh-story/skills/story-import/references/import-report.md +64 -0
- package/lib/oh-story/skills/story-import/references/import-special-cases.md +34 -0
- package/lib/oh-story/skills/story-import/references/import-tracking.md +95 -0
- package/lib/oh-story/skills/story-import/references/length-routing.md +1 -1
- package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +79 -0
- package/lib/oh-story/skills/story-import/references/outline-reverse.md +24 -0
- package/lib/oh-story/skills/story-import/references/state-tracking.md +4 -69
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +98 -92
- package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +24 -12
- package/lib/oh-story/skills/story-import/references/tracking-initialization.md +1 -1
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +15 -11
- package/lib/oh-story/skills/story-import/scripts/build_outline_brief.py +332 -0
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +132 -27
- package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +478 -15
- package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +182 -23
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +81 -270
- package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +252 -0
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +3 -3
- package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +19 -0
- package/lib/oh-story/skills/story-long-analyze/references/index-rebuild.md +11 -0
- package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +105 -0
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +138 -64
- package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +84 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +128 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +229 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +480 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +195 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +33 -0
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +55 -128
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +6 -6
- package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +39 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/build_chapter_index.py +466 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +702 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/inspiration_index.py +864 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +1145 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/render_relation_chart.py +425 -0
- package/lib/oh-story/skills/story-long-scan/SKILL.md +45 -194
- package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +19 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +45 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +28 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +35 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +27 -0
- package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +6 -2
- package/lib/oh-story/skills/story-long-write/SKILL.md +49 -81
- package/lib/oh-story/skills/story-long-write/references/agent-calls.md +47 -0
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +12 -11
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +24 -202
- package/lib/oh-story/skills/story-long-write/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +46 -94
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +7 -11
- package/lib/oh-story/skills/story-long-write/references/character-relations.md +49 -1
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +26 -0
- package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +171 -0
- package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +116 -0
- package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +1 -114
- package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +7 -15
- package/lib/oh-story/skills/story-long-write/references/long-format.md +0 -8
- package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/opening-design.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/outline-methods.md +7 -7
- package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +14 -69
- package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/project-files.md +19 -13
- package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +13 -5
- package/lib/oh-story/skills/story-long-write/references/reference-index.md +5 -6
- package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +9 -0
- package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +1 -58
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +15 -11
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +81 -121
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +41 -139
- package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +157 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +57 -67
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +112 -253
- package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +142 -0
- package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +6 -4
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +19 -65
- package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-long-write/scripts/build_architect_brief.py +260 -0
- package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +226 -25
- package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +132 -27
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +7 -2
- package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +7 -4
- package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +304 -46
- package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +478 -15
- package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +182 -23
- package/lib/oh-story/skills/story-review/SKILL.md +31 -302
- package/lib/oh-story/skills/story-review/references/agent-prompts.md +184 -0
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +12 -11
- package/lib/oh-story/skills/story-review/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-review/references/author-memory.md +46 -94
- package/lib/oh-story/skills/story-review/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-review/references/batch-review.md +19 -0
- package/lib/oh-story/skills/story-review/references/character-relations.md +49 -1
- package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-review/references/review-quality.md +6 -11
- package/lib/oh-story/skills/story-review/references/review-tracking.md +10 -0
- package/lib/oh-story/skills/story-review/references/solo.md +52 -0
- package/lib/oh-story/skills/story-review/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-review/references/tracking-initialization.md +1 -1
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +15 -11
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +478 -15
- package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +182 -23
- package/lib/oh-story/skills/story-setup/SKILL.md +71 -452
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +12 -11
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +107 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +49 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +22 -5
- package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +116 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +1 -114
- package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +7 -5
- package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +7 -7
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +0 -15
- package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +1 -58
- package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +19 -65
- package/lib/oh-story/skills/story-setup/references/diagnostics.md +4 -4
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +56 -110
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/analysis-method.md +42 -0
- package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +97 -0
- package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +9 -47
- package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +80 -0
- package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +4 -4
- package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +308 -0
- package/lib/oh-story/skills/story-short-analyze/references/stage4-6-reversal-summary.md +611 -0
- package/lib/oh-story/skills/story-short-scan/SKILL.md +35 -65
- package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +36 -0
- package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +24 -0
- package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +21 -0
- package/lib/oh-story/skills/story-short-scan/references/topic-match.md +38 -0
- package/lib/oh-story/skills/story-short-write/SKILL.md +23 -175
- package/lib/oh-story/skills/story-short-write/references/agent-calls.md +13 -0
- package/lib/oh-story/skills/story-short-write/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +46 -94
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +1 -21
- package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +0 -15
- package/lib/oh-story/skills/story-short-write/references/output-contract.md +9 -47
- package/lib/oh-story/skills/story-short-write/references/reference-index.md +17 -47
- package/lib/oh-story/skills/story-short-write/references/scene-craft.md +40 -0
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +7 -43
- package/lib/oh-story/skills/story-short-write/references/short-format.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +2 -1
- package/lib/oh-story/skills/story-short-write/references/short-reversal.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/submission-craft.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +5 -10
- package/lib/oh-story/skills/story-short-write/references/workflow-design.md +21 -13
- package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +116 -0
- package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +99 -0
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +7 -119
- package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +7 -2
- package/lib/types/client/drama-production-view.d.ts.map +1 -1
- package/lib/types/client/file-activity.d.ts +19 -1
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/production-prompts.d.ts +7 -0
- package/lib/types/client/production-prompts.d.ts.map +1 -1
- package/lib/types/client/production-runtime.d.ts +16 -0
- package/lib/types/client/production-runtime.d.ts.map +1 -1
- package/lib/types/client/video-studio.d.ts.map +1 -1
- package/lib/types/drama-adapters.d.ts +5 -3
- package/lib/types/drama-adapters.d.ts.map +1 -1
- package/lib/types/native-hooks.d.ts +53 -1
- package/lib/types/native-hooks.d.ts.map +1 -1
- package/lib/types/role-identity.d.ts +17 -0
- package/lib/types/role-identity.d.ts.map +1 -0
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/types/video-project.d.ts.map +1 -1
- package/lib/types/workspace-route.d.ts.map +1 -1
- package/lib/video-recap/CHANGELOG.md +60 -1
- package/lib/video-recap/README.en.md +348 -137
- package/lib/video-recap/README.md +340 -136
- package/lib/video-recap/manifest.json +406 -251
- package/lib/video-recap/skills/video-assemble/SKILL.md +30 -15
- package/lib/video-recap/skills/video-assemble/references/audio-modes.md +63 -0
- package/lib/video-recap/skills/video-assemble/references/explicit-audio-mix.md +75 -0
- package/lib/video-recap/skills/video-assemble/references/foreground-compose.md +118 -0
- package/lib/video-recap/skills/video-assemble/references/narration-adoption.md +103 -0
- package/lib/video-recap/skills/video-assemble/references/packaging.md +45 -0
- package/lib/video-recap/skills/video-assemble/references/pair-media.md +74 -0
- package/lib/video-recap/skills/video-assemble/references/source-score.md +147 -0
- package/lib/video-recap/skills/video-assemble/references/subtitle-track.md +202 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/__init__.py +1 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/audio_mix_binding.py +279 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/frozen_audio.py +187 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/narration_binding.py +323 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_inputs.py +109 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_publish.py +130 -0
- package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +10 -46
- package/lib/video-recap/skills/video-assemble/scripts/assemble.py +378 -119
- package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +29 -12
- package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +95 -44
- package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +75 -32
- package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +11 -11
- package/lib/video-recap/skills/video-assemble/scripts/compose_foreground.py +293 -0
- package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +71 -78
- package/lib/video-recap/skills/video-assemble/scripts/jianying/__init__.py +1 -0
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_builders.py → jianying/builders.py} +39 -67
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_model.py → jianying/model.py} +3 -11
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_optional.py → jianying/optional.py} +1 -1
- package/lib/video-recap/skills/video-assemble/scripts/jianying/schema.py +53 -0
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_templates.py → jianying/templates.py} +1 -1
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_timeline_contract.py → jianying/timeline_contract.py} +34 -13
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_writer.py → jianying/writer.py} +7 -17
- package/lib/video-recap/skills/video-assemble/scripts/lib.py +37 -4
- package/lib/video-recap/skills/video-assemble/scripts/media.py +12 -21
- package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +64 -34
- package/lib/video-recap/skills/video-assemble/scripts/packaging.py +122 -0
- package/lib/video-recap/skills/video-assemble/scripts/pair_media.py +216 -0
- package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +1 -3
- package/lib/video-recap/skills/video-assemble/scripts/source_score.py +469 -0
- package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +25 -9
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/__init__.py +1 -0
- package/lib/video-recap/skills/video-assemble/scripts/{subtitle_core.py → subtitles/core.py} +13 -6
- package/lib/video-recap/skills/video-assemble/scripts/{subtitle_render.py → subtitles/render.py} +5 -4
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/track.py +324 -0
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/track_binding.py +200 -0
- package/lib/video-recap/skills/video-assemble/scripts/timeline.py +30 -46
- package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +91 -7
- package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +22 -8
- package/lib/video-recap/skills/video-cut/SKILL.md +34 -16
- package/lib/video-recap/skills/video-cut/references/shot-review.md +50 -0
- package/lib/video-recap/skills/video-cut/scripts/cut.py +2 -28
- package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +58 -62
- package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +21 -106
- package/lib/video-recap/skills/video-cut/scripts/cut_render.py +14 -9
- package/lib/video-recap/skills/video-cut/scripts/lib.py +39 -0
- package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +2 -155
- package/lib/video-recap/skills/video-cut/scripts/narrative_selection.py +244 -0
- package/lib/video-recap/skills/video-cut/scripts/shot_review.py +357 -0
- package/lib/video-recap/skills/video-recap/SKILL.md +86 -42
- package/lib/video-recap/skills/video-recap/references/audio-routing.md +126 -0
- package/lib/video-recap/skills/video-recap/references/config-playbook.md +12 -8
- package/lib/video-recap/skills/video-recap/references/data-schema.md +44 -33
- package/lib/video-recap/skills/video-recap/references/resource-library.md +151 -0
- package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +1 -1
- package/lib/video-recap/skills/video-recap/scripts/doctor.py +123 -30
- package/lib/video-recap/skills/video-recap/scripts/final_qc.py +22 -75
- package/lib/video-recap/skills/video-recap/scripts/lib.py +3 -3
- package/lib/video-recap/skills/video-recap/scripts/library.py +509 -0
- package/lib/video-recap/skills/video-recap/scripts/materials.py +63 -91
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +8 -70
- package/lib/video-recap/skills/video-recap/scripts/project_binding.py +286 -0
- package/lib/video-recap/skills/video-recap/scripts/qc/__init__.py +1 -0
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_client.py → qc/mimo_client.py} +1 -1
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_evidence.py → qc/mimo_evidence.py} +33 -66
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_observations.py → qc/mimo_observations.py} +3 -11
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_payload.py → qc/mimo_payload.py} +4 -7
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_report.py → qc/mimo_report.py} +17 -28
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_runner.py → qc/mimo_runner.py} +2 -2
- package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +0 -19
- package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +119 -50
- package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +32 -114
- package/lib/video-recap/skills/video-recap/scripts/recap_review.py +9 -23
- package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +387 -334
- package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +23 -23
- package/lib/video-recap/skills/video-recap/scripts/recap_source.py +278 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +25 -12
- package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +59 -52
- package/lib/video-recap/skills/video-recap/scripts/resource_lock.py +162 -0
- package/lib/video-recap/skills/video-script/SKILL.md +16 -13
- package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +9 -5
- package/lib/video-recap/skills/video-script/references/promotional-copy.md +68 -0
- package/lib/video-recap/skills/video-script/references/research-guide.md +1 -1
- package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +24 -76
- package/lib/video-recap/skills/video-script/scripts/lib.py +10 -87
- package/lib/video-recap/skills/video-script/scripts/narration_lint.py +63 -39
- package/lib/video-recap/skills/video-script/scripts/review.py +0 -2
- package/lib/video-recap/skills/video-script/scripts/review_grounding.py +35 -59
- package/lib/video-recap/skills/video-script/scripts/review_response.py +66 -128
- package/lib/video-recap/skills/video-script/scripts/review_runner.py +12 -20
- package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +4 -4
- package/lib/video-recap/skills/video-script/scripts/validate.py +53 -42
- package/lib/video-recap/skills/video-understanding/SKILL.md +6 -4
- package/lib/video-recap/skills/video-understanding/references/data-schema.md +50 -156
- package/lib/video-recap/skills/video-understanding/references/research-guide.md +4 -4
- package/lib/video-recap/skills/video-understanding/scripts/asr.py +85 -65
- package/lib/video-recap/skills/video-understanding/scripts/asr_timing_evidence.py +270 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief.py +2 -5
- package/lib/video-recap/skills/video-understanding/scripts/briefing/__init__.py +1 -0
- package/lib/video-recap/skills/{video-script/scripts/agent_brief.py → video-understanding/scripts/briefing/builder.py} +38 -35
- package/lib/video-recap/skills/video-understanding/scripts/{brief_context.py → briefing/context.py} +4 -35
- package/lib/video-recap/skills/{video-script/scripts/brief_inputs.py → video-understanding/scripts/briefing/inputs.py} +9 -31
- package/lib/video-recap/skills/{video-script/scripts/brief_timeline.py → video-understanding/scripts/briefing/timeline.py} +5 -6
- package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +65 -116
- package/lib/video-recap/skills/video-understanding/scripts/detect.py +31 -40
- package/lib/video-recap/skills/video-understanding/scripts/lib.py +30 -86
- package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +63 -39
- package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +4 -4
- package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +17 -79
- package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +14 -40
- package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +64 -46
- package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +31 -11
- package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +19 -14
- package/lib/video-recap/skills/video-understanding/scripts/vlm.py +80 -108
- package/lib/video-recap/skills/video-voiceover/SKILL.md +29 -19
- package/lib/video-recap/skills/video-voiceover/references/index-tts.md +31 -0
- package/lib/video-recap/skills/video-voiceover/scripts/approved_text_policy.py +123 -0
- package/lib/video-recap/skills/video-voiceover/scripts/dub.py +51 -59
- package/lib/video-recap/skills/video-voiceover/scripts/lib.py +8 -44
- package/lib/video-recap/skills/video-voiceover/scripts/providers/__init__.py +1 -0
- package/lib/video-recap/skills/video-voiceover/scripts/providers/index_tts.py +184 -0
- package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +212 -134
- package/package.json +45 -45
- package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +0 -58
- package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +0 -53
- package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +0 -38
- package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +0 -530
- package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +0 -559
- package/lib/oh-story/skills/story-long-scan/references/scan-output-format.md +0 -207
- package/lib/oh-story/skills/story-long-write/references/state-tracking.md +0 -108
- package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +0 -678
- package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +0 -561
- package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +0 -98
- package/lib/video-recap/skills/video-recap/references/creative-editing-playbook.md +0 -225
- package/lib/video-recap/skills/video-recap/references/research-guide.md +0 -74
- package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +0 -250
- package/lib/video-recap/skills/video-script/scripts/brief_context.py +0 -348
- package/lib/video-recap/skills/video-script/scripts/narration.py +0 -12
- package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +0 -399
- package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +0 -290
- package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +0 -327
- /package/lib/video-recap/skills/video-assemble/scripts/{jianying_tracks.py → jianying/tracks.py} +0 -0
- /package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_contract.py → qc/mimo_contract.py} +0 -0
- /package/lib/video-recap/skills/video-voiceover/scripts/{fish_audio.py → providers/fish_audio.py} +0 -0
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"upstream": {
|
|
4
4
|
"repository": "git@github.com:zenstory-ai/novel-to-game.git",
|
|
5
|
-
"commit": "
|
|
6
|
-
"releaseVersion": "0.
|
|
5
|
+
"commit": "d76cdca5b54edbdb15ef5ce7618a83b281415d21",
|
|
6
|
+
"releaseVersion": "0.4.0"
|
|
7
7
|
},
|
|
8
|
-
"generatedAt": "2026-09-
|
|
8
|
+
"generatedAt": "2026-09-26T03:09:39.852Z",
|
|
9
9
|
"skills": [
|
|
10
10
|
"game-art-direction",
|
|
11
11
|
"game-build",
|
|
@@ -26,23 +26,23 @@
|
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
28
|
"path": "README.md",
|
|
29
|
-
"sha256": "
|
|
30
|
-
"bytes":
|
|
29
|
+
"sha256": "939379f784d7ea4329383b39e38a5c7aff68da2d451e5f3faf3a5447a3925f26",
|
|
30
|
+
"bytes": 32641
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"path": "README_ZH.md",
|
|
34
|
-
"sha256": "
|
|
35
|
-
"bytes":
|
|
34
|
+
"sha256": "d15c64cd77b6c4897dee29e8341784eafde14a8b14faad32a1c8a8c6cf89d66a",
|
|
35
|
+
"bytes": 29098
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
"path": "VERSION",
|
|
39
|
-
"sha256": "
|
|
39
|
+
"sha256": "40b8eb4000a913a7791090535f291d3d369874162a89ef3c9e3d4e887a1b9e79",
|
|
40
40
|
"bytes": 6
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
"path": "examples/jin-ping-mei/build/BUILD_BRIEF.md",
|
|
44
|
-
"sha256": "
|
|
45
|
-
"bytes":
|
|
44
|
+
"sha256": "9afc9482c71a23b31740d1cf3b79b5803317e1d6374e5f4c6f179edeea87b10f",
|
|
45
|
+
"bytes": 69720
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
"path": "examples/jin-ping-mei/build/app/.gitignore",
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
"path": "examples/jin-ping-mei/build/app/RUN.md",
|
|
59
|
-
"sha256": "
|
|
60
|
-
"bytes":
|
|
59
|
+
"sha256": "9d659095dea9a1797d914452bc18cee31e166247378c9c9c3d1725aaa2c99be6",
|
|
60
|
+
"bytes": 27936
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
"path": "examples/jin-ping-mei/build/app/assets/bg/compound_new_guofeng.webp",
|
|
@@ -266,13 +266,13 @@
|
|
|
266
266
|
},
|
|
267
267
|
{
|
|
268
268
|
"path": "examples/jin-ping-mei/build/app/css/new-guofeng.css",
|
|
269
|
-
"sha256": "
|
|
270
|
-
"bytes":
|
|
269
|
+
"sha256": "dca6d501d0570f0ddbb8f61a8010b5f21ed921878ae6b62db66c1636baa821fe",
|
|
270
|
+
"bytes": 45891
|
|
271
271
|
},
|
|
272
272
|
{
|
|
273
273
|
"path": "examples/jin-ping-mei/build/app/css/style.css",
|
|
274
|
-
"sha256": "
|
|
275
|
-
"bytes":
|
|
274
|
+
"sha256": "ee7f6096c3170aa2cbaf3559abf6819a3eba1cb64eabb22408872b615937e0d6",
|
|
275
|
+
"bytes": 238249
|
|
276
276
|
},
|
|
277
277
|
{
|
|
278
278
|
"path": "examples/jin-ping-mei/build/app/index.html",
|
|
@@ -291,28 +291,28 @@
|
|
|
291
291
|
},
|
|
292
292
|
{
|
|
293
293
|
"path": "examples/jin-ping-mei/build/app/js/data.js",
|
|
294
|
-
"sha256": "
|
|
295
|
-
"bytes":
|
|
294
|
+
"sha256": "15a063058268eaa7432f6fe89e602a896e908b93a2f58bd7f0b4d186419d7789",
|
|
295
|
+
"bytes": 1108708
|
|
296
296
|
},
|
|
297
297
|
{
|
|
298
298
|
"path": "examples/jin-ping-mei/build/app/js/engine.js",
|
|
299
|
-
"sha256": "
|
|
300
|
-
"bytes":
|
|
299
|
+
"sha256": "083eba7af0db65e17ab675f717fe3d39f08b64f1707e6105ba57cb104042e747",
|
|
300
|
+
"bytes": 706502
|
|
301
301
|
},
|
|
302
302
|
{
|
|
303
303
|
"path": "examples/jin-ping-mei/build/app/js/main.js",
|
|
304
|
-
"sha256": "
|
|
305
|
-
"bytes":
|
|
304
|
+
"sha256": "afec7737bccd315bb1776d7c09376be1c35cf8072048a07754b41ab85493d6ed",
|
|
305
|
+
"bytes": 276884
|
|
306
306
|
},
|
|
307
307
|
{
|
|
308
308
|
"path": "examples/jin-ping-mei/build/app/js/text.js",
|
|
309
|
-
"sha256": "
|
|
310
|
-
"bytes":
|
|
309
|
+
"sha256": "0ef4bc93902eb85b682d1a2b7989ccf57153ffe3a8451b90b4d0e41e8aa82440",
|
|
310
|
+
"bytes": 1952
|
|
311
311
|
},
|
|
312
312
|
{
|
|
313
313
|
"path": "examples/jin-ping-mei/build/app/package.json",
|
|
314
|
-
"sha256": "
|
|
315
|
-
"bytes":
|
|
314
|
+
"sha256": "cc3a2769e36395739ab29a6ef5f9320e73dcc448d2e9746aebbe2385bc92589c",
|
|
315
|
+
"bytes": 435
|
|
316
316
|
},
|
|
317
317
|
{
|
|
318
318
|
"path": "examples/jin-ping-mei/build/app/vercel.json",
|
|
@@ -331,8 +331,8 @@
|
|
|
331
331
|
},
|
|
332
332
|
{
|
|
333
333
|
"path": "examples/jin-ping-mei/qa/README.md",
|
|
334
|
-
"sha256": "
|
|
335
|
-
"bytes":
|
|
334
|
+
"sha256": "e9e970762f0d6a43d946e803e2d3f6e28d61879e464b655f94aff900952f2e90",
|
|
335
|
+
"bytes": 1421
|
|
336
336
|
},
|
|
337
337
|
{
|
|
338
338
|
"path": "examples/jin-ping-mei/qa/playable-model.json",
|
|
@@ -341,18 +341,18 @@
|
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
343
|
"path": "examples/jin-ping-mei/qa/verification.json",
|
|
344
|
-
"sha256": "
|
|
345
|
-
"bytes":
|
|
344
|
+
"sha256": "8167ca00857cdc47bde8aecb8a7823495ccbeb6d5134f3b75a1ee93c08264793",
|
|
345
|
+
"bytes": 1368
|
|
346
346
|
},
|
|
347
347
|
{
|
|
348
348
|
"path": "examples/jin-ping-mei/qa/verify_playable_model.mjs",
|
|
349
|
-
"sha256": "
|
|
350
|
-
"bytes":
|
|
349
|
+
"sha256": "f59f7eb0767db58a610275a7ec2c3ede59863ec0306f34f0ac26664d69a0abf9",
|
|
350
|
+
"bytes": 7603
|
|
351
351
|
},
|
|
352
352
|
{
|
|
353
353
|
"path": "skills/game-art-direction/SKILL.md",
|
|
354
|
-
"sha256": "
|
|
355
|
-
"bytes":
|
|
354
|
+
"sha256": "79aada543bbc876e7d79e4989cc87067ed7e01d613933157689855c7b8d14b0b",
|
|
355
|
+
"bytes": 3227
|
|
356
356
|
},
|
|
357
357
|
{
|
|
358
358
|
"path": "skills/game-art-direction/agents/openai.yaml",
|
|
@@ -361,43 +361,48 @@
|
|
|
361
361
|
},
|
|
362
362
|
{
|
|
363
363
|
"path": "skills/game-art-direction/references/art-direction-method.md",
|
|
364
|
-
"sha256": "
|
|
365
|
-
"bytes":
|
|
364
|
+
"sha256": "7f90baf826dda2c94b3622c5419515e348c5efe1abdc802c5a25346bb6c073eb",
|
|
365
|
+
"bytes": 2469
|
|
366
366
|
},
|
|
367
367
|
{
|
|
368
368
|
"path": "skills/game-build/SKILL.md",
|
|
369
|
-
"sha256": "
|
|
370
|
-
"bytes":
|
|
369
|
+
"sha256": "a3b01dfc8dff5cb06e57699df23a7db96b38eec709aae11ef3d90f78acd5915d",
|
|
370
|
+
"bytes": 4678
|
|
371
371
|
},
|
|
372
372
|
{
|
|
373
373
|
"path": "skills/game-build/agents/openai.yaml",
|
|
374
374
|
"sha256": "4fea64c3910933415a5e601bc3f423d22f0e5cfed8d7ab5c2aa38f60a3105cf0",
|
|
375
375
|
"bytes": 272
|
|
376
376
|
},
|
|
377
|
+
{
|
|
378
|
+
"path": "skills/game-build/references/blender-asset-workflow.md",
|
|
379
|
+
"sha256": "6fbf2e11f74ca2be1d2e3d3644dfc9ed82f04a6f0d92b67b2267894a710a4a42",
|
|
380
|
+
"bytes": 1834
|
|
381
|
+
},
|
|
377
382
|
{
|
|
378
383
|
"path": "skills/game-build/references/build-brief-contract.md",
|
|
379
|
-
"sha256": "
|
|
380
|
-
"bytes":
|
|
384
|
+
"sha256": "574c8178a126480aba77ff019ceef8b630937a2be36ab0f2215e143986d20f1f",
|
|
385
|
+
"bytes": 3618
|
|
381
386
|
},
|
|
382
387
|
{
|
|
383
388
|
"path": "skills/game-build/references/generative-media-pipeline.md",
|
|
384
|
-
"sha256": "
|
|
385
|
-
"bytes":
|
|
389
|
+
"sha256": "afcc211cde3fcadd42125d4fa45540765abb7279a52d69e0e5cdbe4500e6cd09",
|
|
390
|
+
"bytes": 1507
|
|
386
391
|
},
|
|
387
392
|
{
|
|
388
393
|
"path": "skills/game-build/references/playable-model-contract.md",
|
|
389
|
-
"sha256": "
|
|
390
|
-
"bytes":
|
|
394
|
+
"sha256": "ae50db8faf6713d5df5fabf875d4b17e1d38dbd442262ffb5a4dcf0495822f25",
|
|
395
|
+
"bytes": 2711
|
|
391
396
|
},
|
|
392
397
|
{
|
|
393
398
|
"path": "skills/game-build/references/tts-production-contract.md",
|
|
394
|
-
"sha256": "
|
|
395
|
-
"bytes":
|
|
399
|
+
"sha256": "ceb860341a91d27781ce3a2f0ed54dae887e4f3b15e50db1e1b0efd81b8f442e",
|
|
400
|
+
"bytes": 1426
|
|
396
401
|
},
|
|
397
402
|
{
|
|
398
403
|
"path": "skills/game-concept/SKILL.md",
|
|
399
|
-
"sha256": "
|
|
400
|
-
"bytes":
|
|
404
|
+
"sha256": "fd07b5f61f4408887e0fb982c74edb42735bf25c456d6ca2dad60dff3f19b0ad",
|
|
405
|
+
"bytes": 3436
|
|
401
406
|
},
|
|
402
407
|
{
|
|
403
408
|
"path": "skills/game-concept/agents/openai.yaml",
|
|
@@ -406,13 +411,13 @@
|
|
|
406
411
|
},
|
|
407
412
|
{
|
|
408
413
|
"path": "skills/game-concept/references/concept-method.md",
|
|
409
|
-
"sha256": "
|
|
410
|
-
"bytes":
|
|
414
|
+
"sha256": "39bc9cda22f5394e8e8fe05ef9cb8cba109b2dcbe1794d149fab2f40fd456fd2",
|
|
415
|
+
"bytes": 2646
|
|
411
416
|
},
|
|
412
417
|
{
|
|
413
418
|
"path": "skills/game-qa/SKILL.md",
|
|
414
|
-
"sha256": "
|
|
415
|
-
"bytes":
|
|
419
|
+
"sha256": "03bebbe8f6179a40ef2eb08f9840e01b188668894811389a353d8657bc8a4200",
|
|
420
|
+
"bytes": 2655
|
|
416
421
|
},
|
|
417
422
|
{
|
|
418
423
|
"path": "skills/game-qa/agents/openai.yaml",
|
|
@@ -426,48 +431,38 @@
|
|
|
426
431
|
},
|
|
427
432
|
{
|
|
428
433
|
"path": "skills/game-qa/references/test-design-method.md",
|
|
429
|
-
"sha256": "
|
|
430
|
-
"bytes":
|
|
434
|
+
"sha256": "f0f52f7b791d59fb55942257a53b69367c01eadf57dd3f918f4f4482cec478ca",
|
|
435
|
+
"bytes": 3770
|
|
431
436
|
},
|
|
432
437
|
{
|
|
433
438
|
"path": "skills/game-world-design/SKILL.md",
|
|
434
|
-
"sha256": "
|
|
435
|
-
"bytes":
|
|
439
|
+
"sha256": "3d83f142305906afa9174adba07b7bde2c163489cf4daa7118bc2a113e818c6f",
|
|
440
|
+
"bytes": 3883
|
|
436
441
|
},
|
|
437
442
|
{
|
|
438
443
|
"path": "skills/game-world-design/agents/openai.yaml",
|
|
439
444
|
"sha256": "4447bb4f6905cc367d6bfc45827877e16c5b3bf4b3ddc00fd3547fe31397bebd",
|
|
440
445
|
"bytes": 280
|
|
441
446
|
},
|
|
442
|
-
{
|
|
443
|
-
"path": "skills/game-world-design/references/dialogue-design-method.md",
|
|
444
|
-
"sha256": "4934b97a4587a4c68fe5e12c963d9c4b87ae9c02400de416ff74801c9ddb2f86",
|
|
445
|
-
"bytes": 3167
|
|
446
|
-
},
|
|
447
|
-
{
|
|
448
|
-
"path": "skills/game-world-design/references/game-writing-craft.md",
|
|
449
|
-
"sha256": "17503d22bda5d857087b8b64f73dc7bcb8fd3f2f7e366f81a9fd80fc9713bc3b",
|
|
450
|
-
"bytes": 3041
|
|
451
|
-
},
|
|
452
447
|
{
|
|
453
448
|
"path": "skills/game-world-design/references/narrative-design-method.md",
|
|
454
|
-
"sha256": "
|
|
455
|
-
"bytes":
|
|
449
|
+
"sha256": "ad5279a02bb3495b37b7087fc31d981a4258e059cbbf5648f463fec605fd9a42",
|
|
450
|
+
"bytes": 2204
|
|
456
451
|
},
|
|
457
452
|
{
|
|
458
453
|
"path": "skills/game-world-design/references/numeric-design-method.md",
|
|
459
|
-
"sha256": "
|
|
460
|
-
"bytes":
|
|
454
|
+
"sha256": "aa275b7771535efbc5d814b6b0f42b39ed17a750d10188260fbd0faabb5ed429",
|
|
455
|
+
"bytes": 1193
|
|
461
456
|
},
|
|
462
457
|
{
|
|
463
458
|
"path": "skills/game-world-design/references/world-design-method.md",
|
|
464
|
-
"sha256": "
|
|
465
|
-
"bytes":
|
|
459
|
+
"sha256": "543f9f60e0c4130862e4833ba6dff71e49cb2d32b7d15fef74e354114b9b73bf",
|
|
460
|
+
"bytes": 3614
|
|
466
461
|
},
|
|
467
462
|
{
|
|
468
463
|
"path": "skills/novel-game-analyze/SKILL.md",
|
|
469
|
-
"sha256": "
|
|
470
|
-
"bytes":
|
|
464
|
+
"sha256": "193253249ebcf75e065837565e96dec13808aba0fbf77e1e61d55163817a05e3",
|
|
465
|
+
"bytes": 5096
|
|
471
466
|
},
|
|
472
467
|
{
|
|
473
468
|
"path": "skills/novel-game-analyze/agents/openai.yaml",
|
|
@@ -476,33 +471,28 @@
|
|
|
476
471
|
},
|
|
477
472
|
{
|
|
478
473
|
"path": "skills/novel-game-analyze/references/gameability-protocol.md",
|
|
479
|
-
"sha256": "
|
|
480
|
-
"bytes":
|
|
474
|
+
"sha256": "6954dbe3421f3e6aae27e181097cd8a16a9ecde382a344b44ba10c20c896ec5a",
|
|
475
|
+
"bytes": 4175
|
|
481
476
|
},
|
|
482
477
|
{
|
|
483
478
|
"path": "skills/novel-to-game/SKILL.md",
|
|
484
|
-
"sha256": "
|
|
485
|
-
"bytes":
|
|
479
|
+
"sha256": "12c82429d8bfeff5fa12bc839c618ef03897c97cb1126e0002236c59b3837957",
|
|
480
|
+
"bytes": 4223
|
|
486
481
|
},
|
|
487
482
|
{
|
|
488
483
|
"path": "skills/novel-to-game/agents/openai.yaml",
|
|
489
484
|
"sha256": "b889e01866e06d9e019c8714758e5b18c25e8f7eb4d52e7696c6fec2dfc11c32",
|
|
490
485
|
"bytes": 255
|
|
491
486
|
},
|
|
492
|
-
{
|
|
493
|
-
"path": "skills/novel-to-game/references/intake-benchmark-reference.md",
|
|
494
|
-
"sha256": "4f0411df62170dd7a91f39058ade44ca9f12663d72d3f571bd67b0bc5a784ea8",
|
|
495
|
-
"bytes": 2126
|
|
496
|
-
},
|
|
497
487
|
{
|
|
498
488
|
"path": "skills/novel-to-game/references/intake-method.md",
|
|
499
|
-
"sha256": "
|
|
500
|
-
"bytes":
|
|
489
|
+
"sha256": "a704a8d9132e94bd425c778d62a2db3d74cc48a1e16de981a9b18d3bf66c3f17",
|
|
490
|
+
"bytes": 3004
|
|
501
491
|
},
|
|
502
492
|
{
|
|
503
493
|
"path": "skills/novel-to-game/references/pipeline-contract.md",
|
|
504
|
-
"sha256": "
|
|
505
|
-
"bytes":
|
|
494
|
+
"sha256": "96375b18d8babc7f73ca429c64ef18bf1607d7058f92109fdc4002531b22cfa7",
|
|
495
|
+
"bytes": 2942
|
|
506
496
|
}
|
|
507
497
|
]
|
|
508
498
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: game-art-direction
|
|
3
|
-
description: "Direct game art and creative vision. Turn GAME_DESIGN into
|
|
3
|
+
description: "Direct game art and creative vision. Turn GAME_DESIGN into ART_DIRECTION defining a recognizable visual identity, functional visual and audio feedback, and key in-game moments. Use for what should the game look like, set the art direction, define the visual style. 游戏美术与创意方向。把 GAME_DESIGN 转成 ART_DIRECTION,定义可辨识的视觉身份、服务玩法的视听反馈和关键游戏时刻。用于判断游戏应该长什么样、制定游戏美术方向等需求。"
|
|
4
4
|
---
|
|
5
5
|
# 游戏美术与创意方向
|
|
6
6
|
|
|
@@ -17,21 +17,18 @@ description: "Direct game art and creative vision. Turn GAME_DESIGN into a produ
|
|
|
17
17
|
|
|
18
18
|
## 设计
|
|
19
19
|
|
|
20
|
-
1.
|
|
20
|
+
1. 定义能区分正确与错误方案的视觉原则;身份与审美校准按方法同名一节;
|
|
21
21
|
2. 为玩家、目标、威胁、奖励和地标建立镜头、焦点、轮廓、尺度与密度语法;
|
|
22
22
|
3. 让颜色、光、材质和运动编码真实状态,并提供非颜色冗余、低动效表达与明度可读边界;
|
|
23
23
|
4. 定义首屏焦点、HUD 信息层级、输入反馈、结果分级、失败与结果状态;
|
|
24
24
|
5. 为环境、角色、交互物和关键道具定义共享世界语法与各自识别锚点;
|
|
25
25
|
6. 定义目标语言的字体覆盖、阅读顺序、文本密度与文化符号边界;
|
|
26
|
-
7.
|
|
26
|
+
7. 为核心循环或最高视觉风险定义关键游戏时刻,说明玩家动作、压力、焦点和前后状态,不为每个界面凑数;
|
|
27
27
|
8. 定义声音世界、功能反馈层级和音乐边界;语音只在确有独特价值时选择,并始终保留字幕/静音路径。
|
|
28
28
|
|
|
29
29
|
`narrative-led` 或 `hybrid` 的叙事层还要说明人物距离、朝向、遮挡和姿态如何表现关系变化,以及对白区
|
|
30
30
|
怎样保证阅读、历史回看、跳过与加速。
|
|
31
31
|
|
|
32
|
-
表现层读取已经裁决的状态、事件与知识权限:同一个“获得物件、隐瞒证词、公开承诺”可以换文字、镜头
|
|
33
|
-
或动画,但不能由表现代码另算一次效果,也不能向玩家或角色提前泄露未获知事实。
|
|
34
|
-
|
|
35
32
|
不要写着色器、拓扑、贴图规格、接口、文件格式教程或供应商参数。
|
|
36
33
|
|
|
37
34
|
## 输出
|
|
@@ -41,12 +38,10 @@ description: "Direct game art and creative vision. Turn GAME_DESIGN into a produ
|
|
|
41
38
|
- `targetFinish` 与视觉原则;
|
|
42
39
|
- 镜头/构图、世界/角色/道具语法、功能性色光材质;
|
|
43
40
|
- HUD、反馈、运动/转场、语言/文化与声音方向;
|
|
44
|
-
-
|
|
41
|
+
- 关键游戏时刻;
|
|
45
42
|
- 必需与可降级资产,以及原创/授权边界和仍未确定的视觉风险。
|
|
46
43
|
|
|
47
|
-
|
|
48
|
-
持久目标图,条件见方法「视觉目标」。
|
|
44
|
+
是否追加 `design/VISUAL_TARGETS.md` 与少量持久目标图,条件见方法「关键游戏时刻与目标图」。
|
|
49
45
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
实现自由。
|
|
46
|
+
交付前在目标视口检查动作、压力与反馈可辨;关键时刻在实际界面而非概念海报中成立;
|
|
47
|
+
方向覆盖核心循环、失败和结果,构建无需重新发明风格或反馈,但仍保有实现自由。
|
|
@@ -1,119 +1,40 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 美术方向的改编判断
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
沉浸、精致”不能。
|
|
3
|
+
方向应能排除错误方案,锁定本作的身份与功能,而不是罗列通用镜头、配色或界面设计知识。
|
|
5
4
|
|
|
6
|
-
##
|
|
5
|
+
## 身份与审美校准
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- **材质、光和颜色**:每个编码功能说明含义,并带形状、图标、文字或位置等非颜色冗余。
|
|
12
|
-
- **界面**:只显示当前决策需要的信息;首屏有唯一焦点,次级面板有折叠、揭示或常驻理由。
|
|
13
|
-
- **语言与文化**:字体覆盖、阅读顺序、行宽和信息密度在目标视口可读;文化元素有原作依据或功能。
|
|
7
|
+
时代题材分别锁定世界时代、表现媒介、人物理想化程度。
|
|
8
|
+
“古风”不等于古画旧化,“现代审美”不等于现代服饰;反馈只应改变被指出的轴,
|
|
9
|
+
不能连带改写原作身份。人物、器物与地理的识别锚点在多状态资产间保持连续。
|
|
14
10
|
|
|
15
|
-
|
|
16
|
-
这些状态;否则弱化或删除视觉承诺。
|
|
11
|
+
## 功能与可读边界
|
|
17
12
|
|
|
18
|
-
|
|
13
|
+
颜色、光、材质、运动和声音必须表达已经裁决的状态,不由表现代码另算一次效果;界面不能承诺规则未实现的机制。
|
|
14
|
+
涉及秘密、证词或专属命令时,表现不能向玩家或角色泄露未获知事实,也不能在提交前显示“执行成功”。
|
|
19
15
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
亮度、信息密度与滚动方式服从题材、玩法和目标视口。
|
|
17
|
+
检查当前动作、必要依据、压力与结果是否可辨;暗调、低动效、静音等状态仍须保留必要信息。
|
|
18
|
+
不以缩小字号或隐藏控件掩盖实际操作障碍。
|
|
23
19
|
|
|
24
|
-
|
|
25
|
-
优先用局部明暗、冷暖分区、遮挡、距离、材质和功能性色制造压力;不要同时叠加低曝光、黑幕、暗角、
|
|
26
|
-
降饱和、烟雾和小灰字。若确需全局偏暗,方向必须写清依据、涉及界面、不可低于的可读层和亮度/高对比
|
|
27
|
-
fallback,并用目标视口的实际交互画面验收,而不是只看概念海报。
|
|
20
|
+
## 关键游戏时刻与目标图
|
|
28
21
|
|
|
29
|
-
|
|
22
|
+
为核心循环、身份锚点或最高视觉风险选取有代表性的运行中时刻。
|
|
23
|
+
说明玩家动作、压力、焦点与输入前后变化。
|
|
30
24
|
|
|
31
|
-
|
|
25
|
+
仅在高风险歧义或目标成色需要时制作视觉目标包:原创风格帧、构图草图或白盒改绘,
|
|
26
|
+
附能裁决方向的可观察条件和失败例。应包含实际游戏界面,不用海报证明可操作性。
|
|
32
27
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
批准目标图后批量资产保持身份、光色、构图与文本空间;方向被否决时停止同方向扩批,
|
|
29
|
+
隔离被否决样张,不让旧图继续作为生产参考。目标图只锁方向,不证明最终资产或发布质量。
|
|
30
|
+
工具不可用时保留文字方向并记录未解决风险,不伪称图像已完成。
|
|
36
31
|
|
|
37
|
-
|
|
38
|
-
把世界改成现代棚拍;用户说“太现代”,先撤现代服装、广告构图和摄影语法,不要退回低明度古画;用户说
|
|
39
|
-
“太真实”,优先把真人皮肤、镜头毛孔和 3D 材质改成二维笔触、理想化轮廓和可想象的面部,不要把角色
|
|
40
|
-
幼态化。
|
|
32
|
+
## 资产与媒体交接
|
|
41
33
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
方向被否决时停止扩批,删除或隔离被否决样张,不把“已经生成很多”当成继续沿错路的理由。
|
|
34
|
+
资产区分缺失会破坏玩家效果的必需项,以及已有明确替代表达的可降级项。
|
|
35
|
+
记录作用、身份锚点、使用状态、来源/授权边界与替代表达,不在方向层指定工具或供应商。
|
|
45
36
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
- **常驻**:当前时空、正在做的事,以及错过就会误操作的一条急迫信号;
|
|
51
|
-
- **当前场景**:这次选择独有的压力、必要证据和选项差异,随场景进入与退出;
|
|
52
|
-
- **按需账册**:完整资源、关系网、历史、证据来源、解锁进度和档案,由玩家主动打开。
|
|
53
|
-
|
|
54
|
-
状态即使真实存在,也不能仅因“以后可能有用”就常驻。若同一画面同时解释旧例、压力、征兆、证据、
|
|
55
|
-
关系、资源、解锁和多个长选项,先做渐进披露:保留一个当前问题;把历史挪到真正改变某个选项的位置,
|
|
56
|
-
把完整账目收入按需页,把已经读过的前情压成一句可识别回声。选项先呈现玩家动词和本项独有代价,
|
|
57
|
-
不要在每张卡重复全局规则。
|
|
58
|
-
|
|
59
|
-
主游玩面板的滚动条通常说明一拍承担了多拍信息,不能只隐藏滚动条或缩小字号。优先删除重复、改为
|
|
60
|
-
就地揭示或拆成相邻节拍,使主要正文、当前选择与必要反馈在目标视口同屏;只有玩家明确打开的账册、
|
|
61
|
-
图鉴、历史或长档案适合在可见书页边界内滚动。
|
|
62
|
-
|
|
63
|
-
## 招牌时刻
|
|
64
|
-
|
|
65
|
-
招牌时刻是实际游戏界面的前后变化,不是海报。每个交互模式只需一个最能说明它的时刻,写清:
|
|
66
|
-
|
|
67
|
-
`界面/模式 | 玩家动作 | 即时目标与压力 | 第一焦点 | 世界规则如何可见 | 输入前 | 输入后 | HUD/声音`
|
|
68
|
-
|
|
69
|
-
缩略图下仍应看出玩家在做什么,以及为什么只有这部作品会产生这个画面。标题、主要循环、最高压力
|
|
70
|
-
和结果都要被方向覆盖,但能由同一时刻承担时不为凑数量拆图。
|
|
71
|
-
|
|
72
|
-
## 运动与声音
|
|
73
|
-
|
|
74
|
-
对核心动词定义最少四层反馈:输入被接收、动作生效/落空、结果分级、状态转场。不同事件不用同一个
|
|
75
|
-
通用抖动或辉光;强反馈不能遮住下一次决策。低动效或跳过后仍保留信息、节拍和结果。
|
|
76
|
-
|
|
77
|
-
身份专属命令存在时,把“已接收 / 待澄清或拒绝 / 执行中 / 实际结果 / 证物与见证 / 到期事项”设计成
|
|
78
|
-
可区分节拍;不得在规则提交前用完成态颜色、声音或人物动作误导玩家。
|
|
79
|
-
|
|
80
|
-
声音方向说明器物/乐器/环境来源、核心动作和状态的层级,以及静音时由什么视觉通道补足。音乐规定
|
|
81
|
-
情绪与节奏边界,不写具体生产参数。
|
|
82
|
-
|
|
83
|
-
语音不是默认项。只有人声能提供文字和普通音效不能等价提供的角色意志、空间警告或不可逆回响时
|
|
84
|
-
才采用;语音不得成为规则、目标、选择和结果的唯一载体。方向层只记录:
|
|
85
|
-
|
|
86
|
-
`时刻 | 说话者 | 触发状态 | 独特价值 | 声口/节奏 | 同步字幕 | 重复/跳过 | 静音结果 | 权利边界`
|
|
87
|
-
|
|
88
|
-
逐句台词、音色资产、服务调用、缓存与故障处理属于构建生产合同。
|
|
89
|
-
|
|
90
|
-
## 角色、场景与状态
|
|
91
|
-
|
|
92
|
-
- 角色靠轮廓、发式、姿态、常持器物和与他人的距离区分;关系变化要在构图中可见。
|
|
93
|
-
- 场景用布局、地标、材质和光线建立固定地理;时段、天气、损毁等是可变化状态。
|
|
94
|
-
- 道具分固定形制与当前持有者/开关/破损状态;剧情改变后从正确时刻起更新。
|
|
95
|
-
- 同一对象的多状态优先保持机位与构图,让玩家读出变化,而不是得到几张互不相干的图。
|
|
96
|
-
|
|
97
|
-
叙事项目把称呼、站位、朝向、可选行动和场景可达性当作关系反馈;只有玩家确需精确读数时才增加
|
|
98
|
-
量表,并在旁边显示变化原因。
|
|
99
|
-
|
|
100
|
-
## 资产与动态媒体边界
|
|
101
|
-
|
|
102
|
-
资产清单只分两级:缺失会破坏玩家效果的**必需**资产,以及已有明确替代表达的**可降级**资产。
|
|
103
|
-
每项记录视觉作用、识别锚点、使用状态、来源/授权边界和 fallback,不在方向层指定生成工具。
|
|
104
|
-
|
|
105
|
-
动态媒体仅在固定演出比实时场景更合适时采用。方向条目写:体验角色、状态触发、时长/节奏、
|
|
106
|
-
必须保持的身份/地理/道具事实、开始与结束边界、跳过结果和静帧/低动效版本。玩家需要改变视角、
|
|
107
|
-
位置或空间关系时使用实时场景,不用视频伪装交互。
|
|
108
|
-
|
|
109
|
-
## 视觉目标
|
|
110
|
-
|
|
111
|
-
视觉目标包只在需要降低高风险视觉歧义时制作,例如陌生画风、复杂构图、角色身份连续性或高完成度
|
|
112
|
-
展示。每个风险保留一张原创 style frame、构图草图或当前 graybox paint-over,并写 3–5 条可观察
|
|
113
|
-
条件与失败例;不要为所有界面建立量表、截图矩阵和证据目录。
|
|
114
|
-
|
|
115
|
-
目标图锁方向,不证明最终资产、趣味或发布质量。图像工具不可用时保留文字方向并记录未解决风险,
|
|
116
|
-
不把缺图伪装成已完成,也不把 ART_DIRECTION 本身判为无效。
|
|
117
|
-
|
|
118
|
-
视觉目标若采用暗调,至少同时保留一个首屏或核心循环目标图来证明实际操作层没有随气氛一起失读;
|
|
119
|
-
非特殊题材的目标图若只能靠抬高显示器亮度辨认人物、器物或按钮,应直接否决该方向。
|
|
37
|
+
动态媒体额外锁定触发状态、不可变化的身份/地理/道具事实、开始与结束边界、跳过结果。
|
|
38
|
+
需要玩家改变视角、位置或空间关系时,不用固定视频伪装交互。
|
|
39
|
+
语音仅在确有独特价值时采用;方向规定声口与节奏,始终保留字幕和静音路径,
|
|
40
|
+
逐句生产与服务调用交给构建。
|
|
@@ -7,8 +7,7 @@ description: "Build a risk-matched whitebox or the approved production game for
|
|
|
7
7
|
保护已批准的体验边界;正式生产时再保护已批准的美术边界。驱动实现模型完成真实可玩的候选,不在
|
|
8
8
|
构建阶段重新做概念、关卡或美术方向。
|
|
9
9
|
|
|
10
|
-
读取 [build-brief-contract.md](references/build-brief-contract.md)
|
|
11
|
-
[playable-model-contract.md](references/playable-model-contract.md)。白盒阶段必须已有 `GAME_DESIGN.md`;
|
|
10
|
+
读取 [build-brief-contract.md](references/build-brief-contract.md)。白盒阶段必须已有 `GAME_DESIGN.md`;
|
|
12
11
|
完整候选还必须已有 `ART_DIRECTION.md`。缺产品决定时回对应 owner,不在 BUILD_BRIEF 就地发明。
|
|
13
12
|
|
|
14
13
|
产物语言由 `PRODUCT_BRIEF.md` 锁定;未锁定时跟随对话语言,不默认产出中文。
|
|
@@ -19,8 +18,7 @@ description: "Build a risk-matched whitebox or the approved production game for
|
|
|
19
18
|
目标工具链不可用时不得自动改做网页;只有 brief 已批准替代运行时才可使用,并分开记录
|
|
20
19
|
`targetRuntime`、`testedRuntime` 与未覆盖项。
|
|
21
20
|
|
|
22
|
-
正式生产继承 `ART_DIRECTION.md`
|
|
23
|
-
“当代审美”做成现代棚拍或把“古风”做成古画旧化。检查项见 build-brief-contract「视觉与必需资产」。
|
|
21
|
+
正式生产继承 `ART_DIRECTION.md` 的可观察视觉约束与批准目标图,在实际运行中验证焦点资产。
|
|
24
22
|
|
|
25
23
|
BUILD_BRIEF 只压缩产品边界、必须保真的体验事实、运行方式与完成证据,实现细节交给实现模型。
|
|
26
24
|
|
|
@@ -33,22 +31,23 @@ BUILD_BRIEF 只压缩产品边界、必须保真的体验事实、运行方式
|
|
|
33
31
|
|
|
34
32
|
## 按能力读取可选合同
|
|
35
33
|
|
|
36
|
-
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
|
|
34
|
+
- 已选择 Blender 制作或修改可编辑三维资产时,读取 [blender-asset-workflow.md](references/blender-asset-workflow.md);
|
|
35
|
+
不因项目是 3D 就默认采用 Blender 或安装 MCP。
|
|
36
|
+
- 采用生成式自由输入、知识权限、事件回放、存档迁移或 `signature_command` 时,读取
|
|
37
|
+
[playable-model-contract.md](references/playable-model-contract.md) 的相关部分。
|
|
38
|
+
- 语音策略不是 `none` 时读取 [tts-production-contract.md](references/tts-production-contract.md)。
|
|
39
|
+
- 实际采用动态媒体时读取 [generative-media-pipeline.md](references/generative-media-pipeline.md)。
|
|
40
40
|
|
|
41
41
|
## 共同构建循环
|
|
42
42
|
|
|
43
43
|
1. 先实现一个最小但完整的核心循环:启动、真实输入、状态变化、结果和重开。范围不足时修范围,
|
|
44
44
|
不先堆审计材料。
|
|
45
|
-
2.
|
|
46
|
-
`signature_command`
|
|
47
|
-
3.
|
|
48
|
-
修订后重放失败路径与相邻反例。
|
|
45
|
+
2. 实现 GAME_DESIGN 的状态、动作与结果;使用生成模型时,模型只解释输入和结果,规则器拥有提交权。
|
|
46
|
+
存在 `signature_command` 时再执行可选合同的专属边界。
|
|
47
|
+
3. 保留能复现问题的初态与输入路径,涉及随机性时固定 seed;修订后重放失败路径与相邻反例。
|
|
49
48
|
4. 回写实际工具链、install/build/start 命令和版本;未知值写 `NOT_AVAILABLE: 原因`,不猜。
|
|
50
49
|
|
|
51
|
-
`whitebox` 到此按 build-brief-contract
|
|
50
|
+
`whitebox` 到此按 build-brief-contract「完成证据」运行最窄检查并交回 design owner;设计修订后
|
|
52
51
|
重放受影响路径,直到最大风险已被实际暴露或当前方向被否决。
|
|
53
52
|
|
|
54
53
|
`production` 继续:
|
|
@@ -59,7 +58,7 @@ BUILD_BRIEF 只压缩产品边界、必须保真的体验事实、运行方式
|
|
|
59
58
|
目标平台输入、性能、打包或设备项写入 limitation。
|
|
60
59
|
7. 达到 brief 的 `targetFinish`;更高完成度只处理已批准的焦点资产和招牌时刻,不制造与可玩闭环
|
|
61
60
|
无关的发布审计。
|
|
62
|
-
8. 交给 `game-qa
|
|
61
|
+
8. 交给 `game-qa`;诊断、复跑与事实源规则见契约「完成证据」。
|
|
63
62
|
|
|
64
63
|
## 输出
|
|
65
64
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Blender 资产工作流(按需)
|
|
2
|
+
|
|
3
|
+
适用于需要可编辑几何、场景装配或反复调整的资产;已有资产或程序化实现足够时不迁移。
|
|
4
|
+
它是资产制作路径,不替代目标游戏运行时,也不改变 GAME_DESIGN 与 ART_DIRECTION 的裁决。
|
|
5
|
+
|
|
6
|
+
## 工具与输入
|
|
7
|
+
|
|
8
|
+
批处理可用 Blender Python/CLI;需要交互读取场景、对象与视口时可用 MCP,不要求两套并存。
|
|
9
|
+
MCP 已登记不等于已连通;先实际读取目标场景,确认操作对象。可执行 Python 的连接不是沙箱,
|
|
10
|
+
本机服务不对外开放,不执行来自网页或下载资产的未审查代码;在线素材服务另按项目授权启用。
|
|
11
|
+
|
|
12
|
+
## 最小迭代
|
|
13
|
+
|
|
14
|
+
1. 先选影响已批准体验的一个资产,明确其原作识别锚点、游戏中的用途与现有导入约束;
|
|
15
|
+
不从宣传图自行扩大成整场景重建。
|
|
16
|
+
2. 在隔离的工作场景编辑,保存可继续修改的源资产与运行文件;导出限定目标场景和依赖,
|
|
17
|
+
防止默认物体、其他场景或无关素材混入。
|
|
18
|
+
3. 用目标加载器回读导出物,按实际消费项核对尺度、轴向、节点、材质及自定义属性;
|
|
19
|
+
UV/顶点色兼作风权重等数据时检查语义值,不只确认通道存在。沿用项目预算,不为候选放宽。
|
|
20
|
+
4. 放回真实游戏的相机、光照和输入路径,比较识别性、遮挡与交互;只修改暴露问题的资产。
|
|
21
|
+
资产请求与必要日志确认加载的是候选,而非缓存旧版或占位物;必需资产失败不得静默算通过。
|
|
22
|
+
|
|
23
|
+
Blender 视口或视频只能说明该表现,不能证明游戏可玩或性能达标;相关变化交现有游戏 QA 验证,
|
|
24
|
+
不新增验收等级。候选未改善批准目标时保留原版;反馈需要改变风格、布局或规则时回对应设计 owner。
|