依赖项扫描器Skill dependency-scanner

依赖项扫描器是一款用于软件项目依赖管理的专业工具,支持多语言包管理器自动检测、依赖树可视化分析、版本冲突识别、循环依赖检测、许可证合规性检查和SBOM(软件物料清单)生成。适用于代码迁移、安全评估、合规审计和DevOps自动化流程,帮助开发团队实现高效的依赖项管理和风险控制。

DevOps 0 次安装 0 次浏览 更新于 2/23/2026

name: dependency-scanner description: 全面的依赖项扫描、清单生成和SBOM创建,用于迁移准备度评估 allowed-tools: [“Bash”, “Read”, “Write”, “Grep”, “Glob”, “Edit”]

依赖项扫描器技能

为代码库执行全面的依赖项扫描和清单生成,通过SBOM(软件物料清单)生成支持迁移规划和安全评估。

目的

实现全面的依赖项管理,用于:

  • 直接和传递依赖项提取
  • 依赖树可视化
  • 版本冲突检测
  • 循环依赖识别
  • 许可证提取和合规性
  • SBOM生成(CycloneDX、SPDX格式)

能力

1. 直接/传递依赖项提取

  • 解析包清单文件(package.json、pom.xml、requirements.txt等)
  • 解析完整的依赖树,包括传递依赖项
  • 识别版本约束和解析结果
  • 跟踪依赖项来源和注册表

2. 依赖树可视化

  • 生成分层依赖关系图
  • 导出为DOT、JSON或Mermaid格式
  • 高亮显示问题路径
  • 计算树深度和广度指标

3. 版本冲突检测

  • 识别依赖树中的版本冲突
  • 检测对等依赖项违规
  • 查找不兼容的版本范围
  • 建议解决策略

4. 循环依赖识别

  • 检测循环依赖链
  • 映射依赖循环
  • 评估循环依赖的影响
  • 推荐打破循环的策略

5. 许可证提取

  • 从依赖项中提取许可证信息
  • 识别许可证类型(MIT、Apache、GPL等)
  • 标记Copyleft许可证
  • 跟踪双重许可的包

6. SBOM生成

  • 生成CycloneDX格式的SBOM
  • 生成SPDX格式的SBOM
  • 包含漏洞引用
  • 支持机器可读和人类可读的输出

工具集成

当外部工具可用时,此技能可以利用以下工具:

工具 用途 集成方法
npm/yarn/pnpm Node.js依赖项 CLI
Maven Java依赖项 CLI
Gradle Java/Kotlin依赖项 CLI
pip/pipenv/poetry Python依赖项 CLI
Bundler Ruby依赖项 CLI
Cargo Rust依赖项 CLI
Go Modules Go依赖项 CLI
Snyk 安全扫描 CLI / API
OWASP Dependency-Check 漏洞扫描 CLI
Trivy SBOM生成 MCP服务器 / CLI
Syft SBOM生成 CLI

使用方法

基本扫描

# 调用技能进行依赖项扫描
# 该技能将自动检测包管理器并相应扫描

# 预期输入:
# - targetPath: 项目根目录路径
# - scanDepth: 'direct' | 'transitive' | 'full'
# - outputFormat: 'json' | 'tree' | 'sbom-cyclonedx' | 'sbom-spdx'
# - includeLicenses: 布尔值

扫描工作流

  1. 检测阶段

    • 识别正在使用的包管理器
    • 定位清单文件
    • 检查锁文件
  2. 提取阶段

    • 解析清单文件
    • 解析依赖树
    • 提取版本信息
  3. 分析阶段

    • 检测冲突
    • 识别循环依赖
    • 提取许可证
  4. 输出生成

    • 生成清单报告
    • 创建SBOM(如请求)
    • 生成可视化工件

输出模式

