xiaoletian64/obs-code

GitHub: xiaoletian64/obs-code

obs-code 为 AI 编程助手提供代码知识图谱能力,在修改代码前精准分析调用链和影响范围,防止改动遗漏导致线上故障。

Stars: 4 | Forks: 0

version
languages tools speed license

obs-code

代码知识图谱
让 AI 改代码之前,先知道改哪里会牵连什么

MCP Claude Cursor Codex OpenCode

## 没有 obs-code vs 有 obs-code
### ❌ 没有 obs-code ``` 你说:修复用户登录的 bug AI 的做法: 1. 读 200 个文件 2. 上下文爆了 3. 改了 handleLogin 4. 但不知道 authRouter 也调了它 5. 线上炸了 💥 结果:改了 A,B 炸了 ``` ### ✅ 有 obs-code ``` 你说:修复用户登录的 bug AI 的做法: 1. obs_impact("handleLogin") 2. 精准知道 3 个调用方 3. 知道 2 个被调用方 4. 只看 5 个文件 5. 改完安全上线 🚀 结果:改一个,不漏一个 ```
## 核心能力矩阵
find
符号定位
5 级降级搜索
精确→模糊→全文→中文→多维
impact
影响分析
BFS 调用图遍历
调用者+被调用者+源码
plan
修改计划
需求→文件清单
直接交给 AI 编辑
map
功能地图
功能→阅读链路
分阶段+风险报告
wiki
LLM Wiki
自动生成文档
30秒了解任何项目
web
可视化
力导向图谱动画
交互式探索
domain
业务域分析
识别业务域
提取业务流程
tour
学习之旅
引导式架构演练
按依赖顺序学习
semantic
语义搜索
按名称和含义搜索
意图识别+多维度
diff
差异分析
变更影响评估
风险等级预测
layer
分层可视化
架构层自动分组
层间连接分析
concept
概念解释
12种编程模式
上下文解释
## 工作流对比 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 传统 AI 改代码流程 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 需求 ──→ 读全仓库 ──→ 上下文爆 ──→ 瞎猜 ──→ 改漏 ──→ 💥 │ │ │ │ 耗时:30min+ │ 正确率:40-60% │ 遗漏率:高 │ │ │ └─────────────────────────────────────────────────────────────────┘ ⬇️ obs-code ⬇️ ┌─────────────────────────────────────────────────────────────────┐ │ obs-code 增强流程 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 需求 ──→ obs_plan ──→ 精准文件清单 ──→ AI 只读相关文件 ──→ ✅ │ │ │ │ │ ├─→ obs_impact ──→ 调用链 ──→ 知道牵连 ──→ ✅ │ │ │ │ │ └─→ obs_feature_map ──→ 阅读链路 ──→ 不遗漏 ──→ ✅ │ │ │ │ 耗时:2min │ 正确率:85-95% │ 遗漏率:极低 │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` ## 性能基准
### 索引速度 | 项目 | 规模 | 节点 | 边 | 速度 | |------|------|------|-----|------| | Express | 简单 | 376 | 6 | 15 f/s | | Axios | 中等 | 636 | 1,224 | 267 f/s | | **NestJS** | **复杂** | **5,977** | **11,580** | **244 f/s** | | **Vitest** | **大型** | **10,054** | **6,143** | **33 f/s** | ### 搜索策略链(5 级降级) ``` Level 1 精确匹配 ━━━━━━━━━━━━━━━━━ O(1) Level 2 模糊匹配 ━━━━━━━━━━━━━━━ FTS5 Level 3 全文搜索 ━━━━━━━━━━━━━ name+doc Level 4 中文同义词 ━━━━━━━━━━━ 拼音+模糊 Level 5 多维组合 ━━━━━━━━━ 拆分+前后缀 ``` 每个级别都支持:`file_types` `directories` `symbol_types` `regex`
## LLM Wiki — 30 秒看懂任何项目 ``` .obs-code/wiki/ ├── AGENTS.md ─→ AI 工具读这个:什么时候用哪个工具 ├── project.md ─→ 项目概览:语言、规模、关键文件 ├── architecture.md ─→ 架构:分层、模式、入口点 ├── connections.md ─→ 连接:Hub / Bridge / 主调用链 └── manifest.json ─→ 元数据:索引时间、统计 ``` **connections.md 自动生成的调用链热点:** ``` ## Hubs(高扇入 — 改这里影响最大) exec ← 被 30 处调用(SQL 执行核心) parse ← 被 20 处调用(解析核心) searchByName ← 被 11 处调用 ## Bridges(跨层调用 — 集成测试重点) feature-map → store 88 calls graph-sync → store 12 calls ## Main Paths(主调用链 — 理解核心逻辑) buildFeatureMap → readCandidates → getById → rowToNode ``` ## 索引可信度证据 obs-code 现在把 CodeGraph 的“先定义扫描边界”思路融合进索引链路:每次索引都会产出结构化 `indexEvidence`,让 AI 和人都能确认“这次图谱到底扫了什么、跳过了什么”。 ``` { "filesScanned": 149, "bytesScanned": 1064907, "skippedDirectories": [ { "path": "node_modules", "reason": "default_exclude" }, { "path": "datasets/feature-map-benchmark/real-projects", "reason": "default_exclude" } ] } ``` - CLI / MCP / Web UI 三条链路都能传递索引证据 - 默认跳过依赖、构建产物、缓存、fixture、benchmark 真实项目,避免分析图被外部仓库污染 - Web 可视化提供“分析证据”面板,修改前先看扫描范围和跳过原因 - 直接索引某个真实项目根目录时仍会正常分析,不影响 benchmark 单仓库评测 ## 核心架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ AI 工具层 │ │ Claude Code · Cursor · Codex · OpenCode │ │ ↕ MCP 协议 (stdio/SSE) │ ├─────────────────────────────────────────────────────────────────┤ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │ │obs_find │ │obs_impact│ │obs_plan │ │obs_feature_map │ │ │ │符号搜索 │ │影响分析 │ │需求→计划 │ │功能→阅读链路 │ │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────────┬─────────┘ │ │ └─────────────┴───────────┴─────────────────┘ │ │ │ 多策略搜索链 │ │ 精确 → 模糊 → FTS5全文 → 中文同义词 → 多维组合 │ ├─────────────────────────────────┬───────────────────────────────┤ │ 图谱引擎 │ │ │ ┌────────────┐ ┌────────────┐ │ ┌──────────────┐ │ │ │ 节点查询 │ │ 边遍历 │ │ │ 影响传播引擎 │ │ │ │ getById │ │ getBySource│ │ │ BFS+规则驱动 │ │ │ │ searchBy │ │ getByTarget│ │ │ AI 剪枝 │ │ │ └────────────┘ └────────────┘ │ └──────────────┘ │ ├─────────────────────────────────┼───────────────────────────────┤ │ SQLite (WAL + FTS5) │ │ │ nodes · edges · nodes_fts · file_hashes │ ├─────────────────────────────────────────────────────────────────┤ │ 解析层 │ │ Tree-sitter (Go/Rust/Java/C++) · 增强正则 (TS/JS/Python) │ │ 文件监听 (chokidar) · 增量重解析 │ ├─────────────────────────────────────────────────────────────────┤ │ 代码仓库 — 14 种语言 │ │ TS · JS · Python · Go · Rust · Java · Swift · Kotlin │ │ PHP · Ruby · C# · Dart · C/C++ · Lua │ └─────────────────────────────────────────────────────────────────┘ ``` ## 竞品对比 | 功能 | CodeGraph | Understand-Anything | obs-code | |------|-----------|---------------------|----------| | **语言支持** | 20+ | 10+ | 15 | | **框架路由** | 14 | 5+ | 14 | | **文件监听器** | ✅ | ✅ | ✅ | | **增量同步** | ✅ | ✅ | ✅ | | **业务域分析** | ❌ | ✅ | ✅ | | **学习之旅** | ❌ | ✅ | ✅ | | **语义搜索** | ❌ | ✅ | ✅ | | **差异分析** | ❌ | ✅ | ✅ | | **分层可视化** | ❌ | ✅ | ✅ | | **概念解释** | ❌ | ✅ | ✅ | | **死代码检测** | ❌ | ❌ | ✅ | | **线程分析** | ❌ | ❌ | ✅ | | **自然语言计划** | ❌ | ❌ | ✅ | | **中文优化** | ❌ | ❌ | ✅ | **obs-code = CodeGraph + Understand-Anything + 独特功能** ## 安装 ``` curl -fsSL https://raw.githubusercontent.com/xiaoletian64/obs-code/main/install.sh | bash ``` ``` obs install --tool claude # Claude Code obs install --tool codex # OpenAI Codex obs install --tool cursor # Cursor obs install --tool opencode # OpenCode obs install --tool micode # MiMo Code obs install --tool all # 全部 ``` ## 3 步上手 ``` # 1. 索引 obs index /你的项目路径 # 2. 启动 MCP 服务 obs serve --mcp # 3. 在 AI 工具里直接说 请用obs分析 用户登录流程 ``` AI 工具接入后默认建议使用中文输出:分析结论、修改计划、风险说明用中文;代码符号、文件路径、命令保持原文,避免翻译后失真。 ## 工具矩阵 | 场景 | 工具 | 输入 | 输出 | |------|------|------|------| | 🔍 找符号 | `obs_find` | 符号名 | 文件:行号 | | 🔗 查影响 | `obs_impact` | 符号名 | 调用者+被调用者+源码 | | 📋 做需求 | `obs_plan` | 自然语言 | 修改文件清单(abs_path) | | 🗺️ 读功能 | `obs_feature_map` | 功能名 | 分阶段阅读链路 | | 🧵 查入口 | `obs_thread` | — | 入口→路由→目标 | | 🛤️ 找路由 | `obs_routes` | — | HTTP 路由+调用链 | | 🗑️ 清死码 | `obs_deadcode` | — | 零调用函数 | | 📚 生文档 | `llm_wiki_generator` | — | project/arch/conn.md | | 🏢 析业务 | `obs_domain` | — | 业务域+流程+步骤 | | 🎯 导学习 | `obs_tour` | — | 引导式学习之旅 | | 🔍 语搜搜 | `obs_semantic_search` | 查询 | 语义搜索结果 | | 📊 差异分析 | `obs_diff` | — | 变更影响+风险等级 | | 🏗️ 分层图 | `obs_layers` | — | 架构层可视化 | | 💡 概念解释 | `obs_concepts` | — | 编程模式解释 | ## Web 可视化 ``` obs web /你的项目路径 # http://localhost:3456 ``` - Cytoscape.js 力导向布局 + 800ms 动画 - 节点 hover 放大 + 关联边高亮 - 点击聚焦平滑缩放 + 详情面板 - AI 解释按钮 + 功能梳理阅读链 - 分析证据面板:显示索引范围、跳过目录、扫描文件数 ## 支持的语言
TypeScript JavaScript Python Go Rust Java Swift
Kotlin PHP Ruby C# Dart C/C++ Lua

**让 AI 改代码从"盲人摸象"变成"精准手术"** [![Star](https://img.shields.io/github/stars/xiaoletian64/obs-code?style=social)](https://github.com/xiaoletian64/obs-code) [![Issues](https://img.shields.io/github/issues/xiaoletian64/obs-code?style=social)](https://github.com/xiaoletian64/obs-code/issues)

标签:AI辅助编程, Homebrew安装, MCP, SOC Prime, 上下文管理, 云安全监控, 代码知识图谱, 开发工具, 影响分析, 自动化攻击, 静态分析