mcpField
C
codanna-codebase-intelligence

codanna-codebase-intelligence

github.com/nickcrew开发6276 次安装17 周前更新
代码仓库

关于 codanna-codebase-intelligence

codanna-codebase-intelligence 是通过 Codanna 索引查询代码库的技能,提供语义搜索、符号查找、调用关系和依赖分析。它帮助开发者与编码 Agent 理解陌生代码,并依据结构信息评估重构影响。

主要功能

  1. 01按意图搜索代码
  2. 02查找符号并查看详情
  3. 03追踪调用方与下游调用
  4. 04分析依赖影响
  5. 05搜索已索引文档
  6. 06通过监视模式更新索引

适用场景

  1. 01定位某项行为对应的代码
  2. 02追踪函数的使用关系
  3. 03评估重构前的风险
  4. 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“会有什么问题?”

工作流模式

重构前
  1. find_symbol - 了解当前实现
  2. find_callers - 找出所有使用位置
  3. analyze_impact - 评估影响范围
  4. 然后开始修改
了解不熟悉的代码
  1. semantic_search_docs - “X 是如何工作的”
  2. find_symbol - 获取入口点详情
  3. get_calls - 追踪执行流程
查找添加代码的位置
  1. semantic_search_docs - “类似模式”
  2. find_callers - 了解现有代码如何集成
  3. 遵循既有模式

为什么选择 Codanna,而不是 Grep

Grep/FindCodanna
文本匹配语义理解
字符串 “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 时会显示传递调用方
  • 结果包含文件路径和行号,可用于导航

评论

支持 Markdown