# 文档修订页

新工作区默认开启来源约束的编辑修订。它是面向来源可追溯正文的构建阶段，在不修改
正式知识页、不补写事实的前提下，提高发布内容的知识价值和可读性。

初始化时如需关闭：

```bash
context init context --no-optimize-docs
```

已有工作区保持当前设置，可显式调整：

```bash
context optimize-docs enable
context optimize-docs disable
context status --format json
```

开启后，工作流只规划新增或发生变化的来源 Section。CLI 为每个 Section 枚举机械
信号和允许动作；Agent 可以保持不变、局部修复、在同一来源边界内重排，或在 CLI
确认其属于无知识价值内容时省略。只有实际变化的页面才在原文旁生成完整修订页：

```text
knowledge/guides/setup.md
knowledge/guides/setup__revision.md
```

`__revision.md` 是保留后缀。默认知识发现、结构、检索和包选择都排除修订页；
校验和构建根据文件名把它关联回同目录原文，并仍按原文件名输出。修订页只额外
记录无法推导的原文摘要；原文路径和修订 Section 由文件名与正文差异推导。完整修订
页中未变化的 Section 直接推导为 `keep`；整页都不修改时，运行时只保存一个页级负
缓存键，不重复保存改写正文或 Section 元数据。

局部修复适用于 Markdown、空白、空表格行，以及来源已经说明用途的链接名称。结构
重排适用于宽表格、长单元格、图片与链接混排或过长段落，但不能跨 Section 搬运事实。
未回答的问题集合、空占位、没有结论的草稿、重复内容和只有旧稿的 Section 可以省略；
有答案的问句、有影响和动作的限制、带替代方案的废弃说明仍属于知识。链接目标、图片、
代码、命令、数字、标识符、条件和来源引用由 CLI 机械保护。事实时效、职责或敏感值不
明确时，CLI 会把相关 Section 集中列入计划的 `input_requests`，工作流只询问用户一次，
不会自动省略。

机械信号只是审阅线索，不代表最终结论，也不是完整的可读性检查。Agent 必须阅读每个
Section；若对带信号的 Section 选择 `keep`，需要在本次决策中逐段说明信号为何误报，
或修改为何会损害来源忠实度，并在说明中逐一写出对应的信号 code，供 CLI 机械核对覆盖
是否完整。CLI 会拒绝没有具体说明或漏掉信号的 `keep`，但这段说明只用于当前决策审计，
不会写入正式知识、修订页或构建产物。部分信号误报也不能成为整批保持不变的理由。

时间、成本、工作量、批次规模或赶进度都不是 `keep`、跳过或延期的有效理由。全托管
模式下，Agent 应自动完成所有安全的局部修复、结构重排和允许省略，直到当前批次收敛；
只有确实无法从当前 Section 或来源证据取得的语义信息，才集中向用户询问一次。片段多
不能降低质量标准，也不能把整批默认判为 `keep`。

工作区采集、审核或构建完成后，用户可以直接通过对话要求修正某篇知识。Agent
先使用标题、正式知识路径或 ViewRef 启动修订：

```bash
context revise "<标题、正式知识路径或 ViewRef>" --format json
```

CLI 只在目标唯一时创建或复用该页修订，并由 Agent Graph 返回
`route.document-revision.requested`。若有多个候选，Agent 必须依据当前对话选定，
否则询问用户。Agent 只在已有 `context:section` 内编辑面向读者的正文，不修改来源
信息、Section 边界和受保护值，随后运行 `context optimize-docs validate`。校验成功后，
请求自动结束；若产物因此过期，下一条 Route 会直接提示重新构建。即使工作区
此前关闭了整库文档编译优化，这个入口也只激活目标页面，不会让其他页面进入
待优化队列。上游内容变化后，旧修订页会成为冲突，不会被静默应用。

关闭后，修订页会被移动到 Context 的运行时恢复目录，下一次构建直接使用正式
知识。
