任务:缺陷转用例包和规格对不上的几处

依据:

  • 架构 6b(docs/hub-r4-architecture.md 137 行):草稿和已有回归文档比命令和参数;每个期望结果都要是修复说明或手册的逐字引文。
  • 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/**;包的打包检查。

要做的

  1. 期望结果必须是逐字引文。现在期望文字可以改写引文,只有提示档的实体检查(requirements.json 53 行,checks.json 47–53 行)。照 6b 改成阻断:期望文字(只忽略空白)必须是它所带引文的一段,不是就驳回,给修正说明,计入修复轮数。写法照 case-compile 的 expect_not_in_quote。
  2. 引文来源只许修复说明或手册。现在引文可以来自缺陷记录的任何字段(functions/subjects.ts 96–103 行)。改成只认:缺陷记录里修复说明那个字段,以及这条版本线的手册。别的字段和别的来源驳回,修正说明写明该引哪里。修复说明的字段名是部署事实,放进 PLM 资源的设置里读(和需求追溯那件同一做法);没配置时驳回并写明缺哪个设置。
  3. 样例里的引用路径。SKILL.md 66 行和 examples 里写成 json@1/p/html_fields/fix,而 PLM 系统包把纯文本放在 fields.<字段名>,html_fields 只是字段名列表(packs/system/plm/functions/plm.ts 118 行),这条路径在真实内容上解析不出来。改成真实形状的写法,样例和测试照改。
  4. 规范化标题的规则写进 README:NFKC、小写、空白折成一个空格、去两端空白。这是查重用的规则,金标准照这段文字独立实现。
  5. 查重要求项的说法和实现对齐。requirements.json 70 行写“标题相同或期望结果相同”,可是用例索引的条目不带期望文字,检查也只比标题(functions/checks.ts 590–593 行)。把要求项的说法改成实际检查的内容(规范化标题相同)。“期望结果相同”那一支要索引带上期望文字,那是产品包的改动,回报给集成者排期,不在这一件里做。
  6. 每一条先写改前失败、改后通过的测试;包升一个次版本(改了要求项和检查),重签。

完成后在终端里回报:提交号、测试数量、没做完或拿不准的地方。真实数据上的重跑由集成者做。