@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
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
资产提示词不是剧情镜头,也不是形容词收藏。它要把已接受资产中最值得稳定的事实,变成一张便于识别、比较和后续复用的参考图意图。
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
开始前取得:`视觉设定.md` 中准确的资产 ID 和当前变体、来源场景、用途、目标构图、视觉风格、
|
|
29
29
|
背景与光线、文字政策、创作者引用 `REF-*`、约束与排除项。身份尚未确定时停在提案,
|
|
30
30
|
不要用提示词文案掩盖缺口。
|
|
31
31
|
|
|
@@ -90,8 +90,8 @@
|
|
|
90
90
|
- `look_state_variant`:绑定基础来源、可见变化和有效范围;姿势本身不自动成为新版本。
|
|
91
91
|
- `edit_delta`:只保留精确目标、变化、保持项和连续性影响;上游负责的变化先取得其接受。
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
参考说明不是普通图片清单。每张只声明一个主要用途,分别写清可借用和不可带入的事实;没有参考
|
|
94
|
+
媒体就不写参考段,没有观察证据时保持“未验证”并列出风险。
|
|
95
95
|
|
|
96
96
|
## 4. 锚点、约束与取舍
|
|
97
97
|
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
2. **本次提示词的呈现方法(由图片提示词环节管理)**:`readable | symbolic |
|
|
127
127
|
blank | postproduction`,回答这次参考图怎样处理该真相。
|
|
128
128
|
|
|
129
|
-
|
|
129
|
+
条目必须指向 `视觉设定.md` 的资产 ID 与文字事实,并写清两层选择和对应理由。
|
|
130
130
|
默认映射:
|
|
131
131
|
|
|
132
132
|
| 资产来源政策 | 允许的呈现方法 | 要求 |
|
|
@@ -147,11 +147,11 @@
|
|
|
147
147
|
明确接受时,不要编造。
|
|
148
148
|
|
|
149
149
|
“语义上必须出现签名”不等于已经拥有可复制的正式签名字形。只有签名归属或剧情职责、没有
|
|
150
|
-
|
|
150
|
+
创作者确认的字形资产时,保留准确来源说明并阻断 `readable`;仅在当前文字政策允许
|
|
151
151
|
`postproduction` 时可预留承载区,不得用姓名、伪签名或自行设计的笔画冒充正式字形。
|
|
152
152
|
若人物的接收或反转依赖这项文字,不得一面保留空白承载区、一面让人物认出签名;候选文本
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
明确写“正式签名字形未提供”,并点名受影响的 `IMG-...` / `SHOT-...`;在字形或已确认的后期处理
|
|
154
|
+
真正到位前,不写可读签名正文。
|
|
155
155
|
|
|
156
156
|
### 检查输入参考图(`IMG-08`)
|
|
157
157
|
|
|
@@ -175,18 +175,17 @@
|
|
|
175
175
|
|
|
176
176
|
### 参考图可以决定哪些内容(`IMG-09`)
|
|
177
177
|
|
|
178
|
-
`
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
地理、构图、尺度和效果;项目也可以增加更具体的用途。
|
|
178
|
+
每张真实参考图使用稳定 `REF-...` 槽位;槽位在创作文档里逐字写成 `REF-<slot>(顺序:<n>)· <项目相对路径>《<中文名称>》(用途:<用途>;控制:<范围>;不得控制:<范围>)`,并另行说明观察状态与未决风险。
|
|
179
|
+
调整顺序或插入新参考不能改变已有槽位的语义;换图时在同一槽位明确修订 locator,不把旧图的控制边界静默转给新槽位。`IMG-...` 只定位当前《图片提示词.md》的提示词条目。`用途` 是封闭词表,只能取 `身份`、`造型状态`、
|
|
180
|
+
`地理`、`构图`、`尺度`、`效果`、`起始帧`、`结束帧`、`风格` 之一;一张图承担两件事就拆成两个槽位,
|
|
181
|
+
不写「全参考」,也不自造新用途。资产板通常只用到前六个——`起始帧` 和 `结束帧` 属于镜头,不属于资产板。
|
|
183
182
|
|
|
184
183
|
- 身份参考不自动决定姿势、构图或临时造型;
|
|
185
184
|
- 构图/尺度参考只借用占比、机位所在一侧、留白或相对尺度,不带入图中人物与事件;
|
|
186
185
|
- 效果参考只控制已接受目标的形态/范围,不让非目标对象一起消失、复制或变形;
|
|
187
186
|
- 任一参考都继续服从文字政策与已确认来源,冲突时退回负责方,不用“全参考”。
|
|
188
187
|
|
|
189
|
-
|
|
188
|
+
这项质量要结合当前项目资料判断,不能按参考图数量、用途关键词或固定裁切方式机械判定。
|
|
190
189
|
|
|
191
190
|
### 负面约束
|
|
192
191
|
|
|
@@ -2,16 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
## 有界编辑合同 (`IMG-06`)
|
|
4
4
|
|
|
5
|
-
每次 edit
|
|
6
|
-
|
|
7
|
-
该 owner,不要伪装成局部 prompt revision。
|
|
5
|
+
每次 edit 都声明精确目标/区域、要改什么、必须保留什么,以及预期的连续性影响。如果期望变更会
|
|
6
|
+
改写身份或已确认上游事实,路由给该 owner,不要伪装成局部提示词修订。
|
|
8
7
|
|
|
9
8
|
## 目录
|
|
10
9
|
|
|
11
10
|
1. 两类修改
|
|
12
11
|
2. Edit-delta 配方
|
|
13
|
-
3.
|
|
14
|
-
4.
|
|
12
|
+
3. 自然语言要求 → 差异预览 → 确认 → 重写
|
|
13
|
+
4. 当前文件与旧预览不一致时的处理
|
|
15
14
|
5. 失败与检查
|
|
16
15
|
|
|
17
16
|
## 1. 两类修改
|
|
@@ -26,15 +25,15 @@ continuity impact。如果期望变更会改写 identity 或 accepted 上游事
|
|
|
26
25
|
四个问题缺一不可:
|
|
27
26
|
|
|
28
27
|
```text
|
|
29
|
-
Target
|
|
28
|
+
Target:哪个可见 `IMG-...`、对象和区域?
|
|
30
29
|
Change:哪些有边界、可观察的变化?
|
|
31
30
|
Preserve:身份、构图、光线、空间以及哪些未影响 entity/region 必须不变?
|
|
32
|
-
Continuity impact
|
|
31
|
+
Continuity impact:预期对应哪个已确认状态或引用,有效到哪里?
|
|
33
32
|
```
|
|
34
33
|
|
|
35
34
|
### Target
|
|
36
35
|
|
|
37
|
-
-
|
|
36
|
+
- 用可见 `IMG-...` 和对象名绑定目标;可复制正文用自然语言明确主体和区域。
|
|
38
37
|
- “改背景”“让她更狼狈”过宽;需要具体新 View/区域与可观察变化。
|
|
39
38
|
- 多个不相干 target 默认拆为多个 edit,防止 preserve 集失焦。
|
|
40
39
|
|
|
@@ -50,73 +49,62 @@ Continuity impact:预期对应哪个 accepted State/binding,有效到哪里
|
|
|
50
49
|
|
|
51
50
|
引用 道具状态/Look/View 或提出 owner revision;记录受影响的 prompt/shot/keyframe,而非在 edit 中成为新的连续性权威。若没有影响,也明确 `none` 及理由。
|
|
52
51
|
|
|
53
|
-
- **`structural_invariant
|
|
52
|
+
- **`structural_invariant`**:目标、区域、变化、保持项和影响必须存在且没有显式冲突。
|
|
54
53
|
- **`reviewed_invariant`**:修改范围是否足够清楚、preserve 是否保护真正身份/地理,需要 reviewer 引用证据判断。
|
|
55
54
|
- **`craft_default`**:一次 edit 聚焦少量相互关联的 delta;复杂重构改用新 variant/plate。
|
|
56
55
|
- **`taste_option`**:变化的视觉强度由创作者决定,只要状态事实未变。
|
|
57
56
|
|
|
58
|
-
## 3.
|
|
57
|
+
## 3. 自然语言修订
|
|
59
58
|
|
|
60
|
-
|
|
59
|
+
用户不需要知道内部字段。对“把工作服换成深蓝,但保留脸和袖口油渍”执行:
|
|
61
60
|
|
|
62
|
-
1.
|
|
63
|
-
2.
|
|
64
|
-
3.
|
|
65
|
-
4.
|
|
66
|
-
5.
|
|
67
|
-
6.
|
|
68
|
-
7. **重渲染**:从 accepted spec 与 recipe version 导出 Markdown,更新下游 stale 状态。
|
|
61
|
+
1. 读取当前 `视觉设定.md` 条目和 `图片提示词.md` 的 `IMG-...`;
|
|
62
|
+
2. 区分提示词可改措辞、资产 owner 才能改的事实、含糊项和连续性影响;
|
|
63
|
+
3. 展示简短语义差异:改前、改后、理由、保持项、影响和是否需要上游修改;
|
|
64
|
+
4. 展示新的可复制正文,让创作者看到实际效果;
|
|
65
|
+
5. 确认后直接更新同一个 `IMG-...`;拒绝时当前文件保持不变;
|
|
66
|
+
6. 列出需要同步检查的 `SHOT-...` 或其他 `IMG-...`,不自动改用户未点名的文档。
|
|
69
67
|
|
|
70
68
|
建议预览:
|
|
71
69
|
|
|
72
70
|
```markdown
|
|
73
71
|
### 提议修改 `IMG-...`
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
- 影响:仅当前 Look prompt;若资产 Look 尚未接受深蓝色,先请求 assets 修改
|
|
78
|
-
- 未映射:无
|
|
72
|
+
- 深灰蓝工作服 → 深蓝工作服
|
|
73
|
+
- 保持:脸、服装剪裁、右袖口旧油渍的形状与位置、背景、构图、光向
|
|
74
|
+
- 影响:仅当前造型提示词;若 `视觉设定.md` 还没有深蓝变体,先交给 assets 修改
|
|
79
75
|
|
|
80
|
-
|
|
76
|
+
**新正文预览**
|
|
81
77
|
> ...
|
|
82
78
|
```
|
|
83
79
|
|
|
84
|
-
|
|
80
|
+
对“更有电影感”不能擅自堆一串风格词。给两三个互斥且可观察的候选,例如光比、构图或色彩关系,
|
|
81
|
+
作为 `taste_option` 让创作者选择。
|
|
85
82
|
|
|
86
|
-
## 4.
|
|
83
|
+
## 4. 当前文件冲突
|
|
87
84
|
|
|
88
|
-
`
|
|
85
|
+
如果另一个编辑或人工修改已经改变当前 `IMG-...`,不要用旧预览覆盖:
|
|
89
86
|
|
|
90
|
-
|
|
87
|
+
- 重新读取当前条目;
|
|
88
|
+
- 展示人工改动与本次修改的语义差异;
|
|
89
|
+
- 能安全合并时生成新的完整预览;
|
|
90
|
+
- 无法无损对应、触及上游事实或存在冲突时保留当前文件,并交给创作者选择。
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
- 创作者接受后从 accepted spec 重渲染;
|
|
94
|
-
- 不把手改内容静默写回 spec。
|
|
95
|
-
|
|
96
|
-
### Adopt
|
|
97
|
-
|
|
98
|
-
- 将可表示的手改语义解析为候选 spec diff;
|
|
99
|
-
- 逐条列出 `mapped`、`unmapped`、`lossy`;
|
|
100
|
-
- 有 unmapped/lossy 或改动 source-owned 事实时阻断 adopt,保留原文件与冲突副本;
|
|
101
|
-
- 安全且被接受后,先提交 spec,再重渲染成规范 Markdown。最终文本可能排版变化,但语义 diff 必须无损。
|
|
102
|
-
|
|
103
|
-
选择 `merge` 时也先生成候选 diff;不能以“最后写入者获胜”处理创作权威。
|
|
92
|
+
不得把“最后写入者获胜”当创作规则,也不得为了恢复格式丢掉人工增加的有效语义。
|
|
104
93
|
|
|
105
94
|
## 5. 失败与检查
|
|
106
95
|
|
|
107
96
|
### 失败征兆
|
|
108
97
|
|
|
109
|
-
-
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
- edit 只有 Change
|
|
113
|
-
-
|
|
98
|
+
- 只改可复制正文,却不核对 `视觉设定.md`;
|
|
99
|
+
- 差异只写“优化措辞”,没有语义影响和保持项;
|
|
100
|
+
- 把身份、地点地理或道具状态在提示词层擅自改掉;
|
|
101
|
+
- edit 只有 Change,没有 Preserve;
|
|
102
|
+
- 发现冲突后自动覆盖人工修改。
|
|
114
103
|
|
|
115
104
|
### 完成检查
|
|
116
105
|
|
|
117
|
-
-
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
并对精确任务预览单独确认。
|
|
106
|
+
- 上游事实请求已路由给正确 owner;
|
|
107
|
+
- 目标、区域、变化、保持项和连续性影响都清楚;
|
|
108
|
+
- 差异预览可读、可拒绝,新正文可直接复制;
|
|
109
|
+
- 拒绝不改变当前文件,冲突不静默吞掉;
|
|
110
|
+
- 本流程不调用媒体生成或 provider API;实际生产交 `$short-drama-produce`,并对精确任务预览单独确认。
|
|
@@ -117,13 +117,12 @@ Location plate 的价值是让后续镜头共享同一可导航空间。输入
|
|
|
117
117
|
| 同一 Location 同一 state 各 View 的主光、色温与光比是否对齐 | `reviewed_invariant` | 并排比同组 View,差异需成因与 delta |
|
|
118
118
|
| 镜头审美与构图 | `taste_option` | 保留创作者选择 |
|
|
119
119
|
|
|
120
|
-
|
|
120
|
+
输出一个 `IMG-...` 地点板条目和可复制正文;ID 留在标题,正文用清楚自然语言。不得生成地点板图片。
|
|
121
121
|
|
|
122
122
|
## 6. 制作形态投影
|
|
123
123
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
本阶段需要从制作形态取得哪些输入,见 [阶段契约](stage-contract.md) 的“制作形态需要什么”。
|
|
124
|
+
`视觉设定.md` 的项目视觉方向与已明确制作形态决定这张场景板用什么词汇表达空间,不决定空间
|
|
125
|
+
长什么样。
|
|
127
126
|
|
|
128
127
|
### 从形态取什么
|
|
129
128
|
|
|
@@ -12,27 +12,27 @@
|
|
|
12
12
|
|
|
13
13
|
变体的目标是在不改变持久身份的前提下,把有因果、可复用、在一定范围内持续的视觉状态明确出来。它不是为了给每个表情、角度或手势建一张新资产图。
|
|
14
14
|
|
|
15
|
-
先用
|
|
15
|
+
先用 `视觉设定.md` 的当前判断区分:
|
|
16
16
|
|
|
17
17
|
- **reuse**:身份/地理/功能和需要保持的 state 都没变,直接复用;
|
|
18
18
|
- **variant**:同一身份上出现可逆或时间有界的 Look/View/道具状态差异;
|
|
19
19
|
- **new asset**:持久身份、固定地理或基本功能已改变;
|
|
20
|
-
- **unresolved
|
|
20
|
+
- **unresolved**:无法确定,停止写提示词并让创作者选择。
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
图片提示词不能自行做这项身份决定,只把已确认变体写成可见参考。
|
|
23
23
|
|
|
24
24
|
## 2. Base—delta—validity
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
一个 `IMG-...` 变体条目必须能回答:
|
|
27
27
|
|
|
28
|
-
1. **Base
|
|
28
|
+
1. **Base**:它从哪个准确身份/变体 ID 派生?
|
|
29
29
|
2. **Preserved anchors**:哪些 Character/Location/Prop 身份事实不变?
|
|
30
30
|
3. **Delta**:哪里发生了什么可观察变化,范围和强度如何?
|
|
31
|
-
4. **Cause/source
|
|
31
|
+
4. **Cause/source**:变化来自哪个场景、连续性事实或创作者决定?
|
|
32
32
|
5. **Validity**:从哪里开始、持续到哪里、何时恢复/再变化?
|
|
33
|
-
6. **Affected
|
|
33
|
+
6. **Affected work**:哪些 `IMG-...`、`SHOT-...` 或关键帧需要此变体?
|
|
34
34
|
|
|
35
|
-
- **`structural_invariant
|
|
35
|
+
- **`structural_invariant`**:基底、变体 ID、来源与有效范围可解析;不得同时使用不相容变体。
|
|
36
36
|
- **`reviewed_invariant`**:delta 与持久锚点没有混层,也没有超过 source 支持的范围。
|
|
37
37
|
- **`craft_default`**:正文先短述保持的身份,再把注意力放在 delta;不要重写全部 base。
|
|
38
38
|
- **`taste_option`**:单独 variant plate、同版对照或局部细节板由复用目的决定;默认单独 plate 更少歧义。
|
|
@@ -61,13 +61,13 @@
|
|
|
61
61
|
|
|
62
62
|
## 4. 变体 plate 与 edit 的区别
|
|
63
63
|
|
|
64
|
-
- **Variant plate**
|
|
65
|
-
- **Edit-delta**
|
|
64
|
+
- **Variant plate** 描述一个已确认、可被多个镜头复用的完整当前状态;它可以从零编写提示词,不依赖某张待编辑图片。
|
|
65
|
+
- **Edit-delta** 针对可见 `IMG-...`、对象和区域,说明变化、保持项与连续性影响;用于“从现有参考改成当前变体”的提示词。
|
|
66
66
|
|
|
67
67
|
若创作者说“把袖子改湿”:
|
|
68
68
|
|
|
69
|
-
1.
|
|
70
|
-
2.
|
|
69
|
+
1. 已有明确的湿衣 Look,且目标是复用状态 → 可以写变体板或局部编辑;
|
|
70
|
+
2. 湿衣 Look 尚未确认 → 先向 assets 提变体选择;
|
|
71
71
|
3. 只发生在单镜头动作末端、没有持续复用 → 可能应由 storyboard continuity 拥有,不自动创建资产 prompt。
|
|
72
72
|
|
|
73
73
|
不要把 before/after 两个互斥人物叠在一张身份板,除非用途明确是比较板,且两个区域/标签不会造成身份融合;这属于可覆盖的 craft choice,不是默认。
|
|
@@ -87,10 +87,11 @@
|
|
|
87
87
|
|
|
88
88
|
| 检查 | 分类 |
|
|
89
89
|
|---|---|
|
|
90
|
-
|
|
|
90
|
+
| 准确基底/变体、来源、有效范围解析 | `structural_invariant` |
|
|
91
91
|
| delta 是否保持 identity/geography/function | `reviewed_invariant` |
|
|
92
92
|
| 是否误把瞬时 shot 状态升级为 asset variant | `reviewed_invariant` |
|
|
93
93
|
| delta 是否比 base boilerplate 更醒目 | `craft_default` |
|
|
94
94
|
| 单图或对照板、变化强度与呈现媒介 | `taste_option` |
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
输出一个写清基底、变化、保持项、有效范围和受影响工作的 `IMG-...` 条目,以及一段聚焦当前状态的
|
|
97
|
+
可复制正文。不得生成图片,也不得声称变体画面已经验证成功。
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# Lookdev 风格帧提示词
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
视觉方向投影成可比较的通用图片提示词。它不选择画风,
|
|
3
|
+
Lookdev 风格帧把 `视觉设定.md` 中项目级视觉方向投影成可比较的通用图片提示词。它不选择画风,
|
|
5
4
|
不生成图片,也不从一张参考图推断整部作品的规则。
|
|
6
5
|
|
|
7
6
|
## 三类测试轴
|
|
@@ -10,23 +9,20 @@
|
|
|
10
9
|
- `core_location`:绑定准确 LOC/VIEW,检查地理、材质、色彩层级与光源逻辑;
|
|
11
10
|
- `high_pressure_scene`:绑定准确场景、人物状态与来源块,检查冲突中的注意中心、遮挡和密度。
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
不要求三类都固定生成若干张。选择本项目最能暴露方向失效的代表帧,并在条目中写清测试问题。
|
|
14
13
|
|
|
15
|
-
##
|
|
14
|
+
## 写条目
|
|
16
15
|
|
|
17
|
-
`
|
|
18
|
-
|
|
19
|
-
`/creator_authority/visual_direction/choices/look_development`,并用同一个快照键的
|
|
20
|
-
`production_profile_ref` 绑定本项目已接受制作配置。高压力场景还要用 `story_context_refs` 绑定
|
|
21
|
-
真实 screenplay-index `BLK-…` 场次/动作/信息权限记录,不能从提示词发明剧情状态。再写:稳定项、
|
|
16
|
+
在 `图片提示词.md` 使用 `IMG-...` 标题,写明用途为 Lookdev、测试轴和对应的“项目视觉方向”章节。
|
|
17
|
+
高压力场景还要绑定真实场景 ID、动作和信息权限,不能从提示词发明剧情状态。再写:稳定项、
|
|
22
18
|
允许变化项、要保护的身份/地理/剧情事实,以及删除风格标签后真正改变的材质、光、色、边缘、
|
|
23
19
|
景深或空间表达。
|
|
24
20
|
|
|
25
|
-
|
|
21
|
+
风格参考标明用途为“风格”:
|
|
26
22
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
23
|
+
- “允许控制”只列色彩层级、材质处理、阴影边缘、景深倾向、画面密度等本次准许内容;
|
|
24
|
+
- “不得控制”保护角色身份、固定场景地理、剧情状态、人数、持物与道具文字;
|
|
25
|
+
- 每张真实参考图使用稳定 `REF-...` 槽位,绑定可见项目相对路径或其他明确 artifact locator、中文名称、显式顺序和封闭词表里的用途(风格帧通常是 `风格`);换图时显式修订槽位的 locator,不把旧图的控制语义静默转给新槽位。`IMG-...` 仅用于当前《图片提示词.md》的提示词条目。
|
|
30
26
|
|
|
31
27
|
角色、地点或压力场景的事实仍来自它们各自 owner。高压力测试帧不得为了“更有冲击力”提前
|
|
32
28
|
泄露身份、发明动作结果或改变文字政策。
|
|
@@ -34,5 +30,5 @@
|
|
|
34
30
|
## 比较与修订
|
|
35
31
|
|
|
36
32
|
比较人物、地点和压力场景是否共享可辨认语言,同时记录哪一部分允许逐场变化。没有授权生成结果
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
观察时,只能指出文字层风险。若收到绑定准确提示词、参考、配置和结果的项目观察,局部修订写清
|
|
34
|
+
变化与保持项,一次只改诊断所需变量;不把一次结果推广为其他项目或制作配置的规律。
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
8. **保持/排除**:防止变形、错材、错状态或多出复制品。
|
|
55
55
|
|
|
56
56
|
- **`craft_default`**:若尺度容易误判,加入不带身份的参照或给出功能性尺寸关系;不要用剧情角色的手当默认参照。
|
|
57
|
-
- **`craft_default
|
|
57
|
+
- **`craft_default`**:对可动部件,选择一个明确状态;如确需开/关两态,分为两个道具状态条目。
|
|
58
58
|
- **`taste_option`**:产品式悬浮、台面陈列、正交视图或环境内静物由复用目的决定。
|
|
59
59
|
|
|
60
60
|
## 4. 文字政策
|
|
@@ -62,8 +62,7 @@
|
|
|
62
62
|
文字是一项资产状态和制作决策,不是随手加的装饰。
|
|
63
63
|
|
|
64
64
|
不要改写 assets owner 的 `exact_readable | graphic_only | no_readable_text |
|
|
65
|
-
pending_creator_text`。本 skill
|
|
66
|
-
spec 中保留 source pointer 和映射理由。完整映射表见
|
|
65
|
+
pending_creator_text`。本 skill 只为当前道具板选择下列呈现方式,并在条目中保留资产 ID 与映射理由。完整映射表见
|
|
67
66
|
[common-recipe.md](common-recipe.md)。
|
|
68
67
|
|
|
69
68
|
### `readable`
|
|
@@ -104,13 +103,11 @@ spec 中保留 source pointer 和映射理由。完整映射表见
|
|
|
104
103
|
| 中性参照、视图数量、背景方式 | `craft_default` |
|
|
105
104
|
| 产品感、写实度、陈列审美 | `taste_option` |
|
|
106
105
|
|
|
107
|
-
|
|
106
|
+
输出一个精确绑定的 `IMG-...` 道具板条目和可复制正文;不承诺文字最终生成准确,也不生成媒体。
|
|
108
107
|
|
|
109
108
|
## 6. 制作形态投影
|
|
110
109
|
|
|
111
|
-
|
|
112
|
-
道具用什么词汇被画出来,不决定它是什么东西。形态词表见
|
|
113
|
-
本阶段需要从制作形态取得哪些输入,见 [阶段契约](stage-contract.md) 的“制作形态需要什么”。
|
|
110
|
+
`视觉设定.md` 的项目视觉方向与已明确制作形态决定这件道具用什么词汇被画出来,不决定它是什么。
|
|
114
111
|
|
|
115
112
|
### 从形态取什么
|
|
116
113
|
|
|
@@ -4,45 +4,45 @@
|
|
|
4
4
|
|
|
5
5
|
1. 审查方式
|
|
6
6
|
2. 证据量表
|
|
7
|
-
3.
|
|
7
|
+
3. 完成前结构检查
|
|
8
8
|
4. 合成正例
|
|
9
9
|
5. 合成反例
|
|
10
10
|
|
|
11
11
|
## 1. 审查方式
|
|
12
12
|
|
|
13
|
-
先做可确定检查,再由与作者分离的 reviewer 判断语义和 craft。Reviewer
|
|
13
|
+
先做可确定检查,再由与作者分离的 reviewer 判断语义和 craft。Reviewer 不替 owner 修改;finding
|
|
14
|
+
包含文件与 `IMG-...`、精确证据、影响、所需修订、owner、严重程度和状态。不要以固定长度、词数、
|
|
15
|
+
形容词比例或“像 AI”判质量。
|
|
14
16
|
|
|
15
17
|
## 2. 证据量表
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
对每条提示词逐项给出 `PASS | REVISE | NOTE` 和引用:
|
|
18
20
|
|
|
19
21
|
| 维度 | 要问的问题 | 合格证据 |
|
|
20
22
|
|---|---|---|
|
|
21
|
-
| 绑定 |
|
|
22
|
-
| 区分度 |
|
|
23
|
-
| 单一目的 |
|
|
24
|
-
| 空间/尺度 | 关系能否同时成立并复用? |
|
|
25
|
-
| 文字 |
|
|
23
|
+
| 绑定 | 是哪个身份与当前变体? | `视觉设定.md` 的可见 ID 与提示词引用 |
|
|
24
|
+
| 区分度 | 不看显示名,能否认出或区分? | 稳定锚点与当前变化 |
|
|
25
|
+
| 单一目的 | 是否把互斥参考需求混在一起? | 用途、构图与状态一致 |
|
|
26
|
+
| 空间/尺度 | 关系能否同时成立并复用? | 地理/尺度事实与正文句子 |
|
|
27
|
+
| 文字 | 政策、内容、承载面与排除是否相容? | 文字事实与呈现方法 |
|
|
26
28
|
| 经济性 | 参考已承载的内容是否被无意义重复? | 可删句与未受影响事实 |
|
|
27
|
-
| 越权 | 是否新造资产、故事或连续性事实? |
|
|
28
|
-
| 可复制 |
|
|
29
|
+
| 越权 | 是否新造资产、故事或连续性事实? | 来源事实与冲突句 |
|
|
30
|
+
| 可复制 | 去掉标题元信息后正文是否自足? | 可复制正文 |
|
|
29
31
|
|
|
30
|
-
Finding
|
|
32
|
+
Finding 的修复必须可执行,例如“补回安全门相对检修台的位置”,不能只写“加强细节”。审美替代
|
|
33
|
+
方案属于 NOTE,除非违反已确认约束。
|
|
31
34
|
|
|
32
|
-
## 3.
|
|
35
|
+
## 3. 完成前结构检查
|
|
33
36
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
| IMG_GEOGRAPHY_LOSS | reviewed_invariant | reviewer | error | image-prompts | 场景固定地理/方向被丢失或改写 |
|
|
41
|
-
| IMG_PROP_UNRECOGNIZABLE | reviewed_invariant | reviewer | error | image-prompts | 尺度、形制、材料、功能不足以辨认 |
|
|
42
|
-
| IMG_BOILERPLATE_DOMINANT | craft_default | reviewer | warning | image-prompts | 已有锚点但泛化词压过它们 |
|
|
43
|
-
| IMG_STYLE_ALTERNATIVE | taste_option | reviewer | note | image-prompts | 可选审美方案,不单独阻断 |
|
|
37
|
+
- 每个 `IMG-...` 标题唯一,并引用真实视觉设定条目;
|
|
38
|
+
- 人物、地点或道具的当前变体与有效范围没有冲突;
|
|
39
|
+
- 可读文字与全局禁字没有同时出现;
|
|
40
|
+
- 局部编辑包含目标、变化、保持项和连续性影响;
|
|
41
|
+
- 每张真实参考图用独立稳定的 `REF-...` 槽位绑定顺序、项目相对路径/明确 artifact locator 和中文名称,并写明封闭词表里的用途、允许控制、不得控制与未验证风险;
|
|
42
|
+
- 可复制正文不含 ID、文件路径、占位符、流程说明或 QA 结论。
|
|
44
43
|
|
|
45
|
-
|
|
44
|
+
只有本地可证明的结构冲突直接阻断。语义问题由 reviewer 引用来源与正文后给 `REVISE`;默认做法与
|
|
45
|
+
审美选项可由创作者覆盖。
|
|
46
46
|
|
|
47
47
|
## 4. 合成正例
|
|
48
48
|
|
|
@@ -1,69 +1,10 @@
|
|
|
1
1
|
# 图片提示词阶段契约
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本阶段只拥有 `剧集/<EP>/图片提示词.md` 中的 `IMG-...` 项:用途、参考边界和可复制正文。它继承
|
|
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
|
-
- **本阶段拥有**:项目级 lookdev 风格帧、资产图片的构图与定点修改选择;渲染出的提示词文本是缓存。
|
|
29
|
-
- **本阶段继承**:已接受的视觉方向与制作配置、资产身份与变体、当前用途、文字政策;高压力
|
|
30
|
-
lookdev frame 还继承准确剧本 block 的场次事实与信息权限。
|
|
31
|
-
- **本阶段不越权**:不承载有先后顺序的剧情动作,不改写资产身份、地理或故事状态,不决定
|
|
32
|
-
镜头边界。
|
|
33
|
-
|
|
34
|
-
## 制作形态需要什么
|
|
35
|
-
|
|
36
|
-
视觉风格不是贴在提示词前面的标签。创作者已接受的视觉方向与制作形态由项目层决定并传入,
|
|
37
|
-
**本技能不加载形态卡,也不自行选择形态**;本节只说明本阶段需要形态回答什么、以及拿到
|
|
38
|
-
答案后投影成哪些字段。
|
|
39
|
-
|
|
40
|
-
形态决定属于 `craft_default`:创作者说明理由即可覆盖。形态不能创造新的
|
|
41
|
-
`structural_invariant`,也不能改写身份、地理、持物归属与可读文字政策。审查者不得单凭
|
|
42
|
-
形态偏好阻断交付。
|
|
43
|
-
|
|
44
|
-
不要用“加一句风格前缀”处理形态差异。前缀只改变检索标签;形态改变的是**必须出现和
|
|
45
|
-
可以省略的字段**,只有后者会被执行,也只有后者能被审查。
|
|
46
|
-
|
|
47
|
-
本阶段要向形态决定问:单帧上**形、材质、层次、光色**各自怎么表达身份与状态。
|
|
48
|
-
|
|
49
|
-
身份段的载体随形态改变写法:实拍写造型状态而不是长相;二维写剪影与色块;三维写比例与
|
|
50
|
-
姿态边界;水墨写不可散的边缘;Q 版写头身比与放大记号;强精修画风必须**对比着写**同剧
|
|
51
|
-
其他角色的结构差异,否则角色会被拉平。
|
|
52
|
-
|
|
53
|
-
本阶段新增:单帧可见的形/材质/层次/光色投影。
|
|
54
|
-
|
|
55
|
-
## 参考媒体与补拍
|
|
56
|
-
|
|
57
|
-
- **参考图能决定什么要逐张写明**:每张参考的用途、可以照搬什么、不可以照搬什么。身份参考
|
|
58
|
-
不自动决定构图;构图、尺度或效果参考不自动带入图中人物、服装、文字、道具与故事状态。
|
|
59
|
-
- **像素主张需要证据**:关于参考图上可见内容(尤其文字、水印、标牌、界面)的断言,必须
|
|
60
|
-
来自创作者/参考图权利人的可核对说明,或运行环境获授权后形成的输入参考观察记录,并绑定
|
|
61
|
-
被检查的字节。两者都没有时保持 `unverified`,负面提示词不能代替证据。
|
|
62
|
-
- **观众揭示时机**:某一事实何时可被观众看到,由已接受的可见性决定绑定其来源、载体、
|
|
63
|
-
权限、触发与保护方式。构图既不能提前泄露该事实,也不能遮掉本环节必须传达的载体。
|
|
64
|
-
- **母版、补拍与替代**:补拍默认只补充、不替代母版。普通母版不增加版本范围字段;只有
|
|
65
|
-
补拍/替代版才声明 `pickup | alternate`,用同一文件内稳定的记录 ID 说明母版与补充关系,并把每项原文要求对应到当前字段或说明
|
|
66
|
-
去向。只有下游审查结论才能批准替代,不得回写形成循环引用。
|
|
6
|
+
每项参考都写清可以控制什么、不能控制什么;没有获授权的像素观察时保持未知。局部修改直接写目标、
|
|
7
|
+
变化、保持项和连续性影响,不建立 prompt spec、QA 或接受记录。
|
|
67
8
|
|
|
68
9
|
## 本阶段规则
|
|
69
10
|
|
|
@@ -71,7 +12,7 @@
|
|
|
71
12
|
|
|
72
13
|
| ID | Class | Knowledge |
|
|
73
14
|
|---|---|---|
|
|
74
|
-
| IMG-01 | structural_invariant |
|
|
15
|
+
| IMG-01 | structural_invariant | Each `IMG-...` item names the exact visual-setting item and current variant it depicts. |
|
|
75
16
|
| IMG-02 | craft_default | Put distinguishing identity, geometry, scale, or state before generic quality language. |
|
|
76
17
|
| IMG-03 | reviewed_invariant | Character sheets preserve identity while depicting one coherent Look. |
|
|
77
18
|
| IMG-04 | reviewed_invariant | Location plates preserve geography, orientation, anchors, material, and light, normally without cast. |
|
|
@@ -82,7 +23,9 @@
|
|
|
82
23
|
| IMG-09 | reviewed_invariant | Each reference states its purpose, what may be copied, and what must not be copied; a composition-, scale-, or effect-only reference cannot redefine identity, content, text, or story state. |
|
|
83
24
|
| IMG-10 | reviewed_invariant | Views of one Location in the same time/weather state share key-light source, colour-temperature relation, and contrast direction; any difference cites a recorded cause and its delta. |
|
|
84
25
|
| IMG-11 | reviewed_invariant | A lookdev frame binds accepted visual direction and production profile across a declared character-expression, core-location, or high-pressure test axis; a high-pressure frame also binds exact screenplay blocks for story state and information permission, while style references may control only declared surface treatment and never identity, fixed geography, story state, cast count, or prop text. |
|
|
85
|
-
| IMG-12 | reviewed_invariant |
|
|
26
|
+
| IMG-12 | reviewed_invariant | Each real input reference has a stable `REF-...` slot binding explicit order, a visible project-relative path or other unambiguous artifact locator, a Chinese label, and may-control/must-not-control scope. Reordering preserves slot identity; replacing media explicitly revises that slot's locator. `IMG-...` remains reserved for image-prompt headings. |
|
|
27
|
+
| IMG-13 | structural_invariant | An `IMG-...` item named by a continuity lock in `视觉设定.md` carries that lock's surface verbatim in its copyable prompt. |
|
|
28
|
+
| IMG-14 | structural_invariant | Every `REF-...` slot an image-prompt item declares carries one 用途 from the closed set 身份/造型状态/地理/构图/尺度/效果/起始帧/结束帧/风格, the same vocabulary the storyboard uses, so one picture answers one question. An asset board normally uses the first six; 起始帧 and 结束帧 belong to a shot. |
|
|
86
29
|
|
|
87
30
|
规则分级由高到低:`structural_invariant`(结构缺陷,阻断)、
|
|
88
31
|
`reviewed_invariant`(需证据判断)、`craft_default`(常用做法,可覆盖)、
|
|
@@ -106,17 +106,17 @@ def resolve_ref(
|
|
|
106
106
|
|
|
107
107
|
SKILL_ROOT = Path(__file__).resolve().parents[1]
|
|
108
108
|
HASH_RE = re.compile(r"[0-9a-f]{64}")
|
|
109
|
-
# `common-recipe.md` forbids weight syntax and any one engine's control words
|
|
110
|
-
#
|
|
111
|
-
#
|
|
109
|
+
# `common-recipe.md` forbids weight syntax and any one engine's control words: a
|
|
110
|
+
# generic prompt that carries provider control syntax has stopped being generic.
|
|
111
|
+
# This checks syntax only. Whether the prose leans on generic quality language is
|
|
112
|
+
# `IMG-02`, a `craft_default` a creator may override with a reason, so it is a
|
|
113
|
+
# reviewer's call citing what the description actually lacks — see
|
|
114
|
+
# `common-recipe.md`, which forbids blocking delivery on a fixed word list.
|
|
112
115
|
ENGINE_SYNTAX_RE = re.compile(
|
|
113
116
|
r"(?:^|[\s,,((])--(?:ar|v|q|niji|style|no|seed|cref|sref)\b"
|
|
114
117
|
r"|::-?\d"
|
|
115
118
|
# Weight syntax is written (x:1.2); prose writes "(aperture: 1.8)" with a space.
|
|
116
|
-
r"|:[01]\.\d\s*[))]"
|
|
117
|
-
# Quality words only count in a tag slot. A 4K monitor in shot is content.
|
|
118
|
-
r"|(?:^|,\s*)(?:8k|4k|uhd)\s*(?=,|$)"
|
|
119
|
-
r"|(?:^|,\s*)(?:masterpiece|best quality|ultra[- ]detailed|trending on artstation)\s*(?=,|$)",
|
|
119
|
+
r"|:[01]\.\d\s*[))]",
|
|
120
120
|
re.IGNORECASE,
|
|
121
121
|
)
|
|
122
122
|
PURPOSES = {
|
|
@@ -435,7 +435,7 @@ def main() -> int:
|
|
|
435
435
|
except (OSError, ValidationError) as exc:
|
|
436
436
|
print(f"image prompt check failed: {exc}", file=sys.stderr)
|
|
437
437
|
return 2
|
|
438
|
-
print(json.dumps(result, ensure_ascii=
|
|
438
|
+
print(json.dumps(result, ensure_ascii=True, indent=2))
|
|
439
439
|
return 0
|
|
440
440
|
|
|
441
441
|
|
|
@@ -51,9 +51,11 @@ def main() -> int:
|
|
|
51
51
|
leaked[0]["provider"] = "example"
|
|
52
52
|
fail(leaked, sources, "provider execution fields")
|
|
53
53
|
|
|
54
|
-
# A/B Round 2: the suite forbids
|
|
54
|
+
# A/B Round 2: the suite forbids provider control syntax in a generic prompt,
|
|
55
55
|
# but nothing enforced it — the only prompt check was for leaked hashes.
|
|
56
|
-
|
|
56
|
+
# Generic quality language is `IMG-02`, a `craft_default`; it is not checked
|
|
57
|
+
# here, because a validator cannot block delivery on a fixed word list.
|
|
58
|
+
for syntax in ("--ar 9:16", "(red coat:1.2)", "cat::2"):
|
|
57
59
|
engine_syntax = copy.deepcopy(records)
|
|
58
60
|
engine_syntax[0]["generic_prompt"] += f" {syntax}"
|
|
59
61
|
fail(engine_syntax, sources, "engine-specific syntax")
|