SuperAPI AI 工具集

dependency-audit

部署与运维

查看项目

更新于 10-23 16:18

技能介绍

用途

Dependency Audit 用于对 Composer(PHP)或 npm(JavaScript / TypeScript)项目执行依赖审计,并给出安全的升级计划。它的目标是交付一份针对当前项目所用包管理器的依赖审计摘要。

在安装了该插件的 Claude Code 中,此技能运行在独立的 dependency-auditor 子代理中(只读,并会记住项目选择暂不升级的包);报告完成后返回主会话。在其他运行环境中则以内联方式执行,步骤相同。

检测包管理器

包管理器由 $ARGUMENTS 指定:

  • 若为 composer 或 npm,则只审计该管理器;若其清单文件(composer.json 或 package.json)缺失,则停止并报告。
  • 若指定了其他管理器,则停止并报告仅支持 Composer 和 npm。
  • 若为空,则检查项目根目录:
    • 存在 composer.json → Composer(PHP)
    • 存在 package.json → npm(JavaScript / TypeScript)
    • 两者都存在 → 同时审计两者,并分别报告各部分
    • 两者都不存在 → 停止并报告该目录不是 Composer 或 npm 项目

运行命令

Composer:

composer outdated --direct || true
composer audit || true

npm:

npm outdated || true
npm audit || true

当锁文件(composer.lock、package-lock.json 或 npm-shrinkwrap.json)使结果有意义时,运行安全审计。

主版本更新

对于每个主版本更新,应从包本身而非记忆获取其破坏性变更:在运行环境可访问网络时(Claude Code 中为 WebFetch),获取所跨越版本的 CHANGELOG、UPGRADE 指南或 GitHub 发布说明,并引用 URL;否则读取随包附带的 vendor/<package>/ 或 node_modules/<package>/ 下的变更日志,并标记风险未验证(它仅覆盖已安装版本)。

报告内容

报告应包含:

  • 包管理器证据(composer.json / composer.lock,或 package.json / 锁文件,以及相关时的框架线索)
  • 过期的直接依赖,按补丁、次版本和主版本更新分组
  • 来自审计命令的安全公告,按严重程度分组(如可用)
  • 建议的安全升级顺序,从低风险的补丁和次版本更新开始
  • 主版本更新的破坏性变更风险、所需代码改动、运行时/框架约束或测试覆盖缺口
  • 升级后项目应运行的确切验证命令

报告应保持直接。除非用户要求执行升级工作,否则不要应用升级。

限制与护栏

  • 不要修改检查命令以强制成功。
  • 不要跳过、禁用或绕过检查来让审计看起来干净。
  • 如果包元数据缺失、依赖解析失败,或审计输出被注册表/认证问题阻塞,则停止并报告阻塞原因。

适用场景

适用于使用 Composer 或 npm 管理依赖的 PHP、JavaScript 或 TypeScript 项目,在需要了解依赖过期情况、安全公告以及规划安全升级顺序时使用。