mcpField
C
context-map

context-map

github.com/atholaAgent 工作流34378 次安装4 天前更新
代码仓库

关于 context-map

扫描项目并生成精简代码结构图,供 AI 助手了解代码库。它标出入口、文件导入关系、热点文件、路由等信息,帮助在实施前确定探索方向。

主要功能

  1. 01汇总目录、文件和语言
  2. 02检测依赖项与框架
  3. 03映射入口和文件导入关系
  4. 04查找热点文件与 API 路由
  5. 05报告预估 Token 节省量

适用场景

  1. 01快速了解陌生代码库
  2. 02实现功能前定位入口
  3. 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 定义
令牌节省量与手动探索相比预估节省的令牌数

流程

  1. 在项目根目录运行扫描器:
PYTHONPATH="$(find . -path '*/conserve/scripts' -type d \
  -print -quit 2>/dev/null || \
  echo 'plugins/conserve/scripts')" \
  python3 -m context_scanner .
  1. 将输出作为项目概览呈现给用户。

  2. 使用上下文地图指导后续文件读取。 优先查看热点文件和入口点。

选项

输出
  • --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