用途
Code Intelligence 是一个代码库智能分析技能,旨在帮助理解代码关系、进行语义搜索以及分析变更影响。它适用于理解大型或不熟悉的代码库、查找函数或变量的所有使用位置、在修改前评估风险、发现代码库中的模式、回答“X 在哪里”的问题、准备代码审查以及规划重构。
主要能力
索引代码库
构建可搜索的代码库索引:
node index.js --scan /path/to/project
该命令会创建:
- 符号表(函数、类、导出)
- 导入/依赖图
- 文件元数据索引
语义搜索
按含义而非仅按文本搜索代码:
# 查找与认证相关的代码
node search.js "authentication middleware"
# 查找数据库连接建立的位置
node search.js "database connection setup"
# 带过滤条件搜索
node search.js "user validation" --type function --ext js,ts
关系分析
理解代码依赖:
# 哪些内容依赖此文件?
node deps.js --dependents src/utils/api.js
# 此文件导入了什么?
node deps.js --imports src/utils/api.js
# 显示完整依赖链
node deps.js --chain src/app.js
影响分析
预测变更可能破坏的内容:
# 分析修改函数的影响
node impact.js src/utils/auth.js --function verifyToken
# 检查文件变更的影响
node impact.js src/config/database.js
代码问答
就代码库提问:
node ask.js "Where is the JWT secret configured?"
node ask.js "How does error handling work in this project?"
node ask.js "What functions use the database connection?"
使用方式
安装
cd /job/.pi/skills/code-intelligence
npm install
输出格式
所有工具输出 JSON 以便程序化使用,或输出格式化文本以便阅读:
# JSON 输出(用于管道传递给其他工具)
node search.js "auth" --json
# 格式化文本(默认)
node search.js "auth"
架构
该技能采用分层方法:
- 解析层:使用 Tree-sitter 进行 AST 解析
- 索引层:使用 SQLite 进行快速查找 + JSON 存储图数据
- 搜索层:混合关键词 + 语义匹配
- 分析层:使用图算法进行关系映射
适用场景
- 理解大型或不熟悉的代码库
- 查找函数或变量的所有使用位置
- 在修改前评估风险
- 发现代码库中的模式
- 回答“X 在哪里”的问题
- 准备代码审查
- 规划重构
限制与要求
要求
- Node.js ≥18
- 支持语言的 Tree-sitter 解析器(自动安装)
支持的语言
- JavaScript/TypeScript
- Python
- Rust
- Go
- Java
- Ruby
- 以及更多通过 tree-sitter 支持的语言
数据存储
索引文件存储在 .code-intelligence/ 中:
- index.db - SQLite 数据库
- graph.json - 依赖图
- cache/ - 解析后的 AST 缓存
建议将 .code-intelligence/ 添加到 .gitignore。