用途 quality-scan 用于按指定范围执行只读质量扫描,并报告精确候选(exact-candidate)证据、失败情况和冻结债务。适用于临时的门禁巡检(ad-hoc gate sweep)或发布准备。
范围选择 默认使用静态 quality-scan 配置。快速模式为 quality-scan-fast,需显式报告被省略的门禁。也可指定某个具名 npm alias,此时仅运行该 alias。基础状态(base status)需检查远程证据,不隐含本地测试套件。完整的发布/PR 验收应检查适用的工作流通道,本地观察者范围有限时使用 validate-release-green/SKILL.md。解释基础健康或 PR 健康前,需先阅读 ../_shared/base-green.md。
配置与清单 存在 config/quality/gate-manifest.json 时,静态配置成员与 npm-alias 清单由它维护;命令与运行时由 package.json 维护。可用 npm run check:gate-manifest 及扫描的 --list 模式测量当前清单。alias、工作流作业、矩阵实例和测试用例是不同的单位,不得用记忆中的数量替代实际清单。若候选早于清单,应检查其实际 package 脚本、聚合器与工作流,并标注清单为暂定;不得虚构缺失命令,也不得在旧分支上声称清单强制生效。
执行与证据保全 在隔离的 worktree 中固定 base 与候选 SHA,通过实际 npm 入口运行;直接调用文件可能改变所需 Node/Bun 运行时。记录命令、工作目录、版本、起止时间、退出码/信号、所选范围与日志路径。候选提供门禁进程监督器时应使用它;否则在展示摘要前先捕获命令自身退出码,示例见原文(scan_log=$(mktemp) 等)。缺失依赖、超时、取消和工件不可用属于证据不完整,不是 PASS。扫描可写日志/报告,但不会更新基线、改动产品代码或联系在线服务商,除非明确限定。
报告结果 报告所选配置与 SHA、已执行/失败/未运行数量、原始日志和剩余验收通道。PASS 仅适用于已执行范围。冻结债务与新发现分开列出。非零退出证明执行失败,但不证明由贡献者引入;应使用共享 base-green 协议中的因果比较。若存在受跟踪的技能合约检查器,npm run check:quality-skill-contract 会将私有指令与版本化模板比较;缺失的私有技能为 NOT_INSTALLED,而非其指令已验证的证据。
限制 扫描请求在报告后停止;修复需要变更请求,基线变更需要单独经评审的理由。恢复过程中需保留现有阈值与断言。