@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,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: short-drama
|
|
3
|
+
description: 基于文件系统初始化、继续和交付短剧或漫剧项目,并提供面向创作者的本地 Dashboard;也负责项目级制作形态、视觉方向和 Look Development 路由。用户提出“创建/继续短剧项目”“看进度/下一步”“做 Look Development”“打开 dashboard/短剧创作台”“导出制作资料”,或任务跨多个环节而需要判断负责技能时使用;明确的写作、资产、提示词、分镜或审查请求由对应子 skill 直接处理。
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 短剧创作路由
|
|
8
|
+
|
|
9
|
+
本技能负责找到项目、显示当前状态并把工作交给正确的创作技能,不代写各阶段内容。
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
先离线确认本技能被单独复制后仍能初始化、读取和保护项目路径:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
python3 {技能目录}/scripts/selftest.py
|
|
17
|
+
python3 {技能目录}/scripts/project_tool.py init ./my-drama --title "示例短剧"
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
创作者可读内容使用 `short-drama.json#/language`;交给图片或视频生成器的提示词正文使用
|
|
21
|
+
`#/format/prompt_language`。两者互不推断,详见
|
|
22
|
+
[contract-and-ownership.md](references/contract-and-ownership.md#output-language-contract)。
|
|
23
|
+
|
|
24
|
+
## 每次请求的起点
|
|
25
|
+
|
|
26
|
+
1. 使用用户给出的路径,或从当前目录向上寻找最近的 `short-drama.json`。
|
|
27
|
+
2. 运行 `status`,只读完成当前任务所需的直接输入,不批量加载整个项目。
|
|
28
|
+
3. 按用户眼下要完成的工作路由;未安装的阶段技能只影响对应路由,不阻断其他工作。
|
|
29
|
+
4. 明确的单阶段任务直接交给独立安装的对应技能,按创作者要的那一步做。
|
|
30
|
+
|
|
31
|
+
统一预检见 [runtime-preflight.md](references/runtime-preflight.md),创作入口见
|
|
32
|
+
[creator-workflow.md](references/creator-workflow.md),所有权见
|
|
33
|
+
[contract-and-ownership.md](references/contract-and-ownership.md)。
|
|
34
|
+
|
|
35
|
+
## 意图路由
|
|
36
|
+
|
|
37
|
+
| 创作者意图 | 路由 |
|
|
38
|
+
|---|---|
|
|
39
|
+
| 开发点子、系列承诺、改编和分集地图 | `$short-drama-develop` |
|
|
40
|
+
| 导入已有多集完整剧本/散稿并生成或补分集地图 | `$short-drama-develop` 按文件实际结构建立索引,每次只读当前集并续跑 |
|
|
41
|
+
| 判断长篇是否值得改、建立原文索引 | `$short-drama-novel-analyze` |
|
|
42
|
+
| 写或改单集契约、节拍、剧本 | `$short-drama-write` |
|
|
43
|
+
| 拆人物、造型、地点、道具和状态 | `$short-drama-assets` |
|
|
44
|
+
| 写人物、地点、道具和 Look Development 图片提示词 | `$short-drama-image-prompts` |
|
|
45
|
+
| 做覆盖设计、镜头和冻结关键帧 | `$short-drama-storyboard` |
|
|
46
|
+
| 写动作、表演、运镜、声音视频提示词 | `$short-drama-video-prompts` |
|
|
47
|
+
| 写主题曲/配乐意图或校验时间线音乐规格 | `$short-drama-video-prompts`,歌词必须由创作者提供并接受 |
|
|
48
|
+
| 按已确认规格实际生成图片、视频、TTS 或时间线音乐 | `$short-drama-produce` 先展示本次 job,得到明确确认后才执行 |
|
|
49
|
+
| 定制作形态、视觉方向或 Look Development 路径 | `$short-drama` |
|
|
50
|
+
| 校验、审稿或发修订请求 | `$short-drama-review` |
|
|
51
|
+
| 打开创作台、看内容和进度 | `$short-drama dashboard` |
|
|
52
|
+
|
|
53
|
+
用户的明确意图优先。Look Development 是可选分支;资产图片提示词和分镜在资产确认后可以
|
|
54
|
+
并行,不互相等待。需要把已接受的视觉方向变成可比较的代表帧时,读
|
|
55
|
+
[look-development.md](references/look-development.md)。
|
|
56
|
+
|
|
57
|
+
**产物可以直接入场**。 上游的可选环节缺失不构成阻塞:现成剧本可直接进入资产;已接受资产
|
|
58
|
+
可直接进入资产图片提示词;已接受剧本加资产可直接进入分镜;已接受镜头与关键帧可直接进入
|
|
59
|
+
视频提示词。只补建对应技能拥有的、确实缺少的必要产物,绝不倒补虚构的创作简报或系列大纲。
|
|
60
|
+
|
|
61
|
+
**请求含糊时不要追问技术细节**。 遇到"帮我把这集做完"这类请求,先展示当前的创作者可读
|
|
62
|
+
状态,再给出不超过三个有意义的动作,优先能解开当前交付阻塞的那个;不要拿 schema、事务或
|
|
63
|
+
存储格式去问创作者。
|
|
64
|
+
|
|
65
|
+
## 有界续跑
|
|
66
|
+
|
|
67
|
+
全链预览或“继续”每轮只授权一个 owner 的一个有界工作单元。写作、资产、图片提示词、分镜和
|
|
68
|
+
视频提示词按各自「每轮的工作单元」分批工作;完成当前批次后报告已覆盖范围、剩余范围与
|
|
69
|
+
下一步,并把控制权交还创作者。下一阶段、审查和生产各自需要明确的后续请求;生产还要先展示
|
|
70
|
+
准确 job 并取得确认。
|
|
71
|
+
|
|
72
|
+
审查尽量交给没有参与该版本创作的 reviewer,以减少自证偏差;运行环境不支持隔离上下文时,
|
|
73
|
+
如实标注为自检即可。CLI 只记录 verdict、reviewer 标签和备注,不收集或伪造上下文证明。
|
|
74
|
+
Reviewer 给出证据和修改请求,内容仍由原 owner 修改。
|
|
75
|
+
|
|
76
|
+
## 初始化
|
|
77
|
+
|
|
78
|
+
没有项目且用户要初始化时:
|
|
79
|
+
|
|
80
|
+
1. 确定标题、项目语言、提示词语言、画幅和路径;集数或时长未知就留空。
|
|
81
|
+
2. 运行 `init` 建立最小目录和空状态,不覆盖现有文件。
|
|
82
|
+
3. 将制作形态与视觉方向保持为 `unset`,告诉创作者下一个最有用的选择。
|
|
83
|
+
4. 创作者定下形态、方向、播放面或集长目标后,把这条决定发布并接受为一条创作者决策记录,
|
|
84
|
+
再用 `set-authority` 写回 `short-drama.json`,让下游读到已 `accepted` 的值。
|
|
85
|
+
|
|
86
|
+
初始化不自动生成故事、剧本或资产设定。
|
|
87
|
+
|
|
88
|
+
## 本地 Dashboard
|
|
89
|
+
|
|
90
|
+
Dashboard 是项目内容的轻量展示与有限文本编辑层,核心能力仍在各 skill 中。当用户调用
|
|
91
|
+
`$short-drama dashboard` 时:
|
|
92
|
+
|
|
93
|
+
1. 项目存在时读取 `status`;浏览普通目录时直接使用该目录。
|
|
94
|
+
2. 项目内启动时用项目根作为 workspace;否则使用用户给出的容器目录或当前目录。
|
|
95
|
+
3. 从本技能安装目录运行:
|
|
96
|
+
|
|
97
|
+
```text
|
|
98
|
+
python3 <short-drama-skill-dir>/scripts/dashboard_server.py --workspace <workspace> --port 0 --open
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
4. 回报脚本打印的完整回环地址与停止方式,并保持进程运行。
|
|
102
|
+
|
|
103
|
+
Dashboard 只读取 workspace 内的文件;密钥、生产 adapter 与工作流编排都在它之外。它按项目
|
|
104
|
+
和剧集展示正文、结构化卡片以及已有图片/音频/视频;保存只表示保存文件,不代表创作者确认。
|
|
105
|
+
每次启动使用独立本机会话,项目 API 只接受该会话。参数与安全边界见
|
|
106
|
+
[lifecycle-commands.md](references/lifecycle-commands.md#dashboard-启动)。
|
|
107
|
+
|
|
108
|
+
## 项目命令
|
|
109
|
+
|
|
110
|
+
从本技能安装目录调用 `scripts/project_tool.py`:
|
|
111
|
+
|
|
112
|
+
| 命令 | 用途 |
|
|
113
|
+
|---|---|
|
|
114
|
+
| `init` | 初始化最小项目 |
|
|
115
|
+
| `status` | 显示项目与产物状态 |
|
|
116
|
+
| `publish` | 原子发布一项产物并记录它的直接输入 |
|
|
117
|
+
| `accept` | 记录创作者接受或拒绝当前版本 |
|
|
118
|
+
| `review` | 记录当前版本的复核结论 |
|
|
119
|
+
| `set-authority` | 把已接受的创作者决策写回制作形态、视觉方向、播放面或集长目标 |
|
|
120
|
+
| `package` | 打包当前已确认且复核通过的文本/JSON |
|
|
121
|
+
| `verify` | 用交付校验和检查打包结果是否被改动 |
|
|
122
|
+
|
|
123
|
+
完整示例见 [lifecycle-commands.md](references/lifecycle-commands.md)。单文件发布用临时文件与
|
|
124
|
+
原子替换完成。
|
|
125
|
+
|
|
126
|
+
## 状态与修订
|
|
127
|
+
|
|
128
|
+
对创作者只使用六种状态:
|
|
129
|
+
|
|
130
|
+
- `draft`:尚未发布;
|
|
131
|
+
- `needs_confirmation`:等待创作者决定;
|
|
132
|
+
- `accepted`:创作者已接受;
|
|
133
|
+
- `revise`:创作者或 reviewer 要求修改;
|
|
134
|
+
- `approved`:当前版本已确认且复核通过;
|
|
135
|
+
- `update_needed`:输出或某个直接输入已经变化,需要重新发布。
|
|
136
|
+
|
|
137
|
+
状态在读取时核对当前文件,不把过期传播写回整个项目。修订时只说明负责技能、语义变化、
|
|
138
|
+
直接受影响的产物和下一步;重新发布会清除该产物旧的接受与复核结果,不触碰无关产物。
|
|
139
|
+
除非诊断需要,不向创作者显示内部 hash 或原始状态文件。
|
|
140
|
+
|
|
141
|
+
## 交付
|
|
142
|
+
|
|
143
|
+
先由 `$short-drama-review` 复核,再用 `package` 打包。包内只收录明确选择的、当前状态为
|
|
144
|
+
`approved` 的文本和 JSON,并记录有意省略项;二进制媒体、非公开输入、机器状态、绝对路径、
|
|
145
|
+
凭据和未批准草稿不进入文本交付包。`verify` 检查清单、校验和及未登记新增文件。
|
|
146
|
+
|
|
147
|
+
## 边界
|
|
148
|
+
|
|
149
|
+
- 图片、视频和 TTS 生产只由 `$short-drama-produce` 在展示准确 job 并取得本次明确确认后执行;
|
|
150
|
+
其他技能不直接调用生成服务。
|
|
151
|
+
- 运行时不检索外部或非公开生产来源。
|
|
152
|
+
- 不把别处案例提升为项目定律。
|
|
153
|
+
- 语义冲突不静默修复;不明外部改动由创作者选择保留或重做。
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{"record_type":"sources","schema_version":"1.0.0","sources":{"short-drama":{"owner":"short-drama","artifact":"short-drama.json"}}}
|
|
2
|
+
{"example_only":true,"decision_id":"CD-VISUAL-001","decision_kind":"visual_direction","status":"accepted","scope":"series","accepted_value":{"composition":"9:16 纵向构图优先人物关系与关键手部动作","camera_taste":"克制、动机明确,静止镜头可以是主动选择","light_taste":"光源方向服从 Location/View,不为气氛随镜重置"},"target_locators":[{"src":"short-drama","field":"/creator_authority/visual_direction"}],"decided_by":"creator","decided_at":"<ISO-8601>","supersedes_decision_id":null}
|
|
3
|
+
{"example_only":true,"decision_id":"CD-EP001-SCRIPT-001","decision_kind":"artifact_acceptance","artifact_id":"EP001:script","status":"accepted","decided_by":"creator","decided_at":"<ISO-8601>","supersedes_decision_id":null}
|
|
4
|
+
{"example_only":true,"decision_id":"CD-EP001-COVERAGE-AUDITION-SC001","decision_kind":"artifact_acceptance","artifact_id":"EP001:coverage-audition:SC001","status":"accepted","selected_audition_record_id":"AUD-EP001-SC001","selected_approach_id":"APPROACH-A","decided_by":"creator","decided_at":"<ISO-8601>","supersedes_decision_id":null}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
{"record_type":"sources","schema_version":"1.0.0","sources":{"prompt-or-spec":{"owner":"short-drama-image-prompts | short-drama-video-prompts | short-drama-storyboard","artifact":"<project-relative-text-artifact>"},"reference-record":{"owner":"<reference-owner>","artifact":"<project-relative-reference-record>"},"short-drama":{"owner":"creator","artifact":"short-drama.json"}}}
|
|
2
|
+
{"example_only":true,"observation_id":"PROD-OBS-001","evidence_state":"active","observation_kind":"generated_result","method":"creator_supplied_description | authorized_visual_inspection","observer":{"owner":"<creator-or-authorized-observer>","independent_from_prompt_owner":false},"prompt_or_spec_refs":[{"src":"prompt-or-spec","record_id":"<stable-record-id>","field":"/<exact-field>"}],"reference_conditions":[{"slot_id":"REF-01","order":1,"artifact_ref":{"src":"reference-record","record_id":"<stable-record-id>"},"role":"identity | style | geography | composition | scale | effect | start_frame | end_frame"}],"production_configuration":{"profile_ref":{"src":"short-drama","field":"/creator_authority/production_profile"},"external_configuration_note":"<private-safe description or unknown; no provider task fields>"},"observations":[{"region_or_interval":"<bounded region or interval>","direct_observation":"<what the authorized observer actually saw/heard>","limitations":["<occlusion/resolution/unseen interval/unknown cause>"]}],"valid_only_for":{"project_id":"<project-id>"},"limitations":["This observation does not prove general model behavior or cross-project quality"],"observed_at":"<ISO-8601>","provenance":"creator_project"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0.0-draft",
|
|
3
|
+
"project_id": "LOCAL-PROJECT-ID",
|
|
4
|
+
"title": "未命名短剧",
|
|
5
|
+
"language": "zh-CN",
|
|
6
|
+
"format": {
|
|
7
|
+
"aspect_ratio": "9:16",
|
|
8
|
+
"prompt_language": "en",
|
|
9
|
+
"episode_count": null,
|
|
10
|
+
"target_seconds_per_episode": null,
|
|
11
|
+
"pacing": {
|
|
12
|
+
"spoken_characters_per_second": null,
|
|
13
|
+
"seconds_per_action_paragraph": null
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"creator_authority": {
|
|
17
|
+
"decisions_artifact": "创作者决策/",
|
|
18
|
+
"constraints": [],
|
|
19
|
+
"visual_direction": {
|
|
20
|
+
"status": "unset",
|
|
21
|
+
"choices": {
|
|
22
|
+
"look_development": null
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"production_profile": {
|
|
26
|
+
"status": "unset",
|
|
27
|
+
"choices": {}
|
|
28
|
+
},
|
|
29
|
+
"delivery_surface": {
|
|
30
|
+
"status": "unset",
|
|
31
|
+
"aspect": null,
|
|
32
|
+
"overlay_regions": [],
|
|
33
|
+
"source_ref": null
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
{"record_type":"sources","schema_version":"1.0.0","sources":{"characters":{"owner":"short-drama-assets","artifact":"设定集/characters.jsonl"}}}
|
|
2
|
+
{"example_only":true,"observation_id":"REF-OBS-001","evidence_state":"active","observation_kind":"input_reference","admission_status":"creator_described | visually_inspected","reference_artifact_ref":{"src":"characters","record_id":"CHAR-EXAMPLE","authority":"candidate"},"method":"creator_supplied_description | authorized_visual_inspection","observer":{"owner":"<creator-or-reference-owner-or-authorized-inspector>","independent_from_prompt_owner":false},"observed_regions":[{"region":"<whole frame or bounded region>","visible_text_or_glyphs":"<none observed or private-safe description>","identity_or_geography_evidence":"<only the visible facts this reference may support>","crop_mask_or_cleanup":"<none or declared treatment>","limitations":["<occlusion/resolution/unseen area>"]}],"text_policy_conclusion":"compatible | conflict | unresolved","unresolved_risks":["<risk kept unresolved when evidence is absent or incomplete>"],"observed_at":"<ISO-8601>","provenance":"creator_project"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# 观众此刻可以知道什么
|
|
2
|
+
|
|
3
|
+
背影、腿部入画、门缝、画外声、浅景深和遮挡不只是画面风格。它们同时决定观众**何时**
|
|
4
|
+
知道一个人是谁、看见那张字条、或者发现门后有人。
|
|
5
|
+
|
|
6
|
+
这件事容易被当成构图偏好处理,于是出两种错,而且两种都不会被"这镜好看吗"抓到:
|
|
7
|
+
|
|
8
|
+
- 本镜本来要交代证据,却被一个漂亮的遮挡挡住了——**该给的没给**;
|
|
9
|
+
- 剧本只允许观众先看到鞋和停步位置,结果正脸提前露出来——**不该给的给了**。
|
|
10
|
+
|
|
11
|
+
所以每个镜头要按**事实**分开记录可见性,而不是给整镜写一句"稍后揭示"。
|
|
12
|
+
|
|
13
|
+
## 一条记录只管一个事实
|
|
14
|
+
|
|
15
|
+
这些记录写在镜头的 `audience_visibility[]` 里(字段属于 storyboard 的 shot 记录)。
|
|
16
|
+
|
|
17
|
+
同一个镜头里,"这人是谁"和"他手里有什么"是两件独立的事,可以有完全不同的揭示条件。
|
|
18
|
+
揉成一句,下游就只能一起放或一起收——所以 `audience_visibility` **按事实分条**,
|
|
19
|
+
不是每镜一条。
|
|
20
|
+
|
|
21
|
+
每条记录写清五项:
|
|
22
|
+
|
|
23
|
+
| 字段 | 回答什么 |
|
|
24
|
+
|---|---|
|
|
25
|
+
| `fact` | 这条管的是哪一个具体事实 |
|
|
26
|
+
| `source_ref` | 这个揭示义务来自剧本的哪一段 |
|
|
27
|
+
| `permission` | 现在就给(`show_now`)还是先扣住(`withhold_now`) |
|
|
28
|
+
| `carrier` | 观众此刻能看见或听见的是什么 |
|
|
29
|
+
| `reveal_trigger` / `protection_method` / `rationale` | 什么时候放、靠什么扣住、为什么 |
|
|
30
|
+
|
|
31
|
+
### 合成示例
|
|
32
|
+
|
|
33
|
+
一个镜头里,观众要听见有人叫出主角的旧称呼(说明来者认识他),但**不能**看到来者的脸。
|
|
34
|
+
|
|
35
|
+
`audience_visibility` 所在的 `shots.jsonl` 在第一行声明本文件引用到的上游快照:
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{"record_type":"sources","schema_version":"1.0.0","sources":{"screenplay":{"owner":"short-drama-write","artifact":"剧集/EP001/screenplay.md"}}}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
数组里每条只写快照键和记录 ID:
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
[
|
|
45
|
+
{
|
|
46
|
+
"fact": "来者认识主角的旧身份",
|
|
47
|
+
"source_ref": {"src": "screenplay", "record_id": "BLK-EP001-SC003-A02"},
|
|
48
|
+
"permission": "show_now",
|
|
49
|
+
"carrier": "画外一声旧称呼,主角闻声停手",
|
|
50
|
+
"reveal_trigger": "对方开口",
|
|
51
|
+
"rationale": "本镜必须让观众意识到主角被认出来了"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"fact": "来者是谁",
|
|
55
|
+
"source_ref": {"src": "screenplay", "record_id": "BLK-EP001-SC003-A05"},
|
|
56
|
+
"permission": "withhold_now",
|
|
57
|
+
"carrier": "只有门框边的一只手和影子",
|
|
58
|
+
"protection_method": "来者留在景深之外,不进正面光",
|
|
59
|
+
"reveal_trigger": "下一场推门进屋时",
|
|
60
|
+
"rationale": "身份揭示是场末的转折,提前露脸会让那一下失效"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
两条各有各的条件:**声音放,脸扣住**。写成一条就做不到这件事。
|
|
66
|
+
|
|
67
|
+
## 不是"神秘感越多越好"
|
|
68
|
+
|
|
69
|
+
扣住信息本身没有价值,它只在为后面某个具体时刻服务时才有价值。所以
|
|
70
|
+
`withhold_now` 必须写出 `reveal_trigger`——说不出什么时候放,就说明这不是设计,
|
|
71
|
+
只是没想清楚。
|
|
72
|
+
|
|
73
|
+
审查时同时核对两侧:原文此刻**允许**透露什么,以及本镜**必须**传达什么。
|
|
74
|
+
只评价构图是否漂亮的审查,抓不到这类缺陷。
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Contract And Ownership
|
|
2
|
+
|
|
3
|
+
## Contents
|
|
4
|
+
|
|
5
|
+
1. Project flow
|
|
6
|
+
2. Runtime path ownership
|
|
7
|
+
3. Output language contract
|
|
8
|
+
4. Stable identities and references
|
|
9
|
+
5. Rule classes
|
|
10
|
+
6. Trust and file safety
|
|
11
|
+
|
|
12
|
+
## Project flow
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
development? -> screenplay -> assets -> image prompts
|
|
16
|
+
\-> storyboard -> video prompts
|
|
17
|
+
\-> confirmed production -> review -> delivery
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
This is a routing map, not a mandatory waterfall. Direct entry is valid, and Look Development is optional.
|
|
21
|
+
Each artifact records only the project files it directly read. There is no recursive stale-propagation graph.
|
|
22
|
+
|
|
23
|
+
## Runtime path ownership
|
|
24
|
+
|
|
25
|
+
`project_tool.py` does not contain a registry mapping business paths to skill names. The first published artifact
|
|
26
|
+
claims its output paths in project state, and another artifact cannot silently overwrite those paths. Input,
|
|
27
|
+
delivery and machine-state roots remain protected regardless of owner name.
|
|
28
|
+
|
|
29
|
+
Each skill's own stage contract describes its semantic responsibility. An artifact may project another artifact's
|
|
30
|
+
facts but may not silently redefine them. A reviewer requests changes; the responsible skill edits its source.
|
|
31
|
+
|
|
32
|
+
## Output language contract
|
|
33
|
+
|
|
34
|
+
| Field | Governs | Default |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| `short-drama.json#/language` | creator-facing artifacts, findings, status and Dashboard | `zh-CN` |
|
|
37
|
+
| `short-drama.json#/format/prompt_language` | copyable image/video prompt bodies | `en` |
|
|
38
|
+
|
|
39
|
+
Creator-facing prose follows `language`. Prompt bodies follow `prompt_language`. Depicted speech and on-screen text
|
|
40
|
+
come from accepted story/asset facts, not from either description-language setting.
|
|
41
|
+
|
|
42
|
+
## Stable identities and references
|
|
43
|
+
|
|
44
|
+
Use stable IDs such as `EP001`, `SC001`, `BLK-...`, `CHAR-...`, `LOOK-...`, `LOC-...`, `PROP-...`,
|
|
45
|
+
`SHOT-...`, `KEY-...` and `MOTION-...`. Display names may change without changing identity.
|
|
46
|
+
|
|
47
|
+
For cross-artifact references, a file declares each upstream snapshot once, and every reference names that
|
|
48
|
+
declaration plus the record it points at.
|
|
49
|
+
|
|
50
|
+
A `.jsonl` file declares them on its first line:
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{"record_type":"sources","schema_version":"1.0.0","sources":{"screenplay-index":{"owner":"short-drama-write","artifact":"剧集/EP001/screenplay-index.jsonl"}}}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
A `.json` file uses a top-level `"sources"` object with the same entries. A reference is then:
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{"src": "screenplay-index", "record_id": "BLK-EP001-SC001-A01", "field": "/text"}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`sources` keys are short, lowercase and derived from the artifact filename; each is unique and stable inside its
|
|
63
|
+
file, and one artifact is declared under one key. `owner` and the project-relative `artifact` identify authority.
|
|
64
|
+
`record_id` and `field` are optional selectors, and a reference pointing at a whole artifact keeps `src` alone.
|
|
65
|
+
`authority` (`accepted` or `candidate`) belongs to the individual reference, because one snapshot can be read at
|
|
66
|
+
different authority levels by different references. Do not copy whole authoritative values into consumers, and do
|
|
67
|
+
not create self-references. A `sources` entry names the artifact the file was written against by `owner` and
|
|
68
|
+
`artifact` only — no digest. Bytes are compared by the tool, in lifecycle state and delivery checksums, and that is not
|
|
69
|
+
user-supplied lifecycle evidence and does not drive transitive invalidation.
|
|
70
|
+
|
|
71
|
+
## Rule classes
|
|
72
|
+
|
|
73
|
+
- `structural_invariant`: locally provable; a script may block.
|
|
74
|
+
- `reviewed_invariant`: semantic obligation; a reviewer may request revision.
|
|
75
|
+
- `craft_default`: usually useful, but creator intent may override it.
|
|
76
|
+
- `taste_option`: present alternatives; never block by itself.
|
|
77
|
+
|
|
78
|
+
Word counts, shot counts, emotional curves and patterns seen elsewhere are not structural invariants unless the
|
|
79
|
+
creator explicitly chose them as format constraints.
|
|
80
|
+
|
|
81
|
+
## Trust and file safety
|
|
82
|
+
|
|
83
|
+
Deterministic suite scripts do not make outbound connections. Confirmed production may launch a project-external,
|
|
84
|
+
locally configured adapter without a shell; that adapter owns any provider SDK/API access and reads credentials from
|
|
85
|
+
its environment or system store. Released skills do not retrieve external or private production sources at runtime.
|
|
86
|
+
Do not ship private identifiers, plot passages, prompt sentences, URLs, user data or credentials.
|
|
87
|
+
|
|
88
|
+
Creator input under `输入/` is immutable to publication commands. Machine state lives under `.short-drama/` and
|
|
89
|
+
delivery under `交付/`; neither is an owner publication target. Text/JSON publication validates all sources before
|
|
90
|
+
writing and replaces each target atomically under one project lock. A crash cannot expose a partially written file;
|
|
91
|
+
rerun the command to continue. Unknown external edits are never silently overwritten.
|
|
92
|
+
|
|
93
|
+
Legacy v0.3 state remains readable. The next state-changing command rewrites only the compact artifact record; old
|
|
94
|
+
transaction and propagation fields are not carried forward.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Creator Workflow
|
|
2
|
+
|
|
3
|
+
## Creator authority
|
|
4
|
+
|
|
5
|
+
`short-drama.json#/creator_authority` stores accepted creator constraints, visual direction and production
|
|
6
|
+
profile choices. A skill may draft choices, but only the creator or an explicitly authorized delegate can accept
|
|
7
|
+
them. If nobody has decided, keep the artifact pending; do not infer acceptance from silence or from a request to
|
|
8
|
+
preview the whole pipeline.
|
|
9
|
+
|
|
10
|
+
Use project-relative paths and stable record IDs when one artifact points to another. Human-facing records do not
|
|
11
|
+
need lifecycle digests. Deterministic source indexes may still carry byte spans because their job
|
|
12
|
+
is exact source extraction, not workflow state.
|
|
13
|
+
|
|
14
|
+
## Entry points
|
|
15
|
+
|
|
16
|
+
| Creator asks for | Owner | Minimum input |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| Develop an idea or episode map | `short-drama-develop` | brief or conversation |
|
|
19
|
+
| Analyze a long source | `short-drama-novel-analyze` | preserved source file |
|
|
20
|
+
| Write or revise an episode | `short-drama-write` | idea, episode card, outline or script |
|
|
21
|
+
| Extract assets | `short-drama-assets` | current script |
|
|
22
|
+
| Create image prompt specs | `short-drama-image-prompts` | current asset facts |
|
|
23
|
+
| Design shots/keyframes | `short-drama-storyboard` | current script and asset facts |
|
|
24
|
+
| Create video prompt specs | `short-drama-video-prompts` | current shots/keyframes |
|
|
25
|
+
| Produce images, video or TTS | `short-drama-produce` | current bounded job plus explicit confirmation after preview |
|
|
26
|
+
| Review | `short-drama-review` | bounded artifact set |
|
|
27
|
+
| Initialize, continue, show or deliver | `short-drama` | project path or target path |
|
|
28
|
+
|
|
29
|
+
Direct entry is valid. Do not fabricate upstream files merely to make a nominal pipeline complete.
|
|
30
|
+
|
|
31
|
+
## Branches
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
direction / story development (when needed)
|
|
35
|
+
|
|
|
36
|
+
screenplay
|
|
37
|
+
|
|
|
38
|
+
assets
|
|
39
|
+
/ \
|
|
40
|
+
image prompts storyboard -> video prompts
|
|
41
|
+
\ /
|
|
42
|
+
confirmed production
|
|
43
|
+
|
|
|
44
|
+
review -> delivery
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Look Development is optional. Image prompts and storyboard are sibling branches after asset facts exist.
|
|
48
|
+
|
|
49
|
+
## Preview, confirmation and revision
|
|
50
|
+
|
|
51
|
+
A request for an end-to-end preview authorizes drafting, not acceptance. Its runtime contract is **one bounded work unit per turn**:
|
|
52
|
+
|
|
53
|
+
1. choose one owner stage; for a high-fanout stage, choose one explicit contiguous batch;
|
|
54
|
+
2. read only that unit's direct inputs, draft or revise it, and run its local structural checks;
|
|
55
|
+
3. persist a candidate without inventing creator acceptance;
|
|
56
|
+
4. report the included scope, remaining scope and next useful action, then **return control to the creator**.
|
|
57
|
+
|
|
58
|
+
The turn ends at step 4. A creator message such as “continue” authorizes the next bounded unit. The next owner
|
|
59
|
+
stage, review and production each begin on their own explicit request; review also runs when an explicitly
|
|
60
|
+
requested delivery needs a verdict. Undecided work stays in `needs_confirmation`, and delivery waits until the
|
|
61
|
+
creator accepts the relevant outputs.
|
|
62
|
+
|
|
63
|
+
For a revision:
|
|
64
|
+
|
|
65
|
+
1. identify the artifact and owner;
|
|
66
|
+
2. read only its direct current inputs;
|
|
67
|
+
3. show the semantic change and what should remain unchanged;
|
|
68
|
+
4. let the owner publish the revision;
|
|
69
|
+
5. request creator acceptance when canonical meaning changed;
|
|
70
|
+
6. report whether a separate bounded review is still needed; do not start it automatically.
|
|
71
|
+
|
|
72
|
+
Changing an upstream file does not recursively rewrite project state. A consumer that directly recorded that file
|
|
73
|
+
shows `update_needed`; republish the consumer when the creator actually wants it refreshed.
|
|
74
|
+
|
|
75
|
+
Rendered prompt Markdown is a view of its structured spec. If someone edits the rendered view, either regenerate
|
|
76
|
+
it, adopt the change into the spec, or reconcile both explicitly.
|
|
77
|
+
|
|
78
|
+
## Delivery boundary
|
|
79
|
+
|
|
80
|
+
Deliver only explicitly selected, current, approved text and JSON in the text package. Produced media remains in
|
|
81
|
+
its project production directory and may be exported by a separate creator-approved media handoff. Exclude private
|
|
82
|
+
sources, credentials, absolute paths and machine state. `verify` checks checksums; it does not judge creative quality.
|
package/lib/drama/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# 形态卡:Q 版表达(含 Q 版知识与教育短片)
|
|
2
|
+
|
|
3
|
+
上层选择、构成差异与跨阶段责任见 [production-form-profiles.md](../production-form-profiles.md)。
|
|
4
|
+
本卡回答:选了这个形态之后,可执行文本本身变成什么样。示例均为合成改写。
|
|
5
|
+
|
|
6
|
+
## 叙事职责
|
|
7
|
+
|
|
8
|
+
用**降低威胁感和降低认知负担**换取信息通过率:夸张比例让情绪一眼可读,简化形体让因果链
|
|
9
|
+
只剩必要元素。它擅长把规则、流程、风险和抽象概念变成可看的因果单位,也擅长让沉重题材
|
|
10
|
+
被接受。它不擅长细节写实、精确尺度和严肃的暴力后果;需要这些时改由旁白或文字承担,
|
|
11
|
+
不要靠画面硬撑。
|
|
12
|
+
|
|
13
|
+
## 身份锚点载体
|
|
14
|
+
|
|
15
|
+
**比例体系 + 大色块 + 一个被放大的记号**。头身比一旦选定就是硬约束:不同角色可以有不同
|
|
16
|
+
头身比,但同一角色跨镜不能变。识别靠发型剪影、主色块和一处刻意放大的特征
|
|
17
|
+
(眼镜、呆毛、围裙、工牌)。五官细节不做锚点——它在简化体系里承载不了识别。
|
|
18
|
+
|
|
19
|
+
## 连续性载体
|
|
20
|
+
|
|
21
|
+
- **必须传递**:头身比与角色之间的相对尺度、主色块、放大记号、当前手中物、
|
|
22
|
+
可读文字与后期文字的预留位置。
|
|
23
|
+
- **可以省**:写实材质、精确光向、背景细节。
|
|
24
|
+
- **最常断裂处**:角色间尺度关系逐镜变化、同一道具时大时小、放大记号在某些角度消失。
|
|
25
|
+
|
|
26
|
+
## 层级拆分
|
|
27
|
+
|
|
28
|
+
- 身份层:比例体系、色块、记号;
|
|
29
|
+
- 环境层:简化背景,只保留承担因果的功能物;
|
|
30
|
+
- 可动层:本镜承担因果的那一个动作或那一个物体;
|
|
31
|
+
- 效果层:符号层(问号、汗滴、箭头、高亮圈、放大镜)与后期文字预留区。
|
|
32
|
+
|
|
33
|
+
符号层是这个形态特有的可执行载体:它可以直接承担注意力指向与因果标注,但必须先声明
|
|
34
|
+
是画内元素还是后期层,而且**不能替代事实本身**——箭头指向不等于展示了后果。
|
|
35
|
+
|
|
36
|
+
## 光与材质词汇
|
|
37
|
+
|
|
38
|
+
可执行词汇是**平涂 + 两段明暗 + 高饱和主色**,加少量指示性高光。「危险物用画面里唯一的
|
|
39
|
+
高饱和红,其余降饱和」可执行;「可爱风格」「明快色调」不可执行。材质通常只需分三类——
|
|
40
|
+
软(布、皮肤)、硬(金属、塑料)、透(玻璃、液体)——够用即可,再细分不会被画出来。
|
|
41
|
+
|
|
42
|
+
## 运动预算
|
|
43
|
+
|
|
44
|
+
一个画面或一个运动段**只承载一个因果单位**。默认 hold 加局部动:动的是执行因果的那只手
|
|
45
|
+
或那个物体,其余保持。可爱不等于持续弹跳——给每个元素都加弹性循环会让因果读不出来。
|
|
46
|
+
转场可以用符号层或尺度变化(推到局部)承接。危险动作与错误示范是否允许被完整演示,
|
|
47
|
+
属于形态卡的安全边界决定,不由提示词阶段临时判断。
|
|
48
|
+
|
|
49
|
+
## 声音与文字职责
|
|
50
|
+
|
|
51
|
+
旁白通常是主要信息载体,画面负责证据与后果,两者分工要写死:**旁白说规则,画面说后果**,
|
|
52
|
+
画面不复述旁白已经说完的内容。可读文字(标签、数字、步骤号)在这个形态里高频出现,
|
|
53
|
+
必须走资产 text policy 并明确是画内还是后期层;后期文字要在构图里预留位置,
|
|
54
|
+
不能事后压在脸或记号上。事实准确性不因为风格可爱而下调。
|
|
55
|
+
|
|
56
|
+
## 跨阶段传递
|
|
57
|
+
|
|
58
|
+
| 阶段 | 这个形态额外要写的 |
|
|
59
|
+
|---|---|
|
|
60
|
+
| develop | 头身比体系、旁白与画面的分工、符号层策略、安全边界 |
|
|
61
|
+
| assets | 比例体系、色块、记号、符号层清单、文字政策 |
|
|
62
|
+
| image-prompts | 单帧的比例、色块、符号位置与文字预留区 |
|
|
63
|
+
| storyboard | 一个画面一个因果单位、注意力指向、后期文字预留 |
|
|
64
|
+
| video-prompts | 会动的那一层与其因果、符号层出现时机、旁白相对动作的位置 |
|
|
65
|
+
| review | 因果单位是否被稀释、尺度关系是否稳定、文字预留是否被占用 |
|
|
66
|
+
|
|
67
|
+
## 常见失效
|
|
68
|
+
|
|
69
|
+
- 全员持续弹跳,因果读不出来;
|
|
70
|
+
- 一镜塞进多个因果单位,观众只记住最后一个;
|
|
71
|
+
- 符号层替代了事实,箭头指向被当成已经展示;
|
|
72
|
+
- 后期文字压住脸或放大记号;
|
|
73
|
+
- 为了可爱牺牲事实准确性或安全边界。
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# 形态卡:二维动态漫(限动画 / 绘制动画)
|
|
2
|
+
|
|
3
|
+
上层选择、构成差异与跨阶段责任见 [production-form-profiles.md](../production-form-profiles.md)。
|
|
4
|
+
本卡回答:选了这个形态之后,可执行文本本身变成什么样。示例均为合成改写。
|
|
5
|
+
|
|
6
|
+
## 叙事职责
|
|
7
|
+
|
|
8
|
+
用**明确的形状与线条**把复杂信息压缩成一眼可读的画面:谁是谁、谁在看谁、哪件东西重要,
|
|
9
|
+
由轮廓和留白直接分配注意力。它擅长用很少的全动作推进大量剧情——省下的动作预算换成
|
|
10
|
+
信息密度;也擅长表现被夸张过的力度与情绪。它不擅长连续的复杂三维调度和真实材质的
|
|
11
|
+
细微变化;需要这些时先问能不能改成一次姿势切换或一次效果层承接。
|
|
12
|
+
|
|
13
|
+
## 身份锚点载体
|
|
14
|
+
|
|
15
|
+
**轮廓剪影 + 线条特征 + 固定色块**。跨镜可辨认靠发型剪影、脸型比例、服装的色块划分,
|
|
16
|
+
以及一两个不可省的图形记号(领口形状、发饰、袖口条纹)。不要拿「眼神」或写实五官
|
|
17
|
+
细节做锚点——绘制形态每个角度都会重画,只有形状级特征稳定。剪影测试是这个形态特有的
|
|
18
|
+
自检:把角色填成纯黑,是否还认得出是谁。
|
|
19
|
+
|
|
20
|
+
## 连续性载体
|
|
21
|
+
|
|
22
|
+
- **必须传递**:轮廓与色块、阴影分区(阴影落在哪一块)、线条粗细与是否描边、
|
|
23
|
+
本造型相对基准的色卡差异、本镜可动层清单。
|
|
24
|
+
- **可以省**:写实材质细节、精确布光角度、背景纵深。
|
|
25
|
+
- **最常断裂处**:阴影分区换了逻辑、描边时有时无、同一角色跨镜配色饱和度漂移。
|
|
26
|
+
|
|
27
|
+
## 层级拆分
|
|
28
|
+
|
|
29
|
+
这是本形态最核心的可执行结构,每镜都要显式写:
|
|
30
|
+
|
|
31
|
+
- 身份层:角色线稿与固定色块,跨镜不重画;
|
|
32
|
+
- 环境层:背景板,通常整段复用,只在机位改变时更换;
|
|
33
|
+
- 可动层:本镜真正会动的部分(一只手、嘴、发梢、衣摆、一件道具);
|
|
34
|
+
- 效果层:光斑、粒子、速度线、冲击波、光晕,与角色层分开声明谁负责。
|
|
35
|
+
|
|
36
|
+
每镜点名:哪层 hold、哪层局部循环、哪层做视差、哪层用姿势切换。
|
|
37
|
+
|
|
38
|
+
## 光与材质词汇
|
|
39
|
+
|
|
40
|
+
可执行词汇是**色块关系**而不是物理光:主色 / 阴影色 / 高光色三段怎么分、阴影边界是硬边
|
|
41
|
+
还是渐变、有没有反射光块、描边颜色是否随环境变化。材质写绘制方式:平涂、笔刷纹理、
|
|
42
|
+
分层上色、渗色。不写次表面散射、物理材质这类三维词,也不写「高质量插画」。
|
|
43
|
+
|
|
44
|
+
## 运动预算
|
|
45
|
+
|
|
46
|
+
默认 **limited motion**,静止是主动的注意力选择而不是缺陷。分配原则:一镜只让承担因果的
|
|
47
|
+
那一层全动;其余交给 hold pose、局部循环(呼吸、发梢、衣摆、闪烁)、背景视差或效果层。
|
|
48
|
+
转折瞬间可以用姿势切换代替连续动作,冲击可以用效果层加顿帧承接,位移可以由剪辑承接。
|
|
49
|
+
不要给所有角色、头发、衣摆和背景同时加无因运动——那是这个形态最典型的廉价感来源。
|
|
50
|
+
|
|
51
|
+
## 声音与文字职责
|
|
52
|
+
|
|
53
|
+
口型策略(不做口型 / 有限口型开合 / 完整口型)要在形态卡里先决定并跨集一致;决定之后,
|
|
54
|
+
台词的写法随之改变——不做口型时长台词优先改成画外或背身。画面文字(拟声字、心声框、
|
|
55
|
+
标题字)是本形态的合法叙事载体,但必须走资产 text policy,并声明是画内元素还是后期层。
|
|
56
|
+
|
|
57
|
+
## 跨阶段传递
|
|
58
|
+
|
|
59
|
+
| 阶段 | 这个形态额外要写的 |
|
|
60
|
+
|---|---|
|
|
61
|
+
| develop | 限动比例、口型策略、是否使用画面文字与效果层承接 |
|
|
62
|
+
| assets | 轮廓、色块、阴影分区、描边规则、可动层清单、表情与姿势库 |
|
|
63
|
+
| image-prompts | 单帧的线条与色块投影、层次关系、背景密度 |
|
|
64
|
+
| storyboard | 注意力分配、遮挡、本镜哪一层冻结、可动层边界 |
|
|
65
|
+
| video-prompts | 只写会动的层与循环方式、姿势切换点、效果层时机、口型策略 |
|
|
66
|
+
| review | 每镜是否点名可动层,是否出现无因全局运动 |
|
|
67
|
+
|
|
68
|
+
## 常见失效
|
|
69
|
+
|
|
70
|
+
- 全部图层同时轻微飘动,观众读不出谁在动;
|
|
71
|
+
- 阴影分区逐镜换逻辑,或描边时有时无;
|
|
72
|
+
- 把三维光影词写进二维说明,导致质感撕裂;
|
|
73
|
+
- 效果层盖掉身份锚点,剪影认不出人;
|
|
74
|
+
- 背景密度过高抢走注意力,人物退成贴纸。
|