@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
|
@@ -24,9 +24,30 @@
|
|
|
24
24
|
- What pressure is active at the opening?
|
|
25
25
|
- What does the protagonist want now, and what resists it?
|
|
26
26
|
- Which choice/action causes the directional turn?
|
|
27
|
+
- If the episode frames that turn as a consequential choice, what live value does each
|
|
28
|
+
executable direction protect, and what cost is newly caused by the action (`SCR-13`)?
|
|
29
|
+
If it is an ordinary decision or single-path pursuit, leave this test inactive rather
|
|
30
|
+
than manufacturing a dilemma.
|
|
31
|
+
- Conditional does not mean cursory: when the episode itself foregrounds a choice,
|
|
32
|
+
evidence carrier, deadline, or rule, does resistance, action, and consequence dramatize
|
|
33
|
+
it, rather than merely naming it in dialogue?
|
|
34
|
+
- Could a viewer identify those stakes from the screenplay alone, without access to
|
|
35
|
+
the upstream brief or episode card?
|
|
36
|
+
- Do explicit brief facts, must/forbid constraints, genre contract, and required exit state
|
|
37
|
+
outrank craft defaults, or did the screenplay invent precision, records, resources,
|
|
38
|
+
procedures, relationships, or mechanisms merely to display a rule?
|
|
39
|
+
- When a choice cost or deadline is essential, was it perceptible before the decision,
|
|
40
|
+
or invented at decision time by a convenient new condition?
|
|
27
41
|
- What part of the promised experience is delivered before the outgoing hook?
|
|
28
42
|
- What exact state enters the next episode?
|
|
29
43
|
- Before the outgoing hook, what local dramatic result has already landed?
|
|
44
|
+
- Which behavior, relationship history, line, silence, spatial choice, or object makes the
|
|
45
|
+
protagonist's private reason legible? Do not require a recurring object when another
|
|
46
|
+
carrier already does the work.
|
|
47
|
+
- Does the ending fulfill the episode's viewing contract through consequence, relationship,
|
|
48
|
+
irony, afterimage, atmosphere, or intentional openness? A new external event is optional.
|
|
49
|
+
- If the ending declares a path closed or a consequence irreversible, do later beats
|
|
50
|
+
accidentally contradict that claim without presenting an intentional new change?
|
|
30
51
|
- Whose choice caused that result (`STY-13`)? If it arrived by outside force, cite the
|
|
31
52
|
protagonist's earlier action that made it arrive now, and what they did with it.
|
|
32
53
|
A protagonist who only endures until rescue is this episode's audience, not its lead.
|
|
@@ -78,6 +99,18 @@ What is reportable:
|
|
|
78
99
|
- Do world truth, character beliefs, and audience knowledge remain separate?
|
|
79
100
|
- For each evidence carrier, what claim does it directly support, and which identity,
|
|
80
101
|
cause, motive, or mechanism remains an unresolved inference (`STY-15`)?
|
|
102
|
+
- When a major belief change hinges on contested evidence, is the response limited to
|
|
103
|
+
what was proved, or does the story intentionally preserve/delay uncertainty (`SCR-14`)?
|
|
104
|
+
Leave this test inactive for uncontested facts, comic misunderstanding, subjective
|
|
105
|
+
narration, or clues whose ambiguity is the intended effect.
|
|
106
|
+
- When contested evidence is a primary episode engine, does at least one visible state
|
|
107
|
+
change alter which explanations remain live or alter the next action, rather than
|
|
108
|
+
leaving every increment to verbal report? Photographing, bagging, numbering, or logging
|
|
109
|
+
is not a dramatic turn by itself. Once the required inference changes, does testing stop
|
|
110
|
+
unless another live counter-explanation would genuinely change the next action?
|
|
111
|
+
- If a proof claim depends on continuity such as connection, sealing, position, time, or
|
|
112
|
+
lack of contact, did preceding action preserve that exact property? A continuity label
|
|
113
|
+
may carry forward a shown state; it cannot prove that an unseen event or contact never occurred.
|
|
81
114
|
- Does active serial memory preserve character/relationship state, information
|
|
82
115
|
permissions, setup debt, rhythm direction, and the exact physical handoff?
|
|
83
116
|
- Do external pressure and emotional load rise, fall, or diverge for a reason?
|
|
@@ -88,16 +121,20 @@ dialogue quota.
|
|
|
88
121
|
|
|
89
122
|
## Scene test
|
|
90
123
|
|
|
91
|
-
For
|
|
124
|
+
For a scene organized around active pursuit or conflict, ask:
|
|
92
125
|
|
|
93
126
|
1. Why must it exist?
|
|
94
127
|
2. Whose agenda organizes it?
|
|
95
128
|
3. What force opposes that agenda?
|
|
96
|
-
4. What
|
|
129
|
+
4. What traceable fact, leverage change, cost, authority, or choice makes the prior
|
|
130
|
+
strategy fail? An opponent merely becoming silent or leaving is not enough.
|
|
97
131
|
5. What exit state pressures the next scene?
|
|
98
132
|
|
|
99
|
-
A quiet scene can pass when pressure and change are legible.
|
|
100
|
-
|
|
133
|
+
A quiet scene can pass when pressure and change are legible. Atmospheric, ritual,
|
|
134
|
+
montage, transition, and consequence-processing scenes may instead justify their
|
|
135
|
+
function through a necessary change in knowledge, relationship, pressure, rhythm,
|
|
136
|
+
or production state; do not invent an opponent or strategy failure merely to make
|
|
137
|
+
them fit this checklist. A loud scene can fail when nothing changes.
|
|
101
138
|
|
|
102
139
|
## Action and production meaning
|
|
103
140
|
|
|
@@ -107,6 +144,42 @@ when nothing changes.
|
|
|
107
144
|
- Are exact on-screen text, prop text, SFX, VO/OS, and transitions tagged?
|
|
108
145
|
- Does prose avoid camera/prompt boilerplate while retaining production-critical
|
|
109
146
|
facts?
|
|
147
|
+
- Do supporting characters who receive substantial dramatic emphasis have a goal, judgment,
|
|
148
|
+
or strategy of their own? Incidental, transactional, choral, and environmental roles need
|
|
149
|
+
not all alter the main plot.
|
|
150
|
+
- Does a central participant who supplies the main leverage, opposition, or cost remain
|
|
151
|
+
strategically present through the turn and response, rather than becoming a passive prop
|
|
152
|
+
once the protagonist acts?
|
|
153
|
+
- If that participant's leverage disappears, what already-established action, spatial fact,
|
|
154
|
+
authority, relationship, or choice made it disappear? Do not infer neutralization merely
|
|
155
|
+
from the protagonist completing one step.
|
|
156
|
+
- When a literal precise deadline is foregrounded and audience-auditable, does its action
|
|
157
|
+
chain fit, or does the screenplay make compression, changed method, changed objective,
|
|
158
|
+
or failure legible (`SCR-16`)? Qualitative urgency must not be upgraded into invented
|
|
159
|
+
minutes, timestamps, notifications, or records. Do not apply a real-time test to montage,
|
|
160
|
+
ellipsis, subjective time, or declared stylization.
|
|
161
|
+
- When the brief defines a limited number of attempts, turns, breaths, beats, or other units,
|
|
162
|
+
does each unit end with its required visible state (`SCR-17`)? Labels, counts, requests,
|
|
163
|
+
authorization, preparation, and cleanup after the boundary do not substitute for completion;
|
|
164
|
+
an intentional failure or partial result may count when it is legible at that boundary.
|
|
165
|
+
- When exact timestamps share one literal continuity, are they mutually consistent?
|
|
166
|
+
- When the current date is necessary to a conclusion, is it supported by a current source?
|
|
167
|
+
- Does a compressed process retain only the steps that change strategy, relationship,
|
|
168
|
+
risk, or result, instead of listing interchangeable operations?
|
|
169
|
+
- When multiple carriers repeat one pressure or fact, does each add rhythm, viewpoint,
|
|
170
|
+
irony, misdirection, or consequence? If not, which one is redundant?
|
|
171
|
+
- Does a solution use established resources and still confront the core obstacle, rather
|
|
172
|
+
than erase it with a newly invented convenience?
|
|
173
|
+
- Even when a resource is established, does it change the problem without conveniently
|
|
174
|
+
performing the character's hardest dramatic work for them?
|
|
175
|
+
- Does an outside response increase or transform pressure in a way grounded in the work's
|
|
176
|
+
established world, rather than suddenly forgiving, rewarding, or rescuing the character
|
|
177
|
+
to make the ending easy?
|
|
178
|
+
- After a mechanism becomes visually clear, does dialogue change the relationship or
|
|
179
|
+
narrow the claim instead of explaining the same mechanism again?
|
|
180
|
+
- When the brief gives a target duration but the project has no pacing rates, has the
|
|
181
|
+
writer still performed a real-time read/action pass and removed obviously excessive
|
|
182
|
+
repeated verification, date exposition, or equivalent closing beats?
|
|
110
183
|
|
|
111
184
|
## Dialogue
|
|
112
185
|
|
|
@@ -162,3 +235,30 @@ the benefit is not, and the mark exists precisely so the strong version can stay
|
|
|
162
235
|
- generic emotion adjectives replace visible performance;
|
|
163
236
|
- every character explains the plot in the same voice;
|
|
164
237
|
- downstream production requirement was never marked in screenplay truth.
|
|
238
|
+
- a redundant `[连续性]` tag repeats an exit state already explicit in the final action;
|
|
239
|
+
- a story-critical ending state appears without a prior transition;
|
|
240
|
+
- the script uses atmosphere, silence, or a black frame to avoid landing a result the episode
|
|
241
|
+
promised, rather than as an intentional ending form;
|
|
242
|
+
- a beat is sold as a consequential choice after one direction has already become valueless
|
|
243
|
+
or impossible (`SCR-13`);
|
|
244
|
+
- contested evidence produces a broader conclusion than the evidence or intentionally
|
|
245
|
+
incomplete verification supports (`SCR-14`);
|
|
246
|
+
- a claimed proof relies on a continuity property the preceding action already destroyed,
|
|
247
|
+
or on a continuity label asserting an unseen negative event;
|
|
248
|
+
- a local payoff erases its established residue or replaces meaning with a slogan (`SCR-15`);
|
|
249
|
+
- a cost framed as central pressure automatically resets at success, leaving no material
|
|
250
|
+
effect on ability, body, resource, relationship, or next action;
|
|
251
|
+
- a central participant supplies the opening leverage or cost but becomes a passive prop
|
|
252
|
+
through the decisive action;
|
|
253
|
+
- the core opposing force disappears only because its holder becomes silent, stops acting,
|
|
254
|
+
or leaves, without a traceable loss of leverage, accepted cost, or changed strategy;
|
|
255
|
+
- a literal, audience-auditable deadline succeeds only through unexplained speed, or
|
|
256
|
+
qualitative urgency is upgraded into invented precise timing (`SCR-16`);
|
|
257
|
+
- a limited unit is counted before its required state completes, with the completion moved
|
|
258
|
+
outside the boundary (`SCR-17`);
|
|
259
|
+
- a newly invented resource, permission, or ability removes the central obstacle;
|
|
260
|
+
- a limited result is renamed as a broader success or truth than the scene demonstrated;
|
|
261
|
+
- repeated carriers restate one pressure without adding viewpoint, rhythm, irony, or consequence;
|
|
262
|
+
- a second same-direction decision, closing line, or maxim merely translates a change,
|
|
263
|
+
punchline, or metaphor that the preceding action already completed;
|
|
264
|
+
- post-result action unintentionally contradicts a consequence the screenplay called irreversible.
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
genuinely differ — in knowledge timing, audience alignment, performance space,
|
|
24
24
|
strongest image, landing, losses, or production fit?
|
|
25
25
|
- Does the formal plan bind the approach the creator selected, rather than the first draft?
|
|
26
|
-
- When a
|
|
26
|
+
- When a scene visual plan was used: do its start/end audience positions, spatial
|
|
27
27
|
pressure, camera rhythm, reaction landing, and sound movement carry **one** dramatic turn?
|
|
28
28
|
- Does that plan stay clear of owning shot boundaries? (Ordinary scenes need no plan
|
|
29
29
|
merely to satisfy a form.)
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
- Are Location/View, axis, screen direction, eyelines, entrances, positions,
|
|
35
35
|
hands, and props coherent?
|
|
36
36
|
- Are exact asset variants bound?
|
|
37
|
-
- Does
|
|
37
|
+
- Does the shot expose every fact it must carry while protecting
|
|
38
38
|
facts the source withholds until a later action or cut?
|
|
39
39
|
- Do crop, occlusion, focus, back view, and offscreen space serve that information
|
|
40
40
|
permission rather than accidentally reveal or conceal it?
|
|
@@ -42,11 +42,23 @@
|
|
|
42
42
|
## Frozen keyframe
|
|
43
43
|
|
|
44
44
|
- Can all described facts exist in one still instant?
|
|
45
|
-
- Does it project the
|
|
45
|
+
- Does it project the start state written for this shot?
|
|
46
46
|
- Are focal hierarchy, composition, camera/lens, geography, pose/gaze/hands/prop,
|
|
47
47
|
expression, and light legible?
|
|
48
48
|
- Does it avoid ordered actions, performance arcs, camera moves, or transforming
|
|
49
49
|
environments?
|
|
50
|
+
- Read the finished keyframe text, not the shot's intent: is every visible character,
|
|
51
|
+
place, and prop whose identity, Look, or geography must stay recognizable listed in
|
|
52
|
+
this shot's `视觉依据` (`SHT-22`)? A second body that entered the composition while the
|
|
53
|
+
frame was being written is the usual miss.
|
|
54
|
+
- Does each declared 控制 scope stay inside what this frame can carry, and is nothing
|
|
55
|
+
bound merely because it was bound in the previous shot (`SHT-24`)?
|
|
56
|
+
- When real reference images are bound, does every `REF-...` slot declare a 用途, so the
|
|
57
|
+
shot says which start frame and which identity/geography/prop pictures it sends
|
|
58
|
+
(`SHT-25`, `VID-24`)?
|
|
59
|
+
- Is anything the frames need kept consistent across shots — a carried prop, a garment —
|
|
60
|
+
absent from `视觉设定.md` entirely, so it can appear in no shot's basis at all? The
|
|
61
|
+
mechanical check cannot see this: an entry that does not exist cannot be reported missing.
|
|
50
62
|
|
|
51
63
|
## Motion
|
|
52
64
|
|
|
@@ -56,15 +68,13 @@
|
|
|
56
68
|
- In multi-character motion: do the actors who actually change have distinct,
|
|
57
69
|
readable triggers, choices, leaks, or landings — as this shot needs, not one
|
|
58
70
|
identical arc per actor?
|
|
59
|
-
- Is
|
|
71
|
+
- Is attention handed off only where it truly transfers, rather than for
|
|
60
72
|
synchronized reaction?
|
|
61
|
-
- Does
|
|
62
|
-
- Does it avoid any claim about generated media quality
|
|
63
|
-
readiness truth inside each motion record?
|
|
73
|
+
- Does any text-readiness claim cite the current creator-visible inputs and a real blocking gap?
|
|
74
|
+
- Does it avoid any claim about generated media quality or create a second readiness truth?
|
|
64
75
|
- Is camera behavior coherent and motivated?
|
|
65
76
|
- Are environment motion, dialogue, SFX, and audio included only when relevant?
|
|
66
|
-
- Does the end
|
|
67
|
-
write into the next shot?
|
|
77
|
+
- Does the described end match the storyboard's written end state without rewriting the next shot?
|
|
68
78
|
- When a reference frame carries appearance/composition, does motion prose avoid
|
|
69
79
|
dumping the full visual 设定集?
|
|
70
80
|
- Does every claim about text-bearing reference pixels cite a creator/reference-owner
|
|
@@ -78,12 +88,10 @@
|
|
|
78
88
|
|
|
79
89
|
For a pickup or alternate, ask these separately:
|
|
80
90
|
|
|
81
|
-
- Does
|
|
82
|
-
- Is every obligation
|
|
83
|
-
- Are the
|
|
84
|
-
- Is
|
|
85
|
-
alternate/master records and decide it — see the
|
|
86
|
-
[supersession decision example](../assets/supersession-decision.example.json).
|
|
91
|
+
- Does the pickup/alternate name its master by visible `MOTION-...` heading?
|
|
92
|
+
- Is every source obligation assigned to the master, this version, another named version or a requested storyboard revision?
|
|
93
|
+
- Are the changed items and the items that must remain unchanged explicit?
|
|
94
|
+
- Is replacement only requested here? The review Markdown decides whether the master remains primary or the alternate replaces it.
|
|
87
95
|
|
|
88
96
|
For music, ask these separately (`VID-14`):
|
|
89
97
|
|
|
@@ -136,7 +144,7 @@ ellipsis, dream, or deliberate disorientation.
|
|
|
136
144
|
- every emotional beat uses the same close-up/push template;
|
|
137
145
|
- provider batching is mistaken for editorial shot structure.
|
|
138
146
|
- a narrowed pickup silently replaces the master and drops dialogue, reaction,
|
|
139
|
-
reveal, end-
|
|
147
|
+
reveal, end-state, or creator-directive obligations.
|
|
140
148
|
|
|
141
149
|
## Production-risk and authorized-observation checklist (REV-08)
|
|
142
150
|
|
|
@@ -145,9 +153,9 @@ ellipsis, dream, or deliberate disorientation.
|
|
|
145
153
|
并把该记录作为外部证据引用。没有观察记录时保持结果未知,不从任务成功、结果地址或提示词
|
|
146
154
|
存在推断成片质量。
|
|
147
155
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
156
|
+
需要项目校准时,先区分输入参考与生成结果。后一种观察只有在绑定准确的提示词/镜头标题、参考顺序、
|
|
157
|
+
制作形态/配置、观察方法和限制时才可引用;finding 同时给出最小修改项与保持项,并保持结论只在该项目
|
|
158
|
+
和版本条件下有效。
|
|
151
159
|
|
|
152
160
|
短剧生产中需要防范的文字风险或获授权观察包括:
|
|
153
161
|
|
|
@@ -1,68 +1,9 @@
|
|
|
1
1
|
# 审查阶段契约
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本阶段只拥有审查结论与修订要求,不改写 owner 来源。需要落盘时使用创作者可读 Markdown,引用当前
|
|
4
|
+
文件名、标题 ID、行号或短引文;不建立 JSON/JSONL、来源快照、哈希或接受状态。
|
|
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
|
-
- **本阶段继承**:精确的 artifact 引用、已接受限制与创作者覆盖。
|
|
30
|
-
- **本阶段不越权**:不修改负责人的来源文件,不用个人偏好替代证据,也不把 owner 修订动作
|
|
31
|
-
冒充审查动作。Self-review may record any evidence-supported verdict when it is labeled honestly.
|
|
32
|
-
Prefer an uninvolved reviewer to reduce confirmation bias, but never retry isolation as a completion strategy.
|
|
33
|
-
|
|
34
|
-
## 制作形态需要什么
|
|
35
|
-
|
|
36
|
-
视觉风格不是贴在提示词前面的标签。创作者已接受的视觉方向与制作形态由项目层决定并传入,
|
|
37
|
-
**本技能不加载形态卡,也不自行选择形态**;本节只说明本阶段需要形态回答什么、以及拿到
|
|
38
|
-
答案后投影成哪些字段。
|
|
39
|
-
|
|
40
|
-
形态决定属于 `craft_default`:创作者说明理由即可覆盖。形态不能创造新的
|
|
41
|
-
`structural_invariant`,也不能改写身份、地理、持物归属与可读文字政策。审查者不得单凭
|
|
42
|
-
形态偏好阻断交付。
|
|
43
|
-
|
|
44
|
-
不要用“加一句风格前缀”处理形态差异。前缀只改变检索标签;形态改变的是**必须出现和
|
|
45
|
-
可以省略的字段**,只有后者会被执行,也只有后者能被审查。
|
|
46
|
-
|
|
47
|
-
本阶段对形态只问一件事:**叙事职责是否真的落到了本形态可执行的字段**——形、层、
|
|
48
|
-
材质、光、动作或声音。
|
|
49
|
-
|
|
50
|
-
检查时不问“有没有写风格名”,而问:连续性必带项是否按本形态取舍、而不是照抄别的形态;
|
|
51
|
-
同一决定是否只由一个负责人写入。已选择的形态或单镜预算不可执行时,回到对应负责人请求
|
|
52
|
-
批准,不把拆镜或换形态默认为已经授权的替代。
|
|
53
|
-
|
|
54
|
-
## 参考媒体与补拍
|
|
55
|
-
|
|
56
|
-
- **参考图能决定什么要逐张写明**:每张参考的用途、可以照搬什么、不可以照搬什么。身份参考
|
|
57
|
-
不自动决定构图;构图、尺度或效果参考不自动带入图中人物、服装、文字、道具与故事状态。
|
|
58
|
-
- **像素主张需要证据**:关于参考图上可见内容(尤其文字、水印、标牌、界面)的断言,必须
|
|
59
|
-
来自创作者/参考图权利人的可核对说明,或运行环境获授权后形成的输入参考观察记录,并绑定
|
|
60
|
-
被检查的字节。两者都没有时保持 `unverified`,负面提示词不能代替证据。
|
|
61
|
-
- **观众揭示时机**:某一事实何时可被观众看到,由已接受的可见性决定绑定其来源、载体、
|
|
62
|
-
权限、触发与保护方式。构图既不能提前泄露该事实,也不能遮掉本环节必须传达的载体。
|
|
63
|
-
- **母版、补拍与替代**:补拍默认只补充、不替代母版。普通母版不增加版本范围字段;只有
|
|
64
|
-
补拍/替代版才声明 `pickup | alternate`,用同一文件内稳定的记录 ID 说明母版与补充关系,并把每项原文要求对应到当前字段或说明
|
|
65
|
-
去向。只有下游审查结论才能批准替代,不得回写形成循环引用。
|
|
6
|
+
审查可以由独立 reviewer 或明确标注的自检完成。媒体不可见时保持未知;外部生产仍需要自己的显式确认。
|
|
66
7
|
|
|
67
8
|
## 本阶段规则
|
|
68
9
|
|
|
@@ -71,7 +12,7 @@
|
|
|
71
12
|
| ID | Class | Knowledge |
|
|
72
13
|
|---|---|---|
|
|
73
14
|
| REV-01 | structural_invariant | Run mechanical checks before spending creative review attention. |
|
|
74
|
-
| REV-02 | structural_invariant | A finding
|
|
15
|
+
| REV-02 | structural_invariant | A finding names a visible file and heading/shot/prompt ID, and includes evidence, impact, required fix, owner, severity and status. |
|
|
75
16
|
| REV-03 | reviewed_invariant | Semantic invention cites the source fact and conflicting downstream fact. |
|
|
76
17
|
| REV-04 | craft_default | Prefer a reviewer who did not author the current targets; disclose self-review, and keep reviewer findings separate from owner edits. |
|
|
77
18
|
| REV-05 | craft_default | Diagnose repeated structure or generic language with location and impact; do not label output merely "AI-ish". |
|
|
@@ -317,7 +317,7 @@ def main() -> int:
|
|
|
317
317
|
except (OSError, ValidationError) as exc:
|
|
318
318
|
print(f"review check failed: {exc}", file=sys.stderr)
|
|
319
319
|
return 2
|
|
320
|
-
print(json.dumps(result, ensure_ascii=
|
|
320
|
+
print(json.dumps(result, ensure_ascii=True, indent=2))
|
|
321
321
|
return 0
|
|
322
322
|
|
|
323
323
|
|