This file orients any AI coding agent (Claude, Codex, Cursor, etc.). The full project guide, architecture, and coding standards live in CLAUDE.md β read it first.
A local-first tool that aggregates commit/PR/branch metadata (never code) from every version-control account into one interactive network graph, contribution heatmap, and charts.
- Metadata only β never clone repos or read file contents.
- Tokens β only via
keyring; never print, log, or write them to disk/DB..envis git-ignored. - Adapters are the seam β provider-specific code lives only in
backend/app/adapter.py; the rest speaks normalized dataclasses. - Lazy first (ponytail) β simplest working solution; no speculative abstractions or new
deps for what a few lines do; mark shortcuts with a
ponytail:comment. - Perf at scale β hundreds of repos must stay smooth: memoize Sigma settings, never blank the graph on filter change, scale layout to node count.
- Tasks/milestones are in Backlog.md (
backlog/dir + Backlog MCP). Grab a task, move it to In Progress, keep the acceptance criteria in the task. - Keep changes grouped by concern and commit per logical group (backend / frontend / docs), not one giant commit and not one-per-file.
pip install -e backend && uvicorn app.main:app --app-dir backend # API + served UI on :8000
cd frontend && npm run build # or npm run dev
python -m app.test_charts # backend self-checkVerify UI changes in the browser (the graph/heatmap are visual); don't mark a task done on a green build alone.
- Graph + filters:
frontend/src/views/GraphView.tsx,components/MultiSelect.tsx - Heatmap + git-graph:
frontend/src/views/HeatmapView.tsx,components/GitGraph.tsx - Backend graph/filter logic:
backend/app/graph.py,routes.py - Sync:
backend/app/crawler.py,adapter.py - Connection guides:
docs/