delivery-assurance.md 9.6 KB

交付保障:自检 / 收尾 / 超时 / 中止

本 reference 覆盖交付前的四道保障机制,收口于 Step 5 交付阶段。


执行率自检(SELF-AUDIT)

收尾报告发出前强制执行,最多 3 轮。任一 ❌ 回退对应阶段修复 → 重走 Step 4 验证 → 重检。

§ 规则 证据
Step 4 E2E 条目 ≥ 下限,且含 ≥ 1 条边界/异常路径(非仅 happy-path) 实际条数 + 边界路径标注
验收标准 必选功能全部可运行 逐条
安全 安全清单全过(见 execution-safety 安全红线清单) 逐条
代码质量 质量自审 10 条通过 逐条
性能 性能禁则无违规 grep
Step 4 GATE-CHECK 含原始输出 条数
轮次 不卡死计数 < 3 各诊断点
构建 全文件 lint 通过 逐文件
Step 3 修改阶段 CHECKPOINT 已输出 批次
回退 .bak / .bak.1 / .bak.2 保留,临时文件已清理 ls
规划 规划文件回读确认 + 状态已更新 逐项(Trivial Fix → 自动通过)
图谱 G1 图谱影响面结论与 grep 实测不符 → 一律以 grep 为准 grep 原始输出
图谱 G2' 图谱影响面清单须附 grep 实测证据(覆盖清单全部文件) grep 片段逐文件
图谱 G3 不可逆操作(删/重命名/DDL)不单凭图谱,须 grep 复核 + 用户确认闸门 确认记录
架构自检 关键架构决策已留痕:含候选方案 / trade-off / 反选理由 / 撤销条件(模板见 architecture-decision.md);无过度设计、无欠设计、模块边界合理、未引入非必要依赖 决策记录片段
证伪 关键算法 / 关键结论已构造反例尝试推翻,附反例或说明证伪失败(跑通 ≠ 正确,happy-path 通过 ≠ 无缺陷,禁用弱用例通过冒充正确) 反例片段 / 证伪失败说明

反例构造三步(证伪行的执行方法,禁形式应付):

  1. 识别不变量——算法依赖什么假设?(如:递归栈节点不重复、环计数不重不漏)
  2. 构造违反不变量的输入——什么输入会打破假设?
    • 空值 / null / 空集合
    • 自环 / 互环 / 平行边(图算法)
    • 并发写 / 竞态条件
    • 超大输入 / 超长字符串
    • 边界值(0 / 1 / 最大值 / 负数)
  3. 验证实现是否拒绝或正确处理——遇到反例是崩溃、错误结果、还是正确处理?

项目知识图谱硬门禁(双保险底线):自校验保证"不准的边不进图",但漏抽(动态依赖)自校验发现不了,故上述 G1/G2'/G3 为最后底线——任一不满足,SELF-AUDIT 判不通过、卡交付前。与"无验证证据=未完成"红线同源:agent 不能靠自评绕过谎报(详见 references/project-knowledge-graph.md 第六步)。

附加检查:裸键 grep / SQL 拼接 / 输出转义;不卡死计数 < 3;回读确认;批量修改无 SKIP/ROLLBACK;plan 中断点已标注。

3 轮规则:超出 3 轮 → 列出未修复项 + 原因 + 2-3 选项;5 分钟无回复 → 输出最终收尾(标未修复),不阻塞交付。


收尾报告模板

每次任务交付末尾强制输出,禁止自由格式。

📊 完成度: X% | 主线: {状态} | 产出: {摘要 ≤ 3 句} | 待办: {内容 / 无} | 下一步: {建议 ≤ 3 句}

字段约束:

  • 完成度:基于已验收功能 / 总功能 × 100%;仅纯调研/演示/规则维护等无主线交付物时填 N/A(元任务)
  • 主线:进行中 / 已完成 / 已中止;支线不计入
  • 产出:1-3 句,含文件路径和验证方式
  • 待办:无遗留填 无,有遗留注明优先级与阻塞原因
  • 下一步:无后续填 无,有后续写最小可行动作

确认超时默认规则

场景 默认行为
通用确认(无专属约定) 5 分钟无回复 → 最保守 / 安全选项自动推进
路由歧义(多子技能匹配且无法组合/定优先级) 5 分钟无回复 → 默认回退「意图三分法 + 领域路由首选 reference」先按首选推进;若首选与用户原始表述强冲突,则交用户拍板,不擅自切换
破坏性操作(DDL / 删除 / 覆盖 / 批量写) 本规则优先级高于 execution-safety.md 的澄清降级例外,破坏性操作一律不降级。分支判定:① 有可靠 .bak 且影响可局部化 → 5 分钟无回复走通用确认(最保守选项推进)、进入时附「确认即执行」语句 + 标注回滚点;② 否则 5 分钟无回复 → 默认取消(保留 .bak,可回来重试)
规划确认(大项目唯一人工确认点) 5 分钟无回复 → 默认推进
安全相关确认 一律等待用户明确回复,不自动推进

Graceful Abort(优雅中止)

用户主动中止或遇到不可恢复阻断时执行:

中止流程

  1. 输出中止声明:

    [ABORT] 中止原因: ___; 当前阶段: ___; 已完成: ___ 项
    
  2. 保留回滚资产:

    • 保留所有 .bak / .bak.1 / .bak.2 备份文件
    • _plan.md 标注 ## 状态: 已中止,中断点写 阶段X / 步骤N / 中止原因
  3. 清理临时文件:

    • 删 tests 桩 / 一次性临时脚本(不含批量脚本 tests/s.py)
    • 严禁删 .bak / .bak.1 / .bak.2
  4. 简化收尾:

    📊 完成度: X% | 主线: 已中止 | 产出: {已完成项} | 待办: {未完成项} | 下一步: {恢复方式}
    

恢复方式

  • 从 handoff.md 或 _plan.md 的 ## 中断点 恢复
  • 回滚方式:倒序逐文件 .bak 恢复 → lint 确认(.bak 为最新备份,.bak.1 次之,.bak.2 最旧)