@oh-story/dsh 0.1.15 → 0.1.16
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 +12 -10
- package/lib/drama/manifest.json +284 -364
- 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 +80 -17
- package/lib/index.js.map +3 -3
- package/lib/novel-to-game/README.md +8 -9
- package/lib/novel-to-game/README_ZH.md +12 -13
- package/lib/novel-to-game/manifest.json +19 -19
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +2 -2
- package/lib/novel-to-game/skills/game-build/SKILL.md +2 -0
- package/lib/novel-to-game/skills/game-concept/SKILL.md +1 -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/references/intake-method.md +4 -4
- package/lib/oh-story/manifest.json +662 -662
- package/lib/oh-story/roles/chapter-extractor.md +10 -10
- package/lib/oh-story/roles/character-designer.md +8 -24
- package/lib/oh-story/roles/consistency-checker.md +3 -5
- package/lib/oh-story/roles/narrative-writer.md +16 -16
- package/lib/oh-story/roles/story-architect.md +8 -11
- package/lib/oh-story/roles/story-explorer.md +7 -9
- package/lib/oh-story/roles/story-researcher.md +8 -8
- package/lib/oh-story/skills/browser-cdp/SKILL.md +19 -18
- package/lib/oh-story/skills/story/SKILL.md +14 -19
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story-cover/SKILL.md +17 -26
- package/lib/oh-story/skills/story-cover/references/cover-styles.md +12 -10
- package/lib/oh-story/skills/story-deslop/SKILL.md +69 -211
- package/lib/oh-story/skills/story-deslop/references/agent-calls.md +17 -3
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +63 -151
- package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +23 -160
- package/lib/oh-story/skills/story-deslop/references/expression.md +76 -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 +8 -13
- package/lib/oh-story/skills/story-import/references/character-state-reverse.md +9 -8
- package/lib/oh-story/skills/story-import/references/deep-analysis.md +5 -5
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +11 -11
- package/lib/oh-story/skills/story-import/references/import-report.md +5 -5
- package/lib/oh-story/skills/story-import/references/import-special-cases.md +4 -4
- package/lib/oh-story/skills/story-import/references/import-tracking.md +5 -5
- package/lib/oh-story/skills/story-import/references/length-routing.md +12 -20
- package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +3 -3
- package/lib/oh-story/skills/story-import/references/outline-reverse.md +2 -2
- package/lib/oh-story/skills/story-import/references/state-tracking.md +5 -3
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +13 -13
- package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +10 -14
- package/lib/oh-story/skills/story-import/references/tracking-initialization.md +2 -2
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +2 -2
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +8 -8
- package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +9 -9
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +22 -22
- package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +5 -4
- 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 +7 -7
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +8 -9
- package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +2 -2
- package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +8 -8
- package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +9 -9
- package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +15 -15
- package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +17 -15
- package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +8 -6
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +19 -16
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +8 -8
- package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +6 -6
- package/lib/oh-story/skills/story-long-scan/SKILL.md +22 -27
- package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +30 -44
- package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +6 -4
- package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +5 -5
- package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +7 -7
- package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +9 -9
- package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +6 -4
- package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +16 -29
- package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +26 -39
- package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +10 -11
- package/lib/oh-story/skills/story-long-write/SKILL.md +9 -10
- 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 +3 -3
- 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 +63 -151
- package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/character-basics.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/character-relations.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +7 -6
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +23 -160
- package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +19 -22
- package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +28 -27
- package/lib/oh-story/skills/story-long-write/references/expression.md +76 -0
- package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +3 -4
- 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 +32 -39
- package/lib/oh-story/skills/story-long-write/references/long-chapter-hooks.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +2 -2
- 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 +13 -13
- package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/long-reversal.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/long-suspense.md +3 -5
- package/lib/oh-story/skills/story-long-write/references/narrative-focus.md +63 -0
- package/lib/oh-story/skills/story-long-write/references/opening-design.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/outline-methods.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +10 -11
- package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +5 -5
- package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +8 -8
- package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +5 -6
- package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +7 -5
- package/lib/oh-story/skills/story-long-write/references/project-files.md +4 -4
- 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 +3 -5
- package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/story-logic.md +65 -0
- package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/style-craft.md +8 -29
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +3 -3
- 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 +4 -4
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +3 -3
- 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 +25 -24
- package/lib/oh-story/skills/story-review/SKILL.md +16 -31
- package/lib/oh-story/skills/story-review/references/agent-prompts.md +10 -12
- package/lib/oh-story/skills/story-review/references/banned-words.md +63 -151
- package/lib/oh-story/skills/story-review/references/batch-review.md +4 -4
- package/lib/oh-story/skills/story-review/references/character-relations.md +4 -4
- package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +19 -22
- package/lib/oh-story/skills/story-review/references/expression.md +76 -0
- package/lib/oh-story/skills/story-review/references/narrative-focus.md +63 -0
- package/lib/oh-story/skills/story-review/references/plot-core-methods.md +5 -5
- package/lib/oh-story/skills/story-review/references/quality-rubric.md +5 -5
- package/lib/oh-story/skills/story-review/references/review-quality.md +16 -19
- package/lib/oh-story/skills/story-review/references/review-tracking.md +5 -5
- package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +6 -5
- package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +6 -5
- package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +7 -8
- package/lib/oh-story/skills/story-review/references/solo.md +5 -5
- 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 +18 -18
- 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 +3 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +63 -151
- package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +9 -9
- package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +4 -4
- 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 +19 -22
- package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/expression.md +76 -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 +33 -41
- package/lib/oh-story/skills/story-setup/references/agent-references/long-chapter-hooks.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +28 -27
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +13 -13
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +2 -2
- 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 +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/long-suspense.md +3 -5
- 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 +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +5 -5
- package/lib/oh-story/skills/story-setup/references/agent-references/short-chapter-hooks.md +14 -34
- package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +7 -9
- package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +8 -10
- package/lib/oh-story/skills/story-setup/references/agent-references/short-paragraph-hooks.md +11 -12
- 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 +11 -11
- 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 +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +3 -3
- 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 +25 -24
- package/lib/oh-story/skills/story-setup/references/diagnostics.md +4 -4
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +5 -15
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-basics.md +91 -111
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-design.md +85 -97
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +72 -83
- package/lib/oh-story/skills/story-short-analyze/references/analysis-method.md +7 -7
- package/lib/oh-story/skills/story-short-analyze/references/analysis-paragraph-hooks.md +28 -30
- package/lib/oh-story/skills/story-short-analyze/references/analysis-reader-profile.md +59 -66
- 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 +2 -2
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +3 -3
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +3 -3
- 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 +2 -2
- package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +76 -89
- package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +5 -5
- package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +3 -3
- package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +13 -24
- package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +3 -3
- package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +24 -25
- package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +44 -46
- package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +14 -12
- package/lib/oh-story/skills/story-short-analyze/references/stage4-6-reversal-summary.md +17 -17
- package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +11 -11
- package/lib/oh-story/skills/story-short-scan/SKILL.md +22 -29
- package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +3 -3
- package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +2 -2
- package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +2 -2
- package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +24 -25
- package/lib/oh-story/skills/story-short-scan/references/topic-match.md +3 -3
- package/lib/oh-story/skills/story-short-write/SKILL.md +20 -23
- package/lib/oh-story/skills/story-short-write/references/agent-calls.md +3 -3
- 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 +63 -151
- package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +8 -8
- package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +11 -11
- 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 +19 -22
- package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +7 -9
- package/lib/oh-story/skills/story-short-write/references/expression.md +76 -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 +9 -9
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +15 -15
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +9 -9
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +14 -14
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +11 -11
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +9 -9
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +14 -13
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +12 -12
- package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +8 -8
- 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 +12 -12
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +8 -10
- package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +14 -34
- package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +11 -12
- package/lib/oh-story/skills/story-short-write/references/narrative-focus.md +63 -0
- package/lib/oh-story/skills/story-short-write/references/output-contract.md +13 -24
- package/lib/oh-story/skills/story-short-write/references/reference-index.md +3 -4
- 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 +16 -18
- 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 +9 -13
- package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +18 -35
- package/lib/oh-story/skills/story-short-write/references/short-reversal.md +11 -11
- 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 +8 -8
- package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +11 -13
- package/lib/oh-story/skills/story-short-write/references/workflow-design.md +11 -9
- package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +10 -10
- package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +10 -9
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +4 -4
- 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/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/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-long-write/references/anti-ai-writing.md +0 -556
- 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/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/short-suspense.md +0 -352
- package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +0 -490
- package/lib/oh-story/skills/story-short-write/references/short-suspense.md +0 -352
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# 投稿范式:平台基调 · 导语 · 付费点
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> 投稿前按平台定基调、单独打磨导语,并设计付费断点;题材招式按 `genre-styles/{题材}.md`。
|
|
4
4
|
|
|
5
5
|
## 一、先定平台基调
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
动笔前确认投稿平台,结合本篇目标情绪选择视角、矛盾烈度、章末钩子与结局质感。以下基调用作创作参考:
|
|
8
8
|
|
|
9
9
|
| 平台 | 视角 | 矛盾演进 | 章末钩子 | 结局质感 |
|
|
10
10
|
|---|---|---|---|---|
|
|
@@ -12,24 +12,24 @@
|
|
|
12
12
|
| 小程序 | 上帝视角或强情绪第一人称,开局即地狱 | 冲突全外化到对白和动作,走"被羞辱→亮底牌→当众打脸→夺实利"快循环 | 卡脖子断点(巴掌将落、协议撕一半、话说一半) | 直白粗暴的爽,反派付实质代价(破产/入狱/众叛亲离),主角高位不留遗憾 |
|
|
13
13
|
| 番茄短篇 | 流畅第一/第三人称,目标清晰、金手指直白 | 顺滑无毒点,反派挑衅一两节内转成主角升级/发财的垫脚石 | 开新地图 / 拿到新底牌 / 新人物带资源登场 | 圆满畅快,事业感情双收,坏人受罚 |
|
|
14
14
|
|
|
15
|
-
-
|
|
16
|
-
-
|
|
15
|
+
- 同一个脑洞可以分别按知乎/小程序/番茄试写,比较声音与落点后选择投稿方向。
|
|
16
|
+
- 平台基调须与题材招式及本篇目标情绪配合;排版另按 `short-format.md` 选择,小程序基调的稿也要选定一套平台模板。
|
|
17
17
|
- **调基调不松去 AI 底线**:强情绪靠具体动作和对白落地,别把话硬拆成三字碎句成片排列;前情背景靠场景带出,别整段插叙成"来龙去脉"说明书;对仗句式("上辈子…这辈子…")别高频复用。去 AI 味仍按本套件既有规则。
|
|
18
18
|
|
|
19
19
|
## 二、导语(投稿门面,单独打磨)
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
导语是正文最前面的引子,要让编辑和读者尽快看清核心冲突与继续读的理由。
|
|
22
22
|
|
|
23
|
-
- **长度与形态**:约 150-220
|
|
23
|
+
- **长度与形态**:约 150-220 字,题材包如写 150-300,投稿时按此收紧。黑岩/盐言用完整句各自成段,番茄按 `short-format.md` 的短段模板。导语就是正文开头几段,写完顺接后文。
|
|
24
24
|
- **四维骨架**:起因(悲剧源头或荒诞开端)+ 核心冲突(被凝视、被剥削、被算计的绝境)+ 人设底色(清醒、有底牌,不是纯惨)+ 情绪反转(钩子卡在最后半句,戛然而止)。
|
|
25
25
|
- **黄金三角**:一个有冲击力的具体物件(撕碎的 B 超单、代持协议、落灰的旧相机)+ 一个信息差(主角藏在暗处的底牌,读者知道、施害者不知道)+ 一个留白的致命钩子。
|
|
26
26
|
- **反面**:别用导语平铺背景或抒情;别把底牌全亮完(留给正文兑现);别只写惨不写"她有后手"。
|
|
27
27
|
|
|
28
28
|
## 三、付费点(投稿结构)
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
采用付费试读的短篇按"免费试读 + 付费点 + 付费正文"组织,投稿语境的"章"即本 skill 的"节"。分界处要留下读者正在等待的答案或后果。
|
|
31
31
|
|
|
32
|
-
-
|
|
32
|
+
- **断点位置**:在章末截住即将揭晓的反转或对决,如亲子鉴定撕开一半、底牌刚要拍上桌、名字念到一半,让付费段兑现尚未完成的动作。核心大爽点不要在免费段全部放完。
|
|
33
33
|
- **剧情点密度**:付费点前完成处境、选择与代价的因果链,付费点后集中兑现已经承诺的打脸、反转或爽点。相关变化可由同一动作链完成,不按每章数量补剧情点;连续单元没有状态变化才复核是否停滞。
|
|
34
34
|
- **反推法排细纲**:先定付费点卡在第几节章末,先把那一节的剧情想透(如复仇虐爽:前几节情绪递进越来越虐,付费点节章末预示反击),再倒推安排前面各节"情绪冲突逐渐递进",最后排付费点之后的兑现段。
|
|
35
35
|
- **投稿成品形态**:标题 + 导语(不写"导语"二字,只留那几句)+ 数字分节的正文(含付费点断点)。投稿建议区间比 SKILL 框架(8000-20000)更收敛:整篇约 8000-12000 字;分节数量与长度服从动作链、转场和付费断点,不设统一章长。
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 反派设计与真相揭露
|
|
2
2
|
|
|
3
3
|
> 反派设计模板、真相揭露方式、报应设计。Phase 2 设计反派时加载。
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- 各题材的反派套路(世情打脸反派、重生复仇反派等)已在 genre-writing-formulas.md,本文件只提供通用设计模板
|
|
9
|
-
- 本文件的反派人设模板 `{身份}+{动机}+{作恶方式}+{致命弱点}` 侧重「设计蓝图」,genre-writing-formulas.md 的 `{人设}+{动机}+{行为}+{态度}+{受伤害程度}` 侧重「矛盾冲突公式」——前者用于 Phase 2 设计,后者用于 Phase 3 写作
|
|
7
|
+
按题材决定反派的恶行与关系压力,再用以下模板记录身份、动机、手段、弱点与报应。
|
|
10
8
|
|
|
11
9
|
---
|
|
12
10
|
|
|
@@ -27,7 +25,7 @@
|
|
|
27
25
|
|
|
28
26
|
### 嚣张度递增阶梯
|
|
29
27
|
|
|
30
|
-
|
|
28
|
+
按前因与损失加重反派行为,避免重复同一种恶行;下表展示一种升级路径:
|
|
31
29
|
|
|
32
30
|
| 级别 | 行为类型 | 示例 |
|
|
33
31
|
|------|----------|------|
|
|
@@ -39,11 +37,11 @@
|
|
|
39
37
|
|
|
40
38
|
| 类型 | 特征 | 代表作 | 致命弱点 |
|
|
41
39
|
|------|------|--------|----------|
|
|
42
|
-
| 操控型 | 以爱为名控制一切 |
|
|
40
|
+
| 操控型 | 以爱为名控制一切 | 王氏(《皇弟欺负幼子》) | 控制欲导致行事留下证据 |
|
|
43
41
|
| 贪婪型 | 无底线索取 | 准儿媳 | 贪心过度暴露真面目 |
|
|
44
|
-
| 伪装型 | 隐藏真实身份/目的 |
|
|
45
|
-
| 嚣张型 | 仗势欺人,有恃无恐 |
|
|
46
|
-
| 软刀型 | 示弱博同情,暗中操控 |
|
|
42
|
+
| 伪装型 | 隐藏真实身份/目的 | 女友(《重生弟弟》中的诈骗犯) | 身份经不起调查 |
|
|
43
|
+
| 嚣张型 | 仗势欺人,有恃无恐 | 萧琅(《皇弟欺负幼子》) | 傲慢导致不看身后 |
|
|
44
|
+
| 软刀型 | 示弱博同情,暗中操控 | 妈妈(《姐夫捎路要奶粉钱》) | 假面被证据击碎 |
|
|
47
45
|
|
|
48
46
|
---
|
|
49
47
|
|
|
@@ -116,7 +114,7 @@
|
|
|
116
114
|
|
|
117
115
|
### 规则
|
|
118
116
|
|
|
119
|
-
|
|
117
|
+
报应须与恶行及其后果对应,让读者看清反派为何承担这一代价。
|
|
120
118
|
|
|
121
119
|
### 对应原则
|
|
122
120
|
|
|
@@ -138,7 +136,7 @@
|
|
|
138
136
|
|
|
139
137
|
### 报应强度校准
|
|
140
138
|
|
|
141
|
-
-
|
|
139
|
+
- 按恶行、受害后果与本篇情绪决定报应强度,避免轻轻放过或无因夸大
|
|
142
140
|
- 不写长段报应描写,2-3 句带过,留白给读者
|
|
143
141
|
- 报应的「爽」来自对应感,不是来自描写长度
|
|
144
142
|
|
|
@@ -146,8 +144,8 @@
|
|
|
146
144
|
|
|
147
145
|
## 4. 反转有效性自检(Phase 2 使用)
|
|
148
146
|
|
|
149
|
-
|
|
147
|
+
写完大纲后按 writing-workflow.md「反转信息差验证」检查,先让误判参与至少一次重要决定,再揭示真相;位置百分比只作记录。另查:
|
|
150
148
|
- 反转前读者和角色至少有一方不知道真相;没有就制造信息差(读者不知道 / 角色不知道 / 双方都不知道)。
|
|
151
149
|
- 假线索用红鲱鱼或选择性叙述;真相线索藏在日常细节里,回看能找到、正读会忽略,不用强调语气。
|
|
152
150
|
|
|
153
|
-
|
|
151
|
+
**失败模式**:读者早已知道真相,后续只等角色追上来,却没有新行动或代价。此时只有角色获知信息;若目标是让读者震惊,揭示还须推翻读者此前的判断。
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
已部署 story-architect 时可 spawn `Agent(subagent_type: "story-architect", prompt: "项目目录:{dir}\n任务类型:短篇构思\n查询参数:{目标情绪+题材方向}")` 辅助框架设计;不可用由主会话直接执行。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
与作者确定核心框架:
|
|
8
|
+
|
|
9
|
+
情绪设计中的反转项仅用于有反转篇;无反转时在该位置记录报应兑现或甜度变化,按本篇设计安排高潮。
|
|
8
10
|
|
|
9
11
|
```
|
|
10
12
|
## 短篇核心框架
|
|
@@ -43,20 +45,20 @@
|
|
|
43
45
|
- {作者在对话里定下的人称、偏好、红线,一条一行;否掉的方案也记一行,写明为什么不要}
|
|
44
46
|
```
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
框架确定后按以下任务设计,再将结果写入工作目录。
|
|
47
49
|
|
|
48
50
|
#### 设计任务(框架确定后执行)
|
|
49
51
|
|
|
50
|
-
|
|
52
|
+
从目标情绪反推剧情,按 `references/writing-workflow.md` 的步骤和模板依次完成:
|
|
51
53
|
|
|
52
|
-
1.
|
|
53
|
-
2.
|
|
54
|
-
3.
|
|
55
|
-
4. 编写
|
|
54
|
+
1. 定平台基调并加载题材风格包:先读 `references/submission-craft.md`,定投稿平台及正文视角、矛盾烈度、章末落点;再读核心 10 题材对应的 `references/genre-styles/{题材}.md` 和通用方法 `references/short-craft.md`,选 2-3 个核心招式,写明本篇用法并存入 `设定.md`「题材招式」。冷门题材将所用公式要点按模板写入该区,供正文与精修直接使用
|
|
55
|
+
2. 设计反派(如有):加载 `villain-and-reveal.md`
|
|
56
|
+
3. 确定揭露方式:按同一文件选择;无需揭露时写明原因
|
|
57
|
+
4. 编写 `小节大纲.md`,使用 writing-workflow.md 的 12 列表格。**标出付费点卡在哪一节末**:按 `submission-craft.md`「付费点」,用未完成动作、身份/证据变化或两难选择形成断点;先想透该节,再倒排前后。任务卡点仅在能推动情绪、证据、关系、反转或反击时使用
|
|
56
58
|
5. 反转信息差验证(公式见 writing-workflow.md)
|
|
57
59
|
6. 伏笔回查清单(标准见 writing-workflow.md)
|
|
58
60
|
|
|
59
|
-
`设定.md
|
|
61
|
+
将以下设计字段写入 `设定.md`,供机器验收与后续写作使用:
|
|
60
62
|
|
|
61
63
|
```markdown
|
|
62
64
|
## Phase 2 设计校验
|
|
@@ -78,7 +80,7 @@
|
|
|
78
80
|
|
|
79
81
|
两份文件生成后、向用户声明构思完成或进入 Phase 3 前,运行 `node scripts/check-phase2-contract.js --json {短篇目录}`:
|
|
80
82
|
|
|
81
|
-
- exit 0:Phase 2
|
|
83
|
+
- exit 0:Phase 2 机械契约通过,可进入下一阶段;故事质量仍需判断
|
|
82
84
|
- exit 1:只把 `repair_scope` 中的检查 ID、证据、期望、reference 路径和修复范围交给本轮 writer;只改失败字段,再运行同一命令
|
|
83
85
|
- 最多做 2 轮定向 repair;仍失败则停止,用中文告诉作者设计还缺什么,不得声称 Phase 2 已完成
|
|
84
86
|
- exit 2、脚本缺失或不可执行:告诉作者自动检查没跑成,不得用泛化“自检”替代后继续
|
|
@@ -4,30 +4,30 @@
|
|
|
4
4
|
|
|
5
5
|
**格式规范(最高优先级)**:正文只存 `正文.md`,主会话与写手同一套格式:段间只允许一个换行符、不留空行,小节标记与引号全篇统一,按 `设定.md`「平台基调」,没写才查 `short-format.md` 平台覆盖表;子代理输出不一致时按此重排。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**构思完成检查**:写前先跑 `node {skill 根}/scripts/check-phase2-contract.js --json {短篇目录}`;未返回 exit 0 时,告诉作者设计还缺什么,请其回到构思补完。
|
|
8
8
|
|
|
9
9
|
**本时刻只靠落盘文件接上构思**:`设定.md`(核心框架、作者已定、平台基调、题材招式、反转铺垫、贯穿道具、反派与揭露方式、对标摘要)与 `小节大纲.md` 为 Phase 2 产出,`正文.md` 为本阶段产出。反转、反派、揭露、付费点与平台基调以两份设计文件为准,不重读构思方法论(workflow-design、writing-workflow、short-reversal、submission-craft、villain-and-reveal、冷门题材公式全文);作者在对话里改过、设计文件还没写的,先写回 `设定.md` 再动笔。
|
|
10
10
|
|
|
11
11
|
**导入项目续写基线**:`设定.md` 存在「本书续写基线」时先读取,作为已写内容的内部连续性与既有写法约束;它不是对标摘要,不参与主/副对标排序,也不复制到 `对标/`。
|
|
12
12
|
|
|
13
|
-
>
|
|
13
|
+
> 下文的五「段」指开头、铺垫、升级、反转、结尾等结构部分,各含若干数字编号的「小节」;场景内按节拍(beat)安排动作与情绪变化。
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**写前加载**:依次读 `short-format.md` 的正文格式、`short-craft.md` 的通用方法、[scene-craft.md](scene-craft.md) 的场景写法,以及 `设定.md` 题材参考指定的唯一 `genre-styles/{题材}.md`。冷门题材按「题材招式」区的公式要点写,腔调按 `short-craft.md`。写羁绊或余韵时按需读 `emotional-methods.md` 对应一斧;`short-deslop.md` 到 Phase 4 去味时再读,初稿先通过完成门槛的 AI 腔检测。
|
|
16
16
|
|
|
17
17
|
**交付参数先锁定**:用户明确的字数范围优先,逐字取其最小值/最大值与节数;只给单一目标时用目标的 95%-105%;都未给时用 8000-20000 字和大纲节数。后文的默认字数不得覆盖用户范围。
|
|
18
18
|
|
|
19
19
|
**写前参数验收(锁定后、写 `正文.md` 前必跑)**:`node {skill 根}/scripts/check-delivery-contract.js --json --check-contract --min-chars {MIN} --max-chars {MAX} --sections {N} [--min-section-chars {用户逐节下限}] {短篇目录}`。exit 0 只说明参数能同时满足,不算交付;exit 2 即冲突,停在写前,用中文告诉用户字数范围与节数哪里对不上,请其选择调整项,不代改用户约束。
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
**写前准备**:每个场景动笔前依次确认情绪与技法:
|
|
22
22
|
- **步骤 1:记忆+召回**:① 本场景目标情绪词?② 借鉴哪个参考文件的哪个技法?③ 具体用在哪个段落?答不出 → 先回读本时刻已加载的参考再动笔。有对标时从 `设定.md`「对标摘要」召回 1-2 个与本场景相关的技法,要细看再查主对标 `对标/{书}/写作手法.md`(没有就用 `拆文库/{书}/`)的对应条目,写入“拆文召回摘要”
|
|
23
23
|
- **多对标书时**:副对标只用「对标摘要」里构思时已登记的条目(正文阶段不新增召回),作为“副对标召回摘要”;正文只传摘要,不传副书文风或原文
|
|
24
|
-
- **步骤 2
|
|
24
|
+
- **步骤 2:指令确认**:用一句话概括本场景的情绪、技法及使用位置;有任务卡点时说明它带来的情绪变化或新证据,确认后开始写作
|
|
25
25
|
|
|
26
26
|
**写作指令**:写法按 `short-craft.md`(情绪直写与上下文支撑第 2 节、在场叙述第 3 节)与 `scene-craft.md`(三维度揉进与画面分段、疏密与主语节奏),段落与标点按 `short-format.md`,不照搬大纲腔。情绪烈度按 `设定.md` 与题材包的腔调,没写时默认宁烈不温(冲突前置、爽点具体、台词带刺);任务卡点必须直接加重羞辱、误会、背叛、证据、反击或心死节点,删掉无损就压缩。
|
|
27
27
|
|
|
28
28
|
#### 分批写与子代理
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
主会话默认按 2-3 节/批写正文,不要求单次 agent spawn 写完 8000+ 字。
|
|
31
31
|
|
|
32
32
|
- 每批写完后更新短篇目录下 `.story/work/已写小节摘要.md`(3-5 条:已揭示信息、情绪位置、未回收伏笔、下一批衔接句),换对话靠它接上,交付后可删。
|
|
33
33
|
- 下一批先读该摘要和 `正文.md` 尾部 300-500 字再续写。
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
|
|
41
41
|
**节数守恒**:正文节数必须等于小节大纲规划节数。不得合并多节为一节。如果写作中发现某节不需要独立存在,应回到大纲阶段调整,而非在写作时偷减。
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
按以下结构写作,占比仅参考,以小节大纲为准。无反转篇按设计写报应兑现或甜度递进;反转线索、误导与揭露要求仅用于有反转的篇目。反派与贯穿道具仅在设计中选用时执行相应要求。
|
|
44
44
|
|
|
45
45
|
#### 第一段:开头(前 300-500 字)
|
|
46
46
|
|
|
47
47
|
**目标**:3 句话内抓住读者。**必须包含一个开篇钩子**(从下表或题材包「开篇范式」选类型)。
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
**先写导语**:正文以 150-220 字导语开篇,交代起因、核心冲突、人设底色与情绪反转,结合具体物件、信息差与留白钩子。黑岩/盐言用完整句各自成段,番茄按 short-format.md 短段叙述。导语就是正文头几段,写完顺接后文。首句从事件、动作或信息炸弹起笔,遵守下方开头零环境规则及前 100 字事件密度≥3;剧透钩子放导语后半,留住底牌,也让读者看到主角的后手。
|
|
50
50
|
|
|
51
51
|
**开头零环境规则**(默认适用;悬疑、惊悚、灾难、强氛围题材可例外):
|
|
52
52
|
- 前 3 句禁止出现无事件承载的环境描写(灯光、天气、气味、温度、装修)
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
- 随风险和选择升级提高牵引强度;用新证据、代价、误判修正或局部反击推动,不按固定节数另塞钩子(按题材包)
|
|
87
87
|
- 埋入误导信息,让读者猜错反转方向
|
|
88
88
|
- **数字/金额递增作为叙事工具**(具体数字替代模糊描述,见各 genre-styles 招式库「数字承重」)
|
|
89
|
-
-
|
|
89
|
+
- **场景引擎有变化**:按因果需要切换行动、对话、证据、任务、等待、空间压力与关系选择
|
|
90
90
|
|
|
91
91
|
#### 第四段:反转(占全文 10-15%)
|
|
92
92
|
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
| 类型 | 效果 | 适合情绪 |
|
|
109
109
|
|------|------|----------|
|
|
110
110
|
| 余韵式 | 不说完,让读者自己想 | 意难平 |
|
|
111
|
-
| 呼应式 |
|
|
111
|
+
| 呼应式 | 首尾的物件、动作或话语形成呼应闭环 | 治愈、成长 |
|
|
112
112
|
| 开放式 | 留下悬念 | 细思极恐 |
|
|
113
113
|
| 反转再反转 | 结尾再来一个小反转 | 震惊 |
|
|
114
114
|
| 金句式 | 一句话点题 | 共鸣 |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
本文件中的 `scripts/` 与 `references/` 路径均相对本 skill 根目录。精修必读本文件与 `short-format.md`(格式快速检查、字数口径);新对话里精修也先读它。
|
|
4
4
|
|
|
5
|
-
Phase 3
|
|
5
|
+
Phase 3 写手只做覆盖与格式自检。Phase 4 由 narrative-writer 或主会话一方读 `references/short-deslop.md` 与 `references/deslop-gates.md`,定点修复清单及检测问题,再查一致性;完整三层诊断另走 `/story-deslop`。S1/S2 与 blocking 必须修,S3 与 advisory 建议看,S4 仅提示。主会话最终扫描、验收;改后只复核改动并重跑受影响检查。
|
|
6
6
|
|
|
7
7
|
按文末「精修清单」完成检查。文件模式依次运行 `node scripts/check-ai-patterns.js --check --fail-on=blocking 正文.md`、`node scripts/check-outline-copy.js --outline 小节大纲.md 正文.md`、`node scripts/normalize-punctuation.js 正文.md`、`node scripts/check-degeneration.js --check 正文.md`,blocking 先改正文再复扫。照搬检测报出的誓词、关键原话等功能性台词保留,登记进 `小节大纲.md` 末尾「复沓锚句」再复检,其余现场重写。
|
|
8
8
|
|
|
@@ -12,9 +12,9 @@ Phase 3 写手只做内容覆盖与格式自检(该分工随写作 prompt 传
|
|
|
12
12
|
|
|
13
13
|
已部署对应 agent 时可派出:narrative-writer 去味的 prompt 见 [agent-calls.md](agent-calls.md)「精修去味」;一致性检查派 `Agent(subagent_type: "consistency-checker", prompt: "项目目录:{dir}\n检查范围:{正文文件}\n检查类型:事实冲突+伏笔断线+角色属性不一致")`。agent 不可用时主会话直接执行。
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**正文洁净规则**:自检结果只在对话中说明,不另存或附正文;正文不得出现 `<!-- 自检 -->` 等检查标记。
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
**交付说明(给作者看)**:用白话说明:
|
|
18
18
|
1. 写了什么:标题、一句话核心钩子或反转、总字数、几节。
|
|
19
19
|
2. 要作者拍板的事:每件写成一句问题并附推荐默认(如「结尾要不要再留个小反转?默认不留」);没有就省略。
|
|
20
20
|
3. 下一步可选:精修某段、去 AI 味、换平台改写等。
|
|
@@ -25,6 +25,8 @@ Phase 3 写手只做内容覆盖与格式自检(该分工随写作 prompt 传
|
|
|
25
25
|
|
|
26
26
|
### 精修检查清单
|
|
27
27
|
|
|
28
|
+
反转项仅用于反转篇;无反转时核对核心兑现与关系递进。
|
|
29
|
+
|
|
28
30
|
```
|
|
29
31
|
## 精修清单
|
|
30
32
|
|
|
@@ -56,10 +58,10 @@ Phase 3 写手只做内容覆盖与格式自检(该分工随写作 prompt 传
|
|
|
56
58
|
- [ ] 章末是否有未完成动作、新信息、局部兑现、关系变化、余韵或明确下一步之一?
|
|
57
59
|
|
|
58
60
|
### AI 腔
|
|
59
|
-
- [ ]
|
|
61
|
+
- [ ] 比喻、情绪词与反应有上下文作用;不凭「如潮水般」「心猛地一沉」「眼眶泛红」孤立词句判错
|
|
60
62
|
- [ ] 重复的身体/情绪描写按功能取舍:无新增信息就删,不换部位或同义动作凑数
|
|
61
63
|
- [ ] 「像/好像/仿佛/如同」不成片堆叠;超过 10 处或检测器报比喻密度时逐处复核功能,有功能的留,不设硬上限、不机械全删
|
|
62
|
-
- [ ]
|
|
64
|
+
- [ ] 检测候选已逐处按功能复核,短篇卖点保护见 short-deslop.md
|
|
63
65
|
|
|
64
66
|
### 技法
|
|
65
67
|
- [ ] 情绪落地:按 `short-craft.md` 第 2 节检查上下文支撑,保留准确直写,清理空泛与重复说明
|
|
@@ -72,10 +74,9 @@ Phase 3 写手只做内容覆盖与格式自检(该分工随写作 prompt 传
|
|
|
72
74
|
- [ ] 读者会不会想转发?
|
|
73
75
|
```
|
|
74
76
|
|
|
75
|
-
###
|
|
77
|
+
### 标点收尾
|
|
76
78
|
|
|
77
|
-
|
|
78
|
-
再运行 `node scripts/normalize-punctuation.js 正文.md`(默认 `--quote-mode keep`)清理无功能省略号、破折号、双连字符和独立分隔线;盐言「」不受影响。
|
|
79
|
+
按本文件开头的文件扫描顺序,先运行 `node scripts/check-ai-patterns.js --check --fail-on=blocking 正文.md`,修正 blocking 后复扫;advisory 结合读感判断,功能性写法标 `[需复核]`。再运行 `node scripts/normalize-punctuation.js 正文.md`,默认 `--quote-mode keep`,清理无功能省略号、破折号、双连字符和独立分隔线,保留盐言「」。
|
|
79
80
|
|
|
80
81
|
### 删减原则
|
|
81
82
|
|
|
@@ -92,7 +93,7 @@ Phase 3 写手只做内容覆盖与格式自检(该分工随写作 prompt 传
|
|
|
92
93
|
| 反转没力度 | 铺垫不够或太明显 | 增加误导线索 |
|
|
93
94
|
| 结尾无力 | 反转后还在补交代 | 篇幅按小节大纲;反转后只写兑现与余韵 |
|
|
94
95
|
| 全篇平淡 | 情绪曲线太平 | 加大情绪落差 |
|
|
95
|
-
| 感觉像流水账 |
|
|
96
|
+
| 感觉像流水账 | 事件没有改变判断、选择或情绪 | 补清事件后果及人物回应,删掉无变化的复述 |
|
|
96
97
|
|
|
97
98
|
### 冷门题材公式核对
|
|
98
99
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# writing-workflow.md:短篇写作工作流详解
|
|
2
2
|
|
|
3
|
-
Phase 2
|
|
3
|
+
Phase 2 按本文件完成设计与验收;Phase 4 精修按 workflow-revision.md。
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -12,7 +12,7 @@ Phase 2 设计任务的步骤与验收;Phase 4 精修清单在 workflow-revisi
|
|
|
12
12
|
- 填写:`- 第1次出现(第X节):{场景}({含义})` 重复三次,含节号定位
|
|
13
13
|
2. **设计反派**(如有):用 villain-and-reveal.md 反派模板
|
|
14
14
|
- 填写:`{身份} + {动机} + {作恶方式} + {致命弱点} + {报应}`
|
|
15
|
-
3.
|
|
15
|
+
3. **确定揭露方式**:需要揭露真相时,从 villain-and-reveal.md 的 4 种机制中选择,写进 `设定.md` 反派设计区;无需揭露时写明原因
|
|
16
16
|
4. **编写 小节大纲.md**:使用固定 12 列 Markdown 表格,每节 1 行,表头如下(列名和顺序不可改):
|
|
17
17
|
|
|
18
18
|
`| 结构段/五段功能 | 主事件 | 情节推进 | 情绪 | 人物/关系变化 | 因果/逻辑链 | 读者新获知什么 | 结尾承接/钩子 | 伏笔/物件 | 场景形态 | 对白作用 | 目标字数 |`
|
|
@@ -27,7 +27,7 @@ Phase 2 设计任务的步骤与验收;Phase 4 精修清单在 workflow-revisi
|
|
|
27
27
|
`具体发生了什么{功能标签}` 如 `发现账单上多了一笔4800{发现}` / `把戒指冲进马桶{冲突}` / `他笑了{递进}`
|
|
28
28
|
功能标签:`对话` / `冲突` / `伏笔` / `回忆` / `发现` / `递进`
|
|
29
29
|
情节点描述要具体到"谁做了什么",不能只写标签如`对话`或`冲突`
|
|
30
|
-
- `场景形态`
|
|
30
|
+
- `场景形态` 写主要推进引擎,如行动、对话博弈、证据核验、手艺、等待、空间压力或关系回落;不要求动静交替
|
|
31
31
|
- `对白作用` 写对白实际改变的信息、策略、权力、关系或下一步行动;无对白时写明由哪种动作、证据、物件或任务推进,不设占比或话轮数量
|
|
32
32
|
5. **反转信息差验证**(outline 写完后、写作前必须验证):
|
|
33
33
|
- `short-reversal.md` 判为无反转 → 写明理由,改查报应因果或甜度期待是否经过铺垫并得到兑现;跳过以下揭示检查
|
|
@@ -46,5 +46,5 @@ Phase 2 设计任务的步骤与验收;Phase 4 精修清单在 workflow-revisi
|
|
|
46
46
|
|
|
47
47
|
### 设定.md 内容构成
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
将核心框架、平台基调、人设速写、作者已定、题材招式、反转铺垫验证、贯穿道具、反派与揭露方式、对标摘要写入 `设定.md`,正文阶段靠它与小节大纲接续构思。贯穿道具追踪表:
|
|
50
50
|
`| 物件 | 第1次出现(节号/含义) | 第2次出现(节号/含义) | 第3次出现(节号/含义) |`
|
package/lib/types/role-tool.d.ts
CHANGED
|
@@ -1,12 +1,52 @@
|
|
|
1
1
|
import type { Context } from "@deepseek-ai/cordis";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Agent } from "@deepseek-ai/dsh-agent";
|
|
3
|
+
import type { ContentBlock } from "@deepseek-ai/dsh-llm";
|
|
4
|
+
import type { Session, SessionId } from "@deepseek-ai/dsh-session";
|
|
5
|
+
import type { SubagentResult } from "@deepseek-ai/dsh-subagent";
|
|
3
6
|
import { type ToolDefinition } from "@deepseek-ai/dsh-tools";
|
|
4
7
|
import { type OhStoryRoleName } from "./role-provider.js";
|
|
5
8
|
export declare const OH_STORY_ROLE_TOOL_NAME = "oh_story_role";
|
|
6
|
-
|
|
9
|
+
interface RoleStartRequest {
|
|
10
|
+
readonly label: string;
|
|
11
|
+
readonly prompt: ContentBlock[];
|
|
12
|
+
readonly parent: Agent;
|
|
13
|
+
readonly persona: string;
|
|
14
|
+
readonly toolFilter: {
|
|
15
|
+
readonly allow: readonly string[];
|
|
16
|
+
};
|
|
17
|
+
readonly maxDepth: number;
|
|
18
|
+
readonly signal: AbortSignal;
|
|
19
|
+
}
|
|
20
|
+
interface RoleRun {
|
|
21
|
+
readonly id: string;
|
|
22
|
+
readonly localAgent?: {
|
|
23
|
+
readonly session: Session;
|
|
24
|
+
};
|
|
25
|
+
readonly result: Promise<SubagentResult>;
|
|
26
|
+
dispose(): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
interface ManagedRoleSpec {
|
|
29
|
+
readonly provider: string;
|
|
30
|
+
readonly label: string;
|
|
31
|
+
readonly childId: SessionId;
|
|
32
|
+
readonly request: Pick<RoleStartRequest, "parent" | "prompt" | "maxDepth">;
|
|
33
|
+
readonly signal: AbortSignal;
|
|
34
|
+
readonly delivery: "caller";
|
|
35
|
+
}
|
|
36
|
+
/** Local seam types also let TypeScript consumers use the older DSH declarations. */
|
|
37
|
+
export type OhStoryRoleSubagents = {
|
|
38
|
+
startActivation(spec: ManagedRoleSpec): Promise<{
|
|
39
|
+
readonly childId: SessionId;
|
|
40
|
+
readonly result: Promise<SubagentResult>;
|
|
41
|
+
dispose(): Promise<void>;
|
|
42
|
+
}>;
|
|
43
|
+
} | {
|
|
44
|
+
start(provider: string, request: RoleStartRequest): Promise<RoleRun>;
|
|
45
|
+
};
|
|
7
46
|
export declare function roleToolFilter(role: OhStoryRoleName): {
|
|
8
47
|
readonly allow: readonly string[];
|
|
9
48
|
};
|
|
10
49
|
export declare function createOhStoryRoleTool(subagents?: OhStoryRoleSubagents): Promise<ToolDefinition>;
|
|
11
50
|
export declare function registerOhStoryRoleTool(context: Context): Promise<void>;
|
|
51
|
+
export {};
|
|
12
52
|
//# sourceMappingURL=role-tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-tool.d.ts","sourceRoot":"","sources":["../../src/role-tool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"role-tool.d.ts","sourceRoot":"","sources":["../../src/role-tool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOzE,OAAO,EAAwC,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhG,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AACvD,UAAU,gBAAgB;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED,UAAU,OAAO;IACf,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC;IAC3E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,qFAAqF;AACrF,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;QAC9C,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACzC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KAC1B,CAAC,CAAC;CACJ,GAAG;IACF,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE,CAAC;AAqEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAE3F;AAMD,wBAAsB,qBAAqB,CAAC,SAAS,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAqErG;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC7E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-provider.d.ts","sourceRoot":"","sources":["../../src/skill-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-provider.d.ts","sourceRoot":"","sources":["../../src/skill-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAkNhC,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAuBD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAa7D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIrE;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAKhD;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAK9C;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAKpD;AAuDD,wBAAgB,0BAA0B,CAAC,SAAS,SAA4B,GAAG,aAAa,CAE/F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,SAA0B,GAAG,MAAM,CAM/G;AAED,wBAAgB,wBAAwB,CAAC,SAAS,SAA0B,GAAG,aAAa,CAE3F;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,8BAA8B,CAAC,SAAS,SAAgC,GAAG,aAAa,CAEvG;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAKnD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAgB,6BAA6B,CAAC,SAAS,SAA+B,GAAG,aAAa,CAErG"}
|
|
@@ -10,6 +10,14 @@ All notable changes to this project are documented here.
|
|
|
10
10
|
|
|
11
11
|
## [Unreleased]
|
|
12
12
|
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- **技能与帮助说明按现有实现精修。** 补齐视频理解各远程路径发送的内容及关闭方式,澄清新字幕降级与原片硬字幕、实测字幕带的默认透明度、采用配音的速度策略,以及原声底轨的整数采样长度;删除不存在的 picture-plan 路径,纠正 TTS 前检查与成片看片的时序。双语 README 同步实际安装、缓存续跑与素材库行为;badcase、配对示例及真实媒体产物保留。七个技能包各升补丁号并同步编排依赖。
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- **七个 SKILL.md 的 `description` 改成单行。** 原来的 `description: >` 折叠块在 OpenClaw 只认单行键值的退路解析器下读不到完整描述;现在每条都是一行,文字与原折叠块解析后的值完全相同。新增测试要求 `description` 非空、不是 `>` / `|` 块、不超过 1024 字符。七个 ClawHub 包各升一个补丁号(video-recap 仍为 blocked,伴随依赖同步到新版本)。
|
|
20
|
+
|
|
13
21
|
## [0.6.2] - 2026-10-03
|
|
14
22
|
|
|
15
23
|
用 dub 模式的命令(包括旧 `work_dir` 打印的续跑命令)都要补上 `--confirm-voice-rights`,否则在外发任何音频之前报错退出;只在有权使用这段视频、且说话人同意被克隆声音时确认。
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
<!-- Last synced with README.md: 2026-09-20 -->
|
|
2
|
-
|
|
3
1
|
<p align="center">
|
|
4
2
|
<img src="https://zenstory.ai/brand/zenstory-ai-mark.svg" alt="" width="76" height="76">
|
|
5
3
|
</p>
|
|
@@ -23,7 +21,7 @@
|
|
|
23
21
|
<p align="center">
|
|
24
22
|
<a href="https://github.com/zenstory-ai/video-recap-skills/stargazers"><img alt="Stars" src="https://img.shields.io/github/stars/zenstory-ai/video-recap-skills?style=flat-square&color=22D3EE&logo=github&logoColor=white&label=Stars"></a>
|
|
25
23
|
<a href="https://github.com/zenstory-ai/video-recap-skills/releases/latest"><img alt="Release" src="https://img.shields.io/github/v/release/zenstory-ai/video-recap-skills?style=flat-square&color=081431&label=Release"></a>
|
|
26
|
-
<img alt="Skills
|
|
24
|
+
<img alt="Skills 7" src="https://img.shields.io/badge/Skills-7-081431?style=flat-square">
|
|
27
25
|
<a href="https://www.python.org/"><img alt="Python 3.10%2B" src="https://img.shields.io/badge/Python-3.10%2B-3776AB?style=flat-square&logo=python&logoColor=white"></a>
|
|
28
26
|
<a href="https://github.com/zenstory-ai/video-recap-skills/actions/workflows/skill-validate.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/zenstory-ai/video-recap-skills/skill-validate.yml?style=flat-square&label=CI"></a>
|
|
29
27
|
<a href="https://platform.xiaomimimo.com"><img alt="AI Xiaomi%20MiMo" src="https://img.shields.io/badge/AI-Xiaomi%20MiMo-34A853?style=flat-square"></a>
|
|
@@ -43,16 +41,16 @@ The 59-second landscape recap above, *Guohuo (这一秒过火)*, is the final de
|
|
|
43
41
|
Seven skills (six for production plus one on-demand reference skill) install into Claude Code, Codex CLI, OpenCode, or OpenClaw. You give the video paths and the recap you want in plain language; the agent understands picture and dialogue, decides the story and audiovisual plan, cuts, writes, voices, mixes, and subtitles. Supported inputs: `.mp4 / .mov / .mkv / .webm`.
|
|
44
42
|
|
|
45
43
|
- **One key, ffmpeg locally.** ASR, VLM, and TTS all go through [Xiaomi MiMo](https://platform.xiaomimimo.com); the local runtime is Python's standard library plus `ffmpeg`, with no GPU, no `pip install`, and no model downloads. Voiceover can switch to Fish Audio, which replaces only that stage.
|
|
46
|
-
- **The editorial decision comes before the sound allocation.**
|
|
47
|
-
- **Cut first, narrate second, so the timeline is aligned by construction.** Cut mode renders the shortened video first and writes narration against that output timeline; feed several videos at once and pick ranges by `source_id` to cut one story spine;
|
|
44
|
+
- **The editorial decision comes before the sound allocation.** For a new concept, the agent compares viable edit directions; for a directed task or viewing feedback, it follows the current decisions. It records the viewer promise, POV, dramatic question, and change-based beats in `recap_story_plan.json`, then assigns each beat a picture job and an audio owner: narration is voiced as a block only when it has a defined job, and strong dialogue, action sound, or silence may own an entire beat.
|
|
45
|
+
- **Cut first, narrate second, so the timeline is aligned by construction.** Cut mode renders the shortened video first and writes narration against that output timeline; feed several videos at once and pick ranges by `source_id` to cut one story spine; analysis can be saved to a filesystem material library and reused when the source and settings match.
|
|
48
46
|
- **Keep editing after the render.** The multi-track `timeline.json` exports to a JianYing draft with editable source clips, narration, BGM, subtitles, and image overlays; drop in an accurate subtitle file and it becomes the preferred source for original-dialogue captions.
|
|
49
|
-
- **Every step leaves a record you can check.** Narration lint, assembly QC,
|
|
47
|
+
- **Every step leaves a record you can check.** Narration lint, assembly QC, and final QC produce machine-readable reports. Viewing revisions can separately record changes, frozen items, and verification.
|
|
50
48
|
|
|
51
49
|
## Install
|
|
52
50
|
|
|
53
51
|
### ClawHub
|
|
54
52
|
|
|
55
|
-
ClawHub
|
|
53
|
+
ClawHub entries and dependencies are governed by the [explicit publish inventory](.clawhub/publish.json). The `video-recap` orchestrator remains `blocked` pending verification of companion installation under one skills root. For the complete workflow, install the plugin bundle or source checkout below.
|
|
56
54
|
|
|
57
55
|
|
|
58
56
|
Prerequisites: Python 3.10 or newer, `ffmpeg` on `PATH`, and one [Xiaomi MiMo](https://platform.xiaomimimo.com) API key. Subtitles are burned in by default, which needs an ffmpeg with libass. Homebrew's stock `ffmpeg` has no libass: the default run then skips the burn, ships a same-name `.srt` sidecar next to the recap, and records a warning in `final_qc.json` (an explicit `--burn-subtitles` stops before the run starts instead). Narration that adds on-screen text overlays (`visual_overlays`) also needs an ffmpeg with drawtext, and stops before voiceover without it. To burn subtitles on macOS, use `brew install ffmpeg-full` (keg-only: put its `bin` first on `PATH`).
|
|
@@ -329,7 +327,7 @@ Use /path/to/ep1.mp4 and /path/to/ep2.mp4 to make one ten-minute recap with a sh
|
|
|
329
327
|
|
|
330
328
|
> I have permission to use 〈local video〉 and am supplying checked picture and dialogue records for it. Propose only the sound handoff for this material: which full dialogue line, action sound or pause to preserve, where narration is needed, and which record supports each choice. List missing evidence rather than inventing motives or unseen events. Return beat notes and necessary narration drafts without calling TTS or rendering.
|
|
331
329
|
|
|
332
|
-
|
|
330
|
+
For a complete production request, the agent handles understanding, story and audiovisual planning, cutting, scripting, voiceover, and assembly. A text-only handoff stops at the requested scope. In cut mode it first chooses the footage, renders the shortened video, and only then writes narration on the output timeline; the internal pauses and resumes are the agent's job too.
|
|
333
331
|
|
|
334
332
|
## Workflow and the seven skills
|
|
335
333
|
|
|
@@ -408,7 +406,7 @@ Use /path/to/library as the resource library: register this BGM, this font and t
|
|
|
408
406
|
template for 1080x1920 for me to adopt, then render this series with /path/to/series/recap_project.json binding them.
|
|
409
407
|
```
|
|
410
408
|
|
|
411
|
-
Resources, templates and sample films are JSON records in your own directory; licence and "adopted" status are only ever set by you. A binding that conflicts with an explicit setting, or a template whose canvas differs from the output, stops the run before voicing. Each
|
|
409
|
+
Resources, templates and sample films are JSON records in your own directory; licence and "adopted" status are only ever set by you. A binding that conflicts with an explicit setting, or a template whose canvas differs from the output, stops the run before voicing. Each run writes `work_dir/resource_lock.json`, listing what it actually used and whether the licences are clear. Format: [resource library, templates and samples](skills/video-recap/references/resource-library.md).
|
|
412
410
|
|
|
413
411
|
**Browse projects, runs and the library in a local page (read-only):**
|
|
414
412
|
|
|
@@ -432,7 +430,7 @@ Yes. Understanding relies on the VLM reading the picture and does not require ex
|
|
|
432
430
|
|
|
433
431
|
### A long video hit a 429 or was interrupted halfway. Do I start over?
|
|
434
432
|
|
|
435
|
-
|
|
433
|
+
VLM analysis saves completed scenes and retries suspected rate limits once with lower concurrency. Persistent failures remain visible. After addressing the cause, repeat the same command to reuse matching scene caches and continue. Use the original command after writing `narration.json` too. In cut mode, `recap_phase.json` binds narration to its clip plan; a changed plan requires checking or rewriting the narration. Resuming requires the same source video and parameters.
|
|
436
434
|
|
|
437
435
|
### The VLM can't tell who is who and the narration is all "a man in black"?
|
|
438
436
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
<p align="center">
|
|
22
22
|
<a href="https://github.com/zenstory-ai/video-recap-skills/stargazers"><img alt="Stars" src="https://img.shields.io/github/stars/zenstory-ai/video-recap-skills?style=flat-square&color=22D3EE&logo=github&logoColor=white&label=Stars"></a>
|
|
23
23
|
<a href="https://github.com/zenstory-ai/video-recap-skills/releases/latest"><img alt="Release" src="https://img.shields.io/github/v/release/zenstory-ai/video-recap-skills?style=flat-square&color=081431&label=Release"></a>
|
|
24
|
-
<img alt="Skills
|
|
24
|
+
<img alt="Skills 7" src="https://img.shields.io/badge/Skills-7-081431?style=flat-square">
|
|
25
25
|
<a href="https://www.python.org/"><img alt="Python 3.10%2B" src="https://img.shields.io/badge/Python-3.10%2B-3776AB?style=flat-square&logo=python&logoColor=white"></a>
|
|
26
26
|
<a href="https://github.com/zenstory-ai/video-recap-skills/actions/workflows/skill-validate.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/zenstory-ai/video-recap-skills/skill-validate.yml?style=flat-square&label=CI"></a>
|
|
27
27
|
<a href="https://platform.xiaomimimo.com"><img alt="AI Xiaomi%20MiMo" src="https://img.shields.io/badge/AI-Xiaomi%20MiMo-34A853?style=flat-square"></a>
|
|
@@ -44,16 +44,16 @@
|
|
|
44
44
|
决定故事与视听方案、剪辑、写稿、配音、混音和字幕。支持 `.mp4 / .mov / .mkv / .webm`。
|
|
45
45
|
|
|
46
46
|
- **一个 key,本地只要 ffmpeg。** ASR、VLM、TTS 都走[小米 MiMo](https://platform.xiaomimimo.com),本地只用 Python 标准库和 `ffmpeg`,不需要 GPU,不需要 `pip install`,也不下载模型。配音可以换成 Fish Audio,只替换配音这一段。
|
|
47
|
-
- **先做创作决定,再分配声音。** Agent
|
|
48
|
-
- **先剪后配,时间轴天然对齐。** 剪辑模式先把长视频剪成成片,再对着成片写解说;一次可以传多个视频,按 `source_id`
|
|
47
|
+
- **先做创作决定,再分配声音。** 首次策划时,Agent 比较可行的剪辑方向;已有指定结构或看片反馈时,按当前决定修订。观众承诺、POV、戏剧问题和每拍变化写进 `recap_story_plan.json`,再给每一拍指定画面任务和声音归属:旁白只在有明确任务时整块配音,强对白、动作声或沉默可以完整主导一拍。
|
|
48
|
+
- **先剪后配,时间轴天然对齐。** 剪辑模式先把长视频剪成成片,再对着成片写解说;一次可以传多个视频,按 `source_id` 选段剪成一条主线;视频分析可按需保存到文件系统素材库,后续在来源和设置匹配时复用。
|
|
49
49
|
- **成片之外还能继续改。** 多轨时间线 `timeline.json` 可一键导出剪映草稿,原片、解说、BGM、字幕、图片叠层都可编辑;自带一份准确字幕文件就会被当作原声字幕的首选来源。
|
|
50
|
-
- **每一步都留下可核对的记录。** 旁白 lint、组装 QC
|
|
50
|
+
- **每一步都留下可核对的记录。** 旁白 lint、组装 QC 与最终 QC 会生成机器可读报告;看片修改可另记录本轮改动、冻结项与验证结果。
|
|
51
51
|
|
|
52
52
|
## 安装
|
|
53
53
|
|
|
54
54
|
### ClawHub
|
|
55
55
|
|
|
56
|
-
ClawHub
|
|
56
|
+
ClawHub 条目与依赖由 [显式发布清单](.clawhub/publish.json) 管理。编排器 `video-recap` 当前仍因同根安装验证未完成而标为 `blocked`;使用完整流程请按下方方式安装整套插件或源码。
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
前提:Python 3.10 或更新版本,`PATH` 上有 `ffmpeg`,以及一个[小米 MiMo](https://platform.xiaomimimo.com) API Key。默认把字幕烧录进画面,这需要带 libass 的 ffmpeg;Homebrew 自带的 `ffmpeg` 没有 libass,这时默认运行不烧录,在成片旁输出同名 `.srt` 外挂字幕并在 `final_qc.json` 里记一条警告(显式传 `--burn-subtitles` 则在开跑前报错)。旁白里写了画面文字叠加(`visual_overlays`)时还需要带 drawtext 的 ffmpeg,缺了会在配音前报错。要在 macOS 上烧录字幕,可用 `brew install ffmpeg-full`(keg-only,需把它的 `bin` 放到 `PATH` 前面)。
|
|
@@ -318,7 +318,7 @@ Agent 在剪任何一刀之前先写 [`recap_story_plan.json`](examples/guohuo-6
|
|
|
318
318
|
|
|
319
319
|
> 我有权使用〈本地视频〉,并提供了对应的已核对画面与对白记录。先只给这段素材的声音分工建议:哪句对白、哪个动作声或停顿应完整保留,哪里确需旁白,依据是哪条记录。缺证据就列待核对项,不补人物动机或没出现的事件。交付分拍说明和必要的旁白草案,不调用配音或渲染。
|
|
320
320
|
|
|
321
|
-
Agent
|
|
321
|
+
完整制作请求由 Agent 完成理解、故事与视听规划、剪辑、写稿、配音和合成;只做文字交接的请求按指定范围停止。剪辑模式内部会先确定保留片段、生成剪后成片,再按输出时间轴写旁白;这些暂停和续跑也由 Agent 处理。
|
|
322
322
|
|
|
323
323
|
## 流程与七个技能
|
|
324
324
|
|
|
@@ -398,7 +398,7 @@ flowchart LR
|
|
|
398
398
|
```
|
|
399
399
|
|
|
400
400
|
资源、模板和样片是你自己目录里的 JSON 记录,授权与"已采用"状态只由你确认;绑定与显式设置冲突、模板画布与成片不符时,会在配音之前停下。
|
|
401
|
-
|
|
401
|
+
每次运行的 `work_dir/resource_lock.json` 记下这次实际用了哪些资源、授权是否清楚。格式见 [资源库、模板与样片](skills/video-recap/references/resource-library.md)。
|
|
402
402
|
|
|
403
403
|
**在浏览器里看项目、运行和资源库(只读):**
|
|
404
404
|
|
|
@@ -422,7 +422,7 @@ flowchart LR
|
|
|
422
422
|
|
|
423
423
|
### 长视频跑到一半报 429 或中断了,要从头再来吗?
|
|
424
424
|
|
|
425
|
-
|
|
425
|
+
VLM 会保存已完成的场景;遇到疑似限流会降低并发重试一轮,仍失败时保留错误供处理。解决原因后重复同一条命令,可以复用匹配的场景缓存并继续。写好 `narration.json` 后也用原命令续跑;剪辑模式用 `recap_phase.json` 绑定写稿时的计划,改了计划需重新核对或重写解说。续跑只接受同一源视频、同一组参数的工作目录。
|
|
426
426
|
|
|
427
427
|
### VLM 认不出谁是谁,解说里全是"黑衣男子"?
|
|
428
428
|
|