quality.md 4.2 KB

质量评分

这份文档评的是"代码库本身",不是"某一次改动做得好不好"。 前者回答"项目在变强还是变弱",后者用 sops/evaluator-rubric.md

更新时间:每轮重要会话之后 / 做基准对比之前 / 清理或重构之后 / 换模型或换 agent 时

怎么打分

每个领域按四项打 强 / 中 / 弱

维度 问自己
验证状态 这块有验证手段吗?还是只能靠手点?
Agent 可读性 一个新会话能只靠仓库内文件看懂这块吗?
测试稳定性 验证手段是稳定的,还是时好时坏?
关键缺口 有没有已知但没记下来的问题?

产品领域

对话协议适配(api-chat-coordinator.ts

维度 评级 说明
验证状态 有对真实后端端到端验证的套路;契约测试可复现
Agent 可读性 类型定义完整、关键决策有注释、接口契约在 harness/docs/reference/
测试稳定性 验证依赖真实后端;上游不稳定时会误判(上游失败 ≠ 前端错)
关键缺口 ⚠️ "选中候选提交文本是否循环"从未验证(上游持续失败,status: found 未出现过)。见 exec-plans/tech-debt-tracker.md #1

消息渲染(components/Chat/

维度 评级 说明
验证状态 顺序、换行、复制等有过针对性验证;视觉观感仍靠人工看
Agent 可读性 BusinessRecord.vue 体量大、状态机复杂(打字机 / scope 退出 / 行合并),新人上手成本高
测试稳定性 没有自动化视觉或行为测试
关键缺口 ⚠️ 渲染管线有多处"历史遗留的隐式行为"(如 processPolicyTableBlock 会把 POLICY_TABLE 之前的内容当纯文本),靠注释提示,没有测试兜底

政策卡片与详情(PolicyMatch.vue

维度 评级 说明
验证状态 字段映射有验证;筛选行为按用户要求刻意保持旧实现
Agent 可读性 单文件体量大;"哪些是刻意保持的"只在 tech-debt.md 里说明
测试稳定性 无自动化测试
关键缺口 部门筛选在新数据下筛不出结果(刻意,见 tech-debt.md #4

补问问卷(QuestionCard.vue

维度 评级 说明
验证状态 四种 kind+status 形态有断言;提交映射有覆盖
Agent 可读性 新增的 freeformInputOnTop 等字段有注释;但 message 字段定义了却没渲染
测试稳定性 静态断言稳定;真实交互仍靠手点
关键缺口 status: failed 与"无 status"两种只有静态断言,未在真实后端遇到过

文件上传(待定)

维度 评级 说明
验证状态 入口已隐藏,未开始
Agent 可读性 原实现参数有文档(legacy 快照)
测试稳定性 未开始
关键缺口 ⚠️ 后端方案未定,无法开工(见 tech-debt.md #3

架构层

边界执行 Agent 可读性 说明
协议适配层 职责单一:事件 → 内容标记。渲染层不感知协议,边界清晰
渲染层 边界靠约定维持,无强制手段
网络层(network/api/ 文件少、职责清楚
状态层 无状态库,状态散在组合式函数 + localStorage;跨会话恢复靠 localStorage

当前总评

整体在变强。协议适配层的引入把一个高变动风险(接口协议)隔离在了单一文件里, 这是这段时间最有价值的改动。

最弱的一环是"验证":除了协议适配层,其余部分基本没有自动化验证手段, 依赖人工查看。tools/ 目录建起来之后,鼓励把一次性的验证脚本沉淀下来。

最需要盯的缺口tech-debt.md #1 —— 那是一个可能表现为"死循环"的风险, 且因为上游持续失败而从未被验证过。上游一恢复就该补测。