i18n/de/skills/tidy-project-structure/SKILL.md
Projektdateien in konventionelle Verzeichnisse organisieren, veraltete READMEs aktualisieren, Konfigurationsdrift bereinigen und veraltete Elemente archivieren ohne Code-Logik zu aendern. Anwenden wenn Dateien ohne klare Organisation verstreut sind, READMEs veraltet sind oder defekte Beispiele enthalten, Konfigurationsdateien sich ueber Dev/Staging/Prod vermehrt haben, veraltete Dateien im Projektstamm verbleiben oder Namenskonventionen ueber Verzeichnisse hinweg inkonsistent sind.
npx skillsauth add pjt222/agent-almanac tidy-project-structureInstall 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 die Projektorganisation von Konventionen abgewichen ist:
NICHT verwenden fuer Code-Refactoring oder Abhaengigkeits-Umstrukturierung. Dieser Skill konzentriert sich auf Dateiorganisation und Dokumentationshygiene.
| Parameter | Typ | Erforderlich | Beschreibung |
|-----------|-----|--------------|-------------|
| project_path | string | Ja | Absoluter Pfad zum Projektstamm |
| conventions | string | Nein | Pfad zum Stilhandbuch (z.B. docs/conventions.md) |
| archive_mode | enum | Nein | move (Standard) oder delete fuer veraltete Dateien |
| readme_update | boolean | Nein | Veraltete READMEs aktualisieren (Standard: true) |
Aktuelle Struktur mit Projektkonventionen oder sprachspezifischen Best Practices vergleichen.
Gaengige Konventionen nach Sprache:
JavaScript/TypeScript:
src/ # Quellcode
tests/ # Testdateien
dist/ # Build-Ausgabe (gitignored)
docs/ # Dokumentation
.github/ # CI/CD-Workflows
Python:
package_name/ # Paketcode
tests/ # Testsuite
docs/ # Sphinx-Dokumentation
scripts/ # Hilfsskripte
R:
R/ # R-Quellcode
tests/testthat/ # Testsuite
man/ # Dokumentation (generiert)
vignettes/ # Ausfuehrliche Anleitungen
inst/ # Installierte Dateien
data/ # Paketdaten
Rust:
src/ # Quellcode
tests/ # Integrationstests
benches/ # Benchmarks
examples/ # Verwendungsbeispiele
Erwartet: Liste der gegen Konventionen verstossenden Dateien/Verzeichnisse in structure_audit.txt gespeichert
Bei Fehler: Wenn keine Konventionen dokumentiert sind, sprachspezifische Standards verwenden
Dateien in ihre konventionellen Verzeichnisse umlagern.
Haeufige Verschiebungen:
tests/ nach tests/ verschiebendocs/ nach docs/ verschiebensrc/ loeschen (sollten gitignored sein)config/ oder .config/ verschiebenFuer jede Verschiebung:
# Pruefen ob Datei irgendwo referenziert wird
grep -r "filename" .
# Wenn keine Referenzen oder nur relative Pfadreferenzen:
mkdir -p target_directory/
git mv source/file target_directory/file
# Alle Imports/Requires aktualisieren
# (sprachspezifisch — siehe repair-broken-references Skill)
Erwartet: Alle Dateien an konventionellen Positionen; Git-Historie ueber git mv erhalten
Bei Fehler: Wenn Verschieben Imports bricht, Importpfade aktualisieren oder eskalieren
Veraltete Informationen in allen README-Dateien identifizieren.
Veralterungsindikatoren:
# Alle READMEs finden
find . -name "README.md" -o -name "readme.md"
# Fuer jede README:
# - Letztes Aenderungsdatum pruefen
git log -1 --format="%ci" README.md
# - Auf defekte Links pruefen
markdown-link-check README.md
# - Beispielcode auf Funktionsfaehigkeit pruefen (erstes Beispiel testen)
Erwartet: Liste veralteter READMEs in readme_freshness.txt mit konkreten Problemen
Bei Fehler: Wenn markdown-link-check nicht verfuegbar, externe Links manuell pruefen
Defekte Links reparieren, Beispiele aktualisieren, fehlende Abschnitte ergaenzen.
Standard-Korrekturen:
README-Vorlagenstruktur:
# Projektname
Kurzbeschreibung (1-2 Saetze).
## Installation
```bash
# Sprachspezifischer Installationsbefehl
# Grundlegendes Beispiel
Link zur vollstaendigen Dokumentation.
Link zu CONTRIBUTING.md oder eingebettete Richtlinien.
LIZENZ-Badge und Link.
**Erwartet:** Alle READMEs aktualisiert; Beispiele auf Funktionsfaehigkeit verifiziert
**Bei Fehler:** Wenn Beispielcode nicht verifizierbar, mit Warnkommentar markieren
### Schritt 5: Konfigurationsdateien ueberpruefen
Konfigurationsdrift identifizieren und doppelte Einstellungen konsolidieren.
**Haeufige Konfigurationsprobleme**:
1. Mehrere `.env`-Dateien (`.env`, `.env.local`, `.env.dev`, `.env.prod`)
2. Doppelte Einstellungen ueber Konfigurationsdateien hinweg
3. Hartcodierte Geheimnisse (sollten Umgebungsvariablen verwenden)
4. Veraltete API-Endpunkte oder Feature-Flags
```bash
# Alle Konfigurationsdateien finden
find . -name "*.config.*" -o -name ".env*" -o -name "*.yml" -o -name "*.yaml"
# Fuer jede Konfiguration:
# - Auf doppelte Schluessel pruefen
# - Nach hartcodierten Geheimnissen suchen (API-Schluessel, Token, Passwoerter)
grep -E "(api[_-]?key|token|password|secret)" config_file
# - Dev- vs Prod-Einstellungen vergleichen
diff .env.dev .env.prod
Erwartet: Konfigurationsdrift in config_review.txt dokumentiert; Geheimnisse zur Eskalation markiert
Bei Fehler: Wenn Diff grosse Abweichungen zeigt, an devops-engineer eskalieren
Nicht mehr benoetigte Dateien verschieben oder loeschen.
Kandidaten fuer Archivierung:
nginx.conf.old)file.bak, file~)Archivierungsprozess:
# Archivverzeichnis erstellen (wenn archive_mode=move)
mkdir -p archive/YYYY-MM-DD/
# Fuer jede veraltete Datei:
# 1. Pruefen ob nirgends referenziert
grep -r "filename" .
# 2. Git-Historie auf letzte Aenderung pruefen
git log -1 --format="%ci" filename
# 3. Wenn seit >1 Jahr nicht geaendert und keine Referenzen:
if [ "$archive_mode" = "move" ]; then
git mv filename archive/YYYY-MM-DD/
else
git rm filename
fi
# 4. In ARCHIVE_LOG.md dokumentieren
echo "- filename (Grund, letzte Aenderung: DATUM)" >> ARCHIVE_LOG.md
Erwartet: Veraltete Dateien archiviert; ARCHIVE_LOG.md aktualisiert
Bei Fehler: Wenn unsicher ob Datei veraltet ist, belassen und im Bericht dokumentieren
Auf inkonsistente Dateibenennung im Projekt pruefen.
Gaengige Konventionen:
my-file.js (ueblich in JS/Web-Projekten)my_file.py (Python-Standard)MyComponent.tsx (React-Komponenten)myUtility.js (JavaScript-Funktionen)# Dateien finden die gegen Konventionen verstossen
# Beispiel: Python-Projekt mit erwarteter snake_case
find . -name "*.py" | grep -v "__pycache__" | grep -E "[A-Z-]"
# Fuer jeden Verstoss entweder:
# 1. Umbenennen um Konventionen einzuhalten
# 2. Ausnahme dokumentieren (z.B. Django settings.py Konvention)
Erwartet: Alle Dateien folgen Namenskonventionen oder Ausnahmen dokumentiert
Bei Fehler: Wenn Umbenennung Imports bricht, Referenzen aktualisieren oder eskalieren
Alle strukturellen Aenderungen dokumentieren.
# Projektstruktur-Bereinigungsbericht
**Datum**: JJJJ-MM-TT
**Projekt**: <projektname>
## Verzeichnisaenderungen
- X Dateien in konventionelle Verzeichnisse verschoben
- Y neue Verzeichnisse erstellt
- Z veraltete Dateien archiviert
## README-Aktualisierungen
- W veraltete READMEs aktualisiert
- X defekte Links repariert
- Y Code-Beispiele verifiziert
## Konfigurationsbereinigung
- X doppelte Einstellungen konsolidiert
- Y hartcodierte Geheimnisse zur Entfernung markiert
- Z Konfigurationsdrift-Probleme dokumentiert
## Archivierte Dateien
Siehe ARCHIVE_LOG.md fuer vollstaendige Liste (Z Dateien).
## Namenskonventionskorrekturen
- X Dateien entsprechend Konventionen umbenannt
- Y Ausnahmen dokumentiert
## Eskalierungen
- [Konfigurationsdrift erfordert DevOps-Pruefung]
- [Hartcodierte Geheimnisse erfordern Sicherheitsaudit]
Erwartet: Bericht in TIDYING_REPORT.md gespeichert
Bei Fehler: (Entfaellt — Bericht unabhaengig generieren)
Nach der Bereinigung:
git mv, nicht mv)Relative Imports brechen: Verschieben von Dateien bricht relative Importpfade. Alle Referenzen aktualisieren oder absolute Imports verwenden.
Git-Historie verlieren: Verwendung von mv statt git mv verliert Dateihistorie. Immer Git-Befehle fuer Verschiebungen verwenden.
Ueberorganisation: Zu viele verschachtelte Verzeichnisse erschweren die Navigation. Flach halten bis Komplexitaet Struktur erfordert.
Loeschen statt Archivieren: Direktes Loeschen verliert Wiederherstellungsmoeglichkeit. Immer zuerst archivieren wenn nicht sicher.
Sprachkonventionen ignorieren: Persoenliche Vorlieben ueber Sprachstandards stellen. Etablierte Konventionen befolgen.
Dokumentation nicht aktualisieren: Dateien verschieben ohne README-Pfade anzupassen hinterlaesst defekte Dokumentation.
testing
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.