Fallow: Das Code-Intelligence-Tool, das jeder Claude-Nutzer braucht

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00Das ist Fallo, ein codebasiertes Intelligence-Tool für TypeScript und JavaScript, das Ihre gesamte Codebasis auf toten Code,
00:00:10Duplikate, unnötige Komplexität und vieles mehr analysiert. Sie brauchen also keine Kombination aus NIP, JSC, PD und ESLint mehr,
00:00:17nur um zu verhindern, dass Ihre Agenten schlechten Code ausliefern. Es ist in Rust geschrieben und unterstützt über 90 Plugins,
00:00:23was bedeutet, dass es direkt mit den meisten Frameworks und gängigen Paketen funktioniert. Dass es nur JavaScript und TypeScript unterstützt,
00:00:29macht es jedoch für KI-gestützte Entwickler weniger attraktiv. Abonnieren Sie den Kanal und finden wir es heraus.
00:00:30Hier ist ein Projekt, an dem ich gerade arbeite und das Videos und Bildern einen cineastischen Film-Look verleiht.
00:00:39Es wurde größtenteils mit Claude Code erstellt, wird also ein gewisses Maß an KI-Anteil haben.
00:00:43Hier gibt es auch einen PR für ein neues Feature in diesem Projekt, über den ich später noch sprechen werde, sofern GitHub ihn nicht versehentlich verschwinden lässt.
00:00:51Zu Beginn werde ich Fallo mit dem Summary-Flag über BunX ausführen, was bedeutet, dass ich es nicht installieren muss.
00:00:56Dies liefert eine Momentaufnahme meines Projekts mit einer Zusammenfassung von totem Code, Duplikaten und der Komplexitäts-Gesundheit.
00:01:02Wenn wir den Git-Status prüfen, sehen wir ein neues .fallo-Verzeichnis, das den Cache enthält.
00:01:07Das bedeutet, dass spätere Durchläufe dieses Befehls schneller sind und Snapshots sowie Plugin-Informationen enthalten.
00:01:12Vielleicht ist Ihnen aufgefallen, dass der Gesundheitswert hier 41 über dem Schwellenwert liegt.
00:01:16Was bedeutet das nun?
00:01:17Nun, der Fallo-Health-Score wird berechnet, indem die zyklomatische und die kognitive Komplexität ermittelt werden.
00:01:24Es verwendet bestimmte Formeln, um die Komplexitätsdichte zu berechnen.
00:01:27Und hier unten wird all das genutzt, um den Maintainability Index zu bestimmen – den Wert, den wir hier drüben sehen.
00:01:33Basierend auf diesem Wert wurde erkannt, dass 41 meiner Dateien refactored werden müssen.
00:01:38Von hier aus können wir jeden dieser Befehle ausführen, um einen detaillierteren Bericht über einen bestimmten Bereich zu erhalten.
00:01:43Wenn ich mich auf die Gesundheit konzentrieren wollte, könnten wir diesen Befehl ausführen.
00:01:46Nach einer Weile listet er alle Dateien auf, die verschiedene Gesundheitsprobleme aufweisen.
00:01:49Hinweis: Falls Sie wissen wollen, wofür CRAP steht – das ist die Abkürzung für "Change Risk Anti-Patterns",
00:01:55worüber Sie in der Dokumentation alles nachlesen können.
00:01:57Aber dieser Detailgrad ist für einen Agenten sehr einfach zu befolgen, um zu wissen, was zu beheben ist.
00:02:00Tatsächlich würde ich sagen, dass die Duplikate noch einfacher zu handhaben sind, da die genaue Datei und die spezifischen Zeilennummern angegeben werden.
00:02:06Wir bleiben also erst einmal dabei.
00:02:07Und wenn wir wollten, könnten wir eine Fallo-Konfigurationsdatei hinzufügen, um Fallo über bestimmte Muster oder Abhängigkeiten zu informieren,
00:02:14die ignoriert werden sollen, sowie benutzerdefinierte Einstellungen für Duplikate, Gesundheit und Boundaries festlegen.
00:02:18Das ist ein sehr cooler Weg, um zu deklarieren, welche Verzeichnisse aus welchen anderen importieren dürfen.
00:02:23Aber das ist alles zu komplex für meine Bedürfnisse, also bleiben wir vorerst bei den Standardeinstellungen.
00:02:27Von hier aus könnten wir den Befehl "fallo fix" ausführen oder das Dry-Run-Flag hinzufügen, um genau zu sehen, was passieren wird,
00:02:32nämlich der Versuch, alle beheb baren Problemtypen anzugehen.
00:02:35Sie sehen hier, dass eine Reihe von Exports entfernt werden sollen.
00:02:38Ehrlich gesagt vertraue ich Fallo bei einem automatischen Fix nicht, da es nicht viel Kontext über meinen Code hat,
00:02:43was die einzelnen Funktionen tun und wie alles zusammenspielt.
00:02:46Anstatt das Fix-Flag zu verwenden, werde ich Fallo mit meinem Agenten verbinden.
00:02:49Das geht über den MCP-Server oder das VS Code-Plugin, das vermutlich auch mit Cursor funktionieren wird.
00:02:55Aber ich mache es mir einfach und installiere nur den Fallo-Skill, der Guardrails, Agent-Regeln und häufige Fallstricke enthält.
00:03:03Nachdem der Skill installiert ist, starte ich Claude Code mit dem Prompt: "Untersuche dieses Projekt, um die Funktionsweise des Codes zu verstehen,
00:03:10führe dann Fallo aus, um duplizierten Code zu beheben, und stelle sicher, dass das Entfernen keine Kernfunktionen beeinträchtigt."
00:03:16Und wenn du fertig bist, schiebe die Änderungen in einen Feature-Branch und führe Tests aus, um sicherzustellen, dass die App wie erwartet läuft.
00:03:22Wir sehen hier, dass der Fallo-Skill geladen wird.
00:03:24Dann wird der Befehl "fallo dupes" ausgeführt und das Format auf JSON gesetzt, was ein maschinenfreundliches Format ist.
00:03:29Nach etwa vier Minuten hat Claude drei Dateien repariert, anstatt aller von Fallo vorgeschlagenen Dateien,
00:03:34hauptsächlich, weil die anderen Testdateien sind, in denen duplizierter Code manchmal beabsichtigt ist.
00:03:39Ich habe ihn auch gebeten, einen PR zu erstellen, und wenn wir ihn uns ansehen, wurden 54 Zeilen Code hinzugefügt und 43 entfernt.
00:03:46Das liegt daran, dass ich ihn gebeten habe, eine Fallo-Konfigurationsdatei hinzuzufügen, um Testdateien in künftigen Berichten zu ignorieren.
00:03:54Natürlich sollten wir diesen Weg mit Claude Code oder einem anderen Agenten weiterverfolgen, um Komplexitätsprobleme oder toten Code zu beheben.
00:04:00Aber Fallo kann auch PRs prüfen.
00:04:02Wenn wir uns diesen PR ansehen, den ich vorhin gezeigt habe, prüft der Befehl "fallo audit" alle Probleme auf diesem Branch im Vergleich zu Main,
00:04:12sodass wir nur spezifische Probleme beheben können. Wenn wir einen anderen Branch als Basis wollten, könnten wir einfach das Base-Flag nutzen.
00:04:16Falls wir Claude nicht jedes Mal neu auffordern wollen, Fallo zu benutzen, können wir den Setup-Hooks-Befehl ausführen, der Hooks für Fallo generiert.
00:04:24Fallo kann auch als GitHub Action mit PR-Annotationen laufen.
00:04:28Es unterstützt Workspaces.
00:04:30Es kann Health-Badges exportieren und unterstützt Baselines, was bedeutet, dass bestehende Probleme über die Zeit behoben werden können.
00:04:35Die CI erfasst dann nur neue Probleme, was ideal ist, um ein großes Projekt mit vielen Fehlern schrittweise zu bereinigen.
00:04:41Es hat im Grunde viele Funktionen, aber fast alle davon sind statische Code-Analysen, was bedeutet, dass Ihre Funktionen nicht wirklich ausgeführt werden.
00:04:49Wenn Sie so etwas suchen, unterstützt Fallo die sogenannte "Runtime Intelligence", die Ihnen sagt, welche Funktionen im Live-Betrieb ausgelöst werden.
00:04:59Dies geschieht über die V8-Runtime-Coverage, und die Ergebnisse werden über einen Sidecar mit einem bestehenden Health-Report zusammengeführt.
00:05:08Das ist natürlich eine kostenpflichtige Funktion, was durchaus Sinn ergibt.
00:05:11Insgesamt ist Fallo ein großartiges Tool, das ich viel öfter verwenden werde, auch wenn es viele Funktionen hat und nur den JavaScript-Stack unterstützt.
00:05:19Andere Sprachen haben zwar eigene Tools, aber ich bin nicht sicher, ob sie alles so gut vereinen wie Fallo. Der Ersteller Bart hat hier gute Arbeit geleistet.
00:05:36Es nutzt OXC für das Parsing und die semantische Analyse. Das wird Evan You freuen, da es ein Tool ist, das er mit Void Zero finanziert.
00:05:46Apropos Evan You: Wenn Sie hören wollen, wie wir ihn zu Void Zero und React Server Components befragen, schauen Sie sich dieses Video an.

