CommunityRédaction et éditiongithub.com

zhougz520/novel-architect

Agent skill for long-form Chinese serial web-novel workflows with review gates, state guards, and quality signals.

Qu'est-ce que novel-architect ?

novel-architect is a Claude Code agent skill that agent skill for long-form Chinese serial web-novel workflows with review gates, state guards, and quality signals.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add zhougz520/novel-architect

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Novel Architect — 商业连载网文创作 Skill

版本 3.0.0。目标是让 Agent 以“脚本状态守卫 + 模型文学判断”的混合方式,稳定完成中文商业连载网文的开书、续写、审校、修稿和长线维护。

0. 总原则

把本 skill 当成可自主执行的工作流,不要把 CLI 命令清单转交给用户。

  • 用户负责提供高层创作目标、题材、平台、偏好、限制和重大方向选择。
  • Agent 负责读取本 SKILL.md,必要时读取 references/,自行调用 novel_architect CLI,自行读取产物,自行生成 JSON/正文/修稿,并推进到有效停止点。
  • Python CLI 是确定性工具层,负责项目状态、索引、账本、门禁、信号、hash 和文件落盘;它不是给用户手动执行的说明书。
  • 模型负责文学判断和创作输出:market pack、beat 选择、正文写作、model signal、修稿、反馈诊断。
  • 只有在缺少 shell/文件工具、项目路径不明且无法推断、或需要真正的创作方向取舍时,才询问用户。

有效停止点只有这些:章节 gate.passed=true 并已 commit;前三章审校失败需要重写开头或重做 market pack;缺少必要输入导致无法继续;工具权限不足;需要用户在多个重大创作方向中选择。

1. 运行命令约定

在能导入 novel_architect 的工作区执行命令。优先使用项目仓库根目录下的:

uv run python -m novel_architect <command> ...

如果当前环境没有 uv 但包已安装,使用:

python -m novel_architect <command> ...

如果 console script 可用,也可以使用:

novel-architect <command> ...

执行前先确定项目路径:用户给出路径则使用该路径;用户只说“这本书/继续写”时,先检查常见 projects/<书名>/ 目录和 project.json;多个候选项目无法判断时再问用户。

review、save-first3-review 等命令返回非 0 通常表示门禁未过,不代表程序崩溃。此时读取输出 JSON、gate.json 或 repair.json,修复后重试。

2. Agent 自主执行契约

必须自己执行的动作

当任务涉及开书、续写、审校、修稿、改纲、重建、反馈诊断或状态检查时,Agent 必须自己调用 CLI、读取输出、写入文件并继续流程。

不要只回复:

请运行 python -m novel_architect prepare ...

应当实际运行命令,检查产物,再继续下一步。只有环境没有 shell/文件权限时,才给用户命令。

导出的 prompt 都是 Agent 工作项

这些命令会导出 prompt 或 input 文件。Agent 需要读取它们并亲自生成对应 JSON/文本,再调用保存命令或更新文件。

导出命令产物Agent 下一步
market-openeditorial/market_pack_prompt.md、market_pack_input.json生成严格 JSON,调用 market-save
beat-candidateseditorial/chXXXX/beat_competition_prompt.md、beat_competition_input.json、beat_options.json选择/生成最强方案,调用 beat-select,再 apply-beat-selection
export-signal-prompts12 个 signal prompt JSON逐个生成 model signal JSON,调用 save-model-signal
first3-reviewdata/reviews/first3_review_prompt.md、first3_review_input.json生成含 review_input_hash 和 8 个分数的 verdict,调用 save-first3-review
feedback-diagnosedata/feedback/chXXXX_diagnosis_prompt.md、input生成诊断;如需保存,将诊断写入反馈 JSON 的 diagnosis 后调用 save-feedback
export-title-review-prompt / export-intro-review-prompt书名/简介审校 prompt生成诊断,必要时更新 market_pack.json、书名/简介候选或开书资料

