关于 graph-search
graph-search 是在代码知识图谱中按名称查找代码实体的开发技能,适合需要定位函数、类或类型的开发者。它根据查询格式调整相关性,并显示匹配项的位置和评分。
主要功能
- 01按名称搜索代码实体
- 02支持按函数或类筛选
- 03识别命名格式并调整相关性
- 04显示限定名称、文件路径、行号和评分
- 05提供读取首个结果源码的选项
适用场景
- 01查找函数或类的定义位置
- 02按限定路径定位代码实体
- 03在已构建的代码图谱中探索匹配项
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill graph-search安装后在 Claude Code 中输入/graph-search确认已加载。
详细介绍
搜索代码知识图谱
按名称搜索 .gauntlet/graph.db 中的代码实体。
不要在以下情况下使用
- 缺少图谱或图谱已过时(使用
gauntlet:graph-build) - 评估更改的影响(使用
pensive:blast-radius)
步骤
-
接收查询:从用户处获取搜索词。
-
运行查询脚本:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/graph_query.py \ --action search --query "<term>" --limit 20可选筛选条件:
--kind Function仅搜索函数--kind Class仅搜索类
-
显示结果:显示每个匹配项的限定名称、文件路径、 行号和相关性评分。
-
提供阅读选项:询问用户是否要阅读排名第一的结果对应的源文件。
查询智能
搜索引擎会检测查询模式:
- PascalCase(例如,
UserService):提高 Class 和 Type 结果的排名 - snake_case(例如,
get_users):提高 Function 结果的排名 - 点分路径(例如,
app.models.User):提高限定名称匹配项的排名
前置条件
必须先构建图谱。如果 .gauntlet/graph.db
不存在,建议运行 graph-build 技能。
退出条件
- 如果
.gauntlet/graph.db不存在,技能会提示缺少前置条件的错误,并建议使用gauntlet:graph-build,而不是静默失败 - 结果会显示每个匹配项的限定名称、文件路径、行号和相关性评分(最多显示
--limit条结果) - 查询智能会应用正确的加权:PascalCase 提高 Class/Type 结果的排名,snake_case 提高 Function 结果的排名,点分路径提高限定名称匹配项的排名
- 显示结果后,会询问用户是否要阅读排名第一的结果对应的源文件
- 只有在
graph_query.py --action status显示node_count大于零后,才会将count: 0的结果报告为“图谱中不存在”。尚未构建的图谱,或未使用 tree-sitter 构建的图谱,对所有查询都返回零,但这个零并不能说明代码库的情况
评论
支持 Markdown