任务:缺陷转用例包和规格对不上的几处
依据:
- 架构 6b(
docs/hub-r4-architecture.md137 行):草稿和已有回归文档比命令和参数;每个期望结果都要是修复说明或手册的逐字引文。 docs/hub-r4-tasks/gold-d2c.md页尾集成者答复的第 1、2、4、5 条:这几处是包和规格不一致,记为包的待修项。
这一件从 core-fixes 分支开出,因为 core-fixes 改过这个包(升到 1.5.1),合并时排在 core-fixes 之后。
- 分支和工作树:
d2c-pack-fixes,目录circle-hub-d2c-pack-fixes(从 core-fixes 开出,并入了最新的 hub-redesign,依赖已装好) - 可以改的路径:
packs/workflow/defect-to-case/**和它的测试、README、SKILL.md、样例;包改动后升版本并重签。别的路径不动,核心和合约缺什么先回报。 - 规则:同前(不推送、不建 PR、不发布、不部署;不碰 7420、钥匙串、环境配置文件和任何真实系统;测试只用合成数据;
git commit -s)。所有者的两条规矩照旧:未知只能是过渡状态,写明缺的事实和下一步动作,流程自动走这一步;Hub 只核验,不生成内容。 - 验证:
npx tsc --noEmit;node --test --test-concurrency=1对packs/workflow/defect-to-case/**;包的打包检查。
要做的
- 期望结果必须是逐字引文。现在期望文字可以改写引文,只有提示档的实体检查(
requirements.json53 行,checks.json47–53 行)。照 6b 改成阻断:期望文字(只忽略空白)必须是它所带引文的一段,不是就驳回,给修正说明,计入修复轮数。写法照 case-compile 的expect_not_in_quote。 - 引文来源只许修复说明或手册。现在引文可以来自缺陷记录的任何字段(
functions/subjects.ts96–103 行)。改成只认:缺陷记录里修复说明那个字段,以及这条版本线的手册。别的字段和别的来源驳回,修正说明写明该引哪里。修复说明的字段名是部署事实,放进 PLM 资源的设置里读(和需求追溯那件同一做法);没配置时驳回并写明缺哪个设置。 - 样例里的引用路径。SKILL.md 66 行和 examples 里写成
json@1/p/html_fields/fix,而 PLM 系统包把纯文本放在fields.<字段名>,html_fields只是字段名列表(packs/system/plm/functions/plm.ts118 行),这条路径在真实内容上解析不出来。改成真实形状的写法,样例和测试照改。 - 规范化标题的规则写进 README:NFKC、小写、空白折成一个空格、去两端空白。这是查重用的规则,金标准照这段文字独立实现。
- 查重要求项的说法和实现对齐。
requirements.json70 行写“标题相同或期望结果相同”,可是用例索引的条目不带期望文字,检查也只比标题(functions/checks.ts590–593 行)。把要求项的说法改成实际检查的内容(规范化标题相同)。“期望结果相同”那一支要索引带上期望文字,那是产品包的改动,回报给集成者排期,不在这一件里做。 - 每一条先写改前失败、改后通过的测试;包升一个次版本(改了要求项和检查),重签。
完成后在终端里回报:提交号、测试数量、没做完或拿不准的地方。真实数据上的重跑由集成者做。