Key Takeaway

Fallo konsolidiert statische Code-Analyse und Runtime-Intelligence für TypeScript-Projekte in einem Rust-basierten Tool, das KI-Agenten durch strukturierte JSON-Daten gezielte Refactoring-Anweisungen liefert.

Highlights

  • Fallo ist ein in Rust geschriebenes Code-Intelligence-Tool für TypeScript und JavaScript, das über 90 Plugins für verschiedene Frameworks unterstützt.

  • Das Tool berechnet einen Health-Score aus zyklomatischer und kognitiver Komplexität, um den Maintainability Index von Dateien zu bestimmen.

  • Der Befehl 'fallo audit' ermöglicht den Vergleich von Branches, um spezifische Probleme in Pull Requests gegenüber dem Main-Branch zu identifizieren.

  • Durch die Integration als MCP-Server oder VS Code-Plugin erhalten KI-Agenten wie Claude präzise Daten zu Code-Duplikaten inklusive Dateiname und Zeilennummer.

  • Die kostenpflichtige Runtime Intelligence nutzt V8-Runtime-Coverage, um die tatsächliche Funktionsausführung im Live-Betrieb zu analysieren.

  • Fallo verwendet den OXC-Parser für die semantische Analyse und ersetzt mehrere Einzelwerkzeuge wie ESLint, JSC oder PD.

