归档信息: - 变更名称:phase-1-infrastructure - 工作流:spec-driven - 归档位置:openspec/changes/archive/2026-06-23-phase-1-infrastructure/ 完成情况: - ✅ 所有产物完成(proposal, design, specs, tasks) - ✅ 任务完成:33/35 (94%) - ⚠️ 2 个任务跳过(混合检索、集成测试,有充分理由) 验收结果: - ✅ 静态验证:编译通过 - ✅ 脚本验证:16/16 单元测试通过 - ✅ 端到端验证:上传→索引→检索→删除完整流程 Delta Specs: - 跳过同步(用户选择) - functional-specs.md 保留在归档目录中 devflow 档案: - ✅ 已完整回填(brief, evidence, decisions, acceptance) - ✅ devflow/index.md 状态更新为 archived
2.4 KiB
2.4 KiB
Phase 1 Infrastructure - Decisions Log
Grill 阶段澄清记录
2026-06-23
Q1: SessionContext 字段设计
问题: Redis 会话需要存储哪些字段?
决策:
class SessionContext {
String sessionId;
String diagnosisId;
String currentStep;
Map<String, Object> collectedEvidence;
List<ToolCall> toolCallHistory;
String intentType; // 预留 Phase 2 意图识别
LocalDateTime createdAt;
LocalDateTime lastAccessAt;
}
理由:
- 支持多轮对话恢复上下文
- intentType 预留 Phase 2,避免后续修改结构
- tool_calls 同时存 Redis(临时)和 MySQL(持久)
用户确认: 已确认
Q2: 包名重构策略
问题: org.example → com.superbiz.agent 是否需要兼容层?
决策: 直接全量替换,不保留兼容层
理由:
- 内部项目,无外部依赖者
- 兼容层增加复杂度
- MVP 阶段保持简单
用户确认: 已确认
Q3: Redis 降级策略
问题: Redis 故障时如何处理?
决策: Phase 1 不做降级,Redis 故障直接失败
理由:
- MVP 优先跑通核心流程
- 降级策略增加复杂度
- 单元测试可用内存 Mock
备选方案 (Phase 2/3):
- 自动降级到内存实现
- 返回友好错误提示
用户确认: 已确认(先跑通 MVP)
Evidence-Driven 查证结果
诊断记录 vs 案例的边界
查证文件: docs/tables/diagnosis_record.md, docs/tables/case_library.md
结论:
- 诊断记录:每次诊断都记录
- 案例:从诊断记录中筛选(成功诊断 + 用户反馈 useful)
- 转换触发:diagnosis_record.feedback = 'useful' + confidence >= 80
状态: 已查证,边界清晰
文档范围
查证文件: docs/tables/api_document.md
结论:
- Phase 1: 只处理接口文档(API 文档、错误码说明)
- Phase 2/3: 可扩展为其他类型(运维手册、FAQ)
状态: 已查证,范围明确
单元测试覆盖率标准
查证文件: docs/architecture/implementation-detail.md
结论:
- 目标:行覆盖率 70%+
- Repository: 100%
- Service: 80%+
- Tool: 80%+
- Controller: 70%+
状态: 已查证,标准明确
待写入 CONTEXT.md 的术语
无新增术语。现有术语已在 docs/ 中定义清楚。
待创建 ADR
无。Phase 1 都是标准技术选型,无需 ADR。