3 Punkte von xguru 4 시간 전 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Vergleicht Code-Entitäten statt Zeilen und zeigt, welche Funktionen/Methoden/Klassen hinzugefügt, geändert, gelöscht, verschoben oder umbenannt wurden
    • „Zeilen x–y wurden geändert“ → „Funktion blah wurde geändert
  • Funktioniert ohne Konfiguration in jedem Git-Repository und kann auch außerhalb von Git beliebige Dateien vergleichen
  • Der in SQLite gespeicherte Entitäts-Cache liegt im OS-Cache-Verzeichnis außerhalb des Repositorys und verschmutzt den Working Tree nicht
  • Parst Code mit tree-sitter und verknüpft Code vor und nach Änderungen in der Reihenfolge Entitäts-ID → AST-Struktur-Hash → über 80 % Token-Ähnlichkeit, um Renames und Verschiebungen zu erkennen
  • Unterstützte Befehle

    • sem diff: Vergleicht Working Tree/Staging/Commits/Commit-Bereiche/zwei beliebige Dateien und unterstützt Ausgabe als Plain Text/Markdown/JSON
    • sem impact: Findet abhängigen Code/Caller/Tests, die bei der Änderung einer bestimmten Funktion betroffen sind
    • sem blame: Zeigt den letzten Bearbeiter auf Entitätsebene für eine Funktion/Klasse/Methode
    • sem log: Verfolgt über die Git-History, wie sich eine einzelne Entität verändert hat
      • Wenn keine Entität angegeben wird, analysiert es Hotspots (häufig geänderte Elemente) / Co-change Pairs (Paare, die wiederholt gemeinsam geändert wurden) im Repository („Wenn du das eine anfasst, vergiss auch das hier nicht“)
    • sem entities: Zeigt alle Entitäten unterhalb des aktuellen Ordners an
    • sem context: Stellt nur den für einen Agenten benötigten umgebenden Code passend zum Token-Budget zusammen
    • sem setup: Nach der Ausführung wird das bestehende git diff auf Ausgabe auf Entitätsebene umgestellt; außerdem wird ein Pre-commit-Hook installiert, der den Impact von staged Änderungen zeigt
      • Unter macOS und Linux bindet es in Claude Code einen residenten Abhängigkeitsgraphen und einen Kontext-Hook beim Prompt-Start ein, um den Aufwand zu reduzieren, jedes Mal das Repository neu zu analysieren oder Code zu suchen
    • sem mcp: Stellt diff, impact, context, entities, blame, log als MCP-Tools bereit, damit Coding-Agenten statt ganzer Dateien nur die benötigten Funktionen und Abhängigkeiten abfragen
  • Wenn eine GitHub Action hinzugefügt wird, werden bei jedem PR die geänderten Funktionen/Klassen/Methoden in einem einzelnen fixierten Kommentar aktualisiert; auch PRs, bei denen nur Formatierung/Kommentare geändert wurden, werden unterschieden
  • Unterstützt 32 Sprachen, darunter TypeScript, Python, Go, Rust, Java, Swift, SQL, C/C++, sowie JSON/YAML/TOML/CSV/Markdown
    • Nicht unterstützte Dateien werden als Diff auf Chunk-Ebene behandelt
  • Lizenz: MIT OR Apache-2.0

Noch keine Kommentare.

Noch keine Kommentare.