注册表 MUST 允许声明配置前置条件,避免采用不适合项目的默认规则。legacy-v1 缺配置时维持未接入/未验证且旧 Hook 放行语义。Rust 新入口 MUST 使用已批准 rulepack 或已接入的项目配置;如果不能可靠满足前置条件,必需义务为 incomplete,不能通过“未接入”自动免除。
- WHEN legacy-v1 项目缺少声明配置
- THEN 按旧协议说明未验证并兼容放行,不签发新认证
- WHEN 新入口没有项目配置且无法使用批准规则包建立可靠计划
- THEN 返回 configuration_required 和未完成,不报代码违规、不满足交付门禁
- WHEN 原生配置存在且满足批准策略
- THEN 按有效配置执行,保留配置来源和覆盖证据
- WHEN 工具契约不要求额外配置
- THEN 正常按已批准规则和工具锁执行,不凭空新增项目配置障碍
本条标题描述 legacy-v1:旧门禁 MUST 保留 delta 默认、gate_scope=repo、FULL_SCAN_EXCLUDES、index/预测暂存/HEAD 的历史输入规则与完整诊断;准确快照不复用旧软缓存。Rust 新门禁 MUST 建立全部适用必需义务,增量仅作为等价执行优化,不能默认豁免未修改文件中的问题。新真实 Git 入口 MUST 使用 execution-kernel 的实际 index/ref 契约。
- WHEN legacy-v1 改动仅文档且项目检查确实不适用
- THEN 明示无须执行,不伪称完成项目验证
- WHEN index 内容违规但工作树已修好
- THEN 检出 index 违规,不借用工作树通过
- WHEN 实际待推送内容违规但工作树已修好
- THEN 检查待推送内容并保留违规
- WHEN 旧入口没有可解析上游
- THEN 保留 HEAD 全树回退,不因空基线跳过
- WHEN 宿主可可靠建模同仓 commit→push
- THEN 覆盖拟提交内容和已有待推送内容;不可建模时明示未完成
- WHEN 增量计划没有执行某必需任务且无等价缓存证明
- THEN 不能据 delta 干净签发交付 allow
检查器退出码 MUST 结合工具契约判定,工具故障 MUST 不认作代码违规。legacy-v1 保留 UNVERIFIED、CLI 1、Hook 可见放行。Rust MUST 将该义务标 incomplete、CLI 3,必需检查不满足交付;混合有效发现仍保留。不能统一把所有工具 exit 2 当配置错误,也不能把所有 exit 1 当违规。
- WHEN ESLint 因配置问题以 exit 2 退出
- THEN 旧接口为 UNVERIFIED;新接口为 incomplete,均不能称为 lint 违规或通过
Rust build MUST 记录编译、静态检查和测试执行的区别。Java 默认静态构建保留不运行测试的等级;批准策略要求测试时 MUST 执行,智能体不得自行追加 skip。自定义命令 MUST 通过义务覆盖核对,不能只凭 exit 0 替代质量证据。
- WHEN 项目批准策略要求构建时运行测试
- THEN 新计划包含测试执行,运行参数不能静默排除 test
- WHEN 默认静态构建成功但未运行测试
- THEN 报告 test_execution=false,不声称测试通过
- WHEN Rust 静态构建调用原生 Cargo check,机器流包含完整 package/manifest/target 身份、可归属的编译诊断及失败结束记录
- THEN 保留原生编译诊断与目标身份,明确 build_level=type_check、test_execution=false;不将它改称 Clippy、文档或安全违规,不从局部目标结果推导完整项目或交付结论
- WHEN Cargo 静态构建机器流损坏、重复语义键、无结束记录、结束后仍有事件、成功结束却含 error,或进程失败而无可归属编译诊断
- THEN 构建结果保持未完成;有效已观察诊断可保留为调查证据,但不能把裸退出码、空输出或环境故障认作源码违规或通过
- WHEN build rust的显式原生类型检查执行时源码、根清单、锁或工具身份变化,或用户取消同轮执行
- THEN 报告绑定本轮原生状态和输入摘要,保留调查证据且移除源码修复许可;取消优先返回130;完整且目标归属唯一的局部诊断才提供限定目标修复指引,仍明确test_execution=false、coverage_proven=false和交付not_evaluated,不将局部成功当作完整策略或任务关闭
- WHEN 已初始化工作区重复扫描同一编译错误,或未消费报告的源码/原生目标/清单/锁字节已经变化
- THEN 当前有效观察只更新同一稳定问题和修复任务,next指向原生构建检查;陈旧证据保留为历史并生成重扫准备任务,坏身份拒绝导入;环境失败生成准备任务,不生成源码违规,同步或任务勾选不得关闭问题
- WHEN 智能体对稳定的 Rust 编译任务执行 task verify,并显式提供同一原生 Cargo 工具
- THEN 在任务租约和统一截止时间内重新执行 Cargo check,绑定源码、清单、锁与工具身份,保存关联任务和尝试的复检事件;原错误仍在时返回 still_present,工具或输入异常返回 incomplete
- WHEN 原生 Cargo check 本轮无错误,而完整项目策略、目标组合或规则覆盖尚未核验
- THEN 仅返回 candidate_absent_unverified_policy 或环境恢复候选,保留原任务 open,next 指引核查原生配置和完整交付;不得凭零诊断、白名单候选或任务勾选自动关闭
- WHEN
check all发现 Rust 源码,调用方提供绝对 Cargo 工具,并有可读取的根 Cargo 清单与锁 - THEN 在同一任务图、共享截止时间和 Cargo 构建资源约束下调用原生 Cargo check;反馈独立保留编译 finding、构建等级和是否执行测试,已初始化工作区同步稳定任务并在对话中给出下一步;局部构建成功仍不授予完整覆盖或交付通过
- WHEN Cargo 缺失、原生机器流损坏、目标归属不明、输入或工具变化、执行超时或取消
- THEN
check all保留本轮原生诊断和具体未完成原因,生成可恢复的环境/完整性任务;不得将故障算源码编译违规、白名单命中或空结果通过