5.6 KiB
5.6 KiB
Chat Diagnosis StateGraph Cleanup, Final Acceptance And Documentation
Why
阶段 0–4 已完成设计冻结、Graph 骨架、真实 Nodes、ChatService 生产切换和新测试体系,但仓库仍保留只服务旧 Sequential/Hook 链路的生产类,当前架构/评测/demo 文档仍把 Chat 描述为固定顺序、Hook Gatekeeper 和 full tool_trace_summary。阶段 5 需要删除这组死代码、将当前文档与真实 StateGraph 对齐,并首次运行统一 Maven live E2E、日志和数据库验收,形成 ISS-011 最终闭环。
What Changes
- 删除无生产消费者的
VerifierInputHook、VerifierContextHolder、ToolTraceSummaryService及其 focused test;保留仍被 Graph 使用的共享 parser/Gatekeeper/verified input 组件。 - 更新当前架构、Trace 生命周期、证据管线、质量门禁、反馈、评测和 demo 文档,明确 StateGraph 条件边、verified-only Verifier、Run
orchestration_trace和三层测试体系。 - 更新 interview demo check,使其强制读取
run.orchestrationTrace,并在 summary 输出 final node、termination reason、degraded、transition count 和 evidence retry count。 - 运行新的 Graph/Chat/Trace/Controller/Repository/Gatekeeper/Composer/Eval 回归和固定 diagnosis eval baseline。
- 使用
mvn spring-boot:run启动mvp-demoprofile,运行唯一 session 的 Chat→exact Trace→feedback E2E。 - 只检查本次 E2E 新增日志片段,并用
scripts/query_mysql.py核验 V012、当前 Run、AgentStep/ToolInvocation、self-evaluation/orchestration trace、feedback 和跨 Run 隔离。 - E2E 全部通过后将 ISS-011 从 active 移到 archived,更新 issues index 和验收 checkbox。
Capabilities
New Capabilities
chat-diagnosis-stategraph-cleanup-docs:规定旧编排死代码清理、当前架构文档对齐、最终自动化回归、Maven live E2E、日志/数据库证据和 Issue 关闭门禁。
Modified Capabilities
mvp-demo-trace-acceptance:最终 interview demo 必须断言精确 Run 的非空 orchestration trace,并把 StateGraph 路由摘要纳入可复现证据包和检查清单。
Scope
In Scope
- 旧 Hook/ThreadLocal/trace-summary producer 闭包删除和引用清理。
- 当前(非 archive/design history)架构、eval、demo 与 Issue 文档更新。
- demo preflight 脚本的 orchestration trace assertion/summary 扩展。
- 所有阶段 5单元/集成/评测门禁和最终 live E2E/log/DB 验收。
- ISS-011 状态关闭、归档和阶段 5独立 Git commit。
Out of Scope
- 不重写历史 archived issues、旧 design-notes 或旧 fixture payload;它们保留时间点语义。
- 不删除 Trace UI/eval 对历史
tool_trace_summary的只读兼容支持。 - 不改变 Graph 路由、Prompt、API、DTO、DB schema 或诊断业务行为;发现生产偏差时按实现期冲突规则处理。
- 不 push,不清理仓库已有凭据/基础设施配置;这些不属于 ISS-011。
Context Constraints
VerifierInputHook与VerifierContextHolder当前只互相引用;ToolTraceSummaryService只被该 Hook 和自身测试使用,因此四文件构成可删除闭包。ExecutorEvidenceParser、ExecutorGatekeeperService、GatekeeperNode、VerifiedInputNode、VerifierNodeAdapter和DiagnosisGraphResultMapper是新链路真理源,不得随旧闭包删除。- 新 StateGraph Chat run 的
run.orchestrationTrace必须非空;顶层/session 不重复,历史 null 仍兼容。 - demo summary 必须从 exact run trace 读取 Graph 摘要,不能从日志反推路由。
- 日志验收只分析本次启动/Run 的新增内容;数据库查询必须使用 exact sessionId+runId,不能以 latest 全局记录代替。
- live E2E 必须在所有实现、单元测试、eval、static gates 通过后执行,并在结束后关闭应用进程/端口。
Acceptance
- 生产/测试源码中不存在
VerifierInputHook、VerifierContextHolder、ToolTraceSummaryService定义、import、实例化或类型依赖;负向契约测试 MAY 保留名称字符串以阻止回归;Graph verified-only、安全 Fallback 和 Gatekeeper tests仍全绿。 - 当前架构/Trace/eval/demo 文档不再把 Chat 描述为 SequentialAgent/Hook Gatekeeper/full tool trace Verifier。
- demo check 对
run.orchestrationTrace缺失 fail fast,并把路由摘要写入 interview summary。 - 新 Graph suite、保留安全回归、test compilation、fixed diagnosis eval baseline、OpenSpec/static gates全部通过。
- Maven
mvp-demolive startup 成功;Chat/Trace/feedback 请求成功并返回精确 runId。 - 新日志片段可关联本次 sessionId/runId,无未解释 ERROR;数据库证明 Run=SUCCESS/CHAT、answer/metrics/evaluation/trace 非空、feedback=useful、步骤/工具属于当前 run、V012 列存在且 trace JSON 可解析。
- 应用进程和 9900 端口最终清理;ISS-011 移到 archived 并更新 index/checklist。
Risks
- 删除
ToolTraceSummaryService可能遗漏隐藏消费者;删除前后使用全仓引用搜索、test compilation 和 retained tests验证。 - 当前架构文档引用面广;只更新 architecture index 声明的 current docs 和 active demo/eval docs,历史 archive/design-notes 保持不变。
- live LLM/外部基础设施存在波动;先做 readiness,失败时按日志/Run/Trace/DB 证据 diagnose,禁止把环境失败伪装为验收通过。
- E2E 可能污染已有 demo session;使用时间戳唯一 sessionId 和 exact runId 查询,并在证据中记录。
- Maven/Java 子进程可能遗留;以端口和进程双重检查清理,避免影响后续工作。