{"slug":"short-drama","title":"short-drama","summary":"基于文件系统初始化和继续短剧或漫剧项目，提供 creator-first 五文档路由、本地 Dashboard、制作形态与 Look Development 决策。用户提出“创建/继续短剧项目”“看进度/下一步”“做 Look Development”“打开 dashboard/短剧创作台”“导出制作资料”，或任务跨多个创作阶段时使用；明确的写作、资产、提示词、分镜或审查请求由对应子 skill 直接处理。","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-01T21:33:15.248729Z","repo":{"url":"https://github.com/zenstory-ai/drama-skills","stars":2285,"forks":501,"license":"MIT","updatedAt":"2026-09-24T01:48:41Z"},"bodyHtml":"<hr>\n<h2>name: short-drama\ndescription: 基于文件系统初始化和继续短剧或漫剧项目，提供 creator-first 五文档路由、本地 Dashboard、制作形态与 Look Development 决策。用户提出“创建/继续短剧项目”“看进度/下一步”“做 Look Development”“打开 dashboard/短剧创作台”“导出制作资料”，或任务跨多个创作阶段时使用；明确的写作、资产、提示词、分镜或审查请求由对应子 skill 直接处理。\nlicense: MIT</h2>\n<h1>短剧创作路由</h1>\n<p>本技能负责项目初始化、跨阶段路由、制作形态与 Dashboard。各阶段正文由对应 owner 完成。</p>\n<h2>Quick Start</h2>\n<p>所有项目统一使用 <a href=\"references/creator-workflow.md\">creator-first 工作流</a>：每集按需维护\n<code>剧本.md</code>、<code>视觉设定.md</code>、<code>分镜.md</code>、<code>图片提示词.md</code>、<code>视频提示词.md</code>，不建立并行的结构化创作真相。\n具体写法见 <a href=\"references/creator-documents.md\">五份创作文档</a>。</p>\n<h2>路由</h2>\n<table>\n<thead>\n<tr>\n<th>用户要做什么</th>\n<th>owner / 行为</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>开发点子、系列承诺、改编和分集地图</td>\n<td><code>$short-drama-develop</code>，仅在用户需要时</td>\n</tr>\n<tr>\n<td>已有多集完整剧本/散稿识别分集</td>\n<td><code>$short-drama-develop</code> 按实际边界建立临时索引</td>\n</tr>\n<tr>\n<td>分析长篇原著</td>\n<td><code>$short-drama-novel-analyze</code>，仅在用户需要时</td>\n</tr>\n<tr>\n<td>写或改单集剧本</td>\n<td><code>$short-drama-write</code> → <code>剧本.md</code></td>\n</tr>\n<tr>\n<td>拆人物、造型、地点、道具</td>\n<td><code>$short-drama-assets</code> → <code>视觉设定.md</code></td>\n</tr>\n<tr>\n<td>写资产图片提示词</td>\n<td><code>$short-drama-image-prompts</code> → <code>图片提示词.md</code></td>\n</tr>\n<tr>\n<td>做镜头和冻结关键帧</td>\n<td><code>$short-drama-storyboard</code> → <code>分镜.md</code></td>\n</tr>\n<tr>\n<td>写视频/时间线音乐提示词</td>\n<td><code>$short-drama-video-prompts</code> → <code>视频提示词.md</code></td>\n</tr>\n<tr>\n<td>实际生成媒体</td>\n<td><code>$short-drama-produce</code>，先预览，再显式确认，最后运行</td>\n</tr>\n<tr>\n<td>审稿或校验</td>\n<td><code>$short-drama-review</code>，仅在用户点名时</td>\n</tr>\n<tr>\n<td>初始化、Dashboard、归档点名文档</td>\n<td>本技能</td>\n</tr>\n</tbody>\n</table>\n<p><code>项目开发/</code> 中的长材料分析与分集索引是可选分析工作区，不参与单集布局判定；写任何一集仍只维护\n该集的五份 creator-first Markdown。</p>\n<p>现成剧本可直接拆资产；已有视觉事实可直接写图片提示词或分镜；已有分镜可直接写视频提示词。\n不要为补齐名义流水线伪造上游。</p>\n<h2>执行请求</h2>\n<ol>\n<li>找到用户给出的项目或资料，只读当前任务的直接输入。</li>\n<li>把用户点名的完整范围交给相应 owner；批次只控制上下文，自动续跑。</li>\n<li>只有真实创作分叉才询问；不要拿 schema、目录、事务或检查器询问创作者。</li>\n<li>范围完成后一次回报完成内容、关键决定、真实未决项和可选下一步。</li>\n<li>不自动开始用户没点名的审查、归档或生产。</li>\n<li>请求横跨视觉设定、图片提示词、分镜或视频提示词时，结束前按当前五文档做一次视觉依赖对账；\n不因图片提示词和分镜可并行，就把后完成的一支留在另一支的旧引用之外。</li>\n</ol>\n<h2>初始化与 Dashboard</h2>\n<p>需要项目配置时运行：</p>\n<pre><code>python3 {技能目录}/scripts/project_tool.py init ./my-drama --title \"示例短剧\"\n</code></pre>\n<p>直接输入已经确认创作者说明语言、提示词语言、画幅、集数或单集目标时长时，首次 <code>init</code> 就带上对应的\n<code>--language</code>、<code>--prompt-language</code>、<code>--aspect-ratio</code>、<code>--episode-count</code>、<code>--target-seconds</code>；只省略\n未确认项，不让 Brief 中的确定事实留成配置里的 <code>null</code>。写入已确认的生产档案时，状态统一为\n<code>accepted</code>；<code>unset</code> 只表示尚未决定，不另造中间状态。\n<code>init</code> 只建立配置和空目录；第一次创作时再把文档写入 <code>剧集/&lt;EP&gt;/</code>，不预建空文件。\n项目定位与安全写入见 <a href=\"references/runtime-preflight.md\">运行预检</a>。用户明确要求 Dashboard 时运行：</p>\n<pre><code>python3 {技能目录}/scripts/dashboard_server.py --workspace &lt;workspace&gt; --port 0 --detach --open\n</code></pre>\n<p><code>--detach</code> 让服务进程脱离当前 shell 独立运行，会话结束、终端关闭或智能体退出都不会带走它；\n链接因此在整个创作期间保持有效。运行中的地址、端口和 pid 记录在\n<code>&lt;workspace&gt;/.short-drama/dashboard.json</code>（仅本人可读），日志在同目录 <code>dashboard.log</code>：</p>\n<pre><code>python3 {技能目录}/scripts/dashboard_server.py --workspace &lt;workspace&gt; --status   # 打印当前链接\npython3 {技能目录}/scripts/dashboard_server.py --workspace &lt;workspace&gt; --stop     # 停止\n</code></pre>\n<p>同一 workspace 已有在跑的 Dashboard 时，再次启动只会打印同一个链接，不再开第二个端口；确实要换\n端口或换令牌时加 <code>--restart</code>。不加 <code>--detach</code> 时行为不变：前台运行，Ctrl-C 结束。</p>\n<p>Dashboard 展示和编辑创作文件，不负责工作流编排或媒体生产。</p>\n<h2>项目级创作决定</h2>\n<p>制作形态、视觉方向、播放面和集长目标确实约束多个阶段时，展示选择及影响后由用户决定。\nLook Development 是可选分支，不是进入图片提示词或分镜的固定门槛。</p>\n<p>按问题只读取一份相关知识：</p>\n<ul>\n<li>规则分级与 owner 路由：<a href=\"references/knowhow-index.md\">规则与路由索引</a></li>\n<li>输出语言、稳定 ID、所有权与安全边界：<a href=\"references/contract-and-ownership.md\">契约与所有权</a></li>\n<li>实拍、二维、三维、水墨、Q 版、国漫的形态差异：<a href=\"references/production-form-profiles.md\">制作形态</a></li>\n<li>需要比较代表帧时：<a href=\"references/look-development.md\">Look Development</a></li>\n<li>参考图能控制什么：<a href=\"references/reference-roles.md\">参考角色</a></li>\n<li>遮挡、延迟揭示和观众知情时机：<a href=\"references/audience-reveal.md\">观众揭示</a></li>\n<li>母版、补拍和替代版的职责：<a href=\"references/pickup-and-alternate.md\">补拍与替代</a></li>\n</ul>\n<h2>生产与交付边界</h2>\n<p>外部生产永远保留 <code>preview -&gt; explicit confirm -&gt; run</code>。归档只复制用户点名的当前文档和成品，排除\n私有输入、凭据、绝对路径与隐藏运行状态；不为归档补造审批、哈希或第二套内容。</p>\n<p>用户问“做完了怎么导出/交付给我”时，用 <code>export</code> 打包当前状态：</p>\n<pre><code>python3 {技能目录}/scripts/project_tool.py export &lt;project&gt; --out &lt;项目外目录&gt;\n</code></pre>\n<p>它把每集现有的五份创作文档和 <code>剧集/&lt;EP&gt;/制作成果/</code> 复制到 <code>--out</code>，附 <code>manifest.json</code> 与\n<code>checksums.sha256</code>，并排除 <code>输入/</code>、<code>交付/</code> 和 <code>.short-drama/</code>。只要一部分时加\n<code>--episode EP001</code>（可重复）；只要文字时加 <code>--no-media</code>；覆盖旧目录加 <code>--overwrite</code>。\n<code>--out</code> 必须在项目之外。</p>\n<p><code>export</code> 是<strong>当前状态快照</strong>，manifest 里 <code>asserts_approval</code> 恒为 <code>false</code>：它不声称任何审查或\n创作者接受。需要带审批证据的正式交付包仍然只有 <code>package</code>/<code>verify</code> 那条路径。</p>\n<h2>安装维护</h2>\n<p>只有安装、升级或排障时运行 <code>python3 scripts/selftest.py</code>。</p>\n","files":[{"path":"agents/openai.yaml","sizeBytes":286,"isText":true},{"path":"assets/creator-decision.example.jsonl","sizeBytes":1227,"isText":false},{"path":"assets/dashboard/app.js","sizeBytes":54376,"isText":true},{"path":"assets/dashboard/index.html","sizeBytes":7124,"isText":false},{"path":"assets/dashboard/styles.css","sizeBytes":22968,"isText":false},{"path":"assets/production-observation.example.jsonl","sizeBytes":1621,"isText":false},{"path":"assets/project-template/short-drama.json","sizeBytes":809,"isText":true},{"path":"assets/reference-observation.example.jsonl","sizeBytes":1140,"isText":false},{"path":"references/audience-reveal.md","sizeBytes":1221,"isText":true},{"path":"references/contract-and-ownership.md","sizeBytes":2861,"isText":true},{"path":"references/creator-documents.md","sizeBytes":16416,"isText":true},{"path":"references/creator-workflow.md","sizeBytes":5934,"isText":true},{"path":"references/form-cards/Q版表达.md","sizeBytes":4242,"isText":true},{"path":"references/form-cards/二维动态漫.md","sizeBytes":4364,"isText":true},{"path":"references/form-cards/国漫二次元.md","sizeBytes":5036,"isText":true},{"path":"references/form-cards/实拍.md","sizeBytes":4452,"isText":true},{"path":"references/form-cards/水墨笔触.md","sizeBytes":4331,"isText":true},{"path":"references/form-cards/风格化三维.md","sizeBytes":4241,"isText":true},{"path":"references/knowhow-index.md","sizeBytes":9477,"isText":true},{"path":"references/look-development.md","sizeBytes":3409,"isText":true},{"path":"references/pickup-and-alternate.md","sizeBytes":1257,"isText":true},{"path":"references/production-form-profiles.md","sizeBytes":10254,"isText":true},{"path":"references/reference-roles.md","sizeBytes":4326,"isText":true},{"path":"references/runtime-preflight.md","sizeBytes":1226,"isText":true},{"path":"scripts/creator_markdown_check.py","sizeBytes":61927,"isText":true},{"path":"scripts/dashboard_server.py","sizeBytes":69058,"isText":true},{"path":"scripts/project_tool.py","sizeBytes":95650,"isText":true},{"path":"scripts/selftest.py","sizeBytes":9907,"isText":true},{"path":"SKILL.md","sizeBytes":10088,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-14T07:23:30.142105Z","sha256":"6B72A8F8E4245688BD3C6A5C5DBE496C47B3F23FED32E173A440235403395BF5","sizeBytes":143213},"review":null,"source":{"repositoryUrl":"https://github.com/zenstory-ai/drama-skills","path":"skills/short-drama","license":"MIT","commit":"b71cb3ca9343eaf6c0375725ccc9261a4e79021e","subtreeSha":"CABF0DAE96E5ED9B635E08E1792ABAD114E2553F149BCC10C8D0234C43A61591","lastSyncedAt":"2026-09-26T23:12:15.975853Z"},"reviewedAt":"2026-09-14T07:24:13.076529Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/zenstory-ai/drama-skills/tree/main/skills/short-drama"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install zenstory-ai-drama-skills@llmmart"},{"target":"git","command":"git clone https://github.com/zenstory-ai/drama-skills.git"}]}