mcpField
D
dependency-graph

dependency-graph

github.com/athola开发34396 次安装1 天前更新
代码仓库

关于 dependency-graph

将代码模块、包或插件之间的导入和依赖关系整理为 Mermaid 流程图的 Skill,可用于依赖分析、循环依赖检测和重构规划。

主要功能

  1. 01生成 Mermaid 依赖流程图
  2. 02区分内部与外部导入
  3. 03标示关键和可选依赖
  4. 04检测并标记循环依赖
  5. 05汇总入度与出度

适用场景

  1. 01检查代码库中的依赖关系
  2. 02查找模块间的循环依赖
  3. 03评估重构影响范围

MCP 相关

工作流会调用 Mermaid Chart MCP,验证并渲染生成的流程图。

安装

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

$npx skills add https://github.com/athola/claude-night-market --skill dependency-graph

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

详细介绍

依赖关系图

生成 Mermaid 流程图,展示模块、包或插件之间的导入和依赖关系。

适用场景

  • 了解各项内容之间的依赖关系
  • 查找循环依赖
  • 分析模块之间的耦合
  • 通过查看依赖影响来规划重构
  • 回答“如果我更改此项,会有哪些内容受到影响?”

不适用场景

  • 运行时调用路径(使用 cartograph:call-chain)
  • 类型层次结构(使用 cartograph:class-diagram)

工作流

步骤 1:探索代码库

调度代码库探索 Agent:

Agent(cartograph:codebase-explorer)
Prompt: Explore [scope] and return a structural model.
Focus on import statements and cross-module dependencies
for a dependency graph. Track both internal and external
imports.
步骤 2:生成 Mermaid 语法

将结构模型转换为 Mermaid 流程图, 用有向边表示依赖关系。

依赖关系图规则:

  • 使用 flowchart LR(从左到右)表示依赖方向
  • 每个节点代表一个模块或包
  • 边从依赖方指向其依赖项(A --> B 表示 “A 依赖 B”)
  • 按依赖类型使用不同颜色:
    • 内部依赖使用默认箭头
    • 外部或可选依赖使用点状箭头(-.->)
    • 关键路径依赖使用粗箭头(==>)
  • 按包或插件划分子图
  • 如果给定深度参数,则限制传递依赖
  • 使用红色样式突出显示循环依赖

输出示例:

flowchart LR
    subgraph sanctum[Sanctum]
        commit[commit]
        pr_prep[pr_prep]
        workspace[workspace]
    end

    subgraph leyline[Leyline]
        git[git_platform]
        errors[error_patterns]
    end

    subgraph external[External]
        subprocess[subprocess]
        json[json]
    end

    commit --> git
    commit --> json
    pr_prep --> workspace
    pr_prep --> git
    workspace --> errors
    workspace -.-> subprocess
步骤 3:通过 MCP 渲染

调用 Mermaid Chart MCP 进行渲染:

mcp__claude_ai_Mermaid_Chart__validate_and_render_mermaid_diagram
  prompt: "Dependency graph of [scope]"
  mermaidCode: [generated syntax]
  diagramType: "flowchart"
  clientName: "claude-code"

如果渲染失败,请修正语法并重试(最多重试 2 次)。

步骤 4:呈现结果

展示渲染后的图表和分析说明:

  • 模块总数和依赖数量
  • 被依赖最多的模块(入度高)
  • 依赖项最多的模块(出度高)
  • 检测到的循环依赖(如有)

退出条件

  • 已生成 Mermaid flowchart LR 语法,并使用从依赖方指向依赖项的有向边(A --> B 表示“A 依赖 B”)
  • 已调用 mcp__claude_ai_Mermaid_Chart__validate_and_render_mermaid_diagram,且调用成功、没有错误
  • 分析说明包含模块总数、入度最高的模块和出度最高的模块
  • 如果检测到循环依赖,则使用红色样式突出显示,并在分析说明中明确列出
  • 外部依赖使用点状箭头(-.->),以区别于内部依赖箭头

评论

支持 Markdown