名称: 代码上下文查找器 description: 在编码时自动从知识图谱和代码关系中查找相关上下文。检测何时需要上下文(新文件、不熟悉的代码、架构决策)并展示相关实体、先前决策和代码依赖关系。 author: Joseph OBrien status: 未发布 updated: ‘2025-12-23’ version: 1.0.1 tag: 技能 type: 技能
代码上下文查找器
概述
通过结合知识图谱搜索和代码关系分析,在编码时查找并展示相关上下文。使用智能检测识别何时需要额外上下文,然后检索:
- 知识图谱实体:先前决策、项目上下文、相关概念
- 代码关系:依赖关系、导入、函数调用、类层次结构
使用时机(智能检测)
此技能在检测到以下情况时自动激活:
| 触发条件 | 搜索内容 |
|---|---|
| 打开不熟悉的文件 | 知识图谱中的文件/模块上下文,代码中的导入/依赖关系 |
| 开发新功能 | 先前决策、相关概念、类似实现 |
| 调试错误 | 相关问题、错误模式、受影响组件 |
| 重构代码 | 依赖文件、调用者/被调用者、测试覆盖率 |
| 进行架构决策 | 过去的架构决策记录、相关设计文档、既定模式 |
| 修改配置/基础设施文件 | 相关部署、环境说明、过去问题 |
有关检测触发器的参考,请加载 references/detection_triggers.md。
核心工作流程
1. 检测上下文需求
识别表明需要上下文的触发条件:
需要关注的信号:
- 打开新/不熟悉的文件
- 错误消息提到未知组件
- 关于“为什么”或“如何”工作的问题
- 对共享/核心模块的更改
- 架构或设计讨论
2. 搜索知识图谱
使用MCP记忆工具查找相关实体:
# 搜索相关上下文
mcp__memory__search_nodes(query="<主题>")
# 如果已知,打开特定实体
mcp__memory__open_nodes(names=["实体1", "实体2"])
# 查看关系
mcp__memory__read_graph()
搜索策略:
- 模块/文件名 → 项目上下文
- 错误类型 → 过去的问题、解决方案
- 功能名称 → 先前决策、理由
- 人员姓名 → 所有权、专业知识
3. 分析代码关系
查找代码级上下文:
# 查找导入此模块的内容
grep -r "from 模块 import" --include="*.py"
grep -r "import 模块" --include="*.py"
# 查找函数调用者
grep -r "函数名(" --include="*.py"
# 查找类用法
grep -r "类名" --include="*.py"
# 查找测试覆盖率
find . -name "*test*.py" -exec grep -l "模块名" {} \;
有关常见搜索模式,请加载 references/search_patterns.md。
4. 综合上下文
简洁地呈现发现:
## 找到的上下文
**知识图谱:**
- [实体]:相关观察
- [决策]:先前的架构选择
**代码关系:**
- 被导入:文件1.py、文件2.py
- 依赖于:模块_a、模块_b
- 测试:test_module.py(5个测试)
**建议操作:**
- 修改前审查[实体]
- 考虑对[依赖文件]的影响
快速参考
知识图谱查询
| 意图 | 查询模式 |
|---|---|
| 查找项目上下文 | search_nodes("项目名称") |
| 查找先前决策 | search_nodes("决策") 或 search_nodes("<功能>") |
| 查找相关概念 | search_nodes("<概念>") |
| 查找人员/所有者 | search_nodes("<人员姓名>") |
| 浏览全部 | read_graph() |
代码关系查询
| 意图 | 命令 |
|---|---|
| 查找导入者 | grep -r "from X import|import X" |
| 查找调用者 | grep -r "函数(" |
| 查找实现 | grep -r "def 函数|class 类" |
| 查找测试 | find -name "*test*" -exec grep -l "X" |
| 查找配置 | grep -r "X" *.json *.yaml *.toml |
与编码工作流程集成
进行更改前
- 检查知识图谱中模块/功能的上下文
- 查找所有导入/依赖于目标文件的文件
- 定位相关测试
- 如果是架构决策,审查先前决策
进行更改后
- 如果做出重要决策,更新知识图谱
- 记录新模式或学习心得
- 向现有实体添加观察
调试时
- 在知识图谱中搜索类似错误
- 查找所有通往受影响组件的代码路径
- 检查相关问题/决策
- 如果是新解决方案,记录文档
资源
references/
detection_triggers.md- 智能检测的详细触发模式search_patterns.md- 代码关系的常见搜索模式
scripts/
find_code_relationships.py- 分析导入、依赖关系和调用图