Git history & co-changes
Hotspots, ownership, bus factor, and co-change pairs — the signals repowise mines from your last 500 commits that no AST analysis can produce.
Static analysis tells you what the code is. Git history tells you how it behaves over time. Repowise mines your last 500 commits (configurable up to 5,000) for behavioural signals static tools can't produce.
Hotspots
Files that change often and are complex are where bugs live.
Repowise computes a hotspot score from the joint distribution of churn
percentile and complexity. Files in the top 25% on both axes get
flagged in the dashboard, in CLAUDE.md, and surfaced by
get_risk before your agent touches them.
Ownership
git blame aggregated into ownership percentages per engineer per
file. Surfaces:
- Primary owner — who has historically touched this file most.
- Recent owner — the active maintainer (in case it's different).
- Contributor count — how many engineers have touched it.
Bus factor
For each file: how many people could leave the team before nobody
owns it? bus_factor: 1 means a single person owns >80% of the
history. Surfaced as a knowledge-risk warning in the ownership view
and in CLAUDE.md.
Co-change pairs
Files that change together in the same commit without an import link between them. This is hidden coupling — the kind AST analysis cannot detect. Often the most expensive coupling because no static tool will warn you about it.
get_context surfaces co-change partners
alongside direct dependencies; get_risk flags
co-change warnings on PR blast-radius analysis when a changed file's
historical partner is missing from the change set.
Significant commits
The last 10 meaningful commit messages per file (filtered: no merges, no dependency bumps, no lint runs) are passed to the LLM during wiki generation. The model uses them to explain why the file is shaped the way it is, not just what it does.
Trend signals
Computed from the rolling commit-rate ratio:
- Churn trend —
increasing/decreasing/stablebased on the 30-day vs 60-day rate (cutoffs at 1.5× and 0.5×). - Change pattern —
feature-active,fix-heavy,primarily refactored,dependency-churn, ormixed-activity, derived from commit message classification. - Change magnitude — lines added, lines deleted, average commit size in the last 90 days.
Workspace mode
In a workspace, all of the above is computed per repo and across
repos. Cross-repo co-changes (files in different repos that move
together) are first-class signals and surface in
get_context responses.
Why 500 commits? Empirically, signals stabilise around the
300–500-commit mark on most repos. Going higher gives diminishing
returns and slower indexing. Tune with --commit-limit on init
(cap is 5,000).
Dependency graph
How repowise builds the two-tier dependency graph — file nodes and symbol nodes — with import resolution, call resolution, heritage extraction, and community detection.
Auto-generated wiki
How repowise writes a documentation page for every module and notable file — incrementally, with citations, with confidence scoring, and refreshed in under 30 seconds per commit.