{
  "scanId": "string",
  "timestamp": "ISO8601",
  "target": {
    "path": "string",
    "packageManagers": ["string"],
    "manifestFiles": ["string"]
  },
  "summary": {
    "totalDependencies": "number",
    "directDependencies": "number",
    "transitiveDependencies": "number",
    "uniquePackages": "number",
    "treeDepth": "number"
  },
  "dependencies": [
    {
      "name": "string",
      "version": "string",
      "type": "direct|transitive",
      "parent": "string|null",
      "license": "string",
      "repository": "string",
      "depth": "number"
    }
  ],
  "conflicts": [
    {
      "package": "string",
      "versions": ["string"],
      "sources": ["string"],
      "recommendation": "string"
    }
  ],
  "circularDependencies": [
    {
      "chain": ["string"],
      "severity": "high|medium|low"
    }
  ],
  "licenses": {
    "summary": {
      "MIT": "number",
      "Apache-2.0": "number",
      "GPL-3.0": "number"
    },
    "copyleft": ["string"],
    "unknown": ["string"]
  },
  "sbom": {
    "format": "cyclonedx|spdx",
    "version": "string",
    "path": "string"
  }
}

与迁移流程集成

此技能与以下代码迁移/现代化流程集成:

  • dependency-analysis-updates: 依赖项评估的主要工具
  • legacy-codebase-assessment: 遗留系统的依赖项清单
  • framework-upgrade: 升级的兼容性分析
  • cloud-migration: 依赖项可移植性评估

配置

技能配置文件

在项目根目录创建 .dependency-scanner.json

{
  "packageManagers": ["auto"],
  "excludePaths": ["node_modules", ".git"],
  "scanDepth": "full",
  "includeDev": true,
  "includeOptional": false,
  "licensePolicy": {
    "allowed": ["MIT", "Apache-2.0", "BSD-3-Clause", "ISC"],
    "flagged": ["GPL-3.0", "AGPL-3.0"],
    "blocked": []
  },
  "sbomConfig": {
    "format": "cyclonedx",
    "version": "1.5",
    "includeVulnerabilities": true
  }
}

MCP服务器集成

当Trivy SBOM生成器MCP服务器可用时:

// MCP工具调用示例
{
  "tool": "trivy_generate_sbom",
  "arguments": {
    "target": "./",
    "format": "cyclonedx",
    "output": "./sbom.json"
  }
}

当GitHub Dependabot MCP服务器可用时:

// 依赖项更新检查示例
{
  "tool": "dependabot_check_updates",
  "arguments": {
    "repo": "owner/repo",
    "ecosystem": "npm"
  }
}

包管理器支持

Node.js (npm/yarn/pnpm)

# 自动检测的文件:
# - package.json
# - package-lock.json
# - yarn.lock
# - pnpm-lock.yaml

Java (Maven/Gradle)

# 自动检测的文件:
# - pom.xml
# - build.gradle
# - build.gradle.kts

Python (pip/pipenv/poetry)

# 自动检测的文件:
# - requirements.txt
# - Pipfile
# - pyproject.toml
# - setup.py

Ruby (Bundler)

# 自动检测的文件:
# - Gemfile
# - Gemfile.lock

Go (Modules)

# 自动检测的文件:
# - go.mod
# - go.sum

Rust (Cargo)

# 自动检测的文件:
# - Cargo.toml
# - Cargo.lock

最佳实践

  1. 锁文件使用:始终包含锁文件以实现可重复扫描
  2. 定期扫描:集成到CI/CD中以进行持续监控
  3. SBOM存储:将SBOM与发布版本一起存储以实现合规性
  4. 许可证审查:审查依赖项更新中的许可证变更
  5. 冲突解决:在迁移前解决版本冲突

相关技能

  • vulnerability-scanner: 依赖项的安全扫描
  • license-compliance-checker: 详细的许可证分析
  • dependency-updater: 自动化依赖项更新

相关代理

  • dependency-modernization-agent: 使用此技能进行依赖项管理
  • migration-readiness-assessor: 使用此技能进行准备度评估
  • security-vulnerability-assessor: 使用此技能进行依赖项安全

参考