SSkilltecabyclaudinhocode
Enviar skill
← Voltar para o catálogo

awesome-novel

Outros

和 AI 协作写小说的工作流系统。流程:一次设定→规划卷纲→逐章写作循环(章纲→提示词→验收→正文→验收→评审→归档→下一章)。适用场景:从零写新小说、导入已有小说。

123estrelas
Ver no GitHub ↗Autor: modoojunkoLicença: GPL-3.0

Novel — 小说创作工作流

和 AI 一起写小说。一次设定世界观/角色/写作风格 → 主线拆纲+卷纲展开逐章写作循环(章纲→提示词→提示词验收→正文→正文验收→评审→归档→下一章)

范围 Scope

做什么

  • 引导作者完成从设定到归档的完整写作流程
  • 检测当前项目进度并自动路由到对应子技能
  • 创建和维护项目文件结构(settings/、volumes/、chapters/、prompts/、archives/)
  • 管理章生命周期(outline → draft → archived)
  • 追踪角色状态和历史
  • 管理伏笔/钩子的生命周期
  • 检测 AI 味(疲劳词、句式违规)
  • 旧版 2.x 项目的自动迁移

不做什么

  • ❌ 不生成 git 操作(提交、推送、创建分支)
  • ❌ 不执行非小说领域的代码(不建网站、不写 API、不做数据分析)
  • ❌ 不修改项目目录外的文件
  • ❌ 不安装新包或修改系统配置
  • ❌ 不恢复已删除的文件
  • ❌ 不处理版本冲突(假设工作目录干净)

边界条件

  • 如果 story.md 不存在但 story.yaml 存在 → 分发到迁移子技能(非正常流程)
  • 如果 init.py 不可用 → 手动创建目录结构 + 复制模板(等幂操作)
  • 如果底层模型能力不足(如 DeepSeek TUI 显示质量问题)→ Phase 1-3 提示作者检查模型配置
  • 如果检测到未提交的 git 变更 → 提示作者先提交/stash,不自动操作
  • 如果 .agent/status.md 与文件系统状态不一致 → 以文件系统为准重新检测,更新 status.md
  • 如果是全新项目(无任何文件)→ 分发到 novel-setup

项目目录结构

Agent 在用户当前目录下创建/编辑以下文件:

{project-name}/
├── story.md              # ★ 必有:项目索引(元信息/引用路径/主线拆纲)
├── settings/
│   ├── world-setting.md  # 世界观(core: geography/politics/rules, extended: ...)
│   ├── writing-style.md  # 写作风格
│   ├── genre-setting.md  # 题材设定(satisfaction_types / pacing_rules / anti_cliches)
│   └── character-setting/
│       └── <id>.md       # ★ 每角色一个文件(状态历史 + 情绪弧线 追加写入)
├── volumes/
│   └── volume-{N}.md     # 卷纲(chapters_summary 占位章纲)
├── chapters/
│   └── vol-{N}-ch-{M}.md # ★ 章纲唯一存放处(memo + emotional_design + status)
├── prompts/
│   └── vol-{N}-ch-{M}-prompt.md  # ★ 章提示词(自动生成,可覆盖)
└── archives/
    ├── vol-{N}-ch-{M}-{slug}.draft.md  # 草稿(写作中)
    └── vol-{N}-ch-{M}-{slug}.md        # ★ 定稿(归档后去掉 -draft)

关键文件与不变约束:

  • chapters/vol-{N}-ch-{M}.md#status — ★ 进度标记。outline → draft → archived 驱动 Step 1 判断该做什么。归档时更新。
  • settings/character-setting/<id>.md → 状态历史 — ★ 角色状态的唯一记录。归档时追加,状态历史条目数必须等于该角色已归档章节数。
  • archives/vol-{N}-ch-{M}-{slug}.md — ★ 正文唯一存放处。文件名有 -draft = 未归档,没有 = 已归档。
  • volume-{N}.md#chapters_summary — 卷纲占位章纲,逐章讨论时详情写入 chapter.md。

约定:

  • chapters/ 只放章纲 md,不放正文
  • prompts/ 只放提示词 md,纯生成产物——可覆盖,不手动维护
  • archives/ 正文唯一存放处
  • settings/character-setting/ 每角色独立 md,追加写入不覆盖
  • volumes/ 卷纲 md,chapters_summary 只写占位章纲(逐章讨论时补充写入 chapter.md)

硬性自检协议(贯穿整个 Skill)

下面每个产出完成后,必须先自检 → 修复 → 再汇报/推进:

