webnovel-write
产出可发布章节,完整执行上下文→起草→审查→润色→提交→备份。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
产出可发布章节,完整执行上下文→起草→审查→润色→提交→备份。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
AI长文创作引擎。去AI写作痕迹+33类AI模式检测+5维度评分+声纹校准。当需要撰写长文、去除AI味、优化写作风格时使用。
使用审查 Agent 评估章节质量,生成报告并写回审查指标。
启动只读小说管理面板,查看项目状态、实体图谱与章节内容。
深度初始化网文项目。通过分阶段交互收集完整创作信息,生成可直接进入规划与写作的项目骨架与约束文件。
从当前会话提取成功模式并写入 project_memory.json
基于总纲生成卷纲、时间线和章纲,并把新增设定增量写回现有设定集。
| name | webnovel-write |
| description | 产出可发布章节,完整执行上下文→起草→审查→润色→提交→备份。 |
| version | 6.0.0 |
| tags | ["writing","novel","chapter","drafting"] |
| requires_tools | ["read_file","write_file","patch","search_files","terminal","clarify"] |
| requires_toolsets | ["file","terminal"] |
产出可发布章节到 正文/第{NNNN}章-{title}.md。默认 2000-2500 字,用户/大纲另有要求时从之。
| 模式 | 流程 |
|---|---|
| 默认 | Step 1→2→3→4→5→6 |
--fast | Step 1→2→3(轻量)→4→5→6 |
--minimal | Step 1→2→4(仅排版)→5→6 |
Agent 工具调用指定 subagent;不得用主流程口头代替 subagent 输出用户要求 > 状态机硬门槛 > 项目约束(总纲/设定/记忆)> skill 流程 > reference 建议
python -X utf8 "${SCRIPTS_DIR}/reference_search.py" --skill write --table {表名} --query "{关键词}" --genre {题材}
触发条件:新角色→命名规则,战斗→场景写法,多角色对话→写作技法,情感描写→写作技法,高频桥段→场景写法。
export WORKSPACE_ROOT="${WORKSPACE_ROOT:-$PWD}"
export SCRIPTS_DIR="${SKILL_ROOT_DIR:?}/scripts"
export SKILL_ROOT="${SKILL_ROOT_DIR:?}/skills/webnovel-write"
python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${WORKSPACE_ROOT}" preflight
export PROJECT_ROOT="$(python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${WORKSPACE_ROOT}" where)"
python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${PROJECT_ROOT}" placeholder-scan --format text
genre 从 .webnovel/state.json 的初始化配置快照读取,用于刷新合同树;写前主链真源仍是 .story-system/ 合同。调用 story-system 前必须先从详细大纲解析真实本章目标,禁止传 {章纲目标}、第N章章纲目标 等占位 query。
GENRE="$(python -X utf8 -c "import json,sys; s=json.load(open('${PROJECT_ROOT}/.webnovel/state.json',encoding='utf-8')); print(s.get('project',{}).get('genre',''))")"
python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${WORKSPACE_ROOT}" \
story-system "${CHAPTER_GOAL}" --genre "${GENRE}" --chapter {chapter_num} --persist --emit-runtime-contracts --format both
必备文件:MASTER_SETTING.json(调性/禁忌)、volume_{NNN}.json(卷级节奏)、chapter_{NNN}.review.json(必须节点/禁区)。缺失则阻断。
chapter_{NNN}.json 必须优先检查顶层 chapter_directive。chapter_focus 只能来自 chapter_directive.goal 或真实 query,不得从 dynamic_context 的参考摘要继承。
写作任务书排序必须固定为:
chapter_directive.goal/time_anchor/chapter_span/countdown/chapter_end_open_questionmust_cover_nodesforbidden_zones,违反即不通过dynamic_context,仅作风格参考,不能覆盖章纲约束必须使用 Agent 工具调用 context-agent,不得由主流程自行整理任务书。
Agent(
subagent_type: "webfission-creative:context-agent",
prompt: "chapter={chapter_num}; project_root=${PROJECT_ROOT}; scripts_dir=${SCRIPTS_DIR}; storage_path=${PROJECT_ROOT}/.webnovel; state_file=${PROJECT_ROOT}/.webnovel/state.json(projection/read-model,仅兼容读取)。先 research,再按 本章硬性约束→CBN/CPNs/CEN→本章禁区→风格指引→dynamic_context补充参考 的顺序输出五段写作任务书。"
)
产物:一份写作任务书,能独立支撑 Step 2 起草。
只根据任务书起草。不加载 core-constraints/anti-ai-guide(已内化到任务书)。只输出纯正文,无占位符。有结构化节点时围绕 CBN→CPNs→CEN 展开。中文思维写作。
必须使用 Agent 工具调用 reviewer,不得由主流程伪造审查 JSON。
Agent(
subagent_type: "webfission-creative:reviewer",
prompt: "chapter={chapter_num}; chapter_file=${CHAPTER_FILE}; project_root=${PROJECT_ROOT}; scripts_dir=${SCRIPTS_DIR}。严格输出 reviewer schema JSON,并保存到 ${PROJECT_ROOT}/.webnovel/tmp/review_results.json。"
)
python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${PROJECT_ROOT}" review-pipeline \
--chapter {chapter_num} \
--review-results "${PROJECT_ROOT}/.webnovel/tmp/review_results.json" \
--metrics-out "${PROJECT_ROOT}/.webnovel/tmp/review_metrics.json" \
--report-file "审查报告/第{chapter_num}章审查报告.md" \
--save-metrics
审查只跑一轮,reviewer 只调用一次。blocking=true 的问题在不改剧情、不破设定的前提下定点修复后直接进 Step 4,不重新调用 reviewer;确实无法修复的 blocking 问题用 AskUserQuestion 让用户裁决(接受当前版本 / 手动修复 / 放弃)。非 blocking issue 交给 Step 4 处理。--fast 只检查 setting/timeline/continuity。--minimal 跳过。
加载 polish-guide.md、typesetting.md、style-adapter.md。
顺序:修复非 blocking issue → 风格适配 → 排版 → Anti-AI 终检。
只改表达不改事实。anti_ai_force_check=fail 时不进 Step 5。--minimal 仅排版。
必须使用 Agent 工具调用 data-agent,产出 fulfillment_result / disambiguation_result / extraction_result 三份 JSON,并复用 Step 3 的 review_results。
Agent(
subagent_type: "webfission-creative:data-agent",
prompt: "chapter={chapter_num}; chapter_file=${CHAPTER_FILE}; project_root=${PROJECT_ROOT}; scripts_dir=${SCRIPTS_DIR}。从正文提取事实,生成 .webnovel/tmp/ 下的 fulfillment_result.json、disambiguation_result.json、extraction_result.json;fulfillment_result.json 必须顶层包含 planned_nodes/covered_nodes/missed_nodes/extra_nodes;disambiguation_result.json 必须顶层包含 pending;extraction_result.json 必须严格按你的第7节格式输出顶层字段 accepted_events/state_deltas/entity_deltas/entities_appeared/scenes/summary_text,禁止包在 chapter/fulfillment/disambiguation/extraction 等外层对象里;accepted_events 子项必须包含 event_id/chapter/event_type/subject/payload;不直接写 state/index/summaries/memory。"
)
Data Agent 只提取事实+生成 artifacts,不直接写 state/index/summaries/memory。
python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${PROJECT_ROOT}" chapter-commit \
--chapter {chapter_num} \
--review-result "${PROJECT_ROOT}/.webnovel/tmp/review_results.json" \
--fulfillment-result "${PROJECT_ROOT}/.webnovel/tmp/fulfillment_result.json" \
--disambiguation-result "${PROJECT_ROOT}/.webnovel/tmp/disambiguation_result.json" \
--extraction-result "${PROJECT_ROOT}/.webnovel/tmp/extraction_result.json"
自动判定:blocking_count>0 或 missed_nodes 非空 或 pending 非空 → rejected,否则 accepted。
projection_status 五项(state/index/summary/memory/vector)全部 done 或 skipped。
chapter_status 由 projection writer 自动推进:accepted→committed,rejected→rejected。
commit 未生成→重跑 5.2。projection 失败→只补跑失败项。不回退 Step 1-4。
python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${PROJECT_ROOT}" backup \
--chapter {chapter_num} \
--chapter-title "{title}"
备份必须以解析后的 PROJECT_ROOT 为准,禁止从工作区父目录执行裸全量 Git add,避免把书项目仓库作为父仓库的嵌入仓库/submodule 加入。
| 陷阱 | 说明 | 规避方法 |
|---|---|---|
| 上下文不足 | context-agent 输出的写作任务书信息不够 | 检查任务书字数和覆盖维度,不足则补充 |
| 审查未落库就润色 | 跳过reviewer直接润色 | 硬依赖:Step 3 必须在 Step 4 之前完成 |
| blocking=true 被忽略 | 审查发现阻断问题但未修复 | 充分性闸门强制检查 |
| Anti-AI 检测失败 | 润色后仍有明显AI味 | anti_ai_force_check=pass 是硬门槛 |
| Git 嵌套仓库 | 裸全量 git add 把父仓库嵌入 | backup 必须以 PROJECT_ROOT 为锚点 |
| 正文编码异常 | 中文标点/特殊字符被截断 | 全程 UTF-8,write_file 前检查编码 |
# 验证正文文件存在且字数达标
wc -m 正文/第{NNNN}章-{title}.md # 应 >= 2000 字
# 验证审查已落库
python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${PROJECT_ROOT}" \
status --chapter {chapter_num} 2>&1 | grep -q "committed" && echo "✅ committed"
# 验证 CHAPTER_COMMIT 存在
ls .story-system/commits/CHAPTER_COMMIT-{chapter_num}-*.json && echo "✅ commit"
--minimal 除外)--minimal 除外)审查缺失→重跑 Step 3。摘要/状态/记忆缺失→重跑 Step 5。润色失真→回 Step 4 修复后重跑 Step 5。SKILLEOF