webnovel-write
产出可发布章节,完整执行上下文→起草→审查→润色→提交→备份。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
产出可发布章节,完整执行上下文→起草→审查→润色→提交→备份。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
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