已合并
test: cover the record-mode validator under CI #603
aflyingto创建于 2 天前
test: cover the record-mode validator under CI #603
已合并
aflyingto创建于 2 天前
aflyingto成员
2 天前

变更内容

record 模式校验器自动化覆盖(issue 629,!601 测试审查 P3 跟进):

  • 新增 tests/test_validate_ai_record.py(149 行,importlib 加载模式同 test_verify_remote_facts)四组 14 用例:
    • section 语义:正文返回/注释不计/整行占位不计/列表形态占位不计/混合列表行(真实内容+括号备注)不误伤
    • 字段共存:列表式与标题式解析并存
    • record 负例:填充过/空章节/纯注释章节/未替换占位/混合草稿(证据段占位旁路——三方收敛场景)
    • 出厂行为对齐:issue-create 与列表式 pr-self-check 原样模板 record 必挂、template 模式通过
  • .github/workflows/ci.yml ubuntu test job:Python 单测由仅 test_wrapper 扩为三模块——顺带修复 test_verify_remote_facts.py 写了却从未进 CI 的既有缺口
  • spec/delivery/ci-workflows.md §2.1 job 表措辞同步("Python wrapper 单测" → "Python 单测(wrapper、AI 记录校验器、远端事实核验)")

作者自检

  • 作者主体标识: Claude Code 主会话(aflyingto 账号操作);与四角色评审 Agent 为不同执行主体
  • 根因或实现理由: section_content 约 20 行分支逻辑无 CI 触达(make/CI 均只跑 template 模式),record 回归完全静默;!601 定型的占位符语义(双形态/混合草稿)无自动化钉扎
  • 主要修改: 3 文件 +149/-2(测试 149 行 + CI 一行 + spec 措辞)
  • 影响范围: 纯测试 + CI 步骤扩展 + 规范措辞;零生产代码;CI 契约不受影响——步骤属镜像契约显式声明的未覆盖维度,结构不变量零触碰(contracts 套件实跑全过)
  • 单元测试: go test ./... 163 包全过(含 contracts);python3 -m unittest 三模块 29 用例全过(新 14 + wrapper + verify-remote-facts)
  • 构建: 无涉
  • CI 验证: 7c6764a 双端全绿——GitCode run 5555c8d2(五 job COMPLETED)+ GitHub run 40284000944(镜像 PR 116,九 job success;ubuntu test job 首次执行三模块接线,29 用例随 CI 通过——CI 改动自证);GitCode 侧 Python 单测缺口记录于未覆盖项
  • 实际命令验证: 14 用例本地全过;出厂行为对齐用例直接钉住 !601 的核心保证
  • 安全审查: 无凭证;纯测试
  • 文档同步: §2.1 措辞同步;§5.4 契约描述无需改(未新增契约维度)
  • 风险: risk/medium(tests + CI 步骤默认档)
  • 未覆盖项: GitCode CI 的 Python 单测接线(既有缺口,需评估 codearts runner 的 python 可用性与 setup-python 成本,宜独立 issue);GitCode 侧 test job 亦不跑 test_wrapper 属同一缺口
  • 自检结论: 可进入 ready-for-review

Closes #629

🤖 Generated with Claude Code

likedislike
Pull Request已成功合入, 合并人@aflyingto
(感谢 aflyingto 的贡献)
Aaflyingto成员
2 天前 创建了 pull request,commit 88e2d662
Aaflyingto成员
2 天前 关联了issue:test: validate-ai-record record 模式的 section_content 无自动化覆盖(占位符/注释/早断分支)
Aaflyingto成员
2 天前 添加了label:risk/lowscope/testingstatus/drafttype/test
Aaflyingto成员
2 天前 添加了label:risk/medium
Aaflyingto成员
2 天前 修改了pull request 的描述
aflyingto成员
2 天前 评论:

多角色独立执行主体评审汇总

评审主体

  • 作者主体: Claude Code 主会话(aflyingto 账号操作)
  • 评审主体: 四个独立评审 Agent(review-code / review-security / review-test / review-docs),与作者互为不同执行主体,均基于分支 diff、CI 同款命令实跑(29 用例)与 YAML 实况核验独立验证

评审轮次与结论(单轮闭环)

评审角色 结论
代码审查 approved(0 发现;断言强度两档设计背书;既存 P3 明确不入本 PR)
安全审查 approved(0 发现;新入 CI 模块确认无网络/凭证面)
测试审查 approved(0 发现;其 !601 P3 方案完整兑现 + 防误伤护栏加料获赞;接线形态四点论证)
文档审查 approved(0 发现;措辞与步骤逐字对应;GitCode 不接线裁定经 YAML 实况双重核验)

发现问题与修复情况

无发现——单轮一次闭环。两条纳米级既存观察(§2.1 的 (ubuntu) 限定标注)由两位评审员独立判定为既有排版惯例、不入本 PR。

覆盖面终态

  • record 模式校验器 14 用例进 CI(section 语义 ×5 / 字段共存 ×1 / record 负例 ×5 含混合草稿三方收敛场景 / 出厂行为对齐 ×3)
  • 顺带闭合既有缺口:test_verify_remote_facts 写后从未进 CI——本 PR 起三模块齐接
  • 三条评审收敛线(!601 占位符旁路)在 test_mixed_draft_with_evidence_placeholder_is_reported 用例上归一钉死

总体评审结论

四角色全部 approved(零发现,一次闭环)。 风险分级 risk/medium(测试 + CI 步骤),按规范需人工最终确认后方可合并。

likedislike
Aaflyingto成员
2 天前 添加了label:status/self-checked
Aaflyingto成员
2 天前 添加了label:status/ready-for-review
Aaflyingto成员
2 天前 添加了label:status/approved
Aaflyingto成员
2 天前 关闭了关联的issue
Aaflyingto成员
2 天前 合入了pull request,合并节点 SHA:1d6baad19d9b4ac822c057cb0490adac1179b1cb
Aaflyingto成员
2 天前 添加了label:status/merged