by modoojunko
让 AI agent成为你的小说创作搭档。从世界观搭建到角色塑造,从章节规划到正文写作,一步步陪你完成整部小说。
# Add to your Claude Code skills
git clone https://github.com/modoojunko/awesome-novel-skillGuides for using ai agents skills like awesome-novel-skill.
Last scanned: 6/8/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-06-08T08:55:37.864Z",
"npmAuditRan": true,
"pipAuditRan": true
}No comments yet. Be the first to share your thoughts!
30 days in the Featured rail · terms & refunds
和 AI 一起写小说。本 skill 负责项目状态检测、新项目初始化、旧版项目自动迁移,完成后将控制权交给 novel-agent。
检测项目状态
├─ story.yaml 存在 → 旧版 2.x → 执行自动迁移(见下文)
├─ story.md 不存在 → 询问作者是否初始化 → 是则执行 init.py
│ └─ python tools/init.py [project-path] [--genre <编号>] → 完成后 @novel-agent
└─ story.md 存在 → 已有项目 → @novel-agent 继续写作
强制规则:
story.md 不存在时,先询问作者是否要在此目录创建小说项目,确认后再运行 init.pyinit.pyinit.py,禁止手动创建目录结构替代skills/awesome-novel 路径)内运行 init.py — 此目录是技能仓库,不是小说项目init.py 执行完毕后,确认 .agent/status.md 和 .claude/agents/ 已生成,方可进入 @novel-agentinit.py 报错,必须先修复问题重新执行,不允许绕过全新项目先询问作者是否初始化,确认后运行 init.py(项目路径可选,默认当前目录):
python tools/init.py [project-path] [--genre <编号>]
禁止以任何理由跳过 init.py: 手动创建目录、复制模板、直接调用 agent 都属于违规行为。init.py 是初始化入口,必须执行且完整运行。
init.py 会:
.claude/agents/.claude/knowledge/.claude/knowledge/.claude/memory/*.md).claude/knowledge/permanent-memory.md).agent/status.md以上 9 步全部由 init.py 自动完成,AI 无需也不应手动干预。
检查: 运行后确认 .agent/status.md 存在且内容正确,方可进入 @novel-agent。
init.py 完成后进入 @novel-agent,此时 phase=setup,按以下流程:
.agent/task/setting-update-order.mdsettings/world-setting.md、settings/genre-setting.md、settings/character-setting/*.md 等设定文件权限规则: novel-agent 不得直接写 settings/ 下的文件,设定写入必须通过 updater 的 setting-update 模式完成。
检测到 story.yaml 存在时,按以下流程自动迁移:
扫描项目目录,给作者看三张清单:
文件清单:
.md 文件数量status: archived 的章节数量status != archived 的章节列表废弃清理(直接丢弃):
author-intent.md、current-focus.mddrafts/、drifts/、tmp/、temp-*.txtmanuscripts/、.vscode/作者确认后继续。
mkdir -p old
mv story.yaml settings/ volumes/ chapters/ archives/ prompts/ old/
rm -rf drafts/ drifts/ tmp/ manuscripts/ .vscode/ author-intent.md current-focus.md
python tools/init.py [project-path] [--genre <编号>]
init.py 创建目录结构 + 空模板 + agent 定义 + 记忆/知识库。后续迁移步骤负责填数据。
对照 templates/migration/migration-spec.md 的字段映射表,按优先级逐文件转换:
| 优先级 | 旧文件 → 新文件 | 参考模板 |
|---|---|---|
| P0 | old/settings/character-setting/*.yaml → settings/character-setting/*.md |
templates/migration/character.md.template |
| P1 | old/story.yaml + old/volumes/*.yaml → story.md |
templates/migration/story.md.template |
| P2 | old/volumes/*.yaml → volumes/volume-{N}.md |
templates/migration/volume.md.template |
| P3 | old/chapters/*.yaml(archived)→ chapters/vol-{N}-ch-{M}.md |
templates/migration/chapter.md.template |
| P4 | old/settings/world-setting.yaml → settings/world-setting.md |
templates/migration/world-setting.md.template |
| P5 | old/settings/writing-style.yaml → settings/writing-style.md |
templates/migration/writing-style.md.template |
| P6 | old/settings/anti-ai.yaml → settings/anti-ai.md |
templates/migration/anti-ai.md.template |
| P7 | old/settings/hooks.yaml → settings/foreshadowing.md |
templates/migration/foreshadowing.md.template |
| P8 | 无旧源 → settings/genre-setting.md |
templates/migration/genre-setting.md.template |
字段映射细节在 templates/migration/migration-spec.md 中有完整定义。
只拷贝已定稿的正文(非 .draft.md),提示词全部复制:
# 正文:只拷定稿(跳过 draft)
for f in old/archives/*.md; do
[ -f "$f" ] || continue
case "$f" in *.draft.md) ;; *) cp "$f" archives/ ;; esac
done
cp old/prompts/*.md prompts/ 2>/dev/null
cp old/prompts/*.txt prompts/ 2>/dev/null
正文不做任何修改。
迁移完成后,调度 @novel-agent,由其执行:
old/ 目录。| 场景 | 处理 |
|---|---|
story.yaml 存在 → story.md 不存在 |
旧版 2.x → 执行自动迁移流程 |
story.md 存在但 skill_version < 4.0 |
待升级 → 执行自动迁移流程 |
story.md 存在且版本匹配 |
已有项目 → @novel-agent |
| 两者都不存在 | 全新项目 → init.py → @novel-agent |
init.py 不可用 |
手动创建目录结构 + 复制 templates/ 文件 |
| 检测到未提交的 git 变更 | 提示作者先提交/stash |
{project-name}/
├── story.md # ★ 项目索引
├── settings/
│ ├── world-setting.md # 世界观
│ ├── writing-style.md # 写作风格
│ ├── genre-setting.md # 题材设定
│ └── character-setting/
│ └── <id>.md # 每角色一个文件
├── volumes/
│ └── volume-{N}.md # 卷纲
├── chapters/
│ └── vol-{N}-ch-{M}.md # ★ 章纲(status: outline → draft → archived)
├── prompts/
│ └── vol-{N}-ch-{M}-prompt.md # 提示词
├── archives/
│ ├── *.draft.md # 草稿
│ └── *.md # 定稿
├── .agent/
│ ├── status.md # 进度追踪
│ └── task/ # agent 间 order 文件
└── .claude/
├── agents/ # Agent 定义
├── knowledge/ # 反 AI 规则、文风偏好、永久记忆、格式规范
└── memory/ # 写作动态记忆
novel-agent(总指挥)
├─ 新项目 → 调度 volume-planner(规划卷纲)
├─ 卷纲就绪 → 调度 chapter-planner(生成章纲)
├─ 章纲就绪 → 调度 prompt-crafter(组装提示词)
├─ 提示词就绪 → 调度 writer(写正文)
├─ 正文就绪 → 可选调度 reader(深度评审)
└─ 作者确认 → 调度 updater(归档 + lore-keeping)
各 agent 定义在 agents/,skill SOP 在 skills/。agent 间通过 .agent/task/*-order.md 文件通信。
调度规则: novel-agent 是唯一调度者,只写 order 文件 + 调用子 agent。所有内容创作(卷纲/章纲/提示词/正文)、设定维护、归档更新均由子 agent 完成,novel-agent 不得越权代劳。子 agent 完成任务后清理 order 文件,novel-agent 检测到清理即确认完成。
重要:novel-agent 是顶层入口,通过 @novel-agent 加载进主 agent,禁止通过 Agent 工具将 novel-agent 作为 subagent 调度。 主 agent 加载 novel-agent 定义后即扮演总指挥角色,拥有完整的 Agent 工具权限来调度子 agent。如果 novel-agent 被作为 subagent 派出,它将失去 Agent 工具调用能力,导致调度链断裂。
| 工具 | 用途 | 谁用 |
|---|---|---|
| Bash | 执行 init.py;迁移备份/拷贝命令;版本检测 | skill 入口(非 agent) |
| Read | 检测项目文件、读取设定/状态 | 所有 agent |
| Write | 写 order 文件(novel-agent);写设定/记忆/知识(子 agent) | 各 agent 按权限 |
| Agent | novel-agent 调用子 agent | novel-agent 专用 |
| Edit | 写 settings/、.claude/ 下的内容文件 | 子 agent(非 novel-agent) |
| Glob | 扫描文件 | 所有 agent |
| Grep | 搜索内容 | 所有 agent |
个人使用免费 — 本 Skill 对个人用户完全免费。 商业使用 — 请联系作者获取授权。
让 AI 成为你的小说创作搭档,从世界观搭建到角色塑造,从章节规划到正文写作,一步步陪你完成整部小说。
复制下面这行命令,在终端里粘贴执行:
git clone https://github.com/modoojunko/awesome-novel-skill.git && cd awesome-novel-skill && ./install.sh claude-code
如果上面那行不行,手动来:
git clone https://github.com/modoojunko/awesome-novel-skill.git
cd awesome-novel-skill
mkdir -p ~/.claude/skills/awesome-novel
cp -r agents ~/.claude/skills/awesome-novel/
cp -r skills ~/.claude/skills/awesome-novel/
cp -r templates ~/.claude/skills/awesome-novel/
cp -r knowledge ~/.claude/skills/awesome-novel/
cp -r memory ~/.claude/skills/awesome-novel/
cp -r tools ~/.claude/skills/awesome-novel/
cp SKILL.md ~/.claude/skills/awesome-novel/
echo "安装完成!"
看到 "安装完成" 就可以了。
看到这个项目觉得有用? 顺手点个 Star,这样它会出现在你的 GitHub 首页,让更多人发现。 {: .prompt-info }
安装后,打开终端,在你想放小说项目的目录下启动你的 AI 工具,然后说一句:
帮我写本小说
系统会自动加载写作流程。后续再进入该项目时,说 @novel-agent 或 "帮我继续写" 就能从中断处恢复。
Agent 会引导你完成后续步骤。系统由 7 个 AI Agent 协作驱动,自动检测进度、调度任务,你只需确认方向和审阅内容。
novel-agent(总指挥 — 顶层入口,由 @novel-agent 加载)
├─ setup 阶段 → 调度 updater(设定写入)
├─ outline 阶段 → 调度 volume-planner(卷纲)→ chapter-planner(章纲)
├─ draft 阶段 → 调度 prompt-crafter(提示词)→ writer(正文)
├─ review 阶段 → 调度 reader(深度评审,可选)
└─ archive 阶段 → 调度 updater(归档 + lore-keeping)
novel-agent 只负责调度和验证,不直接写内容。子 agent 各司其职,完成后清理任务标记。
第一次写小说时,Agent 会和你聊这几个方面。不用一次性想好全部,想不到的跳过,后面随时补:
设定聊完后,Agent 会在当前目录下创建你的小说项目,结构如下:
{你的小说文件夹}/
├── story.md # 项目总索引(元信息/主线/卷规划)
├── CLAUDE.md # 项目级 CLAUDE.md(tools 白名单)
├── settings/ # 设定文件
│ ├── world-setting.md # 世界观
│ ├── writing-style.md # 写作风格
│ ├── genre-setting.md # 题材设定
│ ├── timeline.md # 时间线
│ └── character-setting/ # 角色档案
│ └── <id>.md # 每角色一个文件
├── volumes/ # 卷纲(情绪走向/冲突阶梯/信息差/场景卡)
├── chapters/ # 章纲
├── prompts/ # 提示词
├── archives/ # 正文(定稿)
├── .agent/ # Agent 进度 + 任务通信
│ ├── status.md # 进度标记(phase/volume/chapter)
│ └── task/ # 子 agent 间 order 文件
└── .claude/ # Agent 定义 + 知识库 + 写作记忆
├── agents/ # 7 个 Agent 定义(初始化时部署)
├── knowledge/ # 格式规范、反 AI 规则、文风偏好、永久记忆
└── memory/ # 写作动态记忆(各环节作者反馈)
├── volume-memory.md
├── chapter-memory.md
├── prompt-memory.md
└── writing-memory.md
这些全是纯文本 Markdown 文件,你可以直接用编辑器打开看或手动改。
设定聊完后,Agent 帮你规划整体故事结构。规划分四个维度同时推进:
不知道结局? 告诉 Agent"我只知道开头",它照样帮你规划第一卷。
多 Agent 协作自动推进,novel-agent(总指挥)按进度调度子 agent,你只需审阅和决策:
| 步骤 | 负责 Agent | 做什么 |
|---|---|---|
| ① 章纲 | chapter-planner | (由 novel-agent 调度)继承卷的情绪走向/冲突阶梯/信息差位置,设计章内微弧线、小冲突阶梯和信息差动态变化,拆成场景卡。你看完后说"可以"或"改一下" |
| ② 提示词 | prompt-crafter | (由 novel-agent 调度)根据章纲、反 AI 规则和文风偏好,组装 9 层纯净提示词 |
| ③ 写正文 | writer | (由 novel-agent 调度)按提示词写完整一章,自动净化 AI 腔 |
| ④ 审阅 | reader(可选) | (由 novel-agent 调度)10 维 60+ 细项深度评审,对照章纲/设定/前文逐条诊断 |
| ⑤ 归档 | updater | (由 novel-agent 调度)你确认后归档定稿,自动更新角色状态、追加情绪弧线、合并文风偏好、检测钩子健康和卷边界 |
调度规则: @novel-agent 是顶层入口,由主 AI 加载后扮演总指挥角色。novel-agent 通过 Agent 工具调度子 agent,不直接代劳写作任务。子 agent 完成后清理任务标记,novel-agent 检测到后自动推进下一阶段。
第一章写完后,Agent 会问"下一章继续吗?"
.claude/knowledge/permanent-memory.md),越写越懂你| 你说 | AI 做什么 |
|---|---|
| "帮我写本小说" | 首次加载技能 + 创建项目 + 设定讨论 |
| "@novel-agent" 或 "帮我继续写" | 进入 / 恢复写作循环 |
| "写下一章" | 开始写最新一章 |
| "改一下第 X 段" | 修改指定段落 |
| "这章写完了" 或 "归档" | 确认本章完成 |
| "看看进度" | 查看当前写了多少 |
| "导入这本小说" | 导入已有草稿继续写 |
| "迁移项目" | 从旧版自动迁移到 4.0 格式 |
| "solo" 或 "你全权写" | 进入全自动模式,不打断你确认 |
| 模式 | 触发词 | 行为 |
|---|---|---|
| 步步确认(默认) | — | 每做一步都等你点头才继续 |
| 全部授权 | "你全权决定" | 流程节点还在,Agent 代按确认,不经你手 |
随时可以切换,跟 Agent 说一声就行。
不想从头设定写作风格?Agent 在一次性设定阶段就会问你用不用预置风格。项目内置 24 套题材档案,每套包含角色人设倾向、叙事语气和章节提示词模板。涵盖仙侠、都市、悬疑、历史、科幻末世、西方奇幻等主流类型。
Q: 我不会编程,能装吗?
能。上面那几行命令复制粘贴到终端,回车就行。唯一的前提是你的电脑上已经装好了 Claude Code。
Q: 我升级了技能,之前写的小说项目怎么迁移到新格式?
升级后首次在当前项目目录启动时,Agent 会自动检测旧版格式,引导你完成迁移。核心逻辑:旧文件整体挪到 old/ 目录保留备份,在原地初始化新项目骨架,再逐字段将旧版设定转换到新版格式。已归档的正文直接拷贝,正在写的不迁移。确认迁移无误后可手动删除 old/ 目录。
Q: 写到一半可以改设定吗?
可以。随时跟 Agent 说"改一下世界观里的 XXX"或"这个角色的性格我想调整",它会帮你更新。
Q: 生成的文字有 AI 味怎么办?
默认配置就是"低 AI 味"——禁止了常见机器腔句式、写完后自动检测。动态记忆系统会记录你如何修改 AI 原文,提炼为你的专属规则,后续自动规避。
Q: 可以用自己的写作风格吗?
可以。项目创建后有专门的写作风格文件,你可以把自己的偏好写进去,后面所有章节都会按这个风格来。
本项目部分设计受到 InkOS 的启发——包括 AI 味检测体系、伏笔/钩子追踪、题材配置和分层技法模型。感谢 @Narcooo 的优秀工作。
欢迎参与贡献!详情请查看 CONTRIBUTING.md。
| 方式 | 说明 |
|---|---|
| Bug 反馈 | 报告功能异常、安装问题 |
| 功能建议 | 提出新功能或改进想法 |
| 素材扩充 | 补充题材档案、文风特征库 |
| 提交 PR | 修复 bug、优化代码或文档 |
如果你是有创作经验的作家,欢迎为反AI写作库贡献题材正反例:
贡献内容: memory/anti-ai/{genre}.md — 你所在题材的高频AI病句正反例
贡献格式:
# {题材名}反AI规则
> 适用题材:{genre-id}
## 高频AI病句正反例
### 1. {问题类型}
❌ "AI味的写法"
✅ "真人感的写法"
## 写作要点
1. **{要点}** — 说明
正反例原则:
提交方式:
memory/anti-ai/ 下新建或编辑题材文件反AI: 添加{题材名}正反例详细规范见 memory/anti-ai/README.md。
项目结构:
awesome-novel-skill/
├── agents/ # 多 Agent 协作
│ ├── novel-agent.md # 总指挥
│ ├── volume-planner.md# 叙事架构师
│ ├── chapter-planner.md# 场景设计师
│ ├── prompt-crafter.md# 提示词工程师
│ ├── writer.md # 写手
│ ├── reader.md # 测试读者
│ └── updater.md # 档案管理员
├── skills/ # Agent 技能 SOP
├── knowledge/ # 知识库(→ 项目 .claude/knowledge/)
│ ├── format-specs/ # 格式规范
│ └── genre-example/ # 题材案例
├── memory/ # 动态记忆(→ 项目 .claude/memory/)
│ └── anti-ai/ # 反AI写作库
└── tools/ # 工具脚本
开发规范:
提交方式:
类型: 简短描述(feat/fix/refactor/docs/test)本 Skill 由多个子技能模块组成,每个模块可独立改进:
| 模块 | 路径 | 贡献方向 |
|---|---|---|
| Agent/Skill | agents/ + skills/ |
改进 agent 定义、新增 skill SOP |
| 格式规范 | knowledge/format-specs/ |
改进各环节规范文档 |
| 反AI写作库 | memory/anti-ai/ |
新增题材正反例、丰富通用规则 |
| 题材画像 | knowledge/genre-example/ |
新增题材档案、丰富配置内容 |
贡献流程:
Skill 贡献原则: