关于 context-map
扫描项目并生成精简代码结构图,供 AI 助手了解代码库。它标出入口、文件导入关系、热点文件、路由等信息,帮助在实施前确定探索方向。
主要功能
- 01汇总目录、文件和语言
- 02检测依赖项与框架
- 03映射入口和文件导入关系
- 04查找热点文件与 API 路由
- 05报告预估 Token 节省量
适用场景
- 01快速了解陌生代码库
- 02实现功能前定位入口
- 03修改前检查文件影响范围
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill context-map安装后在 Claude Code 中输入/context-map确认已加载。
详细介绍
Context Map
为当前项目生成一份精简的上下文地图。 该地图会预先编译结构知识,而这些知识原本需要 AI 助手 通过耗费大量资源的 Read/Grep 调用来发现, 每个会话可节省数千个令牌。
适用场景
- 在会话开始时了解项目布局
- 实现功能前识别入口点
- 探索不熟悉的代码库
- 减少 Read 调用造成的令牌浪费
- 修改前识别热点文件(影响范围大)
不适用场景
- 会话进行中,上下文预算已超限(使用
conserve:clear-context) - 审查代码库中的冗余(使用
conserve:bloat-detector)
检测内容
| 类别 | 描述 |
|---|---|
| 结构 | 目录布局、文件数量和编程语言 |
| 依赖项 | 多生态系统:Python、Node、Rust、Go、Java |
| 框架 | 根据依赖分析检测框架 |
| 入口点 | main.py、index.ts、CLI 脚本等 |
| 导入关系图 | 文件之间的导入关系 |
| 热点文件 | 被 3 个或更多其他文件导入的文件(影响范围大) |
| 路由 | FastAPI、Flask、Express、Hono API 端点 |
| 环境变量 | 带默认值的环境变量引用 |
| 中间件 | 身份验证、CORS、速率限制、日志记录模式 |
| 模型/架构 | SQLAlchemy、Django、Pydantic、Prisma 定义 |
| 令牌节省量 | 与手动探索相比预估节省的令牌数 |
流程
- 在项目根目录运行扫描器:
PYTHONPATH="$(find . -path '*/conserve/scripts' -type d \
-print -quit 2>/dev/null || \
echo 'plugins/conserve/scripts')" \
python3 -m context_scanner .
-
将输出作为项目概览呈现给用户。
-
使用上下文地图指导后续文件读取。 优先查看热点文件和入口点。
选项
输出
--format json生成结构化输出--max-tokens N调整输出大小(默认值:5000)--output FILE将输出保存到文件
模式
--blast FILE显示指定文件的影响范围--section NAME输出单个部分 (routes、deps、env、hot-files、models、structure、 middleware、frameworks)--wiki-only生成 Wiki 文章,但不输出到标准输出
退出扫描
--no-cache强制重新扫描--no-wiki跳过 Wiki 文章生成
Wiki 文章
扫描器会在
.codesight/ 中生成按主题划分的知识文章,以便选择性加载上下文:
python3 scanner.py .
# Creates .codesight/INDEX.md, auth.md, database.md, etc.
每个会话只加载所需内容,无需加载完整地图:
python3 scanner.py --section routes .
# ~200 tokens vs ~5,000 for the full map
输出示例
# Context Map: myproject
Files: 127
## Structure
src 42 files (Python)
tests 18 files (Python)
docs 5 files (Markdown)
## Dependencies (Python)
Package manager: uv
- fastapi 0.104.0
- pydantic 2.5.0
- sqlalchemy 2.0.0
...12 more
## Frameworks Detected
- FastAPI
- SQLAlchemy
- Pytest
## Routes
GET /users (src/routes/users.py)
POST /users (src/routes/users.py)
GET /users/{id} (src/routes/users.py)
## Hot Files (high blast radius)
- src/models/base.py (12 importers)
- src/utils/auth.py (8 importers)
## Environment Variables
- DATABASE_URL (required)
- SECRET_KEY (has default)
## Token Savings: ~12,600 tokens saved
Routes: ~1,200
Hot files: ~300
Env vars: ~200
File scanning: ~10,200
完成标准
- 扫描器生成的输出至少涵盖:文件数量、 目录结构、检测到的框架和热点文件(被 3 个或更多其他文件导入);输出应在任何功能 实现开始读取文件前出现在会话中
- 输出中包含“Token Savings”行,并附有数字
估算值(例如,
~12,600 tokens saved) - 如果使用了
--blast FILE,影响范围输出会指出 具体文件,并按数量列出导入该文件的文件 - 上下文地图会指导后续读取:在会话中读取任何其他文件之前,先查看热点文件和入口点
评论
支持 Markdown