代码智能分析引擎

Cortex是一个代码库智能引擎,通过构建项目的持久知识图谱,提供依赖分析、影响评估、测试发现和生成等功能。

  • by curtisdery
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 curtisdery/cortex

使用说明

皮质

Cortex是一个代码库智能引擎,可以构建任何项目的持久知识图,并通过CLI、MCP服务器和CI工具链公开。将其指向代码库——它为每个函数、类、路由、数据库表和环境变量建立索引,映射它们之间的关系,并为您提供有关依赖关系、影响、测试覆盖率和代码健康状况的即时答案。

不需要API密钥。在当地运行。将所有内容存储在SQLite中。可与任何兼容MCP的AI工具配合使用。

它的作用

索引 --将整个代码库解析为存储在SQLite中的知识图。支持TypeScript、JavaScript、Python、SQL、JSON、YAML、ENV文件,以及Go、Rust、Java和Ruby的通用回退。处理monorepos,过滤生成的代码,并在毫秒内增量更新。

查询 --询问有关代码的自然语言问题。“什么依赖于UserService?”跟踪每个调用者。“当用户点击签出时会发生什么?”遵循文件之间的数据流。“列出所有路由”返回每个HTTP端点。

影响分析 --在你改变什么之前,知道什么会打破。Cortex计算爆炸半径——每个受影响的文件、测试和文档——分配一个0到100的风险评分,并建议采取具体行动来降低风险。

测试发现 -查找未经测试的代码,并根据错误的危险程度对其进行排名。按调用方的数量、是否位于关键路径(可从路由或API端点访问)、是否接触数据库以及最近更改的时间进行优先级排序。

测试生成 --使用调用站点契约推理生成适合框架的测试文件(Jest、Vitest、Pytest、node:test)。知道每个函数的实际使用方式,因为它从图中读取调用者,而不仅仅是签名。

漂移检测 --扫描随时间累积的模式不一致。混合命名约定、冲突的导出样式、混合了无关问题的目录。在代码库变得一团糟之前,人们不会注意到这种技术债务。

变更审查 --对照知识图查看您最近的git更改。标记未经测试的新函数、高影响修改(具有许多调用者的函数)和需要迁移验证的数据库访问模式。

安装

git clone https://github.com/curtisdery/cortex.git
cd cortex
bun install

需要 包子 1.1+.

用法

CLI——一个命令,完整分析

bun bin/cortex.ts /path/to/your/project
Cortex Health Report — my-project
══════════════════════════════════════════════════

📦 Index
  3,421 nodes, 12,085 edges (1.8s)

🧪 Test Coverage
  42% — 1,437 / 3,421 entities tested
  Top untested (by risk):
    1. [85pts] processPayment (src/payments.ts:42)
    2. [72pts] validateOrder (src/orders.ts:18)

📝 Recent Changes
  8 files changed
  [WARN] handleAuth has 22 callers — wide impact

🔍 Pattern Drift
  No issues detected.

──────────────────────────────────────────────────
Result: WARN — 0 errors, 1 warnings

选项

bun bin/cortex.ts .                      # Analyze current directory
bun bin/cortex.ts . --skip-index         # Use cached graph (instant)
bun bin/cortex.ts . --json               # Machine-readable output
bun bin/cortex.ts . --quiet              # Just PASS/WARN/FAIL
bun bin/cortex.ts . --min-coverage=30    # Fail if coverage below 30%
bun bin/cortex.ts . --base=main          # Review changes since main branch

MCP服务器——连接到克劳德代码、游标、VS代码

# Register globally (works from any directory)
claude mcp add --scope user cortex -- bun /absolute/path/to/cortex/bin/cortex-mcp.ts

启动新的Claude Code会话。有8种工具可供选择:

工具 它做什么
cortex_index 构建或更新知识图谱
cortex_query 关于代码关系的自然语言问题
cortex_impact 爆炸半径+拟议变更的风险评分
cortex_test_discover 查找按风险排序的未经测试的代码
cortex_test_generate 使用调用站点上下文生成测试文件
cortex_guardian_scan 检测模式漂移和不一致
cortex_guardian_review 根据项目模式审查git更改
cortex_status 图形统计和实体细分

CI管道

- name: Cortex Health Check
  run: bun bin/cortex.ts . --min-coverage=30 --base=main --quiet

退出代码0=通过,1=失败。

建筑

src/
├── graph/          Knowledge graph (SQLite storage, queries, BFS/DFS traversal)
├── indexer/        File discovery, 5 language parsers, classifiers
├── storage/        SQLite backend, pluggable interface, federation support
├── impact/         Blast radius computation, risk scoring (0-100)
├── testgen/        Test discovery, prioritization, generation, 4 framework templates
├── guardian/       Drift detection, file watcher, PR review
├── orchestrator/   Multi-model routing (Haiku/Sonnet/Opus tiers)
├── ci/             CI pipeline commands
└── types.ts        All TypeScript interfaces

储存: SQLite具有WAL模式、FTS5全文搜索、索引列。处理200K以上的节点图。储存于 ~/.claude/cortex/ 每个项目。

解析器: 基于正则表达式的提取(无编译器依赖关系)。TypeScript/JavaScript(函数、类、导入、路由、环境变量、调用检测)、Python(类、装饰器、Flask/Dango路由、pytest夹具)、SQL(CREATE TABLE、列、外键、迁移)、Config(package.json deps、tsconfig路径、.env定义)、Generic(Go、Rust、Java、Ruby模式)。

安全: 参数化SQL查询、路径遍历验证、命令注入预防(带数组参数的execFileSync)、符号链接转义检测。

数字

度量 值
源文件 54
代码行数 9750
依赖关系 1(MCP SDK)
测试计数 58通过
索引速度 2秒内约12K个节点
查询速度 亚毫秒(索引SQLite)
数据库大小 ~22MB,用于2K文件代码库

许可证

麻省理工学院