원클릭으로
webnovel-batch
批量写章。从指定章节起自动逐章生成至指定结束章(默认卷末),单章撰写agent + 单章审查agent,严格串行(写→审→过→写下一章)。默认批量入口。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
批量写章。从指定章节起自动逐章生成至指定结束章(默认卷末),单章撰写agent + 单章审查agent,严格串行(写→审→过→写下一章)。默认批量入口。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
AI-powered writing toolkit — Web novel, Short story, Technical blog, Publishing automation / AI 驱动写作工具包 — 网文、短篇、技术博文、发布自动化
纯 AI 生图制作网文封面 & 技术博客封面。网文:600×800 竖版存入 作品信息/。技术博客:800×600 横版存入 博文/{系列}/cover.png。
Publish novel chapters from local Markdown files to the Fanqie Novel writer backend via browser automation. Supports single/batch/scheduled publish with login state persistence.
短篇写作工艺约束层。禁用词 + 过渡词管理。写/审时加载项目级工艺约束.md。
拆解盐选短篇参考文,提取钩子设计、悬念铺设、节奏控制、收束手法等写作模式。触发词:拆这篇、拆解、分析这个短篇、做拆解、帮我把这篇拆了、提取模式
中短篇初始化。定选题→出设定文件→机械门禁→盲审→零问题交付。
| name | webnovel-batch |
| description | 批量写章。从指定章节起自动逐章生成至指定结束章(默认卷末),单章撰写agent + 单章审查agent,严格串行(写→审→过→写下一章)。默认批量入口。 |
| allowed-tools | Read Write Edit Grep Bash Agent AskUserQuestion |
| argument-hint | N [M](从第N章起批量至第M章,省略M则写至卷末) |
写章agent和审查agent不能是同一个。写章agent负责产出,审查agent负责把关,互不越界。
审查agent的职责是验证,不是创新。它的判断基准只有三个:
回答「是」→ 通过。回答「否」→ blocking,标记具体问题,退回重写。 审查agent不提替代方案、不"建议加个伏笔"、不管下一章怎么写。越界建议直接忽略。
主对话(串行循环,同步)
│
├─ ① 写进度文件 .webnovel/stream_progress.json
│
└─ for N in [start_chapter..end_chapter]:
│
├─ ② 派发单章撰写agent(N)
│ prompt 内联:章纲全文 + 设定块 + 行文约束
│ agent 自行执行:context→起草→自审→润色→commit
│ 返回 {chapter, status, word_count, summary}
│
├─ ③ 等待写章agent返回
│
├─ ④ 派发单章审查agent(N) — 这是独立于写章agent的调用
│ prompt 内联:第N章章纲 + 审查三问
│ agent 执行:Read正文 → 对照章纲/设定/约束审查 →
│ 返回 {chapter, passed:true|false, blocking_items:[], issues:[]}
│
├─ ⑤ 读审查结果
│ │
│ ├─ passed=true → 更新进度,N+1
│ │
│ ├─ passed=false, blocking_items可修复 →
│ │ 重派写章agent(N) 重写(最多2次重试)
│ │
│ └─ passed=false, blocking_items不可修复 →
│ 标记 failed,暂停循环,提示用户
│
└─ 用户随时 Ctrl+C → 下次启动读 stream_progress.json 从 current 继续
为什么不用持久/后台审查agent: 当前工具不支持 daemon 进程。审查agent每次以单次 Task 调用执行,完成即退出。效果一样——每章都有独立第三方把关——且更简单可靠。
| 文件 | 写入方 | 读取方 | 内容 |
|---|---|---|---|
stream_progress.json | 主对话 | 主对话 | {chapters:[], completed:N, failed:N, current:N, status} |
只用这一个文件。审查结果不写队列,直接在主对话中持有关闭审查agent的返回。
确认必要文件存在:
大纲/第{卷号}卷-详细大纲.md设定集/世界观.md设定集/力量体系.md设定集/主角卡.md.webnovel/state.json从 大纲/第{卷}卷-详细大纲.md 解析第 N 章到第 M 章的章纲范围。每章提取:目标/阻力/代价/CBN/CPNs/CEN/禁区/钩子/时间锚点。
for N in [start_chapter..end_chapter]:
派发一个 Task(general),prompt 包含:
撰写第{N}章"{章名}"正文。
项目根:{PROJECT_ROOT}
本章章纲(内联,不重读文件):
目标:{}
阻力:{}
代价:{}
CBN(必须出现的节点):{}
CPNs(可选节点):{}
CEN(章节结束状态,必须达成):{}
禁区(绝不能出现):{}
钩子到下一章:{}
时间锚点:{}
上章收尾:{上一章最后一段摘要}
设定块(内联):
- 行文约束:句长30-55字、段落≤7句、触觉>听觉>视觉、无情绪标签词、无副词修饰情绪动词、不是A是B≤3次、身体拟人≤4次、哲理收束≤2次
- 世界观:{关键设定摘要}
执行:起草→自审(对照章纲)→润色→保存到 正文/第{四位数}章-{章名}.md
返回:{"chapter":N, "status":"accepted", "word_count":N, "summary":"..."}
写章agent返回后,不要推进进度。
派发一个新的 Task(general),prompt 包含:
独立审查《诡异熔炉》第{N}章"{章名}"。
先 Read 以下基准文件:
- 大纲/第{卷}卷-详细大纲.md(只看本章章纲)
- 设定集/世界观.md
- 设定集/力量体系.md
- 设定集/主角卡.md
然后 Read 正文:正文/第{四位数}章-{章名}.md
审查三问,逐问回答 yes/no,no 必须列出具体位置和原因:
Q1: CBN 是否全部出现?CEN 是否达成?
列出每个CBN是否覆盖,CEN状态是否达成。
若否 → blocking_item: "CBN未覆盖:{具体节点}"
Q2: 禁区是否被触犯?设定是否被破坏?
检查禁区列表,每条逐一确认未出现。
检查是否有与世界观/力量体系/角色卡片矛盾的描写。
若否 → blocking_item: "禁区触犯:{具体内容}"
Q3: 与上一章的钩子是否衔接?与下一章章纲要求的起始状态是否一致?
检查本章开头是否自然承接上章结尾。
检查本章结尾钩子是否与下一章章纲目标兼容。
若否 → blocking_item: "衔接断裂:{具体问题}"
**审查agent不提出替代方案。** 只回答三问。发现 blocking 列问题即可。
返回:{"chapter":N, "passed":true|false, "blocking_items":[], "issues":[]}
审查agent返回后:
passed=true → 更新 stream_progress.json,标记 completed,current=N+1,写入磁盘。继续下一章。passed=false,有 blocking_items → 判断是否可修复(写章agent重写是否能解决)。可修复 → 回到 2a 重写本章(最多2次)。不可修复 → 标记 failed,暂停循环,提示用户。关键:审查agent不通过,绝不派发下一章。
stream_progress.json 结构:
{
"volume": 1,
"start_chapter": 11,
"end_chapter": 20,
"chapters": [
{"N": 11, "status": "completed", "word_count": 2340},
{"N": 12, "status": "pending", "word_count": 0}
],
"current": 12,
"completed": 1,
"failed": [],
"status": "running"
}
重新运行时先读此文件,从 current 继续。跳过已 completed 的章节。