关于 codanna-codebase-intelligence
codanna-codebase-intelligence 是通过 Codanna 索引查询代码库的技能,提供语义搜索、符号查找、调用关系和依赖分析。它帮助开发者与编码 Agent 理解陌生代码,并依据结构信息评估重构影响。
主要功能
- 01按意图搜索代码
- 02查找符号并查看详情
- 03追踪调用方与下游调用
- 04分析依赖影响
- 05搜索已索引文档
- 06通过监视模式更新索引
适用场景
- 01定位某项行为对应的代码
- 02追踪函数的使用关系
- 03评估重构前的风险
- 04探索陌生代码库
MCP 相关
该技能使用 Codanna 的 MCP 工具进行语义代码搜索、符号发现、调用关系追踪、影响分析和文档搜索。Codanna 可向交互式 MCP 客户端提供这些工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nickcrew/ claude-cortex --skill codanna-codebase-intelligence安装后在 Claude Code 中输入/codanna-codebase-intelligence确认已加载。
详细介绍
Codanna 代码库智能
Codanna 会为代码库建立索引,并通过 MCP 工具提供语义搜索、调用图和依赖分析。使用 Codanna 前,先别用 grep/find——它能理解代码结构,而不只是文本模式。
适用场景
- 查找代码:“我们在哪里处理身份验证?” →
semantic_search_docs - 了解依赖关系:“哪些地方调用了这个函数?” →
find_callers - 影响分析:“如果我修改这个,会有什么问题?” →
analyze_impact - 探索符号:“给我看看 Parser 结构体” →
find_symbol
核心工具
发现
# Natural language search - finds code by intent, not keywords
semantic_search_docs query:"error handling patterns" limit:5
# Search symbols by name/pattern
search_symbols query:"parse" kind:"function"
# Get full details on a specific symbol
find_symbol name:"process_file"
关系
# Who calls this function? (upstream)
find_callers symbol:"validate_input"
# What does this function call? (downstream)
get_calls symbol:"process_request"
# Full dependency graph - what breaks if I change this?
analyze_impact symbol:"DatabaseConnection" depth:3
文档(RAG)
# Search indexed markdown/docs
search_documents query:"API authentication" collection:"docs"
工具选择指南
| 任务 | 工具 | 示例 |
|---|---|---|
| 按概念查找代码 | semantic_search_docs | “数据库迁移” |
| 按名称查找符号 | search_symbols | 模式:“auth*” |
| 获取符号详情 | find_symbol | 精确名称:“UserService” |
| 追踪调用方 | find_callers | “谁在使用它?” |
| 追踪依赖项 | get_calls | “它调用了什么?” |
| 评估重构风险 | analyze_impact | “会有什么问题?” |
工作流模式
重构前
find_symbol- 了解当前实现find_callers- 找出所有使用位置analyze_impact- 评估影响范围- 然后开始修改
了解不熟悉的代码
semantic_search_docs- “X 是如何工作的”find_symbol- 获取入口点详情get_calls- 追踪执行流程
查找添加代码的位置
semantic_search_docs- “类似模式”find_callers- 了解现有代码如何集成- 遵循既有模式
为什么选择 Codanna,而不是 Grep
| Grep/Find | Codanna |
|---|---|
| 文本匹配 | 语义理解 |
| 字符串 “parse” 会匹配注释 | find_symbol 能找到实际函数 |
| 手动追踪调用 | find_callers 会显示完整调用图 |
| 猜测影响 | analyze_impact 会显示依赖关系 |
与 Agent-Loops 集成
Codanna 为 agent-loops 审查工作流提供结构化代码智能,弥补仅基于差异的审查无法提供的信息。
审查前影响分析
在调用 specialist-review.sh 前,运行 Codanna 以了解修改的影响范围。这会为审查提供有依据的结构化数据,帮助审查人员关注真实的下游影响,而不是根据差异进行猜测。
# Gather impact data for changed symbols
codanna mcp find_callers process_request --watch
codanna mcp analyze_impact DatabaseConnection --watch --json
多专家审查支持
在多专家审查架构中(参见 docs/development/plans/multi-specialist-review.md),专家可以将 Codanna 工具与 Read/Grep/Glob 结合使用,开展有依据的分析。影响数据还可以用于专家分流——根据代码库中受结构性影响的部分,决定启用哪些审查视角。
自动保持索引最新
CLI 命令上的 --watch 标志会检查文件变更,并在运行前重新建立索引,因此审查期间的影响数据始终保持最新,无需手动重新索引。MCP 服务对应的选项(codanna serve --watch)可在交互式会话中提供同样的时效保障。
提示
- 先用
semantic_search_docs广泛搜索,再用find_symbol深入查找 - 修改共享代码的任何重构前,都使用
analyze_impact find_callers的深度大于 1 时会显示传递调用方- 结果包含文件路径和行号,可用于导航