产出时效自检清单出处
世界观基础一次性,后续可追加references/world-setup-style.md
写作风格 + 题材设定一次性(基本不改)references/writing-style.md + references/genre-style.md
角色设定基础一次性,后续可追加references/character-setting-style.md
主线拆纲(story.md 故事主线 + 分卷规划)一次性(Phase 2 入口处)references/story-arc-style.md
卷纲(volume-N.md)每卷一次references/volume-setting-style.md
章纲(chapter.md)每章一次references/chapter-setting-style.md
提示词(prompt.md)每章一次references/prompt-setting-style.md
正文(archives/ 草稿)每章一次references/chapter-quality-checklist.md(正文验收,主流程独立执行)

自检方式(推荐用独立助手完成):

  1. 独立检查助手(推荐) — 开一个专门的检查助手,告诉它"产出文件路径 + 对应清单 + 关键信息",逐项核查后报告结论(哪几条 pass / 哪几条 fail + 证据 + 修改建议)
  2. 辅助助手 — 没有独立助手条件时,用辅助助手走同样流程
  3. 自己检查(兜底) — 上面两种都不行时,自己严格逐项核查——不允许目测一遍就放行

铁律: 拿到结论后先按不合格项把产出改完,再向用户汇报"做完了" + 自检结论 + 改了什么。直接拿原始结论汇报但不修复 = 违规。

各阶段文件读取指南

每个子步骤按"写什么文件 → 读什么参考 → 可选的参考阅读"来准备。读完一份,再看下一份。

子步骤写什么文件必读的参考参考阅读
1.1 新建项目项目骨架 + story.mdscripts/init.py(创建骨架)
1.2 题材选择+风格settings/genre-setting.md<br>settings/writing-style.md(预填)references/genre-style.md(选题指南+验收)references/genre-example/ 对应类型(配置参考)
1.3 世界观settings/world-setting.mdreferences/world-setup-style.md(引导讨论+自检)
1.4 角色settings/character-setting/<id>.md已有角色文件(追加时不覆盖)<br>references/character-setting-style.md(认知6层+自检)
2.0 主线拆纲story.md#story_arc(主线+分卷)references/story-arc-style.md(从结局倒推法)settings/world-setting.md core(冲突空间参考)<br>角色文件(按需看动机)
2.1 卷纲volumes/volume-{N}.md(章节列表)references/volume-setting-style.md(指南+自检)
3.1 章纲chapters/vol-{N}-ch-{M}.mdvolumes/volume-{N}.md#chapters_summary(卷纲给的本章方向)<br>references/chapter-setting-style.md(指南+自检)
3.2 提示词prompts/vol-{N}-ch-{M}-prompt.mdreferences/prompt-setting-style.md(提示词指南+模板)
3.2a 提示词验收(主流程独立执行)prompts/vol-{N}-ch-{M}-prompt.md(检查对象)references/prompt-setting-style.md Section 三(验收标准)
3.3 正文生成archives/vol-{N}-ch-{M}-*.draft.mdprompts/vol-{N}-ch-{M}-prompt.md(单一入口)skills/write/SKILL.md(SOP)
3.3a 正文验收(主流程独立执行)archives/vol-{N}-ch-{M}-*.draft.md(检查对象)references/chapter-quality-checklist.md(验收标准)
3.4 深度评审(可选)诊断报告(内存)skills/review/SKILL.md
3.5 归档archives/vol-{N}-ch-{M}-*.md(去 draft)<br>chapters/vol-{N}-ch-{M}.md(status→archived)<br>角色状态追加 + status.md 更新各角色文件(追加状态历史+情绪弧线)最近 3 章 chapters/(回顾最近章节)

条件分支指引(当 X 发生时读 Y)

正常流程走上面那张表。以下异常或边界场景需要额外读取:

