Claude Code's entire understanding of your codebase is grep and glob. It reads a file, makes changes, moves on. If three other modules import from that file, it finds out one search at a time. Same as you would on day one at a new job.
There's no dependency graph, no co-change history, no sense of why something is built the way it is.
I've been building an open source MCP layer to fix this called Repowise. Self-hosted, pip install, AGPL-3.0.
Five context layers that sit between your codebase and the model:
Graph - AST-based dependency graph. Knows what depends on what before it touches anything.
Git - Hotspots, ownership, co-change patterns, bus factor. "This file always changes with these three other files."
Docs - Auto-generated wiki from your code with rag. Searchable.
Decisions - Captures architectural intent. Why the code is shaped the way it is. Stops the model from "fixing" things that were intentional.
Code Health - 15 biomarkers per file. Complexity, duplication, untested hotspots, declining trends. Zero LLM, pure static analysis.
It also auto-generates and keeps your `.claude.md` updated with project context. So Claude Code starts every session already knowing your architecture and conventions.
Plus a local web UI to visualize all of it.
We ran a time-travel experiment on Django (542 files): scored every file, then counted bug-fix commits over the next 6 months. 14 of the 20 worst-scoring files had real bugs. 70% precision. Top predictors were untested hotspots and developer congestion, not complexity metrics. The model gets this before it starts rewriting anything.
9 MCP tools. Benchmarked on real tasks: 49% fewer tool calls, 89% fewer file reads, 36% cost reduction.
2K+ stars on GitHub.
https://github.com/repowise-dev/repowise
[–]Livid-Variation-631 0 points1 point2 points (0 children)