Short Drama Creation Router
This skill handles project initialization, cross-phase routing, production form, and Dashboard. The content for each phase is completed by the corresponding owner.
Quick Start
All projects use the creator-first workflow: maintain script.md, visual-setting.md, storyboard.md, image-prompts.md, and video-prompts.md per episode as needed. Do not create parallel structured truth. For specific writing conventions, see The Five Creator Documents.
Routing
| What the user wants to do | Owner / Behavior |
|---|---|
| Develop ideas, series commitments, adaptations, and episode mapping | $short-drama-develop, only when requested by the user |
| Identify episode divisions from existing multi-episode scripts or drafts | $short-drama-develop creates a temporary index based on actual boundaries |
| Analyze a long-form original work | $short-drama-novel-analyze, only when requested by the user |
| Write or revise a single episode script | $short-drama-write → script.md |
| Break down characters, looks, locations, props | $short-drama-assets → visual-setting.md |
| Write asset image prompts | $short-drama-image-prompts → image-prompts.md |
| Create shots and freeze keyframes | $short-drama-storyboard → storyboard.md |
| Write video/timeline and music prompts | $short-drama-video-prompts → video-prompts.md |
| Actually generate media | $short-drama-produce, preview first, then explicit confirm, then run |
| Review or validate | $short-drama-review, only when explicitly requested by the user |
| Initialize, Dashboard, archive requested documents | This skill |
Long material analysis and episode indexing in project-development/ are optional analysis workspaces and do not participate in single-episode layout decisions; writing any episode still only maintains the five creator-first Markdown files for that episode.
Existing scripts can be directly broken down into assets; existing visual facts can directly write image prompts or storyboards; existing storyboards can directly write video prompts. Do not fabricate upstream phases to complete a formal pipeline.
Executing Requests
- Find the project or materials given by the user; read only the direct input for the current task.
- Pass the complete scope specified by the user to the corresponding owner; batches only control context, auto-continue runs.
- Only ask about genuine creative forks; do not query the creator with schemas, directories, transactions, or validators.
- After completing the scope, report once: what was completed, key decisions, real pending items, and optional next steps.
- Do not automatically start review, archiving, or production that the user did not request.
Initialization and Dashboard
Run the following when project configuration is needed:
python3 {skill-directory}/scripts/project_tool.py init ./my-drama --title "Example Short Drama"
init only creates configuration and empty directories; the first time you create, write documents into episodes/<EP>/, do not pre-create empty files. See Runtime Preflight for project location and safe writing. Run the following when the user explicitly requests Dashboard:
python3 {skill-directory}/scripts/dashboard_server.py --workspace <workspace> --port 0 --detach --open
--detach allows the service process to run independently from the current shell; the session ending, terminal closing, or agent exiting will not stop it. The link therefore remains valid throughout the creation session. The running address, port, and pid are recorded in <workspace>/.short-drama/dashboard.json (readable only by the owner), with logs in dashboard.log in the same directory:
python3 {skill-directory}/scripts/dashboard_server.py --workspace <workspace> --status # print current link
python3 {skill-directory}/scripts/dashboard_server.py --workspace <workspace> --stop # stop
If a Dashboard is already running in the same workspace, starting it again will only print the same link without opening a second port; add --restart to change the port or token. Without --detach, the behavior is unchanged: run in the foreground, exit with Ctrl-C.
The Dashboard displays and edits creation files; it does not handle workflow orchestration or media production.
Project-Level Creative Decisions
When production form, visual direction, aspect ratio, and episode length goals genuinely constrain multiple phases, present the options and their impact, then let the user decide. Look Development is an optional branch, not a mandatory gate to entering image prompts or storyboards.
Read only one relevant knowledge base per question:
- Rule hierarchy and owner routing: Rules & Routing Index
- Output language, stable IDs, ownership, and security boundaries: Contract & Ownership
- Form differences for live-action, 2D, 3D, ink-wash, chibi, Chinese-style animation: Production Forms
- When comparing representative frames is needed: Look Development
- What reference images control: Reference Roles
- Occlusion, delayed reveals, and audience awareness timing: Audience Reveal
- Responsibilities of masters, pickups, and alternate versions: Pickup & Alternate
Production and Delivery Boundaries
External production always follows preview -> explicit confirm -> run. Archiving only copies the current documents and deliverables explicitly requested by the user, excluding private inputs, credentials, absolute paths, and hidden runtime state. Do not fabricate approvals, hashes, or a second set of content for archiving.
When the user asks "How do I export/deliver the completed work?", use export to package the current state:
python3 {skill-directory}/scripts/project_tool.py export <project> --out <directory-outside-project>
It copies the existing five creation documents per episode and episodes/<EP>/production-output/ to --out, along with manifest.json and checksums.sha256, while excluding input/, delivery/, and .short-drama/. For partial exports, add --episode EP001 (repeatable); for text-only exports, add --no-media; to overwrite an existing directory, add --overwrite. --out must be outside the project.
export is a snapshot of the current state; in the manifest, asserts_approval is always false: it does not assert any review or creator acceptance. The only path for a formal delivery package with approval evidence remains package/verify.
Installation and Maintenance
Only run python3 scripts/selftest.py during installation, upgrades, or troubleshooting.