场景读取目标目的
章节状态不连续(archived 跳至 outline)前 3 章 chapters/ 章纲 + archives/ 正文确认是否遗漏归档,判断是否需要补写
角色情绪弧线断层或状态异常该角色完整状态历史(settings/character-setting/<id>.md#state_history定位断层原因,恢复一致性
本卷完成时规划下一卷下一卷 volume.md + story.md#story_arc确认下一卷方向和主线位置
新会话恢复(/new 后).agent/status.md + 最新 volume.md + 角色文件重建上下文,确定当前进度
正文验收失败chapter.md(章纲设定)+ prompt.md(提示词意图)判断是执行偏差还是设定偏差
提示词验收不通过chapter.md emotional_design + memo判断提示词是否偏离章纲意图
作者说"看看进度".agent/status.md + chapters/ 所有章状态汇总今进度汇报
深度评审发现角色行为不一致该角色所有已归档章的状态历史 + 情绪弧线定位行为断层的起始点

错误恢复

本技能执行过程中如果某一步失败:

  1. 自动重试(最多 3 次) — 每次换一种方式重试。例如 subagent 超时 → 减少并发数重试;文件写入冲突 → 换文件名重试
  2. 重试耗尽 → 降级 — 跳过失败步骤,继续后续步骤,在最终汇报中标记失败项
  3. 关键步骤失败(骨架创建、状态文件写入)→ 立即上报作者,描述失败现象 + 已尝试的方法 + 建议的手动修复方案

常见失败场景与恢复策略

失败场景恢复策略
init.py 不可用或报错手动创建目录结构 + 复制模板文件(scripts/templates/ 下各 .template → 对应路径去 .template)
subagent 超时(正文写作)主 Agent 直接写,降级不退费
文件被占用/锁定等 5 秒重试,最多 3 次。仍失败 → 报作者手动关闭
网络错误(WebSearch)重试 1 次。仍失败 → 跳过,标记"网络不可用"
检测到未提交的 git 变更提示作者先提交或 stash,不自动操作
章节状态不连续(archived 后接 outline 间隔)报作者"第 N 章未归档,是否跳过?"

工具契约

工具允许禁止
Bash执行 init.py 创建骨架;文件列表扫描(ls);版本检测(grep);状态文件写入安装新包;修改系统配置;git 提交/推送/分支操作
Read读 story.md、.agent/status.md;读子 skill SKILL.md;读 references/ 指南文件读项目文件(settings/、chapters/、volumes/、archives/ 等)——应由子 skill 代为读写
Write/Edit写 .agent/status.md;写入检测后的状态结果写项目文件(settings/、chapters/、volumes/、prompts/、archives/ 等)——应由子 skill 执行
Agent启动子 skill(setup/outline/chapter/prompt/write/review/archive/migrate)跳过 dispatch 直接操作项目文件;给 subagent 传递主 Agent 未读取的文件路径
WebSearch作者明确要求导入/分析参考作品时查风格自行判断需要搜索而不经作者确认

分发原则: 主 Agent 只负责状态检测 + dispatch。实际的项目文件操作(读设定、写章纲、生成提示词、写正文等)全部通过对应子 skill 执行。

主 Agent 禁止行为

主 Agent 在执行本技能时,禁止以下行为:

  • 禁止自行判断"不需要 dispatch" — 检测到状态后必须按信号表分发到对应子 skill,不可跳过
  • 禁止直接读写项目文件(status.md 除外) — 项目文件(settings/、chapters/、volumes/、archives/ 等)的读写必须通过子 skill 执行,不可主 Agent 直接操作

违反处理: 违反以上任意一条 → 立即上报作者,描述违反内容,不自行修复后再报告。

生命周期 Lifecycle

Start(开始时)

  1. .agent/status.md(如果存在)→ 确认当前进度和 migrated 标志
  2. story.md → 判断走哪个分支(迁移 / 正常流程 / 新项目)
  3. 如是新项目 → 读 skills/setup/SKILL.md 开始初始化

End(结束时)

每个子技能执行完毕后,主 Agent 必须:

  1. 写回状态 — 用 Write 把最新检测结果写入 .agent/status.md
  2. 角色状态追加 — 如刚完成归档,必须用 Edit 在对应角色文件追加状态历史
  3. 汇报路由 — 告诉用户"回到主流程,当前状态:X,下一步:Y"

跨会话恢复

用户说"继续写小说"或触发技能时:

  1. .agent/status.md → 获取 current_phase / current_volume / current_chapter
  2. 读对应 chapter.md + volume.md → 恢复上下文
  3. 从 Step 1 信号表继续路由

工作机制:状态驱动循环

主 SKILL.md 和子 skill 之间没有显式"调用"。整个系统是一个状态驱动循环

Step 1(检测状态)→ 匹配路由 → Read 子 skill → 子 skill 改状态 → 回到 Step 1(重新检测)

通信方式: 不传递消息或参数。主 skill 写 chapter.md#status + .agent/status.md,子 skill 读这些文件来知道"当前在做什么阶段"。

  • 主 skill Step 1 检测 chapters/ 下的状态 → 匹配到对应子 skill
  • 主 skill Step 2.3 读子 skill 的 SKILL.md,Agent 直接执行里面的步骤
  • 子 skill 修改 chapter.md#status 和产出文件,末尾写"回到主流程"
  • Agent 读"回到主流程"后,重新从 Step 1 开始,检

Como adicionar

/plugin marketplace add modoojunko/awesome-novel-skill

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Comentários · Nenhum comentário

Entre para comentar. Entrar

  • Ainda não há comentários. Seja o primeiro.