name: context-map description: 'Generate a compressed project context map to reduce token waste from codebase exploration. Use before sessions involving heavy file reads.' version: 1.9.3 category: optimization tags:
- context
- scanning
- token-conservation
- exploration
- import-graph
- routes tools: [] complexity: low model_hint: fast estimated_tokens: 300
Context Map
Generate a compressed context map for the current project. The map pre-compiles structural knowledge that AI assistants would otherwise discover through expensive Read/Grep calls, saving thousands of tokens per session.
When to Use
- At the start of a session to understand project layout
- Before implementing features to identify entry points
- When exploring an unfamiliar codebase
- To reduce token waste from Read calls
- To identify hot files (high blast radius) before changes
What It Detects
| Category | Description |
|---|---|
| Structure | Directory layout with file counts and languages |
| Dependencies | Multi-ecosystem: Python, Node, Rust, Go, Java |
| Frameworks | Framework detection from dependency analysis |
| Entry Points | main.py, index.ts, CLI scripts, etc. |
| Import Graph | File-to-file import relationships |
| Hot Files | Files imported by 3+ others (high blast radius) |
| Routes | FastAPI, Flask, Express, Hono API endpoints |
| Env Vars | Environment variable references with defaults |
| Middleware | Auth, CORS, rate-limit, logging patterns |
| Models/Schemas | SQLAlchemy, Django, Pydantic, Prisma definitions |
| Token Savings | Estimated tokens saved vs manual exploration |
Procedure
- Run the scanner on the project root:
PYTHONPATH="$(find . -path '*/conserve/scripts' -type d \
-print -quit 2>/dev/null || \
echo 'plugins/conserve/scripts')" \
python3 -m context_scanner .
-
Present the output to the user as the project overview.
-
Use the context map to guide subsequent file reads. Prioritize hot files and entry points first.
Options
Output
--format jsonfor structured output--max-tokens Nto adjust output size (default: 5000)--output FILEto save to a file
Modes
--blast FILEto show blast radius for a specific file--section NAMEto output a single section (routes, deps, env, hot-files, models, structure, middleware, frameworks)--wiki-onlyto generate wiki articles without stdout
Opt-out
--no-cacheto force a fresh scan--no-wikito skip wiki article generation
Wiki Articles
The scanner generates per-topic knowledge articles in
.codesight/ for selective context loading:
python3 scanner.py .
# Creates .codesight/INDEX.md, auth.md, database.md, etc.
Load only what you need per session instead of the full map:
python3 scanner.py --section routes .
# ~200 tokens vs ~5,000 for the full map
Example Output
# 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