用途:在 omniroute 仓库中执行有范围限定的只读质量扫描,输出精确候选证据、失败项与冻结债务,用于临时门禁巡检或发布准备。
范围选择:默认使用静态 quality-scan 配置;快速模式为 quality-scan-fast,需明确报告被省略的门禁;也可指定某个 npm 别名,仅运行该别名。Base 状态需检查远端证据,不隐含本地套件。完整发布/PR 验收需检查适用的工作流通道,并使用 ../validate-release-green/SKILL.md 处理本地观察者的有限范围。
清单与命令:存在时 config/quality/gate-manifest.json 负责静态配置成员与 npm 别名清单,package.json 负责命令与运行时。可用 npm run check:gate-manifest 和扫描的 --list 模式测量当前清单。别名、工作流作业、矩阵实例与测试用例是不同单位,不得用记忆中的数量替代。若候选早于清单,需检查其实际 package 脚本、聚合器与工作流,并标注清单为临时性;不得虚构缺失命令或声称旧分支受清单约束。
执行与证据:在隔离 worktree 中固定 base 与候选 SHA,运行实际 npm 入口(直接调用文件可能改变所需 Node/Bun 运行时)。记录命令、cwd、版本、起止时间、退出/信号、所选范围与日志路径。候选提供门禁进程监督器时使用它;否则在显示摘要前捕获命令自身退出码,例如: scan_log=$(mktemp) if npm run quality:scan >"$scan_log" 2>&1; then scan_exit=0 else scan_exit=$? fi tail -n 30 "$scan_log" printf 'scan_exit=%s log=%s\n' "$scan_exit" "$scan_log"
依赖缺失、超时、取消与产物不可用均属不完整证据,而非 PASS。扫描可写日志/报告,但不会更新基线、改动产品代码或联系在线提供方,除非明确限定范围。
报告:报告所选配置与 SHA、已执行/失败/未运行计数、原始日志与剩余验收通道。PASS 仅适用于已执行范围。冻结债务与新发现需分开列出。非零退出证明执行失败,不代表贡献者引入,需使用共享 base-green 协议中的因果比较。若存在受跟踪的技能契约检查器,npm run check:quality-skill-contract 会将私有指令与版本化模板比较;缺失私有技能为 NOT_INSTALLED,而非其指令已验证的证据。仅扫描请求在报告后停止;修复需变更请求,基线变更需单独评审理由。恢复过程中保持现有阈值与断言。