用途
arch-audit 是 sdd-devkit 插件中的架构合规审计技能。它审计项目架构规范(docs/standards/ 中的标准与 AGENTS.md 中的规则)与实际代码状态之间的一致性,并生成一份按优先级排序的差距报告。它是「架构合规检查」的变体:不发现新架构(由 arch-discover 负责),也不记录架构(由 arch-manage 负责),而是把已有规范当作「应然」,与仓库的「实然」进行对比。
审计对象与规范来源
审计的最小单位是合规准则(CR-XXX,标准中一行可验证的条目),而不是整个标准、需求块或 ADR。
「应然」来源包括:
- docs/standards/ 中所有领域标准(技术或功能)及其合规准则(CR-XXX),按需求分组,优先审计 Active 状态的标准。Draft 标准中的准则会被列出但不产生带优先级的发现,也不影响结论;Deprecated/Superseded 标准不产生发现,除非代码仍依赖它们。
- AGENTS.md(以及按子目录嵌套的 AGENTS.md,若存在)中的每条显式规则。
- docs/adr/ 仅用于追溯:为每条被审计的准则引用其来源 ADR;并检测那些包含可执行规则但尚未设定任何准则的 Accepted ADR。
- .agents/MEMORY.md(若存在)为操作上下文,本身不是规则来源。
「实然」证据为:代码、目录结构和依赖清单。
主要能力
- 按 RFC 2119 权重评估:违反 MUST/REQUIRED/SHALL 比违反 SHOULD/RECOMMENDED 权重更高;未违反的 MAY/OPTIONAL 几乎不构成发现。
- 静态检查加适应度函数:基础验证使用 find、grep 和清单读取;当某准则有适应度函数(自动化架构检查)时执行它,其结果作为该准则合规的首要证据。不运行构建或完整测试套件,只运行检测到的架构检查。
- 无法通过检查或适应度函数确认的准则标记为 UNVERIFIABLE,并注明需要什么证据,绝不编造结论。
- 对每条准则评估其是否适合适应度函数(客观且可自动化,通常已在其 Automatizable: yes 列声明),检查是否已存在并执行;若适合但不存在(Verificación: Pending),建议创建。
使用方式
技能按阶段执行:
- 阶段 0:解析被审计的架构根(主仓库或子模块)。列出嵌套仓库(git submodule status / .gitmodules,以及含自有 .git 的目录);若无嵌套则根为当前仓库,无需询问;若有则询问用户审计哪个根。每次运行只审计一个根。随后检查是否已有历史报告(ls docs/audits/arch-audit-*.md),若有则询问是「重新验证」还是「从零新建审计」。
- 阶段 1:收集规范(「应然」)。列出并读取 docs/standards/*.md,从 YAML frontmatter 提取 name、domain、status、source_adrs;读取每个需求及其状态;从文档末尾的 ## Criterios de cumplimiento 表中提取每条 CR-XXX 的 ID、Requisito、Descripción、Automatizable、Enfoque、Verificación。
- 后续阶段执行静态检查与适应度函数,并生成报告。
报告写入被审计根目录的 docs/audits/arch-audit-YYYY-MM-DD.md,按优先级(高/中/低)分组,每条发现引用被违反的准则(<标准>/CR-XXX,含其所属需求、领域标准及来源 ADR)或 AGENTS.md 规则,列出证据与违规文件,提出行动并设定状态。报告还包含适应度函数章节:哪些存在及其执行结果,哪些缺失(适合但无适应度函数的准则)并建议创建。
报告内容只写一次,创建后保持不变;后续每次重新验证在文件末尾的 ## Revalidaciones 章节追加新条目(含日期/时间、结论及仅有证据的变化),绝不覆盖原报告。报告模板位于 assets/audit-template.md。
适用场景
- 需要检查代码库是否遵守已记录架构标准与 AGENTS.md 规则时。
- 需要一份按优先级排序、可追溯的架构合规差距报告时。
- 需要识别哪些准则缺少自动化适应度函数时。
- 需要定期重新验证既有审计结论时。
限制
- 不发现新架构,不记录架构。
- 不运行构建或完整测试套件,只运行检测到的架构检查。
- 无法确认的准则标记为 UNVERIFIABLE,不编造结论。
- 每次运行只审计一个根。
- 若验证依赖时安装依赖并改动清单或锁文件,需提醒用户三道收尾门需重新执行。
- 依赖多个共享参考文件(language.md、linking.md、escalation.md、verdicts.md、artifacts.md、revalidation.md、fingerprint.md),执行前必须读取并应用。
- 具体收费、价格、平台支持等信息暂未提供。