# duomir/drama-skills architecture

> Architecture diagram of the GitHub repository duomir/drama-skills, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/duomir/drama-skills
- Repository: https://github.com/duomir/drama-skills

## Overview

Drama Skills is an agent-driven short-drama production workflow: creators start from an idea or source novel, develop and write episodes, define visual assets, prepare image/storyboard/video prompts, confirm media production, edit the resulting clips, and optionally review the work. Project files are the creative record; scripts provide mechanical indexing, validation, confirmation boundaries, and rendering. The README documents the stage sequence and capabilities; sampled source excerpts show selected mechanics, so links between unsampled subsystems are documented workflow relationships rather than inspected runtime calls.

Main entry points: [`skills/short-drama-produce/scripts/production_tool.py`](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-produce/scripts/production_tool.py) (Media production), [`skills/short-drama-write/scripts/screenplay_index.py`](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-write/scripts/screenplay_index.py) (Episode writing), [`skills/short-drama-assets/scripts/asset_check.py`](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-assets/scripts/asset_check.py) (Visual assets), [`skills/short-drama-novel-analyze/scripts/novel_index.py`](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-novel-analyze/scripts/novel_index.py) (Novel analysis)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_project["Project workflow"]
  node_project_tool["Project lifecycle<br/>[project_tool.py]"]
  node_dashboard["Creator dashboard"]
  node_markdown_check["Creator-file checks"]
end

subgraph group_story["Story development"]
  node_novel["Novel analysis<br/>[novel_index.py]"]
  node_development["Story development<br/>[episode_intake.py]"]
  node_writing["Episode writing"]
  node_duration["Duration estimates"]
  node_voice["Voice sheets"]
end

subgraph group_visual["Visual preparation"]
  node_assets["Visual assets<br/>[asset_check.py]"]
  node_image_prompts["Image prompts"]
  node_storyboard["Storyboard"]
  node_video_prompts["Video prompts"]
end

subgraph group_production["Production and delivery"]
  node_production["Media production<br/>[production_tool.py]"]
  node_providers["Provider adapters"]
  node_editing["Editing and render<br/>[edit_tool.py]"]
  node_review["Review checks<br/>[review_check.py]"]
end

node_creator(("Creator"))
node_agent(("Agent skills"))
node_media_services{{"Media providers"}}

node_creator -->|"requests work"| node_agent
node_agent -->|"initializes project"| node_project_tool
node_agent -->|"opens dashboard"| node_dashboard
node_agent -->|"analyzes source"| node_novel
node_novel -.->|"informs adaptation"| node_development
node_agent -->|"develops story"| node_development
node_agent -->|"writes episodes"| node_writing
node_writing -.->|"estimates duration"| node_duration
node_writing -.->|"checks voice sheet"| node_voice
node_agent -->|"defines assets"| node_assets
node_assets -->|"guides prompts"| node_image_prompts
node_assets -->|"guides shots"| node_storyboard
node_storyboard -->|"specifies motion"| node_video_prompts
node_image_prompts -->|"prepares image jobs"| node_production
node_video_prompts -->|"prepares video jobs"| node_production
node_creator -->|"confirms jobs"| node_production
node_production -->|"dispatches jobs"| node_providers
node_providers -.->|"requests generation"| node_media_services
node_production -->|"supplies media"| node_editing
node_editing -->|"renders for review"| node_review
node_agent -->|"reviews episode"| node_review
node_agent -->|"checks documents"| node_markdown_check

