ashrivastava
menu
// case study — fathohm← all projects

Fathohm — Comprehension-Debt System of Record

Fathohm makes an invisible problem visible: the gap between what a codebase does and what any human on the team actually understands. As AI agents write a growing share of production code, teams accumulate comprehension debt — modules nobody reviewed deeply and nobody can explain. Fathohm analyzes code authorship and human review depth via a read-only GitHub App, classifies agent-authored vs human-authored commits (heuristics first — co-author trailers, committer signatures — with batched LLM classification only for the ambiguous residue), and computes a deterministic, fully explainable comprehension score per module. The hero view is the Map: a treemap of the repository colored by score, built to stay fast on 10k+ file repos. Everything derives from an append-only event spine, so improving the scorer retroactively re-values all history. Source code is read transiently and never persisted — stored data is metadata, events, scores, and summaries only. Live at fathohm.dev: the GitHub App is free to install and uninstallable from GitHub at any time, with weekly digests tracking debt movement, a guided paydown loop (read a briefing, answer comprehension questions), policy floors for critical paths, and a public gallery of scored open-source repositories.

Own product·ai·2026

Products I own and operate end to end — my roadmap, my users, my on-call.

// hero
Fathohm — Comprehension-Debt System of Record
// stack
frontend
Next.js 15TypeScriptTailwind CSSTreemap visualization
backend
Node.js workersGitHub GraphQL APIWebhook ingestion
database
Supabase (Postgres + RLS)
tools
ZodDockerVercelHetzner
// challenges
  • Quantifying 'human understanding' of code — a fuzzy concept — as a deterministic, defensible metric teams will trust
  • Classifying agent-authored vs human-authored commits reliably without an LLM in the hot path of every score
  • Rendering a comprehension treemap that stays fast on repos with 10k+ files
  • Backfilling 50k-commit histories from the GitHub GraphQL API without losing progress on restarts
// solutions
  • Scoring is pure TypeScript, table-driven tested, and every score row carries its factor breakdown — the UI can always decompose a number into visible causes
  • Heuristics first (co-author trailers, committer signatures like claude_code/copilot/cursor); batched LLM classification only for the ambiguous residue, behind a swappable Classifier interface
  • Directory-level aggregation beyond 2k nodes plus virtualization keeps the Map responsive at scale
  • Resumable backfill with cursor checkpoints in Postgres — a long ingest survives worker restarts
  • Append-only code_events spine: scores are derived and re-computable, so scorer improvements re-value all history
// outcomes — impact4

Live at fathohm.dev — GitHub App free to install, plus a public gallery of scored open-source repos

Read-only by design: the GitHub App requests read scopes only and never persists raw source

Deterministic, explainable scores — no black boxes; detection methodology is public

User corrections to authorship labels are stored as first-class events, becoming a proprietary training dataset

// related — other projects
Own productpinnedfeatured
ai2026

JobJam.io — AI Job Search & Application Platform

AI-powered job search platform: discover roles, evaluate fit, tailor applications, and close skill gaps. One-time pricing, no subscriptions.

AILLMsJob SearchAnthropic Claude+3
Own productpinnedfeatured
ai2026

Grenz — Firewall for AI Agents

A local firewall for AI agents: scoped, revocable, observable permissions instead of your full GitHub token. Deny-by-default, MIT licensed, live at grenz.dev.

AI AgentsSecurityIAMMCP+2
Experimentalfeatured
ai2026

AI Workflow Builder

Chain LLM steps into a workflow with {{stepId.output}} substitution between steps. Pick a preset, edit any prompt, watch the chain execute step by step.

AI WorkflowsMulti-Step LLMPrompt ChainingAI Agents+1