shaomang/mtnode-aio/novel-to-video-preproduction
Claude Code and agent skill by shaomang/mtnode-aio
Trust tier 3
- community
- By shaomang
- Media
- shaomang/mtnode-aio
- ext-repo/skills/novel-to-video-preproduction/SKILL.md
- Updated 5 Oct 2026
- Version 1.0.01 version recorded
Source check pending
Checking that the SKILL.md file is still in the repository.
使用多Agent协作,从长篇小说中完整提取人物、组织、场景、道具、事件、任务和剧情,生成剧情大纲、视频素材清单与可拍摄分镜,并通过覆盖率审计防止遗漏。
Install
npx vskill@latest install shaomang/mtnode-aio/novel-to-video-preproductionSKILL.md
小说视频素材与分镜拆解
用户提供完整小说正文(不得只给摘要或节选)时启用。按下方规范用多 Agent 协作完成提取、大纲、素材清单与分镜。最终只输出一份合法 YAML 1.2 文档:无 Markdown 围栏、无注释、无前言结语。覆盖率未达 100% 时 status 必须为 blocked。
默认:语言 zh-CN,execution_mode: multi_agent,final_output_format: yaml,片幅 16:9,风格「电影级写实」,单镜默认 4 秒。缺省输入见规范 inputs.optional。
yaml
version: "1.0.0"skill:name: "novel_to_video_preproduction"display_name: "长篇小说视频素材与分镜拆解"description: "使用多Agent协作,从长篇小说中完整提取人物、组织、场景、道具、事件、任务和剧情,生成剧情大纲、视频素材清单与可拍摄分镜,并通过覆盖率审计防止遗漏。"language: "zh-CN"execution_mode: "multi_agent"final_output_format: "yaml"objectives:- "建立覆盖全部显性人物、隐性人物、群体角色、动物、非人角色和被提及角色的人物档案。"- "建立覆盖全部地点、子地点、时间状态、天气状态和特殊空间的场景档案。"- "提取全部事件、行动、任务、冲突、线索、伏笔、揭示、转折和因果关系。"- "将完整剧情整理为卷、章、幕、序列、场次和剧情节拍大纲。"- "把全部可视化剧情节拍转换为可拍摄或可生成的视频分镜。"- "生成角色、场景、服装、道具、特效、声音和镜头制作素材清单。"- "为每项提取结果保留可追溯的原文定位。"- "只有在覆盖率审计通过后才允许输出completed状态。"invocation:trigger_examples:- "分析这部长篇小说并生成视频制作素材和完整分镜。"- "提取小说全部人物、场景、剧情大纲与镜头脚本。"- "将小说转换为严格YAML格式的视频前期制作文档。"inputs:required:novel_text:type: "string"description: "完整小说正文。不得只提供摘要或节选。"optional:title:type: "string"default: "未命名小说"source_id:type: "string"default: "source_001"chapter_pattern:type: "string"default: "自动识别"target_video_style:type: "string"default: "电影级写实"target_aspect_ratio:type: "string"default: "16:9"target_episode_duration_seconds:type: "integer"default: 0description: "0表示不限制,由剧情长度决定。"target_shot_duration_seconds:type: "number"default: 4.0content_rating:type: "string"default: "保持原著尺度"chunk_max_chars:type: "integer"default: 18000chunk_overlap_chars:type: "integer"default: 1200generate_visual_prompts:type: "boolean"default: truegenerate_negative_prompts:type: "boolean"default: truenon_negotiable_rules:- "不得将未读到的内容推断为原著事实。"- "不得为了缩短输出而合并具有不同身份、行为、时空、因果或叙事作用的条目。"- "不得遗漏无姓名人物、群体人物、传闻人物、梦中人物、回忆人物、尸体、动物、怪物、人工智能和其他具有叙事作用的实体。"- "同一人物的别名必须归并,但身份尚未确认时必须保留独立实体并记录可能关联。"- "不得遗漏主场景、子场景、过渡场景、梦境、回忆、幻觉、通信空间、画外空间和被叙述的重要地点。"- "不得遗漏对白中提到但未直接演出的关键事件、任务、人物和地点。"- "不得遗漏失败行动、中断行动、未完成任务、支线任务和结果未知的任务。"- "每个人物、场景、事件、剧情节拍和分镜都必须包含source_refs。"- "分镜不得改变原著事件顺序,除非明确标记为改编建议。"- "事实与推断必须分离;推断内容必须标记confidence和evidence。"- "无法确认的信息使用null、unknown或空数组,不得编造。"- "最终结果必须是单一合法YAML文档,不得使用Markdown代码围栏。"- "最终YAML不得包含注释、制表符、锚点、别名节点或自定义标签。"- "若原文覆盖率未达到100%,status必须为blocked,并输出全部缺口,不得声称处理完成。"id_conventions:source_segment: "SRC-000001"chapter: "CH-0001"character: "CHAR-0001"faction: "FAC-0001"location: "LOC-0001"scene: "SCN-000001"event: "EVT-000001"task: "TASK-000001"clue: "CLUE-000001"plot_beat: "BEAT-000001"outline_node: "OUT-000001"shot: "SHOT-000001"asset: "ASSET-000001"continuity_issue: "CONT-0001"omission_gap: "GAP-0001"agents:coordinator:role: "总控与流程编排Agent"responsibilities:- "验证输入是否包含完整正文。"- "执行章节识别、文本切片和任务分发。"- "维护全局ID、实体注册表和版本。"- "协调冲突消解、合并、复查和最终输出。"- "在任一审计未通过时阻止completed输出。"source_indexer:role: "原文索引Agent"responsibilities:- "识别卷、章、节、段落和句子边界。"- "将正文切分为可追溯的source_segments。"- "为每个片段记录字符范围、章节、段落和首尾锚点。"- "标记正文、标题、题记、书信、日记、梦境、回忆和附录等文本类型。"narrative_unit_extractor:role: "最小叙事单元提取Agent"responsibilities:- "逐片段拆分最小叙事单元。"- "记录人物出现、行为、状态变化、对白、地点、时间和因果。"- "为每个原文片段建立coverage_ledger。"- "即使内容无法形成镜头,也必须记录为非视觉叙事单元。"character_agent:role: "人物与组织设定Agent"responsibilities:- "提取全部人物、别名、称谓、身份和关系。"- "提取外貌、年龄阶段、体型、服装、声音、习惯、能力和心理特征。"- "区分原文明确事实、上下文推断和未知信息。"- "跟踪人物在不同时间点的造型、伤势、装备和立场变化。"- "建立组织、阵营、家族、群体和隶属关系。"scene_agent:role: "场景与环境设定Agent"responsibilities:- "提取全部地点及其层级关系。"- "记录时代、日期、时段、季节、天气、光线和环境状态。"- "记录布局、入口、出口、地标、可交互物和空间连续性。"- "同一地点在不同时间或破坏状态下建立scene_variants。"plot_agent:role: "剧情、事件与任务Agent"responsibilities:- "提取所有事件、行动、目标、任务、冲突、阻碍、结果和后果。"- "构建事件时间线、叙事顺序和真实时间顺序。"- "提取伏笔、线索、秘密、揭示、回收和未解决问题。"- "建立事件之间的因果、触发、依赖、对照和并行关系。"- "生成不省略支线的分层剧情大纲。"storyboard_agent:role: "分镜拆解Agent"responsibilities:- "将每个可视化剧情节拍拆分为一个或多个镜头。"- "保留动作、对白、旁白、情绪、空间关系和关键反应。"- "为镜头指定景别、角度、机位、运动、构图、时长和转场。"- "关联人物、场景、服装、道具、特效和声音素材。"- "不得用蒙太奇替代关键情节,除非每个被压缩事件均有独立镜头记录。"asset_agent:role: "视频素材规划Agent"responsibilities:- "生成人物定妆、表情、服装和姿态素材需求。"- "生成场景建立镜头、环境细节和状态变体素材需求。"- "生成道具、载具、武器、动物、特效、字幕和图形素材需求。"- "生成图像或视频模型可使用的正向提示词和负向提示词。"- "维护跨镜头视觉一致性锚点。"continuity_agent:role: "连续性检查Agent"responsibilities:- "检查人物位置、服装、伤势、道具和时间连续性。"- "检查场景方向、视线、轴线、光线和天气连续性。"- "检查事件前置条件和因果关系。"- "记录原著自身矛盾,不得擅自修正。"coverage_auditor:role: "零遗漏审计Agent"responsibilities:- "逐source_segment核对是否已被叙事单元覆盖。"- "逐叙事单元核对是否已映射到事件、人物、场景或非视觉说明。"- "逐事件核对是否已进入大纲。"- "逐可视化剧情节拍核对是否已进入分镜。"- "检查所有引用ID是否存在且无悬空引用。"- "计算覆盖率并生成遗漏缺口。"workflow:- step: 1name: "输入验证"agent: "coordinator"actions:- "检查正文是否为空、截断或仅为摘要。"- "记录输入哈希和字符总数。"- "正文疑似不完整时标记blocked。"- step: 2name: "章节识别与原文索引"agent: "source_indexer"actions:- "按卷、章、节、段落建立层级索引。"- "按chunk_max_chars切片,并使用chunk_overlap_chars保留上下文。"- "重叠文本只计一次覆盖率。"- "生成不可变source_segment ID。"- step: 3name: "第一轮逐片段提取"agents:- "narrative_unit_extractor"- "character_agent"- "scene_agent"- "plot_agent"execution: "parallel"actions:- "逐片段提取,不允许只依据章节摘要。"- "所有结果携带source_refs。"- "记录跨片段待消解实体。"- step: 4name: "全局实体归并"agent: "coordinator"actions:- "依据姓名、别名、关系、行为和时间上下文归并实体。"- "保留全部原始提及记录。"- "身份不确定时使用possible_same_as,不得强行合并。"- step: 5name: "第二轮反向复查"agents:- "character_agent"- "scene_agent"- "plot_agent"execution: "parallel"actions:- "从人物注册表反查全部出场片段。"- "从场景注册表反查全部地点提及。"- "从事件时间线反查行动、对白、任务和结果。"- "补充第一轮遗漏并记录修订来源。"- step: 6name: "完整剧情大纲"agent: "plot_agent"actions:- "按卷、章、幕、序列、场次和剧情节拍生成大纲。"- "同时保留叙事顺序与故事真实时间顺序。"- "为每个剧情节拍关联事件、人物、场景、任务和线索。"- step: 7name: "分镜拆解"agent: "storyboard_agent"actions:- "逐剧情节拍生成镜头。"- "关键动作、关键对白、重要反应和结果分别落镜。"- "纯心理或说明性内容使用旁白、视觉隐喻或明确的不可视化标记。"- "每个镜头至少关联一个plot_beat_id和一个source_ref。"- step: 8name: "素材清单生成"agent: "asset_agent"actions:- "从人物、场景和分镜反向汇总全部素材。"- "为变装、年龄变化、伤势变化和场景状态变化建立独立变体。"- "生成视觉一致性锚点和模型提示词。"- step: 9name: "连续性审计"agent: "continuity_agent"actions:- "检查所有镜头和事件的时间、空间及状态连续性。"- "将原著矛盾与拆解错误分开记录。"- step: 10name: "覆盖率审计"agent: "coverage_auditor"actions:- "计算原文片段覆盖率。"- "计算人物提及覆盖率。"- "计算场景提及覆盖率。"- "计算事件进入大纲的覆盖率。"- "计算可视化剧情节拍进入分镜的覆盖率。"- "检查孤立ID、重复ID和无来源条目。"- step: 11name: "最终YAML输出"agent: "coordinator"actions:- "仅输出符合final_output_schema的YAML。"- "审计全部通过时status设为completed。"- "存在任何缺口时status设为blocked,并列出omission_gaps。"extraction_policy:source_reference_required_fields:- "source_id"- "chapter_id"- "segment_id"- "paragraph_index"- "start_char"- "end_char"- "quote"quote_policy:max_quote_chars: 160description: "引用用于定位,不替代结构化提取。"confidence_levels:explicit: "原文明示。"strongly_implied: "由多个明确证据强烈支持。"inferred: "合理推断但未被原文确认。"unknown: "无法判断。"adaptation_policy:preserve_original_facts: trueseparate_adaptation_suggestions: trueallow_unmarked_invention: falsecompletion_gates:source_segment_coverage: 1.0narrative_unit_classification_coverage: 1.0character_mention_coverage: 1.0location_mention_coverage: 1.0event_outline_coverage: 1.0visual_beat_storyboard_coverage: 1.0dangling_reference_count: 0duplicate_primary_id_count: 0unresolved_omission_gap_count: 0rule: "任一指标未达标时,最终status必须为blocked。"final_output_rules:- "输出必须能被YAML 1.2解析器直接解析。"- "顶层只能存在final_output_schema定义的字段。"- "所有字段名使用snake_case。"- "ID必须使用id_conventions规定的格式。"- "未知标量使用null,不得使用含糊占位文本。"- "无数据的集合使用[]或{}。"- "多行文本使用YAML块标量。"- "字符串中的特殊字符必须正确转义。"- "不得输出Markdown、解释文字、前言或结语。"final_output_schema:meta:required_fields:- "schema_version"- "status"- "title"- "source_id"- "source_hash"- "language"- "generated_at"- "target_video_style"- "target_aspect_ratio"status_values:- "completed"- "blocked"source_index:item_fields:- "segment_id"- "chapter_id"- "section_path"- "text_type"- "paragraph_index"- "start_char"- "end_char"- "text_hash"- "coverage_status"characters:item_fields:- "character_id"- "canonical_name"- "aliases"- "entity_type"- "narrative_importance"- "identity"- "age"- "gender"- "appearance"- "body_features"- "voice"- "personality"- "motivation"- "abilities"- "weaknesses"- "relationships"- "faction_ids"- "costume_variants"- "state_timeline"- "first_appearance"- "last_appearance"- "possible_same_as"- "visual_consistency_anchors"- "facts"- "inferences"- "source_refs"factions:item_fields:- "faction_id"- "name"- "aliases"- "type"- "purpose"- "members"- "hierarchy"- "relationships"- "visual_identity"- "source_refs"locations:item_fields:- "location_id"- "name"- "aliases"- "parent_location_id"- "location_type"- "era"- "geography"- "layout"- "entrances"- "exits"- "landmarks"- "lighting"- "weather"- "ambient_details"- "interactive_objects"- "scene_variants"- "visual_consistency_anchors"- "source_refs"props:item_fields:- "asset_id"- "name"- "type"- "owner_character_ids"- "description"- "state_timeline"- "plot_function"- "visual_consistency_anchors"- "source_refs"events:item_fields:- "event_id"- "title"- "event_type"- "narrative_order"- "chronological_order"- "summary"- "participant_character_ids"- "location_ids"- "trigger_event_ids"- "prerequisite_event_ids"- "actions"- "conflicts"- "outcome"- "consequence_event_ids"- "task_ids"- "clue_ids"- "source_refs"
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingext-repo/skills/novel-to-video-preproduction/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/shaomang/mtnode-aio/novel-to-video-preproduction)Something wrong with this skill or its page? Tell us.