关于 call-chain
Call Chain Tracing 用于追踪代码库中的执行路径。有 gauntlet 代码知识图谱时可借助图谱分析,否则回退到静态搜索,并输出调用树、Mermaid 图和关键性信息。
主要功能
- 01通过代码图谱追踪执行流
- 02回退到静态调用搜索
- 03展示缩进调用树
- 04生成 Mermaid 流程图
- 05报告执行流关键性因素
适用场景
- 01追踪指定函数的调用路径
- 02了解入口点的执行流程
- 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。
步骤
-
接受目标:从用户处获取函数名或入口点(也可以跟踪所有入口点)。
-
运行流程跟踪(需要 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根据搜索结果手动构建调用树。
-
以缩进树形式显示:
main() [criticality: 0.72] -> validate_input() -> parse_config() -> process_data() -> db.execute_query() -> cache.store() -> send_response() -
生成 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 -
展示关键性分项:
- 文件分布:流程涉及多少个文件
- 安全敏感性:路径中是否包含身份验证/加密代码
- 测试覆盖缺口:流程中未经测试的节点
关键性评分
| 因素 | 权重 | 含义 |
|---|---|---|
| 文件分布 | 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