@oh-story/dsh 0.1.3 → 0.1.5
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 +58 -12
- package/lib/client.js +2970 -537
- package/lib/client.js.map +4 -4
- package/lib/drama/manifest.json +218 -178
- package/lib/drama/skills/short-drama/SKILL.md +110 -117
- package/lib/drama/skills/short-drama/references/audience-reveal.md +14 -67
- package/lib/drama/skills/short-drama/references/contract-and-ownership.md +26 -77
- package/lib/drama/skills/short-drama/references/creator-documents.md +204 -0
- package/lib/drama/skills/short-drama/references/creator-workflow.md +73 -63
- package/lib/drama/skills/short-drama/references/knowhow-index.md +5 -0
- package/lib/drama/skills/short-drama/references/look-development.md +2 -3
- package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +14 -48
- package/lib/drama/skills/short-drama/references/production-form-profiles.md +1 -1
- package/lib/drama/skills/short-drama/references/reference-roles.md +32 -135
- package/lib/drama/skills/short-drama/references/runtime-preflight.md +16 -19
- package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +1002 -0
- package/lib/drama/skills/short-drama/scripts/project_tool.py +485 -5
- package/lib/drama/skills/short-drama-assets/SKILL.md +59 -170
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +18 -25
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +13 -15
- package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +11 -14
- package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +116 -0
- package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +6 -12
- package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -11
- package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +21 -2
- package/lib/drama/skills/short-drama-assets/references/stage-contract.md +12 -105
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +12 -32
- package/lib/drama/skills/short-drama-assets/scripts/asset_check.py +1 -1
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +45 -155
- package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +12 -13
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +12 -13
- package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +39 -51
- package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +3 -4
- package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +15 -14
- package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +11 -15
- package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +1 -1
- package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +4 -7
- package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +23 -23
- package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +8 -65
- package/lib/drama/skills/short-drama-image-prompts/scripts/image_prompt_check.py +8 -8
- package/lib/drama/skills/short-drama-image-prompts/scripts/selftest.py +4 -2
- package/lib/drama/skills/short-drama-produce/SKILL.md +67 -15
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +65 -8
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +85 -0
- package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +27 -10
- package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +362 -3
- package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +627 -40
- package/lib/drama/skills/short-drama-produce/scripts/selftest.py +5 -4
- package/lib/drama/skills/short-drama-review/SKILL.md +61 -123
- package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -15
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +15 -16
- package/lib/drama/skills/short-drama-review/references/project-calibration.md +7 -9
- package/lib/drama/skills/short-drama-review/references/review-method.md +8 -9
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +9 -13
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +104 -4
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +27 -19
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +4 -63
- package/lib/drama/skills/short-drama-review/scripts/review_check.py +1 -1
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +116 -238
- package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +1 -1
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +9 -34
- package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
- package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +5 -10
- package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +12 -7
- package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +19 -4
- package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +27 -62
- package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +16 -25
- package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +21 -23
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -10
- package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +9 -13
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +16 -71
- package/lib/drama/skills/short-drama-storyboard/scripts/storyboard_check.py +1 -1
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +123 -230
- package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +6 -1
- package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +17 -1
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +10 -8
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +24 -6
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +2 -2
- package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +154 -0
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +35 -27
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +8 -11
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +13 -10
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +34 -63
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +41 -0
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +66 -0
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +17 -73
- package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +115 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/container_check.py +1 -1
- package/lib/drama/skills/short-drama-video-prompts/scripts/music_spec_check.py +1 -1
- package/lib/drama/skills/short-drama-write/SKILL.md +74 -268
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +7 -0
- package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +17 -43
- package/lib/drama/skills/short-drama-write/references/screenplay-format.md +15 -15
- package/lib/drama/skills/short-drama-write/references/script-craft.md +208 -21
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +11 -70
- package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +1 -1
- package/lib/drama/skills/short-drama-write/scripts/screenplay_index.py +2 -2
- package/lib/drama/skills/short-drama-write/scripts/voice_sheet_check.py +1 -1
- package/lib/index.js +971 -46
- package/lib/index.js.map +4 -4
- package/lib/novel-to-game/LICENSE +21 -0
- package/lib/novel-to-game/README.md +180 -0
- package/lib/novel-to-game/README_ZH.md +178 -0
- package/lib/novel-to-game/VERSION +1 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +217 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/.vercelignore +3 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +130 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/compound_new_guofeng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/fate_coda.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/meng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/pan.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/pinger.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/xuee.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/yue.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_accord_five.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_afterglow_five.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_alliance.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day10.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day15.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day5.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/title_new_guofeng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/pan_pinger.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/pan_xuee.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_meng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pan.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pinger.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/meng/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/meng/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/meng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/pan.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/pinger.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/xuee.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/yue.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pan/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pan/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pinger/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pinger/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/xuee/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/xuee/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/meng/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/pan/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/pinger/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/xuee/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/yue/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/household/li_jiaoer.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/scene/gate_collector.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +1105 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +2539 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/index.html +18 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/assets.js +147 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/audio.js +332 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +7472 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +13077 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +3028 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +32 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +10 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/vercel.json +23 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/art/generated-art.json +161 -0
- package/lib/novel-to-game/examples/jin-ping-mei/example.json +12 -0
- package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +31 -0
- package/lib/novel-to-game/examples/jin-ping-mei/qa/playable-model.json +99 -0
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +41 -0
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +129 -0
- package/lib/novel-to-game/manifest.json +508 -0
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +73 -0
- package/lib/novel-to-game/skills/game-art-direction/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +119 -0
- package/lib/novel-to-game/skills/game-build/SKILL.md +84 -0
- package/lib/novel-to-game/skills/game-build/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +109 -0
- package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +56 -0
- package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +81 -0
- package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +37 -0
- package/lib/novel-to-game/skills/game-concept/SKILL.md +72 -0
- package/lib/novel-to-game/skills/game-concept/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +94 -0
- package/lib/novel-to-game/skills/game-qa/SKILL.md +50 -0
- package/lib/novel-to-game/skills/game-qa/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-qa/references/qa-contract.md +66 -0
- package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +45 -0
- package/lib/novel-to-game/skills/game-world-design/SKILL.md +63 -0
- package/lib/novel-to-game/skills/game-world-design/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +59 -0
- package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +53 -0
- package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +84 -0
- package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +56 -0
- package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +124 -0
- package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +77 -0
- package/lib/novel-to-game/skills/novel-game-analyze/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +65 -0
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +71 -0
- package/lib/novel-to-game/skills/novel-to-game/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +42 -0
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +51 -0
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +65 -0
- package/lib/oh-story/manifest.json +419 -309
- package/lib/oh-story/roles/character-designer.md +4 -4
- package/lib/oh-story/roles/consistency-checker.md +1 -1
- package/lib/oh-story/roles/narrative-writer.md +41 -42
- package/lib/oh-story/roles/story-architect.md +19 -23
- package/lib/oh-story/roles/story-explorer.md +8 -5
- package/lib/oh-story/skills/browser-cdp/SKILL.md +1 -1
- package/lib/oh-story/skills/story/SKILL.md +16 -9
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-cover/SKILL.md +1 -1
- package/lib/oh-story/skills/story-deslop/SKILL.md +10 -5
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +2 -1
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +64 -1
- package/lib/oh-story/skills/story-import/SKILL.md +21 -8
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +9 -10
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +2 -2
- package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +1 -1
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +14 -6
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +251 -0
- package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +98 -9
- package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +246 -0
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +4 -4
- package/lib/oh-story/skills/story-long-scan/SKILL.md +1 -1
- package/lib/oh-story/skills/story-long-write/SKILL.md +35 -21
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +2 -1
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +7 -3
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +6 -6
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/genre-readers.md +1 -1
- package/lib/oh-story/skills/{story-setup/references/agent-references/hooks-chapter.md → story-long-write/references/long-chapter-hooks.md} +5 -5
- package/lib/oh-story/skills/story-long-write/references/{quality-checklist.md → long-chapter-quality.md} +2 -1
- package/lib/oh-story/skills/story-long-write/references/long-format.md +42 -0
- package/lib/oh-story/skills/{story-setup/references/agent-references/genre-catalog.md → story-long-write/references/long-genre-catalog.md} +11 -97
- package/lib/oh-story/skills/story-long-write/references/{genre-core-mechanics.md → long-genre-mechanics.md} +1 -1
- package/lib/oh-story/skills/story-long-write/references/{reversal-toolkit.md → long-reversal.md} +18 -32
- package/lib/oh-story/skills/story-long-write/references/{hooks-suspense.md → long-suspense.md} +6 -6
- package/lib/oh-story/skills/story-long-write/references/opening-design.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +14 -6
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +32 -27
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +5 -4
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +17 -11
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +54 -54
- package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +64 -1
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +251 -0
- package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +303 -0
- package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +98 -9
- package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +246 -0
- package/lib/oh-story/skills/story-review/SKILL.md +26 -17
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +2 -1
- package/lib/oh-story/skills/story-review/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story-review/references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-review/references/{quality-checklist.md → review-quality.md} +22 -21
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +14 -6
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +64 -1
- package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +98 -9
- package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +246 -0
- package/lib/oh-story/skills/story-setup/SKILL.md +85 -41
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +72 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +55 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +2 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +9 -10
- 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/genre-readers.md +1 -1
- package/lib/oh-story/skills/{story-short-analyze/references/hooks-chapter.md → story-setup/references/agent-references/long-chapter-hooks.md} +5 -5
- package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +209 -0
- package/lib/oh-story/skills/{story-long-write/references/genre-catalog.md → story-setup/references/agent-references/long-genre-catalog.md} +11 -97
- package/lib/oh-story/skills/story-setup/references/agent-references/{genre-core-mechanics.md → long-genre-mechanics.md} +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +40 -0
- package/lib/oh-story/skills/{story-short-write/references/reversal-toolkit.md → story-setup/references/agent-references/long-reversal.md} +18 -32
- package/lib/oh-story/skills/{story-short-write/references/hooks-suspense.md → story-setup/references/agent-references/long-suspense.md} +6 -6
- package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/{emotional-methods.md → short-emotional-methods.md} +4 -4
- package/lib/oh-story/skills/{story-long-write/references/genre-writing-formulas.md → story-setup/references/agent-references/short-genre-formulas.md} +32 -44
- package/lib/oh-story/skills/story-setup/references/agent-references/short-quality.md +39 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/{reversal-toolkit.md → short-reversal.md} +29 -23
- package/lib/oh-story/skills/story-setup/references/agent-references/{hooks-suspense.md → short-suspense.md} +31 -31
- 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/writing-craft.md +55 -55
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +28 -28
- package/lib/oh-story/skills/story-short-analyze/references/{character-basics.md → analysis-character-basics.md} +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/{character-design-methods.md → analysis-character-design.md} +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/{character-relations.md → analysis-character-relations.md} +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/{hooks-paragraph.md → analysis-paragraph-hooks.md} +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/{genre-readers.md → analysis-reader-profile.md} +2 -2
- package/lib/oh-story/skills/story-short-analyze/references/analysis-report-style.md +45 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +65 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +77 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +82 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-patterns.md +50 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +98 -0
- package/lib/oh-story/skills/story-short-analyze/references/{genre-writing-techniques.md → analysis-writing-techniques.md} +21 -19
- package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +21 -28
- package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +17 -17
- package/lib/oh-story/skills/story-short-analyze/references/{quality-checklist.md → source-story-quality.md} +28 -49
- package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +2 -2
- package/lib/oh-story/skills/story-short-scan/SKILL.md +1 -1
- package/lib/oh-story/skills/story-short-write/SKILL.md +78 -55
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +6 -6
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +7 -7
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +5 -5
- package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +32 -44
- package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +20 -18
- package/lib/oh-story/skills/story-short-write/references/output-contract.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +18 -18
- package/lib/oh-story/skills/story-short-write/references/short-deslop.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/short-format.md +38 -8
- package/lib/oh-story/skills/story-short-write/references/{quality-checklist.md → short-prose-quality.md} +22 -21
- package/lib/oh-story/skills/story-short-write/references/short-reversal.md +355 -0
- package/lib/oh-story/skills/{story-short-analyze/references/hooks-suspense.md → story-short-write/references/short-suspense.md} +31 -31
- package/lib/oh-story/skills/story-short-write/references/submission-craft.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +31 -22
- package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +64 -1
- package/lib/oh-story/skills/story-short-write/scripts/check-delivery-contract.js +212 -0
- package/lib/oh-story/skills/story-short-write/scripts/check-phase2-contract.js +363 -0
- package/lib/types/client/drama-production-view.d.ts +34 -0
- package/lib/types/client/drama-production-view.d.ts.map +1 -0
- package/lib/types/client/drama-production.d.ts +92 -0
- package/lib/types/client/drama-production.d.ts.map +1 -0
- package/lib/types/client/file-activity.d.ts +9 -2
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/production-intents.d.ts +9 -0
- package/lib/types/client/production-intents.d.ts.map +1 -0
- package/lib/types/client/production-prompts.d.ts +9 -0
- package/lib/types/client/production-prompts.d.ts.map +1 -0
- package/lib/types/client/production-runtime.d.ts +58 -0
- package/lib/types/client/production-runtime.d.ts.map +1 -0
- package/lib/types/client/video-studio.d.ts +41 -0
- package/lib/types/client/video-studio.d.ts.map +1 -0
- package/lib/types/client/workbench-ui.d.ts +5 -0
- package/lib/types/client/workbench-ui.d.ts.map +1 -0
- package/lib/types/game-verification.d.ts +16 -0
- package/lib/types/game-verification.d.ts.map +1 -0
- package/lib/types/index.d.ts +5 -2
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/production-intent.d.ts +21 -0
- package/lib/types/production-intent.d.ts.map +1 -0
- package/lib/types/production-tool.d.ts +5 -0
- package/lib/types/production-tool.d.ts.map +1 -0
- package/lib/types/reference-tool.d.ts +6 -0
- package/lib/types/reference-tool.d.ts.map +1 -0
- package/lib/types/role-provider.d.ts.map +1 -1
- package/lib/types/role-tool.d.ts +3 -1
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts +7 -0
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/types/video-project.d.ts +42 -0
- package/lib/types/video-project.d.ts.map +1 -0
- package/lib/types/workspace-request-trust.d.ts +6 -0
- package/lib/types/workspace-request-trust.d.ts.map +1 -1
- package/lib/types/workspace-route.d.ts +20 -0
- package/lib/types/workspace-route.d.ts.map +1 -1
- package/lib/video-recap/CHANGELOG.md +282 -0
- package/lib/video-recap/LICENSE +21 -0
- package/lib/video-recap/README.en.md +257 -0
- package/lib/video-recap/README.md +255 -0
- package/lib/video-recap/manifest.json +684 -0
- package/lib/video-recap/skills/video-assemble/SKILL.md +97 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/LICENSE.duo-video +21 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +15 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_draft_meta_info.json +69 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_segment.json +84 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_video_material.json +98 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_draft.json +204 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_material_video.json +83 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_meta_material_value.json +23 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_project_info.json +133 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_segment.json +70 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_text_styles.json +30 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_yj_material_audio.json +41 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_yj_material_text.json +109 -0
- package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +88 -0
- package/lib/video-recap/skills/video-assemble/scripts/assemble.py +345 -0
- package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +34 -0
- package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +305 -0
- package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +94 -0
- package/lib/video-recap/skills/video-assemble/scripts/audio_automation.py +205 -0
- package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +555 -0
- package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +261 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_builders.py +767 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_model.py +111 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_optional.py +24 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +109 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_templates.py +37 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_timeline_contract.py +191 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_tracks.py +75 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_writer.py +394 -0
- package/lib/video-recap/skills/video-assemble/scripts/lib.py +239 -0
- package/lib/video-recap/skills/video-assemble/scripts/media.py +243 -0
- package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +477 -0
- package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +46 -0
- package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +486 -0
- package/lib/video-recap/skills/video-assemble/scripts/subtitle_core.py +376 -0
- package/lib/video-recap/skills/video-assemble/scripts/subtitle_render.py +88 -0
- package/lib/video-recap/skills/video-assemble/scripts/timeline.py +248 -0
- package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +89 -0
- package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +512 -0
- package/lib/video-recap/skills/video-cut/SKILL.md +90 -0
- package/lib/video-recap/skills/video-cut/scripts/cut.py +67 -0
- package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +320 -0
- package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +545 -0
- package/lib/video-recap/skills/video-cut/scripts/cut_render.py +348 -0
- package/lib/video-recap/skills/video-cut/scripts/lib.py +77 -0
- package/lib/video-recap/skills/video-cut/scripts/media_geometry.py +341 -0
- package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +249 -0
- package/lib/video-recap/skills/video-cut/scripts/sentence_boundaries.py +745 -0
- package/lib/video-recap/skills/video-recap/SKILL.md +216 -0
- package/lib/video-recap/skills/video-recap/references/config-playbook.md +61 -0
- package/lib/video-recap/skills/video-recap/references/creative-editing-playbook.md +225 -0
- package/lib/video-recap/skills/video-recap/references/data-schema.md +534 -0
- package/lib/video-recap/skills/video-recap/references/research-guide.md +74 -0
- package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +23 -0
- package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +251 -0
- package/lib/video-recap/skills/video-recap/scripts/doctor.py +483 -0
- package/lib/video-recap/skills/video-recap/scripts/final_qc.py +737 -0
- package/lib/video-recap/skills/video-recap/scripts/lib.py +242 -0
- package/lib/video-recap/skills/video-recap/scripts/materials.py +457 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +95 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_client.py +18 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_contract.py +9 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_evidence.py +371 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_observations.py +201 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_payload.py +227 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_report.py +362 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_runner.py +129 -0
- package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +338 -0
- package/lib/video-recap/skills/video-recap/scripts/recap.py +9 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +140 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +550 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_review.py +77 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +654 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +335 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +217 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +795 -0
- package/lib/video-recap/skills/video-script/SKILL.md +248 -0
- package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +225 -0
- package/lib/video-recap/skills/video-script/references/research-guide.md +75 -0
- package/lib/video-recap/skills/video-script/scripts/agent_brief.py +399 -0
- package/lib/video-recap/skills/video-script/scripts/agent_text.py +410 -0
- package/lib/video-recap/skills/video-script/scripts/brief_context.py +403 -0
- package/lib/video-recap/skills/video-script/scripts/brief_inputs.py +332 -0
- package/lib/video-recap/skills/video-script/scripts/brief_timeline.py +442 -0
- package/lib/video-recap/skills/video-script/scripts/deslop_qc.py +237 -0
- package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +492 -0
- package/lib/video-recap/skills/video-script/scripts/lib.py +327 -0
- package/lib/video-recap/skills/video-script/scripts/narration.py +12 -0
- package/lib/video-recap/skills/video-script/scripts/narration_lint.py +678 -0
- package/lib/video-recap/skills/video-script/scripts/review.py +42 -0
- package/lib/video-recap/skills/video-script/scripts/review_grounding.py +262 -0
- package/lib/video-recap/skills/video-script/scripts/review_response.py +761 -0
- package/lib/video-recap/skills/video-script/scripts/review_runner.py +200 -0
- package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +204 -0
- package/lib/video-recap/skills/video-script/scripts/timeline_fusion.py +199 -0
- package/lib/video-recap/skills/video-script/scripts/validate.py +164 -0
- package/lib/video-recap/skills/video-understanding/SKILL.md +75 -0
- package/lib/video-recap/skills/video-understanding/references/data-schema.md +299 -0
- package/lib/video-recap/skills/video-understanding/references/prompt-templates.md +37 -0
- package/lib/video-recap/skills/video-understanding/references/research-guide.md +74 -0
- package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +399 -0
- package/lib/video-recap/skills/video-understanding/scripts/agent_text.py +410 -0
- package/lib/video-recap/skills/video-understanding/scripts/asr.py +260 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief.py +12 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief_context.py +403 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +332 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +442 -0
- package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +647 -0
- package/lib/video-recap/skills/video-understanding/scripts/deslop_qc.py +237 -0
- package/lib/video-recap/skills/video-understanding/scripts/detect.py +513 -0
- package/lib/video-recap/skills/video-understanding/scripts/extract.py +62 -0
- package/lib/video-recap/skills/video-understanding/scripts/lib.py +470 -0
- package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +678 -0
- package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +204 -0
- package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +507 -0
- package/lib/video-recap/skills/video-understanding/scripts/timeline_fusion.py +199 -0
- package/lib/video-recap/skills/video-understanding/scripts/understand.py +9 -0
- package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +216 -0
- package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +327 -0
- package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +367 -0
- package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +162 -0
- package/lib/video-recap/skills/video-understanding/scripts/vlm.py +705 -0
- package/lib/video-recap/skills/video-voiceover/SKILL.md +81 -0
- package/lib/video-recap/skills/video-voiceover/scripts/dub.py +637 -0
- package/lib/video-recap/skills/video-voiceover/scripts/fish_audio.py +109 -0
- package/lib/video-recap/skills/video-voiceover/scripts/lib.py +421 -0
- package/lib/video-recap/skills/video-voiceover/scripts/tts_audio.py +113 -0
- package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +782 -0
- package/package.json +57 -41
- package/lib/drama/skills/short-drama/references/lifecycle-commands.md +0 -130
- package/lib/oh-story/skills/story-deslop/scripts/check-outline-copy.js +0 -241
- package/lib/oh-story/skills/story-long-write/references/format-and-structure.md +0 -169
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-writing-formulas.md +0 -444
- package/lib/oh-story/skills/story-setup/references/agent-references/quality-checklist.md +0 -247
- package/lib/oh-story/skills/story-short-analyze/references/anti-ai-writing.md +0 -582
- package/lib/oh-story/skills/story-short-analyze/references/banned-words.md +0 -147
- package/lib/oh-story/skills/story-short-analyze/references/genre-catalog.md +0 -490
- package/lib/oh-story/skills/story-short-analyze/references/genre-core-mechanics.md +0 -425
- package/lib/oh-story/skills/story-short-analyze/references/genre-writing-formulas.md +0 -453
- /package/lib/oh-story/skills/{story-long-write/references/hooks-chapter.md → story-setup/references/agent-references/short-chapter-hooks.md} +0 -0
- /package/lib/oh-story/skills/{story-long-write/references/hooks-paragraph.md → story-setup/references/agent-references/short-paragraph-hooks.md} +0 -0
|
@@ -1,153 +1,146 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: short-drama
|
|
3
|
-
description:
|
|
3
|
+
description: 基于文件系统初始化和继续短剧或漫剧项目,提供 creator-first 五文档路由、本地 Dashboard、制作形态与 Look Development 决策。用户提出“创建/继续短剧项目”“看进度/下一步”“做 Look Development”“打开 dashboard/短剧创作台”“导出制作资料”,或任务跨多个创作阶段时使用;明确的写作、资产、提示词、分镜或审查请求由对应子 skill 直接处理。
|
|
4
4
|
license: MIT
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# 短剧创作路由
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
本技能负责项目初始化、跨阶段路由、制作形态与 Dashboard。各阶段正文由对应 owner 完成。
|
|
10
10
|
|
|
11
11
|
## Quick Start
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
所有项目统一使用 [creator-first 工作流](references/creator-workflow.md):每集按需维护
|
|
14
|
+
`剧本.md`、`视觉设定.md`、`分镜.md`、`图片提示词.md`、`视频提示词.md`,不建立并行的结构化创作真相。
|
|
15
|
+
具体写法见 [五份创作文档](references/creator-documents.md)。
|
|
16
|
+
|
|
17
|
+
## 路由
|
|
18
|
+
|
|
19
|
+
| 用户要做什么 | owner / 行为 |
|
|
20
|
+
|---|---|
|
|
21
|
+
| 开发点子、系列承诺、改编和分集地图 | `$short-drama-develop`,仅在用户需要时 |
|
|
22
|
+
| 已有多集完整剧本/散稿识别分集 | `$short-drama-develop` 按实际边界建立临时索引 |
|
|
23
|
+
| 分析长篇原著 | `$short-drama-novel-analyze`,仅在用户需要时 |
|
|
24
|
+
| 写或改单集剧本 | `$short-drama-write` → `剧本.md` |
|
|
25
|
+
| 拆人物、造型、地点、道具 | `$short-drama-assets` → `视觉设定.md` |
|
|
26
|
+
| 写资产图片提示词 | `$short-drama-image-prompts` → `图片提示词.md` |
|
|
27
|
+
| 做镜头和冻结关键帧 | `$short-drama-storyboard` → `分镜.md` |
|
|
28
|
+
| 写视频/时间线音乐提示词 | `$short-drama-video-prompts` → `视频提示词.md` |
|
|
29
|
+
| 实际生成媒体 | `$short-drama-produce`,先预览,再显式确认,最后运行 |
|
|
30
|
+
| 审稿或校验 | `$short-drama-review`,仅在用户点名时 |
|
|
31
|
+
| 初始化、Dashboard、归档点名文档 | 本技能 |
|
|
32
|
+
|
|
33
|
+
`项目开发/` 中的长材料分析与分集索引是可选分析工作区,不参与单集布局判定;写任何一集仍只维护
|
|
34
|
+
该集的五份 creator-first Markdown。
|
|
35
|
+
|
|
36
|
+
现成剧本可直接拆资产;已有视觉事实可直接写图片提示词或分镜;已有分镜可直接写视频提示词。
|
|
37
|
+
不要为补齐名义流水线伪造上游。
|
|
38
|
+
|
|
39
|
+
## 执行请求
|
|
40
|
+
|
|
41
|
+
1. 找到用户给出的项目或资料,只读当前任务的直接输入。
|
|
42
|
+
2. 把用户点名的完整范围交给相应 owner;批次只控制上下文,自动续跑。
|
|
43
|
+
3. 只有真实创作分叉才询问;不要拿 schema、目录、事务或检查器询问创作者。
|
|
44
|
+
4. 范围完成后一次回报完成内容、关键决定、真实未决项和可选下一步。
|
|
45
|
+
5. 不自动开始用户没点名的审查、归档或生产。
|
|
46
|
+
6. 请求横跨视觉设定、图片提示词、分镜或视频提示词时,结束前按当前五文档做一次视觉依赖对账;
|
|
47
|
+
不因图片提示词和分镜可并行,就把后完成的一支留在另一支的旧引用之外。
|
|
48
|
+
7. 视频提示词请求遇到「输入参考图:无」或仍带「待补参考图」时,先路由分镜 owner 检查项目已有图片并刷新绑定。有匹配图就同请求续跑;有必要图缺失就列表停下。
|
|
49
|
+
只有用户明确选择文生视频才允许无图续跑,不把“没有手工指定”当成这个选择。这一轮如果镜头还缺「视觉依据」,
|
|
50
|
+
同时按已成稿的冻结关键帧回填;两条依据描述同一格画面,不要只补一条。
|
|
51
|
+
8. 用户在会话里点名目标视频模型(“按 MiniMax H3 写”“用 Seedance 2.5”)而 `short-drama.json` 的
|
|
52
|
+
`production_profile` 还是 `unset` 时,先把这个选择连同它带来的原生时长、参考方式和正文语言写进档案,
|
|
53
|
+
再继续下游阶段。会话里的一句点名不落到档案上,下一轮就会退回通用路径,方言和时长要重猜。
|
|
54
|
+
|
|
55
|
+
## 初始化与 Dashboard
|
|
56
|
+
|
|
57
|
+
需要项目配置时运行:
|
|
14
58
|
|
|
15
59
|
```bash
|
|
16
|
-
python3 {技能目录}/scripts/selftest.py
|
|
17
60
|
python3 {技能目录}/scripts/project_tool.py init ./my-drama --title "示例短剧"
|
|
18
61
|
```
|
|
19
62
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
[creator-workflow.md](references/creator-workflow.md),所有权见
|
|
33
|
-
[contract-and-ownership.md](references/contract-and-ownership.md)。
|
|
63
|
+
直接输入已经确认创作者说明语言、提示词语言、画幅、集数或单集目标时长时,首次 `init` 就带上对应的
|
|
64
|
+
`--language`、`--prompt-language`、`--aspect-ratio`、`--episode-count`、`--target-seconds`;只省略
|
|
65
|
+
未确认项,不让 Brief 中的确定事实留成配置里的 `null`。写入已确认的生产档案时,状态统一为
|
|
66
|
+
`accepted`;`unset` 只表示尚未决定,不另造中间状态。
|
|
67
|
+
`init` 只建立配置和空目录;第一次创作时再把文档写入 `剧集/<EP>/`,不预建空文件。
|
|
68
|
+
项目已经建好、用户之后才定下目标视频模型时,把选择写进档案,并同时展示它对时长区间、参考方式和
|
|
69
|
+
正文语言的影响。档案只接受已发布并已接受的创作者决策,所以是三步,不是一步。先写一行决策记录
|
|
70
|
+
(`accepted_value` 就是要落进 `choices` 的对象本身,不要再包一层 `choices`):
|
|
71
|
+
|
|
72
|
+
```jsonl
|
|
73
|
+
{"decision_id":"CD-H3","status":"accepted","target_locators":[{"src":"short-drama","field":"/creator_authority/production_profile/choices"}],"accepted_value":{"target_video_model":"minimax-h3","video_prompt_dialect":"minimax-h3","video_prompt_language":"en","native_duration_seconds":{"min":4,"max":15},"supported_generation_modes":["text","first_frame","first_last_frame","reference"],"audio_generation":"same_pass"}}
|
|
74
|
+
```
|
|
34
75
|
|
|
35
|
-
|
|
76
|
+
再发布、接受、写入:
|
|
36
77
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
| 做覆盖设计、镜头和冻结关键帧 | `$short-drama-storyboard` |
|
|
46
|
-
| 写动作、表演、运镜、声音视频提示词 | `$short-drama-video-prompts` |
|
|
47
|
-
| 写主题曲/配乐意图或校验时间线音乐规格 | `$short-drama-video-prompts`,歌词必须由创作者提供并接受 |
|
|
48
|
-
| 按已确认规格实际生成图片、视频、TTS 或时间线音乐 | `$short-drama-produce` 先展示本次 job,得到明确确认后才执行 |
|
|
49
|
-
| 定制作形态、视觉方向或 Look Development 路径 | `$short-drama` |
|
|
50
|
-
| 校验、审稿或发修订请求 | `$short-drama-review` |
|
|
51
|
-
| 打开创作台、看内容和进度 | `$short-drama dashboard` |
|
|
78
|
+
```bash
|
|
79
|
+
python3 {技能目录}/scripts/project_tool.py publish <project> --owner short-drama \
|
|
80
|
+
--artifact-id AR-PROFILE --output "创作者决策/production-profile.jsonl=输入/profile.jsonl"
|
|
81
|
+
python3 {技能目录}/scripts/project_tool.py accept <project> --artifact-id AR-PROFILE --decision accepted
|
|
82
|
+
python3 {技能目录}/scripts/project_tool.py set-authority <project> \
|
|
83
|
+
--field /creator_authority/production_profile/choices \
|
|
84
|
+
--decision-ref "创作者决策/production-profile.jsonl#CD-H3"
|
|
85
|
+
```
|
|
52
86
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
[look-development.md](references/look-development.md)。
|
|
87
|
+
各字段取值由命中的模型方言给出:`$short-drama-video-prompts` 的 MiniMax H3 / Seedance 方言文件都写了
|
|
88
|
+
推荐档案。写完用 `status` 复核 `video_model_profile` 是否已经出现。
|
|
56
89
|
|
|
57
|
-
|
|
58
|
-
可直接进入资产图片提示词;已接受剧本加资产可直接进入分镜;已接受镜头与关键帧可直接进入
|
|
59
|
-
视频提示词。只补建对应技能拥有的、确实缺少的必要产物,绝不倒补虚构的创作简报或系列大纲。
|
|
90
|
+
项目定位与安全写入见 [运行预检](references/runtime-preflight.md)。用户明确要求 Dashboard 时运行:
|
|
60
91
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
92
|
+
```bash
|
|
93
|
+
python3 {技能目录}/scripts/dashboard_server.py --workspace <workspace> --port 0 --detach --open
|
|
94
|
+
```
|
|
64
95
|
|
|
65
|
-
|
|
96
|
+
`--detach` 让服务进程脱离当前 shell 独立运行,会话结束、终端关闭或智能体退出都不会带走它;
|
|
97
|
+
链接因此在整个创作期间保持有效。运行中的地址、端口和 pid 记录在
|
|
98
|
+
`<workspace>/.short-drama/dashboard.json`(仅本人可读),日志在同目录 `dashboard.log`:
|
|
66
99
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
100
|
+
```bash
|
|
101
|
+
python3 {技能目录}/scripts/dashboard_server.py --workspace <workspace> --status # 打印当前链接
|
|
102
|
+
python3 {技能目录}/scripts/dashboard_server.py --workspace <workspace> --stop # 停止
|
|
103
|
+
```
|
|
71
104
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
Reviewer 给出证据和修改请求,内容仍由原 owner 修改。
|
|
105
|
+
同一 workspace 已有在跑的 Dashboard 时,再次启动只会打印同一个链接,不再开第二个端口;确实要换
|
|
106
|
+
端口或换令牌时加 `--restart`。不加 `--detach` 时行为不变:前台运行,Ctrl-C 结束。
|
|
75
107
|
|
|
76
|
-
|
|
108
|
+
Dashboard 展示和编辑创作文件,不负责工作流编排或媒体生产。
|
|
77
109
|
|
|
78
|
-
|
|
110
|
+
## 项目级创作决定
|
|
79
111
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
3. 将制作形态与视觉方向保持为 `unset`,告诉创作者下一个最有用的选择。
|
|
83
|
-
4. 创作者定下形态、方向、播放面或集长目标后,把这条决定发布并接受为一条创作者决策记录,
|
|
84
|
-
再用 `set-authority` 写回 `short-drama.json`,让下游读到已 `accepted` 的值。
|
|
112
|
+
制作形态、视觉方向、播放面和集长目标确实约束多个阶段时,展示选择及影响后由用户决定。
|
|
113
|
+
Look Development 是可选分支,不是进入图片提示词或分镜的固定门槛。
|
|
85
114
|
|
|
86
|
-
|
|
115
|
+
按问题只读取一份相关知识:
|
|
87
116
|
|
|
88
|
-
|
|
117
|
+
- 规则分级与 owner 路由:[规则与路由索引](references/knowhow-index.md)
|
|
118
|
+
- 输出语言、稳定 ID、所有权与安全边界:[契约与所有权](references/contract-and-ownership.md)
|
|
119
|
+
- 实拍、二维、三维、水墨、Q 版、国漫的形态差异:[制作形态](references/production-form-profiles.md)
|
|
120
|
+
- 需要比较代表帧时:[Look Development](references/look-development.md)
|
|
121
|
+
- 参考图能控制什么:[参考角色](references/reference-roles.md)
|
|
122
|
+
- 遮挡、延迟揭示和观众知情时机:[观众揭示](references/audience-reveal.md)
|
|
123
|
+
- 母版、补拍和替代版的职责:[补拍与替代](references/pickup-and-alternate.md)
|
|
89
124
|
|
|
90
|
-
|
|
91
|
-
`$short-drama dashboard` 时:
|
|
125
|
+
## 生产与交付边界
|
|
92
126
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
3. 从本技能安装目录运行:
|
|
127
|
+
外部生产永远保留 `preview -> explicit confirm -> run`。归档只复制用户点名的当前文档和成品,排除
|
|
128
|
+
私有输入、凭据、绝对路径与隐藏运行状态;不为归档补造审批、哈希或第二套内容。
|
|
96
129
|
|
|
97
|
-
|
|
98
|
-
python3 <short-drama-skill-dir>/scripts/dashboard_server.py --workspace <workspace> --port 0 --open
|
|
99
|
-
```
|
|
130
|
+
用户问“做完了怎么导出/交付给我”时,用 `export` 打包当前状态:
|
|
100
131
|
|
|
101
|
-
|
|
132
|
+
```bash
|
|
133
|
+
python3 {技能目录}/scripts/project_tool.py export <project> --out <项目外目录>
|
|
134
|
+
```
|
|
102
135
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
136
|
+
它把每集现有的五份创作文档和 `剧集/<EP>/制作成果/` 复制到 `--out`,附 `manifest.json` 与
|
|
137
|
+
`checksums.sha256`,并排除 `输入/`、`交付/` 和 `.short-drama/`。只要一部分时加
|
|
138
|
+
`--episode EP001`(可重复);只要文字时加 `--no-media`;覆盖旧目录加 `--overwrite`。
|
|
139
|
+
`--out` 必须在项目之外。
|
|
107
140
|
|
|
108
|
-
|
|
141
|
+
`export` 是**当前状态快照**,manifest 里 `asserts_approval` 恒为 `false`:它不声称任何审查或
|
|
142
|
+
创作者接受。需要带审批证据的正式交付包仍然只有 `package`/`verify` 那条路径。
|
|
109
143
|
|
|
110
|
-
|
|
144
|
+
## 安装维护
|
|
111
145
|
|
|
112
|
-
|
|
113
|
-
|---|---|
|
|
114
|
-
| `init` | 初始化最小项目 |
|
|
115
|
-
| `status` | 显示项目与产物状态 |
|
|
116
|
-
| `publish` | 原子发布一项产物并记录它的直接输入 |
|
|
117
|
-
| `accept` | 记录创作者接受或拒绝当前版本 |
|
|
118
|
-
| `review` | 记录当前版本的复核结论 |
|
|
119
|
-
| `set-authority` | 把已接受的创作者决策写回制作形态、视觉方向、播放面或集长目标 |
|
|
120
|
-
| `package` | 打包当前已确认且复核通过的文本/JSON |
|
|
121
|
-
| `verify` | 用交付校验和检查打包结果是否被改动 |
|
|
122
|
-
|
|
123
|
-
完整示例见 [lifecycle-commands.md](references/lifecycle-commands.md)。单文件发布用临时文件与
|
|
124
|
-
原子替换完成。
|
|
125
|
-
|
|
126
|
-
## 状态与修订
|
|
127
|
-
|
|
128
|
-
对创作者只使用六种状态:
|
|
129
|
-
|
|
130
|
-
- `draft`:尚未发布;
|
|
131
|
-
- `needs_confirmation`:等待创作者决定;
|
|
132
|
-
- `accepted`:创作者已接受;
|
|
133
|
-
- `revise`:创作者或 reviewer 要求修改;
|
|
134
|
-
- `approved`:当前版本已确认且复核通过;
|
|
135
|
-
- `update_needed`:输出或某个直接输入已经变化,需要重新发布。
|
|
136
|
-
|
|
137
|
-
状态在读取时核对当前文件,不把过期传播写回整个项目。修订时只说明负责技能、语义变化、
|
|
138
|
-
直接受影响的产物和下一步;重新发布会清除该产物旧的接受与复核结果,不触碰无关产物。
|
|
139
|
-
除非诊断需要,不向创作者显示内部 hash 或原始状态文件。
|
|
140
|
-
|
|
141
|
-
## 交付
|
|
142
|
-
|
|
143
|
-
先由 `$short-drama-review` 复核,再用 `package` 打包。包内只收录明确选择的、当前状态为
|
|
144
|
-
`approved` 的文本和 JSON,并记录有意省略项;二进制媒体、非公开输入、机器状态、绝对路径、
|
|
145
|
-
凭据和未批准草稿不进入文本交付包。`verify` 检查清单、校验和及未登记新增文件。
|
|
146
|
-
|
|
147
|
-
## 边界
|
|
148
|
-
|
|
149
|
-
- 图片、视频和 TTS 生产只由 `$short-drama-produce` 在展示准确 job 并取得本次明确确认后执行;
|
|
150
|
-
其他技能不直接调用生成服务。
|
|
151
|
-
- 运行时不检索外部或非公开生产来源。
|
|
152
|
-
- 不把别处案例提升为项目定律。
|
|
153
|
-
- 语义冲突不静默修复;不明外部改动由创作者选择保留或重做。
|
|
146
|
+
只有安装、升级或排障时运行 `python3 scripts/selftest.py`。
|
|
@@ -1,74 +1,21 @@
|
|
|
1
1
|
# 观众此刻可以知道什么
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
背影、门缝、画外声、浅景深和遮挡会决定观众何时知道一个人是谁、看见证据或发现门后有人。
|
|
4
|
+
需要同时防两种错:该给的信息被漂亮构图挡住;不该给的信息被镜头提前泄露。
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
## 一条事实一条判断
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
- 剧本只允许观众先看到鞋和停步位置,结果正脸提前露出来——**不该给的给了**。
|
|
8
|
+
对每个有揭示时机的事实,在对应 `SHOT-...` 下写清:
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
- **事实来源**:来自哪个场景 ID、对白、动作或画面文字;
|
|
11
|
+
- **本镜权限**:现在展示,还是暂时扣住;
|
|
12
|
+
- **可见/可听载体**:观众具体能看到或听到什么;
|
|
13
|
+
- **释放时机**:若暂时扣住,在哪个可见事件后释放;
|
|
14
|
+
- **保护方法**:靠遮挡、景深、画外声、光线或构图怎样实现;
|
|
15
|
+
- **戏剧理由**:为什么这个时机改变理解或压力。
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
同一镜头里“来者认识主角”和“来者是谁”是两件事:可以让旧称呼先从画外传来,同时让来者的脸
|
|
18
|
+
留在暗处。揉成一句“稍后揭示”,下游就无法分别处理声音和身份。
|
|
14
19
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
同一个镜头里,"这人是谁"和"他手里有什么"是两件独立的事,可以有完全不同的揭示条件。
|
|
18
|
-
揉成一句,下游就只能一起放或一起收——所以 `audience_visibility` **按事实分条**,
|
|
19
|
-
不是每镜一条。
|
|
20
|
-
|
|
21
|
-
每条记录写清五项:
|
|
22
|
-
|
|
23
|
-
| 字段 | 回答什么 |
|
|
24
|
-
|---|---|
|
|
25
|
-
| `fact` | 这条管的是哪一个具体事实 |
|
|
26
|
-
| `source_ref` | 这个揭示义务来自剧本的哪一段 |
|
|
27
|
-
| `permission` | 现在就给(`show_now`)还是先扣住(`withhold_now`) |
|
|
28
|
-
| `carrier` | 观众此刻能看见或听见的是什么 |
|
|
29
|
-
| `reveal_trigger` / `protection_method` / `rationale` | 什么时候放、靠什么扣住、为什么 |
|
|
30
|
-
|
|
31
|
-
### 合成示例
|
|
32
|
-
|
|
33
|
-
一个镜头里,观众要听见有人叫出主角的旧称呼(说明来者认识他),但**不能**看到来者的脸。
|
|
34
|
-
|
|
35
|
-
`audience_visibility` 所在的 `shots.jsonl` 在第一行声明本文件引用到的上游快照:
|
|
36
|
-
|
|
37
|
-
```json
|
|
38
|
-
{"record_type":"sources","schema_version":"1.0.0","sources":{"screenplay":{"owner":"short-drama-write","artifact":"剧集/EP001/screenplay.md"}}}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
数组里每条只写快照键和记录 ID:
|
|
42
|
-
|
|
43
|
-
```json
|
|
44
|
-
[
|
|
45
|
-
{
|
|
46
|
-
"fact": "来者认识主角的旧身份",
|
|
47
|
-
"source_ref": {"src": "screenplay", "record_id": "BLK-EP001-SC003-A02"},
|
|
48
|
-
"permission": "show_now",
|
|
49
|
-
"carrier": "画外一声旧称呼,主角闻声停手",
|
|
50
|
-
"reveal_trigger": "对方开口",
|
|
51
|
-
"rationale": "本镜必须让观众意识到主角被认出来了"
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
"fact": "来者是谁",
|
|
55
|
-
"source_ref": {"src": "screenplay", "record_id": "BLK-EP001-SC003-A05"},
|
|
56
|
-
"permission": "withhold_now",
|
|
57
|
-
"carrier": "只有门框边的一只手和影子",
|
|
58
|
-
"protection_method": "来者留在景深之外,不进正面光",
|
|
59
|
-
"reveal_trigger": "下一场推门进屋时",
|
|
60
|
-
"rationale": "身份揭示是场末的转折,提前露脸会让那一下失效"
|
|
61
|
-
}
|
|
62
|
-
]
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
两条各有各的条件:**声音放,脸扣住**。写成一条就做不到这件事。
|
|
66
|
-
|
|
67
|
-
## 不是"神秘感越多越好"
|
|
68
|
-
|
|
69
|
-
扣住信息本身没有价值,它只在为后面某个具体时刻服务时才有价值。所以
|
|
70
|
-
`withhold_now` 必须写出 `reveal_trigger`——说不出什么时候放,就说明这不是设计,
|
|
71
|
-
只是没想清楚。
|
|
72
|
-
|
|
73
|
-
审查时同时核对两侧:原文此刻**允许**透露什么,以及本镜**必须**传达什么。
|
|
74
|
-
只评价构图是否漂亮的审查,抓不到这类缺陷。
|
|
20
|
+
扣住信息本身没有价值;说不出何时释放,就说明还没完成设计。审查时同时核对原文此刻允许透露什么,
|
|
21
|
+
以及本镜必须让观众明白什么。
|
|
@@ -1,94 +1,43 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 契约与所有权
|
|
2
2
|
|
|
3
|
-
##
|
|
4
|
-
|
|
5
|
-
1. Project flow
|
|
6
|
-
2. Runtime path ownership
|
|
7
|
-
3. Output language contract
|
|
8
|
-
4. Stable identities and references
|
|
9
|
-
5. Rule classes
|
|
10
|
-
6. Trust and file safety
|
|
11
|
-
|
|
12
|
-
## Project flow
|
|
3
|
+
## 工作流不是瀑布
|
|
13
4
|
|
|
14
5
|
```text
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
6
|
+
开发? -> 剧本 -> 视觉设定 -> 图片提示词
|
|
7
|
+
\-> 分镜 -> 视频提示词
|
|
8
|
+
\-> 明确确认后的媒体生产
|
|
18
9
|
```
|
|
19
10
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
## Runtime path ownership
|
|
24
|
-
|
|
25
|
-
`project_tool.py` does not contain a registry mapping business paths to skill names. The first published artifact
|
|
26
|
-
claims its output paths in project state, and another artifact cannot silently overwrite those paths. Input,
|
|
27
|
-
delivery and machine-state roots remain protected regardless of owner name.
|
|
11
|
+
可以从任一已有材料直接进入;Look Development 和审查都按需发生。每个 owner 只修改自己的 Markdown,
|
|
12
|
+
引用上游可见事实,但不静默改写它们。
|
|
28
13
|
|
|
29
|
-
|
|
30
|
-
facts but may not silently redefine them. A reviewer requests changes; the responsible skill edits its source.
|
|
14
|
+
## 输出语言
|
|
31
15
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
| Field | Governs | Default |
|
|
16
|
+
| 内容 | 有项目配置时 | 独立任务默认 |
|
|
35
17
|
|---|---|---|
|
|
36
|
-
| `short-drama.json#/language` |
|
|
37
|
-
| `short-drama.json#/format/prompt_language` |
|
|
38
|
-
|
|
39
|
-
Creator-facing prose follows `language`. Prompt bodies follow `prompt_language`. Depicted speech and on-screen text
|
|
40
|
-
come from accepted story/asset facts, not from either description-language setting.
|
|
41
|
-
|
|
42
|
-
## Stable identities and references
|
|
18
|
+
| 创作者可读说明与审查 | `short-drama.json#/language` | 用户当前语言 |
|
|
19
|
+
| 图片、关键帧的可复制正文 | `short-drama.json#/format/prompt_language` | `en` |
|
|
20
|
+
| 视频的可复制正文 | 目标视频模型档案的 `production_profile.choices.video_prompt_language`;未声明时回退 `format.prompt_language` | 根据目标视频模型确认;未声明时使用用户当前语言 |
|
|
43
21
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
For cross-artifact references, a file declares each upstream snapshot once, and every reference names that
|
|
48
|
-
declaration plus the record it points at.
|
|
49
|
-
|
|
50
|
-
A `.jsonl` file declares them on its first line:
|
|
51
|
-
|
|
52
|
-
```json
|
|
53
|
-
{"record_type":"sources","schema_version":"1.0.0","sources":{"screenplay-index":{"owner":"short-drama-write","artifact":"剧集/EP001/screenplay-index.jsonl"}}}
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
A `.json` file uses a top-level `"sources"` object with the same entries. A reference is then:
|
|
57
|
-
|
|
58
|
-
```json
|
|
59
|
-
{"src": "screenplay-index", "record_id": "BLK-EP001-SC001-A01", "field": "/text"}
|
|
60
|
-
```
|
|
22
|
+
创作者说明、通用提示词语言和视频模型提示词语言互相独立;画面中的对白和可读文字来自剧本/视觉事实,
|
|
23
|
+
不由描述语言推断。
|
|
61
24
|
|
|
62
|
-
|
|
63
|
-
file, and one artifact is declared under one key. `owner` and the project-relative `artifact` identify authority.
|
|
64
|
-
`record_id` and `field` are optional selectors, and a reference pointing at a whole artifact keeps `src` alone.
|
|
65
|
-
`authority` (`accepted` or `candidate`) belongs to the individual reference, because one snapshot can be read at
|
|
66
|
-
different authority levels by different references. Do not copy whole authoritative values into consumers, and do
|
|
67
|
-
not create self-references. A `sources` entry names the artifact the file was written against by `owner` and
|
|
68
|
-
`artifact` only — no digest. Bytes are compared by the tool, in lifecycle state and delivery checksums, and that is not
|
|
69
|
-
user-supplied lifecycle evidence and does not drive transitive invalidation.
|
|
25
|
+
## 稳定身份与引用
|
|
70
26
|
|
|
71
|
-
|
|
27
|
+
创作文档条目使用创作者可见的稳定 ID:`EP001-SC001`、`IMG-...`、`SHOT-...`、`MOTION-...`。其中 `IMG-...` 专属《图片提示词.md》的提示词标题,不代表已有图片。显示名可以改变,身份不因此改变。跨文档条目引用直接写这些 ID;不写哈希、内部路径、隐藏状态或第二套 record ID。
|
|
72
28
|
|
|
73
|
-
|
|
74
|
-
- `reviewed_invariant`: semantic obligation; a reviewer may request revision.
|
|
75
|
-
- `craft_default`: usually useful, but creator intent may override it.
|
|
76
|
-
- `taste_option`: present alternatives; never block by itself.
|
|
29
|
+
真实输入参考图不是图片提示词条目,所以每张图使用独立稳定的 `REF-...` 槽位,槽位内写显式顺序、可见项目相对路径、中文名称、用途和控制范围。它不使用 `IMG-...`;路径只用 `/` 分隔,不写绝对路径、Windows 盘符/网络路径或项目外路径。
|
|
77
30
|
|
|
78
|
-
|
|
79
|
-
creator explicitly chose them as format constraints.
|
|
31
|
+
## 规则分级
|
|
80
32
|
|
|
81
|
-
|
|
33
|
+
- `structural_invariant`:本地可证明的引用、ID、算术或显式矛盾;
|
|
34
|
+
- `reviewed_invariant`:需要结合语义证据判断的义务;
|
|
35
|
+
- `craft_default`:通常有效,但创作者可以说明理由覆盖;
|
|
36
|
+
- `taste_option`:表达选择,不能单独阻断。
|
|
82
37
|
|
|
83
|
-
|
|
84
|
-
locally configured adapter without a shell; that adapter owns any provider SDK/API access and reads credentials from
|
|
85
|
-
its environment or system store. Released skills do not retrieve external or private production sources at runtime.
|
|
86
|
-
Do not ship private identifiers, plot passages, prompt sentences, URLs, user data or credentials.
|
|
38
|
+
字数、镜头数、情绪曲线和案例配方不是通用结构门槛。
|
|
87
39
|
|
|
88
|
-
|
|
89
|
-
delivery under `交付/`; neither is an owner publication target. Text/JSON publication validates all sources before
|
|
90
|
-
writing and replaces each target atomically under one project lock. A crash cannot expose a partially written file;
|
|
91
|
-
rerun the command to continue. Unknown external edits are never silently overwritten.
|
|
40
|
+
## 信任与文件安全
|
|
92
41
|
|
|
93
|
-
|
|
94
|
-
|
|
42
|
+
普通创作不联网。实际媒体生产只允许项目外 adapter 读取环境凭据,并始终经过
|
|
43
|
+
`preview -> explicit confirm -> run`。不要把私有输入、凭据、绝对路径或非公开观察写入可交付文档。
|