@oh-story/dsh 0.1.0
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/LICENSE +21 -0
- package/README.md +38 -0
- package/cordis.patch.yml +3 -0
- package/lib/client.js +1201 -0
- package/lib/client.js.map +7 -0
- package/lib/drama/LICENSE.upstream +21 -0
- package/lib/drama/manifest.json +1012 -0
- package/lib/drama/skills/short-drama/SKILL.md +153 -0
- package/lib/drama/skills/short-drama/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama/assets/creator-decision.example.jsonl +4 -0
- package/lib/drama/skills/short-drama/assets/production-observation.example.jsonl +2 -0
- package/lib/drama/skills/short-drama/assets/project-template/short-drama.json +36 -0
- package/lib/drama/skills/short-drama/assets/reference-observation.example.jsonl +2 -0
- package/lib/drama/skills/short-drama/references/audience-reveal.md +74 -0
- package/lib/drama/skills/short-drama/references/contract-and-ownership.md +94 -0
- package/lib/drama/skills/short-drama/references/creator-workflow.md +82 -0
- package/lib/drama/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +73 -0
- 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 +74 -0
- 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 +79 -0
- package/lib/drama/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +75 -0
- package/lib/drama/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +85 -0
- 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 +72 -0
- package/lib/drama/skills/short-drama/references/knowhow-index.md +80 -0
- package/lib/drama/skills/short-drama/references/lifecycle-commands.md +130 -0
- package/lib/drama/skills/short-drama/references/look-development.md +52 -0
- package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +58 -0
- package/lib/drama/skills/short-drama/references/production-form-profiles.md +126 -0
- package/lib/drama/skills/short-drama/references/reference-roles.md +142 -0
- package/lib/drama/skills/short-drama/references/runtime-preflight.md +27 -0
- package/lib/drama/skills/short-drama/scripts/project_tool.py +1963 -0
- package/lib/drama/skills/short-drama/scripts/selftest.py +287 -0
- package/lib/drama/skills/short-drama-assets/SKILL.md +187 -0
- package/lib/drama/skills/short-drama-assets/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-assets/assets/character-look.example.jsonl +3 -0
- package/lib/drama/skills/short-drama-assets/assets/continuity.example.jsonl +4 -0
- package/lib/drama/skills/short-drama-assets/assets/decisions.example.jsonl +5 -0
- package/lib/drama/skills/short-drama-assets/assets/location-view.example.jsonl +3 -0
- package/lib/drama/skills/short-drama-assets/assets/occurrences.example.jsonl +5 -0
- package/lib/drama/skills/short-drama-assets/assets/prop-state.example.jsonl +3 -0
- package/lib/drama/skills/short-drama-assets/examples/minimal/characters.jsonl +2 -0
- package/lib/drama/skills/short-drama-assets/examples/minimal/looks.jsonl +2 -0
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +89 -0
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +164 -0
- package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +123 -0
- package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +146 -0
- package/lib/drama/skills/short-drama-assets/references/location-and-view.md +84 -0
- package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +111 -0
- package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +107 -0
- package/lib/drama/skills/short-drama-assets/references/stage-contract.md +136 -0
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +171 -0
- package/lib/drama/skills/short-drama-assets/scripts/asset_check.py +267 -0
- package/lib/drama/skills/short-drama-assets/scripts/selftest.py +89 -0
- package/lib/drama/skills/short-drama-develop/SKILL.md +157 -0
- package/lib/drama/skills/short-drama-develop/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -0
- package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +120 -0
- package/lib/drama/skills/short-drama-develop/assets/episode-map.jsonl +1 -0
- package/lib/drama/skills/short-drama-develop/assets/story-engine.md +181 -0
- package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +219 -0
- package/lib/drama/skills/short-drama-develop/references/creative-reference-intake.md +57 -0
- package/lib/drama/skills/short-drama-develop/references/director-brief-craft.md +113 -0
- package/lib/drama/skills/short-drama-develop/references/episode-design.md +509 -0
- package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +240 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +112 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +109 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//350/201/214/345/234/272/345/226/234/345/211/247.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards.md +92 -0
- package/lib/drama/skills/short-drama-develop/references/mechanism-loop.md +282 -0
- package/lib/drama/skills/short-drama-develop/references/multi-episode-intake.md +128 -0
- package/lib/drama/skills/short-drama-develop/references/premise-devices.md +211 -0
- package/lib/drama/skills/short-drama-develop/references/reveal-reversal-payoff.md +99 -0
- package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +293 -0
- package/lib/drama/skills/short-drama-develop/references/stage-contract.md +88 -0
- package/lib/drama/skills/short-drama-develop/references/story-craft.md +359 -0
- package/lib/drama/skills/short-drama-develop/scripts/episode_intake.py +699 -0
- package/lib/drama/skills/short-drama-develop/scripts/selftest.py +47 -0
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +181 -0
- package/lib/drama/skills/short-drama-image-prompts/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +187 -0
- package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +37 -0
- package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +128 -0
- package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +31 -0
- package/lib/drama/skills/short-drama-image-prompts/examples/minimal-image-prompt-specs.jsonl +2 -0
- package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +154 -0
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +231 -0
- package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +122 -0
- package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +152 -0
- package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +96 -0
- package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +38 -0
- package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +177 -0
- package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +140 -0
- package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +92 -0
- package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +89 -0
- package/lib/drama/skills/short-drama-image-prompts/scripts/image_prompt_check.py +443 -0
- package/lib/drama/skills/short-drama-image-prompts/scripts/selftest.py +93 -0
- package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +245 -0
- package/lib/drama/skills/short-drama-novel-analyze/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +3 -0
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +116 -0
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +124 -0
- package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +155 -0
- package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +141 -0
- package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +67 -0
- package/lib/drama/skills/short-drama-novel-analyze/scripts/novel_index.py +651 -0
- package/lib/drama/skills/short-drama-novel-analyze/scripts/selftest.py +51 -0
- package/lib/drama/skills/short-drama-produce/SKILL.md +103 -0
- package/lib/drama/skills/short-drama-produce/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +140 -0
- package/lib/drama/skills/short-drama-produce/references/providers/gpt-image-2.md +24 -0
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-music.md +25 -0
- package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +40 -0
- package/lib/drama/skills/short-drama-produce/scripts/fixture_adapter.py +60 -0
- package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +1635 -0
- package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +964 -0
- package/lib/drama/skills/short-drama-produce/scripts/selftest.py +134 -0
- package/lib/drama/skills/short-drama-review/SKILL.md +178 -0
- package/lib/drama/skills/short-drama-review/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-review/assets/finding-template.jsonl +2 -0
- package/lib/drama/skills/short-drama-review/assets/supersession-decision.example.json +42 -0
- package/lib/drama/skills/short-drama-review/assets/verdict-template.json +32 -0
- package/lib/drama/skills/short-drama-review/examples/minimal-findings.jsonl +2 -0
- package/lib/drama/skills/short-drama-review/examples/minimal-verdict.json +34 -0
- package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +114 -0
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +270 -0
- package/lib/drama/skills/short-drama-review/references/project-calibration.md +85 -0
- package/lib/drama/skills/short-drama-review/references/review-method.md +82 -0
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +115 -0
- package/lib/drama/skills/short-drama-review/references/rubric-source-analysis.md +108 -0
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +164 -0
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +166 -0
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +87 -0
- package/lib/drama/skills/short-drama-review/scripts/review_check.py +325 -0
- package/lib/drama/skills/short-drama-review/scripts/selftest.py +87 -0
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +264 -0
- package/lib/drama/skills/short-drama-storyboard/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-storyboard/assets/coverage-audition.example.jsonl +2 -0
- package/lib/drama/skills/short-drama-storyboard/assets/coverage-template.json +49 -0
- package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +32 -0
- package/lib/drama/skills/short-drama-storyboard/assets/keyframe-template.jsonl +2 -0
- package/lib/drama/skills/short-drama-storyboard/assets/revision-lineage.fragment.json +12 -0
- package/lib/drama/skills/short-drama-storyboard/assets/scene-visual-plan.example.jsonl +2 -0
- package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +2 -0
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +241 -0
- package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +39 -0
- package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +169 -0
- package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +264 -0
- package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +70 -0
- package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +39 -0
- package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +157 -0
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +192 -0
- package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +29 -0
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +110 -0
- package/lib/drama/skills/short-drama-storyboard/scripts/selftest.py +191 -0
- package/lib/drama/skills/short-drama-storyboard/scripts/storyboard_check.py +824 -0
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +245 -0
- package/lib/drama/skills/short-drama-video-prompts/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/coverage-scope.fragment.json +21 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +101 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +212 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/motion-terminal.example.jsonl +2 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +31 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/performance.fragment.json +38 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +46 -0
- package/lib/drama/skills/short-drama-video-prompts/examples/minimal-music-specs.jsonl +2 -0
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +240 -0
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +255 -0
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +93 -0
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +304 -0
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +191 -0
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +312 -0
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +168 -0
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +110 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/container_check.py +329 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/motion_timing_check.py +450 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/music_spec_check.py +327 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/selftest.py +82 -0
- package/lib/drama/skills/short-drama-write/SKILL.md +284 -0
- package/lib/drama/skills/short-drama-write/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-write/assets/beats.jsonl +2 -0
- package/lib/drama/skills/short-drama-write/assets/episode-card-standalone.json +120 -0
- package/lib/drama/skills/short-drama-write/assets/episode-card.json +55 -0
- package/lib/drama/skills/short-drama-write/assets/screenplay.md +36 -0
- package/lib/drama/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +89 -0
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +519 -0
- package/lib/drama/skills/short-drama-write/references/production-format-dialect.md +273 -0
- package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +51 -0
- package/lib/drama/skills/short-drama-write/references/scene-sound-dramaturgy.md +43 -0
- package/lib/drama/skills/short-drama-write/references/screenplay-format.md +260 -0
- package/lib/drama/skills/short-drama-write/references/script-craft.md +558 -0
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +94 -0
- package/lib/drama/skills/short-drama-write/references/substitutable-realization.md +107 -0
- package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +309 -0
- package/lib/drama/skills/short-drama-write/scripts/screenplay_index.py +1091 -0
- package/lib/drama/skills/short-drama-write/scripts/selftest.py +229 -0
- package/lib/drama/skills/short-drama-write/scripts/voice_sheet_check.py +416 -0
- package/lib/index.js +756 -0
- package/lib/index.js.map +7 -0
- package/lib/oh-story/LICENSE.upstream +21 -0
- package/lib/oh-story/manifest.json +1351 -0
- package/lib/oh-story/roles/chapter-extractor.md +314 -0
- package/lib/oh-story/roles/character-designer.md +169 -0
- package/lib/oh-story/roles/consistency-checker.md +190 -0
- package/lib/oh-story/roles/narrative-writer.md +294 -0
- package/lib/oh-story/roles/story-architect.md +195 -0
- package/lib/oh-story/roles/story-explorer.md +364 -0
- package/lib/oh-story/roles/story-researcher.md +304 -0
- package/lib/oh-story/skills/browser-cdp/SKILL.md +175 -0
- package/lib/oh-story/skills/story/SKILL.md +116 -0
- package/lib/oh-story/skills/story/VERSION +1 -0
- package/lib/oh-story/skills/story-cover/SKILL.md +327 -0
- package/lib/oh-story/skills/story-cover/references/cover-styles.md +210 -0
- package/lib/oh-story/skills/story-deslop/SKILL.md +445 -0
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +582 -0
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +147 -0
- package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +1371 -0
- package/lib/oh-story/skills/story-deslop/scripts/check-degeneration.js +330 -0
- package/lib/oh-story/skills/story-deslop/scripts/check-outline-copy.js +241 -0
- package/lib/oh-story/skills/story-deslop/scripts/normalize-punctuation.js +410 -0
- package/lib/oh-story/skills/story-import/SKILL.md +634 -0
- package/lib/oh-story/skills/story-import/references/character-state-reverse.md +82 -0
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +169 -0
- package/lib/oh-story/skills/story-import/references/length-routing.md +134 -0
- package/lib/oh-story/skills/story-import/references/state-tracking.md +108 -0
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +442 -0
- package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +175 -0
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +161 -0
- package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +1139 -0
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +329 -0
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +270 -0
- package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +530 -0
- package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +559 -0
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +80 -0
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +149 -0
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +133 -0
- package/lib/oh-story/skills/story-long-scan/SKILL.md +342 -0
- package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +197 -0
- package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +114 -0
- package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +105 -0
- package/lib/oh-story/skills/story-long-scan/references/scan-output-format.md +207 -0
- package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +78 -0
- package/lib/oh-story/skills/story-long-write/SKILL.md +327 -0
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +582 -0
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +302 -0
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +147 -0
- package/lib/oh-story/skills/story-long-write/references/character-basics.md +445 -0
- package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +428 -0
- package/lib/oh-story/skills/story-long-write/references/character-relations.md +385 -0
- package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +502 -0
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +62 -0
- package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +282 -0
- package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +426 -0
- package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +209 -0
- package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +188 -0
- package/lib/oh-story/skills/story-long-write/references/format-and-structure.md +169 -0
- package/lib/oh-story/skills/story-long-write/references/genre-catalog.md +480 -0
- package/lib/oh-story/skills/story-long-write/references/genre-core-mechanics.md +415 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +53 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +53 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +53 -0
- 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 +51 -0
- 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 +53 -0
- 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 +51 -0
- 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 +53 -0
- 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 +53 -0
- 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 +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +91 -0
- package/lib/oh-story/skills/story-long-write/references/genre-readers.md +235 -0
- package/lib/oh-story/skills/story-long-write/references/genre-writing-formulas.md +444 -0
- package/lib/oh-story/skills/story-long-write/references/hooks-chapter.md +225 -0
- package/lib/oh-story/skills/story-long-write/references/hooks-paragraph.md +146 -0
- package/lib/oh-story/skills/story-long-write/references/hooks-suspense.md +352 -0
- package/lib/oh-story/skills/story-long-write/references/opening-design.md +349 -0
- package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +457 -0
- package/lib/oh-story/skills/story-long-write/references/outline-methods.md +287 -0
- package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +389 -0
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +326 -0
- package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +522 -0
- package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +354 -0
- package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +711 -0
- package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +622 -0
- package/lib/oh-story/skills/story-long-write/references/quality-checklist.md +184 -0
- package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +109 -0
- package/lib/oh-story/skills/story-long-write/references/reversal-toolkit.md +349 -0
- package/lib/oh-story/skills/story-long-write/references/state-tracking.md +108 -0
- package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +409 -0
- package/lib/oh-story/skills/story-long-write/references/style-craft.md +347 -0
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +510 -0
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +161 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +140 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +171 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +99 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +284 -0
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +421 -0
- package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +1371 -0
- package/lib/oh-story/skills/story-long-write/scripts/check-degeneration.js +330 -0
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +241 -0
- package/lib/oh-story/skills/story-long-write/scripts/normalize-punctuation.js +410 -0
- package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +1139 -0
- package/lib/oh-story/skills/story-review/SKILL.md +483 -0
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +582 -0
- package/lib/oh-story/skills/story-review/references/banned-words.md +147 -0
- package/lib/oh-story/skills/story-review/references/character-relations.md +385 -0
- package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +282 -0
- package/lib/oh-story/skills/story-review/references/plot-core-methods.md +522 -0
- package/lib/oh-story/skills/story-review/references/quality-checklist.md +250 -0
- package/lib/oh-story/skills/story-review/references/quality-rubric.md +55 -0
- package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +18 -0
- package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +19 -0
- package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +20 -0
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +161 -0
- package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +1371 -0
- package/lib/oh-story/skills/story-review/scripts/check-degeneration.js +330 -0
- package/lib/oh-story/skills/story-review/scripts/normalize-punctuation.js +410 -0
- package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +1139 -0
- package/lib/oh-story/skills/story-setup/SKILL.md +495 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +582 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +147 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +445 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +428 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +385 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +282 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +426 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/emotional-methods.md +179 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +169 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-catalog.md +480 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-core-mechanics.md +415 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +53 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +53 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +51 -0
- 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 +53 -0
- 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 +51 -0
- 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 +53 -0
- 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 +51 -0
- 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 +53 -0
- 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 +53 -0
- 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 +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +91 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +235 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-writing-formulas.md +444 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/hooks-chapter.md +225 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/hooks-suspense.md +352 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +349 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +457 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +287 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +389 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +522 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/quality-checklist.md +247 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/reversal-toolkit.md +349 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +409 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +510 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +421 -0
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +278 -0
- package/lib/oh-story/skills/story-short-analyze/references/anti-ai-writing.md +582 -0
- package/lib/oh-story/skills/story-short-analyze/references/banned-words.md +147 -0
- package/lib/oh-story/skills/story-short-analyze/references/character-basics.md +453 -0
- package/lib/oh-story/skills/story-short-analyze/references/character-design-methods.md +438 -0
- package/lib/oh-story/skills/story-short-analyze/references/character-relations.md +395 -0
- package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +79 -0
- package/lib/oh-story/skills/story-short-analyze/references/genre-catalog.md +490 -0
- package/lib/oh-story/skills/story-short-analyze/references/genre-core-mechanics.md +425 -0
- package/lib/oh-story/skills/story-short-analyze/references/genre-readers.md +245 -0
- package/lib/oh-story/skills/story-short-analyze/references/genre-writing-formulas.md +453 -0
- package/lib/oh-story/skills/story-short-analyze/references/genre-writing-techniques.md +475 -0
- package/lib/oh-story/skills/story-short-analyze/references/hooks-chapter.md +225 -0
- package/lib/oh-story/skills/story-short-analyze/references/hooks-paragraph.md +146 -0
- package/lib/oh-story/skills/story-short-analyze/references/hooks-suspense.md +352 -0
- package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +685 -0
- package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +165 -0
- package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +561 -0
- package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +242 -0
- package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +90 -0
- package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +54 -0
- package/lib/oh-story/skills/story-short-scan/SKILL.md +212 -0
- package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +90 -0
- package/lib/oh-story/skills/story-short-write/SKILL.md +433 -0
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +147 -0
- package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +62 -0
- package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +282 -0
- package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +179 -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 +159 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +156 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +163 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +167 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +178 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +166 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +159 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +151 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +153 -0
- 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 +210 -0
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +444 -0
- package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +488 -0
- package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +225 -0
- package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +146 -0
- package/lib/oh-story/skills/story-short-write/references/hooks-suspense.md +352 -0
- package/lib/oh-story/skills/story-short-write/references/output-contract.md +165 -0
- package/lib/oh-story/skills/story-short-write/references/quality-checklist.md +222 -0
- package/lib/oh-story/skills/story-short-write/references/reversal-toolkit.md +349 -0
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +185 -0
- package/lib/oh-story/skills/story-short-write/references/short-deslop.md +133 -0
- package/lib/oh-story/skills/story-short-write/references/short-format.md +167 -0
- package/lib/oh-story/skills/story-short-write/references/submission-craft.md +35 -0
- package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +158 -0
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +153 -0
- package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +1371 -0
- package/lib/oh-story/skills/story-short-write/scripts/check-degeneration.js +330 -0
- package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +241 -0
- package/lib/oh-story/skills/story-short-write/scripts/normalize-punctuation.js +410 -0
- package/lib/types/client/file-activity.d.ts +30 -0
- package/lib/types/client/file-activity.d.ts.map +1 -0
- package/lib/types/client/file-tree.d.ts +20 -0
- package/lib/types/client/file-tree.d.ts.map +1 -0
- package/lib/types/client/index.d.ts +12 -0
- package/lib/types/client/index.d.ts.map +1 -0
- package/lib/types/client/jsonl-preview.d.ts +15 -0
- package/lib/types/client/jsonl-preview.d.ts.map +1 -0
- package/lib/types/client/markdown-preview.d.ts +38 -0
- package/lib/types/client/markdown-preview.d.ts.map +1 -0
- package/lib/types/index.d.ts +25 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/native-hooks.d.ts +16 -0
- package/lib/types/native-hooks.d.ts.map +1 -0
- package/lib/types/role-provider.d.ts +6 -0
- package/lib/types/role-provider.d.ts.map +1 -0
- package/lib/types/role-tool.d.ts +10 -0
- package/lib/types/role-tool.d.ts.map +1 -0
- package/lib/types/skill-provider.d.ts +15 -0
- package/lib/types/skill-provider.d.ts.map +1 -0
- package/lib/types/workspace-request-trust.d.ts +13 -0
- package/lib/types/workspace-request-trust.d.ts.map +1 -0
- package/lib/types/workspace-route.d.ts +10 -0
- package/lib/types/workspace-route.d.ts.map +1 -0
- package/lib/types/workspace-security.d.ts +9 -0
- package/lib/types/workspace-security.d.ts.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# 从剧本提取资产出现记录
|
|
2
|
+
|
|
3
|
+
## 目录
|
|
4
|
+
|
|
5
|
+
- [目的](#目的保存证据不抢先下结论)
|
|
6
|
+
- [逐段检查](#逐段检查而不是只找名词)
|
|
7
|
+
- [事实分层](#事实分层)
|
|
8
|
+
- [指代](#称谓代词和匿名对象)
|
|
9
|
+
- [资产判断](#出现不等于视觉资产)
|
|
10
|
+
- [状态](#状态摘取要点)
|
|
11
|
+
- [完整性](#完整性检查)
|
|
12
|
+
|
|
13
|
+
## 目的:保存证据,不抢先下结论
|
|
14
|
+
|
|
15
|
+
出现记录说明“某段剧本在某处要求了什么”,它不是资产身份本身。先记录出现,再判断
|
|
16
|
+
它对应哪个资产,可以避免把同一人物的几套衣服拆成几个人,也能避免把两个同称谓的人
|
|
17
|
+
误并成一人。
|
|
18
|
+
|
|
19
|
+
**`structural_invariant` AST-01**: 每条出现记录都要指向准确的剧本快照、字段、剧本段 ID
|
|
20
|
+
和场次:文件首行的 `sources` 声明剧本产物,`source_ref` 写
|
|
21
|
+
`{"src":"screenplay-index","record_id":"BLK-EP003-SC004-A01"}`。行号只能帮助阅读,
|
|
22
|
+
不能代替稳定来源。
|
|
23
|
+
|
|
24
|
+
## 逐段检查,而不是只找名词
|
|
25
|
+
|
|
26
|
+
逐个检查与制作有关的剧本段,回答六个问题:
|
|
27
|
+
|
|
28
|
+
1. **谁或什么需要被看见、听见**? 人物、群体、动物、地点或可操作道具。
|
|
29
|
+
2. **以什么方式出现**? `on_screen`(出镜)、`voice_only`(只有声音)、
|
|
30
|
+
`represented`(照片、屏幕或画像中出现)、`mentioned_only`(只被提到)。
|
|
31
|
+
3. **此刻能直接看到什么**? 只摘录剧本已经给出的外观、状态、位置和动作后果。
|
|
32
|
+
4. **制作时必须实现什么**? 服装、伤污、可读文字、内容物、功能状态、关键入口等。
|
|
33
|
+
5. **它为什么重要**? 识别、行动、信息揭示、关系与权力、交接、气氛或普通布景。
|
|
34
|
+
6. **它从哪里来、要去哪里**? 进入状态、同场变化和结束状态;若有变化,只预留指向
|
|
35
|
+
连续性变化记录的位置,不在出现记录里另造第二份事实。
|
|
36
|
+
|
|
37
|
+
一个动作句常会带出多种资产。例如合成剧本段:
|
|
38
|
+
|
|
39
|
+
> 顾禾推开旧渡站值班室的北门,把带裂口的白瓷号牌放进铁皮匣。匣盖内侧写着
|
|
40
|
+
> “潮位 7”。
|
|
41
|
+
|
|
42
|
+
至少记录:顾禾出镜;旧渡站值班室出现,北门可能是固定空间锚点;白瓷号牌有裂口;
|
|
43
|
+
铁皮匣被打开,匣盖内出现必须保留的文字。不要把“北门”“裂口”“潮位”各自建成资产。
|
|
44
|
+
|
|
45
|
+
## 事实分层
|
|
46
|
+
|
|
47
|
+
出现记录中的内容按来源分开:
|
|
48
|
+
|
|
49
|
+
| 内容 | 字段用途 | 写法 |
|
|
50
|
+
|---|---|---|
|
|
51
|
+
| 剧本段和场次位置 | `source_ref` | `src` 指向首行声明的剧本快照,加 `record_id` 与需要的 `field`;不复制整段权威文本 |
|
|
52
|
+
| 剧本明示的可见事实 | `derived_projection` | 简短摘义,并指回准确字段 |
|
|
53
|
+
| 拟绑定的资产 | `derived_annotation` | 只保留提案;资产决定记录反向引用本条出现记录,并拥有最终决定 |
|
|
54
|
+
| 连续性变化 | `source_ref` | `src` 指向资产技能负责的变化记录产物,加 `record_id` 与需要的 `field` |
|
|
55
|
+
|
|
56
|
+
不要把推测伪装成可见事实。可以直接推出的结果也要说明依据,例如“匣盖被推开”可以
|
|
57
|
+
记为 `open`;“顾禾很内疚”不能只因她低头就升级成资产事实。
|
|
58
|
+
|
|
59
|
+
决定尚未创建时写 `decision_locator`:`owner`、项目相对路径、`selector` 和 `status`;
|
|
60
|
+
决定创建后,由决定记录指向出现记录。未来的连续性变化同样先写定位信息。这样不会让两个
|
|
61
|
+
文件互相等待对方先落盘。
|
|
62
|
+
|
|
63
|
+
## 称谓、代词和匿名对象
|
|
64
|
+
|
|
65
|
+
**`reviewed_invariant` AST-02**: 只要两个候选都合理,就先不绑定。
|
|
66
|
+
|
|
67
|
+
- 原文写“她”,但本段内没有唯一先行人物:保留 `surface_form: 她`,把决定标为
|
|
68
|
+
`unresolved`,列出候选和需要确认的内容。
|
|
69
|
+
- “穿雨衣的人”后来被叫出姓名:可以提出合并,但必须展示前后剧本证据;不能只因服装相同就自动认定是同一人。
|
|
70
|
+
- “另一把钥匙”说明它不是上一把,但还不知道是否对应已有道具 ID:先建立独立出现记录,不能复用上一把。
|
|
71
|
+
- 同一人被职务、关系和名字交替称呼:别名只有创作者接受后才能进入人物资产。
|
|
72
|
+
- 群体称谓先按制作用途处理。没有个体连续性的“候车乘客”可以作为群组或普通布景;
|
|
73
|
+
后来接过关键道具的那个人应单独建立人物记录。
|
|
74
|
+
|
|
75
|
+
不要为了“让流程继续”做低把握的猜测。保留未决项,可以防止错误身份被下游放大成
|
|
76
|
+
参考图、分镜和视频提示词。
|
|
77
|
+
|
|
78
|
+
## 出现不等于视觉资产
|
|
79
|
+
|
|
80
|
+
- `voice_only` 需要人物或声音事实,但本场不一定需要造型绑定。
|
|
81
|
+
- `represented` 可能需要同一人物的历史造型,也可能只是不可辨认的照片;按剧情要求处理,不默认露脸。
|
|
82
|
+
- `mentioned_only` 通常只保留故事追踪,不触发图片资产。若台词要求观众必须读到某份文件,还要建立道具出现记录。
|
|
83
|
+
- 环境中的普通桌椅可以标为 `set_dressing`;只有它们承担动作、识别或连续性时才升级为道具。
|
|
84
|
+
|
|
85
|
+
**`craft_default` AST-06**: 只有会改变识别、复用、提示词、镜头或连续性的事实才进入
|
|
86
|
+
资产记录。若项目有特别制作原因,例如品牌布景需要逐件批准,就写明原因后调整。
|
|
87
|
+
|
|
88
|
+
## 状态摘取要点
|
|
89
|
+
|
|
90
|
+
### 人物
|
|
91
|
+
|
|
92
|
+
记录本次造型线索、伤污与湿度、伪装、携带物和故事作用。不在这里发明脸型、年龄或
|
|
93
|
+
颜色搭配;设定表缺少的识别点交给创作者决定。
|
|
94
|
+
|
|
95
|
+
### 地点
|
|
96
|
+
|
|
97
|
+
记录地点称谓、内外、可见分区、入口、固定锚点,以及剧本明示的时段、天气和光源。
|
|
98
|
+
“低机位看门”是镜头意图,不是新地点事实。
|
|
99
|
+
|
|
100
|
+
### 道具
|
|
101
|
+
|
|
102
|
+
记录形制、材料、尺度线索、唯一标记、持有人与位置、持有手、开闭与启停、破损、
|
|
103
|
+
内容物和可读文字。文字保持原样并注明候选文字政策,不能私自润色剧情证据。
|
|
104
|
+
|
|
105
|
+
## 完整性检查
|
|
106
|
+
|
|
107
|
+
- 对索引中的每个制作相关剧本段,都记录已提取内容,或写明 `no_asset_change`。
|
|
108
|
+
- 同一剧本段中的动作若改变状态,至少能找到一条变化候选。
|
|
109
|
+
- 同一对象使用不同称谓时,没有被静默重复或合并。
|
|
110
|
+
- 只被提到的名词不会无缘无故扩张视觉资产表。
|
|
111
|
+
- 每个拟议绑定在创作者接受决定前都保持提案状态。
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# 道具与状态设计
|
|
2
|
+
|
|
3
|
+
## 目录
|
|
4
|
+
|
|
5
|
+
- [道具与状态](#道具不是名词表)
|
|
6
|
+
- [个体与集合](#个体同款与集合)
|
|
7
|
+
- [文字政策](#可读文字政策)
|
|
8
|
+
- [内容物与人物认知](#内容物与知识是两条连续性)
|
|
9
|
+
- [关键道具的完整过程](#有明确用途的关键道具)
|
|
10
|
+
- [示例与检查](#合成例铁皮匣)
|
|
11
|
+
|
|
12
|
+
## 道具不是名词表
|
|
13
|
+
|
|
14
|
+
只有会被识别、操作、传递、读取、揭示或保持连续性的物体,才值得成为受管道具。
|
|
15
|
+
普通背景物可保留为 `set_dressing` occurrence;一旦角色拿起它打开秘密、它跨场转手,
|
|
16
|
+
就要能以稳定身份追踪。
|
|
17
|
+
|
|
18
|
+
## 道具:持续身份
|
|
19
|
+
|
|
20
|
+
Prop 保存不随本次动作轻易改变的识别信息:
|
|
21
|
+
|
|
22
|
+
- 大小/尺度参照、基本形制和部件关系;
|
|
23
|
+
- 主要材料、表面工艺、持久磨损;
|
|
24
|
+
- 原本功能和操作方式;
|
|
25
|
+
- 序列号、缺口、纹章等永久唯一标记;
|
|
26
|
+
- 同款多件时的个体区分,或按类别和数量管理的方法。
|
|
27
|
+
|
|
28
|
+
“重要文件”“神秘盒子”“高级质感”只是剧情/氛围标签,不能保证再次生成时认出同一
|
|
29
|
+
件物体。反过来,也不要补写剧本没给的品牌和装饰。
|
|
30
|
+
|
|
31
|
+
## 状态:此刻怎样
|
|
32
|
+
|
|
33
|
+
State 记录可变而需跟踪的事实:
|
|
34
|
+
|
|
35
|
+
- 负责人、持有人、左手或右手,以及具体位置;
|
|
36
|
+
- 完好/裂损、干湿/污渍、开/闭/锁、开机/关机;
|
|
37
|
+
- 内容物及其是否已被看见;
|
|
38
|
+
- 可读文字/图形的当前版本;
|
|
39
|
+
- 组装、封条、消耗量或功能状态;
|
|
40
|
+
- 变化原因与有效范围。
|
|
41
|
+
|
|
42
|
+
**`craft_default` AST-03**: 同一物体的转手、开合、破损、内容与文字变化优先做
|
|
43
|
+
记录状态变化,不重复创建道具。
|
|
44
|
+
|
|
45
|
+
## 个体、同款与集合
|
|
46
|
+
|
|
47
|
+
- 两枚外观相同的白瓷号牌分别被交换、藏匿:创建两个道具,因为它们的流转记录必须独立;
|
|
48
|
+
- 柜台上的一叠普通空白便签仅作背景:可以按类别和数量记录,不必逐张建立 ID;
|
|
49
|
+
- 一把钥匙从顾禾手中转到值班员手中:仍是同一道具,只修改持有人和持有手;
|
|
50
|
+
- “另一把钥匙”明确不是上一把,但尚不知对应哪个已有 ID:新建一次出现记录并标为 `unresolved`,
|
|
51
|
+
不能偷懒复用。
|
|
52
|
+
|
|
53
|
+
个体化程度是 **`taste_option`**,选择依据故事追踪与制作需求,而不是总数最少。
|
|
54
|
+
|
|
55
|
+
## 可读文字政策
|
|
56
|
+
|
|
57
|
+
每个出现文字的 Prop 明确选一种:
|
|
58
|
+
|
|
59
|
+
1. `exact_readable`:剧情要求观众读到;保存准确字符、语言、大小写/标点及来源;
|
|
60
|
+
2. `graphic_only`:需要标签/印记形状,但不要求可辨文字;
|
|
61
|
+
3. `no_readable_text`:画面不应出现可读字;
|
|
62
|
+
4. `pending_creator_text`:剧本要求文字但内容未定,阻断依赖它的提示词。
|
|
63
|
+
|
|
64
|
+
文字是剧本事实时,资产环节只保存政策与来源位置,不自行润色。后续提示词不能
|
|
65
|
+
同时要求 `exact_readable` 和全局 `no_text`。
|
|
66
|
+
|
|
67
|
+
若剧情出现网址、号码、合同内容等敏感屏显,必须记录来源、屏显文字声明和创作者的
|
|
68
|
+
交付接受记录;不能把本地引用路径或内部地址带入交付。
|
|
69
|
+
|
|
70
|
+
## 内容物与知识是两条连续性
|
|
71
|
+
|
|
72
|
+
盒中始终有号牌,是道具内容状态;顾禾在打开盒子后才知道号牌存在,是人物获得了新信息。
|
|
73
|
+
不要因道具早已装有物品,就让人物提前知道。相反,镜头没展示
|
|
74
|
+
内容物不代表它凭空消失。
|
|
75
|
+
|
|
76
|
+
## 有明确用途的关键道具
|
|
77
|
+
|
|
78
|
+
若道具能保护人物、打开路线、储存能力或证明身份,不要只写外观。道具状态还要记录:
|
|
79
|
+
它从哪里取得、现在由谁拿着、是否启用、由什么触发、启用时观众能看到什么、还剩多少
|
|
80
|
+
可用次数或进度、本次使用造成什么后果,以及何时能再次使用。没有来源的“关键时刻突然
|
|
81
|
+
生效”应退回故事或资产负责人;只在提示词里加发光、震动等效果,不能补上缺失的过程。
|
|
82
|
+
|
|
83
|
+
## 合成例:铁皮匣
|
|
84
|
+
|
|
85
|
+
`PROP-TIN-CASE`:手掌至小臂长度的扁长黑铁匣;铰链盖;右前角永久凹陷;用途为保存
|
|
86
|
+
渡站号牌。`“潮位 7”` 写在盖内,政策 `exact_readable`。
|
|
87
|
+
|
|
88
|
+
- `PSTATE-TIN-CLOSED-BADGE-IN`:匣闭合,白瓷号牌在内,位于柜台下层;
|
|
89
|
+
- SC004 顾禾取出:状态从 `closed` 变为 `open`,内容从 `badge` 变为 `empty`;号牌另记
|
|
90
|
+
自己的持有人状态;
|
|
91
|
+
- 匣盖内文在开启后才可见,但文字不是这时才“产生”。观众/角色知道它则另写
|
|
92
|
+
揭示记录和人物知情变化。
|
|
93
|
+
|
|
94
|
+
反例:开匣后创建 `PROP-OPEN-CASE`,拿出号牌后再创建 `PROP-EMPTY-CASE`。这样无法
|
|
95
|
+
表达同一匣子的状态演进,也容易让不同镜头各拿一个假副本。
|
|
96
|
+
|
|
97
|
+
## 检查问题
|
|
98
|
+
|
|
99
|
+
- 去掉持有人、开合和内容物后,道具是否仍有可识别的形制、尺度和材料?
|
|
100
|
+
- 同一物体的状态能否沿剧本来源段落逐步变化,而不是瞬移?
|
|
101
|
+
- 同款多件是否因故事追踪需要而正确区分?
|
|
102
|
+
- 可读文字是否精确、来源明确、与 no-text 政策不冲突?
|
|
103
|
+
- 角色手里拿的物体是否既出现在道具状态中,也在后续分镜边界中被引用?
|
|
104
|
+
- 不可逆功能改造若成为新道具,是否保留来源关系与创作者决定?
|
|
105
|
+
|
|
106
|
+
**`reviewed_invariant` AST-04**: 审查者应指出身份与状态混写、无证据的内容或文字、
|
|
107
|
+
或无法解释的转手;简单关键词匹配不能替代这项判断。
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# 资产阶段契约
|
|
2
|
+
|
|
3
|
+
## 目录
|
|
4
|
+
|
|
5
|
+
- [独立运行与项目集成](#独立运行与项目集成)
|
|
6
|
+
- [所有权边界](#所有权边界)
|
|
7
|
+
- [跨产物引用](#跨产物引用)
|
|
8
|
+
- [制作形态需要什么](#制作形态需要什么)
|
|
9
|
+
- [本阶段规则](#本阶段规则)
|
|
10
|
+
|
|
11
|
+
本文件是本技能的自包含契约:预检、所有权、形态输入与规则表都在这里,
|
|
12
|
+
不需要读取其他技能的文件。
|
|
13
|
+
|
|
14
|
+
## 独立运行与项目集成
|
|
15
|
+
|
|
16
|
+
本技能可以单独安装并运行;下面几条说明项目工具存在时怎样集成。
|
|
17
|
+
|
|
18
|
+
1. **读取直接输入**:只读取用户明确提供或当前任务实际需要的文件,不批量加载整个项目。
|
|
19
|
+
2. **可选项目集成**:若存在 `short-drama.json` 且 core 项目工具可用,可以运行
|
|
20
|
+
`python3 <core>/scripts/project_tool.py status <project>`,使用返回的目录布局和语言设置;
|
|
21
|
+
core 不可用时,直接基于已提供输入产出本阶段文件。
|
|
22
|
+
3. **可选发布生命周期**:项目工具可用时,用 `publish` 原子发布并用 `--input <path>`
|
|
23
|
+
声明直接输入;`accept`、`review` 与 `package` 继续承担确认、复核与交付。
|
|
24
|
+
4. **保持职责分离**:创作者确认、内容修订和复核是不同动作;reviewer 提修改要求,负责人改文件。
|
|
25
|
+
|
|
26
|
+
## 所有权边界
|
|
27
|
+
|
|
28
|
+
- **本阶段拥有**:人物/地点/道具的身份与变体;资产状态变化记录与场景/单集资产台账;
|
|
29
|
+
出现证据的提取。
|
|
30
|
+
- **本阶段继承**:剧本给出的身份、地理与文字政策;故事状态条目是开发/剧本的只读投影。
|
|
31
|
+
- **本阶段不越权**:不决定镜头构图与动作终态,不改写剧情事实。台账里的故事状态只带来源
|
|
32
|
+
指针,不构成第二个取值权威。
|
|
33
|
+
|
|
34
|
+
## 跨产物引用
|
|
35
|
+
|
|
36
|
+
引用回答一个问题:**这份产物是从哪些产物做出来的**。
|
|
37
|
+
|
|
38
|
+
`sources` 只记录**派生来源**——本文件的内容依赖它、它变了本文件就可能要重做的那些产物。
|
|
39
|
+
同层产物互相指名不是派生:occurrence 可以指向它喂给的 decision,那个 decision 也指回它
|
|
40
|
+
消费的 occurrence,两者都成立,但只有后者是派生。**只有派生关系必须无环**,互相指名不受
|
|
41
|
+
此限。把非派生的指名写进 `sources`,会让派生图出现假环,也会让「上游变了要重做什么」这个
|
|
42
|
+
问题答不准。
|
|
43
|
+
|
|
44
|
+
同一个上游被一个文件反复引用时,在开头声明一次,之后每条引用只写快照键和记录 ID。
|
|
45
|
+
声明本身也占篇幅,所以只被引用一两次的上游直接把 `owner`、`artifact` 写在那条引用里。
|
|
46
|
+
|
|
47
|
+
`.jsonl` 的第一行是声明记录:
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{"record_type":"sources","schema_version":"1.0.0","sources":{"screenplay-index":{"owner":"short-drama-write","artifact":"剧集/EP003/screenplay-index.jsonl"},"characters":{"owner":"short-drama-assets","artifact":"设定集/characters.jsonl"}}}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
`.json` 用顶层 `"sources"` 对象,条目形状相同。
|
|
54
|
+
|
|
55
|
+
条目只有 `owner` 与 `artifact`:**引用指名产物,不携带产物的字节**。产物里不写任何哈希——
|
|
56
|
+
写在引用里的哈希要手工维护,而从来没有任何校验器比对过它。真正在比对字节的只剩生命周期
|
|
57
|
+
状态与交付包校验和,那两处由工具自己维护、会真的重算。
|
|
58
|
+
|
|
59
|
+
`sources` 的键短、小写,由产物文件名派生(`characters`、`looks`、`locations`、
|
|
60
|
+
`location-views`、`props`、`prop-states`、`occurrences`、`screenplay-index`),在本文件内
|
|
61
|
+
唯一且稳定。
|
|
62
|
+
|
|
63
|
+
引用写成:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{"src":"characters","record_id":"CHAR-GUHE"}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
指向记录中某个字段时加 `field`(JSON pointer);引用方需要区分权威等级时加 `authority`
|
|
70
|
+
(`accepted` / `candidate`),它属于这一条引用,不属于来源声明。指向整份产物或产物级字段时
|
|
71
|
+
省略 `record_id`。
|
|
72
|
+
|
|
73
|
+
产物存在不等于它里面有你指的那个东西,所以这两件事分两处判:
|
|
74
|
+
|
|
75
|
+
- **同时拿到引用方与被引用文件时,`record_id` 由检查器当场解析**。资产检查器同时读
|
|
76
|
+
`characters.jsonl` 与 `looks.jsonl`,所以外观指向不存在的角色会被它直接报出来。
|
|
77
|
+
- **跨文件的 `field` pointer 由仓库层的 `tests/test_reference_integrity.py` 判定**,
|
|
78
|
+
它把随发布的模板与一个完整项目里的每条指针都走到底。检查器只拿到命令行给它的那几个
|
|
79
|
+
文件,指向没拿到的文件时它无从解析——这一点此前写成了「都会被检查」。
|
|
80
|
+
|
|
81
|
+
## 制作形态需要什么
|
|
82
|
+
|
|
83
|
+
视觉风格不是贴在提示词前面的标签。创作者已接受的视觉方向与制作形态由项目层决定并传入,
|
|
84
|
+
**本技能不加载形态卡,也不自行选择形态**;本节只说明本阶段需要形态回答什么、以及拿到
|
|
85
|
+
答案后投影成哪些字段。
|
|
86
|
+
|
|
87
|
+
形态决定属于 `craft_default`:创作者说明理由即可覆盖。形态不能创造新的
|
|
88
|
+
`structural_invariant`,也不能改写身份、地理、持物归属与可读文字政策。审查者不得单凭
|
|
89
|
+
形态偏好阻断交付。
|
|
90
|
+
|
|
91
|
+
不要用“加一句风格前缀”处理形态差异。前缀只改变检索标签;形态改变的是**必须出现和
|
|
92
|
+
可以省略的字段**,只有后者会被执行,也只有后者能被审查。
|
|
93
|
+
|
|
94
|
+
本阶段要向形态决定问四件事:
|
|
95
|
+
|
|
96
|
+
- **身份锚点载体**:靠什么让人物跨镜可辨认——轮廓、线条、比例、结构差异还是材质。
|
|
97
|
+
- **层级拆分**:身份层、环境层、可动层、效果层各包含什么,同一事实由谁负责。
|
|
98
|
+
- **材质与光色**:材料怎样响应光,色彩关系承担什么信息;不罗列质量词。
|
|
99
|
+
- **连续性必带项**:本形态下哪些字段必须逐镜传递、哪些可以省。不同形态答案差别很大,
|
|
100
|
+
不要照抄别的形态的必带串。
|
|
101
|
+
|
|
102
|
+
本阶段新增:轮廓、材料、层拆、稳定比例与版本差异。
|
|
103
|
+
|
|
104
|
+
## 本阶段规则
|
|
105
|
+
|
|
106
|
+
### `AST`
|
|
107
|
+
|
|
108
|
+
| ID | Class | Knowledge |
|
|
109
|
+
|---|---|---|
|
|
110
|
+
| AST-01 | structural_invariant | Extract occurrences with a declared source snapshot and block ID before creating or binding an asset. |
|
|
111
|
+
| AST-02 | reviewed_invariant | Reconcile each occurrence as reuse, new identity, new variant, or unresolved—never guess an ambiguous name/pronoun. |
|
|
112
|
+
| AST-03 | craft_default | Separate Character/Look, Location/View, and Prop/State. |
|
|
113
|
+
| AST-04 | reviewed_invariant | Persistent identifying anchors and mutable state are not mixed. |
|
|
114
|
+
| AST-05 | structural_invariant | Every downstream binding resolves to an accepted identity and valid variant. |
|
|
115
|
+
| AST-06 | craft_default | Track only asset facts needed for recognition, reuse, prompt writing, or continuity. |
|
|
116
|
+
| AST-07 | reviewed_invariant | Persistent voice identity and pronunciation refs stay separate from scene-level breath, emotion, volume, and delivery state. |
|
|
117
|
+
| AST-08 | reviewed_invariant | A voice reference binding states what it controls and what it must not; the take's emotion, its recording space, and its background never enter identity. |
|
|
118
|
+
| AST-09 | reviewed_invariant | A claim about what is audible in a reference requires a creator or rights-holder description, or an authorized listening observation bound to the inspected bytes; otherwise admission stays unverified. |
|
|
119
|
+
| AST-10 | structural_invariant | An accepted pronunciation of a proper noun appears in exactly one spelling across the 设定集. |
|
|
120
|
+
| AST-11 | reviewed_invariant | Characters designed together are not bound to confusable references; each names the audible trait telling it apart from its nearest neighbour, and names that character. |
|
|
121
|
+
| AST-12 | craft_default | Selection criteria are few, audible and counter-exampled; they judge a candidate reference or a clone result, they do not stand in for one. |
|
|
122
|
+
|
|
123
|
+
### `CON`
|
|
124
|
+
|
|
125
|
+
| ID | Class | Knowledge |
|
|
126
|
+
|---|---|---|
|
|
127
|
+
| CON-01 | structural_invariant | Linked end and next start states match or have an explicit owner revision. |
|
|
128
|
+
| CON-02 | reviewed_invariant | Knowledge, injury, ownership, weather, light, or physical state does not teleport/regress without story cause. |
|
|
129
|
+
| CON-03 | craft_default | Track downstream-relevant deltas, not the whole 设定集 in every shot. |
|
|
130
|
+
| CON-04 | structural_invariant | A delta records before, after, cause/source, effective range, and affected bindings. |
|
|
131
|
+
| CON-05 | taste_option | Declared montage, ellipsis, dream, or subjective imagery may intentionally break ordinary continuity. |
|
|
132
|
+
| CON-06 | structural_invariant | A delta's affected refs cover all existing consumers; future consumers remain locators until materialized. |
|
|
133
|
+
|
|
134
|
+
规则分级由高到低:`structural_invariant`(结构缺陷,阻断)、
|
|
135
|
+
`reviewed_invariant`(需证据判断)、`craft_default`(常用做法,可覆盖)、
|
|
136
|
+
`taste_option`(创作者选择,不作缺陷)。创作者已接受的事实优先于本表。
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# 声音方向
|
|
2
|
+
|
|
3
|
+
## 目录
|
|
4
|
+
|
|
5
|
+
- [参考音频是载体](#参考音频是载体)
|
|
6
|
+
- [身份与表演的界线](#身份与表演的界线)
|
|
7
|
+
- [一段参考音频可以决定什么](#一段参考音频可以决定什么)
|
|
8
|
+
- [绑定不等于听过](#绑定不等于听过)
|
|
9
|
+
- [选型判据](#选型判据)
|
|
10
|
+
- [写出区分度](#写出区分度)
|
|
11
|
+
- [专名发音](#专名发音)
|
|
12
|
+
- [变体:伪装、年龄与跨段变化](#变体伪装年龄与跨段变化)
|
|
13
|
+
- [voice-casting.md 的渲染规则](#voice-castingmd-的渲染规则)
|
|
14
|
+
|
|
15
|
+
`voice_direction` 是 Character 记录的一部分(`AST-07`),跨集稳定。本场怎么说属于表演,
|
|
16
|
+
由 `$short-drama-write` 的配音本逐句决定。
|
|
17
|
+
|
|
18
|
+
## 参考音频是载体
|
|
19
|
+
|
|
20
|
+
短剧的音色由**一段参考音频**承担:配音演员的试音、声音库里的一条、或创作者授权的克隆源。
|
|
21
|
+
文字不承担音色——它承担两件参考音频承担不了的事:
|
|
22
|
+
|
|
23
|
+
1. **选型与验收**:用什么判据挑一条参考、判一次克隆结果算不算这个角色;
|
|
24
|
+
2. **专名发音**:参考音频里没有的那些名字该怎么念。
|
|
25
|
+
|
|
26
|
+
所以 `voice_direction` 以 `reference` 为主字段。没有参考音频时,记录保持
|
|
27
|
+
`reference: null` 并写明「待选型」——**不要用一段文字描述冒充音色身份**。
|
|
28
|
+
下游拿着一段形容词去找声音,找回来的每次都不一样,而记录看起来是完整的。
|
|
29
|
+
|
|
30
|
+
## 身份与表演的界线
|
|
31
|
+
|
|
32
|
+
一句话判定:**这个特征在角色安静地坐着说一句无关紧要的话时还在吗**?
|
|
33
|
+
|
|
34
|
+
在,就是身份。不在,就是表演,留给场次与台词。
|
|
35
|
+
|
|
36
|
+
| 属于身份 | 属于表演 |
|
|
37
|
+
|---|---|
|
|
38
|
+
| 音区、音色质感、年龄印象 | 本场因奔跑造成的气息不稳 |
|
|
39
|
+
| 语速与停顿习惯、句尾处理 | 某一句的重音位置 |
|
|
40
|
+
| 口音与方言范围 | 这一场压低声音说话 |
|
|
41
|
+
| 已接受的专名发音 | 情绪激动时的音量 |
|
|
42
|
+
|
|
43
|
+
界线画错的代价不对称:把表演写进身份,角色每一集都会被要求带着上一集的伤势说话;
|
|
44
|
+
把身份漏进表演,配音者每一场都要重新猜这个人是谁。
|
|
45
|
+
|
|
46
|
+
`not_voice_identity` 与身份字段必须同时写。只写身份,下游无从判断某个特征是被遗漏
|
|
47
|
+
还是被有意排除。
|
|
48
|
+
|
|
49
|
+
## 一段参考音频可以决定什么
|
|
50
|
+
|
|
51
|
+
参考绑定必须自带用途边界:写清这次参考它的**什么**,以及哪些内容**不能**跟着来
|
|
52
|
+
(`AST-08`)。同一段录音承担多个用途时拆成多条绑定分别审查。
|
|
53
|
+
|
|
54
|
+
| `role` | 可以借用 | 默认不可借用 |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| `timbre` | 音色质感、共鸣、年龄与体量印象 | 这条里的情绪、语速、录音空间 |
|
|
57
|
+
| `accent` | 口音与语域范围 | 音色、音区、说话人身份 |
|
|
58
|
+
| `pace` | 语速基线与停顿习惯 | 音色、口音、这条的情绪 |
|
|
59
|
+
| `age_impression` | 听感年龄 | 具体音色与口音 |
|
|
60
|
+
|
|
61
|
+
三类东西**永远写进 `must_not_control`**,因为它们在任何一条参考里都必然存在,
|
|
62
|
+
而且必然不属于角色身份:
|
|
63
|
+
|
|
64
|
+
- **这条参考里的情绪**:试音稿在哭,不代表这个角色总是在哭;
|
|
65
|
+
- **录音空间**:混响、房间声、话筒距离属于那次录音,不属于这个人;
|
|
66
|
+
- **背景内容**:底噪、伴奏、另一个说话人。
|
|
67
|
+
|
|
68
|
+
一条参考同时要定音色和口音时,写两条绑定分别审查,不要把 `may_control` 加长。
|
|
69
|
+
|
|
70
|
+
## 绑定不等于听过
|
|
71
|
+
|
|
72
|
+
`artifact_ref` 只说明绑定了哪条记录,**不能证明有人真的听过这段音频**(`AST-09`)。
|
|
73
|
+
每条绑定写清证据到了哪一步:
|
|
74
|
+
|
|
75
|
+
| `admission_status` | 什么情况 | 可以下什么结论 |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| `creator_described` | 创作者或参考权利人给了可核对的听感说明 | 按说明内容判断 |
|
|
78
|
+
| `audibly_inspected` | 运行环境获授权检查该音频并完成检查 | 按检查记录判断 |
|
|
79
|
+
| `unverified` | 只有文件名或文字描述,音频不可听或没有授权 | **不得**声称音色、口音、底噪或说话人数已经确认 |
|
|
80
|
+
|
|
81
|
+
没有证据就老实保持 `unverified` 并列出风险。负面描述擦不掉参考里已有的内容——
|
|
82
|
+
参考里有底噪就是有底噪,写「不要底噪」不会让它消失;要么重录、清理、换一条,
|
|
83
|
+
要么退回参考权利人决策。
|
|
84
|
+
|
|
85
|
+
参考音频与授权说明属于创作者输入,放在 `输入/` 下:在文件首行的 `sources` 里按整文件
|
|
86
|
+
声明一次,`artifact_ref` 写 `{"src":"guhe-audition-02"}`——指向整份媒体,不带
|
|
87
|
+
`record_id`。**媒体本身不进 设定集,也不进交付包**,只进声明与引用。
|
|
88
|
+
|
|
89
|
+
## 选型判据
|
|
90
|
+
|
|
91
|
+
`selection_criteria` 是三到五条可听的判据,用来**挑**一条参考、或**判**一次克隆结果
|
|
92
|
+
算不算这个角色(`AST-12`)。它不生成声音,也不替代参考。
|
|
93
|
+
|
|
94
|
+
从六类里挑,不要写满:音区(相对位置而非 Hz——「比同剧其他成年男性低半档」)、
|
|
95
|
+
质感、年龄与体量印象、节奏、口音与语域、可重复的标记性习惯(至多一条)。
|
|
96
|
+
|
|
97
|
+
每条带一个 `counter_example`,写清什么算过头。判据没有上界时,试音会一轮比一轮夸张,
|
|
98
|
+
克隆结果也没法判到底算不算过。
|
|
99
|
+
|
|
100
|
+
情绪词不是判据。锚点里出现「愤怒」「悲伤」「紧张」,说明写的是表演不是身份;
|
|
101
|
+
换成产生那个印象的可听特征。
|
|
102
|
+
|
|
103
|
+
## 写出区分度
|
|
104
|
+
|
|
105
|
+
同一批角色对比着选(`AST-11`)。对每个角色回答:同剧里跟他最容易混的是谁,
|
|
106
|
+
用哪一条判据区分。
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
CHAR-A 与 CHAR-B 最易混:两条参考同为中低音区、语速偏慢。
|
|
110
|
+
区分判据:A 句尾收住不拖长;B 句尾常带一段下滑的余音。
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
这条写不出来,说明两条参考实际上是同一个声音——观众会分不清谁在说话,
|
|
114
|
+
而这个问题在文本审查里看不出来,只在成片里被听见。回到创作者那里换一条参考,
|
|
115
|
+
不要靠堆形容词假装区分。
|
|
116
|
+
|
|
117
|
+
角色多时按易混组分批选型,而不是按出场顺序。
|
|
118
|
+
|
|
119
|
+
## 专名发音
|
|
120
|
+
|
|
121
|
+
已接受的专名发音只能有一种拼法(`AST-10`)。
|
|
122
|
+
|
|
123
|
+
这一栏是纯文字,而且参考音频通常帮不上忙:试音稿里多半没有这些名字。真人配音会按
|
|
124
|
+
自己的习惯念,语音合成会按模型的习惯念,两边都不会报错。同一个名字出现两种拼法,
|
|
125
|
+
配音就会在两集之间改口。
|
|
126
|
+
|
|
127
|
+
新增发音走正常的接受流程,不在渲染时就地决定。
|
|
128
|
+
|
|
129
|
+
## 变体:伪装、年龄与跨段变化
|
|
130
|
+
|
|
131
|
+
角色装成另一个人、跨越十年、或中毒后长期失声,都**不改写基础身份**,而是按
|
|
132
|
+
[身份与变体](identity-vs-variant.md) 记一条变体:
|
|
133
|
+
|
|
134
|
+
- `cause`:由哪条已接受的剧本事实引起;
|
|
135
|
+
- `validity`:从哪里生效到哪里失效;
|
|
136
|
+
- `delta`:换了哪条参考、或相对基础身份改了哪几条判据,其余继承。
|
|
137
|
+
|
|
138
|
+
短暂的一场变化不建变体,交给表演。判据和 Look 一样:跨多个场次持续、会重复使用、
|
|
139
|
+
需要独立参考、或下游必须精确绑定时才升为变体。
|
|
140
|
+
|
|
141
|
+
## voice-casting.md 的渲染规则
|
|
142
|
+
|
|
143
|
+
`设定集/voice-casting.md` 是已接受 `voice_direction` 的**派生文本**,交给配音导演、
|
|
144
|
+
选角或克隆操作者使用。它由已接受记录重新生成,是缓存,不是第二份权威——手改它不会改变
|
|
145
|
+
任何身份,下一次渲染就会被覆盖。
|
|
146
|
+
|
|
147
|
+
每个角色一段,固定四块:
|
|
148
|
+
|
|
149
|
+
1. **参考绑定**:哪条参考、`role`、可借用什么、不可借用什么、`admission_status`;
|
|
150
|
+
没有参考时写「待选型」并列出选型判据;
|
|
151
|
+
2. **选型判据**:三到五条,每条带反例;
|
|
152
|
+
3. **区分说明**:和谁最容易混、用哪条区分;
|
|
153
|
+
4. **专名发音**:已接受的那一份拼法。
|
|
154
|
+
|
|
155
|
+
不写入任何服务商参数、模型名、接口字段、任务 ID 或网址——记录要比任何一次调用活得久。
|
|
156
|
+
|
|
157
|
+
**资产阶段不生成音频,也不调用任何语音、合成或克隆服务**。 文本绑定只能保证角色、
|
|
158
|
+
声音方向与引用关系没有被改写;它不能承诺任何真实的合成结果、音色复现或口型同步。
|
|
159
|
+
记录先落进文件、由创作者确认;需要实际 TTS 时再交给 `$short-drama-produce`,由它展示
|
|
160
|
+
精确任务预览并取得本次生产的明确确认。
|
|
161
|
+
|
|
162
|
+
常见失败:
|
|
163
|
+
|
|
164
|
+
| 失败 | 症状 | 怎么改 |
|
|
165
|
+
|---|---|---|
|
|
166
|
+
| 用文字冒充音色 | 没有参考,却写了一整段音色描述当身份 | 保持 `reference: null` 并标「待选型」,判据归判据 |
|
|
167
|
+
| 参考的情绪进了身份 | 借用范围里出现「这条里的哽咽」 | 移进 `must_not_control` |
|
|
168
|
+
| 录音空间被当成音色 | 身份里写了混响、房间感、话筒距离 | 那属于那次录音,删掉 |
|
|
169
|
+
| 声称听过却没听过 | `admission_status` 写着已检查,却没有观察记录 | 退回 `unverified` 并列风险 |
|
|
170
|
+
| 两个角色撞声 | 两条参考互换名字也说得通 | 补区分判据;补不出就换参考 |
|
|
171
|
+
| 发音两套拼法 | 同一专名在两处不同 | 回到已接受的那一份 |
|