SuperAPI AI 工具集

arch-audit

编程与开发

查看项目

更新于 10-16 09:13

技能介绍

用途

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),执行前必须读取并应用。
  • 具体收费、价格、平台支持等信息暂未提供。