# 执行契约简报（宿主 × 模型 × workspace）

**版本**：2.0.2 · **层级**：L0' 补充（与 `SKILL.md`、`intake-and-routing.md` 同读）

## 1. 各方职责边界

| 角色 | 必须保证 |
|------|----------|
| **宿主（IDE / WorkBuddy 等）** | 提供可验证的 workspace 写入、可用 CLI（Node）及网络检索能力声明；不虚构声称已跑过某脚本（unless 实际执行过） |
| **模型（本 Skill 驱动）** | 按 `WP1 → 搜索前置合同 → WP2` 的顺序推进；状态宣告、台账写入与结果展示以当前 `bookRoot` 为准，不依赖对话内易失记忆 |
| **用户 / 主编** | 指定本书根目录、触发门禁与合稿；对豁免项书面确认（文体豁免、时间范围约定等） |

## 2. 双工作面合同（WP1 / WP2）

| 工作面 | 发生时机 | 面向用户如何说 | 内部约束 |
|--------|----------|----------------|----------|
| **WP1 起步工作面** | `INTAKE` 首响 | 先说「整理材料 / 明确主题 / 一起找方向」 | 不把「虚拟书房 / 路径A/B/C / S0」当首句入口术语 |
| **WP2 书稿工作面** | 锁定路径后、进入 `INTAKE → RESEARCH` | 说明「资料、进度、交付都在当前工作区」 | 将 `.fbs/`、`deliverables/`、`releases/` 作为首个可用工作面 |

**绑定规则**：

1. 先在 `WP1` 用日常语言锁定用户入口。
2. 再宣告搜索前置合同（为什么查 / 查什么 / 查完去哪一步 / 不能联网怎么办）。
3. 最后进入 `WP2`，把三层 workspace 与当前阶段动作绑定起来。

## 3. 搜索前置合同

进入任意 `S0/S1/S2` 调研或章节前置检索前，必须在对话里先说清四件事：

- **为什么现在要查**：本轮检索要解决什么不确定性或推进哪一步。
- **要查哪几类内容**：如主题现状、同类内容、目标读者、时间基准。
- **查完后直接进入哪一步**：例如进入大纲、素材盘点或章节写作。
- **离线如何降级**：无法联网时要显式说明为离线降级，而不是静默改用模型知识。

推荐口径：

> 我先查一下当前主题的同类内容、目标读者和时间基准，查完就给你整理出下一步写法；如果现在不能联网，我会明确标注为离线降级。

## 4. workspace 真值与治理边界

以下路径为**跨会话可审计**真相；对话摘要、artifact 文档、宿主记忆不可替代：

| 路径/范围 | 角色 | 说明 |
|-----------|------|------|
| `.fbs/` | **内部真值层** | ESM 状态、检索台账、章节状态、待核实项等过程真值 |
| `deliverables/` | **对外交付层** | `md/html/package` 等用户可见交付物 |
| `releases/` | **发布准备层** | `*-release.json` 与发布映射入口 |
| `brain/<conversation-id>/` | **artifact 层** | 过程性报告/评审稿，可展示但**不得充当项目真值** |
| `.workbuddy/memory` / 宿主记忆 | **参考层** | 只读偏好与背景，不得覆盖本书 workspace 状态 |

首个可用工作面成立条件：

- `.fbs/`、`deliverables/`、`releases/` 三层目录已存在；
- `.fbs/esm-state.md`、`.fbs/规范执行状态.md`、`.fbs/chapter-status.md` 可作为状态入口；
- 对用户的说明先是「当前工作区已就绪」，再按需介绍“虚拟书房”这一术语。

## 5. 原子性与宣告

- 状态切换须满足 `search-policy.json` 的 `esmAnnouncementAtomicity`（旧→新、原因、自检出口、下一步同次输出）。
- P0 阻断条件见 `p0-cli-map.md` 的 `p0AutomationIndex`；脚本存在 ≠ 已执行，以实际命令与退出码为准。
- 若声称已进入 `WP2` 或已完成搜索前置合同，必须能在对话文本与 workspace 状态文件中找到对应证据。

## 6. 相关条文

- 入口路由与首响约束：`references/01-core/intake-and-routing.md`
- 多 Writer 磁盘协同：`references/05-ops/multi-agent-horizontal-sync.md`
- 承诺与工具对照：`references/05-ops/promise-code-user-alignment.md`

