将角色与 Skill 从 .claude 迁入 .agent,移除 Claude CLI 运行时并接入固定 Opus 角色 profile、完整 schema、预算 deadline、raw 与回执证据链。 同步拆分 Skill 职责、复利 lesson、Gate 回放、Dashboard 人审入口、数据库登记和机械门禁;候选设计正文不包含在本提交中。
9.0 KiB
name, description, disable-model-invocation
| name | description | disable-model-invocation |
|---|---|---|
| deconstruct-book | 从完整存量作品逆向拆出章节细纲、阶段大纲、实体线索和脱敏写作范式。需要解析用户旧稿或参考书全书时使用;不负责把作品面知识按窗升格,也不确认产物。 | true |
全书解析/拆书(scenario: full_parse | purpose: extraction | 槽位: 分析→extractor)
何时用:没拆过的完整/存量作品。与章后抽取(extraction)的分工:那边是"已有大纲细纲、写新章后抽增量";这边是"什么都没有,从全文逆向解析出规划层与知识面"。
两个子场景(产出归属不同)
| 子场景 | 产出 | 归属与确认 |
|---|---|---|
| 2a 用户存量作品(U7/C8) | 章节结构+逐章细纲+全书大纲+实体/关系/事件+末章 narrative_state | 全为候选,按章审阅确认(产品-03 §3.7);确认后成正式规划与 Local KB,作品才可续写;脱敏红线不适用自有稿 |
| 2b 系统参考书(G3/B1-B2,如封神演义) | 同上解析产物作中间脚手架(拆书证据链,留档、不需逐章确认)+在脚手架上拆范式五型 | 范式卡(脱敏)入 Global,管理员确认=G3 门;脚手架标 internal |
范式五型也是 entity-scope 的型,但与作品实体分两批:作品实体归 Local、范式归 Global 且吃脱敏红线。
元数据驱动
- 规划逆向的结构=
outline/chapter/scene/narrative_state字段合同;实体=各实体型字段合同;范式=五型字段合同+「判据」归型——schema 加字段,解析产出立刻多一列。 - 「细纲」是本仓先行的规划粒度层级(SoT 只有"正式规划项"),连同规划逆向本身都是对产品-03 §3.7 的增补(SoT 全书解析只列章节/实体/关系/事件)——待回填。
编排形态
一本完整的书=成百上千次顺序调用,单个 agent 的上下文装不下也不该装。编排层是确定性 workflow(分章循环/断点续跑/入库/进度统计);循环体是 scripts/parse_llm.py 直调 New-API MiniMax-M3(经 call-content-model),输入=第 N 章原文+库里积累的脚手架,输出=本章细纲+实体增量,写回库。关键约束:
- 状态全在库,不在会话:前 N-1 章的细纲/实体是第 N 章的上下文,必须从库读;
- 断点续跑与幂等:已处理章号落库,重跑某章=按章号覆盖其 draft 行,随时可停可续;
- 顺序性只来自增量判重(新实体要对着已积累实体判重合并),细纲逆推本身章间独立;
- 进度每 10 章报一行(章号/新实体数/累计分型统计)。
出卡权上移窗级(B4-S3 重构,现行):章级逐章出卡有三同根病(同功撞车/单章证不成跨章公式/间隔数字伪精确),治法=章级只产「范式候选线索」(并入脚手架 pass,正文只过一遍),出卡在窗级聚类归并——同一手法多章多次出现归并成一张母卡+实例章号,间隔章数由实例章号差机械计算(M3 禁自报数字)。跨窗/跨书同手法靠嵌入判重(初筛 ≥0.85 → M3 归并终判 merge/keep,拿不准保留)。大纲窗行(example_parse_outline,幂等键=窗起始章)是出卡窗的唯一切分依据。
放量全流程(每书五步,均 M3):
# ① 章级 pass(细纲+实体+范式候选线索;断点续跑,重跑自动补失败章)
.venv/bin/python .agent/skills/deconstruct-book/scripts/parse_llm.py chapters --work-id 4 --from 1 --to 50
# ② 窗级大纲聚合(每 5–10 万字:多章细纲+正文→阶段大纲;书末残窗无论大小必成窗)
.venv/bin/python .agent/skills/deconstruct-book/scripts/parse_outline.py window --work-id 4
# ③ 窗级聚类出卡(窗=②的窗行;线索+细纲+阶段大纲→母卡;守卫+判重在 parse_ingest cards)
.venv/bin/python .agent/skills/deconstruct-book/scripts/parse_llm.py cards --work-id 4
# ④ 全书拆完:终检(逐窗细纲对账大纲 + 跨段连贯性纵览)
.venv/bin/python .agent/skills/deconstruct-book/scripts/parse_outline.py check --work-id 4
# ⑤ 公共卡三角色审核(番茄作家/起点作家/主编,M3 常设步骤;见 review-knowledge-cards Skill)
.venv/bin/python .agent/skills/review-knowledge-cards/scripts/review_cards.py review --batch <批次> --work-id 4
# 进度
.venv/bin/python .agent/skills/deconstruct-book/scripts/parse_ingest.py progress
审核纪律:常设审核=M3(已用 opus 金标准校准,偏差 0.45 达标);fable/opus 只做起量前校准与起量后一次总审核(门禁与优化,不进流程循环)。
试拆实测病理档(放量前须知):M3 细纲按比例会写超(治=绝对字数上限+压缩重试);type 一律标 craft 且串型混填(治=合同动态渲染+字段指纹改型+窗级聚类);重跑自噬(治=窗级幂等软删+0 卡不软删,章级判重名录已随 S3 废除);source 偷懒(治=出处由实例机械生成)。parse_ingest 的 patterns 命令是 S3 前章级出卡入口,仅留作回滚保险。
窗行冲突(放量首日实测,现行机械门):--window 变化后若计划窗与存量窗同 from_order、不同 to_order,window 命令以 WINDOW_PLAN_CONFLICT 失败关闭——禁止「已有大纲跳过」吞掉新大窗。换窗重切必须显式 --replace-windows(单事务软删该书全部活窗行后再切)。出卡仍挂「窗起」,须随后重跑 cards。
.venv/bin/python .agent/skills/deconstruct-book/scripts/parse_outline.py window \
--work-id 4 --window 80000 --replace-windows
作品面知识抽取与维护已拆分:extract-work-knowledge 负责 windows/run/status 正常抽取;backup-work-extraction 负责七域备份与恢复,reset-work-extraction 负责全量重抽前重置,repair-work-extraction 负责单卡修复、presence 清理、legacy failed 恢复与存量迁移。拆书产出的章级细纲和实体脚手架是正常抽取输入;本 Skill 不含其 runbook。
终态体检与样张已拆分:跨拆书与升格两管线的只读核对工具(全链体检与样张导出)归 inspect-parse-health。顽固敏感章抢救 scripts/parse_salvage.py 是拆书章级的常设工具,留本 skill。
范式线失败关闭(2026-07-21 假绿复盘后现行):parse_outline.py window、parse_llm.py cards、parse_outline.py check 是同一本作品的顺序流水线。普通网络/429/5xx 由 chat_governed 在单模型内短重试后沿 MiniMax-M3 → MiniMax-M2.7 → glm-5.2 → deepseek-v4-flash 降级;整条链耗尽,或功能层结构输出有限重试仍失败,必须立即停止当前作品并保留断点,禁止跳窗/跳型继续。cards 和 check 开始前机械验证大纲窗对全书章域无头部、中部、尾部缝隙;任一缝隙非零退出。补插窗后所有终检按 from_order/to_order 绝对章号排序并重新编号阶段,window_no 只作运行展示号,不得参与时序判断。
步骤(自底向上,与创作期规划的自顶向下互为镜像)
- 静态分章:
import-bookSkill(规则,LLM 不参与); - 逐章内环——复用
extract-chapter-knowledge的字段 checklist:逆推本章细纲(章目标/关键事件/出场/伏笔动作/钩子)+抽实体增量;上下文=前 N-1 章已积累的细纲与实体(知识库从空增量生长,作品+元数据+知识库+当前章公式在此逐章成立); - 自底向上聚合:章细纲→卷粗纲→主线一句话;伏笔跨章连线(哪章埋哪章收)在聚合时补;
- 2a 补末章 narrative_state;2b 在脚手架上跑范式拆取(判据归型/字段成卡/判重合并例证);
- 汇报:分章数/细纲覆盖率/实体分型统计/(2b)范式分型统计+设计发现。
比例约束(防"摘要化伪装成结构化";创始人已拍板@2026-07-09,权威值在 outline schema 字段说明)
- 章细纲/章正文 ≈ 3–5%(3000 字章→100–150 字);卷粗纲/卷正文 ≈ 0.3–0.5%;主线一句话 ≤50 字。
- 细纲是结构骨架,不是缩写:超比例=机械退回重解析的判据——比例约束的价值不只是省 token,是防解析退化成压缩复述。
脱敏红线(仅 2b 系统级)
只写抽象结构与手法归纳,严禁抄录原文;≥15 连续字与原文重合=违规;每卡带出处(书名+回目+一句话情节定位)。
输出合同
文件版:2a 落 works/<书>/(候选);2b 脚手架落参考书目录、范式卡入 knowledge/范式/(草稿)。PG 版(B2):结构化清单经主会话 access-database 写入(draft)+embed-knowledge 嵌入。均不提交/不自确认。
输入
- 用户明确点名本 Skill 所服务的创作阶段任务包(作品、章节/场景范围、冻结上下文摘要)。
- 只消费 本 Skill 的
references/目录 中与当前阶段相关的合同段落。
数据边界
- 读写范围限于本 Skill 合同声明的表/文件;失败整体回滚,不留半写入状态。
- 模型调用走统一网关;raw 证据由
record-run-evidence归档。
复利合同
- 窗大纲命令成功收尾后经
propose_lesson_dedup登记example_lesson(绑 work_id 与窗覆盖数)。 - 升格仍走人工评审,不自动把单书大纲升为公共范式。