关于 dependency-analyzer
帮助开发者分析项目依赖的技能,可检查过期包与已知漏洞、评估重大版本变更,并生成更新和迁移建议。
主要功能
- 01识别依赖文件与版本约束
- 02检查过期依赖和可用更新
- 03分析语义化版本与破坏性变更
- 04检查已知安全漏洞
- 05生成更新计划与迁移建议
适用场景
- 01定期评估依赖健康状况
- 02规划重大版本升级
- 03优先处理存在漏洞的包
- 04制定分阶段更新方案
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill dependency-analyzer安装后在 Claude Code 中输入/dependency-analyzer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
commands/dependency-analyzer.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/dependency-analyzer.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/implementation-template.md详细介绍
依赖分析器技能
依赖分析器技能 - 分析项目依赖项、检测过时的软件包、识别破坏性变更,并建议安全的更新策略。 - 分析依赖项健康状况 - 制定依赖项更新计划 - 检测安全漏洞 - 识别破坏性变更 - 验证兼容性第 1 步:识别依赖文件
定位依赖文件:
package.json(Node.js)requirements.txt(Python)go.mod(Go)Cargo.toml(Rust)pom.xml(Java/Maven)
第 2 步:分析依赖项
检查依赖项:
- 读取依赖文件
- 检查版本
- 识别过时的软件包
- 记录版本约束
第 3 步:语义化版本分析
使用语义化版本(semver)分析版本号:
-
解析版本号:
- 从版本字符串中提取 major.minor.patch
- 处理版本范围(^、~、>= 等)
- 区分固定版本与范围版本
-
检测主版本更新:
- 比较当前版本与最新可用版本
- 识别主版本变更(例如,1.x.x -> 2.x.x)
- 将主版本更新标记为可能存在破坏性变更
-
检查变更日志中的破坏性变更:
- 对于主版本更新:触发网络搜索(Exa/WebFetch),调查破坏性变更
- 在变更日志中查找“BREAKING CHANGE”标记
- 检查迁移指南
- 查看发行说明中的破坏性变更
- 记录发现的具体破坏性变更
-
语义化版本规则:
- 主版本(X.0.0):可能存在破坏性变更,需要修改代码
- 次版本(0.X.0):新增功能,向后兼容
- 补丁版本(0.0.X):错误修复,向后兼容
-
检测破坏性变更:
- 解析变更日志条目,查找破坏性变更标记
- 识别已弃用的 API
- 检查是否移除了功能
- 记录迁移要求
- 生成破坏性变更报告
第 4 步:检查更新
检查可用更新:
- 查询软件包注册表
- 比较当前版本与最新版本
- 识别主版本、次版本和补丁版本更新
- 应用语义化版本分析
- 警告破坏性变更
第 5 步:安全审计
检查漏洞:
- 扫描已知漏洞
- 检查安全公告
- 识别高风险软件包
- 建议安全更新
第 6 步:生成报告
创建依赖项报告:
- 列出过时的软件包
- 识别破坏性变更
- 建议更新策略
- 提供迁移指导 </execution_process>
与 Security Architect Agent 集成:
- 审查安全漏洞
- 验证安全更新
- 确保合规
<best_practices>
- 定期分析:定期分析依赖项
- 安全优先:优先处理安全更新
- 测试更新:更新后务必进行测试
- 逐步更新:逐步进行更新
- 记录变更:跟踪更新决策 </best_practices>
# Dependency Health Report
## Summary
- Total Dependencies: 45
- Outdated: 12
- Vulnerable: 3
- Up to Date: 30
## Outdated Packages
- react: 18.0.0 -> 18.2.0 (minor update)
- next: 13.4.0 -> 14.0.0 (major update - breaking changes)
- typescript: 5.0.0 -> 5.3.0 (patch update)
## Security Vulnerabilities
- lodash: 4.17.20 (CVE-2021-23337) - Update to 4.17.21
- axios: 0.21.1 (CVE-2021-3749) - Update to 1.6.0
## Update Recommendations
1. Update patch versions (safe)
2. Review minor updates (low risk)
3. Plan major updates (breaking changes)
</formatting_example>
<formatting_example> 更新计划
# Dependency Update Plan
## Phase 1: Patch Updates (Safe)
- Update lodash: 4.17.20 -> 4.17.21
- Update typescript: 5.0.0 -> 5.3.0
## Phase 2: Minor Updates (Low Risk)
- Update react: 18.0.0 -> 18.2.0
- Update @types/node: 20.0.0 -> 20.10.0
## Phase 3: Major Updates (Breaking Changes)
- Update next: 13.4.0 -> 14.0.0
- Breaking changes: [List]
- Migration steps: [Steps]
- Testing required: [Tests]
</formatting_example>
**示例命令**:# Analyze dependencies
Analyze dependencies for this project
# Check for updates
Check for dependency updates
# Security audit
Perform security audit of dependencies
# Generate update plan
Generate update plan for major version updates
</usage_example>
规则
- 始终先检查安全漏洞
- 主版本更新前先调查破坏性变更
- 任何依赖项更新后都要进行全面测试
记忆协议(必须遵守)
开始前:
cat .claude/context/memory/learnings.md
完成后:
- 新模式 ->
.claude/context/memory/learnings.md - 发现问题 ->
.claude/context/memory/issues.md - 做出决策 ->
.claude/context/memory/decisions.md
假设任务可能中断:上下文可能会重置。如果没有记录在记忆中,就等于没有发生。
评论
支持 Markdown