# 模块 4:任务上下文契约
任务上下文契约不是一句“帮我分析”。它规定任务需要哪些事实、遵守哪些约束、缺少什么时停止,以及结果如何交给下一步使用。
Prompt 只是这份契约的常见承载形式之一。
---
# 固定约束与运行时事实要分开
| 固定上下文 | 每次任务重新提供的事实 |
|---|---|
| 先取证、再判断、最后给方案的要求 | 本次变更目标 |
| 证据不足时标记待确认 | 已读文件、diff、日志和测试结果 |
| 输出必须区分事实、建议和未知项 | 当前接口、字段、状态和权限信息 |
| 不得编造运行结果或业务结论 | 本次允许与禁止修改的范围 |
可复用的是判断框架;项目事实必须作为运行时上下文重新提供。
---
# 影响分析的输出契约
```md
任务:基于提供的源码与记录分析本次变更,不要修改代码。
必备上下文:变更目标、已读源码、状态或权限规则、diff 或测试记录。
输出必须包含:
1. 已确认事实:每项关联来源路径或输入证据。
2. 影响链路:入口、业务边界、状态/数据副作用。
3. 候选方案:范围、优缺点、验证方式。
4. 最小改动建议:允许修改与明确不改内容。
5. 待确认项:证据缺口以及不能推出的结论。
约束:没有证据时写“待确认”;不得补充测试、接口或业务结果。
```
---
# 任务上下文契约也需要测试用例
| 输入情况 | 期望行为 | 不能接受的行为 |
|---|---|---|
| 入口、Service 与测试齐全 | 输出可追溯的影响分析 | 只给泛化最佳实践 |
| 只有页面截图或单个文件 | 明确缺少 API、状态或验证证据 | 自行补全调用链 |
| 要求跨层重构但无依据 | 标记范围风险并给出最小方案 | 默认修改数据库、权限和页面 |
| 测试结果缺失 | 输出待执行验证项 | 写成“测试已通过” |
一份任务上下文契约在不同事实输入下都能保持边界,才具备复用价值。
---
# 上下文契约失控的三个信号
输入缺失仍结论完整
说明模型在补猜,缺少待确认出口。
输出无法进入下一步
说明没有固定输出结构或验收字段。
每次都要重写长背景
说明固定约束和变量输入没有拆开。