| name | short-edit-story |
| description | 对单集短视频的任意内容(资产、大纲、剧本、分镜)提出修改意见。通过对话协商确定方案后,按级联 DAG 按需执行修正。使用 /short-edit-story 加自然语言描述触发。 |
| user-invocable | true |
| allowed-tools | Read, Write, Edit, Glob, Bash, Skill |
| argument-hint | [自然语言修改意见] |
| model | opus |
失败处理(核心规则)
sub-agent task 失败后,永远不要在主 session 自己接管本应由 sub-agent 做的工作。
正确做法:
- 分析失败原因(task return 值 / 错误信息)
- 如可修复:用修正后的参数重新派发同一 sub-agent
- 如不可修复:将失败原因和已尝试方案返回给用户,停止流程
错误做法:
- ❌ "sub-agent 失败了,我自己来写这个 novel.md"
- ❌ "task 报错了,我在主 session 直接调用 Write"
- ❌ "我 fallback 一下,自己生成 keyframes.json"
原因:主 session 缺少 sub-agent 的隔离上下文(专属 system prompt、skill 加载、permission 配置),自己接管会导致质量下降、跨步骤上下文污染、permission 错配等问题。即使 sub-agent 失败,工作所有权也必须留在 sub-agent 层。
使用示例
/short-edit-story 大纲的结局改成开放式结局
/short-edit-story 剧本第 3 场苏锦年对导师的台词太平淡
/short-edit-story 分镜镜头 5 里苏锦年的衣服颜色不对,应该是黑色
/short-edit-story 重新生成苏锦年的图片
/short-edit-story 在资产清单中补上遗漏的角色老王
硬性约束
- 集数固定为
ep01(单集短视频只有一集)
- 阶段 3 执行级联前必须取得用户对具体改动清单的确认
- 阶段 2 诊断最上游前必须先读相关文件,不能凭关键词猜
流程
阶段 1: 理解意图(协作讨论)
- 读取
config.md 获取配置
- 读
$ARGUMENTS,识别用户想改什么内容
- 主动读相关文件锁定用户提及的具体位置;若位置无法从用户输入和已读文件直接定位,先澄清
- 基于已读内容,主动提出 2–4 个具体的修改候选。每个候选必须含:
- 具体的文本/参数(不是方向描述)
- 该改法的创作意图解释
- 用户可选、改、否决或给自己的版本
- 若用户给不出方向且多轮后仍无共识 → 告知"缺乏方向无法出方案"并结束
- 用户明确具体改动内容后 → 进入阶段 2
示例:
用户:/short-edit-story 剧本第 3 场苏锦年对导师的台词太平淡
LLM 读 story/episodes/ep01/script.md 第 3 场后:
我读了第 3 场苏锦年与导师的对话。最后一句"我不明白"确实平淡。几个具体改法:
A) 苏锦年攥紧实验服下摆:"……您让我做的事,我其实已经明白了。"
效果:肢体动作暴露紧张,台词表面服从实则暗藏指控——"其实"二字暗示此前装傻是保护色。台词与动作张力更强。
B) 苏锦年沉默三秒,低声:"明白。我只是不想明白。"
效果:三秒沉默是节奏设计;"明白/不想明白"的并置制造自我矛盾,把外部冲突转为内心挣扎。适合内敛人物。
C) 苏锦年把报告翻到最后一页:"这里的数据,您签字时——是明白的吗?"
效果:反问把矛头抛回导师,翻页动作让对峙有物理感;让苏锦年显得主动,推进后续冲突。
你选哪个?或想换个方向?
边界:
- 若意图已在用户输入中充分明确、改动方向明显(如"重新生成苏锦年的图片")→ 可跳过候选生成,用一句话确认后直接进入阶段 2
- 若多轮仍无共识 → 告知"缺乏方向无法出方案"并结束
阶段 2: 协商方案
读文件范围(强制)
LLM 在给出方案前必须读以下文件:
- 用户指向的目标文件(e.g., 用户说"分镜镜头 5" → 读
story/episodes/ep01/storyboard.md)
- 候选上游位置的相关文件(按"语义源头"判断;e.g., 改衣服颜色 → 读对应角色的资产 .md 文件)
- 下游评估所需的文件(e.g., 判断 storyboard 是否受资产变更影响 → 扫描 storyboard 对该资产的引用)
不能凭文件名或关键词猜。必读后再诊断。
诊断流程
- 定位入口:基于"新内容的语义源头在哪个节点"的判断:
- 新增剧情/角色 → script 层
- 角色/物品/场景的全局属性变更(外貌、衣着、身份)→ assets 层
- 关键帧叙事(剧情节奏、视觉节点编排)→ keyframes 层
- 关键帧图片本身不满意但描述/prompt 不变 → keyframe-images 层(仅重生 + visual review)
- 纯视觉/构图/节奏 → storyboard 层
- 剧情走向(幕结构、钩子)→ outline 层
- 清单遗漏补齐(剧本已有但清单漏写)→ asset-list 层
- 图像生成不满意但资产描述不变 → images 层(仅重生)
- 沿 DAG 向下逐节点评估:对每个下游候选节点判断"本次改动是否影响它"
- 给出跳过节点的理由:不能只说跳过,要解释为什么不影响
方案呈现格式
方案
入口:{节点名}
改动清单:
[{节点}] {文件路径}:{具体改动描述}
[{节点}] {动作} {文件路径}({本条理由})
...
N. [{节点} review] 自动跑,失败自动 fix ≤2 轮
跳过:
确认执行?或需要调整?
用户确认
用户可:全盘确认 / 调整清单某条 / 改入口 / 取消。LLM 据反馈更新方案循环呈现,直到用户明确确认 → 进入阶段 3。
边界拒绝
若请求不在下文「级联 DAG」列出的节点范围内(e.g., 修改 config.md、story/arc.md、全局 story/outline.md),告知用户并结束:
此请求超出当前 edit skill 范围:{具体原因}。请手动修改 {建议位置},或使用 {建议工具/流程}。
阶段 3: 执行级联
规则
- 按 DAG 顺序遍历清单(上游 → 下游)
- 每个清单节点调用对应 skill(见下表)
- 传给下游 skill 的"修改意见"用方案中的具体描述,不是用户原始输入
- review 节点仅在同名节点本次有改动时触发
- review 失败(return
needs_revision M)→ 自动调对应 fix skill ≤2 轮 fix(fix skill 自动读 .review-{type}.md 最后一轮意见);2 轮 fix 后再 review 仍失败 → 记录到阶段 4 摘要并继续后续节点
- 不在清单中的节点跳过
config.md 图像模型 = none 时,images 节点跳过并在阶段 4 摘要中提示
- 某节点 skill 调用失败(非 review 失败)→ 该节点终止并中断后续级联(与 review 失败不同,review 失败仅记录继续),在阶段 4 摘要中报错
节点 → skill 对照
| 节点动作 | skill 调用 |
|---|
| 修 outline | 使用 Skill tool 调用 short-fix-outline skill,传递参数:ep01 "{修改意见}" |
| 写 script | 使用 Skill tool 调用 scriptwriter-script skill,传递参数:ep01 |
| 修 script | 使用 Skill tool 调用 scriptwriter-fix-script skill,传递参数:ep01 |
| review script | 使用 Skill tool 调用 director-review-script skill,传递参数:ep01 |
| Edit asset-list 清单 | 直接用 Edit 改 story/episodes/ep01/outline.md 的「本集资产清单」部分(依据方案中的新增/删除条目;不调用 director-keyframes,仅作为局部清单补漏;若改动来自关键帧编排变化应走 keyframes 节点) |
| 修 keyframes | 使用 Skill tool 调用 director-keyframes skill,传递参数:ep01 incremental |
| review keyframes 叙事 | 使用 Skill tool 调用 director-review-keyframes-narrative skill,传递参数:ep01 |
| 创建资产文件 | 使用 Skill tool 调用 creator-create-assets skill,传递参数:ep01 |
| 修资产文件 | 使用 Skill tool 调用 creator-fix-asset skill,传递参数:{资产文件路径} "{修改意见}" |
| 重生成关键帧 .md | 使用 Skill tool 调用 creator-keyframe-prompts skill,传递参数:ep01 incremental "{dirty list}" |
| 覆盖单张资产图(已知资产路径) | 使用 Skill tool 调用 creator-image-{config 图像模型} skill,传递参数:"{资产文件路径}" |
| 批量生成新增资产图 + 关键帧图 | 使用 Skill tool 调用 creator-generate-images skill,传递参数:ep01 |
| 修关键帧图(含 prompt 调整 + 重抽) | 使用 Skill tool 调用 creator-fix-keyframe-image skill,传递参数:ep01 |
| review keyframes 画面 | 使用 Skill tool 调用 director-review-keyframes-visual skill,传递参数:ep01 |
| 修 storyboard | 使用 Skill tool 调用 short-fix-storyboard skill,传递参数:ep01 |
| review storyboard | 使用 Skill tool 调用 short-review-storyboard skill,传递参数:ep01 |
阶段 4: 完成
输出摘要:
修改摘要
执行:
跳过: {节点列表}({跳过原因汇总})
提醒: 请检查{建议检查项}。
若 review 循环失败,追加:
- [!] {节点} review: 2 轮 fix 后仍有意见 — "{reviewer 最后反馈}"
若 config.md 图像模型 = none,追加:
- images 节点已跳过(
config.md 图像模型 = none)。请手动运行 /short-video config 配置图像模型后再用 /short-edit-story 触发图像生成。
级联 DAG 参考
outline(大纲)
↓
script(剧本) ← [若改动则 director-review-script + ≤2 轮 fix]
↓
keyframes(关键帧描述 + 资产清单) ← [若改动则 director-review-keyframes-narrative + ≤2 轮 fix]
↓
asset-list(资产清单,嵌在 outline.md;可独立 Edit 局部补漏)
↓
assets(资产 .md 文件)
↓
keyframe-mds(关键帧 .md:assets/keyframes/{ep}/)
↓
images(资产 .png 图片 + 关键帧 .png 图片) ← [keyframe 图变动则 director-review-keyframes-visual + ≤2 轮 creator-fix-keyframe-image]
↓
storyboard(分镜) ← [若改动则 short-review-storyboard + ≤2 轮 fix]
入口节点与下游候选
| 入口节点 | 最上游动作 | 下游候选(按需触发) |
|---|
| outline | short-fix-outline | scriptwriter-script → review+fix → keyframes → review+fix → create-assets → keyframe-prompts → images → keyframes-visual review+fix → storyboard → review+fix |
| script | scriptwriter-fix-script | review+fix → keyframes → review+fix → create-assets → keyframe-prompts → images → keyframes-visual review+fix → storyboard → review+fix |
| keyframes | director-keyframes incremental | review+fix → keyframe-prompts (incremental, dirty list) → images → keyframes-visual review+fix → storyboard → review+fix(若 keyframes 编排变化引入了新资产则同步触发 create-assets) |
| asset-list | 直接 Edit outline.md 清单 | create-assets → images |
| assets(文字变动) | creator-fix-asset | images → short-fix-storyboard(仅引用此资产的镜头)→ review+fix |
| keyframe-images(仅重生 + 审) | creator-fix-keyframe-image | keyframes-visual review(≤2 轮 fix loop 内置)→ short-fix-storyboard(仅引用此 keyframe 的镜头)→ review+fix |
| images(仅重生) | creator-image-{模型} | 无 |
| storyboard | short-fix-storyboard | review+fix |