Timeline

Funktionsumfang und technisches Fundament

  • Fallo analysiert Codebasen auf toten Code, Duplikate und unnötige Komplexität.
  • Die Basis bildet der OXC-Parser für schnelle semantische Analysen.
  • Über 90 Plugins gewährleisten Kompatibilität mit gängigen Frameworks.

Das Tool agiert als All-in-One-Lösung für die Code-Qualität im JavaScript-Ökosystem. Es zielt darauf ab, die Kombination verschiedener spezialisierter Linter und Analyse-Tools zu ersetzen. Trotz der Spezialisierung auf TypeScript und JavaScript bietet die Rust-Implementierung hohe Performance bei der Verarbeitung großer Code-Mengen.

Komplexitätsmessung und Health-Scores

  • Der Health-Score basiert auf der Komplexitätsdichte und dem Maintainability Index.
  • Das Kürzel CRAP definiert Change Risk Anti-Patterns zur Risikoidentifikation.
  • Caching in einem dedizierten Verzeichnis beschleunigt wiederholte Analysevorgänge.

Die Analyse liefert eine Momentaufnahme der Projektgesundheit durch die Berechnung spezifischer mathematischer Formeln. Nutzer erhalten detaillierte Listen von Dateien, die Schwellenwerte für Komplexität überschreiten und ein Refactoring erfordern. Konfigurationsdateien ermöglichen dabei das Ignorieren bestimmter Muster oder das Festlegen von Architektur-Boundaries für Importe.

Integration von KI-Agenten und Automatisierung

  • KI-Skills für Claude enthalten Guardrails und Regeln zur Vermeidung häufiger Fehler.
  • Maschinenlesbare JSON-Formate ermöglichen Agenten die präzise Fehlerbehebung.
  • Automatisierte Korrekturen lassen sich durch Dry-Run-Flags vorab prüfen.

Die Verbindung von Fallo mit Agenten wie Claude Code optimiert den Workflow durch die Bereitstellung von Kontext ohne manuelle Suche. Im praktischen Einsatz filtert ein Agent relevante Änderungen heraus, um beispielsweise Duplikate in Testdateien bewusst beizubehalten. Dieser Prozess mündet in der automatischen Erstellung von Branch-Änderungen und Pull Requests.

Workflow-Optimierung und Runtime-Analyse

  • Setup-Hooks integrieren die Code-Analyse direkt in den Git-Workflow.
  • Baselines erlauben die schrittweise Bereinigung von Legacy-Code durch das Ignorieren alter Fehler.
  • Runtime Intelligence verknüpft statische Berichte mit tatsächlichen Nutzungsdaten der V8-Engine.

Für die CI/CD-Pipeline bietet das Tool Funktionen wie PR-Annotationen und Export-Optionen für Health-Badges. Die Runtime-Komponente identifiziert ungenutzte Funktionen im Live-Betrieb, die durch rein statische Analyse oft nicht erkennbar sind. Das Tool nutzt dabei finanzielle Unterstützung durch Void Zero und setzt auf moderne Web-Infrastruktur.

Community Posts

View all posts