mcpField
C
call-chain

call-chain

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

关于 call-chain

Call Chain Tracing 用于追踪代码库中的执行路径。有 gauntlet 代码知识图谱时可借助图谱分析,否则回退到静态搜索,并输出调用树、Mermaid 图和关键性信息。

主要功能

  1. 01通过代码图谱追踪执行流
  2. 02回退到静态调用搜索
  3. 03展示缩进调用树
  4. 04生成 Mermaid 流程图
  5. 05报告执行流关键性因素

适用场景

  1. 01追踪指定函数的调用路径
  2. 02了解入口点的执行流程
  3. 03检查安全敏感或缺少测试的流程节点

安装

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

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

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

详细介绍

调用链跟踪

使用代码知识图谱跟踪代码库中的执行流程。

不适用的情况

  • 静态导入关系(使用 cartograph:dependency-graph)
  • 评估变更风险(使用 pensive:blast-radius)

前置条件

此技能需要 gauntlet 插件提供图数据。查找该插件:

GRAPH_QUERY=$(find ~/.claude/plugins -name "graph_query.py" -path "*/gauntlet/*" 2>/dev/null | head -1)

如果未安装 gauntlet:改用静态分析。使用 grep 跟踪函数调用,并根据导入/调用模式手动构建 Mermaid 图。跳过图专属步骤。

如果已安装但没有 graph.db:告知用户运行 /gauntlet-graph build。

步骤

  1. 接受目标:从用户处获取函数名或入口点(也可以跟踪所有入口点)。

  2. 运行流程跟踪(需要 gauntlet):

    python3 "$GRAPH_QUERY" --action flows --depth 15
    

    按入口点筛选:

    python3 "$GRAPH_QUERY" --action flows --entry "main"
    

    备用方案(没有 gauntlet):使用 rg(或 grep)跟踪调用:

    # Prefer rg (ripgrep) for speed; fall back to grep
    if command -v rg &>/dev/null; then
      rg -n "function_name\(" --type py . | head -20
    else
      grep -rn "function_name(" --include="*.py" . | head -20
    fi
    

    根据搜索结果手动构建调用树。

  3. 以缩进树形式显示:

    main() [criticality: 0.72]
      -> validate_input()
        -> parse_config()
      -> process_data()
        -> db.execute_query()
        -> cache.store()
      -> send_response()
    
  4. 生成 Mermaid 流程图:

    flowchart LR
      main --> validate_input
      main --> process_data
      main --> send_response
      validate_input --> parse_config
      process_data --> db.execute_query
      process_data --> cache.store
    
  5. 展示关键性分项:

    • 文件分布:流程涉及多少个文件
    • 安全敏感性:路径中是否包含身份验证/加密代码
    • 测试覆盖缺口:流程中未经测试的节点

关键性评分

因素权重含义
文件分布0.30涉及许多文件
安全性0.25包含身份验证/加密代码
外部调用0.20未解析的依赖项
测试缺口0.15流程中未经测试的节点
深度0.10深层调用链

退出条件

  • 显示目标函数的缩进调用树,并以 [criticality: N.NN] 形式标注关键性评分
  • 生成 Mermaid flowchart LR,其中的边表示跟踪路径中每个调用方到被调用方的关系
  • 显示关键性分项表,涵盖:文件分布、安全敏感性、外部调用、测试缺口和深度
  • 如果未安装 gauntlet,则使用静态 rg/grep 分析作为备用方案,并注明缺少图数据
  • 如果已安装 gauntlet 但缺少 graph.db,则告知用户运行 /gauntlet-graph build,然后再停止技能

评论

支持 Markdown