Add repairable INVALID_PROGRESS_PROTOCOL observations, independent PROGRESS_PROTOCOL_VIOLATED saturation, and controlled release paths. Archive the OpenSpec change after syncing main specs and devflow.
69 lines
3.2 KiB
Markdown
69 lines
3.2 KiB
Markdown
# Diagnosis 信息增益停止契约 验收
|
||
|
||
## 结果
|
||
|
||
已接受。OpenSpec tasks 37/37 完成;用户确认归档 OpenSpec、提交并推送。
|
||
|
||
## 验证
|
||
|
||
### 静态验证
|
||
|
||
- 命令/检查:`openspec validate diagnosis-information-gain-stop-contract --strict`
|
||
- 结果:passed
|
||
- 备注:Committed OpenSpec 与最终 tasks 一致
|
||
|
||
- 命令/检查:OpenSpec delta → main specs 同步(6 个 capability)
|
||
- 结果:passed
|
||
- 备注:新建 `openspec/specs/diagnosis-information-gain-stop-contract/`,并更新 5 个既有 main specs
|
||
|
||
- 命令/检查:对照 OpenSpec 与代码路径(progress tracker、interceptor、release、trace)
|
||
- 结果:passed
|
||
- 备注:Task 8 行为与 design/spec 对齐
|
||
|
||
### 脚本验证
|
||
|
||
- 命令:`mvn -q "-Dtest=DiagnosisProgressTrackerTest,HarnessToolInterceptorTest,DiagnosisReleaseUseCaseTest,DiagnosisAgentUseCaseTest,HarnessChatConfigurationTest" test`
|
||
- 结果:passed(exit 0)
|
||
- 备注:覆盖协议 violation_type、可修正 observation、连续协议错误 STOP、Release fail-closed、Agent 受控停止
|
||
|
||
- 命令:历史全量回归 `mvn -q -Dtest='!MilvusConnectionTest' test`(tasks 6.2/7.5 阶段)
|
||
- 结果:passed(`Tests=292, Failures=0, Errors=0, Skipped=3`)
|
||
- 备注:未设置 `MILVUS_TOKEN` 时 `MilvusConnectionTest` 失败属外部凭据边界,非本变更回归
|
||
|
||
### 浏览器/人工验证
|
||
|
||
- 步骤:Maven 启动真实应用;Query `诊断切换企业失败的问题`;named SSE + logs + `scripts/query_mysql.py` 按 exact sessionId/runId 核对
|
||
- 结果:passed
|
||
- 备注:
|
||
- `sessionId=iss016-final-20260726-a`
|
||
- `runId=3ab22ed7-d0ed-45d8-b928-dce5790c0542`
|
||
- SSE:`SAFE_FALLBACK` / `MISSING_REQUIRED_CONTEXT` / `done.outcome=FALLBACK`
|
||
- DB:`status=SUCCESS`、`intent=DIAGNOSIS`、`release_outcome=FALLBACK`、`tool_call_count=0`、`total_token_count=2890`
|
||
- Trace:`RUN_STARTED -> ROUTING_* -> AGENT_MODEL_STEP -> EVIDENCE_GUARD_INITIAL -> RELEASE_DECISION/FALLBACK -> RUN_FINISHED/FALLBACK`
|
||
|
||
### 未验证
|
||
|
||
- 本轮 Archive 未再重跑全量 `mvn test` 与完整 live SSE E2E;依赖 Apply 阶段记录与本轮 focused tests。
|
||
- 真实 Provider 下连续协议错误的 live E2E 未单独复跑;协议停止由 focused/scripted loop 覆盖。
|
||
- ISS-015 阶段 2(Evidence Repair Schema)与阶段 3(Reasoning 治理)不在本 change 范围。
|
||
|
||
## 已完成范围
|
||
|
||
- 信息增益停止、scope 去重、STOP_REQUIRED、ProgressSnapshot、统一 Release
|
||
- Token 审计与 Tool 拒绝 Trace
|
||
- 协议修复反馈 + `PROGRESS_PROTOCOL_VIOLATED` 兜底停止
|
||
- 文档:ISS-015 阶段 1、ISS-016、架构文档、glossary 术语、devflow 档案
|
||
|
||
## 已知限制
|
||
|
||
- 重复检测只比较确定性 `tool_name + normalized_scope`,不做自然语言语义去重。
|
||
- 协议错误阈值默认 2,与无增益阈值独立配置。
|
||
- 无安全 ProgressSnapshot 的受控停止继续 fail closed,不伪造用户可见事实。
|
||
- 公开 SSE/前端协议无新增字段;模型侧 Tool Envelope 是已确认 L3 变更。
|
||
|
||
## 交接
|
||
|
||
- 下一步:OpenSpec 已用户确认归档;代码提交并推送到当前分支。
|
||
- OpenSpec 归档确认:用户确认归档(“执行,完后提交推送”)
|
||
- 归档位置:`openspec/changes/archive/2026-07-27-diagnosis-information-gain-stop-contract/`
|