Claude-night-market context-map
install
source · Clone the upstream repo
git clone https://github.com/athola/claude-night-market
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/athola/claude-night-market "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/conserve/skills/context-map" ~/.claude/skills/athola-claude-night-market-context-map && rm -rf "$T"
manifest:
plugins/conserve/skills/context-map/SKILL.mdsource content
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:
python3 "$(find . -path '*/conserve/scripts/context_scanner.py' \ -print -quit 2>/dev/null || \ echo 'plugins/conserve/scripts/context_scanner.py')" .
-
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
for structured output--format json
to adjust output size (default: 5000)--max-tokens N
to save to a file--output FILE
Modes
to show blast radius for a specific file--blast FILE
to output a single section (routes, deps, env, hot-files, models, structure, middleware, frameworks)--section NAME
to generate wiki articles without stdout--wiki-only
Opt-out
to force a fresh scan--no-cache
to skip wiki article generation--no-wiki
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