click node_project_tool "https://github.com/duomir/drama-skills/blob/main/skills/short-drama/scripts/project_tool.py"
click node_dashboard "https://github.com/duomir/drama-skills/blob/main/skills/short-drama/scripts/dashboard_server.py"
click node_novel "https://github.com/duomir/drama-skills/blob/main/skills/short-drama-novel-analyze/scripts/novel_index.py"
click node_development "https://github.com/duomir/drama-skills/blob/main/skills/short-drama-develop/scripts/episode_intake.py"
click node_writing "https://github.com/duomir/drama-skills/blob/main/skills/short-drama-write/scripts/screenplay_index.py"
click node_duration "https://github.com/duomir/drama-skills/blob/main/skills/short-drama-write/scripts/duration_estimate.py"
click node_voice "https://github.com/duomir/drama-skills/blob/main/skills/short-drama-write/scripts/voice_sheet_check.py"
click node_assets "https://github.com/duomir/drama-skills/blob/main/skills/short-drama-assets/scripts/asset_check.py"
click node_image_prompts "https://github.com/duomir/drama-skills/blob/main/skills/short-drama-image-prompts/scripts/image_prompt_check.py"
click node_storyboard "https://github.com/duomir/drama-skills/blob/main/skills/short-drama-storyboard/scripts/storyboard_check.py"
click node_video_prompts "https://github.com/duomir/drama-skills/tree/main/skills/short-drama-video-prompts"
click node_production "https://github.com/duomir/drama-skills/blob/main/skills/short-drama-produce/scripts/production_tool.py"
click node_providers "https://github.com/duomir/drama-skills/blob/main/skills/short-drama-produce/scripts/provider_adapters.py"
click node_editing "https://github.com/duomir/drama-skills/blob/main/skills/short-drama-edit/scripts/edit_tool.py"
click node_review "https://github.com/duomir/drama-skills/blob/main/skills/short-drama-review/scripts/review_check.py"
click node_markdown_check "https://github.com/duomir/drama-skills/blob/main/skills/short-drama/scripts/creator_markdown_check.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_project_tool,node_dashboard,node_markdown_check toneBlue
class node_novel,node_development,node_writing,node_duration,node_voice toneAmber
class node_assets,node_image_prompts,node_storyboard,node_video_prompts toneMint
class node_production,node_providers,node_editing,node_review toneRose
class node_creator,node_agent,node_media_services toneIndigo
```

## Components

### Project workflow

- [Project lifecycle](https://github.com/duomir/drama-skills/blob/main/skills/short-drama/scripts/project_tool.py): `skills/short-drama/scripts/project_tool.py`
- [Creator dashboard](https://github.com/duomir/drama-skills/blob/main/skills/short-drama/scripts/dashboard_server.py): `skills/short-drama/scripts/dashboard_server.py`
- [Creator-file checks](https://github.com/duomir/drama-skills/blob/main/skills/short-drama/scripts/creator_markdown_check.py): `skills/short-drama/scripts/creator_markdown_check.py`

### Story development

- [Novel analysis](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-novel-analyze/scripts/novel_index.py): `skills/short-drama-novel-analyze/scripts/novel_index.py`
- [Story development](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-develop/scripts/episode_intake.py): `skills/short-drama-develop/scripts/episode_intake.py`
- [Episode writing](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-write/scripts/screenplay_index.py): `skills/short-drama-write/scripts/screenplay_index.py`
- [Duration estimates](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-write/scripts/duration_estimate.py): `skills/short-drama-write/scripts/duration_estimate.py`
- [Voice sheets](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-write/scripts/voice_sheet_check.py): `skills/short-drama-write/scripts/voice_sheet_check.py`

### Visual preparation

- [Visual assets](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-assets/scripts/asset_check.py): `skills/short-drama-assets/scripts/asset_check.py`
- [Image prompts](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-image-prompts/scripts/image_prompt_check.py): `skills/short-drama-image-prompts/scripts/image_prompt_check.py`
- [Storyboard](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-storyboard/scripts/storyboard_check.py): `skills/short-drama-storyboard/scripts/storyboard_check.py`
- [Video prompts](https://github.com/duomir/drama-skills/tree/main/skills/short-drama-video-prompts): `skills/short-drama-video-prompts`

### Production and delivery

- [Media production](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-produce/scripts/production_tool.py): `skills/short-drama-produce/scripts/production_tool.py`
- [Provider adapters](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-produce/scripts/provider_adapters.py): `skills/short-drama-produce/scripts/provider_adapters.py`
- [Editing and render](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-edit/scripts/edit_tool.py): `skills/short-drama-edit/scripts/edit_tool.py`
- [Review checks](https://github.com/duomir/drama-skills/blob/main/skills/short-drama-review/scripts/review_check.py): `skills/short-drama-review/scripts/review_check.py`

### Other components

- **Creator**
- **Agent skills**
- **Media providers**

## Connections

- Creator → Agent skills: requests work (evidence: `README.md`)
- Agent skills → Project lifecycle: initializes project (evidence: `README.md`)
- Agent skills → Creator dashboard: opens dashboard (evidence: `README.md`)
- Agent skills → Novel analysis: analyzes source (evidence: `README.md`)
- Novel analysis → Story development: informs adaptation (evidence: `README.md`)
- Agent skills → Story development: develops story (evidence: `README.md`)
- Agent skills → Episode writing: writes episodes (evidence: `README.md`)
- Episode writing → Duration estimates: estimates duration
- Episode writing → Voice sheets: checks voice sheet
- Agent skills → Visual assets: defines assets (evidence: `README.md`)
- Visual assets → Image prompts: guides prompts (evidence: `README.md`)
- Visual assets → Storyboard: guides shots (evidence: `README.md`)
- Storyboard → Video prompts: specifies motion (evidence: `README.md`)
- Image prompts → Media production: prepares image jobs (evidence: `README.md`)
- Video prompts → Media production: prepares video jobs (evidence: `README.md`)
- Creator → Media production: confirms jobs (evidence: `README.md`)
- Media production → Provider adapters: dispatches jobs (evidence: `skills/short-drama-produce/scripts/production_tool.py`)
- Provider adapters → Media providers: requests generation
- Media production → Editing and render: supplies media (evidence: `README.md`)
- Editing and render → Review checks: renders for review (evidence: `README.md`)
- Agent skills → Review checks: reviews episode (evidence: `README.md`)
- Agent skills → Creator-file checks: checks documents (evidence: `README.md`)
