mcpField
D
dependency-analyzer

dependency-analyzer

github.com/oimiragieo开发4480 次安装17 周前更新
代码仓库

关于 dependency-analyzer

帮助开发者分析项目依赖的技能,可检查过期包与已知漏洞、评估重大版本变更,并生成更新和迁移建议。

主要功能

  1. 01识别依赖文件与版本约束
  2. 02检查过期依赖和可用更新
  3. 03分析语义化版本与破坏性变更
  4. 04检查已知安全漏洞
  5. 05生成更新计划与迁移建议

适用场景

  1. 01定期评估依赖健康状况
  2. 02规划重大版本升级
  3. 03优先处理存在漏洞的包
  4. 04制定分阶段更新方案

安装

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

$npx skills add https://github.com/oimiragieo/agent-studio --skill dependency-analyzer

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

包含的文件

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

commands/
dependency-analyzer.md
hooks/
post-execute.cjs
pre-execute.cjs
references/
research-requirements.md
rules/
dependency-analyzer.md
schemas/
input.schema.json
output.schema.json
scripts/
main.cjs
templates/
implementation-template.md

详细介绍

依赖分析器技能

依赖分析器技能 - 分析项目依赖项、检测过时的软件包、识别破坏性变更,并建议安全的更新策略。 - 分析依赖项健康状况 - 制定依赖项更新计划 - 检测安全漏洞 - 识别破坏性变更 - 验证兼容性
第 1 步:识别依赖文件

定位依赖文件:

  • package.json(Node.js)
  • requirements.txt(Python)
  • go.mod(Go)
  • Cargo.toml(Rust)
  • pom.xml(Java/Maven)
第 2 步:分析依赖项

检查依赖项:

  • 读取依赖文件
  • 检查版本
  • 识别过时的软件包
  • 记录版本约束
第 3 步:语义化版本分析

使用语义化版本(semver)分析版本号:

  1. 解析版本号:

    • 从版本字符串中提取 major.minor.patch
    • 处理版本范围(^、~、>= 等)
    • 区分固定版本与范围版本
  2. 检测主版本更新:

    • 比较当前版本与最新可用版本
    • 识别主版本变更(例如,1.x.x -> 2.x.x)
    • 将主版本更新标记为可能存在破坏性变更
  3. 检查变更日志中的破坏性变更:

    • 对于主版本更新:触发网络搜索(Exa/WebFetch),调查破坏性变更
    • 在变更日志中查找“BREAKING CHANGE”标记
    • 检查迁移指南
    • 查看发行说明中的破坏性变更
    • 记录发现的具体破坏性变更
  4. 语义化版本规则:

    • 主版本(X.0.0):可能存在破坏性变更,需要修改代码
    • 次版本(0.X.0):新增功能,向后兼容
    • 补丁版本(0.0.X):错误修复,向后兼容
  5. 检测破坏性变更:

    • 解析变更日志条目,查找破坏性变更标记
    • 识别已弃用的 API
    • 检查是否移除了功能
    • 记录迁移要求
    • 生成破坏性变更报告
第 4 步:检查更新

检查可用更新:

  • 查询软件包注册表
  • 比较当前版本与最新版本
  • 识别主版本、次版本和补丁版本更新
  • 应用语义化版本分析
  • 警告破坏性变更
第 5 步:安全审计

检查漏洞:

  • 扫描已知漏洞
  • 检查安全公告
  • 识别高风险软件包
  • 建议安全更新
第 6 步:生成报告

创建依赖项报告:

  • 列出过时的软件包
  • 识别破坏性变更
  • 建议更新策略
  • 提供迁移指导 </execution_process>
**与 DevOps Agent 集成**: - 管理依赖项更新 - 实施更新策略 - 验证兼容性

与 Security Architect Agent 集成:

  • 审查安全漏洞
  • 验证安全更新
  • 确保合规

<best_practices>

  1. 定期分析:定期分析依赖项
  2. 安全优先:优先处理安全更新
  3. 测试更新:更新后务必进行测试
  4. 逐步更新:逐步进行更新
  5. 记录变更:跟踪更新决策 </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