不要让用户把这些 prompt 粘给另一个模型,除非用户明确要求这种人工协作模式。

3. 任务入口速查

用户意图Agent 应执行的主流程
开一本新书init → market-open → market-save → 补强真相源 → first-10-retention / save-first10-plan → 前三章试生产
继续写下一章status → prepare → beat competition → 写正文 → review → model signals → review → 修稿循环 → commit
修复本章读取 editorial/chXXXX/repair.json 和 gate.json → 改正文 → review → 必要 model signals → 再 review → 通过后 commit
前三章审校第 1-3 章已提交后运行 first3-review → 生成 verdict → save-first3-review
改纲/改设定修改 src/*.json 真相源 → rebuild → status → 必要时重跑受影响章节 review
卷级/批量体检batch-review、volume-review、benchmark、status
平台反馈回流save-feedback → feedback-diagnose → 生成诊断 → 更新后续滚动规划/market pack/章节 notes
拆书建模learn --sample-dir <dir>,再把结论转成可执行的题材/节奏/章节规划调整

gen-prompt 只用于用户明确要求“导出给外部写作模型/Claude Code 的独立提示词”时。普通续写不要用 gen-prompt 替代 prepare → beat → writing_task → review → commit 主流程。

4. 开书流程

开新书时,不要直接开始写第 1 章。先建立市场定位和真相源。

4.1 初始化项目

python -m novel_architect init --project <project_dir> --title <title> --genre <genre> --platform <platform> --premise <premise> --core-hook <core_hook> --protagonist <name>

初始化会生成 project.json、src/、manuscript/、data/、editorial/ 等目录。初始化只提供骨架,不代表开书策划完成。

4.2 生成并保存 market pack

运行 market-open,读取导出的 prompt/input,自行生成严格 JSON,再运行 market-save。

market pack 必须至少包含:

  • target_platform
  • genre_lane
  • target_reader
  • reader_desires
  • core_sell_points
  • anti_sell_points
  • title_candidates
  • intro_candidates
  • first_10_chapter_retention_plan
  • platform_notes
  • author_constraints

前 10 章计划中每章必须有 chapter、hook、visible_payoff、drop_off_risk。不要写“加强冲突”“提高爽感”这种不可执行空话。

4.3 补强真相源

src/ 是人工确认真相源。开书后检查并补强:

  • src/blueprint.json:前提、核心钩子、核心冲突、主角目标。
  • src/characters.json:角色身份、欲望、恐惧、弱点、弧线、slug。
  • src/character_voice_bible.json:角色声纹规则、禁用口吻、行动偏好、情绪泄漏点。结构为 {"schema_version":1,"characters":{"角色名":{...}}};如果文件还是 skeleton 或角色 needs_completion=true,先补全再正式写正文。
  • src/world.json:世界/行业/力量规则,只保留服务冲突和爽点的设定。
  • src/taboos.json:绝对不能碰的桥段、AI 味、题材反模式。
  • src/volumes.json:卷级目标和滚动章纲。不要一次性把整本每章写死。
  • src/genre_config.json:题材打法;内置优先支持玄幻升级、都市逆袭、历史权谋、悬疑破局,其他题材需更依赖 market pack 和自定义 genre_config。

修改真相源后运行:

python -m novel_architect rebuild --project <project_dir>
python -m novel_architect status --project <project_dir>

不要手动修改 data/ 里的账本或派生状态来“修好”剧情;长期语义修正写入 src/ledger_overrides.json 或对应 src/*.json,再重建。

4.4 前十章留存计划

使用 first-10-retention 导出/生成计划;必要时自行细化后用 save-first10-plan 保存。前十章是入口漏斗,规划应具体到每章的 hook、可见收益、弃读风险和不能做什么。

5. 续写下一章标准流程

每章必须走完整闭环。不要直接根据聊天上下文写正文。

5.1 状态检查

先运行:

python -m novel_architect status --project <project_dir>

确定当前完成章数、gate 状态、索引健康和待处理风险。不要依赖聊天记忆判断下一章号。

5.2 PREPARE

python -m novel_architect prepare --project <project_dir> --query "<本章高层创作要求>"

产物:editorial/chXXXX/writing_task.json。这是写作阶段的自包含任务包,必须读取。它包含 writer_brief、narrative_context、叙事槽、商业留存字段、角色声纹、读者承诺、输出格式和硬规则。

第 4 章以后,prepare 会检查前三章专项审校。正常新书不得使用 --force-after-first3-fail;该参数只用于旧项目迁移或调试。

5.3 Beat competition

第 1-10 章必须执行 beat competition;第 10 章以后默认也建议执行,除非用户明确要求快速草稿。

python -m novel_architect beat-candidates --project <project_dir> --chapter <n>

读取导出的 prompt,生成或选择一个策略最强的方案,保存并应用:

python -m novel_architect beat-select --project <project_dir> --chapter <n> --file <selection.json>
python -m novel_architect apply-beat-selection --project <project_dir> --chapter <n>

选择标准:可见爽点最清楚、敌人损失最具体、角色按钮最鲜明、章尾追更理由最强、弃读风险最低。应用后重新读取最新 writing_task.json。

5.4 WRITE

根据 writing_task.json 写正文并保存到 manuscript/第XXX章-标题.md。标题必须有点击感,不要只保存为 第XXX章.md。

正文必须严格遵守 writing_task.output_format.field_template:

  1. # 第XXX章-标题
  2. ## 章节信息
  3. ## 本章大纲
  4. ## 正文
  5. ## 记忆回写

关键要求:

  • 正文不少于 2000 字,目标 2000-2500 字。
  • 使用中文弯引号 “”。
  • 第一段承接上章钩子;第 1 章则快速建立压迫、主角欲望和可见机会。
  • 每章必须有普通读者 5 秒内能复述的可见爽点。
  • 专业流程/术语必须转译成钱、权、脸面、身份、关系、秘密、战力、资源或安全得失。
  • 角色对白必须体现 character_voice_bible,禁止所有人同一种战略总结口吻。
  • 如制造新的读者期待,必须在记忆回写中填写新增读者承诺;如兑现期待,必须填写兑现 ID 和可见证据。

5.5 REVIEW 第一轮

python -m novel_architect review --project <project_dir> --chapter <n>

如果返回非 0,读取 editorial/chXXXX/gate.json 和 repair.json,不要跳过。

5.6 模型信号评估

导出信号 prompt:

python -m novel_architect export-signal-prompts --project <project_dir> --chapter <n>

前 10 章、卷首、卷末、高潮、转折、发布前章节:12 个 signal 都要生成并保存 model signal。

稳定期最低也要覆盖:

  • reader_pull
  • visible_payoff
  • blockbuster
  • title_hook
  • character_voice
  • domain_translation
  • story_logic
  • state_guard

保存每个模型信号:

python -m novel_architect save-model-signal --project <project_dir> --chapter <n> --signal <signal_type> --file <signal.json>

模型信号必须输出严格 JSON。若评分低于 7,不得写 pass。模型 pass 不能覆盖 heuristic warn/fail;最终采用 strictest merge。

5.7 REVIEW 第二轮与修稿循环

保存 model signals 后重新运行:

python -m novel_architect review --project <project_dir> --chapter <n>

只有 gate.json 中 passed=true 才能提交。若 passed=false,读取 repair.json,改正文后重复 review/model-signal/review,直到通过或到达有效停止点。

5.8 COMMIT

python -m novel_architect commit --project <project_dir> --chapter <n>

只在 gate 通过后执行。commit 会推进状态、重建索引、更新账本、处理 reader promise 创建/兑现/逾期。不要跳章提交;不要手动改 gate.json 或 signals 来强行通过。

6. 前三章专项门禁

新书第 1-3 章是试生产阶段。第 1、2、3 章分别完成 prepare → beat → write → review → model signals → review → commit 后,必须执行:

python -m novel_architect first3-review --project <project_dir>

读取 data/reviews/first3_review_prompt.md 和 first3_review_input.json,生成 verdict JSON,再保存:

python -m novel_architect save-first3-review --project <project_dir> --file <first3_verdict.json>

允许继续第 4 章必须同时满足:

  • verdict == "continue"
  • bulk_continue_allowed == true
  • 原样包含当前 review_input_hash
  • 8 个评分全部存在:title_intro_click_score、first_chapter_hook_score、protagonist_desire_score、conflict_speed_score、first_payoff_speed_score、enemy_or_pressure_score、setting_clarity_score、continuation_score
  • 所有评分都是 1-10 数字,且全部 >= 7

如果结果是 rewrite_opening,先修前三章;如果是 redo_market_pack,先重做 market pack、书名/简介/前十章计划。不要用 --force-after-first3-fail 正常推进新书。

前三章正文、market pack 或入口输入变化后,旧 first3_review 会因 hash 过期而阻断第 4 章以后生产,必须重新运行 first3-review 并保存新 verdict。

7. 门禁与 12 个信号

review 生成 12 个信号、verdict、gate、repair。每次 review 都重新运行 heuristic signal;新鲜 model signal 保存为 .model.json 变体参与 strictest merge;final signal 取更严格结果。

信号检测内容失败处理
anti_aiAI 套话、抽象密度、空段落、直引号hard,必须修
story_logicPOV、信息来源、力量/商业逻辑、信息倾泻hard,必须修
state_guard钩子、代价、敌人线、必需元素、禁区、逾期 reader promisehard/quality,必须修
emotion情绪弧线、关系动态、后效quality,失败不可提交
blockbuster压迫/反制/兑现/代价四段爽点弧线quality,失败不可提交
visible_payoff钱/权/脸面/身份/关系/秘密/能力/资源/安全得失quality,失败不可提交
reader_pull开场钩子、中段悬念、章尾追更、成瘾循环quality,失败不可提交
title_hook章节标题点击感、标题/文件名一致性、章末钩子quality,失败不可提交
character_voice角色声纹差异、禁用口吻、对白归属quality,失败不可提交
domain_translation专业设定是否转译成普通读者可见得失quality,失败不可提交
novelty结构/章法/结尾模式重复market,失败也会阻塞
continuity钩子、代价、敌人线程承接market,失败也会阻塞

简单规则:只看 gate.passed。passed=true 才能 commit;passed=false 就修。

8. 长线维护

  • 每章:完整执行 prepare → beat → write → review → model signals → review → repair → commit。
  • 每 3 章:运行 status,检查 active/overdue reader promises、gate 变化、索引健康。
  • 每 5 章:运行 batch-review --start <a> --end <b>,检查连续弱项和重复模式。
  • 每 10 章或关键节点:运行 volume-review、benchmark,滚动更新 volumes.json 和后续 5-10 章规划。
  • 每卷结束:检查卷目标、敌人损失、读者承诺兑现、下一卷钩子。
  • 发布后:用 save-feedback 记录数据和评论,用 feedback-diagnose 转成下一轮实验建议。样本很小时不要过拟合单条评论。

9. 真相源与目录规则

项目结构:

projects/<书名>/
├── project.json
├── src/                  # 真相源,人工确认设定和规划
├── manuscript/           # 正文章节 .md
├── data/                 # 派生状态,可重建,不手动改
├── editorial/            # 每章 brief / writing_task / signals / gate / repair
└── exports/

重要规则:

  • src/ 与 manuscript/ 是 truth input。
  • data/、editorial/ 是运行时/派生产物;不要手动改它们来绕过门禁。
  • 改设定、改卷纲、改角色时修改 src/*.json,再 rebuild。
  • 改正文时修改 manuscript/第XXX章-标题.md,再 review。
  • 长期人工账本修正写入 src/ledger_overrides.json,再 rebuild。

10. 禁止事项

不要做以下事情:

  • 不要把 CLI 工作转交给用户手动执行。
  • 不要没有 prepare 就直接写正式章节。
  • 不要跳过 beat competition 写前 10 章。
  • 不要 gate.passed=false 还 commit 或继续下一章。
  • 不要为正常新书使用 --force-after-first3-fail。
  • 不要只保存 heuristic review 就认为商业质量足够;关键章节必须做 model signal。
  • 不要手动改 gate.json、signals 或 data/ledgers 来制造通过。
  • 不要让章节没有标题或只叫 第XXX章.md。
  • 不要让记忆回写长期填“无”,尤其是 reader promise。
  • 不要把专业流程写成会议纪要、授权记录、复核清单,而不转译成读者可见得失。
  • 不要承诺逐字模仿某位作者或某本现成作品的语言风格。

11. 需要读取的参考文件

按需读取,避免把全部资料一次性塞入上下文。

文件何时读取
references/pipeline-spec.md对 PREPARE/WRITE/REVIEW/COMMIT、恢复、hash、新鲜度有疑问时
references/review-spec.md处理 12 signals、model signal、verdict、gate、repair 时
references/story-spec.md不确定章节格式、章节模式、节奏变体、记忆回写字段时
references/state-spec.md改状态、账本、reader promise、ledger overrides、rebuild 时
references/genre-spec.md题材打法、genre_config、题材 marker、内置 playbook 时
references/learning-spec.md拆书建模和样本结构学习时
references/longrun-spec.mdbatch/volume/benchmark 和长篇稳定性检查时

如果实现行为、README 和 references 冲突,以当前 Python CLI 行为为准,并在维护任务中同步文档。

12. 常用命令清单

python -m novel_architect --help
python -m novel_architect init --project <dir> --title <title> --genre <genre> [--platform <platform>] [--premise <text>] [--core-hook <text>] [--protagonist <name>]
python -m novel_architect market-open --project <dir> [--platform <platform>] [--genre-hint <genre>] [--seed-idea <idea>] [--author-intent <intent>] [--constraint <text>] [--stdout]
python -m novel_architect market-save --project <dir> --file <market_pack.json>
python -m novel_architect market-status --project <dir>
python -m novel_architect first-10-retention --project <dir> [--stdout]
python -m novel_architect save-first10-plan --project <dir> --file <first10.json>
python -m novel_architect status --project <dir>
python -m novel_architect prepare --project <dir> [--query <text>]
python -m novel_architect beat-candidates --project <dir> --chapter <n>
python -m novel_architect beat-select --project <dir> --chapter <n> --file <selection.json>
python -m novel_architect apply-beat-selection --project <dir> --chapter <n>
python -m novel_architect review --project <dir> --chapter <n>
python -m novel_architect export-signal-prompts --project <dir> --chapter <n>
python -m novel_architect save-model-signal --project <dir> --chapter <n> --signal <type> --file <signal.json>
python -m novel_architect commit --project <dir> --chapter <n>
python -m novel_architect resume --project <dir> --chapter <n> [--query <text>]
python -m novel_architect first3-review --project <dir>
python -m novel_architect save-first3-review --project <dir> --file <first3_verdict.json>
python -m novel_architect batch-review --project <dir> --start <a> --end <b>
python -m novel_architect volume-review --project <dir> [--volume <n>]
python -m novel_architect benchmark --project <dir>
python -m novel_architect rebuild --project <dir>
python -m novel_architect rebuild-index --project <dir>
python -m novel_architect validate --project <dir> --chapter <n>
python -m novel_architect learn --sample-dir <dir>
python -m novel_architect save-feedback --project <dir> --chapter <n> --file <feedback.json>
python -m novel_architect feedback-diagnose --project <dir> --chapter <n>
python -m novel_architect feedback-summary --project <dir>
python -m novel_architect gen-prompt --project <dir> [--outline-file <path>] [--stdout]

Skills associés