AST-aware Code Search: tree-sitter statt grep für Datei-Relevanz #32

Open
opened 2026-03-30 19:48:37 +00:00 by David · 0 comments
Collaborator

Beschreibung

Die Datei-Relevanz-Suche in der Preparation Engine von grep-basiert auf AST-aware Suche (tree-sitter) umstellen, um auf Klassen-/Methoden-Ebene statt auf String-Ebene zu suchen.

Hintergrund

Die aktuelle Preparation Engine nutzt grep -rl + git log um relevante Dateien zu finden. In großen Codebases produziert das viele false positives (z.B. Variablennamen die zufällig matchen). AutoCodeRover (Princeton, 2026) zeigt, dass AST-aware Suche auf Klassen-/Methoden-Ebene konsistent bessere Ergebnisse liefert und zu höherer Code-Generierungs-Qualität führt.

Akzeptanzkriterien

  • tree-sitter wird genutzt um einen Symbol-Index pro Repo zu erstellen (Klassen, Funktionen, Methoden)
  • Datei-Relevanz-Suche matcht gegen Symbol-Namen und Docstrings statt gegen rohen Text
  • Symbol-Index wird gecacht und nur bei neuen Commits aktualisiert
  • Unterstützung für: Python, TypeScript, JavaScript (erweiterbar)
  • Fallback auf grep-basierte Suche wenn tree-sitter für die Sprache nicht verfügbar
  • Messbare Verbesserung der Datei-Relevanz (weniger irrelevante Dateien in kontext.md)

Technische Hinweise

  • Erweitern: backend/services/repo_analyzer.py — tree-sitter Integration
  • Neuer Utility: backend/services/symbol_index.py — Index-Aufbau und -Abfrage
  • Dependencies: tree-sitter, tree-sitter-python, tree-sitter-typescript
  • Erweitern: backend/services/preparation_engine.py — Symbol-Suche statt grep
  • Cache: Symbol-Index in SQLite oder als JSON pro Repo
  • Migration nötig: nein (Cache ist dateisystem-basiert)

Aufwand: L

## Beschreibung Die Datei-Relevanz-Suche in der Preparation Engine von grep-basiert auf AST-aware Suche (tree-sitter) umstellen, um auf Klassen-/Methoden-Ebene statt auf String-Ebene zu suchen. ## Hintergrund Die aktuelle Preparation Engine nutzt `grep -rl` + `git log` um relevante Dateien zu finden. In großen Codebases produziert das viele false positives (z.B. Variablennamen die zufällig matchen). AutoCodeRover (Princeton, 2026) zeigt, dass AST-aware Suche auf Klassen-/Methoden-Ebene konsistent bessere Ergebnisse liefert und zu höherer Code-Generierungs-Qualität führt. ## Akzeptanzkriterien - [ ] tree-sitter wird genutzt um einen Symbol-Index pro Repo zu erstellen (Klassen, Funktionen, Methoden) - [ ] Datei-Relevanz-Suche matcht gegen Symbol-Namen und Docstrings statt gegen rohen Text - [ ] Symbol-Index wird gecacht und nur bei neuen Commits aktualisiert - [ ] Unterstützung für: Python, TypeScript, JavaScript (erweiterbar) - [ ] Fallback auf grep-basierte Suche wenn tree-sitter für die Sprache nicht verfügbar - [ ] Messbare Verbesserung der Datei-Relevanz (weniger irrelevante Dateien in kontext.md) ## Technische Hinweise - Erweitern: `backend/services/repo_analyzer.py` — tree-sitter Integration - Neuer Utility: `backend/services/symbol_index.py` — Index-Aufbau und -Abfrage - Dependencies: `tree-sitter`, `tree-sitter-python`, `tree-sitter-typescript` - Erweitern: `backend/services/preparation_engine.py` — Symbol-Suche statt grep - Cache: Symbol-Index in SQLite oder als JSON pro Repo - Migration nötig: nein (Cache ist dateisystem-basiert) ## Aufwand: L
Sign in to join this conversation.
No description provided.