mcpField
G
graph-search

graph-search

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

关于 graph-search

graph-search 是在代码知识图谱中按名称查找代码实体的开发技能,适合需要定位函数、类或类型的开发者。它根据查询格式调整相关性,并显示匹配项的位置和评分。

主要功能

  1. 01按名称搜索代码实体
  2. 02支持按函数或类筛选
  3. 03识别命名格式并调整相关性
  4. 04显示限定名称、文件路径、行号和评分
  5. 05提供读取首个结果源码的选项

适用场景

  1. 01查找函数或类的定义位置
  2. 02按限定路径定位代码实体
  3. 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)

步骤

  1. 接收查询:从用户处获取搜索词。

  2. 运行查询脚本:

    python3 ${CLAUDE_PLUGIN_ROOT}/scripts/graph_query.py \
        --action search --query "<term>" --limit 20
    

    可选筛选条件:

    • --kind Function 仅搜索函数
    • --kind Class 仅搜索类
  3. 显示结果:显示每个匹配项的限定名称、文件路径、 行号和相关性评分。

  4. 提供阅读选项:询问用户是否要阅读排名第一的结果对应的源文件。

查询智能

搜索引擎会检测查询模式:

  • 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