mcpField
D
deps

deps

github.com/boshu2安全45054 次安装今天更新
代码仓库

关于 deps

Deps Skill 用于指导 Go、Node、Python、Rust 和 Ruby 项目的依赖审计、漏洞检查、许可证审查及更新。它规定各生态的检查方式、严重性分类、更新后的测试验证和报告流程。

主要功能

  1. 01检测支持的依赖生态
  2. 02审计漏洞与过期软件包
  3. 03审查依赖许可证
  4. 04按严重程度分类发现项
  5. 05更新依赖并执行测试检查
  6. 06生成依赖报告

适用场景

  1. 01检查项目的依赖健康状况
  2. 02确定已知漏洞的处理优先级
  3. 03审查许可证合规性
  4. 04更新软件包并验证测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/boshu2/agentops --skill deps

安装后在 Claude Code 中输入/deps确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
deps.feature
library-update-ratchet.md
scripts/
validate.sh

详细介绍

依赖项技能

快速参考:/deps audit | /deps update [--major|--minor|--patch] | /deps vuln | /deps license

必须执行此工作流。不要只对其进行描述。

模式

模式命令用途
审计/deps audit全面的依赖项健康检查:漏洞、过期依赖项、许可证
更新/deps update [--major|--minor|--patch]更新依赖项并验证测试
漏洞/deps vuln专项漏洞扫描与修复
许可证/deps license许可证合规性审计

默认模式(直接使用 /deps):运行审计模式。


步骤 0:检测生态系统

扫描工作目录中的清单文件。多个生态系统可能共存。

清单生态系统锁定文件
go.modGogo.sum
package.jsonNodepackage-lock.json / yarn.lock / pnpm-lock.yaml
pyproject.toml / requirements.txtPythonrequirements.txt / poetry.lock
Cargo.tomlRustCargo.lock
GemfileRubyGemfile.lock
# Detect all ecosystems present
for f in go.mod package.json pyproject.toml requirements.txt Cargo.toml Gemfile; do
  [[ -f "$f" ]] && echo "FOUND: $f"
done

如果未找到清单文件,则停止并报告:“未检测到受支持的依赖项清单。”


步骤 1:审计当前状态

运行适用于相应生态系统的命令。捕获所有输出以进行分类。

Go
go list -m -u all          # List all modules, flag available updates
govulncheck ./...           # Vulnerability scan against Go vuln DB
go mod tidy                 # Clean up unused deps (dry-run first)
Node
npm audit                   # Known vulnerabilities
npm outdated                # Available updates (current vs wanted vs latest)
npx license-checker-webpack-plugin --out /dev/stdout 2>/dev/null || npx license-checker --json
Python
pip-audit                   # Vulnerability scan (install: pip install pip-audit)
pip list --outdated         # Available updates
pip-licenses 2>/dev/null || echo "pip-licenses not installed"
Rust
cargo audit                 # Vulnerability scan (install: cargo install cargo-audit)
cargo outdated              # Available updates (install: cargo install cargo-outdated)
cargo license 2>/dev/null || echo "cargo-license not installed"
Ruby
bundle audit check          # Vulnerability scan (install: gem install bundler-audit)
bundle outdated             # Available updates

步骤 2:对发现的问题分类

将每个发现的问题准确归入一个严重性级别。

严重性标准操作
严重已知 CVE 且正在被积极利用,CVSS >= 9.0立即更新,阻止发布
高安全公告但无已知利用情况,CVSS 7.0-8.9,或主要版本落后且存在安全影响在当前会话中更新
中次要版本落后、已弃用的包、过时的传递依赖项安排更新,尽可能批量处理
低补丁级更新、外观版本号变更、信息性公告适时更新

输出汇总表:

SEVERITY   PACKAGE            CURRENT   AVAILABLE   REASON
Critical   example-lib        1.2.3     1.2.8       CVE-2025-XXXXX (RCE)
High       some-framework     3.1.0     4.2.0       Security advisory SA-2025-YYY
Medium     helper-pkg         2.0.1     2.3.0       3 minor versions behind
Low        util-lib           1.0.0     1.0.1       Patch release

步骤 3:更新策略

根据请求的更新范围选择策略(如果未指定,则根据分类选择)。

如果请求更新整个库系列或依赖项范围,请在修改清单前阅读 references/library-update-ratchet.md。该文档定义了逐个包更新的循环、回滚证据和发行说明检查。

补丁更新(--patch 或低严重性)
  • 将所有补丁更新批量处理。
  • 批量更新后运行一次完整测试套件。
  • 单次提交:chore(deps): batch patch updates。
