@oh-story/dsh 0.1.15 → 0.1.17
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 +17 -15
- package/lib/client.js +26 -15
- package/lib/client.js.map +2 -2
- package/lib/drama/manifest.json +284 -364
- package/lib/drama/package.json +4 -0
- package/lib/drama/skills/short-drama/SKILL.md +13 -14
- package/lib/drama/skills/short-drama/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama/references/audience-reveal.md +4 -4
- package/lib/drama/skills/short-drama/references/contract-and-ownership.md +2 -2
- package/lib/drama/skills/short-drama/references/creator-documents.md +12 -10
- package/lib/drama/skills/short-drama/references/creator-workflow.md +6 -5
- package/lib/drama/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +8 -8
- package/lib/drama/skills/short-drama/references/form-cards//344/272/214/347/273/264/345/212/250/346/200/201/346/274/253.md +5 -5
- package/lib/drama/skills/short-drama/references/form-cards//345/233/275/346/274/253/344/272/214/346/254/241/345/205/203.md +5 -6
- package/lib/drama/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +6 -7
- package/lib/drama/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +2 -3
- package/lib/drama/skills/short-drama/references/form-cards//351/243/216/346/240/274/345/214/226/344/270/211/347/273/264.md +6 -7
- package/lib/drama/skills/short-drama/references/knowhow-index.md +6 -7
- package/lib/drama/skills/short-drama/references/look-development.md +5 -7
- package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +6 -3
- package/lib/drama/skills/short-drama/references/production-form-profiles.md +14 -16
- package/lib/drama/skills/short-drama/references/reference-roles.md +5 -3
- package/lib/drama/skills/short-drama/references/runtime-preflight.md +2 -1
- package/lib/drama/skills/short-drama-assets/SKILL.md +8 -8
- package/lib/drama/skills/short-drama-assets/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +26 -27
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +22 -22
- package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +4 -4
- package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +4 -4
- package/lib/drama/skills/short-drama-assets/references/era-anchors.md +3 -3
- package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +5 -5
- package/lib/drama/skills/short-drama-assets/references/location-and-view.md +6 -7
- package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -9
- package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +8 -11
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +22 -22
- package/lib/drama/skills/short-drama-develop/SKILL.md +6 -6
- package/lib/drama/skills/short-drama-develop/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +2 -2
- package/lib/drama/skills/short-drama-develop/assets/story-engine.md +2 -2
- package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +13 -12
- package/lib/drama/skills/short-drama-develop/references/creative-reference-intake.md +7 -7
- package/lib/drama/skills/short-drama-develop/references/director-brief-craft.md +7 -8
- package/lib/drama/skills/short-drama-develop/references/episode-design.md +20 -24
- package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +7 -7
- package/lib/drama/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +4 -5
- package/lib/drama/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +2 -2
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +2 -2
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +4 -5
- package/lib/drama/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//351/200/206/350/242/255.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//351/207/215/347/224/237/347/251/277/350/266/212.md +2 -2
- package/lib/drama/skills/short-drama-develop/references/genre-cards.md +4 -4
- package/lib/drama/skills/short-drama-develop/references/mechanism-loop.md +6 -7
- package/lib/drama/skills/short-drama-develop/references/multi-episode-intake.md +19 -17
- package/lib/drama/skills/short-drama-develop/references/premise-devices.md +5 -5
- package/lib/drama/skills/short-drama-develop/references/reveal-reversal-payoff.md +6 -5
- package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +3 -4
- package/lib/drama/skills/short-drama-develop/references/stage-contract.md +7 -9
- package/lib/drama/skills/short-drama-develop/references/story-craft.md +8 -10
- package/lib/drama/skills/short-drama-edit/SKILL.md +11 -14
- package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +12 -19
- package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +2 -2
- package/lib/drama/skills/short-drama-edit/references/cut-craft.md +5 -4
- package/lib/drama/skills/short-drama-edit/references/generated-footage.md +1 -1
- package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +6 -4
- package/lib/drama/skills/short-drama-edit/references/stage-contract.md +5 -5
- package/lib/drama/skills/short-drama-edit/references/still-cuts.md +1 -1
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +7 -2
- package/lib/drama/skills/short-drama-image-prompts/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +4 -5
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +17 -17
- package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +10 -9
- package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +11 -12
- package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +6 -5
- package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +2 -2
- package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +6 -6
- package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +8 -8
- package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +5 -4
- package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +17 -24
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +3 -4
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +5 -10
- package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +4 -6
- package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +9 -13
- package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +3 -7
- package/lib/drama/skills/short-drama-produce/SKILL.md +43 -42
- package/lib/drama/skills/short-drama-produce/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +31 -18
- package/lib/drama/skills/short-drama-produce/references/providers/gpt-image-2.md +1 -1
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +11 -6
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-music.md +2 -2
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +7 -5
- package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +14 -8
- package/lib/drama/skills/short-drama-review/SKILL.md +9 -9
- package/lib/drama/skills/short-drama-review/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -11
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +24 -23
- package/lib/drama/skills/short-drama-review/references/project-calibration.md +17 -16
- package/lib/drama/skills/short-drama-review/references/review-method.md +8 -6
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +7 -6
- package/lib/drama/skills/short-drama-review/references/rubric-source-analysis.md +17 -10
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +29 -25
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +11 -11
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +3 -2
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +8 -10
- package/lib/drama/skills/short-drama-storyboard/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +8 -11
- package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +11 -12
- package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +4 -5
- package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +19 -24
- package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +1 -1
- package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +26 -29
- package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +6 -5
- package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +2 -2
- package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +4 -4
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -8
- package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +3 -3
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +10 -7
- package/lib/drama/skills/short-drama-video-prompts/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +63 -61
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +20 -18
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +12 -12
- package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +4 -3
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +38 -40
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +36 -36
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +17 -21
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +10 -11
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +1 -1
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +2 -2
- package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +6 -12
- package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +2 -1
- package/lib/drama/skills/short-drama-write/SKILL.md +15 -15
- package/lib/drama/skills/short-drama-write/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-write/assets/screenplay.md +3 -4
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +20 -22
- package/lib/drama/skills/short-drama-write/references/production-format-dialect.md +20 -22
- package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +10 -10
- package/lib/drama/skills/short-drama-write/references/scene-sound-dramaturgy.md +11 -9
- package/lib/drama/skills/short-drama-write/references/screenplay-format.md +11 -10
- package/lib/drama/skills/short-drama-write/references/script-craft.md +41 -47
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +7 -5
- package/lib/drama/skills/short-drama-write/references/substitutable-realization.md +19 -25
- package/lib/index.js +120 -31
- package/lib/index.js.map +3 -3
- package/lib/novel-to-game/README.md +10 -11
- package/lib/novel-to-game/README_ZH.md +14 -15
- package/lib/novel-to-game/VERSION +1 -1
- package/lib/novel-to-game/manifest.json +34 -29
- package/lib/novel-to-game/package.json +4 -0
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +2 -2
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +4 -0
- package/lib/novel-to-game/skills/game-build/SKILL.md +9 -1
- package/lib/novel-to-game/skills/game-build/references/baked-sprite-workflow.md +19 -0
- package/lib/novel-to-game/skills/game-concept/SKILL.md +1 -1
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +4 -1
- package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +1 -1
- package/lib/novel-to-game/skills/game-world-design/SKILL.md +1 -1
- package/lib/novel-to-game/skills/game-world-design/agents/openai.yaml +1 -1
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +6 -3
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +5 -4
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +13 -2
- package/lib/oh-story/manifest.json +628 -803
- package/lib/oh-story/package.json +4 -0
- package/lib/oh-story/roles/chapter-extractor.md +13 -12
- package/lib/oh-story/roles/character-designer.md +20 -101
- package/lib/oh-story/roles/consistency-checker.md +7 -9
- package/lib/oh-story/roles/narrative-writer.md +22 -22
- package/lib/oh-story/roles/story-architect.md +22 -32
- package/lib/oh-story/roles/story-explorer.md +11 -14
- package/lib/oh-story/roles/story-researcher.md +13 -14
- package/lib/oh-story/skills/browser-cdp/SKILL.md +38 -26
- package/lib/oh-story/skills/story/SKILL.md +98 -63
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story-cover/SKILL.md +46 -234
- package/lib/oh-story/skills/story-cover/references/api-fallback.md +128 -0
- package/lib/oh-story/skills/story-cover/references/cover-styles.md +61 -93
- package/lib/oh-story/skills/story-deslop/SKILL.md +75 -212
- package/lib/oh-story/skills/story-deslop/references/agent-calls.md +17 -3
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +61 -151
- package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +23 -160
- package/lib/oh-story/skills/story-deslop/references/expression.md +83 -0
- package/lib/oh-story/skills/story-deslop/references/narrative-focus.md +63 -0
- package/lib/oh-story/skills/story-deslop/references/story-logic.md +65 -0
- package/lib/oh-story/skills/story-deslop/references/style-resolution.md +5 -5
- package/lib/oh-story/skills/story-import/SKILL.md +18 -22
- package/lib/oh-story/skills/story-import/references/benchmark-sync.md +50 -0
- package/lib/oh-story/skills/story-import/references/character-state-reverse.md +9 -9
- package/lib/oh-story/skills/story-import/references/deep-analysis.md +7 -8
- package/lib/oh-story/skills/story-import/references/import-report.md +9 -8
- package/lib/oh-story/skills/story-import/references/import-special-cases.md +7 -17
- package/lib/oh-story/skills/story-import/references/import-tracking.md +6 -6
- package/lib/oh-story/skills/story-import/references/length-routing.md +10 -60
- package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +10 -10
- package/lib/oh-story/skills/story-import/references/outline-reverse.md +3 -3
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +120 -132
- package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +77 -92
- package/lib/oh-story/skills/story-import/references/tracking-initialization.md +2 -2
- package/lib/oh-story/skills/story-import/scripts/build_outline_brief.py +36 -59
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +5 -1
- package/lib/oh-story/skills/story-import/scripts/outline_view.py +286 -0
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +41 -78
- package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +28 -30
- package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +9 -17
- package/lib/oh-story/skills/story-long-analyze/references/index-rebuild.md +9 -3
- package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +23 -10
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +13 -20
- package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +28 -29
- package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +74 -162
- package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +124 -309
- package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +49 -164
- package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +12 -13
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +114 -35
- package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +16 -6
- package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +3 -1
- package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +5 -1
- package/lib/oh-story/skills/story-long-scan/SKILL.md +54 -82
- package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +47 -181
- package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +24 -7
- package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +24 -22
- package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +25 -13
- package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +41 -27
- package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +26 -16
- package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +31 -34
- package/lib/oh-story/skills/story-long-write/SKILL.md +12 -13
- package/lib/oh-story/skills/story-long-write/references/agent-calls.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +53 -26
- package/lib/oh-story/skills/story-long-write/references/author-memory-maintenance.md +9 -7
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +6 -6
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +61 -151
- package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/character-basics.md +57 -95
- package/lib/oh-story/skills/story-long-write/references/character-relations.md +120 -270
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +26 -29
- package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +9 -9
- package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +38 -298
- package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +33 -73
- package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +42 -89
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/271/264/344/273/243.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/277/253/347/251/277.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +7 -7
- package/lib/oh-story/skills/story-long-write/references/genre-readers.md +99 -172
- package/lib/oh-story/skills/story-long-write/references/long-chapter-hooks.md +40 -120
- package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +39 -91
- package/lib/oh-story/skills/story-long-write/references/long-format.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +82 -311
- package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +115 -326
- package/lib/oh-story/skills/story-long-write/references/long-reversal.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/long-suspense.md +11 -13
- package/lib/oh-story/skills/story-long-write/references/opening-design.md +38 -334
- package/lib/oh-story/skills/story-long-write/references/outline-methods.md +128 -281
- package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +58 -499
- package/lib/oh-story/skills/story-long-write/references/project-files.md +12 -16
- package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/reference-index.md +29 -84
- package/lib/oh-story/skills/story-long-write/references/revision-diagnosis.md +31 -0
- package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +15 -22
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +4 -172
- package/lib/oh-story/skills/story-long-write/references/style-resolution.md +5 -5
- package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +10 -8
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +47 -47
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +10 -10
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +5 -10
- package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +72 -98
- package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +77 -132
- package/lib/oh-story/skills/story-long-write/scripts/build_architect_brief.py +38 -18
- package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +23 -11
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +5 -1
- package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +1 -1
- package/lib/oh-story/skills/story-review/SKILL.md +41 -54
- package/lib/oh-story/skills/story-review/references/agent-prompts.md +20 -18
- package/lib/oh-story/skills/story-review/references/banned-words.md +61 -151
- package/lib/oh-story/skills/story-review/references/batch-review.md +4 -4
- package/lib/oh-story/skills/story-review/references/expression.md +83 -0
- package/lib/oh-story/skills/story-review/references/narrative-focus.md +63 -0
- package/lib/oh-story/skills/story-review/references/quality-rubric.md +11 -11
- package/lib/oh-story/skills/story-review/references/review-tracking.md +6 -5
- package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +10 -10
- package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +10 -11
- package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +12 -12
- package/lib/oh-story/skills/story-review/references/solo.md +8 -7
- package/lib/oh-story/skills/story-review/references/story-logic.md +65 -0
- package/lib/oh-story/skills/story-review/references/style-resolution.md +5 -5
- package/lib/oh-story/skills/story-review/references/tracking-initialization.md +2 -2
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +2 -2
- package/lib/oh-story/skills/story-setup/SKILL.md +29 -36
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +14 -16
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +61 -151
- package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +10 -10
- package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +57 -95
- package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +120 -270
- package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +23 -160
- package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +26 -29
- package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +9 -9
- package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +38 -298
- package/lib/oh-story/skills/story-setup/references/agent-references/expression.md +83 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/female-audience-writing.md +141 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +11 -11
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/271/264/344/273/243.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/277/253/347/251/277.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +7 -7
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +99 -172
- package/lib/oh-story/skills/story-setup/references/agent-references/long-chapter-hooks.md +40 -120
- package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +34 -74
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +82 -311
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +115 -326
- package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/long-reversal.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/long-suspense.md +11 -13
- package/lib/oh-story/skills/story-setup/references/agent-references/narrative-focus.md +63 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +38 -334
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +128 -281
- package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +58 -499
- package/lib/oh-story/skills/story-setup/references/agent-references/short-chapter-hooks.md +64 -192
- package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +15 -69
- package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +46 -58
- package/lib/oh-story/skills/story-setup/references/agent-references/short-quality.md +6 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +23 -48
- package/lib/oh-story/skills/story-setup/references/agent-references/story-logic.md +65 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +15 -22
- package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +4 -172
- package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +5 -5
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +77 -132
- package/lib/oh-story/skills/story-setup/references/diagnostics.md +4 -4
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +44 -103
- package/lib/oh-story/skills/story-short-analyze/references/analysis-characters.md +66 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-method.md +7 -7
- package/lib/oh-story/skills/story-short-analyze/references/analysis-report-style.md +1 -3
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +22 -21
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +7 -6
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +6 -6
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-patterns.md +2 -2
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +6 -6
- package/lib/oh-story/skills/story-short-analyze/references/analysis-submission.md +52 -0
- package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +23 -73
- package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +38 -50
- package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +20 -38
- package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +24 -175
- package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +53 -38
- package/lib/oh-story/skills/story-short-analyze/references/stage4-6-reversal-summary.md +54 -83
- package/lib/oh-story/skills/story-short-scan/SKILL.md +56 -73
- package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +16 -12
- package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +10 -4
- package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +15 -6
- package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +36 -75
- package/lib/oh-story/skills/story-short-scan/references/topic-match.md +35 -15
- package/lib/oh-story/skills/story-short-write/SKILL.md +23 -26
- package/lib/oh-story/skills/story-short-write/references/agent-calls.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/author-memory-maintenance.md +9 -7
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +6 -6
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +61 -151
- package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +17 -22
- package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +22 -37
- package/lib/oh-story/skills/story-short-write/references/deslop-gates.md +34 -0
- package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +26 -29
- package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +15 -69
- package/lib/oh-story/skills/story-short-write/references/expression.md +83 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +12 -12
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +21 -21
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +17 -17
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +17 -17
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +19 -19
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +16 -16
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +17 -16
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +17 -17
- package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +11 -11
- 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 +22 -22
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +46 -58
- package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +64 -192
- package/lib/oh-story/skills/story-short-write/references/narrative-focus.md +63 -0
- package/lib/oh-story/skills/story-short-write/references/reference-index.md +14 -16
- package/lib/oh-story/skills/story-short-write/references/scene-craft.md +8 -7
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +22 -43
- package/lib/oh-story/skills/story-short-write/references/short-deslop.md +12 -125
- package/lib/oh-story/skills/story-short-write/references/short-format.md +19 -43
- package/lib/oh-story/skills/story-short-write/references/short-reversal.md +23 -48
- package/lib/oh-story/skills/story-short-write/references/story-logic.md +65 -0
- package/lib/oh-story/skills/story-short-write/references/style-resolution.md +5 -5
- package/lib/oh-story/skills/story-short-write/references/submission-craft.md +29 -19
- package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +23 -30
- package/lib/oh-story/skills/story-short-write/references/workflow-design.md +69 -26
- package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +19 -20
- package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +52 -70
- package/lib/oh-story/skills/story-short-write/scripts/check-phase2-contract.js +21 -16
- package/lib/types/client/file-activity.d.ts +10 -0
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/native-hooks.d.ts.map +1 -1
- package/lib/types/role-tool.d.ts +42 -2
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/types/workspace-route.d.ts.map +1 -1
- package/lib/video-recap/CHANGELOG.md +8 -0
- package/lib/video-recap/README.en.md +8 -10
- package/lib/video-recap/README.md +8 -8
- package/lib/video-recap/manifest.json +48 -48
- package/lib/video-recap/package.json +4 -0
- package/lib/video-recap/skills/video-assemble/SKILL.md +5 -8
- package/lib/video-recap/skills/video-assemble/references/audio-modes.md +3 -3
- package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +1 -2
- package/lib/video-recap/skills/video-assemble/references/packaging.md +1 -2
- package/lib/video-recap/skills/video-assemble/references/source-score.md +5 -6
- package/lib/video-recap/skills/video-cut/SKILL.md +3 -7
- package/lib/video-recap/skills/video-cut/references/shot-review.md +1 -1
- package/lib/video-recap/skills/video-recap/SKILL.md +7 -11
- package/lib/video-recap/skills/video-recap/references/audio-routing.md +1 -2
- package/lib/video-recap/skills/video-recap/references/config-playbook.md +5 -7
- package/lib/video-recap/skills/video-recap/references/data-schema.md +8 -8
- package/lib/video-recap/skills/video-recap/references/resource-library.md +2 -2
- package/lib/video-recap/skills/video-reference/SKILL.md +4 -8
- package/lib/video-recap/skills/video-reference/references/reference-schema.md +1 -1
- package/lib/video-recap/skills/video-script/SKILL.md +4 -13
- package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +2 -2
- package/lib/video-recap/skills/video-understanding/SKILL.md +10 -6
- package/lib/video-recap/skills/video-understanding/references/data-schema.md +2 -2
- package/lib/video-recap/skills/video-voiceover/SKILL.md +3 -11
- package/lib/video-recap/skills/video-voiceover/references/index-tts.md +1 -2
- package/package.json +25 -24
- package/lib/drama/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +0 -187
- package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +0 -42
- package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +0 -128
- package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +0 -34
- package/lib/drama/skills/short-drama-storyboard/assets/coverage-template.json +0 -49
- package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +0 -36
- package/lib/drama/skills/short-drama-storyboard/assets/keyframe-template.jsonl +0 -2
- package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +0 -2
- package/lib/drama/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +0 -101
- package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +0 -217
- package/lib/drama/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +0 -31
- package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +0 -67
- package/lib/drama/skills/short-drama-write/assets/beats.jsonl +0 -2
- package/lib/drama/skills/short-drama-write/assets/episode-card-standalone.json +0 -120
- package/lib/drama/skills/short-drama-write/assets/episode-card.json +0 -55
- package/lib/drama/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +0 -89
- package/lib/oh-story/skills/story/references/author-memory-maintenance.md +0 -75
- package/lib/oh-story/skills/story/references/author-memory.md +0 -117
- package/lib/oh-story/skills/story/scripts/author_memory_commit.py +0 -1638
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +0 -556
- package/lib/oh-story/skills/story-deslop/references/author-memory-maintenance.md +0 -75
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +0 -117
- package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +0 -1638
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +0 -168
- package/lib/oh-story/skills/story-import/references/state-tracking.md +0 -43
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +0 -146
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +0 -270
- package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +0 -84
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +0 -133
- package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +0 -114
- package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +0 -105
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +0 -556
- package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +0 -428
- package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +0 -502
- package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +0 -171
- package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +0 -457
- package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +0 -389
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +0 -273
- package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +0 -354
- package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +0 -711
- package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +0 -622
- package/lib/oh-story/skills/story-long-write/references/style-craft.md +0 -327
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +0 -556
- package/lib/oh-story/skills/story-review/references/author-memory-maintenance.md +0 -75
- package/lib/oh-story/skills/story-review/references/author-memory.md +0 -117
- package/lib/oh-story/skills/story-review/references/character-relations.md +0 -433
- package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +0 -288
- package/lib/oh-story/skills/story-review/references/plot-core-methods.md +0 -522
- package/lib/oh-story/skills/story-review/references/review-quality.md +0 -246
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +0 -1638
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +0 -556
- package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +0 -428
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +0 -457
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +0 -389
- package/lib/oh-story/skills/story-setup/references/agent-references/short-paragraph-hooks.md +0 -146
- package/lib/oh-story/skills/story-setup/references/agent-references/short-suspense.md +0 -352
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-basics.md +0 -453
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-design.md +0 -438
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +0 -395
- package/lib/oh-story/skills/story-short-analyze/references/analysis-paragraph-hooks.md +0 -146
- package/lib/oh-story/skills/story-short-analyze/references/analysis-reader-profile.md +0 -245
- package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +0 -477
- package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +0 -79
- package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +0 -90
- package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +0 -54
- package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +0 -490
- package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +0 -146
- package/lib/oh-story/skills/story-short-write/references/output-contract.md +0 -127
- package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +0 -224
- package/lib/oh-story/skills/story-short-write/references/short-suspense.md +0 -352
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +0 -50
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"upstream": {
|
|
4
4
|
"repository": "https://github.com/zenstory-ai/video-recap-skills.git",
|
|
5
|
-
"commit": "
|
|
5
|
+
"commit": "5785c33d8b5172cfa2837a8a0d57eb4b87837475",
|
|
6
6
|
"releaseVersion": "0.6.2"
|
|
7
7
|
},
|
|
8
|
-
"generatedAt": "2026-10-
|
|
8
|
+
"generatedAt": "2026-10-15T09:51:04.161Z",
|
|
9
9
|
"skills": [
|
|
10
10
|
"video-assemble",
|
|
11
11
|
"video-cut",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"files": [
|
|
19
19
|
{
|
|
20
20
|
"path": "CHANGELOG.md",
|
|
21
|
-
"sha256": "
|
|
22
|
-
"bytes":
|
|
21
|
+
"sha256": "3557aac67f3d50d1f08045e648d40c5cf5fd6a9b7af8e88f9b8fb8443b400580",
|
|
22
|
+
"bytes": 108052
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
"path": "LICENSE",
|
|
@@ -28,23 +28,23 @@
|
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
"path": "README.en.md",
|
|
31
|
-
"sha256": "
|
|
32
|
-
"bytes":
|
|
31
|
+
"sha256": "0404dc0dee26a81ecf1595a662a3b74ea7a9edc5df90362518bb0ce4a314a950",
|
|
32
|
+
"bytes": 31281
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"path": "README.md",
|
|
36
|
-
"sha256": "
|
|
37
|
-
"bytes":
|
|
36
|
+
"sha256": "a159253fc336a3cea2c6ae7716fd726940a7925c617a1485897fd6de07808f43",
|
|
37
|
+
"bytes": 27093
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
"path": "skills/video-assemble/SKILL.md",
|
|
41
|
-
"sha256": "
|
|
42
|
-
"bytes":
|
|
41
|
+
"sha256": "88ab7ae6de32321e1bdb1858a132e7968b3f5f20a8b549378f727dfe0d3db2ce",
|
|
42
|
+
"bytes": 12364
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
"path": "skills/video-assemble/references/audio-modes.md",
|
|
46
|
-
"sha256": "
|
|
47
|
-
"bytes":
|
|
46
|
+
"sha256": "e6d93e29367a3cae24da1bd1b5719810b3d9d3b587062031887b0eb1150f001c",
|
|
47
|
+
"bytes": 3509
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
"path": "skills/video-assemble/references/explicit-audio-mix.md",
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
"path": "skills/video-assemble/references/jianying/SOURCE.md",
|
|
61
|
-
"sha256": "
|
|
62
|
-
"bytes":
|
|
61
|
+
"sha256": "43dd440f97b8b07153aeeb66fda3722096b059b297dde356fd6d4f5ef2d1fc00",
|
|
62
|
+
"bytes": 703
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
"path": "skills/video-assemble/references/jianying/empty_draft_meta_info.json",
|
|
@@ -108,13 +108,13 @@
|
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
110
|
"path": "skills/video-assemble/references/packaging.md",
|
|
111
|
-
"sha256": "
|
|
112
|
-
"bytes":
|
|
111
|
+
"sha256": "b9d294ea26c7a359d3dae969fe824c9d9904ec51ad92dd502c1a7a9bc7f3fb53",
|
|
112
|
+
"bytes": 2801
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"path": "skills/video-assemble/references/source-score.md",
|
|
116
|
-
"sha256": "
|
|
117
|
-
"bytes":
|
|
116
|
+
"sha256": "7d33561851dd9a39fb9c60e91979faa95f54321301acf9a6d4d4a12444556437",
|
|
117
|
+
"bytes": 6869
|
|
118
118
|
},
|
|
119
119
|
{
|
|
120
120
|
"path": "skills/video-assemble/references/subtitle-track.md",
|
|
@@ -328,13 +328,13 @@
|
|
|
328
328
|
},
|
|
329
329
|
{
|
|
330
330
|
"path": "skills/video-cut/SKILL.md",
|
|
331
|
-
"sha256": "
|
|
332
|
-
"bytes":
|
|
331
|
+
"sha256": "063eef0a661dd72cdcd987dbf7b59785094a32a69f0fbfded6e5675f01947dea",
|
|
332
|
+
"bytes": 11734
|
|
333
333
|
},
|
|
334
334
|
{
|
|
335
335
|
"path": "skills/video-cut/references/shot-review.md",
|
|
336
|
-
"sha256": "
|
|
337
|
-
"bytes":
|
|
336
|
+
"sha256": "12dd50bcdb2ecb15cbd961f017d94cdca1f73bb042581cb73770f913ab0957f7",
|
|
337
|
+
"bytes": 5570
|
|
338
338
|
},
|
|
339
339
|
{
|
|
340
340
|
"path": "skills/video-cut/scripts/cut.py",
|
|
@@ -398,28 +398,28 @@
|
|
|
398
398
|
},
|
|
399
399
|
{
|
|
400
400
|
"path": "skills/video-recap/SKILL.md",
|
|
401
|
-
"sha256": "
|
|
402
|
-
"bytes":
|
|
401
|
+
"sha256": "e321596c52db87ef347f66d6782d2548c2516b8415f1aa89e4bc460d58f18240",
|
|
402
|
+
"bytes": 17221
|
|
403
403
|
},
|
|
404
404
|
{
|
|
405
405
|
"path": "skills/video-recap/references/audio-routing.md",
|
|
406
|
-
"sha256": "
|
|
407
|
-
"bytes":
|
|
406
|
+
"sha256": "b13bddf5212d9a576b9dc518e09ae9da827dc48f791b9813c7fa48147190b991",
|
|
407
|
+
"bytes": 7245
|
|
408
408
|
},
|
|
409
409
|
{
|
|
410
410
|
"path": "skills/video-recap/references/config-playbook.md",
|
|
411
|
-
"sha256": "
|
|
412
|
-
"bytes":
|
|
411
|
+
"sha256": "7e6d02f53564238799cb34d9909fd250007042ca86625a3722469b35475c8f60",
|
|
412
|
+
"bytes": 13079
|
|
413
413
|
},
|
|
414
414
|
{
|
|
415
415
|
"path": "skills/video-recap/references/data-schema.md",
|
|
416
|
-
"sha256": "
|
|
417
|
-
"bytes":
|
|
416
|
+
"sha256": "6741b2abbce4c6e38baebc4f97f863dbc632d759dd63eb9111134309f1f1b78e",
|
|
417
|
+
"bytes": 36172
|
|
418
418
|
},
|
|
419
419
|
{
|
|
420
420
|
"path": "skills/video-recap/references/resource-library.md",
|
|
421
|
-
"sha256": "
|
|
422
|
-
"bytes":
|
|
421
|
+
"sha256": "86cbdcb95d2381f573513906ce2250713c6ae34df2909918f9487d164491e80b",
|
|
422
|
+
"bytes": 10146
|
|
423
423
|
},
|
|
424
424
|
{
|
|
425
425
|
"path": "skills/video-recap/scripts/doctor.py",
|
|
@@ -508,13 +508,13 @@
|
|
|
508
508
|
},
|
|
509
509
|
{
|
|
510
510
|
"path": "skills/video-reference/SKILL.md",
|
|
511
|
-
"sha256": "
|
|
512
|
-
"bytes":
|
|
511
|
+
"sha256": "eba7399c9021d3ad218a4f4f5cfd4e1f02538c0d31c3670a6a5531487aa927e9",
|
|
512
|
+
"bytes": 9672
|
|
513
513
|
},
|
|
514
514
|
{
|
|
515
515
|
"path": "skills/video-reference/references/reference-schema.md",
|
|
516
|
-
"sha256": "
|
|
517
|
-
"bytes":
|
|
516
|
+
"sha256": "1a0315d268fd449460fe0ff9e89040b873bca88e6ae890683678e8108d620724",
|
|
517
|
+
"bytes": 9258
|
|
518
518
|
},
|
|
519
519
|
{
|
|
520
520
|
"path": "skills/video-reference/scripts/lib.py",
|
|
@@ -548,13 +548,13 @@
|
|
|
548
548
|
},
|
|
549
549
|
{
|
|
550
550
|
"path": "skills/video-script/SKILL.md",
|
|
551
|
-
"sha256": "
|
|
552
|
-
"bytes":
|
|
551
|
+
"sha256": "02f231df44d60985f23b6cd2ee1c731ca234f5a6cfe1233418535f44919ea405",
|
|
552
|
+
"bytes": 18362
|
|
553
553
|
},
|
|
554
554
|
{
|
|
555
555
|
"path": "skills/video-script/references/creative-editing-playbook.md",
|
|
556
|
-
"sha256": "
|
|
557
|
-
"bytes":
|
|
556
|
+
"sha256": "26269189312abf42f83e275de960866c3b21e7c2d26f00e65d61165b324dde3d",
|
|
557
|
+
"bytes": 13952
|
|
558
558
|
},
|
|
559
559
|
{
|
|
560
560
|
"path": "skills/video-script/references/promotional-copy.md",
|
|
@@ -633,13 +633,13 @@
|
|
|
633
633
|
},
|
|
634
634
|
{
|
|
635
635
|
"path": "skills/video-understanding/SKILL.md",
|
|
636
|
-
"sha256": "
|
|
637
|
-
"bytes":
|
|
636
|
+
"sha256": "e0a9612667bf2fdff0b50252daa18d3546c1a88cb53bca61544317dea86736b5",
|
|
637
|
+
"bytes": 8117
|
|
638
638
|
},
|
|
639
639
|
{
|
|
640
640
|
"path": "skills/video-understanding/references/data-schema.md",
|
|
641
|
-
"sha256": "
|
|
642
|
-
"bytes":
|
|
641
|
+
"sha256": "997beda5d80510520a50e84c332f0f25b03216eff5f4b2a480be8e438b410ece",
|
|
642
|
+
"bytes": 6218
|
|
643
643
|
},
|
|
644
644
|
{
|
|
645
645
|
"path": "skills/video-understanding/references/prompt-templates.md",
|
|
@@ -758,13 +758,13 @@
|
|
|
758
758
|
},
|
|
759
759
|
{
|
|
760
760
|
"path": "skills/video-voiceover/SKILL.md",
|
|
761
|
-
"sha256": "
|
|
762
|
-
"bytes":
|
|
761
|
+
"sha256": "80f1ecf4c26ca9fd93f121fcfd68886d7bbeaccd7a8783b998fc1a42f851a354",
|
|
762
|
+
"bytes": 11341
|
|
763
763
|
},
|
|
764
764
|
{
|
|
765
765
|
"path": "skills/video-voiceover/references/index-tts.md",
|
|
766
|
-
"sha256": "
|
|
767
|
-
"bytes":
|
|
766
|
+
"sha256": "485ac7c63c244b60b3b11b9d3b9a8e0158d8dccc057a7e982ab71d570b23f4ea",
|
|
767
|
+
"bytes": 1553
|
|
768
768
|
},
|
|
769
769
|
{
|
|
770
770
|
"path": "skills/video-voiceover/scripts/approved_text_policy.py",
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: video-assemble
|
|
3
3
|
user-invocable: false
|
|
4
|
-
description:
|
|
5
|
-
合成视频解说最终成片:把旁白音频铺到源视频上,按旁白窗口压低原声,生成 SRT / ASS 字幕并可烧录,
|
|
6
|
-
最后做响度标准化。作为最终合成阶段使用。输入源视频、tts_meta.json 与旁白位置;
|
|
7
|
-
输出 recap 成片和字幕。触发词:视频合成、混音、字幕、压字幕、assemble video、mux、ducking、subtitles、成片。
|
|
4
|
+
description: 合成视频解说最终成片:把旁白音频铺到源视频上,按旁白窗口压低原声,生成 SRT / ASS 字幕并可烧录, 最后做响度标准化。作为最终合成阶段使用。输入源视频、tts_meta.json 与旁白位置; 输出 recap 成片和字幕。触发词:视频合成、混音、字幕、压字幕、assemble video、mux、ducking、subtitles、成片。
|
|
8
5
|
---
|
|
9
6
|
|
|
10
7
|
## 1. 定位
|
|
@@ -27,7 +24,7 @@ description: >
|
|
|
27
24
|
- `silence`
|
|
28
25
|
- `narration`
|
|
29
26
|
|
|
30
|
-
|
|
27
|
+
旁白间隙按已选声音分工保留。只在确有任务时加入 BGM,并保住必须听见的台词与有意义的沉默。
|
|
31
28
|
|
|
32
29
|
当前渲染器不解析 `visual_audio_board.json`;Agent 通过旁白时间、`overlaps_speech`、原声留白与现有混音参数落实这些决定。
|
|
33
30
|
|
|
@@ -73,7 +70,7 @@ python3 scripts/assemble.py <video> --work-dir <work_dir> \
|
|
|
73
70
|
- 段落首块(与上一块作者留白超过 1.6 秒)从写的 `start` 放置,但不早于上一块实际结尾加它的 `pause_after_ms`,上一块超时会把它往后推;段落内后续块紧接上一块的实际结尾(间隔 0.35 秒),最多比写的 `start` 提前 1.2 秒。这一提前发生在旁白校验之后,所以提前的那一段不能进入原声对白:有对白时最多提前到最后一段对白结束处。真的提前了的块在 `source_entry_status` 记 `paragraph_tightened`,并在 `written_start` 记写的 `start`。
|
|
74
71
|
- 旁白不做任何容差裁尾;温和加速后仍放不下即 `no_safe_fit`。每段 `_placed_*.wav`
|
|
75
72
|
必须与序列化后的时间线区间等长或更短,否则 `timeline_audio_mismatch` 阻断。
|
|
76
|
-
-
|
|
73
|
+
- 已采用配音按其 `tempo_policy` 执行:保守默认是原速且禁止段内适速,也可显式采用符合范围要求的其他速度策略;环境默认 1.15 倍速不能覆盖采用决定。显式完整声音混音分支固定原速,不做自动适配。放不下就修订安排,不裁尾。严格运行使用新工作目录与新输出路径;输入/实际混音来源变动或 QC 失败时,不发布候选成片。没有采用文件时仍可按默认旁白路径合成,但消费记录为 `UNADOPTED`。
|
|
77
74
|
- 原声在旁白结束后最多再压低 3 秒,等这段时间内的下一个句末锚点:压到它的 `pause_start`,只在实测停顿内渐强,
|
|
78
75
|
于 `source_restore_at` 回满(锚点为 `unverified` 时状态记 `sentence_boundary_unverified`)。3 秒内没有锚点时,
|
|
79
76
|
离时间线末端不足 3 秒就压到末端(`held_to_timeline_end`),否则在旁白结束处直接回满(`bounded_release`),
|
|
@@ -84,7 +81,7 @@ python3 scripts/assemble.py <video> --work-dir <work_dir> \
|
|
|
84
81
|
- 导出只接受 `schema_version: 2` 的 `timeline.json`,只映射视频、音频、字幕和图片叠层(`scale` / `position`);变速、转场、蒙版、富文本、特效轨等手写扩展字段会被明确拒绝。
|
|
85
82
|
- 剪映草稿引用未烧录的源视频,因此原片硬字幕仍会保留,必要时在剪映内另行遮罩。
|
|
86
83
|
- 字幕外观可用 `SUBTITLE_FONT_SIZE`、`SUBTITLE_MARGIN_V`、`SUBTITLE_MAX_CHARS` 等控制。
|
|
87
|
-
- `SUBTITLE_Y_TOP/BOT` 把 ASS 基线放到测得的原片字幕区域,坐标为显示画布上的半开 `[top, bot)`,只接受方形或近方形像素(SAR 与 1:1 相差不超过 2%,未标注的 `0:1`
|
|
84
|
+
- `SUBTITLE_Y_TOP/BOT` 把 ASS 基线放到测得的原片字幕区域,坐标为显示画布上的半开 `[top, bot)`,只接受方形或近方形像素(SAR 与 1:1 相差不超过 2%,未标注的 `0:1` 按方形);比例遮罩默认 `SUBTITLE_MASK_OPACITY=0.6`;显式指定实测字幕带时默认不透明,除非另设该变量。`SOURCE_SUBTITLE_MASK_TIMING` 默认是 `narration`。
|
|
88
85
|
- 原声在旁白间隙回到 `IDLE_ORIG_VOLUME`,旁白下压到 `SPEECH_DUCKING_VOLUME`;`DUCK_FADE_SECONDS` 控制过渡。还可配置 `DUCK_BRIDGE_SECONDS`、`ZONE_DUCKING_VOLUME`、`FINAL_LOUDNORM`、`TARGET_LUFS` 与 `LOUDNESS_LIMITER_MAX_DB`。
|
|
89
86
|
- 可通过 `BGM_PATH` 指定 BGM;它会循环到成片长度,并按 `BGM_VOLUME` / `BGM_DUCKING_VOLUME` 混音。不要在没有创作依据时设置通用 BGM。
|
|
90
87
|
- 烧录字幕需要带 `subtitles` / libass 的 ffmpeg,合成阶段在渲染前预检。显式要求烧录(`--burn-subtitles` 或环境变量 `BURN_SUBTITLES`)时缺 libass 直接失败;只是默认开启时降级:不烧录,交付外挂 `.srt`(留白里的 `「」` 原声对白仅在有 `user_subtitles.*` 时照常写进去;原本由遮罩触发的对白随遮罩一起关闭,原片硬字幕可见),`visual_qc.json` 的 `warnings` 与 `assembly_manifest.json` 的 `warnings` 记一条 `subtitle_burn_degraded`,`subtitles.burn_degraded_reason` 写原因。降级后遮罩照旧关闭(`mask.trigger` 为 `burn_subtitles_degraded`)。
|
|
@@ -92,7 +89,7 @@ python3 scripts/assemble.py <video> --work-dir <work_dir> \
|
|
|
92
89
|
- 成片画面一律是 H.264 8-bit 4:2:0 并带 `+faststart`:不需要滤镜、且源画面已是 H.264 8-bit 4:2:0(`yuv420p`,或全范围的 `yuvj420p`)、宽高为偶数时才流复制,原样交付;否则重编码为 `yuv420p`。色彩标记:源未标记或已是 BT.709 时标为 BT.709(`-colorspace/-color_primaries/-color_trc bt709`),其它已声明的色彩空间原样保留;全范围(`pc`)源保留 `pc`,其余标 `tv`。YUV 源只改标记,不转换像素;RGB 源(ffprobe 报 `gbr`,如 PNG/QuickTime RLE 封装的 MOV)没有 YUV 矩阵可保留,按 BT.709 limited 转换。结果记在 `assembly_qc.json` 的 `delivery_qc.color_tags`(RGB 源多一个 `from_rgb: true`)。
|
|
93
90
|
- 原声留白中的对白字幕优先读取 Agent 校对的 `original_subtitles.json`;否则保守映射 ASR。只有遮罩覆盖留白或用户字幕明确要求替换时才烧录原声对白,并用 `「」` 与旁白区分。
|
|
94
91
|
|
|
95
|
-
###
|
|
92
|
+
### 按原片区间准备声音底轨
|
|
96
93
|
|
|
97
94
|
已有多段原声取舍和独立 BGM 决定时,先用 `references/source-score.md` 的独立
|
|
98
95
|
`source_score.py` 从原片声音流按精确帧区间重建原声轨、音乐轨及两者之和;它只输出
|
|
@@ -6,7 +6,7 @@ zero-based audio ordinal used by FFmpeg's `0:a:N` selector.
|
|
|
6
6
|
|
|
7
7
|
## `narration`
|
|
8
8
|
|
|
9
|
-
- Requires non-empty `tts_meta.json` segments
|
|
9
|
+
- Requires non-empty `tts_meta.json` segments.
|
|
10
10
|
- Builds/places narration WAV, performs source ducking and optional BGM mix,
|
|
11
11
|
then applies the configured final loudness/limiter stage and AAC encoding.
|
|
12
12
|
- Missing source audio may use the existing synthetic-silence fallback.
|
|
@@ -21,8 +21,8 @@ zero-based audio ordinal used by FFmpeg's `0:a:N` selector.
|
|
|
21
21
|
- Uses the selected input audio stream, applies `IDLE_ORIG_VOLUME`, mixes a
|
|
22
22
|
declared `BGM_PATH` when present, and runs the configured final
|
|
23
23
|
loudness/limiter stage before AAC encoding.
|
|
24
|
-
- A declared but missing `BGM_PATH` is an error in
|
|
25
|
-
|
|
24
|
+
- A declared but missing `BGM_PATH` is an error in source-mix mode. Narration
|
|
25
|
+
mode warns and skips the missing music.
|
|
26
26
|
- This is a processed mix, not frozen audio. `assembly_qc.json` reports the
|
|
27
27
|
operations that actually ran.
|
|
28
28
|
|
|
@@ -5,8 +5,7 @@ These JSON protocol templates are pinned to
|
|
|
5
5
|
`ef4eb46c823910553f901649f2f13fd7575e748f`, under its MIT license. They are
|
|
6
6
|
data/schema baselines, not executable upstream code. Runtime builders deep-copy
|
|
7
7
|
the templates and replace authored values such as IDs, paths, timings, and canvas
|
|
8
|
-
dimensions.
|
|
9
|
-
compound-draft templates were dropped together with green-screen export.
|
|
8
|
+
dimensions. The directory contains only templates used by the exporter.
|
|
10
9
|
|
|
11
10
|
The required copyright and permission notice is preserved in
|
|
12
11
|
`LICENSE.duo-video` in this directory.
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
4. 渲染完整透明字幕层,再 overlay 到锁定母版;合成后确认音轨未被意外改写。
|
|
14
14
|
5. 完整播放实际最终文件,并复查字幕遮脸、跳字、断行、首尾帧和边界处残影。
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
近似品牌样式;本技能不提供逐帧前景合成命令。合成时音轨按流复制,合成后核对帧率、时长与音轨未被改写,
|
|
16
|
+
已有项目级渲染器时,由该项目把透明层合成到锁定母版,以保留已确认的包装样式;本技能不提供逐帧前景合成命令。合成时音轨按流复制,合成后核对帧率、时长与音轨未被改写,
|
|
18
17
|
再写入新文件。片名卡有渐显或动画时须渲染完整序列,不能冻结最后一张图代替。
|
|
19
18
|
|
|
20
19
|
## 静态包装图层 `packaging_layers.json`
|
|
@@ -73,8 +73,9 @@ Each unique selected source stream is decoded from its actual PTS clock to canon
|
|
|
73
73
|
48 kHz stereo exactly once. All authored intervals are then cut from that canonical
|
|
74
74
|
sample array—never independently decoded or `-ss`-seeked per edit.
|
|
75
75
|
|
|
76
|
-
The source segment
|
|
77
|
-
Its output end is derived
|
|
76
|
+
The source segment length is the difference between the rounded start and end
|
|
77
|
+
sample positions described above. Its output end is derived from that integer
|
|
78
|
+
length, not declared or rounded from the duration again. Source segments and explicit silence ranges
|
|
78
79
|
must form an exact, nonoverlapping partition of `[0,total_samples)`. There are no
|
|
79
80
|
implicit gaps. Supported roles are `protected_original` and
|
|
80
81
|
`mixed_original_under_narration`; their gains and labels are retained unchanged.
|
|
@@ -131,9 +132,7 @@ directory cannot publish final-named beds or a receipt.
|
|
|
131
132
|
Diagnostic command/log/intermediate files may remain in the unique failed directory.
|
|
132
133
|
|
|
133
134
|
To consume a completed receipt with explicitly adopted narration, use the strict
|
|
134
|
-
`--audio-mix-adoption` path in `explicit-audio-mix.md`.
|
|
135
|
-
prepared bed without narration, a dedicated prepared-audio renderer will follow in a
|
|
136
|
-
later release. Do not feed `prepared_bed.wav` through legacy source ducking or
|
|
135
|
+
`--audio-mix-adoption` path in `explicit-audio-mix.md`. This path does not render a final video from a prepared bed alone. Do not feed `prepared_bed.wav` through legacy source ducking or
|
|
137
136
|
ambient BGM/loudness settings.
|
|
138
137
|
|
|
139
138
|
## 与旧入口的关系(中文摘要)
|
|
@@ -143,5 +142,5 @@ ambient BGM/loudness settings.
|
|
|
143
142
|
完整音乐决定且不再叠加配乐,使用严格的 `score:{"kind":"none"}`;它生成真实全零 score,
|
|
144
143
|
并保持 prepared 与 source 逐字节相同,不伪造静音音乐资产。
|
|
145
144
|
|
|
146
|
-
|
|
145
|
+
这一步输出声音底轨和来源回执,后续合成负责最终视频。调用方须区分
|
|
147
146
|
“底轨已验证”“配音已验证”和“完整混音已验证”三种状态,不能相互冒充。
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: video-cut
|
|
3
3
|
user-invocable: false
|
|
4
|
-
description:
|
|
5
|
-
把长视频按 Agent 选择的原片区间剪成短片。作为两阶段创作流程中的剪辑环节,读取 clip_plan.json 与源视频,
|
|
6
|
-
输出 edited_source.mp4;随后 Agent 按输出时间线写 narration.json。支持单视频与多视频(sources manifest)拼剪,
|
|
7
|
-
本工具不读取、不映射旁白。
|
|
8
|
-
触发词:视频剪辑、剪辑式解说、video cut、clip plan、拼剪。
|
|
4
|
+
description: 把长视频按 Agent 选择的原片区间剪成短片。作为两阶段创作流程中的剪辑环节,读取 clip_plan.json 与源视频, 输出 edited_source.mp4;随后 Agent 按输出时间线写 narration.json。支持单视频与多视频(sources manifest)拼剪, 本工具不读取、不映射旁白。 触发词:视频剪辑、剪辑式解说、video cut、clip plan、拼剪。
|
|
9
5
|
---
|
|
10
6
|
|
|
11
7
|
## 1. 定位
|
|
@@ -18,7 +14,7 @@ description: >
|
|
|
18
14
|
4. 拼接选定区间,输出恒定帧率的 `edited_source.mp4`,帧数与 `clip_plan_validated.json` 记录的一致。
|
|
19
15
|
5. 到此停止,由 Agent 按真实输出时间线写 `narration.json`;本工具不读取旁白,也不做原片→输出映射。
|
|
20
16
|
|
|
21
|
-
|
|
17
|
+
渲染缓存按输入与设置复用。`edited_source.mp4.meta.json` 记录标准化 clips、渲染设置和每个源文件的 `size`/`mtime_ns`;三者与当前一致且 `edited_source.mp4` 存在非空才复用,任一不同即重渲染。只有 sidecar 而没有媒体文件不复用。
|
|
22
18
|
|
|
23
19
|
## 2. 输入契约
|
|
24
20
|
|
|
@@ -43,7 +39,7 @@ description: >
|
|
|
43
39
|
|
|
44
40
|
## 3. 剪辑意图契约
|
|
45
41
|
|
|
46
|
-
|
|
42
|
+
Agent 写片段前先确认剪辑意图,并让每个区间映射到 `recap_story_plan.json` 的一个 beat;工具负责执行与校验。
|
|
47
43
|
|
|
48
44
|
使用现有自由文本 `reason` 保存简洁决定:
|
|
49
45
|
|
|
@@ -40,7 +40,7 @@ python3 scripts/cut.py source.mp4 --work-dir work --review-shots
|
|
|
40
40
|
|
|
41
41
|
对每个候选看前后 0.5–1 秒,核对角色表演、完整动作、对白与原片切镜;未实际播放就保留 `NEEDS_DYNAMIC_REVIEW`。
|
|
42
42
|
先对照源画面和取景参数:同一原生镜头中途换 crop/画窗,或曝光闪光,都可能产生切点分数;两个候选间的帧数不一定是一段真实短镜头。
|
|
43
|
-
|
|
43
|
+
修复后用同样参数重跑,核对候选变化,再以正常速度播放确认修复是否成立;仍被保留的短镜逐个判断,不因“短”就判错。
|
|
44
44
|
判断无关残镜后,在作者计划里删除整个无关镜头或恢复同源连续画面;相关反应可回原片扩完整,不能用定格补长、转场掩盖或只修导出文件。
|
|
45
45
|
|
|
46
46
|
## 修短残镜时的取景复核
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: video-recap
|
|
3
|
-
description:
|
|
4
|
-
从输入视频生成中文解说成片或原声剧情短片。用户提供 .mp4 / .mov / .mkv / .webm,并要求剪辑、添加旁白、
|
|
5
|
-
配音、总结、短剧/电视剧/电影/纪录片/科普解说时使用。负责编排 video-* 技能链:视频理解 →
|
|
6
|
-
Agent 制定故事与视听方案 → 剪辑 → 配音 → 合成。触发词:视频解说、视频旁白、生成解说、
|
|
7
|
-
视频 recap、video recap、voiceover、narration、auto-dub、recap。
|
|
3
|
+
description: 从输入视频生成中文解说成片或原声剧情短片。用户提供 .mp4 / .mov / .mkv / .webm,并要求剪辑、添加旁白、 配音、总结、短剧/电视剧/电影/纪录片/科普解说时使用。负责编排 video-* 技能链:视频理解 → Agent 制定故事与视听方案 → 剪辑 → 配音 → 合成。触发词:视频解说、视频旁白、生成解说、 视频 recap、video recap、voiceover、narration、auto-dub、recap。
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
## 1. 定位与流程
|
|
@@ -60,7 +56,7 @@ video-assemble 严格验证,recap 只核对子技能绑定记录引用的是
|
|
|
60
56
|
|
|
61
57
|
## 2. 创作职责
|
|
62
58
|
|
|
63
|
-
|
|
59
|
+
Agent 负责本次创作。先判断本轮的**创作控制模式**(CREATE / DIRECTED / REVISION,与 `--edit-mode` 分别选择),再在配音和渲染前完成五次判断:
|
|
64
60
|
|
|
65
61
|
1. **导演判断**:观众承诺、POV、戏剧问题、情绪终点与揭示节奏。
|
|
66
62
|
2. **故事编辑**:beat 定义为“发生了什么变化”,不是场景摘要。
|
|
@@ -93,7 +89,7 @@ TTS 供应商由 `--tts-provider mimo-tts|fish-audio|index-tts`(或 `TTS_PROVI
|
|
|
93
89
|
|
|
94
90
|
可覆盖配置见 `references/config-playbook.md`,`final_qc.json` 的字段见 `references/data-schema.md`。
|
|
95
91
|
|
|
96
|
-
下面的 `scripts/...`
|
|
92
|
+
下面的 `scripts/...` 均相对于本技能目录。若执行器从仓库根目录启动,请给脚本路径加上本技能的绝对目录。编排脚本从同一技能根目录定位所需阶段;安装时需让五个阶段技能与本技能位于同一层。
|
|
97
93
|
|
|
98
94
|
## 4. 标准解说流程(audio-mode narration)
|
|
99
95
|
|
|
@@ -161,13 +157,13 @@ python3 scripts/recap.py <video> --work-dir <work_dir> # 可追加 --edit-mode
|
|
|
161
157
|
|
|
162
158
|
### 4.5 字幕与克隆旁白
|
|
163
159
|
|
|
164
|
-
|
|
160
|
+
若要把旁白字幕固定在原片字幕区域,先测量位置。完整源码安装可在仓库根目录运行以下工具;单独安装技能时,由 Agent 查看视频帧测出同一显示画布上的上下边界:
|
|
165
161
|
|
|
166
162
|
```bash
|
|
167
163
|
python3 tools/measure_subtitle.py <video>
|
|
168
164
|
```
|
|
169
165
|
|
|
170
|
-
再传入测得的 `--subtitle-y-top/--subtitle-y-bot`。坐标基于 ffmpeg 自动旋转后的显示画布,区间为半开 `[top, bot)`,并要求底对齐 ASS
|
|
166
|
+
再传入测得的 `--subtitle-y-top/--subtitle-y-bot`。坐标基于 ffmpeg 自动旋转后的显示画布,区间为半开 `[top, bot)`,并要求底对齐 ASS 样式;显式设置后,该区域默认使用不透明的旁白窗口遮罩;可用 `SUBTITLE_MASK_OPACITY` 调整。
|
|
171
167
|
|
|
172
168
|
解说模式如需克隆参考声音,使用 `--voice-ref <audio>`;它与 dub 模式不同。
|
|
173
169
|
|
|
@@ -190,7 +186,7 @@ full/cut 交付如需让确定性的最终检查影响命令退出状态,显
|
|
|
190
186
|
该参数不支持 `--edit-mode dub`;dub 未传该参数时的准备和渲染行为不变。
|
|
191
187
|
|
|
192
188
|
交付时读 `final_qc.json` 的 `metadata.warnings`,有内容就原样告诉用户,不能只报“完成”。`subtitle_burn_degraded`
|
|
193
|
-
表示 ffmpeg 缺 libass
|
|
189
|
+
表示 ffmpeg 缺 libass、默认烧录被降级:新字幕保存在成片旁的同名 `.srt`,原片已有硬字幕仍保留。用户要烧录字幕,就请他装带 libass 的
|
|
194
190
|
ffmpeg 后重跑;显式传 `--burn-subtitles` 时缺 libass 会在开跑前报错。旁白里写了 `visual_overlays` 而 ffmpeg 缺
|
|
195
191
|
drawtext 时,流程在配音前停下,按报错删掉叠加或换 ffmpeg 后续跑。
|
|
196
192
|
|
|
@@ -256,4 +252,4 @@ python3 scripts/dashboard_server.py --root <目录> [--port 0] [--open]
|
|
|
256
252
|
## 8. 能力边界
|
|
257
253
|
|
|
258
254
|
- 语义评审默认建议型、失败开放;只有调用方显式启用严格解说评审时,事实矛盾、残句或评审不可用才会在 TTS 前阻断。确定性校验阶段始终负责硬校验。
|
|
259
|
-
-
|
|
255
|
+
- 宣发标题、花字或外部文案回填交给 `video-script`,由它读取自己的宣发参考。
|
|
@@ -57,8 +57,7 @@ episodes. Use two existing stages rather than sending an old mix binding into a
|
|
|
57
57
|
`SOURCES_JSON` must be `{"sources": [{"source_id": ..., "source_path": ...}]}`
|
|
58
58
|
(optional per-source `duration` and `source_work_dir`); recap's
|
|
59
59
|
`multi_source_manifest.json` already has this shape. A single-source cut omits
|
|
60
|
-
`--sources-manifest`.
|
|
61
|
-
`picture_map.json`) before placing sound.
|
|
60
|
+
`--sources-manifest`. Read `clip_plan_validated.json` before placing sound.
|
|
62
61
|
2. Keep the selected WAVs, `tts_meta.json`, and `narration_adoption.json` when the words,
|
|
63
62
|
WAV bytes, and selected voice are unchanged. Do not run voiceover just to move a line.
|
|
64
63
|
In this explicit mix, new `output_start_sample` values own placement; old generation
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
# Config playbook (override-only)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
variables below, and a variable you set that disagrees with the project stops the run. The bundle ships no
|
|
8
|
-
root `CLAUDE.md` (so it never collides with your project/global instructions).
|
|
3
|
+
Use the defaults after configuring the required credentials and local tools. The environment
|
|
4
|
+
variables and CLI flags below override those defaults. An optional `recap_project.json` passed
|
|
5
|
+
with `--project` binds resources and templates to the same settings (see `resource-library.md`).
|
|
6
|
+
A conflict between a project binding and an explicit setting stops the run.
|
|
9
7
|
Defaults below are bundle-level defaults unless a note scopes them to a specific stage.
|
|
10
8
|
|
|
11
9
|
| Concern | Env var / flag | Default | Notes |
|
|
@@ -31,7 +29,7 @@ Defaults below are bundle-level defaults unless a note scopes them to a specific
|
|
|
31
29
|
| Source sentence boundary detector | `SOURCE_BOUNDARY_NOISE_THRESHOLD` / `SOURCE_BOUNDARY_MIN_PAUSE` / `SOURCE_BOUNDARY_MAX_ALIGNMENT_ERROR` | `-18dB` / `0.12` / `2.1` | aligns ASR terminal punctuation to short acoustic pauses and writes `speech_boundary_anchors.json`; unsafe narration entries and cut in/out points are blocked. There is no intentional-interrupt override |
|
|
32
30
|
| Cut sentence snapping | `SNAP_CLIP_LINE_END` / `CLIP_START_SNAP_MAX_PREPEND` / `CLIP_START_SNAP_MAX_TRIM` / `CLIP_SNAP_MAX_EXTEND` | on / `1.8` / `0.35` / `2.0` | scene-cut cleanup runs first, then reliable sentence/quiet snapping, then a sub-frame frame-grid alignment that keeps the edge in its pause. An ASR-owned edge still inside speech produces `unsafe_clip_sentence_boundary` instead of a half sentence, with `nearest_safe` before/after times within 5 s, already on the source frame grid |
|
|
33
31
|
| Mask source subs | `MASK_SOURCE_SUBTITLES` / `SOURCE_SUBTITLE_MASK_POLICY` / `SOURCE_SUBTITLE_MASK_RATIO` | off / `off` / `0.14` | masking requires an explicit policy (`opt_in`, `safe`, or `forced`) and burned recap subtitles. Passing measured `--subtitle-y-top/--subtitle-y-bot` opts in automatically. With `--no-burn-subtitles`, or when a default burn degrades because ffmpeg lacks libass, the MP4 stays unmasked |
|
|
34
|
-
| Measured subtitle band | `SUBTITLE_Y_TOP` / `SUBTITLE_Y_BOT`; `--subtitle-y-top/--subtitle-y-bot` | off | half-open `[top, bot)` rows of the auto-rotated display canvas (the stored width is scaled by the SAR; a rotated non-square stream's rows are scaled by it too, and the mask converts them back to decoded-frame rows); square or near-square pixels (SAR within 2% of 1:1; unspecified `0:1` counts as square) and bottom ASS alignment (1/2/3) only;
|
|
32
|
+
| Measured subtitle band | `SUBTITLE_Y_TOP` / `SUBTITLE_Y_BOT`; `--subtitle-y-top/--subtitle-y-bot` | off | half-open `[top, bot)` rows of the auto-rotated display canvas (the stored width is scaled by the SAR; a rotated non-square stream's rows are scaled by it too, and the mask converts them back to decoded-frame rows); square or near-square pixels (SAR within 2% of 1:1; unspecified `0:1` counts as square) and bottom ASS alignment (1/2/3) only; a full source checkout includes `tools/measure_subtitle.py` for source-identified previews and suggestions |
|
|
35
33
|
| Subtitle mask look | `SUBTITLE_MASK_OPACITY` / `SOURCE_SUBTITLE_MASK_TIMING` / `SUBTITLE_MASK_PADDING` | `0.6` / `narration` / `4` | generic ratio masks stay translucent by default; an explicitly measured `--subtitle-y-top/--subtitle-y-bot` band defaults to opaque so source glyphs cannot show through. Set `SUBTITLE_MASK_OPACITY` to override; timing `all` restores full-time masking |
|
|
36
34
|
| Original ducking | `IDLE_ORIG_VOLUME` / `SPEECH_DUCKING_VOLUME` | `1.0` / `0.2` | the original returns to full-volume `IDLE` in deliberate gaps/original blocks, and ducks to `SPEECH` under narration. Inter-beat gaps shorter than `DUCK_BRIDGE_SECONDS` stay ducked so a single narration block does not swell between sentences. A fixed `0.3` is only the fallback when beats carry no placement info |
|
|
37
35
|
| Foreign source audio | `FOREIGN_SOURCE_AUDIO` | off | set when the original audio is in a language the narration is **not** (e.g. a Japanese drama recapped in Chinese). The under-narration original (`SPEECH_DUCKING_VOLUME` / `ZONE_DUCKING_VOLUME`) drops from `0.2`/`0.12` to `0.05` so the foreign speech doesn't bleed under the narration as 怪音; original-audio gap blocks still play full-volume (`IDLE_ORIG_VOLUME`). Explicit `SPEECH_DUCKING_VOLUME`/`ZONE_DUCKING_VOLUME` still override. Pairs with bring-your-own `user_subtitles.*` for the foreign dialogue |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 数据格式(中间 JSON)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
中间产物保存在本次运行的工作目录 `work_dir/` 下。
|
|
4
4
|
|
|
5
5
|
## vlm_analysis.json
|
|
6
6
|
|
|
@@ -165,7 +165,7 @@ cut 第二轮(已有 `edited_source.mp4`)时本文件与 `asr_writing_chunks
|
|
|
165
165
|
|
|
166
166
|
## narration.json
|
|
167
167
|
|
|
168
|
-
Agent 撰写的解说词。full
|
|
168
|
+
Agent 撰写的解说词。full 模式下使用原视频时间;**编排 cut 模式(`video-recap --edit-mode cut`)下**,第二次暂停时已经先剪出 `edited_source.mp4`,因此 `narration.json` 必须直接使用剪后成片的 OUTPUT 时间轴(0..成片总时长);不存在原视频时间→输出时间的旁白映射产物:
|
|
169
169
|
|
|
170
170
|
```json
|
|
171
171
|
[
|
|
@@ -180,7 +180,7 @@ Agent 撰写的解说词。full 模式下使用原视频时间;**orchestrated
|
|
|
180
180
|
```json
|
|
181
181
|
{
|
|
182
182
|
"ok": false,
|
|
183
|
-
"error_count":
|
|
183
|
+
"error_count": 2,
|
|
184
184
|
"warning_count": 1,
|
|
185
185
|
"metrics": {
|
|
186
186
|
"segment_count": 12,
|
|
@@ -245,7 +245,7 @@ CLI 不以它们作为渲染硬门禁,也不新增解析服务;建议型解
|
|
|
245
245
|
|
|
246
246
|
## narration_lint.json 的 deslop_qc(CLI 生成,报告型 QC)
|
|
247
247
|
|
|
248
|
-
`narration_lint.json` 的 `deslop_qc` 字段由本地 deterministic scanner 生成,Agent 不手写;不再单独写 `deslop_qc.json
|
|
248
|
+
`narration_lint.json` 的 `deslop_qc` 字段由本地 deterministic scanner 生成,Agent 不手写;不再单独写 `deslop_qc.json`。它输出可读性报告,区分下面两类结果;不判断文本是否由 AI 生成,也不自动改写。修改仍由 Agent/人工根据报告回到 `narration.json`、`style_card.json` 或字幕源里处理。
|
|
249
249
|
|
|
250
250
|
报告分两层:
|
|
251
251
|
|
|
@@ -417,14 +417,14 @@ CLI 校验 `clip_plan.json` 后写出,额外包含输出时间轴:
|
|
|
417
417
|
|
|
418
418
|
## original_subtitles.json / user_subtitles.{json,srt,ass}(可选,原声留白字幕)
|
|
419
419
|
|
|
420
|
-
|
|
420
|
+
遮罩覆盖原声留白或用户字幕明确要求替换时,assemble 才为留白生成原声对白字幕,并用 `「」` 与旁白区分。来源优先级(高→低):
|
|
421
421
|
|
|
422
|
-
1. **`work_dir/user_subtitles.json
|
|
422
|
+
1. **`work_dir/user_subtitles.json`**(用户自带,优先使用)— 数组 `[{start,end,text}]` 默认按**成片 OUTPUT** 时间轴直接使用;也可写成 `{"timeline": "source"|"output", "lines": [...]}`,`source` 表示按**原片**时间轴给出,由 assemble 依 `clip_plan_validated.json` 映射到成片。
|
|
423
423
|
2. **`work_dir/user_subtitles.srt` / `.ass`**(用户自带)— 默认按**原片**时间轴解析后映射到成片。
|
|
424
424
|
3. **`work_dir/original_subtitles.json`**(Agent 校对,cut pass2 写)— OUTPUT 时间轴 `[{start,end,text}]`,订正 ASR 错字/人名、只写留白里真正出声的句子。
|
|
425
425
|
4. **ASR 兜底** — 无上述文件时,用 `asr_result.json` 按留白粗略映射(中点估时,可能偏多偏乱)。
|
|
426
426
|
|
|
427
|
-
来源 1–3
|
|
427
|
+
来源 1–3 直接采用声明的时间区间:每条按句**区间裁剪**落到所覆盖的留白边界(跨边界会拆分),不走 ASR 兜底的中点估时;过密行截断显示而非丢弃。时间声明仍需对照实际声音核准,不能仅凭文件来源认定已精确对齐。
|
|
428
428
|
|
|
429
429
|
```json
|
|
430
430
|
[
|
|
@@ -599,4 +599,4 @@ Dub 模式下,`dub_script.json` 在 voiceclone **之前**先经过 determinist
|
|
|
599
599
|
"mask_dropped": false, "message": "…", "next_action": "…"}
|
|
600
600
|
```
|
|
601
601
|
|
|
602
|
-
|
|
602
|
+
这时新字幕保存在成片旁的同名 `.srt`,路径见 `assembly_manifest.json` 的 `subtitle_sidecar`;原片已有硬字幕仍保留。`mask_dropped` 为 `true` 表示原本会画的原字幕遮罩也一并关掉了。`final_qc.py` 打印的摘要 `final_qc.warnings` 列出这些 code,`recap.py` 完成时打印一行警告和外挂字幕路径。
|
|
@@ -22,7 +22,7 @@ python3 scripts/library.py --library-dir <library> show <id|id@vN>
|
|
|
22
22
|
|
|
23
23
|
浏览资源、模板与样片(含图片、音频与样片预览)可用只读 dashboard:`python3 scripts/dashboard_server.py --root <library 或其上层目录>`。
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
这三个查询命令不写库。新增或修改记录时直接编辑 JSON,再跑 `check`。**错误**表示该条目不能用;**警告**表示能用但需要人看一眼
|
|
26
26
|
(授权未确认、声音授权未确认、样片不在本机、模板采用后资源文件已变化)。
|
|
27
27
|
|
|
28
28
|
## 通用规则
|
|
@@ -114,7 +114,7 @@ python3 scripts/library.py --library-dir <library> show <id|id@vN>
|
|
|
114
114
|
任何层级出现 `source_facts`、`labels`、`evidence`、`entities`、`statement`、`from`、`path` 键都报错(与参考技能导出时的复扫同一组键)。
|
|
115
115
|
5. 用户确认后把 `status` 改为 `adopted` 并用用户原话写 `adoption`。之后要改内容就出 `v2`,不改已采纳的版本。
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
上述库查询命令只读,登记与采纳由操作者编辑 JSON。
|
|
118
118
|
|
|
119
119
|
## 样片 `sample.json`
|
|
120
120
|
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: video-reference
|
|
3
3
|
user-invocable: true
|
|
4
|
-
description:
|
|
5
|
-
按需把一部成片拆成可复用的制作参考:测镜头节奏与响度,标注段落与音轨分工,把原片事实与可迁移方法分开,
|
|
6
|
-
导出不含原片人名台词的 production_reference.json 供下次制作参考。不在默认生产路径上。
|
|
7
|
-
触发词:拆片、拆解成片、制作参考、参考模板、production reference。
|
|
4
|
+
description: 按需把一部成片拆成可复用的制作参考:测镜头节奏与响度,标注段落与音轨分工,把原片事实与可迁移方法分开, 导出不含原片人名台词的 production_reference.json 供下次制作参考。不在默认生产路径上。 触发词:拆片、拆解成片、制作参考、参考模板、production reference。
|
|
8
5
|
---
|
|
9
6
|
|
|
10
7
|
## 1. 定位
|
|
11
8
|
|
|
12
|
-
|
|
13
|
-
不调用 MiMo,不改其他产物,不给任何运行打分或拦截。
|
|
9
|
+
本技能把一部**已完成的成片**拆成下一次制作可参考的方法与数值,按需在本地运行。它只写自己的测量、标注与导出物,不调用 MiMo,也不对生产流程评分或拦截。
|
|
14
10
|
|
|
15
11
|
Agent 的角色是**拆片编辑**:先如实记录"这部片子怎么做的"(事实),再提炼"换一部素材还能怎么用"(方法)。
|
|
16
12
|
两者必须分开:事实只留在本地工作目录,导出物只含方法和测得的数值。
|
|
@@ -24,7 +20,7 @@ Agent 的角色是**拆片编辑**:先如实记录"这部片子怎么做的"
|
|
|
24
20
|
标注时 Agent 还应看故事板 / contact sheet 与 `vlm_analysis.json`。
|
|
25
21
|
|
|
26
22
|
没有理解产物也能跑,但旁白语速为空,泄漏扫描只剩 Agent 自己写的 `entities`,check 会给出警告;
|
|
27
|
-
|
|
23
|
+
看画面可用 `frames --span 0,<时长> --step 2` 生成的抽帧拼图。
|
|
28
24
|
|
|
29
25
|
下面的 `scripts/...` 均相对于本技能目录。
|
|
30
26
|
|
|
@@ -94,7 +90,7 @@ R6 只能拦住字面泄漏,拦不住改写过的剧情;写方法时要写"
|
|
|
94
90
|
|
|
95
91
|
使用方式:把它复制进下一次制作的 `work_dir`。写稿阶段只在文件存在时阅读它,
|
|
96
92
|
并可在 `recap_story_plan.json` 的可选字段 `reference_methods` 记录每条方法的 adopt / adapt / skip。
|
|
97
|
-
|
|
93
|
+
采用时以新素材证据为准,不把参考数值当作配额。没有任何脚本读取它,也不会因为它的存在改变任何阶段的通过与否。
|
|
98
94
|
|
|
99
95
|
`U/` 里的 breakdown 与 `reference_frames/` 含原片事实和画面,只留在本地,不要复制或提交。
|
|
100
96
|
|