← → 翻页 · B 静态 · ESC 索引
← AX Skills ▶ 宣传片 源码 ↗
WEB-NOVEL · CRAFT · PIPELINE
A Claude Code Skill
web-novel-writing

把"放手就崩"的
AI 续写,逼成能稳定推进的流水线。

约束 AI 写好中文网文长篇连载的工业化工作流

人类当导演,AI 当被确定性流程包裹的、受约束的子程序——把"几百万字不崩"从靠勤奋维护,变成靠架构强制。

Canon 状态层·防泄漏编译·反 AI 味三桶·6 个确定性脚本
一条让 AI 受约束产出、人类高效掌舵的流水线
— web-novel-writing —
The Gap · 一线作者的真实痛点
02 / 16
不是假设,是实测

放手让 AI 写,
四五章后全崩

Opus/GPT 连续续写 4-5 章逻辑还行,再多逻辑/人设/世界观全崩
长程一致性是内在衰减
prompt 写长了,AI 把"给它的约束/context"莫名其妙写进正文
指令/资料边界没有形式化分隔
市面工具要么很难用、要么 overengineered
13-skill 插件 + 抓站 + CI 不是作者要的
去 AI 味 skill 不好用,照搬文学清单还会误伤。
网文审美和文学方向相反
Page 02 · 用 AI 写网文的四个真实痛点
— · —
Root Cause · 根因
03 / 16
贵模型也修不了

崩坏的根因是
AI 自我一致性随篇幅衰减

这是内在衰减,不是"换个更强的模型"能解决的。唯一可行解:把流程原子化拆分(每个 AI 调用做一件窄事,做完代码立刻收回控制权),用确定性校验外部强制一致性,用独立 agent 做外部验证。

核心信念:人类是 driver,AI 是被确定性代码包裹的、受约束的 subroutine。
这不是一键生成器
Page 03 · 把"不崩"从靠维护变成靠架构
Human-driver · AI-subroutine
第一幕 · 设计哲学
Act I · 04 / 16
Act I

设计哲学

五件事,决定了它和"让 AI 一键写本书"的根本不同。

第一幕引子
— · —
The Five · 核心五件事
Act I · 05 / 16
核心不是"写作 agent"

人定结构,AI 填细节。

01
人锁顶层契约
第 0 步人类拍板品类/平台/核心冲突/结局/主线锚点/底层规则。
02
typed 状态层
记忆拆成带 Canon 状态+按卷可见性的状态文档,不是会泄漏的 memory.md。
03
防泄漏编译
每章确定性编译"最小 context、指令与正文严格分离"的短 prompt。
04
独立校验闭环
编译→生成→独立校验→rubric 审校→改稿→去味→状态回写,reviewer≠writer。
05
反 AI 味三桶
词句层全量复用·结构层分层规则·网文专属轴,不照搬文学清单。
三档边界
明确划分 AI 自动 / 人机协作 / 必须人类拍板。
Page 05 · 这条流水线的五个支柱
人定结构 · AI 填细节
State as Memory · 状态即记忆
Act I · 06 / 16
绝不用一个会泄漏的 memory.md

Canon 五态 · 按卷可见 · 双时态。

每条事实带两个治理标签:canon_status(Canon 已定稿 | Pending 待确认 | Rejected | Idea | Inferred 推断)+ visible_from_volume(按卷可见,防剧透红线)。一条会变假的事实只失效不删(valid_until_chapter)。

晋升 Canon 需人确认;writer 只能消费"Canon 且当前卷可见"的事实。剧透防护入/出双闸:编译挡在 prompt 外 + output_check 扫正文是否泄漏。
世界观+glossary
W / FAC / L
人物卡(行为锚点+认知边界)
CHR
剧情线(主线 beats)
cursor
伏笔台账(状态机)
F
情绪债 + 爽点排布
D
滚动摘要(分层递归)
roll
Page 06 · 7 个 typed 状态文档(1 契约 + 6 状态)
references/02 · 08
The Loop · 章节生产循环
Act I · 07 / 16
每个 LLM 调用是窄子程序,调完立刻收回控制权

编译 → 生成 → 校验 → 回写。

生成 · Generate
1
编译
最小 context、指令/正文三区分离、防剧透
2
writer
关 thinking,按蓝图填正文
3
机械门
字数/泄漏/标点/退化/AI 味,零 LLM
校验 · Verify(reviewer ≠ writer)
4
独立一致性
只吃 canon/时间线,judge"对不对"
5
rubric 审校
硬门+加权分,判"好不好",异模型
6
改稿 ≤3
定向 fix,净改善才采纳;去味独立 pass
回写 · Commit
7
抽 delta
LLM 出 delta,代码夺回方向盘
8
state_apply
确定性合并·章级幂等·审校没过拒提交
9
体检
每卷边界跑 state_check 不变量
Page 07 · 9 步章节循环(→ 一步步点亮)· 可断点续跑
references/01 · 04
Anti-AI-Slop · 反 AI 味
Act I · 08 / 16
网文审美和文学方向相反,不能照搬清单

分三桶,加 Gate A-G。

