Help us improve
Share bugs, ideas, or general feedback.
npx claudepluginhub xuanranl/webnovelwriter --plugin webnovel-writerHow this skill is triggered — by the user, by Claude, or both
Slash command
/webnovel-writer:webnovel-initThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
- 通过结构化交互收集足够信息,避免“先生成再返工”。
references/creativity/anti-trope-game.mdreferences/creativity/anti-trope-rules-mystery.mdreferences/creativity/anti-trope-urban.mdreferences/creativity/anti-trope-xianxia.mdreferences/creativity/category-constraint-packs.mdreferences/creativity/creative-combination.mdreferences/creativity/creativity-constraints.mdreferences/creativity/inspiration-collection.mdreferences/creativity/market-positioning.mdreferences/creativity/market-trends-2026.mdreferences/creativity/selling-points.mdreferences/genre-tropes.mdreferences/narrative-voice-guide.mdreferences/system-data-flow.mdreferences/worldbuilding/character-design.mdreferences/worldbuilding/faction-systems.mdreferences/worldbuilding/power-systems.mdreferences/worldbuilding/setting-consistency.mdreferences/worldbuilding/world-rules.mdInitializes web novel projects via phased interactions collecting genre, characters, worldbuilding, and constraints; generates state.json, settings, outlines, and idea bank for direct planning/writing.
Guides long-form web novel writing from outline to chapters, covering worldbuilding, characters, and plot management.
Orchestrates complete web novel design: generates bootstrap docs, character sheets, and plot hook guides with automated domain research sub-agent. For full novel outlines.
Share bugs, ideas, or general feedback.
.webnovel/state.json、设定集/*、大纲/总纲.md、.webnovel/idea_bank.json。/webnovel-plan 与 /webnovel-write 可直接运行。init_project.py。Read/Grep/Bash/Task/AskUserQuestion 辅助收集(搜索通过 Bash 调用 tavily_search.py)。采用分级加载,避免一次性灌入全部资料:
路径约定:
references/... 相对当前 skill 目录(${CLAUDE_PLUGIN_ROOT}/skills/webnovel-init/references/...)。templates/... 相对插件根目录(${CLAUDE_PLUGIN_ROOT}/templates/...)。默认加载清单:
references/genre-tropes.mdtemplates/genres/{genre}.md../../templates/golden-finger-templates.mdreferences/worldbuilding/faction-systems.mdreferences/creativity/market-trends-2026.mdreferences/genre-tropes.md
references/system-data-flow.md
/plan、/write 的数据流一致性检查。references/narrative-voice-guide.md
/write 的 Step 1 内置消费。references/worldbuilding/character-design.md
references/worldbuilding/faction-systems.md
references/worldbuilding/power-systems.md
references/worldbuilding/setting-consistency.md
references/worldbuilding/world-rules.md
references/creativity/creativity-constraints.md
references/creativity/category-constraint-packs.md
references/creativity/creative-combination.md
references/creativity/inspiration-collection.md
references/creativity/selling-points.md
references/creativity/market-positioning.md
references/creativity/market-trends-2026.md
references/creativity/anti-trope-xianxia.md
references/creativity/anti-trope-urban.md
references/creativity/anti-trope-game.md
references/creativity/anti-trope-rules-mystery.md
Read/Grep:读取项目上下文与参考文件(README.md、CLAUDE.md、templates/genres/*、references/*)。Bash:执行 init_project.py、文件存在性检查、最小验证命令。Task:拆分并行子任务(如题材映射、约束包候选生成、文件验证)。AskUserQuestion:用于关键分歧裁决、候选方案选择、最终确认。Bash(Tavily 搜索):通过 ${SCRIPTS_DIR}/tavily_search.py 直连 Tavily API,支持快速搜索(search)和深度研究(research),禁止使用 MCP 工具(WebSearch/WebFetch)。环境设置(bash 命令执行前):
export WORKSPACE_ROOT="${CLAUDE_PROJECT_DIR:-$PWD}"
if [ -z "${CLAUDE_PLUGIN_ROOT}" ] || [ ! -d "${CLAUDE_PLUGIN_ROOT}/scripts" ]; then
echo "ERROR: 未设置 CLAUDE_PLUGIN_ROOT 或缺少目录: ${CLAUDE_PLUGIN_ROOT}/scripts" >&2
exit 1
fi
export SCRIPTS_DIR="${CLAUDE_PLUGIN_ROOT}/scripts"
必须做:
${CLAUDE_PLUGIN_ROOT}/scripts${SCRIPTS_DIR}/webnovel.pypython "${SCRIPTS_DIR}/webnovel.py" --project-root "${WORKSPACE_ROOT}" wherereferences/system-data-flow.md(用于校对 init 产物与 plan/write 输入链路)references/genre-tropes.mdtemplates/genres/(仅在用户选定题材后按需读取)输出:
搜索统一使用 Tavily 直连 API 脚本(${SCRIPTS_DIR}/tavily_search.py),禁止使用 MCP 工具(WebSearch/WebFetch)。
init 阶段搜索是一次性投入、长期受益,应高频使用:
两种搜索模式:
python -X utf8 "${SCRIPTS_DIR}/tavily_search.py" search "查询词" --max 5python -X utf8 "${SCRIPTS_DIR}/tavily_search.py" research "研究问题" --model pro每个 Step 的具体搜索内容:
Search 失败处理:立即停止,检查 Tavily API key 配置(环境变量 / .env / ~/.claude.json)。
调研笔记:搜索到的有价值信息保存到 调研笔记/题材参考.md,供后续 plan/write 复用。
收集项(必收):
收集项(可选):
题材集合(用于归一化与映射):
交互方式:
目的:在初始化阶段建立全书统一的风格锚点,供后续
/write的 Step 1、style-adapter 和 prose-quality-checker 作为跨章一致性基准。缺失此基准会导致跨章风格漂移、Anti-AI 检测不过。
收集项(必收):
收集项(可选):
交互方式:
设定集/叙事声音.md。参考加载:references/narrative-voice-guide.md(L1 必读)
收集项(必收):
收集项(可选):
收集项(必收):
收集项(条件必收):
收集项(必收):
收集项(题材相关):
收集项(新增 - 节奏偏好):
节奏偏好写入
state.json的pacing_preference,供 pacing-checker 调整阈值而非使用硬编码默认值。
流程:
references/creativity/creativity-constraints.md 的 8.1 五维评分),辅助用户决策。备注:
目的:前者防止情感分布不均(全书一个调无波动),后者直接影响首章留存率(网文最关键指标)。
收集项(必收):
交互方式:
输出:设定集/情感蓝图.md
首章留存率是网文最关键的指标。”前三章黄金法则”:必须在前三章完成核心世界/身份/冲突的铺垫并留下章节级悬念。
收集项(必收):
交互方式:
输出:设定集/开篇策略.md,同时将核心字段写入 idea_bank.json 的 opening_strategy。
目的:决定本书是否启用典故引用系统(古典诗词 / 民俗 / 经典 / 地方歌谣 / 原创口诀 / 互联网梗)以及密度等级。这是质感护城河的核心决策,也是《道诡异仙》《我不是戏神》《十日终焉》级作品的隐藏护城河。
位置的重要性:必须在 Step 6 一致性复述之前完成。若此步骤被跳过,Step 6 摘要会缺失"典故系统核",进而导致执行生成阶段无法创建
典故引用库.md和原创诗词口诀.md,最终 init 成功标准 fail。
触发强度表(AI 必须基于 Step 1 题材自动判断并展示给用户):
| 题材 | 启用强度 | 默认推荐密度 |
|---|---|---|
| 规则怪谈 / 悬疑灵异 / 克苏鲁 / 民俗志怪 | 强制启用 | 中密度(每 5 章 1 次) |
| 修仙 / 仙侠 / 玄幻 / 历史 / 古言 / 历史脑洞 | 强制启用 | 中密度 |
| 都市脑洞 / 现实题材 / 现代言情 | 默认启用 | 低密度(每 10 章 1 次) |
| 科幻 / 网游 / 电竞 | 可选启用 | 低密度 / 按需 |
| 作者选"品质路线" 或对标《道诡异仙》《十日终焉》等 | 强制启用(覆盖题材默认) | 高密度(每 3 章 1 次) |
收集项(必收):
density_level:典故密度偏好(AI 必须展示 5 个选项让用户选择)
state.json.cultural_reference_disabled_reason)source_pools:启用的来源池(多选,至少选 2 个,不启用时跳过此项)
character_literary_totem:为关键角色(主角 / 女主 / 主要反派 / 师傅级导师)分配文学图腾
original_poems_plan:原创诗词创作计划
internet_meme_policy:互联网梗使用政策(若选择启用"互联网梗"来源池)
交互方式:
参考加载(L1 必读):${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/writing/classical-references.md — 完整的引用类型分级、融入技法、密度控制、"典故即伏笔"技法、Search tool 强制使用规范(第九节)
🔍 Search tool 强制使用(防 AI 幻觉 + 时效性):
见
classical-references.md第九节完整规范。AI 记忆的典故、诗词、民俗常有字词错误、作者错误、时代错位等幻觉;互联网热梗时效性强。本项目追求"最高质量"的典故系统不能依赖 AI 记忆——必须通过 search tool 实时验证。
init Step 5.6 阶段必须调用 Tavily Search 的 4 个场景:
建立外部诗词典故来源池时:每条候选诗词必须 search 验证
Tavily query: "{诗词首句} 作者 {claimed_author} 原文"
验证点:字词准确、作者正确、出处正确
失败则不登记
建立民俗典故库时:每条民俗条目必须 search 验证
Tavily query: "{地域} {民俗元素} 典故 出处"
验证点:民俗真实存在、地域正确
失败则标记"待人工核实"
创作原创诗词草稿前:必须搜索撞车检查
Tavily query: '"{original_draft_first_line}"' # 引号精确匹配
若搜索返回已存在相同首句的作品 → 重写
建立互联网梗白名单时(若启用互联网梗来源池):必须搜索当前时效性
Tavily query: "2026 {meme_name} 网络用语 最新使用"
time_range: "month"
若梗已过时(3 个月无引用)→ 移出白名单
工具优先级:Tavily Search MCP(首选)→ Tavily Research MCP → WebSearch(降级)
中文搜索强制:见 user memory feedback_search_in_chinese.md——中文小说项目所有搜索必须用中文,禁止用英文。
违规判定:
verified_at 和 verification_source 字段 → init fail输出:
cultural_reference_system 字段写入 idea_bank.json(详细 schema 见"执行生成"段落)AI 违规判定:
density_level → init fail必须输出”初始化摘要草案”并让用户确认:
确认规则:
{
"project": {
"title": "",
"genre": "",
"target_words": 0,
"target_chapters": 0,
"one_liner": "",
"core_conflict": "",
"target_reader": "",
"platform": ""
},
"protagonist": {
"name": "",
"desire": "",
"flaw": "",
"archetype": "",
"structure": "单主角"
},
"relationship": {
"heroine_config": "",
"heroine_names": [],
"heroine_role": "",
"co_protagonists": [],
"co_protagonist_roles": [],
"antagonist_tiers": {},
"antagonist_level": "",
"antagonist_mirror": ""
},
"golden_finger": {
"type": "",
"name": "",
"style": "",
"visibility": "",
"irreversible_cost": "",
"growth_rhythm": ""
},
"world": {
"scale": "",
"factions": "",
"power_system_type": "",
"social_class": "",
"resource_distribution": "",
"currency_system": "",
"currency_exchange": "",
"sect_hierarchy": "",
"cultivation_chain": "",
"cultivation_subtiers": ""
},
"constraints": {
"anti_trope": "",
"hard_constraints": [],
"core_selling_points": [],
"opening_hook": ""
},
"narrative_voice": {
"pov": "",
"tone": "",
"description_density": "",
"sensory_focus": "",
"dialogue_ratio": "",
"rhetoric_style": "",
"style_taboos": []
},
"emotional_blueprint": {
"overall_tone": "",
"volume1_emotional_peaks": [
{"event": "", "target_emotion": "", "position": ""}
],
"emotional_taboos": []
},
"opening_strategy": {
"opening_type": "",
"chapter1_scene": "",
"chapter1_must_convey": [],
"chapter1_hook": "",
"first3_chapters_plan": [],
"golden_finger_reveal": ""
},
"pacing_preference": {
"coolpoint_frequency": "",
"overall_pace": "",
"climaxes_per_volume": ""
},
"theme": {
"core_theme": "",
"reference_works": []
}
}
未满足以下条件前,禁止执行 init_project.py:
idea_bank.json.cultural_reference_system.enabled 字段非空(true/false)density_level 非空(高/中/低/按需之一),source_pools 至少 2 项,character_literary_totem 至少为主角配置 1 项state.json.cultural_reference_disabled_reason 非空project_root 必须由书名安全化生成(去非法字符,空格转 -)。. 开头,自动前缀 proj-。${CLAUDE_PLUGIN_ROOT})。python "${SCRIPTS_DIR}/webnovel.py" init \
"{project_root}" \
"{title}" \
"{genre}" \
--protagonist-name "{protagonist_name}" \
--target-words {target_words} \
--target-chapters {target_chapters} \
--golden-finger-name "{gf_name}" \
--golden-finger-type "{gf_type}" \
--golden-finger-style "{gf_style}" \
--core-selling-points "{core_points}" \
--protagonist-structure "{protagonist_structure}" \
--heroine-config "{heroine_config}" \
--heroine-names "{heroine_names}" \
--heroine-role "{heroine_role}" \
--co-protagonists "{co_protagonists}" \
--co-protagonist-roles "{co_protagonist_roles}" \
--antagonist-tiers "{antagonist_tiers}" \
--world-scale "{world_scale}" \
--factions "{factions}" \
--power-system-type "{power_system_type}" \
--social-class "{social_class}" \
--resource-distribution "{resource_distribution}" \
--gf-visibility "{gf_visibility}" \
--gf-irreversible-cost "{gf_irreversible_cost}" \
--currency-system "{currency_system}" \
--currency-exchange "{currency_exchange}" \
--sect-hierarchy "{sect_hierarchy}" \
--cultivation-chain "{cultivation_chain}" \
--cultivation-subtiers "{cultivation_subtiers}" \
--protagonist-desire "{protagonist_desire}" \
--protagonist-flaw "{protagonist_flaw}" \
--protagonist-archetype "{protagonist_archetype}" \
--antagonist-level "{antagonist_level}" \
--target-reader "{target_reader}" \
--platform "{platform}"
idea_bank.json写入 .webnovel/idea_bank.json:
{
"selected_idea": {
"title": "",
"one_liner": "",
"anti_trope": "",
"hard_constraints": []
},
"constraints_inherited": {
"anti_trope": "",
"hard_constraints": [],
"protagonist_flaw": "",
"antagonist_mirror": "",
"opening_hook": ""
},
"opening_strategy": {
"opening_type": "",
"chapter1_scene": "",
"chapter1_must_convey": [],
"chapter1_hook": {"type": "", "content": ""},
"first3_chapters_plan": ["", "", ""],
"golden_finger_reveal": ""
}
}
基于收集到的数据,自动生成实质性内容(非空模板):
角色卡填充(必做):
主角卡.md:从 protagonist.desire/flaw/archetype 生成完整的性格底色、动机、OOC警戒
金手指设计.md:从 golden_finger 数据生成使用规则、升级路线、爽点嵌入、反馈节奏女主卡.md:若 heroine_config != "无",至少填写基本信息+性格底色+与主角关系定位+语音规则
反派设计.md:从 antagonist_tiers 生成分层设计+镜像对抗+第1卷小反派详细叙事声音文件生成(必做):
设定集/叙事声音.md:从 narrative_voice 数据生成,包含:
style-adapter (Step 2B) 必须参照此基准,prose-quality-checker 用此检查跨章一致性情感蓝图文件生成(必做):
设定集/情感蓝图.md:从 emotional_blueprint 数据生成,包含:
emotion-checker 参照蓝图验证情感节奏,Context Agent 参照设计 emotion_rhythm开篇策略文件生成(必做):
设定集/开篇策略.md:从 opening_strategy 数据生成,包含:
Context Agent 在第 1-3 章必须读取此文件,write Step 1 Golden Opening Protocol 参照执行生成内容硬约束(2026-04-16 · 防伪神经科学污染):
post_draft_check.CHINESE_OPENING_REJECT_PATTERNS + reader-naturalness-checker 双硬闸门验证模板规范(init 生成开篇策略.md 时必须遵循):
### 首句设计原则(反伪科学)
- **唯一金标准**:汉语母语读者 0.5 秒觉得通顺 + 想翻下一章
- **禁用设计话术**:不写"字数阈值"、"神经科学依据"、"镜像激活"
- **对标爆款首句**(举例 · 不是要求模仿):
- 《第一序列》:"避难所里的早晨永远是灰色的。"(氛围钩)
- 《末日生存方案供应商》:"陈溪刚下班就接到一个奇怪的电话。"(反常开场)
- 《庆余年》:"这是一个由书评引起的故事。"(元叙事钩)
- **首句必须通过**:
- `post_draft_check.py` 的 CHINESE_OPENING_REJECT_PATTERNS(X 在 + 瞬时动词硬拦)
- `reader-naturalness-checker` 的 verdict(独立视角评分)
配套文件创建(必做):
设定集/道具与技术.md:创建带章节时间线模板头的空文件设定集/伏笔追踪.md:创建带分类模板的空文件(含"典故伏笔"分类段)设定集/资产变动表.md:创建带表头的空文件典故引用库创建(按题材自动触发,必做或明确拒绝才跳过):
触发策略(AI 必须主动执行,不得默默跳过):
题材类型 启用强度 说明 规则怪谈 / 悬疑灵异 / 克苏鲁 / 民俗志怪 强制启用 典故是世界规则的载体,不启用会导致文笔塌掉 修仙 / 仙侠 / 玄幻 / 历史 / 古言 / 历史脑洞 强制启用 古典诗词/道佛经典/正史野史是天然素材库 都市脑洞 / 现实题材 / 现代言情 默认启用 网络梗 + 现代文化典故,可通过配角使用 科幻 / 网游 / 电竞 可选启用 需要原创口诀/术语库支撑,典故较少 作者选择"悬疑正剧品质路线" / 对标《道诡异仙》《十日终焉》《我不是戏神》等 强制启用(覆盖题材默认) 质感护城河之一 AI 必须在创建流程中主动询问作者一次:"本书是否启用典故引用系统?(诗词/民俗/原创口诀/互联网梗融合)" 选项:
- 启用 · 高密度(每 3 章 1 次,对标道诡异仙)
- 启用 · 中密度(每 5 章 1 次,推荐)
- 启用 · 低密度(每 10 章 1 次,克制派)
- 按需(Context Agent 自动判断)
- 不启用(必须记录原因到
state.json.cultural_reference_disabled_reason)
创建内容:
设定集/典故引用库.md:基于题材和世界观,创建带完整模板的引用库初稿。包含:
原创诗词口诀.md 的索引段设定集/原创诗词口诀.md:创建带完整模板的文件。必须包含:
state.json.cultural_reference_disabled_reason 字段,并在 idea_bank.json 标注 cultural_reference_system.enabled: false${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/writing/classical-references.md 第六节整合到 idea_bank.json(必做):
{
"cultural_reference_system": {
"enabled": true,
"density_level": "高/中/低/按需",
"reference_files": ["设定集/典故引用库.md", "设定集/原创诗词口诀.md"],
"character_literary_totem": {"角色名": "对应诗词/典故"},
"original_poems_planned": [...],
"key_chapter_allusions": {"第1章": "...", "第3章": "...", "第N章": "..."},
"internet_meme_policy": {"protagonist_use": "严禁/允许"}
}
}
语音规则格式(每个角色卡必须包含):
## 语音规则(写作时强制遵循)
1. {具体的用词/句式规则}
2. {具体的语气/节奏规则}
3. {具体的情绪表达方式}
4. {标志性口头禅或说话习惯}(可选)
5. {禁止的表达方式}(可选)
必须补齐:
执行检查:
test -f "{project_root}/.webnovel/state.json"
find "{project_root}/设定集" -maxdepth 1 -type f -name "*.md"
test -f "{project_root}/大纲/总纲.md"
test -f "{project_root}/.webnovel/idea_bank.json"
test -d "{project_root}/调研笔记"
test -f "{project_root}/.webnovel/hygiene_check.py" # Step 7 commit 前强制闸门
hygiene_check 部署(init 最后必做):
# 部署框架版 hygiene_check shim — 写到项目 .webnovel/ 下
cat > "{project_root}/.webnovel/hygiene_check.py" <<'PYSHIM'
#!/usr/bin/env python3
"""项目 hygiene_check 入口 shim — 转发到框架版并加载项目本地扩展。
解析顺序:
1. $CLAUDE_PLUGIN_ROOT/scripts/hygiene_check.py
2. 向上走祖先目录,查找 webnovel-writer/scripts/hygiene_check.py
3. ~/.claude/plugins/cache/*/webnovel-writer/*/scripts/hygiene_check.py
(glob 所有版本,按 mtime 降序取最新——容忍 5.6.0 → 5.7.0 版本升级)
"""
import os, sys
from pathlib import Path
def resolve_framework_script() -> Path:
env_root = os.environ.get("CLAUDE_PLUGIN_ROOT")
if env_root:
p = Path(env_root) / "scripts" / "hygiene_check.py"
if p.exists():
return p
here = Path(__file__).resolve()
for ancestor in [here.parent, *here.parents]:
cand = ancestor / "webnovel-writer" / "scripts" / "hygiene_check.py"
if cand.exists():
return cand
plugin_cache = Path.home() / ".claude" / "plugins" / "cache"
if plugin_cache.exists():
candidates = sorted(
plugin_cache.glob("*/webnovel-writer/*/scripts/hygiene_check.py"),
key=lambda p: p.stat().st_mtime if p.exists() else 0,
reverse=True,
)
if candidates:
return candidates[0]
raise SystemExit("ERROR: 找不到框架版 hygiene_check.py。请设置 CLAUDE_PLUGIN_ROOT。")
def main():
framework = resolve_framework_script()
sys.path.insert(0, str(framework.parent))
import hygiene_check as hc
sys.argv = [str(framework)] + sys.argv[1:]
if "--project-root" not in sys.argv:
sys.argv.extend(["--project-root", str(Path(__file__).resolve().parent.parent)])
sys.exit(hc.main())
if __name__ == "__main__":
main()
PYSHIM
chmod +x "{project_root}/.webnovel/hygiene_check.py" 2>/dev/null || true
项目本地扩展(可选):若项目有额外检查需求,可创建 .webnovel/hygiene_check_local.py 并定义 run(root, chapter, report) 函数。框架版会自动加载。
规划层一致性(推荐 · 中长篇必配):当详细大纲覆盖多卷、有关键章号事件(如"末世爆发章"、"金手指觉醒章")或多线伏笔时,推荐在 .webnovel/plan_consistency_config.json 里配置规则,由 scripts/plan_consistency_check.py(框架版)在 hygiene_check 里自动检查。config 结构:
drift.rules:章号漂移规则列表(feature_pattern / old_values / new_value)gender.checks:人物伏笔性别一致性(state.json + 规划文件跨源校验)density.tracks:阅读密度滑窗统计(角色/反派出场频次)若项目本地另有 .webnovel/plan_consistency_check.py,shim 优先跑本地脚本;都没有时整体跳过(退出 0)。典型使用:短篇/中短篇可以不配;长篇(尤其末世/修仙/系列/多卷)强烈建议配,避免 v2 大纲修订后残留旧章号漂移到 commit。
成功标准:
state.json 存在且关键字段不为空(title/genre/target_words/target_chapters)。世界观.md、力量体系.md、主角卡.md、金手指设计.md。女主卡.md 存在且至少有基本信息+语音规则。叙事声音.md 存在且包含视角+语气+密度+感官+比例(非空模板)。情感蓝图.md 存在且包含情感基调+至少2个情感节点。开篇策略.md 存在且包含开篇类型+第1章设计+前3章蓝图。道具与技术.md、伏笔追踪.md、资产变动表.md。典故引用库.md 和 原创诗词口诀.md 必须存在且非空模板,缺失判 init failstate.json.cultural_reference_disabled_reason 记录拒绝原因idea_bank.json 必须包含 cultural_reference_system 顶层字段(enabled/density_level/reference_files/character_literary_totem/original_poems_planned/key_chapter_allusions/internet_meme_policy)总纲.md 已填核心主线、约束字段与主题内核。idea_bank.json 已写入且包含 opening_strategy 且与最终选定方案一致。新项目自动享用以下插件级能力,无需项目侧配置:
reader-naturalness-checker 汉语母语自然度 + reader-critic-checker 读者锐评(先跑,与其他 11 个平等参与 overall_score 聚合,不 block 流程——其 problems 和其他 checker 的 issues 合并进入 Step 4 定向修复)flow-checker(读者视角流畅度 · 一人分饰两角失忆裸读协议)reader_flow + naturalness + reader_critic,让外部 AI 也参与读者视角评估,与内部 13 checker 对齐,共 182 份独立评分init 完成后的 /webnovel-write 会自动触发全部 ABC 流程。首章/规则揭示章/反派首露章等关键章节可手动用 flow_union_runner.py --runs 3 做 N=3 重跑 issue union 聚合。
详细集成设计见 归途-殡仪馆规则/.webnovel/tmp/flow_test/ABC_FULL_DEPLOYMENT_REPORT.md(示例项目)或 agents/flow-checker.md + skills/webnovel-write/references/step-6-audit-matrix.md (C13/C14/C15)。
触发条件:
idea_bank.json 缺失或内容不一致。恢复流程:
init_project.py;