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.