次要更新(--minor 或中严重性)
  • 每次更新一个依赖项。
  • 每次更新后运行测试。
  • 单独提交:chore(deps): update <pkg> to <version>。
主要更新(--major 或高/严重级别)
  • 先调查不兼容变更(查看 CHANGELOG、迁移指南和发行说明)。
  • 每次更新一个依赖项。
  • 每次更新后运行完整测试套件。
  • 单独提交,并在正文中注明不兼容变更:
    chore(deps): update <pkg> to <version>
    
    Breaking: <brief description of what changed>
    
决策矩阵
标志补丁次要主要
--patch是否否
--minor是是否
--major是是是
(默认)是是否

步骤 4:执行更新(仅限更新模式)

对每个要更新的依赖项,严格遵循以下循环:

1. Record current state (version, lock file hash)
2. Update the dependency
3. Run tests: `go test ./...` / `npm test` / `pytest` / `cargo test`
4. If PASS:
   - Stage changed manifest + lock file
   - Commit: chore(deps): update <pkg> from <old> to <new>
5. If FAIL:
   - Revert: restore manifest + lock file to pre-update state
   - Document the incompatibility in the report
   - Continue to next dependency
生态系统专用更新命令
生态系统补丁/次要主要
Gogo get <pkg>@latestgo get <pkg>@v<major>
Nodenpm update <pkg>npm install <pkg>@latest
Pythonpip install --upgrade <pkg>pip install <pkg>~=<version>
Rustcargo update -p <pkg>编辑 Cargo.toml,然后运行 cargo update
Rubybundle update <pkg>编辑 Gemfile,然后运行 bundle install

步骤 5:输出报告

将报告写入 .agents/deps/。如有需要,请创建该目录。

mkdir -p .agents/deps

文件名格式:YYYY-MM-DD-deps-<mode>.md

报告模板
# Dependency Report - <mode> - <date>

## Ecosystem: <detected>

## Summary
- Total dependencies: <N>
- Outdated: <N>
- Vulnerable: <N>
- License issues: <N>

## Findings

### Critical
<table or "None">

### High
<table or "None">

### Medium
<table or "None">

### Low
<table or "None">

## Updates Applied
<list of commits or "Audit only - no updates applied">

## Failed Updates
<list with reasons or "None">

## License Compliance
<summary or "Not checked - use /deps license">

许可证合规(许可证模式)

兼容性矩阵
许可证可用于专有项目Copyleft分发义务
MIT是否包含许可证文本
Apache-2.0是否包含许可证和 NOTICE 文件
BSD-2-Clause是否包含许可证文本
BSD-3-Clause是否包含许可证文本,不得背书
ISC是否包含许可证文本
MPL-2.0是(文件级)弱修改后的 MPL 文件必须继续采用 MPL 许可证
LGPL-2.1有条件弱动态链接可以,静态链接需披露
GPL-2.0否强整个衍生作品必须采用 GPL 许可证
GPL-3.0否强整个衍生作品必须采用 GPL 许可证
AGPL-3.0否强网络使用会触发披露义务
SSPL否强服务提供商必须开源整个技术栈
Unlicense是否无义务
规则
  1. 在专有项目中,将所有 Copyleft 许可证(GPL、AGPL、SSPL)标记为严重。
  2. 将弱 Copyleft 许可证(MPL、LGPL)标记为中等,并审核使用方式。
  3. 将缺失的许可证标记为高,因为未知许可证按保留所有权利处理。
  4. 标记不同版本之间的许可证变更——更新可能会改变许可证。
检测项目类型
  • 如果 LICENSE 包含 GPL/AGPL:项目为 Copyleft,所有许可证均兼容。
  • 如果 LICENSE 包含 MIT/Apache/BSD,或项目为专有项目:标记 Copyleft 依赖项。
  • 如果不存在 LICENSE 文件:警告项目许可证未定义。

错误处理

情况操作
未安装工具(govulncheck、pip-audit 等)报告缺失的工具及其安装命令,并继续使用可用工具
网络不可用使用可用的缓存漏洞数据库,并注明数据是否过时
不存在测试套件明确警告,跳过测试验证,并在报告中注明
清单解析错误报告错误,并跳过该生态系统

另请参阅

  • skills/standards/SKILL.md -- 特定语言的约定
  • skills/security/SKILL.md -- 更全面的安全扫描
  • skills/vibe/SKILL.md -- 代码质量验证
  • references/library-update-ratchet.md

参考文档

  • references/deps.feature — 可执行规范:扫描清单,审计漏洞、过时依赖和许可证,支持漏洞与许可证模式、多生态系统及 result.json(soc-qk4b)

评论

支持 Markdown