zizi b0bc7a8745 框架: 技能按动作-对象重组 + 先审后入创作闭环
一、技能重组(动作-对象命名)
- 旧目录 clean/confirm/continuation/db/detect/embed/… 重组为
  clean-book-text/decide-candidate/write-next-chapter/access-database/
  check-content-consistency/embed-knowledge/…(git 识别为 rename,内容保持)
- agents/*.md、AGENTS.md/CLAUDE.md 收编、example_skill 登记表同步新名

二、先审后入创作闭环(本次核心)
正文接受从"机械门一过就写正典"改为"机械门+语义审查双通过+用户批准+单事务原子提交",
DB 级兜底,编排层跳步即被硬拒。
- candidate_cas.py + example_candidate_cas(109):持久化 CAS 状态链
- fact_delta.py + example_fact_delta/example_fact_ledger(106):结构化事实增量,
  模型只提六型闭集增量+正文证据引文,仅用户批准的增量随正文同事务入账本
- projection_registry.py + example_projection_run(107):投影登记与恢复
- acceptance_state.py:接受前置实时状态重读
- lesson_registry.py + example_lesson(108):经验升格链,禁止自动升格
- DDL 105:example_candidate 增 semantic_status/semantic_report_sha256
- write_canonical.accept:语义兜底+同事务合并增量+登记投影;
  run_writer_pipeline/persist_writer_run/run_writer_semantic_detector/step2 接入全链
- claude_runtime:兼容新 CLI modelUsage 信息字段

三、审查修复(独立子代理四维审查后)
- 事实增量 propose→approve 翻态正道,不撞唯一键
- 冻结配置探针重刷(CLI 2.1.211→2.1.231 漂移),profileSha256/adapterVersion 再登记
- 可视化合同悬空路径/五六空间矛盾、 SoT 旧技能名漂移、行尾空白清理

测试:离线 65 套 + 真实库集成 5 套(CAS/接受故障注入/事实增量/投影/经验升格)+ 回放 79 项全绿。
创作内容(docs/design、生成正文 artifacts)按"框架与创作分开"未入本提交。
2026-08-14 10:24:08 +08:00

5.4 KiB
Raw Blame History

name, description, disable-model-invocation
name description disable-model-invocation
plan-chapter 根据已确认规划、叙事状态和冻结事实生成下一章结构细纲草稿。正文生成前需要明确章目标、事件因果、出场实体、伏笔动作和章末钩子时使用;不写正文、不读取目标章答案。 true

细纲规划(scenario: fine_outline)

何时用:在正文生成前,把作品大纲、当前状态和已授权设定组织成单章结构细纲。评测回放使用同一合同,但把上下文固定为 as_of 冻结快照;正式创作可以按产品授权扩展到连续章节或全书规划。

输入合同

上下文必须由 assemble-context 组装,至少包含四层中的以下部分:

  • L0 当前任务:目标章号、章节输出合同、用户意图和未知项纪律;
  • L1 叙事现在时:截至当前章的状态、活动线程和必要的近章结构摘要;
  • L2 作品事实:已确认的大纲、设定、知识卡和伏笔台账;
  • L3 授权资料:仅使用装配层已绑定、且来源授权允许本次用途的资料。

回放模式额外要求:所有来源的绝对章号或完整窗口上界必须 <= as_of。目标章正文、目标章细纲、目标章出场清单、未来里程碑和终态摘要不得进入规划上下文。无法证明时间边界的来源按未知处理,不凭名称或窗口号猜测。

规划步骤

  1. 先确认章节在当前大纲弧线中的位置,写出本章戏剧目标和承接关系。
  2. 再按因果顺序拆关键事件:触发、参与者、行动、结果方向和不可逆变化必须能互相解释。
  3. 将实体只列为本章确实需要的角色、势力、地点、物品或规则,并标明本章作用;不能把目标章答案反推成实体清单。
  4. 对伏笔明确写 埋、推进、回收 或 不确定,不得把冻结资料没有证明的结果静默写成确定事实。
  5. 写出章末状态变化和下一步钩子;无法由来源支持的细节放入 unknowns 或 assumptions。
  6. 输出前逐字段自查,确认没有正文段落、对白、原文复述、目标章引用或未来来源引用。

输出合同

字段权威 = meta/schemas/fine_outline.yaml;本节是该合同的产出侧说明,字段集以 yaml 为准。候选必须是一个结构化对象,字段完整且顺序稳定。

必填(writer 装配与机械门的硬依赖,缺一不得落库、不得装配):

targetChapter: 489
sourceRef: { sourceId: "outline:volume_1", sourceVersion: "v1" }
chapterGoal: "本章要完成的戏剧任务"
hardConstraints:
  - "衔接上一章结尾的不可逆事实;设定约束;不可删除/反转/提前回收"
keyEvents:
  - id: event-1
    order: 1
    event: "事件"
    participants: ["实体"]
    trigger: "触发因果"
    resultDirection: "结果方向"
adjustableBeats:
  - "允许 writer 自由处理的次序与比重(不改硬约束)"
declaredNewFacts:
  - factId: "fact-chN-1"
    text: "本章宣告的新事实"
    sourceRef: { sourceId: "outline:volume_1", sourceVersion: "v1" }
mustAppearEntities: ["实体名"]
chapterEndHook: "章末钩子"

推荐(规划表达力;落库字段覆盖门禁会检查,确无依据时显式标注「字段存疑:原因」):

foreshadowing:
  - action: 推进        # 埋 | 推进 | 回收 | 不确定
    subject: "伏笔"
    evidence: "来源 ID 或 unknown"
entities:
  - name: "实体"
    type: character
    role: "本章作用"
stateChanges: ["可观察的状态变化"]
unknowns: ["无法由当前资料证明的内容"]
assumptions: ["为组织结构暂时采用的假设"]
sourceRefs: ["冻结快照中的 sourceId"]
targetChars: 4000       # 可选,受 2000–10000 硬边界

字段纪律:hardConstraints、adjustableBeats、keyEvents、declaredNewFacts、mustAppearEntities、foreshadowing、entities、stateChanges、unknowns、assumptions 必须是数组;chapterGoal 和 chapterEndHook 必须是字符串;sourceRef 必须是含 sourceId/sourceVersion 的对象。keyEvents 规范形为因果对象(触发·参与者·行动·结果方向须互相解释),兼容纯字符串旧形,但新细纲一律用对象形。declaredNewFacts 是 {factId,text,sourceRef} 对象,不是纯字符串。sourceRefs 可选,存在时只能引用快照登记的 sourceId,不能粘贴原文。entities(带本章作用,供覆盖审计)与 mustAppearEntities(硬出场名单,供机械门)分工,不互相替代。

回放专用红线

  • 不得使用参考作品的目标章细纲作为生成输入;它只能在独立评审侧作为 reference scaffold proxy;
  • 不得输出正文、场景对白、完整原文摘要或“我猜原书下一章是……”之类的答案复述;
  • 不得因为知识卡存在而减少对公共大纲和叙事现在时的使用;卡是检索索引和事实补充,不替代公共上下文;
  • 正确卡、无卡、错配卡三臂只能改变卡注入分区,其他任务、模型、预算和输出合同保持一致;
  • 不确定事实显式留在 unknowns,审查智能体据此区分资料缺失和规划错误。

产物边界

候选细纲属于 Shadow 草稿,只进入临时评测目录或 works/<书>/评审/ 的运行噪音,不直接写入正式大纲、知识库或正文。评测最终只保留结构评分、摘要、章节定位、阻断类别和哈希。