Skip to content
Content
Skill

/awesome-novel-agent

和 AI 协作写小说的工作流系统。8 个 agent 协作完成从设定到归档的完整写作流程。入口检测 → 初始化/迁移 → 交 novel-agent 调度。适用场景:从零写新小说、导入已有小说。

From plugin
modoojunko-awesome-novel-agent
5401 skill8 agents
Install
$ npx -y skills add modoojunko/awesome-novel-agent --skill awesome-novel-agent --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/awesome-novel-agent

Context preview

The summary Claude sees to decide when to auto-load this skill.

和 AI 协作写小说的工作流系统。8 个 agent 协作完成从设定到归档的完整写作流程。入口检测 → 初始化/迁移 → 交 novel-agent 调度。适用场景:从零写新小说、导入已有小说。

SKILL.md

awesome-novel-agent.SKILL.md
name: awesome-novel
description: 和 AI 协作写小说的工作流系统。8 个 agent 协作完成从设定到归档的完整写作流程。入口检测 → 初始化/迁移 → 交 novel-agent 调度。适用场景:从零写新小说、导入已有小说。

Novel — 小说创作工作流

和 AI 一起写小说。本 skill 负责项目状态检测、新项目初始化、旧版项目自动迁移,完成后将控制权交给 novel-agent。

OpenCode 集成说明

本 skill 也支持 OpenCode。安装在 `~/.config/opencode/skills/awesome-novel/` 后,项目初始化脚本会自动部署 agent 定义到 `.opencode/agents/`,OpenCode 即可自动发现:

  • `@novel-agent` — 加载总指挥 agent
  • `@volume-planner`、`@chapter-planner` 等 — 加载子 agent
  • **Task 工具** — novel-agent 通过 Task 工具调用子 agent

**调度机制:** novel-agent 写 order 文件到 `.agent/task/`(`status: pending`)→ Task 工具调用子 agent → 子 agent 读取 order 执行 → 完成后将 order 覆盖为 `status: DONE` 后退回。

Codex 集成说明

本 skill 也支持 Codex。skill 本体**用户级安装**到 `~/.codex/skills/awesome-novel/`;`init.py --platform codex` 初始化小说项目时,把 8 个自定义 agent 部署为项目级 `.codex/agents/*.toml`(Codex 官方 TOML 格式,含 `name`/`description`/`developer_instructions`):

  • `@novel-agent` — 总指挥 agent(TOML 名 `novel-agent`)
  • `@volume-planner`、`@chapter-planner` 等 — 子 agent(TOML 名与源 agent 一致)
  • **独立工具** — `memory-recording`、`roleplay-sandbox` 部署为 `.codex/skills/<name>/SKILL.md`

**调度机制:** novel-agent 写 order 文件到 `.agent/task/`(`status: pending`)→ 用 `spawn_agent` 调度子 agent(agent 名 = `.codex/agents/*.toml` 的 name)→ 子 agent 读取 order 执行 → 完成后将 order 覆盖为 `status: DONE` 后退回。order 文件协议与其余平台完全一致。

检测流程 — 严格按此执行,禁止跳过

检测项目状态
├─ story.yaml 存在 → 旧版 2.x → 执行自动迁移(见下文)
├─ story.md 不存在 → 询问作者是否初始化 → 是则执行 init.py
│   └─ python tools/init.py [project-path] [--genre <编号>] → 完成后 @novel-agent
└─ story.md 存在 → 已有项目
    ├─ 检查同步新鲜度
    │   ├─ python tools/sync-project.py . --check → exit 0 → 已最新,略过
    │   ├─ python tools/sync-project.py . --check → exit 1 → 有更新
    │   │   └─ 展示变更文件,询问作者是否同步
    │   │       ├─ 确认 → 运行 python tools/sync-project.py .
    │   │       └─ 跳过 → 继续
    │   └─ .agent/.sync-fingerprint 不存在(首次)
    │       └─ 静默运行 python tools/sync-project.py . → 写入指纹
    └─ → @novel-agent 继续写作

**强制规则:**

  • `story.md` 不存在时,**先询问作者**是否要在此目录创建小说项目,确认后再运行 `init.py`
  • 禁止未经确认直接执行 `init.py`
  • 确认后必须运行 `init.py`,禁止手动创建目录结构替代
  • **禁止在 skill 安装目录(含 `skills/awesome-novel` 路径)内运行 `init.py`** — 此目录是技能仓库,不是小说项目
  • 如果当前目录是 skill 安装目录,应提示作者切换到目标目录后再执行
  • `init.py` 执行完毕后,确认 `.agent/status.md` 与平台部署目录已生成(Claude Code → `.claude/agents/`;OpenCode → `.opencode/agents/`;Reasonix → `.reasonix/skills/`;Codex → `.codex/agents/`),方可进入 `@novel-agent`
  • 如果 `init.py` 报错,必须先修复问题重新执行,不允许绕过

