任务:分面视图的未归位汇总,和生产运行的说明进回答
依据:
- 所有者的规矩:未知只能是过渡状态,要写明缺的事实和下一步动作;能拿到的就该拿到。
- gold-case-commands 和 gold-trace 两件里查到的两个核心缺口(集成者 2026-10-23 登记):
- 分面视图没有
only=和分页,截断时空组(未归位)那一行可能被砍掉,回归范围、维护巡检和质量看板只好拒绝启动; - 只出事实的包在
start_run时算出的说明进不了回答。运行摘要去掉了 groups,非空运行的投影 warnings 也不进回答,所以“有 N 个用例解析不出命令”只能靠技能让客户端自己去读分面视图再披露。
- 分面视图没有
这一件从 kb-candidates(K2)开出,因为要改的视图和回答文本 K2 都动过;合并时排在 K2 之后。
- 分支和工作树:
views-and-notes,目录circle-hub-views-and-notes(从 kb-candidates 开出,依赖已装好) - 可以改的路径:
hub/knowledge/views.ts里分面视图那一段,和contracts/src/views.ts里分面视图的形状(照生成器重新生成,--check要过);hub/runs/engine/start.ts里生产运行说明的那一段,hub/server/text.ts里生产运行回答的渲染;- 这三个工作流包的 SKILL 和 README:
regression-scope、maintenance-sweep、quality-board。改完后去掉“截断时拒绝启动”和“客户端自己读分面视图披露”这两种临时做法; - 对应的测试。
别的路径不动。
- 规则:同前(不推送、不建 PR、不发布、不部署;不碰 7420、钥匙串、环境配置文件和任何真实系统;测试只用合成数据;
git commit -s)。 - 验证:
npx tsc --noEmit;node tools/gen-contracts.ts --check;node --test --test-concurrency=1对hub/knowledge/**、hub/runs/**、hub/server/**、contracts/**,和这三个包。
分两步做
- 现在:第 1 条和第 3 条,只动核心(视图、合约、运行说明、回答渲染)。
- 后做:第 2 条和第 4 条,要改三个包。gold-case-commands 和 gold-trace 两件刚改过这三个包,还没合并;它们合并以后由集成者通知你,再在合并后的基础上做。
要做的
- 分面视图带上截断砍不掉的汇总字段:视图在
totals里单独给出空组(按by=取不到值的条目)的计数,和行是否被截断无关。字段名用视图里现有的说法,新取值走生成的词表。测试:行被截断时汇总里的空组计数照样对;没有空组时是 0,不是缺字段。 - 三个包改读这个汇总:
- 回归范围、维护巡检和质量看板改读汇总里的计数;
- 截断时不再拒绝启动,因为汇总一定在;
- 包升版本、重签,样例同步。
- 生产运行的说明进回答:只出事实的包在投影或检查里给出的确定说明(比如未归位数),要写进运行结果,并由
text.ts渲染进模型看得到的回答文字,Circle 只看文本,这样模型才看得见。- 只渲染确定的说明;
- 不加只在文本里有、结构化结果里没有的信息;
- 测试断言这句说明确实出现在回答文字里。
- 去掉临时做法:三个包的 SKILL 里“客户端自己读分面视图再披露”的步骤删掉,改成照 Hub 回答里的说明转述。
完成后在终端里回报:提交号、测试数量、没做完或拿不准的地方。