Communitygithub.com

worldwonderer/drama-skills

An AI short-drama skill suite for Claude Code & Codex: scripts, assets, storyboards, image/video prompts, and independent review.

What is drama-skills?

worldwonderer/drama-skills is a comprehensive set of AI agent skills, specifically designed for Claude Code and Codex, that supports the full lifecycle of short-form drama creation. It helps developers and creators generate and manage scripts, character and location assets, storyboards, image and video prompts, and conduct independent reviews. The skill uses a project-centric approach via a `short-drama.json` configuration file, ensuring organized, traceable, and conflict-free development. Its smart routing system directs user intents (e.g., write a script, create assets, review output) to the appropriate sub-skill, while enforcing strict separation of duties: for example, a reviewer cannot approve their own work. It also includes a local dashboard for a user-friendly editing experience, a deterministic tool for project lifecycle commands (init, status, recover, publish, accept, review, package, verify), and robust transaction recovery and conflict resolution to prevent data loss. This skill suite is ideal for teams or individuals looking to professionalize and streamline their AI-assisted short-drama production workflow.

Works with✓Claude Code✓Codex CLI~Cursor
npx skills add worldwonderer/drama-skills

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Short Drama Routing

This is a lightweight project router. It does not write stories, asset prompts, shots, video prompts, or final review conclusions within this skill.

Content intended for the creator to read follows the project's short-drama.json#/language (this includes status, differences, choices, next steps, etc.); the prompt body sent to image/video generators follows #/format/prompt_language (defaults to en). These are two separate fields; do not infer one from the other. status will report both values simultaneously. Full rules are in the output language contract of contract-and-ownership.md.

Starting Point for Each Request

  1. Use the user's explicit path, or search upward from the current directory for the nearest short-drama.json.
  2. Find other skills in the same suite from this skill's installation directory and read suite-manifest.json; stop changes if skills are missing or versions are mixed.
  3. Read only the short-drama.json and .short-drama/state.json summary; do not load all creation files at once.
  4. Run transaction recovery before executing status or writing. If an external edit conflict is found, preserve the original file and offer three options: adopt, restore, or merge. Do not overwrite silently.
  5. Route based on the creator's current task; do not force a full pipeline walkthrough.

See creator-workflow.md for entry points, checkpoints, revisions, and delivery. Execute runtime-preflight.md at every entry point to uniformly verify installation, recover transactions, and read project status. Read contract-and-ownership.md for questions about ownership, the stale file expiration marker, privacy, or recovery. Read routing-examples.md when intent is ambiguous. Read knowhow-index.md only when you need to map a rule ID to the responsible skill; the router only dispatches and does not replace the creative skill's judgment. See reference-roles.md for what a single reference image can determine and the first/last frame contract; see audience-reveal.md for what the audience can know at any given moment; see pickup-and-alternate.md for the relationship between pickups, alternates, and the master version. See production-form-profiles.md for translation of different production forms. Read look-development.md when a unified visual language needs to be established using characters, locations, and high-pressure representative frames before formal storyboarding.

Intent Routing

Creator IntentRoute
Develop idea, story promise, series, episode map$short-drama-develop
Import novel/long material with traceable episode and asset candidate preview$short-drama-novel-analyze → $short-drama-develop → accept adaptation/episodes → $short-drama-write → accept script → $short-drama-assets
Judge if a long work is worth adapting; first see sampled quick critique$short-drama-novel-analyze
Write/revise episode contract, causal beats, script$short-drama-write
Break down characters/appearances, locations/views, props/states$short-drama-assets
Write image prompts for characters, locations, props, or localized edits$short-drama-image-prompts
Do text coverage, shots, or freeze keyframes$short-drama-storyboard
Write video prompts for action, performance, camerawork, sound$short-drama-video-prompts
Set art style, production form, or visual direction$short-drama itself: locate a profile card per production-form-profiles.md, generate candidates, ask the creator to accept, then promote to creator_authority. Assets, image prompts, storyboards, and video prompts all require a fixed production form and none of them choose it autonomously, so this step must be completed here
Do Look Development / style frames$short-drama first clarifies and accepts observable visual direction → $short-drama-image-prompts writes lookdev_frame text spec; does not generate images, nor allow style references to override identity, geography, or story state
Calibrate this project with authorized production observations$short-drama-review binds the exact version and diagnoses → the corresponding owner performs targeted revisions with preserve_set → re-accept and fresh re-review; if there are no authorized observations, only report textual risks
Verify, review, or send revision requests$short-drama-review
Only check or diagnose template feel, AI-ismfresh $short-drama-review, send only evidence-backed findings
Directly remove AI-ism, polish, or do targeted text revisions$short-drama-write, preserve author voice and show semantic diffs
Check first, then revisefresh review → write owner makes targeted revisions → fresh re-review
Open Dashboard, Short Drama Workbench, or manage creation content$short-drama dashboard: execute the "Local Dashboard" startup contract below

The creator's explicit intent takes priority over the nominal "next checkpoint." Look Development is an optional project-level branch, not a universal prerequisite; after C2 asset acceptance, image prompts and storyboarding are parallel branches; when the creator only wants one branch, do not force waiting for the other.

If the current context has participated in creating the target file, the review route must prioritize starting a fresh reviewer agent/context, passing only the target, accepted constraints, and review checklist; if the runtime does not support fresh agents, transparently degrade to PROVISIONAL self-check. Do not treat switching Skill names as an independent review.

