120 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: 规划下一章
description: 根据已确认规划、叙事状态和冻结事实生成下一章结构细纲草稿。正文生成前需要明确章目标、事件因果、出场实体、伏笔动作和章末钩子时使用;不写正文、不读取目标章答案。书级设定/大纲/装配归 制定作品规划;本 Skill 是 section_type=fine_outline 的唯一写入方(经 persist_planning.py --owner-skill 规划下一章)。
disable-model-invocation: true
---
# 细纲规划(`scenario: fine_outline`)
何时用:在正文生成前,把作品大纲、当前状态和已授权设定组织成单章结构细纲。评测回放使用同一合同,但把上下文固定为 `as_of` 冻结快照;正式创作可以按产品授权扩展到连续章节或全书规划。
**与 `制定作品规划` 的分工**:书级设定/大纲/状态/装配归 `制定作品规划`;**下一章可写细纲**(`fine_outline` schema)只由本 Skill 产出并落库。`制定作品规划` 不得写入 `section_type=fine_outline`。落库示例:
```bash
.venv/bin/python muse/lifecycle/flow/skills/book/制定作品规划/scripts/persist_planning.py write <payload.json> \
--work-id N --section-type fine_outline --target-chapter M --schema-type fine_outline \
--owner-skill 规划下一章
```
## 输入合同
上下文必须由 `准备任务上下文` 组装,至少包含四层中的以下部分:
- **L0 当前任务**:目标章号、章节输出合同、用户意图和未知项纪律;
- **L1 叙事现在时**:截至当前章的状态、活动线程和必要的近章结构摘要;
- **L2 作品事实**:已确认的大纲、设定、知识卡和伏笔台账;
- **L3 授权资料**:仅使用装配层已绑定、且来源授权允许本次用途的资料。
回放模式额外要求:所有来源的绝对章号或完整窗口上界必须 `<= as_of`。目标章正文、目标章细纲、目标章出场清单、未来里程碑和终态摘要不得进入规划上下文。无法证明时间边界的来源按未知处理,不凭名称或窗口号猜测。
## 规划步骤
1. 先确认章节在当前大纲弧线中的位置,写出本章戏剧目标和承接关系。
2. 再按因果顺序拆关键事件:触发、参与者、行动、结果方向和不可逆变化必须能互相解释。
3. 将实体只列为本章确实需要的角色、势力、地点、物品或规则,并标明本章作用;不能把目标章答案反推成实体清单。
4. 对伏笔明确写 `埋`、`推进`、`回收` 或 `不确定`,不得把冻结资料没有证明的结果静默写成确定事实。
5. 写出章末状态变化和下一步钩子;无法由来源支持的细节放入 `unknowns` 或 `assumptions`。
6. 输出前逐字段自查,确认没有正文段落、对白、原文复述、目标章引用或未来来源引用。
## 输出合同
字段权威 = [`fine_outline.yaml`](../../../../../content/meta/schemas/fine_outline.yaml);本节是该合同的产出侧说明,字段集以 yaml 为准。候选必须是一个结构化对象,字段完整且顺序稳定。
**必填**(writer 装配与机械门的硬依赖,缺一不得落库、不得装配):
```yaml
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: "章末钩子"
```
**推荐**(规划表达力;落库字段覆盖门禁会检查,确无依据时显式标注「字段存疑:原因」):
```yaml
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/<书>/评审/` 的运行噪音,不直接写入正式大纲、知识库或正文。评测最终只保留结构评分、摘要、章节定位、阻断类别和哈希。
## 数据边界
- 写:`example_planning_section`(`section_type=fine_outline`,须 `--owner-skill 规划下一章`);执行证据经 `record_planning_execution` 写 run/raw/receipt,并可写 `example_lesson`。
- 不读目标章正文/答案细纲;不写 Canonical 正文。
## 红线
- 不得绕过 `FINE_OUTLINE_OWNER` 用 `制定作品规划` 默认 owner 写入 `fine_outline`。
- 不得输出正文、对白或目标章答案复述(见「回放专用红线」)。
- 未确认细纲不得进入 writer 生成上下文。
## 失败关闭
- `persist_planning.py write`:缺 `target_chapter`、字段覆盖门禁失败、owner 不符 → 整单不落库。
- `record_planning_execution`:section 不存在或落库异常 → 非零退出,不半写证据。
## 复利合同
- **消费**:已确认书级规划、叙事状态、冻结事实(经 `准备任务上下文`)。
- **回写**:`fine_outline` 经 `persist_planning.py --owner-skill 规划下一章` 落库后,由 `制定作品规划/scripts/record_planning_execution.py` 的 `propose_lesson_dedup` 登记「规划 section 已持久化:fine_outline」(与 制定作品规划 共用 recorder,避免双写)。