@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
|
@@ -16,10 +16,8 @@
|
|
|
16
16
|
它对应哪个资产,可以避免把同一人物的几套衣服拆成几个人,也能避免把两个同称谓的人
|
|
17
17
|
误并成一人。
|
|
18
18
|
|
|
19
|
-
**`structural_invariant` AST-01**:
|
|
20
|
-
|
|
21
|
-
`{"src":"screenplay-index","record_id":"BLK-EP003-SC004-A01"}`。行号只能帮助阅读,
|
|
22
|
-
不能代替稳定来源。
|
|
19
|
+
**`structural_invariant` AST-01**: 每个出现判断都要指向 `剧本.md` 中准确的场景 ID,并用动作、
|
|
20
|
+
对白或必要短引文说明依据。行号只能帮助阅读,不能代替稳定场景来源。
|
|
23
21
|
|
|
24
22
|
## 逐段检查,而不是只找名词
|
|
25
23
|
|
|
@@ -48,17 +46,16 @@
|
|
|
48
46
|
|
|
49
47
|
| 内容 | 字段用途 | 写法 |
|
|
50
48
|
|---|---|---|
|
|
51
|
-
| 剧本段和场次位置 |
|
|
52
|
-
| 剧本明示的可见事实 |
|
|
53
|
-
| 拟绑定的资产 |
|
|
54
|
-
| 连续性变化 |
|
|
49
|
+
| 剧本段和场次位置 | 来源 | 场景 ID 加动作/对白标签或必要短引文;不复制整段正文 |
|
|
50
|
+
| 剧本明示的可见事实 | 可见事实 | 简短摘义,并指回同一场景 |
|
|
51
|
+
| 拟绑定的资产 | 资产判断 | 只保留复用、新变体、新身份或未决结论 |
|
|
52
|
+
| 连续性变化 | 状态变化 | 指向 `视觉设定.md` 中对应身份与前后状态 |
|
|
55
53
|
|
|
56
54
|
不要把推测伪装成可见事实。可以直接推出的结果也要说明依据,例如“匣盖被推开”可以
|
|
57
55
|
记为 `open`;“顾禾很内疚”不能只因她低头就升级成资产事实。
|
|
58
56
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
文件互相等待对方先落盘。
|
|
57
|
+
决定尚未形成时就在对应条目标“未决”,列候选、缺失证据和影响。未来才会发生的连续性变化只写
|
|
58
|
+
“需要同步”的说明,不为尚不存在的文件建立占位记录。
|
|
62
59
|
|
|
63
60
|
## 称谓、代词和匿名对象
|
|
64
61
|
|
|
@@ -39,6 +39,10 @@ State 记录可变而需跟踪的事实:
|
|
|
39
39
|
- 组装、封条、消耗量或功能状态;
|
|
40
40
|
- 变化原因与有效范围。
|
|
41
41
|
|
|
42
|
+
物件若持续承担人物的支撑、固定、负重或行动条件,状态同时记录**人物—物件关系**与有效范围,
|
|
43
|
+
再由分镜投影到起终边界;不能只写物件存在或只在角色板中画出。短暂坐下、靠墙或伸手接触仍是
|
|
44
|
+
镜头瞬态,不为此制造长期状态。
|
|
45
|
+
|
|
42
46
|
**`craft_default` AST-03**: 同一物体的转手、开合、破损、内容与文字变化优先做
|
|
43
47
|
记录状态变化,不重复创建道具。
|
|
44
48
|
|
|
@@ -64,8 +68,23 @@ State 记录可变而需跟踪的事实:
|
|
|
64
68
|
文字是剧本事实时,资产环节只保存政策与来源位置,不自行润色。后续提示词不能
|
|
65
69
|
同时要求 `exact_readable` 和全局 `no_text`。
|
|
66
70
|
|
|
67
|
-
|
|
68
|
-
|
|
71
|
+
若剧情出现网址、号码、合同内容等敏感屏显,必须写明来源、准确屏显文字和创作者确认的处理方式;
|
|
72
|
+
不能把本地引用路径或内部地址带入交付。
|
|
73
|
+
|
|
74
|
+
**`craft_default`**: 可读文字或标识指向**现实中存在的品牌、商标、机构或人物**时,四个选项里
|
|
75
|
+
选哪一个不是资产环节的默认动作,而是创作者的决定。改编常把这类专名从原著原样带下来,此时
|
|
76
|
+
保留原名、只留形制而不留标识、换一个虚构名都可能是对的,取决于创作者对权利、题材真实感和
|
|
77
|
+
交付渠道的判断。
|
|
78
|
+
|
|
79
|
+
这里未定的是**政策本身**,不是文字内容,所以不要挪用 `pending_creator_text`(那一条针对
|
|
80
|
+
"剧本要求文字但内容未定")。按已有的未决决定写:`decisions.jsonl` 里一条
|
|
81
|
+
`decision_kind: unresolved`,把三种处理列进 `candidate_bindings` 并各写 support/conflict,
|
|
82
|
+
`creator_question` 问创作者选哪一种,`downstream_impact` 列出会被挡住的下游,
|
|
83
|
+
`creator_acceptance.status` 保持 `pending_choice`。`text_policy.mode` 在创作者选定前不改写,
|
|
84
|
+
原文来源位置照常保留;不替创作者定案,也不擅自改名——擅自改名同样是改写上游事实。
|
|
85
|
+
|
|
86
|
+
本套件不判断合规、不给禁令、不内置品牌清单;它只保证这个选择有人做、被记下来,而不是在
|
|
87
|
+
生成被拒之后由执行端顺手改掉。
|
|
69
88
|
|
|
70
89
|
## 内容物与知识是两条连续性
|
|
71
90
|
|
|
@@ -1,105 +1,10 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 视觉设定阶段契约
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本阶段只拥有 `剧集/<EP>/视觉设定.md` 中的人物/造型、地点/视图、道具/状态、声音身份与跨场连续性。
|
|
4
|
+
它继承剧本事实,不决定镜头瞬态、构图、动作终点或生成提示词。
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- [跨产物引用](#跨产物引用)
|
|
8
|
-
- [制作形态需要什么](#制作形态需要什么)
|
|
9
|
-
- [本阶段规则](#本阶段规则)
|
|
10
|
-
|
|
11
|
-
本文件是本技能的自包含契约:预检、所有权、形态输入与规则表都在这里,
|
|
12
|
-
不需要读取其他技能的文件。
|
|
13
|
-
|
|
14
|
-
## 独立运行与项目集成
|
|
15
|
-
|
|
16
|
-
本技能可以单独安装并运行;下面几条说明项目工具存在时怎样集成。
|
|
17
|
-
|
|
18
|
-
1. **读取直接输入**:只读取用户明确提供或当前任务实际需要的文件,不批量加载整个项目。
|
|
19
|
-
2. **可选项目集成**:若存在 `short-drama.json` 且 core 项目工具可用,可以运行
|
|
20
|
-
`python3 <core>/scripts/project_tool.py status <project>`,使用返回的目录布局和语言设置;
|
|
21
|
-
core 不可用时,直接基于已提供输入产出本阶段文件。
|
|
22
|
-
3. **可选发布生命周期**:项目工具可用时,用 `publish` 原子发布并用 `--input <path>`
|
|
23
|
-
声明直接输入;`accept`、`review` 与 `package` 继续承担确认、复核与交付。
|
|
24
|
-
4. **保持职责分离**:创作者确认、内容修订和复核是不同动作;reviewer 提修改要求,负责人改文件。
|
|
25
|
-
|
|
26
|
-
## 所有权边界
|
|
27
|
-
|
|
28
|
-
- **本阶段拥有**:人物/地点/道具的身份与变体;资产状态变化记录与场景/单集资产台账;
|
|
29
|
-
出现证据的提取。
|
|
30
|
-
- **本阶段继承**:剧本给出的身份、地理与文字政策;故事状态条目是开发/剧本的只读投影。
|
|
31
|
-
- **本阶段不越权**:不决定镜头构图与动作终态,不改写剧情事实。台账里的故事状态只带来源
|
|
32
|
-
指针,不构成第二个取值权威。
|
|
33
|
-
|
|
34
|
-
## 跨产物引用
|
|
35
|
-
|
|
36
|
-
引用回答一个问题:**这份产物是从哪些产物做出来的**。
|
|
37
|
-
|
|
38
|
-
`sources` 只记录**派生来源**——本文件的内容依赖它、它变了本文件就可能要重做的那些产物。
|
|
39
|
-
同层产物互相指名不是派生:occurrence 可以指向它喂给的 decision,那个 decision 也指回它
|
|
40
|
-
消费的 occurrence,两者都成立,但只有后者是派生。**只有派生关系必须无环**,互相指名不受
|
|
41
|
-
此限。把非派生的指名写进 `sources`,会让派生图出现假环,也会让「上游变了要重做什么」这个
|
|
42
|
-
问题答不准。
|
|
43
|
-
|
|
44
|
-
同一个上游被一个文件反复引用时,在开头声明一次,之后每条引用只写快照键和记录 ID。
|
|
45
|
-
声明本身也占篇幅,所以只被引用一两次的上游直接把 `owner`、`artifact` 写在那条引用里。
|
|
46
|
-
|
|
47
|
-
`.jsonl` 的第一行是声明记录:
|
|
48
|
-
|
|
49
|
-
```json
|
|
50
|
-
{"record_type":"sources","schema_version":"1.0.0","sources":{"screenplay-index":{"owner":"short-drama-write","artifact":"剧集/EP003/screenplay-index.jsonl"},"characters":{"owner":"short-drama-assets","artifact":"设定集/characters.jsonl"}}}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
`.json` 用顶层 `"sources"` 对象,条目形状相同。
|
|
54
|
-
|
|
55
|
-
条目只有 `owner` 与 `artifact`:**引用指名产物,不携带产物的字节**。产物里不写任何哈希——
|
|
56
|
-
写在引用里的哈希要手工维护,而从来没有任何校验器比对过它。真正在比对字节的只剩生命周期
|
|
57
|
-
状态与交付包校验和,那两处由工具自己维护、会真的重算。
|
|
58
|
-
|
|
59
|
-
`sources` 的键短、小写,由产物文件名派生(`characters`、`looks`、`locations`、
|
|
60
|
-
`location-views`、`props`、`prop-states`、`occurrences`、`screenplay-index`),在本文件内
|
|
61
|
-
唯一且稳定。
|
|
62
|
-
|
|
63
|
-
引用写成:
|
|
64
|
-
|
|
65
|
-
```json
|
|
66
|
-
{"src":"characters","record_id":"CHAR-GUHE"}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
指向记录中某个字段时加 `field`(JSON pointer);引用方需要区分权威等级时加 `authority`
|
|
70
|
-
(`accepted` / `candidate`),它属于这一条引用,不属于来源声明。指向整份产物或产物级字段时
|
|
71
|
-
省略 `record_id`。
|
|
72
|
-
|
|
73
|
-
产物存在不等于它里面有你指的那个东西,所以这两件事分两处判:
|
|
74
|
-
|
|
75
|
-
- **同时拿到引用方与被引用文件时,`record_id` 由检查器当场解析**。资产检查器同时读
|
|
76
|
-
`characters.jsonl` 与 `looks.jsonl`,所以外观指向不存在的角色会被它直接报出来。
|
|
77
|
-
- **跨文件的 `field` pointer 由仓库层的 `tests/test_reference_integrity.py` 判定**,
|
|
78
|
-
它把随发布的模板与一个完整项目里的每条指针都走到底。检查器只拿到命令行给它的那几个
|
|
79
|
-
文件,指向没拿到的文件时它无从解析——这一点此前写成了「都会被检查」。
|
|
80
|
-
|
|
81
|
-
## 制作形态需要什么
|
|
82
|
-
|
|
83
|
-
视觉风格不是贴在提示词前面的标签。创作者已接受的视觉方向与制作形态由项目层决定并传入,
|
|
84
|
-
**本技能不加载形态卡,也不自行选择形态**;本节只说明本阶段需要形态回答什么、以及拿到
|
|
85
|
-
答案后投影成哪些字段。
|
|
86
|
-
|
|
87
|
-
形态决定属于 `craft_default`:创作者说明理由即可覆盖。形态不能创造新的
|
|
88
|
-
`structural_invariant`,也不能改写身份、地理、持物归属与可读文字政策。审查者不得单凭
|
|
89
|
-
形态偏好阻断交付。
|
|
90
|
-
|
|
91
|
-
不要用“加一句风格前缀”处理形态差异。前缀只改变检索标签;形态改变的是**必须出现和
|
|
92
|
-
可以省略的字段**,只有后者会被执行,也只有后者能被审查。
|
|
93
|
-
|
|
94
|
-
本阶段要向形态决定问四件事:
|
|
95
|
-
|
|
96
|
-
- **身份锚点载体**:靠什么让人物跨镜可辨认——轮廓、线条、比例、结构差异还是材质。
|
|
97
|
-
- **层级拆分**:身份层、环境层、可动层、效果层各包含什么,同一事实由谁负责。
|
|
98
|
-
- **材质与光色**:材料怎样响应光,色彩关系承担什么信息;不罗列质量词。
|
|
99
|
-
- **连续性必带项**:本形态下哪些字段必须逐镜传递、哪些可以省。不同形态答案差别很大,
|
|
100
|
-
不要照抄别的形态的必带串。
|
|
101
|
-
|
|
102
|
-
本阶段新增:轮廓、材料、层拆、稳定比例与版本差异。
|
|
6
|
+
每个判断在同一文档中写成复用、新身份、新变体或真实未决;来源用场景 ID,跨文档消费用可见标题和
|
|
7
|
+
稳定 ID。不要为身份决定建立 occurrence、decision、ledger 或接受记录。
|
|
103
8
|
|
|
104
9
|
## 本阶段规则
|
|
105
10
|
|
|
@@ -107,18 +12,19 @@
|
|
|
107
12
|
|
|
108
13
|
| ID | Class | Knowledge |
|
|
109
14
|
|---|---|---|
|
|
110
|
-
| AST-01 | structural_invariant |
|
|
15
|
+
| AST-01 | structural_invariant | Before creating or reusing an asset, point to the scene ID and visible evidence that establishes it. |
|
|
111
16
|
| AST-02 | reviewed_invariant | Reconcile each occurrence as reuse, new identity, new variant, or unresolved—never guess an ambiguous name/pronoun. |
|
|
112
17
|
| AST-03 | craft_default | Separate Character/Look, Location/View, and Prop/State. |
|
|
113
18
|
| AST-04 | reviewed_invariant | Persistent identifying anchors and mutable state are not mixed. |
|
|
114
|
-
| AST-05 | structural_invariant | Every downstream
|
|
19
|
+
| AST-05 | structural_invariant | Every downstream reference resolves to a visible identity item and the stated current variant in `视觉设定.md`. |
|
|
115
20
|
| AST-06 | craft_default | Track only asset facts needed for recognition, reuse, prompt writing, or continuity. |
|
|
116
21
|
| AST-07 | reviewed_invariant | Persistent voice identity and pronunciation refs stay separate from scene-level breath, emotion, volume, and delivery state. |
|
|
117
22
|
| AST-08 | reviewed_invariant | A voice reference binding states what it controls and what it must not; the take's emotion, its recording space, and its background never enter identity. |
|
|
118
23
|
| AST-09 | reviewed_invariant | A claim about what is audible in a reference requires a creator or rights-holder description, or an authorized listening observation bound to the inspected bytes; otherwise admission stays unverified. |
|
|
119
|
-
| AST-10 | structural_invariant |
|
|
24
|
+
| AST-10 | structural_invariant | One accepted pronunciation of a proper noun uses one spelling throughout `视觉设定.md`. |
|
|
120
25
|
| AST-11 | reviewed_invariant | Characters designed together are not bound to confusable references; each names the audible trait telling it apart from its nearest neighbour, and names that character. |
|
|
121
26
|
| AST-12 | craft_default | Selection criteria are few, audible and counter-exampled; they judge a candidate reference or a clone result, they do not stand in for one. |
|
|
27
|
+
| AST-13 | structural_invariant | When the project's prompt language is not the language of the entry headings, every 人物 entry a shot's 视觉依据 references reaches a stated conclusion: `画面代称` carrying the exact spelling prompt bodies use, or `画面代称:无` when no body names it. One accepted name uses one spelling, case included. 地点/道具 declare one only when a body names them. |
|
|
122
28
|
|
|
123
29
|
### `CON`
|
|
124
30
|
|
|
@@ -127,9 +33,10 @@
|
|
|
127
33
|
| CON-01 | structural_invariant | Linked end and next start states match or have an explicit owner revision. |
|
|
128
34
|
| CON-02 | reviewed_invariant | Knowledge, injury, ownership, weather, light, or physical state does not teleport/regress without story cause. |
|
|
129
35
|
| CON-03 | craft_default | Track downstream-relevant deltas, not the whole 设定集 in every shot. |
|
|
130
|
-
| CON-04 | structural_invariant | A
|
|
36
|
+
| CON-04 | structural_invariant | A continuity change states before, after, cause/source scene, effective range, and affected visible IDs. |
|
|
131
37
|
| CON-05 | taste_option | Declared montage, ellipsis, dream, or subjective imagery may intentionally break ordinary continuity. |
|
|
132
|
-
| CON-06 | structural_invariant | A
|
|
38
|
+
| CON-06 | structural_invariant | A continuity change names every existing downstream document it affects; future work is described, not pre-created. |
|
|
39
|
+
| CON-07 | structural_invariant | A continuity lock declared in `视觉设定.md` fixes one verbatim surface plus its shot and image scope; every in-scope frozen keyframe, motion prompt, and named image prompt carries that surface unchanged. |
|
|
133
40
|
|
|
134
41
|
规则分级由高到低:`structural_invariant`(结构缺陷,阻断)、
|
|
135
42
|
`reviewed_invariant`(需证据判断)、`craft_default`(常用做法,可覆盖)、
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
|
|
70
70
|
## 绑定不等于听过
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
文件名或可见引用只说明绑定了哪段素材,**不能证明有人真的听过这段音频**(`AST-09`)。
|
|
73
73
|
每条绑定写清证据到了哪一步:
|
|
74
74
|
|
|
75
75
|
| `admission_status` | 什么情况 | 可以下什么结论 |
|
|
@@ -82,9 +82,8 @@
|
|
|
82
82
|
参考里有底噪就是有底噪,写「不要底噪」不会让它消失;要么重录、清理、换一条,
|
|
83
83
|
要么退回参考权利人决策。
|
|
84
84
|
|
|
85
|
-
参考音频与授权说明属于创作者输入,放在 `输入/`
|
|
86
|
-
|
|
87
|
-
`record_id`。**媒体本身不进 设定集,也不进交付包**,只进声明与引用。
|
|
85
|
+
参考音频与授权说明属于创作者输入,放在 `输入/` 下;`视觉设定.md` 只写项目相对路径、用途、
|
|
86
|
+
允许控制/不得控制的内容与观察状态。**媒体本身不复制进视觉设定,也不进公开交付**。
|
|
88
87
|
|
|
89
88
|
## 选型判据
|
|
90
89
|
|
|
@@ -138,34 +137,15 @@ CHAR-A 与 CHAR-B 最易混:两条参考同为中低音区、语速偏慢。
|
|
|
138
137
|
短暂的一场变化不建变体,交给表演。判据和 Look 一样:跨多个场次持续、会重复使用、
|
|
139
138
|
需要独立参考、或下游必须精确绑定时才升为变体。
|
|
140
139
|
|
|
141
|
-
##
|
|
140
|
+
## 写入 `视觉设定.md`
|
|
142
141
|
|
|
143
|
-
|
|
144
|
-
选角或克隆操作者使用。它由已接受记录重新生成,是缓存,不是第二份权威——手改它不会改变
|
|
145
|
-
任何身份,下一次渲染就会被覆盖。
|
|
142
|
+
需要跨集保持声音身份时,在对应人物条目下增加“声音方向”,只保留:
|
|
146
143
|
|
|
147
|
-
|
|
144
|
+
1. **参考**:项目相对路径、用途、允许借用与不得借用;没有参考时写“待选型”;
|
|
145
|
+
2. **选型判据**:三到五条可听判据,每条带反例;
|
|
146
|
+
3. **对比角色**:最容易混淆的是谁,以及靠什么可听差异区分;
|
|
147
|
+
4. **专名发音**:唯一确认读法;
|
|
148
|
+
5. **变体**:跨多场持续的伪装、年龄跨度或音色变化,写原因与有效范围。
|
|
148
149
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
2. **选型判据**:三到五条,每条带反例;
|
|
152
|
-
3. **区分说明**:和谁最容易混、用哪条区分;
|
|
153
|
-
4. **专名发音**:已接受的那一份拼法。
|
|
154
|
-
|
|
155
|
-
不写入任何服务商参数、模型名、接口字段、任务 ID 或网址——记录要比任何一次调用活得久。
|
|
156
|
-
|
|
157
|
-
**资产阶段不生成音频,也不调用任何语音、合成或克隆服务**。 文本绑定只能保证角色、
|
|
158
|
-
声音方向与引用关系没有被改写;它不能承诺任何真实的合成结果、音色复现或口型同步。
|
|
159
|
-
记录先落进文件、由创作者确认;需要实际 TTS 时再交给 `$short-drama-produce`,由它展示
|
|
160
|
-
精确任务预览并取得本次生产的明确确认。
|
|
161
|
-
|
|
162
|
-
常见失败:
|
|
163
|
-
|
|
164
|
-
| 失败 | 症状 | 怎么改 |
|
|
165
|
-
|---|---|---|
|
|
166
|
-
| 用文字冒充音色 | 没有参考,却写了一整段音色描述当身份 | 保持 `reference: null` 并标「待选型」,判据归判据 |
|
|
167
|
-
| 参考的情绪进了身份 | 借用范围里出现「这条里的哽咽」 | 移进 `must_not_control` |
|
|
168
|
-
| 录音空间被当成音色 | 身份里写了混响、房间感、话筒距离 | 那属于那次录音,删掉 |
|
|
169
|
-
| 声称听过却没听过 | `admission_status` 写着已检查,却没有观察记录 | 退回 `unverified` 并列风险 |
|
|
170
|
-
| 两个角色撞声 | 两条参考互换名字也说得通 | 补区分判据;补不出就换参考 |
|
|
171
|
-
| 发音两套拼法 | 同一专名在两处不同 | 回到已接受的那一份 |
|
|
150
|
+
临时情绪、呼吸、重音、音量和空间混响仍由剧本/镜头/视频提示词拥有。声音方向是生产输入,不是
|
|
151
|
+
合成结果保证;实际 TTS 仍由 `$short-drama-produce` 在精确预览并显式确认后执行。
|
|
@@ -259,7 +259,7 @@ def main() -> int:
|
|
|
259
259
|
except (OSError, ValidationError) as exc:
|
|
260
260
|
print(f"asset check failed: {exc}", file=sys.stderr)
|
|
261
261
|
return 2
|
|
262
|
-
print(json.dumps(result, ensure_ascii=
|
|
262
|
+
print(json.dumps(result, ensure_ascii=True, indent=2))
|
|
263
263
|
return 0
|
|
264
264
|
|
|
265
265
|
|
|
@@ -1,181 +1,71 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: short-drama-image-prompts
|
|
3
|
-
description:
|
|
3
|
+
description: 为短剧人物、造型、地点、道具和状态编写或修改可直接复制的图片提示词 Markdown。用户提到角色设定图、三视图、参考图、场景板、道具图、风格帧、Look Development、状态变体或局部编辑提示词时使用;不生成图片,也不调用供应商。
|
|
4
4
|
license: MIT
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# 短剧资产图片提示词
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
跟随用户使用的语言。送给图片生成器的**通用提示词正文**在项目内跟随
|
|
13
|
-
`#/format/prompt_language`,独立运行时由用户指定、未指定则为 `en`。
|
|
14
|
-
改了描述语言不等于
|
|
15
|
-
改了画面里的可读文字——那由已接受的文字政策决定。
|
|
16
|
-
|
|
17
|
-
## 开始前
|
|
18
|
-
|
|
19
|
-
本技能可独立安装和执行。先读取用户明确提供的资产事实、视觉方向与本任务直接输入;若当前
|
|
20
|
-
目录是 `short-drama` 项目且项目工具可用,可以读取 `status` 并使用其发布生命周期,但缺少
|
|
21
|
-
core 或任何其他技能都不是提示词工作的阻断条件。[阶段契约](references/stage-contract.md)
|
|
22
|
-
给出本阶段边界、制作形态输入与规则表,无需读取其他技能的文件。
|
|
9
|
+
把视觉事实写成可复用、可修改、可直接复制的角色板、场景板、道具板或状态图提示词,统一保存到
|
|
10
|
+
`剧集/<EP>/图片提示词.md`。每项用 `IMG-...` 标题,正文放在 `### 可复制提示词` 引用块。
|
|
11
|
+
`IMG-...` 只是该提示词条目的稳定 ID,不声明图片已生成或可用;实际图片只能来自创作者已提供的输入,或经确认后的生产结果。
|
|
23
12
|
|
|
24
13
|
## Quick Start
|
|
25
14
|
|
|
26
|
-
从本技能的最小原生 JSONL 样例开始,写完当前有界资产集合后运行:
|
|
27
|
-
|
|
28
15
|
```text
|
|
29
|
-
|
|
30
|
-
python3 {技能目录}/scripts/selftest.py
|
|
16
|
+
用 $short-drama-image-prompts 为 EP001 已确定的人物、地点和道具写可直接复制的图片提示词
|
|
31
17
|
```
|
|
32
18
|
|
|
33
|
-
|
|
34
|
-
泄漏;构图、身份表现和画面质量仍属于内容审查。输入路径不存在于当前目录时,会相对本技能目录解析。
|
|
35
|
-
|
|
36
|
-
## 进入条件与边界
|
|
37
|
-
|
|
38
|
-
- 可从现成项目或创作者直接提供的资产记录进入,不要求先做故事开发或安装主技能。
|
|
39
|
-
- 所有权或直接输入影响不清楚时,读
|
|
40
|
-
[阶段契约](references/stage-contract.md) 的所有权边界;需要定位规则 ID
|
|
41
|
-
或解释审查问题时,读同一文件的本阶段规则表。
|
|
42
|
-
- 输入必须是已接受的 `CHAR/LOOK`、`LOC/VIEW` 或 `PROP/PSTATE` 精确 ID 与快照引用。未决指代、冲突变体或未知状态退回 `$short-drama-assets`,不代猜。
|
|
43
|
-
- 项目存在时读取 `short-drama.json#/creator_authority/{visual_direction,production_profile}`
|
|
44
|
-
中状态为 `accepted` 的视觉方向与制作形态;独立运行时使用创作者直接提供的等价约束,未提供
|
|
45
|
-
就保持 `unset`。它决定本阶段可执行的形状语言、线条/表面处理、材质对光的
|
|
46
|
-
响应与层拆;若状态为 `unset`,就向创作者给出选择,不从对话记忆补造,也不用默认审美冒充
|
|
47
|
-
已接受形态。形态只决定可执行词汇,不决定身份、地理、持物、可读文字政策与故事状态。
|
|
48
|
-
- 若创作者明确要求全链预览,可对唯一且没有 `unresolved` 问题的资产提案写候选提示词;
|
|
49
|
-
文档标明待确认,不得声称创作者已经接受。
|
|
50
|
-
- 本技能只负责构图、提示词专用约束,以及局部修改中的修改项 `changes` 和保留项 `preserve`;身份、地理和资产状态仍由资产技能负责。
|
|
51
|
-
- 始终保留不绑定供应商的通用提示词。不得创建图片、媒体任务、接口请求、模型参数、轮询记录或画质结论。
|
|
52
|
-
|
|
53
|
-
## 按任务加载资料
|
|
54
|
-
|
|
55
|
-
| 任务 | 必读资料 |
|
|
56
|
-
|---|---|
|
|
57
|
-
| 新建任意资产提示词 | [通用配方与视觉锚点](references/common-recipe.md) |
|
|
58
|
-
| Look Development / 人物、地点、高压力风格帧 | [Lookdev 风格帧](references/lookdev-frame.md) |
|
|
59
|
-
| 人物设定图 | 加读 [人物与造型](references/character-and-look.md) |
|
|
60
|
-
| 造型、视角或道具状态的版本 | 加读 [造型与状态变体](references/look-and-state-variant.md) |
|
|
61
|
-
| 场景空镜或不同观察方向 | 加读 [场景与地理](references/location-plate.md) |
|
|
62
|
-
| 道具或 道具状态 | 加读 [道具、尺度与文字](references/prop-plate.md) |
|
|
63
|
-
| 局部修改或自然语言改提示词 | 加读 [编辑与修订](references/edit-and-revision.md) |
|
|
64
|
-
| 自检、复核、失败诊断 | [审查量表与合成案例](references/review-and-fixtures.md) |
|
|
65
|
-
| 生产端三视图/场景方位/物品版式配方 | [生产资产图配方](references/production-sheet-recipes.md) |
|
|
66
|
-
| 参考图只决定身份、构图或尺度等指定内容 | [阶段契约](references/stage-contract.md) 的参考媒体与补拍 |
|
|
67
|
-
|
|
68
|
-
普通资产规格使用 [结构化规格模板](assets/image-prompt-spec.jsonl.md);Look Development 改用
|
|
69
|
-
[独立风格帧模板](assets/lookdev-frame-spec.jsonl.md) 与
|
|
70
|
-
[风格帧 Markdown 模板](assets/lookdev-prompts.md),不先加载普通资产超集再删字段。普通资产交付文本
|
|
71
|
-
使用 [Markdown 模板](assets/image-prompts.md)。只加载当前类型所需资料。
|
|
72
|
-
|
|
73
|
-
## 每轮的工作单元
|
|
74
|
-
|
|
75
|
-
一轮处理一组明确的资产 ID。“给所有资产写提示词”拆成若干个具名集合,每轮:
|
|
76
|
-
|
|
77
|
-
1. 只读这组资产的直接输入,写它们的提示词规格,跑本地结构检查;
|
|
78
|
-
2. 落盘这一组,其余资产保持原样;
|
|
79
|
-
3. 报告已覆盖范围、剩余范围、未决绑定和下一组值得做的资产;
|
|
80
|
-
4. 交还控制权,等创作者的下一次请求。
|
|
81
|
-
|
|
82
|
-
实际生成、下游阶段和审查各自是独立的工作单元,由创作者明确请求时开始。
|
|
83
|
-
|
|
84
|
-
## 工作流
|
|
85
|
-
|
|
86
|
-
### 1. 确认目的而非先堆风格词
|
|
87
|
-
|
|
88
|
-
先回答:这张参考图以后要帮助谁保持什么一致?选择一种主类型:
|
|
89
|
-
|
|
90
|
-
- `character_sheet`:识别同一人物的一套已接受造型;
|
|
91
|
-
- `location_plate`:固定一个地点的观察方向和地理;
|
|
92
|
-
- `prop_plate`:固定道具的尺度、形制、功能和当前状态;
|
|
93
|
-
- `look_state_variant`:在同一身份上突出有因果与有效范围的差异;
|
|
94
|
-
- `edit_delta`:对精确目标做有边界的修改,同时声明保留集。
|
|
95
|
-
- `lookdev_frame`:把已接受视觉方向投影成人物表现、核心地点或高压力场景的代表性文本规格。
|
|
96
|
-
|
|
97
|
-
一个规格只承担一个主要复用目的。需要不同造型、观察方向、状态或 lookdev 测试轴时分开写,
|
|
98
|
-
不把互相冲突的状态揉成“大全图”。风格帧不获得角色身份、场景地理或剧情状态的权威。
|
|
99
|
-
|
|
100
|
-
### 2. 整理输入
|
|
101
|
-
|
|
102
|
-
从接受快照记录:
|
|
19
|
+
## 入口
|
|
103
20
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
3. 来源引用:文件头 `sources` 里的快照键 `src`、`record_id` 与 `field`;
|
|
107
|
-
4. 用途、构图、背景、光线与文字政策;
|
|
108
|
-
5. 每张参考图的准确引用、单一作用、可参考内容、不可照搬内容与检查状态;只有
|
|
109
|
-
创作者/参考图权利人的说明,或经过授权的输入参考图检查,才能给出像素/文字结论;
|
|
110
|
-
前者写 `creator_described`,后者写 `visually_inspected`,都没有时保持 `unverified` 并列出风险;
|
|
111
|
-
多参考还要保留稳定 `slot_id` 与显式 `order`,不能让数组重排改变用途;
|
|
112
|
-
6. 必须出现、必须保持和明确排除的内容;
|
|
113
|
-
7. 未决定项以及创作者的明确选择。
|
|
21
|
+
有当前视觉设定即可直接开始;剧本只在提示词需要确认剧情状态时读取。Look Development 是可选分支。
|
|
22
|
+
先确认用途:身份板、造型/状态变体、地点板、道具板、组合 production sheet 或比较风格帧。
|
|
114
23
|
|
|
115
|
-
|
|
24
|
+
创作者可读说明跟随项目语言;可复制正文跟随 `short-drama.json#/format/prompt_language`。没有
|
|
25
|
+
`short-drama.json` 时正文默认
|
|
26
|
+
使用 `en`,并在同一任务中保持一致;不能从创作者说明语言推断提示词语言。
|
|
116
27
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
按“用途/主体 → 识别点 → 状态差异 → 构图/方向/尺度/空间关系 → 材质/色彩/光线 → 背景 → 文字政策 → 排除/保留”组织。身份、地理、尺度和可读文字等重要事实先于“精致、电影感”等空泛审美词。
|
|
120
|
-
|
|
121
|
-
- `structural_invariant`:绑定准确的已接受 ID/版本;局部修改写清 `target_ref` 与 `entity_or_region`、`changes`、`preserve` 和连续性影响;`readable` 不得与全局 `no-text` 并存。
|
|
122
|
-
- `reviewed_invariant`:人物在一个规格中保持同一身份和一套连贯造型;场景保持清楚的地理;道具保持可辨尺度、形制与功能。
|
|
123
|
-
- `reviewed_invariant`:参考图只决定已经声明的内容;构图、尺度或效果参考不得顺带改写身份、文字、人数或故事状态。
|
|
124
|
-
- `craft_default`:用少量可观察、彼此不重复的识别点;负面约束只防止当前风险,不写长篇万能禁词。
|
|
125
|
-
- `taste_option`:写实/绘制、镜头审美、色彩浓度、文风密度由创作者决定;一旦被写入
|
|
126
|
-
`creator_authority` 并接受,它就不再是本阶段可自选的口味,而是必须投影的形态约束。
|
|
127
|
-
|
|
128
|
-
### 4. 做矛盾与可复用性审查
|
|
129
|
-
|
|
130
|
-
逐项检查:锚点是否互相打架;临时状态是否污染身份;空间关系是否能画在同一画面;构图是否服务参考用途;文字政策是否可执行;排除项是否误杀必需事实。语义质量用证据复核,不用词数、形容词数或固定提示词长度硬判。
|
|
131
|
-
|
|
132
|
-
### 5. 让创作者接受,再写正式产物
|
|
133
|
-
|
|
134
|
-
先展示人能读懂的预览:绑定对象、关键选择、警告与可复制提示词。接受后写:
|
|
135
|
-
|
|
136
|
-
- `项目开发/lookdev-image-prompt-specs.jsonl` 与 `项目开发/lookdev-prompts.md`:仅项目级
|
|
137
|
-
Look Development 使用,后者为派生文本;
|
|
138
|
-
- `剧集/<EP>/assets/image-prompt-specs.jsonl`:权威规格,写入时 `status` 如实跟随对象当前
|
|
139
|
-
生命周期状态(预览为 `candidate`,已接受的落盘规格为 `accepted`);
|
|
140
|
-
- `剧集/<EP>/assets/image-prompts.md`:由已接受规格重新生成的文本版本,元信息写明用的是哪个渲染器。
|
|
141
|
-
|
|
142
|
-
项目工具可用时用 `publish` 发布规格和派生文本并声明直接输入;独立运行时直接写出本阶段文件。
|
|
143
|
-
两种方式都不得以半成品覆盖当前版本。
|
|
28
|
+
## 工作流
|
|
144
29
|
|
|
145
|
-
|
|
146
|
-
|
|
30
|
+
1. 锁定这一张图要固定的身份、状态、空间或比较变量。
|
|
31
|
+
2. 只读所需资产事实、视觉方向、负面约束和已提供参考图。
|
|
32
|
+
3. 按“主体与身份锚点 → 当前变体 → 构图/视角 → 光色/材质 → 背景边界 → 禁止项”写正文。
|
|
33
|
+
4. 每张参考只控制身份、造型、地理、构图或风格中的明确部分,并在 `REF-...` 槽位里写出封闭词表中的 `用途`。
|
|
34
|
+
5. 检查身份与变体、文字政策、视角和光线是否冲突。
|
|
35
|
+
6. 用户要全部资产就完成全部,资产组只是内部批次。
|
|
147
36
|
|
|
148
|
-
|
|
149
|
-
... publish <project> --owner short-drama-image-prompts --artifact-id EP001:image-prompts \
|
|
150
|
-
--output 剧集/EP001/assets/image-prompt-specs.jsonl=_work/image-prompt-specs.jsonl \
|
|
151
|
-
--input 设定集/characters.jsonl --input 设定集/looks.jsonl \
|
|
152
|
-
--input 设定集/locations.jsonl --input 设定集/location-views.jsonl \
|
|
153
|
-
--input 设定集/props.jsonl --input 设定集/prop-states.jsonl
|
|
154
|
-
```
|
|
37
|
+
## 提示词要求
|
|
155
38
|
|
|
156
|
-
|
|
39
|
+
- 开头先写对象和用途,不用风格词淹没身份。
|
|
40
|
+
- 只包含当前图能同时满足的要求;多视图/状态对照写清版面关系。
|
|
41
|
+
- 保留稳定识别锚点,变体只改允许变化的部分。
|
|
42
|
+
- 被《视觉设定.md》连续性锁点名的条目,锁面原样出现在可复制正文里,让这张参考图本身就把跨镜事实定住。
|
|
43
|
+
- 避免无验证作用的质量词堆砌。
|
|
44
|
+
- 可见文字、logo、水印、界面和字幕明确允许或禁止。
|
|
45
|
+
- 正文可直接复制,不含占位符、流程说明、文件路径或 QA 结论。
|
|
157
46
|
|
|
158
|
-
|
|
47
|
+
## 按需知识
|
|
159
48
|
|
|
160
|
-
|
|
161
|
-
2. 展示 `before → after`、受影响的绑定和连续性,以及无法对应或会丢失的内容;
|
|
162
|
-
3. 等待接受或拒绝;拒绝时原规格与 Markdown 文本不变;
|
|
163
|
-
4. 接受后先提交规格,再从规格重新导出 Markdown 文本。
|
|
49
|
+
默认只读本 SKILL 和当前视觉设定。遇到对应问题时只打开一份:
|
|
164
50
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
[
|
|
51
|
+
- 阶段边界与规则分级:[阶段契约](references/stage-contract.md)
|
|
52
|
+
- 普通单图的最小配方:[通用配方](references/common-recipe.md)
|
|
53
|
+
- 人物身份板与造型一致性:[人物与造型](references/character-and-look.md)
|
|
54
|
+
- 地点地理、视角和光线:[地点板](references/location-plate.md)
|
|
55
|
+
- 功能道具、尺度、材质与文字:[道具板](references/prop-plate.md)
|
|
56
|
+
- 造型和状态变体:[造型与状态变体](references/look-and-state-variant.md)
|
|
57
|
+
- 多对象组合板:[Production Sheet 配方](references/production-sheet-recipes.md)
|
|
58
|
+
- 比较视觉方向的代表帧:[Lookdev 风格帧](references/lookdev-frame.md)
|
|
59
|
+
- 局部修改和 preserve set:[定点修改](references/edit-and-revision.md)
|
|
60
|
+
- 完成前的可生成性检查:[审查与示例](references/review-and-fixtures.md)
|
|
168
61
|
|
|
169
|
-
##
|
|
62
|
+
## 完成与投产
|
|
170
63
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
-
|
|
174
|
-
|
|
175
|
-
- 交付中没有媒体、远程执行任务或接口信息、远端 ID、私有对应表或“生成成功”声明。
|
|
64
|
+
每个点名对象都有明确用途、可复制正文、参考边界和禁止项,且相互不矛盾,即完成。本次请求同时
|
|
65
|
+
修改图片提示词与分镜时,当轮刷新受影响镜头的「图片提示词项」,不另建对账产物。实际生成必须
|
|
66
|
+
转 `$short-drama-produce`,展示精确任务并取得显式确认;本技能不调用外部服务。
|
|
67
|
+
五份创作文档齐备后,可转 `$short-drama` 对跨文档结构做一次机械核对;内容质量仍由创作者审查。
|
|
176
68
|
|
|
177
|
-
##
|
|
69
|
+
## 安装维护
|
|
178
70
|
|
|
179
|
-
|
|
180
|
-
参考文件、数量、尺寸和目标路径;生产技能必须展示完整预览并取得本次任务的明确确认后才可
|
|
181
|
-
调用外部 adapter。本技能本身仍只负责规格和提示词。
|
|
71
|
+
只有安装、升级或排障时运行 `python3 scripts/selftest.py`。
|
|
@@ -96,20 +96,19 @@ Variant prompt 不是完整身份重写。先复用 Character anchors,再突
|
|
|
96
96
|
|
|
97
97
|
| 问题 | 分类 | 证据 |
|
|
98
98
|
|---|---|---|
|
|
99
|
-
| exact Character/Look 是否解析 | `structural_invariant` |
|
|
99
|
+
| exact Character/Look 是否解析 | `structural_invariant` | `视觉设定.md` 的可见 ID 与当前变体 |
|
|
100
100
|
| 是否只有一个连贯 Look | `reviewed_invariant` | Look 字段与 prompt 对应句 |
|
|
101
101
|
| 是否保持区别性身份 | `reviewed_invariant` | Character anchors 与画面描述 |
|
|
102
102
|
| 泛化美词是否挤压锚点 | `craft_default` | 指出可删词与缺失的可见事实 |
|
|
103
103
|
| 中性姿态/背景是否适合 | `craft_default` | 用途与构图的关系 |
|
|
104
104
|
| 表情强度、板式数量 | `taste_option` | 创作者/视觉方向 |
|
|
105
105
|
|
|
106
|
-
|
|
106
|
+
最终在 `图片提示词.md` 产生一个 `IMG-...` 人物板条目和一段无需资产库暗知识也能复制理解的正文;
|
|
107
|
+
不产生图片。
|
|
107
108
|
|
|
108
109
|
## 6. 制作形态投影与模板槽位
|
|
109
110
|
|
|
110
|
-
|
|
111
|
-
人物板用什么词汇画,不决定画的是谁。形态词表见
|
|
112
|
-
本阶段需要从制作形态取得哪些输入,见 [阶段契约](stage-contract.md) 的“制作形态需要什么”。
|
|
111
|
+
`视觉设定.md` 的项目视觉方向与已明确制作形态决定这张人物板用什么词汇画,不决定画的是谁。
|
|
113
112
|
|
|
114
113
|
### 从形态取什么
|
|
115
114
|
|
|
@@ -129,26 +128,26 @@ Variant prompt 不是完整身份重写。先复用 Character anchors,再突
|
|
|
129
128
|
- 故事状态:伤势、湿污、包扎的因果与生效时间。
|
|
130
129
|
|
|
131
130
|
形态改变的是**同一锚点走哪条表达通道**,不是锚点集合。若形态以剪影为主要识别通道,就要
|
|
132
|
-
|
|
133
|
-
|
|
131
|
+
为已确认锚点找到剪影能承载的写法(发际形状→发型剪影缺口、旧伤→轮廓上的缺口、体态→肩背
|
|
132
|
+
重心),而不是新增、替换或悄悄删掉锚点。找不到可靠通道时标为“需创作者决定”,退回
|
|
134
133
|
资产或创作者,不擅自换一个更好画的身份。
|
|
135
134
|
|
|
136
135
|
### 模板槽位不得覆盖身份锚点
|
|
137
136
|
|
|
138
|
-
**`reviewed_invariant
|
|
137
|
+
**`reviewed_invariant`**:模板槽位不得覆盖已确认的身份锚点;当模板默认值与当前身份冲突时,
|
|
139
138
|
**身份优先,模板让位**。
|
|
140
139
|
|
|
141
|
-
|
|
140
|
+
合成例:角色甲的身份是五十岁上下、体格厚重、肩背略沉。若人物板模板对每个角色机械
|
|
142
141
|
追加“九头身黄金比例、极度修长的双腿”,这条默认槽位就把角色甲改写成了另一个人,而且因为它
|
|
143
|
-
|
|
142
|
+
出现在每张板上,下游会把它当成风格统一而不是错误。角色乙即使确实修长,也应由当前
|
|
144
143
|
Character 锚点写出,而不是由模板默认值代写。
|
|
145
144
|
|
|
146
145
|
排查方式:把同一批人物板的提示词并排看,找出**逐字重复且与身份无关**的句子。重复出现的
|
|
147
|
-
|
|
146
|
+
审美句若不能追溯到某个角色的当前视觉设定,就是模板残留,删除或改写成该角色的真实锚点。
|
|
148
147
|
|
|
149
148
|
| 检查 | 分类 | 证据 |
|
|
150
149
|
|---|---|---|
|
|
151
150
|
| 形态投影是否只落在词汇层 | `reviewed_invariant` | 形态卡字段与提示词对应句 |
|
|
152
151
|
| 锚点是否在该形态下真的可见 | `reviewed_invariant` | 识别通道与所选锚点 |
|
|
153
|
-
| 模板默认值是否覆盖身份 | `reviewed_invariant` |
|
|
154
|
-
| 形态未定时是否停在提问 | `structural_invariant` | `
|
|
152
|
+
| 模板默认值是否覆盖身份 | `reviewed_invariant` | 跨角色重复句与当前视觉设定 |
|
|
153
|
+
| 形态未定时是否停在提问 | `structural_invariant` | `视觉设定.md` 明确标为未决 |
|