"Looks like a template/AI wrote it" is a diagnostic request; "change it" is an owner revision request. Do not let the write owner self-diagnose and then self-issue a conclusion, nor let the reviewer overstep and directly edit the text. For combined requests, freeze the target version, have a fresh reviewer locate evidence and damage, then hand to the write owner to change only the accepted scope, and finally have a different fresh reviewer do a re-review on the new hash; any link that cannot obtain an independent context keeps PROVISIONAL.

Initialization

When there is no project and the user wants to initialize:

  1. Only confirm or reasonably infer default values for reversible formats: title, language, prompt language, aspect ratio, paths; leave episode count/duration blank if unknown. Language defaults to the creator's current language; prompt language defaults to en; if the creator explicitly asks for prompts in the project language, follow the creator's choice without judging quality consequences.
  2. Copy the project template without overwriting existing creator files.
  3. Create empty stage directories and non-public input boundaries.
  4. In short-drama.json#/creator_authority, create empty creator constraints, visual direction, and production configuration; they are initially unset, and assets and their downstream all require a fixed production form—so after initialization, inform the creator: Setting the production form is the most useful next action, the entry point is in this skill (see intent routing table), not in any sub-skill; write actual choices to the decision record as shown in creator-decision.example.jsonl.
  5. Record suite version, contract version, and five mutually independent empty states.
  6. Inform the project path and the most useful creator action.

Initialization does not generate story engines, scripts, or asset specification tables.

If a project development/director-brief.md is submitted during development, first show the creator its semantic differences relative to the current visual_direction / production_profile; only after explicit acceptance does the route promote the corresponding choices to short-drama.json#/creator_authority. Candidate files themselves do not have creator authority.

Local Dashboard

When the user calls $short-drama dashboard, do not forward to sub-skills; directly start the built-in local Short Drama Workbench:

  1. First, verify the suite and recover unfinished transactions per runtime-preflight.md.

  2. If the working directory is inside a project, use that project's root as workspace; otherwise, use the container directory explicitly given by the user, or the current directory if none is given. Do not scan outside the workspace.

  3. Run from this skill's installation directory:

    python3 <short-drama-skill-dir>/scripts/dashboard_server.py --workspace <workspace> --port 0 --open
    
  4. Keep the process running and report the full loopback address (including the session fragment for this launch) and stop method returned by the script. If the browser cannot be opened automatically, keep the service and have the user open the full address.

Dashboard has only one creation page: a content directory sorted by project and episode on the left, and the main text on the right. Opening a project automatically loads the script; switching content only replaces the main text, without opening new pages or overlays. To-dos and export appear only as brief hints below the main text. The interface does not display file trees, real paths, structured formats, lifecycle, or project details entry points. Markdown is read and edited as draft text; structured data is converted to cards; images and videos are only previewed. short-drama.json, .short-drama/**, creator decisions, review evidence, and export validation are managed by the system and are not navigable by the creator. Saving only saves modifications; it cannot replace the creator's explicit adoption of a version. It does not connect to external data sources, call media generation interfaces, or inject keys into the browser. Each launch generates an independent session token and API path; the browser exchanges the address fragment for an HttpOnly local session, and the project API only accepts that session. See lifecycle-commands.md for specific parameters.

Deterministic Tools

Call scripts/project_tool.py from this skill's installation directory, independent of the current working directory:

CommandPurpose
initInitialize a minimal project
statusRead lifecycle and recovery summary
recoverRecover all or specified transactions
publishPublish candidate via a write-ahead log, without accompanying acceptance or review conclusions
acceptAccept an exact candidate target using a creator decision record
reviewUpdate verification and review status with an independent review conclusion
packageAfter re-verifying the five axes, dependencies, and evidence, generate a text delivery package
verifyRe-verify the delivery package using its built-in checksum and report any new unregistered files

Only read the full call examples, write-ahead log, acceptance, review, downstream staleness effects, and packaging constraints in lifecycle-commands.md when actually invoking these commands, diagnosing failures, or checking record formats.

Status and Next Steps

State in the creator's language:

  • Sources that exist and are in accepted status;
  • Items in provisional, stale, blocked, or pending creator acceptance;
  • Branches that can be entered in parallel;
  • The minimal action to move the user's desired result forward.

Unless the user requests diagnostics, do not print hash, transaction IDs, internal data structures, or raw state content. The five states are mutually independent: building, verification, creator acceptance, independent review, and delivery check; do not use a single accepted to represent all of them.

Recovery and Revision

Recover the earliest incomplete operation in the area the user is asking about, not the earliest stage in the whole project. Before changing confirmed content:

  1. Identify the skill responsible for the modification;
  2. Show the proposed semantic changes;
  3. List the exact downstream items affected;
  4. Obtain creator acceptance when necessary;
  5. Hand off to the responsible person for modification and re-review the new hash.

Roll back incomplete transactions without a COMMIT to the last saved version; continue incomplete transactions with a COMMIT to candidate and fill in the status. Recovery must read-before-write and be idempotent; external changes whose source cannot be confirmed must be marked as conflict and cannot be overwritten.

Delivery

First route to a fresh review context in $short-drama-review for verification, then package when the delivery check is ready. Include only scripts, inventories, prompts, review records, creator notes, and checksums that are in accepted status. Exclude binary media, non-public input, machine states, absolute paths, credentials, non-public source materials, and unapproved drafts.

Boundaries

  • Only use the current agent's text reasoning; do not call media generation or service interfaces.
  • Do not retrieve external or non-public production sources at runtime.
  • Do not elevate cases seen elsewhere into creative laws.
  • The responsible person cannot review their own work.
  • Do not silently resolve semantic conflicts.

Related Skills