Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 Code Intel

AI-native code intelligence — one doc captures your project's contracts, invariants, intent, and risks, so every conversation starts informed.

让 AI 在新对话中读一份文档就掌握代码全貌,无需每次重新通读全量源码。

Skill Languages Output PRs Welcome

核心理念 · 快速开始 · 工作原理 · 输出示例 · 参数 · 贡献


核心理念

让 AI 辅助开发时,最大的隐性成本是重复解读源码:每开一个新对话,AI 都要把项目文件重新通读一遍才能动手,几十万 Token 就此烧掉。

Code Intel 把代码的理解层一次性沉淀成一份文档——不只是"哪个文件在哪",而是理解代码所需的语义:

  • 公共契约 — 每个 API 的签名、前置条件、副作用、返回约定
  • 关键不变量 — "调用前必须初始化 X""失败时回滚事务""就地修改入参"
  • 非显然意图 — 源码命名看不出的 why,例如"这里去空白是为兼容旧版 token 格式"
  • 数据流与依赖拓扑 — 请求怎么流转、改一处会波及哪些模块
  • 风险标注 — 复杂度热点、高耦合、隐式依赖、异常缺口,每条带置信度

AI 读这一份文档即可规划并推理绝大多数改动,只在最终确认行号、落地编辑时才打开源码。源码依然是行级真相,但对"这模块做什么、怎么用、改动波及哪里",文档给出可信的自给自足答案。


特性

理解层,而非纯索引

Tier A 核心文件深度精读,提取契约、不变量与意图,而非仅罗列文件名。这是 Code Intel 区别于普通"文件树导航"的根本。

按重要性分层精读

不是所有文件都值得逐行读。Code Intel 按 Hub 影响力 + 入口距离 + 接口密度加权打分,把文件分成三层,各按不同深度处理:

层级 阅读深度 记录内容
A · 核心枢纽 深度精读 契约、完整签名、不变量、意图、依赖图、关键类型
B · 业务逻辑 标准阅读 职责 + API 清单 + 关键副作用
C · 外围文件 表面扫描 路径 + 一句话职责

🗺️ 风险标注地图

基于可量化的结构特征生成,每条带置信度(高 / 中 / 低):

标注 检测依据
🔴 复杂度热点 行数 >300 / 嵌套 >4 / 参数 >5
🟡 高耦合 被 10+ 模块引用(≥20 且文件小 → 高置信)
🟠 隐式依赖 全局变量、模块级可变状态
🔵 异常处理缺口 空 catch,区分高危(吞数据)与低危(吞清理)
⚪ 硬编码密钥 疑似 key / token / 密码字面量
❓ 理解缺口 AI 坦诚标注"这段没看懂意图"

🔒 严格规则: 只描述结构特征,绝不断言"这是 bug"。LLM 不执行代码,判断权始终交给开发者。

智能模块边界检测

不简单按目录切分,而是三层算法:交叉密度分析(两目录频繁互引 → 建议合并)+ 内聚度检测utils/ 下文件互不引用 → 标记松散集合)+ 循环依赖检测(双向依赖在拓扑图上画双向箭头)。

多语言深度支持

内置 5 套语言专项检查清单,按需载入——只读检测到的语言,主上下文保持精简。

语言 专项关注点(举例)
TypeScript / JavaScript 类型断言安全、Promise 异常、DI 容器隐形依赖
Python 可变默认参数、asyncio 阻塞调用、装饰器签名覆盖、元类隐形构造
Go goroutine 泄露、channel 关闭语义、nil interface 陷阱、context 传播、init 隐形入口
Rust unsafe 安全不变量、Send/Sync 手动实现、async/.await 取消安全、宏展开路径
Java / Kotlin 反射安全边界、注解处理器生成代码、checked exception 传播、Kotlin 空安全 !!、协程作用域泄露

增量更新

  • 手动增量 — 只分析 git diff 变更文件,Token 消耗与变更量成正比,与项目规模无关
  • 版本标记 — 每个模块段落带 commit hash,一眼看出文档是否过时

快速开始

安装

将本仓库放入 Claude Code 的技能目录,重启后自动识别:

git clone https://github.com/ShiBeven/Code-intel.git ~/.claude/skills/Code-intel

目录结构:

~/.claude/skills/Code-intel/
├── SKILL.md                  # 主指令:编排逻辑 + 硬规则(技能触发时载入,保持精炼)
├── checks/                   # 5 套语言专项清单(Phase 2 按检测到的语言载入)
│   ├── typescript.md
│   ├── python.md
│   ├── go.md
│   ├── rust.md
│   └── java-kotlin.md
├── rules/
│   └── risk-detection.md     # 风险检测规则手册(Phase 3 载入)
├── references/
│   ├── doc-templates.md      # 文档与报告模板(Phase 4 生成前一刻载入)
│   └── incremental-update.md # 增量更新流程(仅更新触发时载入)
└── README.md

使用

