Überblick
PRWise extrahiert GitHub-PR-Daten und verwandelt sie in physikgesteuerte 3D-Szenen, die vier Fragen beantworten — wie lange dauert es, bis jemand einen PR ansieht, was liegt fest und braucht einen Schubs, wer trägt die Hauptlast der Reviews, und ob Merges tatsächlich den Branch-Protection-Regeln folgen. Jeder Bericht ist eine Szene, kein Diagramm. Partikel fließen durch Pipelines, Reviewer erscheinen als Gravitationsquellen mit umkreisenden PRs, Compliance-Verstöße schlüpfen an Schutzgittern vorbei. Datenschutz ist in die Architektur eingebaut: keine Ranglisten, standardmäßig Pseudonyme, und echte Namen nur hinter einem Toggle — mit Audit-Logging.
Die Herausforderung
Engineering-Teams generieren Tausende von PRs und Reviews, aber die wichtigen Muster bleiben unsichtbar. Häuft sich die Review-Arbeit bei zwei Personen, während die anderen zusehen? Werden Branch-Protection-Regeln umgangen? Wie lange liegen PRs tatsächlich, bevor jemand sie ansieht? GitHubs eigene Dashboards beantworten das nicht. Existierende Tools schütten entweder Rohdaten ohne Struktur aus oder erstellen Ranglisten, die Entwickler bewerten — was dazu führt, dass Leute die Zahlen manipulieren und Vertrauen zerstört wird. Manager brauchen ein Werkzeug, das die Gesundheit des Review-Prozesses zeigt, ohne zum Überwachungssystem zu werden.
Die Lösung
Ein Django-Backend kommuniziert mit GitHub über einen einzigen API-Client. Webhooks feuern bei PR-Ereignissen, aber statt dem Payload zu vertrauen, wird der aktuelle PR-Status via GraphQL neu abgerufen — idempotente Upserts, Replay ist harmlos. Ein fortsetzbares Backfill deckt die Historie mit Cursor-Persistenz ab. Jede Nacht fängt ein Reconciliation-Sweep auf, was die Webhooks verpasst haben. Die Metrik-Definitionen leben in einem einzigen derive-Modul als reine Funktionen: ein PR rein, ein Satz berechneter Fakten raus. Berichte aggregieren aus diesen Zeilen, können sich also nicht widersprechen. Das Frontend ist React mit Three.js und d3-force-3d für die 3D-Szenen, mit statischem HTML-Fallback für reduced-motion-Nutzer. PostgreSQL 17 mit pgvector für Vektorsuche. Redis 7, Celery, Docker Compose. Das Rollensystem erzwingt Pseudonyme auf Member-Ebene, echte Namen auf Manager-Ebene mit Coaching-Tooltip, und jede Namensanzeige wird im Audit-Log protokolliert.