i18n/de/skills/clean-codebase/SKILL.md
Toten Code entfernen, ungenutzte Imports bereinigen, Lint-Warnungen beheben und Formatierung in einer Codebasis vereinheitlichen ohne Geschaeftslogik oder Architektur zu aendern. Anwenden wenn sich Lint-Warnungen waehrend schneller Entwicklung angehaeuft haben, ungenutzte Imports und Variablen Dateien ueberladen, tote Codepfade nie entfernt wurden, Formatierung ueber Dateien hinweg inkonsistent ist oder statische Analysewerkzeuge behebbare Hygienprobleme melden.
npx skillsauth add pjt222/agent-almanac clean-codebaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Diesen Skill verwenden wenn eine Codebasis Hygieneschulden angehaeuft hat:
NICHT verwenden fuer architektonisches Refactoring, Fehlerbehebungen oder Aenderungen der Geschaeftslogik. Dieser Skill konzentriert sich ausschliesslich auf Hygiene und automatisierte Bereinigung.
| Parameter | Typ | Erforderlich | Beschreibung |
|-----------|-----|--------------|-------------|
| codebase_path | string | Ja | Absoluter Pfad zum Codebasis-Stammverzeichnis |
| language | string | Ja | Primaersprache (js, python, r, rust usw.) |
| cleanup_mode | enum | Nein | safe (Standard) oder aggressive |
| run_tests | boolean | Nein | Testsuite nach Bereinigung ausfuehren (Standard: true) |
| backup | boolean | Nein | Backup vor Loeschung erstellen (Standard: true) |
Den aktuellen Zustand messen um Verbesserungen spaeter zu quantifizieren.
# Lint-Warnungen nach Schweregrad zaehlen
lint_tool --format json > lint_before.json
# Codezeilen zaehlen
cloc . --json > cloc_before.json
# Ungenutzte Symbole auflisten (sprachabhaengig)
# JavaScript/TypeScript: ts-prune oder depcheck
# Python: vulture
# R: lintr-Pruefung ungenutzter Funktionen
Erwartet: Ausgangskennzahlen in lint_before.json und cloc_before.json gespeichert
Bei Fehler: Wenn das Lint-Werkzeug nicht gefunden wird, automatisierte Korrekturen ueberspringen und auf manuelle Pruefung konzentrieren
Sichere automatisierte Korrekturen anwenden (Abstande, Anfuehrungszeichen, Semikolons, nachfolgende Leerzeichen).
JavaScript/TypeScript:
eslint --fix .
prettier --write .
Python:
black .
isort .
ruff check --fix .
R:
Rscript -e "styler::style_dir('.')"
Rust:
cargo fmt
cargo clippy --fix --allow-dirty
Erwartet: Alle sicheren Lint-Warnungen behoben; Dateien konsistent formatiert
Bei Fehler: Wenn automatisierte Korrekturen Testfehler einfuehren, Aenderungen rueckgaengig machen und eskalieren
Statische Analyse verwenden um unreferenzierte Funktionen, ungenutzte Variablen und verwaiste Dateien zu finden.
JavaScript/TypeScript:
ts-prune | tee dead_code.txt
depcheck | tee unused_deps.txt
Python:
vulture . | tee dead_code.txt
R:
Rscript -e "lintr::lint_dir('.', linters = lintr::unused_function_linter())"
Allgemeiner Ansatz:
Erwartet: dead_code.txt listet ungenutzte Funktionen, Variablen und Dateien auf
Bei Fehler: Wenn das statische Analysewerkzeug nicht verfuegbar ist, manuell die juengste Commit-Historie auf verwaisten Code pruefen
Importbloecke bereinigen indem Referenzen auf nie verwendete Pakete entfernt werden.
JavaScript:
eslint --fix --rule 'no-unused-vars: error'
Python:
autoflake --remove-all-unused-imports --in-place --recursive .
R:
# Manuelle Pruefung: nach library()-Aufrufen suchen, pruefen ob Paket verwendet wird
grep -r "library(" . | cut -d: -f2 | sort | uniq
Erwartet: Alle ungenutzten Import-Anweisungen entfernt
Bei Fehler: Wenn das Entfernen von Imports den Build bricht, wurden sie indirekt verwendet — wiederherstellen und dokumentieren
Sicherer Modus (Standard):
Aggressiver Modus (opt-in):
Fuer jede Loeschkandidatin:
CLEANUP_LOG.md hinzufuegenErwartet: Toter Code entfernt; CLEANUP_LOG.md dokumentiert alle Loeschungen
Bei Fehler: Wenn unsicher ob Code wirklich tot ist, in ein archive/-Verzeichnis verschieben statt zu loeschen
Konsistente Formatierung ueber alle Dateien sicherstellen (auch wenn nicht von Lintern erfasst).
# Beispiel: Zeilenenden und nachfolgende Leerzeichen beheben
find . -type f -name "*.js" -exec sed -i 's/\r$//' {} +
find . -type f -name "*.js" -exec sed -i 's/[[:space:]]*$//' {} +
Erwartet: Alle Dateien folgen konsistenten Formatierungskonventionen
Bei Fehler: Wenn sed Binaerdateien beschaedigt, ueberspringen und dokumentieren
Validieren dass die Bereinigung die Funktionalitaet nicht beeintraechtigt hat.
# Sprachspezifischer Testbefehl
npm test # JavaScript
pytest # Python
R CMD check # R
cargo test # Rust
Erwartet: Alle Tests bestehen (oder dieselben Fehler wie vor der Bereinigung)
Bei Fehler: Aenderungen inkrementell rueckgaengig machen um die brechende Aenderung zu identifizieren, dann eskalieren
Alle Aenderungen zur Pruefung dokumentieren.
# Codebasis-Bereinigungsbericht
**Datum**: JJJJ-MM-TT
**Modus**: safe | aggressive
**Sprache**: <Sprache>
## Kennzahlen
| Kennzahl | Vorher | Nachher | Aenderung |
|----------|--------|---------|-----------|
| Lint-Warnungen | X | Y | -Z |
| Codezeilen | A | B | -C |
| Ungenutzte Imports | D | 0 | -D |
| Tote Funktionen | E | F | -G |
## Angewandte Aenderungen
1. X Lint-Warnungen behoben (automatisiert)
2. Y ungenutzte Imports entfernt
3. Z Zeilen toten Code geloescht (siehe CLEANUP_LOG.md)
4. Formatierung ueber W Dateien vereinheitlicht
## Eskalierungen
- [Problembeschreibung die menschliche Pruefung erfordert]
- [Unsichere Loeschung nach archive/ verschoben]
## Validierung
- [x] Alle Tests bestehen
- [x] Backup erstellt: backup_JJJJMMTT/
- [x] CLEANUP_LOG.md aktualisiert
Erwartet: Bericht als CLEANUP_REPORT.md im Projektstammverzeichnis gespeichert
Bei Fehler: (Entfaellt — Bericht unabhaengig vom Ergebnis erstellen)
Nach der Bereinigung:
CLEANUP_LOG.md dokumentiert allen entfernten CodeCode entfernen der noch ueber Reflexion verwendet wird: Statische Analyse uebersieht dynamische Aufrufe (z.B. eval(), Metaprogrammierung). Immer Git-Historie pruefen.
Implizite Abhaengigkeiten brechen: Imports entfernen die von Abhaengigkeiten verwendet wurden. Nach jeder Import-Entfernung Tests ausfuehren.
Feature-Flags fuer aktive Features loeschen: Auch wenn im aktuellen Branch ungenutzt, koennen Feature-Flags in anderen Umgebungen aktiv sein. Deployment-Konfigurationen pruefen.
Ueberaggressive Formatierung: Werkzeuge wie black oder prettier koennen Code auf eine Weise umformatieren die unnoetige Diffs ausloest. Werkzeuge so konfigurieren dass sie zum Projektstil passen.
Testabdeckung ignorieren: Codebasen ohne Tests koennen nicht sicher bereinigt werden. Wenn die Abdeckung niedrig ist, zuerst fuer Testergaenzungen eskalieren.
Kein Backup erstellen: Immer ein backup_JJJJMMTT/-Verzeichnis erstellen bevor irgendetwas geloescht wird, auch bei Verwendung von Git.
tidy-project-structure — Verzeichnislayout organisieren, READMEs aktualisierenrepair-broken-references — Tote Links und Imports reparierenescalate-issues — Komplexe Probleme an Spezialisten weiterleitentesting
Launch all available agents in parallel waves for open-ended hypothesis generation on problems where the correct domain is unknown. Use when facing a cross-domain problem with no clear starting point, when single-agent approaches have stalled, or when diverse perspectives are more valuable than deep expertise. Produces a ranked hypothesis set with convergence analysis and adversarial refinement.
tools
Write integration tests for a Node.js CLI application using the built-in node:test module. Covers the exec helper pattern, output assertions, filesystem state verification, cleanup hooks, JSON output parsing, error case testing, and state restoration after destructive tests. Use when adding tests to an existing CLI, testing a new command, verifying adapter behavior across frameworks, or setting up CI for a CLI tool.
development
Screen a proposed trademark for conflicts and distinctiveness before filing. Covers trademark database searches (TMview, WIPO Global Brand Database, USPTO TESS), distinctiveness analysis using the Abercrombie spectrum, likelihood of confusion assessment using DuPont factors and EUIPO relative grounds, common law rights evaluation, and goods/services overlap analysis. Produces a conflict report with a risk matrix. Use before adopting a new brand name, logo, or slogan — distinct from patent prior art search, which uses different databases, legal frameworks, and analysis methods.
tools
Scaffold a new CLI command using Commander.js with options, action handler, three output modes (human-readable, quiet, JSON), and optional ceremony variant. Covers command naming, option design, shared context patterns, error handling, and integration testing. Use when adding a command to an existing Commander.js CLI, designing a new CLI tool from scratch, or standardizing command structure across a multi-command CLI.