代码知识图谱查询
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_b30f8db8/code-knowledge-graph-query。
技能介绍
要解决什么问题
阅读陌生代码库时,最常见的困境是:眼前只有一个函数,却不知道谁在调用它、它又依赖了谁。想回答「谁调用了 login」,靠 grep 只能找到文本匹配,无法区分同名函数、动态调用和跨模块依赖;想评估「修改 formatDate 会影响哪些地方」,人工梳理调用链既耗时又容易遗漏。代码知识图谱把这些关系预先算好,问题就从「读代码推导」变成「查图验证」。
核心能力
本技能提供一个 Python 脚本 scripts/query_graph.py,连接 Neo4j 实例后执行预构建的 Cypher 查询,结果以结构化 JSON 输出到 stdout,便于 agent 解析:
- 调用关系:
callers找上游调用方,callees找下游被调用方,call-chain按--depth双向追踪调用链 - 模块依赖:
deps双向查询,既看模块依赖了谁,也看谁依赖了它 - 类继承:
hierarchy展示父类与子类的完整继承关系 - 影响分析:
impact汇总修改某函数后的上游调用者与下游依赖方 - 图谱探索:
schema列出节点标签与关系类型,search按名称全文搜索实体 - 自定义查询:
custom直接执行任意 Cypher,应对模板覆盖不到的场景
典型用法是在改代码前先跑一轮查询:
- 回答「
BaseController的类继承层次是什么?」→hierarchy --name "BaseController" - 回答「哪些模块依赖
src/auth.ts?」→deps --name "src/auth.ts"
使用步骤
- 先看 Schema:图谱结构未知时,先执行
query_graph.py schema确认节点标签和关系类型 - 匹配查询类型:按问题模式从
callers、callees、call-chain、deps、hierarchy、impact、search中选择 - 执行并解读:解析 JSON 输出,结合源代码给出结论
适配与边界
不同代码图谱的命名约定可能不同。脚本模板支持 CALLS|INVOKES、EXTENDS|IMPLEMENTS、IMPORTS|DEPENDS_ON|REQUIRES 等常见模式;若实际图谱不一致,可参考 references/schema.md 的 Schema 文档,先用 custom 模式做即席查询验证,确认无误后编辑 QUERY_TEMPLATES 字典做永久适配。本技能只提供查询能力,不负责构建图谱——前提是已有可用的 Neo4j 实例和导入好的代码知识。
使用场景
- 接手陌生代码库时,需追踪 login 的上游调用者与下游依赖,快速画出完整调用链
- 重构 src/auth.ts 前,要查清哪些模块依赖它,评估改动波及范围
- 修改 formatDate 函数时,需确认所有调用方,避免遗漏导致回归
- 理解 BaseController 的继承层次,确认哪些子类会受父类改动影响
适合人员
- 后端工程师:在大型单体仓库中定位函数调用关系,减少 grep 排查时间
- 架构师:重构或升级接口前,评估模块依赖与变更影响范围
- AI 应用开发者:为 agent 集成结构化的代码上下文查询能力
- 代码审查者:核查改动波及面,确认受影响调用方已同步更新