Files
FreeCADWasmDev/docs/FAILURE_RECONCILIATION_POLICY.md
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

37 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 失败记录随业务闭环
主线仍是功能模块业务和功能路由。失败记录用于定位阻断和验证修复,不建立逐 Python API 重放队列,也不通过清空历史数字宣布移植完成。
## 处理时机
| 情况 | 时机 | 闭环依据 |
|---|---|---|
| 当前命令、构建、加载、计算或持久化失败 | 当前业务批次 | 最新失败之后的匹配执行或明确覆盖故障的当前业务结果 |
| 共享基础设施问题 | 优先处理与当前业务相关的共同原因 | 对应修复及实际成功证据,不重复各模块的相同诊断 |
| 后续模块的历史失败 | 进入该模块时带入,切换模块前安排小批对账 | 当前业务中的同类故障修复或有证据的替代判定 |
| 旧检查、旧路径或旧批次已被替代 | 现在审查,随模块持续清理 | 替代流程、具体原因及源码/证据指纹;记 superseded,不记测试通过 |
| 不适用的诊断或运行事件 | 现在分类并核实 | 明确不适用原因及可追溯依据;记 not_applicable |
| 无法确定原因或关联业务 | 保留 pending 并继续定位 | 不因未知或暂时无法复现而关闭 |
## 实施机制
- 原始账本 `docs/current/freecad-web-scheduler-failures.json` 保留命令、首个错误、最后错误及历史计数,关闭后不删除记录。
- `tools/failure_reconciliation.py` 自动分类并生成 `docs/current/failure-reconciliation.json`;同类分组只用于合并排查,不能代替逐条闭环依据。
- 每个模块工作包带入最多三个相关错误组。直接关联当前 capability 的记录优先;其他模块的失败不混入本批。
- 切换模块时安排最多四条失败记录对账。冷却和无进展规则同样适用,防止对账占满正常实施。
- 对账发现需要代码修复时,用 `tools/record_runtime_issue.py CAPABILITY_ID --error 描述 --failure-key KEY` 关联当前业务。规划器立即转入该业务修复;部署后返回结果确认和失败对账。
- 当前执行或外层构建成功后,仅匹配相同命令的最新失败生成成功证据。新失败改变 occurrence 指纹,旧闭环立即失效。
- 业务用例实际覆盖历史故障时,在对应结果中列出 `resolvedFailureKeys`。外层保存失败指纹,并要求业务结果与当前源码/产物对应后自动闭环;不根据“模块已完成”批量推断通过。
- 过期诊断可以执行 `python3 tools/failure_reconciliation.py --review KEY --disposition superseded --reason 具体原因 --source 相关源码或证据`。`not_applicable` 使用同一入口。运行/构建故障不能仅凭政策文档归档。
- 旧 `repair_scheduler_failure_ledger.py --resolve` 的元数据式通过入口已禁用;搜索无匹配等旧诊断只标记待审查,不再自动伪标 resolved。
## 最终对账
模块业务结果全部完成后,继续处理剩余的 `failure-reconciliation` 批次。`python3 tools/failure_reconciliation.py --check` 必须通过,且最终完成判断直接复核当前原始账本与证据,不依赖旧汇总中的 complete 字样。
状态页分别展示原始记录数、待对账数、已闭环数和未分类/已变化记录数。分类完成不是故障修复完成;superseded/not_applicable 不是原命令测试通过。
## 本轮结果
563 条记录已建立分类。三条只读取废弃 `docs/current/context-manifest.json` 的历史诊断,依据当前逐任务 context 生成与读取源码完成替代审查。原始 563 条仍保留,其中 3 条为 superseded,560 条待后续业务闭环。