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