用途
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 项目,在需要了解依赖过期情况、安全公告以及规划安全升级顺序时使用。