用途:当有人问"这个项目现在到底是什么状态"时使用。它不判断单个交付物是否合格(那是 gate),也不检查清单是否遗漏(那是 acceptance),而是从冷启动出发,无需简报、需求表或模块图,回答仓库整体当前的真实情况。
主要能力按六个阶段顺序执行:1) Discover:由 scripts/audit.py 机械识别语言、包管理器、monorepo 结构、子模块、CI、部署目标、声明的遥测及项目自述版本;读取已提交状态(git ls-files,而非目录遍历),输出 profile 并据此选择探针。2) Probe:按 profile 从注册表选择探针,每个探针声明其依赖(git、gh、npm、网络、已连接的 MCP 服务器),依赖不满足即标记为 blind 并给出原因,绝不静默省略或判为 clean。3) Prod:收集只在仓库之外存在的证据,包括已发布产物与源码的对比、CI 历史(如 gh run list --limit 60 --json conclusion,name)、遥测有无、注册表采纳量、已连接 MCP 服务器等;读取数据存储前须先由平台自身挂载解析存储、用最新写入聚合证明其存活,并记录时间戳。4) Seams:按 references/portable-method.md 的 L0→L7 阶梯自底向上走查发现的能力。5) Report:用 python3 scripts/audit.py --root <path> 写出 sidecar 并打印摘要;加 --report 生成 HTML 页,加 --no-open 只写不打开。6) Propose:以看板行形式提出发现,不直接编辑,供运营者决定是否接受。
判定只有三种:clean、finding、blind;blind 用于探针无法查看的情况,避免"看不到"与"没问题"被混同。发现需区分机制状态、可利用性/复现、暴露面、实际发生率与影响不确定性等多个轴,UNKNOWN 不等于 0。已决定但文档化不等于正确:显式权衡记为已接受限制,仍违反安全不变量、外部契约或自身目标的文档化违规仍算发现。
产物:docs/audit/<date>-audit.json 每次运行都会写出,HTML 页仅在 --report 时生成。三种输出模式(--stdout、json 默认、--report)中只有后者需要浏览器。报告只含聚合与指针,不含原始日志或数据;密钥只报位置与类别,绝不报值。"只读"指不修改目标项目的源码、数据和生产证据,也不提交;但会在指定输出目录写自己的产物。
限制:技能本身不提交任何改动,严重度与工作量的判断由人负责;references/portable-method.md 是阶段 4 之前的必读;配套的 task-pipeline 相关参考为可选,缺失不阻塞流程。