桶1 · 词句层
全量复用文学清单:翻译腔/紫色文风/节奏匀速。鲁棒"不是A而是B"检测确定性机抓。
桶2 · 结构层
改分层规则:人设/逻辑/lore 展示不告知;但爽点/金手指直给、把话说死
桶3 · 网文专属轴
文学清单没有:黄金三章/爽点密度/章末钩子/毒点规避/品类×平台适配。
桶0 · 模型退化
续写后段打转/复读/截断/漏工程词——去味改不掉,回去重新生成那段。
Gate A 禁用词B 句式C 心理外化D 节奏E 对话F 结尾G 解释腔/上帝视角(最像 AI)
Page 08 · 三桶 + Gate A-G(借鉴 oh-story,已验证有效)
references/09
第二幕 · 工程硬化
Act II · 09 / 16
Act II

工程硬化

把"靠 agent 自律"的那一环,交给确定性代码强制。

第二幕引子
— · —
Deterministic Oracle · 确定性兜底
Act II · 10 / 16
纯 python3 + PyYAML,零 LLM,无重依赖

6 个极小脚本 + 1 回归测试。

compile_prompt
防泄漏单章 prompt 编译器(最高价值)
output_check
正文硬门:字数/泄漏/标点/must_not/剧透-出
degeneration_check
模型退化:复读/截断/占位符/工程词/字节地板
antislop_lint
反 AI 味词句层,鲁棒"不是A而是B"+ penalty
state_check
状态层不变式:Canon/境界/伏笔逾期/情绪债
state_apply
确定性合并 delta:盖戳/幂等/只失效不删/提交闸
test_lint_fixtures.sh:golden-fixture 回归——负样本(弹幕道歉×3/排比/either-or)必须静默,把检测器调到"敢用",直击"工具误伤多"。
Page 10 · 可选硬化层(书越长越值得上)
scripts/ · python3+PyYAML
The Anti-Pattern · 头号反模式
Act II · 11 / 16
这是整套 skill 的命门

伪约束 = 把硬约束
写进 prompt 当已执行

任何 MUST-hold 不变量(伏笔到期 / Canon 枚举 / 境界单调 / 可见性过滤 / 状态合并)必须由 code/schema/lint 强制——模型"记住"一条规则是概率性的,代码拼接不是。

最会漂移的一步——定稿后把 delta 合并进 canon——交给 state_apply.py 代码执行,关掉 state-mutation 侧的伪约束。
共享检测逻辑只住一处(脚本),hook 只触发不重抄正则 → 永不需要 parity CI
Page 11 · 硬约束 code 强制,不写进 prompt
Code, not prose
第三幕 · 借鉴与边界
Act III · 12 / 16
Act III

借鉴与边界

站在两份外部交付物的肩上——但只借 craft 与确定性检测逻辑。

第三幕引子
— · —
Borrowed · 定向借鉴
Act III · 13 / 16
对抗式评审 + 7-agent 全模块调研后裁决

偷数据契约与检测逻辑,
绝不偷实现体量。

WebNovelOps · 另一 agent 独立交付

两 agent 独立收敛到同一架构 = 强信号。借它的确定性 state-delta 合并代数(state_apply.py)+ acceptance_criteria 判分桥。避它的扁平 JSON / CLI-as-default。

oh-story-claudecode · 去 AI 味口碑强

借它的 Gate A-G + 鲁棒「不是A而是B」+ 模型退化检测,以及对话/反转/情绪弧/导入崩稿/拆爆款 craft(→ 新增 ref 12/13/14)。

一律 REJECT 它们的 13-skill 插件 / CLI adapter / 抓站依赖 / parity-CI 架构——那正是"市面工具太重"痛点本身,照搬就是把自己做成要替代的那个东西。
Page 13 · docs/research/05(WebNovelOps)· 06(oh-story)
craft in, architecture out
Honest Boundaries · 诚实的边界
Act III · 14 / 16
反 overengineering

不是一个 app。

substrate 是 Markdown/YAML + skill 指令 + 极小可选脚本——不是要作者建带 SQLite/向量库/dashboard 的应用,不是13-skill 插件。复杂度预算放在"状态结构+确定性校验",不放在"agent 编排"。

模型是可选旋钮

诚实区分能力边界。

默认就在 Codex/GPT 上跑,换 GLM 等是优化非依赖,不写死任何 model ID。诚实区分工程能修的(一致性崩坏/泄漏/流程纪律)与模型天花板(叙事层 AI 味/语感——工程压低但压不到零,靠人在大纲层注入)。

Page 14 · 反 overengineering · 不夸大能力
Markdown/YAML + 极小脚本
The Core · 核心理念
15 / 16
为什么不只是"让 AI 写"
人类是导演, AI 是被确定性代码包裹的、受约束的子程序 几百万字不崩,靠架构强制,不靠勤奋维护。
工程修一致性 · 修不了叙事层 AI 味天花板
Page 15 · 核心理念
— · —
Who & How · 谁能用 · 怎么用
16 / 16
已经写崩了也能接手

你那本写到一半崩了的书, 还能接着写下去

从零开书走阶段 0;已写几章在崩走阶段 0.5 导入(degeneration 扫崩点 + 反向提取成状态层),再进章节循环。对 AI 说"帮我写网文 / 我的小说续写崩了 / 去 AI 味"就触发。

web-novel-writing·姊妹于 game-script-creation·中文为主
把"放手就崩"逼成稳定推进的流水线
— 开始 —