初始化 — 先询问,确认后执行,不可跳过

全新项目先询问作者是否初始化,确认后运行 `init.py`(项目路径可选,默认当前目录):

python tools/init.py [project-path] [--genre <编号>]

**禁止以任何理由跳过 init.py:** 手动创建目录、复制模板、直接调用 agent 都属于违规行为。`init.py` 是初始化入口,必须执行且完整运行。

`init.py` 会: 1. 选题材 2. 创建项目骨架(settings/、volumes/、chapters/、prompts/、archives/) 3. 部署 agent/skill 到当前平台约定目录(Claude Code → `.claude/agents/`;OpenCode → `.opencode/agents/`;Reasonix 不部署 agents,agents 即 `.reasonix/skills/`;Codex → `.codex/agents/*.toml`) 4. 按题材继承反 AI 规则和文风偏好到平台 knowledge 目录(`.claude/knowledge/` / `.opencode/knowledge/` / `.reasonix/knowledge/` / `.codex/knowledge/`) 5. 按题材继承格式规范、题材案例到平台 knowledge 目录 6. 创建空白的写作记忆文件(平台 memory 目录) 7. 创建永久记忆占位文件(平台 knowledge 目录) 8. 生成 CLAUDE.md(OpenCode / Reasonix 下同时生成 AGENTS.md) 9. 初始化状态文件 `.agent/status.md`

以上 9 步全部由 `init.py` 自动完成,AI 无需也不应手动干预。

**检查:** 运行后确认 `.agent/status.md` 存在且内容正确,方可进入 `@novel-agent`。

设定讨论 — novel-agent 与作者讨论后,由 updater 写入

`init.py` 完成后进入 `@novel-agent`,此时 `phase=setup`,按以下流程:

1. **novel-agent 检测到 setup 阶段**,与作者逐项讨论设定(世界观/角色/风格/题材)。如果作者需要帮忙取书名,参考 `knowledge/title-craft/index.md` 的方法论给出建议 2. 讨论完毕后,novel-agent **写 order 文件** `.agent/task/setting-update-order.md` 3. novel-agent 通过 **Agent 工具调用 updater** 4. **updater 读取 order**,写入 `settings/world-setting.md`、`settings/genre-setting.md`、`settings/character-setting/*.md` 等设定文件 5. updater 将 order 覆盖为 `status: DONE` 并结束 6. **novel-agent 确认 order 标记 DONE**,推进 phase → outline,进入卷纲规划

**权限规则:** novel-agent 不得直接写 `settings/` 下的文件,设定写入必须通过 updater 的 setting-update 模式完成。

自动迁移(2.x → 3.0)

检测到 `story.yaml` 存在时,按以下流程自动迁移:

Step 1: 展示迁移计划

扫描项目目录,给作者看三张清单:

**文件清单:**

  • 设定文件:story.yaml + settings/ 下所有文件
  • 角色文件:settings/character-setting/ 下所有文件
  • 卷纲:volumes/ 下所有文件
  • 正文:archives/ 下 `.md` 文件数量
  • 章纲(已归档):chapters/ 下 `status: archived` 的章节数量
  • 章纲(跳过):chapters/ 下 `status != archived` 的章节列表
  • 提示词:prompts/ 下文件数量

**废弃清理(直接丢弃):**

  • `author-intent.md`、`current-focus.md`
  • `drafts/`、`drifts/`、`tmp/`、`temp-*.txt`
  • `manuscripts/`、`.vscode/`

**作者确认后继续。**

Step 2: 备份旧文件

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

Step 3: 初始化新骨架

python tools/init.py [project-path] [--genre <编号>]

`init.py` 创建目录结构 + 空模板 + agent 定义 + 记忆/知识库。后续迁移步骤负责填数据。

Step 4: 迁移设定(逐文件按 templates/migration/ 映射)

对照 `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` → 平台 knowledge/anti-ai.md(`.claude/` / `.opencode/` / `.reasonix/`) | `templates/migration/anti-ai.md.template`(所有 agent 读 knowledge 路径,不读 settings/anti-ai.md) | | P7 | `old/settings/hooks.yaml` → `settings/foreshadowing.md` | `templates/migration/foreshadowing.md.template`(也可沿用 init 生成的空台账) | | P8 | 无旧源 → `settings/genre-setting.md` | `templates/migration/

Read more
Ships withmodoojunko-awesome-novel-agent

让 AI agent成为你的小说创作搭档。从世界观搭建到角色塑造,从章节规划到正文写作,一步步陪你完成整部小说。

Get the whole plugin
Stats
550
Stars
61
Forks
Active
Maintenance
Python
Language
GPL-3.0
License
4m ago
Last commit
3mo ago
Created

Repo: modoojunko/awesome-novel-agent