在 Claude Code 中直接调用:

# 在当前项目生成完整理解层文档
/Code-intel

# 指定输出目录
/Code-intel --output docs/architecture

# 增量更新:只分析自上次提交以来的变更
/Code-intel --diff HEAD~1

# 大项目按模块拆分输出
/Code-intel --output-format split

# 重新分析单个模块(失败恢复)
/Code-intel --module auth

# 手动指定文件优先级
/Code-intel --level A src/critical/auth.ts

# 强制指定语言(跳过自动检测)
/Code-intel --lang go

工作原理

Code Intel 分五个阶段执行,全程可由用户在关键节点介入调整:

Phase 1 · 扫描      枚举文件、读取项目已有文档、检测语言、构建引用图、加权分层
      ↓            (呈现层级分布与模块边界,用户可调整后确认)
Phase 2 · 分层阅读   Tier A 深读提契约/意图 · Tier B 标准 · Tier C 扫描
      ↓            (大项目自动并行,每 agent 一模块)
Phase 3 · 风险图     按 rules/risk-detection.md 提取结构风险,逐条标置信度
      ↓
Phase 4 · 生成文档   默认单文件 PROJECT_DOC.md:总览 + 数据流 + 模块契约 + 风险图 + 符号索引
      ↓            (并在 CLAUDE.md 写入指针,让后续对话自动发现文档)
Phase 5 · 完成报告   输出规模、风险统计、下一步建议

分层评分模型(决定阅读深度,不以文件名为依据):

维度 权重 计量
Hub 分 40% 被引用次数,min(引用数/15, 1.0)
入口分 30% 是否为声明入口点 / 入口 2 跳内
接口分 30% 导出公共符号数 / 文件行数

得分 ≥0.65 → Tier A,≥0.25 → Tier B,其余 → Tier C。测试文件、纯类型/常量文件、静态资源恒为 Tier C。


输出示例

默认生成单文件,AI 一次读取即掌握全貌:

docs/PROJECT_DOC.md   架构总览 + 核心数据流 + 各模块契约 + 风险图 + 符号索引

大项目(--output-format split)按模块拆为附件:

docs/
├── PROJECT_DOC.md          Layer 1 + 风险图 + 符号索引
└── modules/
    ├── auth.md
    ├── dashboard.md
    └── ...

模块契约片段示意:

## 模块: auth

> 同步: commit `a1b2c3d` — 2026-07-05 | Tier 分布: A: 3 / B: 7 / C: 2

### 公共 API 契约
| 符号 | 签名 | 用途 | 契约 / 不变量 |
|---|---|---|---|
| `verifyToken` | `(token: string) => UserPayload \| null` | 校验并解码 | 过期或签名错返回 null 而非抛异常;会去除首尾空白(兼容旧版格式) |
| `login` | `async (creds: LoginDTO) => Session` | 认证用户 | 副作用:写入 session 存储;失败抛 AuthError |

调用参数

参数 效果
--output <path> 指定输出目录(默认 docs/
--output-format split 大项目按模块拆分 Layer 2(默认单文件)
--lang <lang> 强制使用指定语言清单
--skip-tests 跳过测试文件(默认已归 Tier C)
--level <A|B|C> <file> 手动覆盖指定文件的阅读层级
--diff <range> 指定增量更新的 diff 范围(HEAD~1main..feature
--module <name> 重跑单个模块(失败恢复)

适用场景

场景 推荐用法
让 AI 辅助开发 把文档作为上下文喂给 AI,精准规划而非全量重读
新人接手项目 从架构总览开始,按文档内"阅读路径"走
排查线上 Bug 先看风险图找热点,再查符号索引定位函数
修改核心模块 看模块契约的"被依赖"列表,评估改动影响面
Code Review 对照风险图,检查改动是否落在高风险区域

设计哲学

原则 含义
承载语义,回源码定位 文档承载理解所需的契约与意图,AI 据此规划推理;落地编辑时回源码确认行号
不假装能检测 Bug LLM 不执行代码,只描述结构特征。标注的是"值得关注",非"一定是错"
坦诚标注不确定性 看不懂就标"理解缺口",绝不猜测编造
版本标记不可缺 没有 commit hash,无从判断文档描述的是哪个版本
技能自身也省 Token 主指令保持精炼、硬规则置顶;模板/规则/清单按阶段即时载入,读到即用,不受长文本注意力衰减影响

贡献

欢迎 Issue 与 PR。可贡献的方向:

  • 新增语言专项检查清单(参照 checks/ 现有格式)
  • 完善风险检测规则(rules/risk-detection.md
  • 改进分层评分模型或模块边界算法

提交前请确保改动与现有文档风格一致,并在 PR 描述中说明动机与验证方式。


*为珍惜时间与 Token 的开发者而作*

About

One file to replace full-codebase re-reading. Extracts API contracts, invariants, design intent, and risk hotspots,so AI grasps your project instantly — slash token costs from conversation.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors