3.1 KiB
每任务提交审计
ENG-AUDIT-01负责ENG-09的Git审计子项。运行yarn check:commits,或增加--report
将本次HEAD及完成记录写入refactor/.cache/ci/commit-audit.json。检查已接入ci:check,
GitHub日志artifact收集该报告。CI三个checkout使用完整历史:审计以及既有历史源码
兼容测试均依赖旧Git对象,浅克隆不能提供它们。
实际核对内容
脚本从可达Git历史读取每次tasks.json变化及其父提交,而不是从提交标题推断完成。 一项从非done转为done,必须在同一个提交包含:准确任务ID、tasks.json、生成plan.md、 存在于该提交树中的本地证据,以及至少一份该任务证据文件的实际变更。
普通完成提交只能完成一个任务。历史中的checkpoint不会被当作完成提交。合并时, 父分支已经done的任务沿用该分支的原始完成提交,不要求merge标题冒充任务完成。 当前工作区新增done但尚未提交会失败,已完成历史任务被从台账删除也会失败。 脚本核实起点与bootstrap提交可达;浅仓库明确报错,不悄悄跳过历史验证。
唯一合并完成例外固定为完整SHA 570600d2f6ffd580a890e0b87dfa9843bf8dd8d0:
DOC-05携带先前已完成的DOC-01~04;要求该提交的新增done集合精确匹配这五项。
见 原始说明。不能把例外按ID无限复用。
早期历史标题存在test(BASE-04): ...和... ENG-04 ...等格式。审计接受准确的任务
编号token,拒绝把TEST-010冒充TEST-01;这保留真实的独立提交,不是额外合并例外。
新增提交仍遵循AI工作流的type(scope): [TASK-ID] description格式。
本地实施顺序
- 任务保持doing时运行适用测试、
ci:check与审计;已提交的其他done任务必须可追溯。 - 验收完成后将本任务标done,生成plan并暂存具体成果,立即独立提交。
- 提交后再次运行
yarn check:commits --report确认本任务的真实完成记录,并检查Git状态。
第2步尚未提交时审计会报告未提交完成,这是预期保护。没有“临时豁免”参数,也不能 在CI中通过环境变量绕过。审计不代替源码、测试结果或发布审查:证据文件共存不证明 其中断言有效,因此报告明确限制。它也不凭历史标题判断某个实现是否有足够测试。
验证和维护
refactor/scripts/commit-audit.test.mjs建立临时真实Git仓库,覆盖独立完成、固定
bootstrap例外、多个任务混在一提交、错误ID、缺plan/证据、复用未变化旧证据、路径
逃逸、未提交done、删除历史任务、浅仓库以及实际feature分支合并。临时仓库使用
专用作者,不修改用户Git配置;清理只针对已验证位于测试cache内的目录。
更改任务状态或提交政策时同时维护这些反例;禁止仅更新计数或忽略失败使审计变绿。
ENG-IMPACT-01继续处理影响范围,ENG-COVERAGE-01继续契约覆盖索引;本子项完成
不代表ENG-09整体、远端GitHub执行或npm发布门槛完成。