洁癖.skill (Tidy-Skill)
Stoppt KI-Agenten, die euer Repository mit
plan.md,todo.md,summary.mdund anderen Wegwerf-Artefakten überschwemmen.
Dies ist kein Markdown-Löscher. Dieses Skill kontrolliert die lokale Umgebung, in der Agenten arbeiten: Repository-Artefakte, Workspace-Caches, WSL2/Docker-Speicher, Paketmanager-Caches, Modell-Caches und Agenten-/IDE-Zustände.
Eine Datei oder ein Cache ist nicht allein deshalb Müll, weil sie groß ist. Sie wird zu einem Hygiene-Risiko, wenn sie keinen Zweck, keinen Besitzer, keinen Leser, keinen Lebenszyklus und keinen Wiederherstellungspfad hat. Ziel ist nicht aggressives Löschen – sondern sicherzustellen, dass jedes Artefakt, jeder Cache und jeder lokale Umgebungs-Fußabdruck einen Zweck, einen Platz und eine sichere nächste Aktion hat.
1. Hygienemodell
Verwende ein Drei-Schichten-Modell:
| Schicht | Bereich | Beispiele | Standard-Aktion |
|---|---|---|---|
| Repository | Agent-erstellte Artefakte | plan.md, todo.md, .agent_tmp/, .agent_reports/ | klassifizieren, melden, DryRun-Bereinigung |
| Workspace | Entwicklungs-Caches über Projekte hinweg | node_modules, .venv, target, Build-Caches | auditieren, bewerten, empfehlen |
| Lokale Maschine | Toolchains und virtualisierte Umgebungen | WSL2, Docker Desktop, Paket-Caches, Modell-Caches, Agenten-/IDE-Zustände | schreibgeschützte Karte, Risikoeinstufung, manuelle Anleitung |
Berichte sollen trennen:
Befunde– lokal beobachtete Fakten.Sichere Vorschläge– risikoarme nächste Schritte wie das Ausführen eines DryRun oder das Verschieben zukünftiger Berichte in.agent_reports/.Manuelle / Riskante Operationen– Migration, VHDX-Kompaktierung, Docker-Datenumzug, Modell-Cache-Umzug oder Konfigurationsänderungen. Diese niemals automatisch durchführen.
2. Wann dieses Skill zu verwenden ist
Rufe dieses Skill auf, wenn der Benutzer nach Folgendem fragt:
| Auslöser | Beispiele |
|---|---|
| Aufräumen / Organisieren | "整理项目目录", "clean up this repo", "organize my project" |
| Artefakte generieren | "写计划", "生成报告", "create a plan/todo/summary/report/audit" |
| Audit | "审计项目文件", "scan for agent artifacts", "列出可疑文件" |
| Bereinigen | "清理 Agent 文件", "clean agent temp files", "删除临时文件" |
| Entscheiden | "这个文件该不该生成?", "should I create this file or keep it in chat?" |
| Bewerten | "给我的仓库打洁癖分", "repo hygiene score", "how clean is my repo?" |
| Workspace-Audit | "扫描工作区", "audit my workspace", "找出多个仓库的 Agent 产物" |
| Lokales Umgebungs-Audit | "审计我的本地环境", "inspect local agent environment", "where are my dev caches" |
| Regeln erstellen | "创建 AGENTS.md / CLAUDE.md / Cursor Rules" |
| Aufgabenerledigung | Hygiene-Check zum Abschluss vor Beendigung |
| Verschmutzung | "多个 Agent 乱写文件", "project root is a mess of markdown" |
| Beschwerde | "不要生成垃圾文档", "清理 plan.md / todo.md" |
| Umgebungsinspektion | "inspect my coding environment", "where is node/python/go installed?" |
| Laufwerkswachstum | "why is my C drive growing?", "find package/model caches" |
| WSL2 / Docker | "WSL2 占用太大", "Docker Desktop disk is huge", "where is ext4.vhdx" |
| Modell-Caches | "Ollama/Hugging Face models on C drive", "AI model cache audit" |
| Agenten-Zustand | "Claude/Codex/Cursor state locations", "agent config/cache footprint" |
3. Wann dieses Skill NICHT zu verwenden ist (Niemals tun)
Stoppe und frage den Benutzer oder vermeide es strikt, wenn die Anfrage Folgendes betrifft:
- Löschen von formeller Projektdokumentation
- Ändern von benutzergeschriebenen Notizen
- Bereinigen von Quellcode (
src/,lib/,app/) - Bearbeiten von Tool-Zustandsverzeichnissen (
.codex/,.claude/,.cursor/,.vscode/,*.sqlite,state.json,session.json,workspaceStorage,globalStorage,auth-token) - Unbestätigte Massenlöschung von Markdown
- Erzwungenes Löschen von Git-verfolgten Dateien
- Bereinigen von unbekanntem Markdown in persönlichen/Benutzerordnern
- Ändern von Systemeinstellungen oder der Registry
- Registrieren von geplanten Aufgaben
- Hochladen von Logs, Berichten, Anmeldedaten oder Umgebungsdaten
- Scannen des gesamten Computers ohne einen explizit vom Benutzer angegebenen Root-Bereich
- Lesen von Authentifizierungs-Tokens, Sitzungsdateien, SQLite-Datenbanken oder privaten Logs
- Löschen von Tool- oder Modell-Caches nur, weil sie groß sind
- Verschieben von Tools oder Überschreiben von Umgebungsvariablen ohne separate explizite Migrationsanforderung
- Kompaktieren von WSL/Docker VHDX-Dateien
- Exportieren/Importieren von WSL-Distributionen
- Bearbeiten von
.wslconfig, Docker-Einstellungen, Shell-Profilen oder Paketmanager-Konfiguration
4. Artefakt-Klassifizierung
Jede von einem Agenten erstellte Datei gehört zu einer von fünf Klassen. Die Klasse – nicht die Erweiterung – bestimmt die Behandlung.
| Klasse | Beispiele | Heimat | Lebenszyklus | Automatisches Löschen? |
|---|---|---|---|---|
| A – Formelle Dokumentation | README.md, CHANGELOG.md, LICENSE, docs/**, CONTRIBUTING.md, Benutzernotizen | docs/, Projektstamm | Dauerhaft | Niemals |
| B – Vom Benutzer angeforderte Ergebnisse | Audit-Bericht, Migrationsplan, Recherche-Ausarbeitung (Benutzer explizit angefordert) | .agent_reports/ | 30 Tage | Nach Aufbewahrungsfrist |
| C – Temporäre Arbeitsartefakte | Plan, Todo, Notizen, Entwurf, Fortschritt, Aufgabenliste | .agent_tmp/ | 7 Tage | Nach Aufbewahrungsfrist |
| D – Selbstlobend | Zusammenfassung, Abschlussbericht, Arbeitszusammenfassung, Erkenntnisse, Änderungszusammenfassung | Nicht erstellen | N/V | N/V |
| E – Tool-Zustand (außerhalb des Bereichs) | .codex/, .claude/, .cursor/, *.sqlite, Zustandsdateien | Tool-Verzeichnisse | N/V | Niemals |
Wichtige Regeln:
- Klasse A → niemals automatisch löschen, niemals automatisch überschreiben
- Klasse B → spezifischer Dateiname
<task>_<date>.md, niemals im Projektstamm - Klasse C → nur
.agent_tmp/, niemals committet, am Ende der Aufgabe bereinigen - Klasse D → nicht erstellen. Der Chat ist die Zusammenfassung.
- Klasse E → vollständig ignorieren, niemals als verdächtig markieren
5. Artefakt-Zweckprüfung (VERPFLICHTEND)
Bevor du eine neue Datei erstellst, fülle diese Prüfung aus. Wenn du nicht jedes Feld beantworten kannst, erstelle die Datei nicht.
Artefakt-Zweckprüfung
─────────────────────
1. Hat der Benutzer eine Datei angefordert? ja / nein
2. Zweck:
3. Leser:
4. Erwartete Lebensdauer: Sitzung / Tage / dauerhaft / formelles-Dokument
5. Zielpfad:
6. Warum eine Chat-Antwort nicht ausreicht:
7. Klasse: temporär / dauerhaft / formelle-Dokumentation
8. Sollte dies in .gitignore? ja / nein
Entscheidungsregeln:
| Szenario | Aktion |
|---|---|
| #1 = nein, Klasse ≠ A | Nicht erstellen. Im Chat antworten. |
| Zweck = Plan/Todo/Zusammenfassung/Fortschritt, Leser = dieser Benutzer | Nur Chat. Keine Datei. |
| Muss erstellen, Klasse = C | .agent_tmp/<spezifischer-name>.md |
| Muss erstellen, Klasse = B | .agent_reports/<task>_<YYYY-MM-DD>.md |
| Klasse = A (formelles Dokument) | docs/-Pfad, Benutzer explizit angefordert |
| Datei wiederholt diesen Chat | Nicht erstellen |
| Kein klarer Leser | Nicht erstellen |
| Kein klarer Lebenszyklus | Nicht erstellen |
| Keine Folgenutzung | Nicht erstellen |
6. Harte Regeln für die Dateierzeugung
- Standard: keine Dateien schreiben.
- Pläne, Todos, Zusammenfassungen, Fortschritt → im Chat antworten.
- Der Projektstamm ist verboten für generisches Prozess-Markdown, es sei denn, der Benutzer benennt explizit eine Datei.
- Im Projektstamm verboten (es sei denn, der Benutzer fragt explizit nach dieser genauen Datei):
todo.md, plan.md, notes.md, lessons.md, summary.md, report.md, final_report.md, implementation_plan.md, migration_plan.md, audit_report.md, cleanup_report.md, task_list.md, progress.md, work_summary.md, changes_summary.md, *_summary.md, *_report.md, *_plan.md - Temporäre Dateien →
.agent_tmp/ - Dauerhafte Berichte →
.agent_reports/ - Formelle Dokumente →
docs/(nur wenn explizit angefordert) - Generiere keine Berichte, um „professionell auszusehen“.
- Erstelle keine automatischen Zusammenfassungsdateien am Ende einer Aufgabe.
- Dupliziere keine Chat-Inhalte in Dateien.
- Verwende spezifische Dateinamen:
<task>_<context>_<date>.md - Wenn der Benutzer nach einer Datei fragt, schlage zuerst Pfad + Dateinamen vor.
- Wenn der Benutzer sagt „sag mir“ / „fasse zusammen“ / „plane es“ → im Chat antworten.
7. Erlaubte und verbotene Orte
Erlaubt
| Inhalt | Erlaubter Ort |
|---|---|
| Temporäre Arbeitsdateien | .agent_tmp/ |
| Vom Benutzer angeforderte Berichte | .agent_reports/ |
| Formelle Dokumentation | docs/ (explizite Anforderung erforderlich) |
| Vom Benutzer angegebener Pfad | Jeder Pfad, den der Benutzer explizit genannt hat |
Verboten
| Ort | Warum |
|---|---|
| Projektstamm (generisches Prozess-Markdown) | Reserviert für formelle Repository-Dateien |
src/, lib/, app/ | Quellcode-Verzeichnisse |
.codex/, .claude/, .cursor/, .vscode/ | Tool-Zustand – nicht berühren |
8. Geschützte Dateien (Nie automatisch löschen)
README.md, README.*.md
CHANGELOG.md
LICENSE, LICENSE.*
CONTRIBUTING.md
CODE_OF_CONDUCT.md
SECURITY.md
Alles unter docs/
Jede Git-verfolgte Datei außerhalb von .agent_tmp/ oder .agent_reports/
Vom Benutzer handgeschriebene Notizen
9. Lebenszyklus
| Ort | Standard-Aufbewahrungsdauer | Bereinigung |
|---|---|---|
.agent_tmp/ | 7 Tage | Agent soll seine eigenen am Ende der Aufgabe bereinigen |
.agent_reports/ | 30 Tage | In docs/ verschieben für langfristige Aufbewahrung |
docs/ | Dauerhaft | Kein automatischer Lebenszyklus |
10. Repository-Hygiene-Score
Wenn nach einem Repository-Hygiene-Score gefragt wird, bevorzuge ${CLAUDE_SKILL_DIR}/scripts/score_repo_hygiene.py, wenn Python verfügbar ist. In Windows-Only-Umgebungen verwende ${CLAUDE_SKILL_DIR}/scripts/score-repo-hygiene.ps1.
| Punktzahl | Bewertung (en) | Bewertung (de) |
|---|---|---|
| 90–100 | Clean | Sauber |
| 70–89 | Mostly clean | Größtenteils sauber |
| 50–69 | Needs tidy-up | Aufräumen erforderlich |
| 0–49 | Artifact landfill | Agenten-Artefakt-Müllhalde |
Dimensionen: Stamm-Sauberkeit, Artefakt-Platzierung, Klarheit der geschützten Dokumente, Git-Hygiene, Isolierung des Agenten-Zustands, Bereitschaft zur Bereinigung. Optionale Gewichtungsfaktoren: --weights references/score-weights.example.json.
Optionale Projektrichtlinie: platziere .tidy-skill.json (oder tidy-skill.policy.json) im Repository-Stamm oder übergib --policy. Schema-Beispiel: references/tidy-skill.policy.example.json. Die Richtlinie kann verbotene/geschützte Stamm-Muster erweitern, min_score setzen, .agent_tmp/ + .agent_reports/ erfordern und gezielte Planungs-Layout-Stammnamen über planning_root_globs zulassen (siehe references/tidy-skill.policy.pwf.example.json für die Koexistenz von Planung mit Dateien). .planning/** wird ohne Richtlinie als beabsichtigter Class-C-Arbeitsspeicher erkannt.
Arzt, Reparatur, Klassifizierung, Schnappschüsse
| Bedarf | Skript |
|---|---|
| Einmalige Installation + Hygiene-Arzt / CI-Gate | ${CLAUDE_SKILL_DIR}/scripts/tidy_doctor.py |
| DryRun-erste sichere Reparaturen (Layout-Verzeichnisse; optionale Stamm-Verschiebungen) | ${CLAUDE_SKILL_DIR}/scripts/tidy_repair.py |
| DryRun-Host-Hook-Konfigurations-Emitter | ${CLAUDE_SKILL_DIR}/scripts/tidy-install-hooks.py |
Pfad vor dem Schreiben klassifizieren (Klassen A–E); Batch über --stdin --json | ${CLAUDE_SKILL_DIR}/scripts/classify_artifact.py |
Score-Verlauf speichern/vergleichen; auf min_score prüfen | ${CLAUDE_SKILL_DIR}/scripts/hygiene_snapshot.py |
Sicherheitsverben (immer gleiche Bedeutung):
- dryrun – nur Vorschau (Standard für Reparatur, Bereinigung, Install-Hooks)
- careful – mutiert nur Agenten-Arbeitsdateien (
tidy_repair.py --apply --move-root) - guard – lehnt Host-Konfigurationen, VHDX, Docker-Daten, Git-verfolgte Dateien, Class-A-Dokumente strikt ab
tidy_repair.py ist der Diagnose→nächster-Schritt-Begleiter zum Arzt. Standard ist nur ein Plan. --apply erstellt .agent_tmp/ + .agent_reports/ mit .gitkeep. Stamm-Prozess-Verschiebungen benötigen sowohl --apply als auch --move-root und lehnen dennoch Git-verfolgte / geschützte Namen ab.
hygiene_snapshot.py save schreibt standardmäßig unter .agent_reports/hygiene-history/ (Class-B-Ergebnisverlauf, kein Stamm-Müll). gate und der Arzt beenden mit 2 bei Hygiene-/Richtlinienfehler.
11. Workspace-Hygiene-Audit
Wenn aufgefordert, mehrere Repositories zu scannen, bevorzuge ${CLAUDE_SKILL_DIR}/scripts/audit_workspace_hygiene.py für eine portable Basislinie. In Windows-Only-Workflows ist ${CLAUDE_SKILL_DIR}/scripts/audit-workspace-hygiene.ps1 ebenfalls in Ordnung. Der Benutzer muss explizit ein Stammverzeichnis angeben. Niemals standardmäßig gesamte Laufwerke scannen.
Für ein Einzel-Repository-Agenten-Artefakt-Audit bevorzuge ${CLAUDE_SKILL_DIR}/scripts/audit_agent_artifacts.py, wenn Python verfügbar ist. Verwende ${CLAUDE_SKILL_DIR}/scripts/audit-agent-artifacts.ps1, wenn du in einem PowerShell-Workflow bleibst. Sowohl Audit als auch Score akzeptieren optionales --policy.
Optionaler schreibgeschützter Check am Ende der Aufgabe: ${CLAUDE_SKILL_DIR}/hooks/stop-hygiene-check.py (nur Berichte; löscht nie). Auslösephrasen befinden sich in commands/TRIGGERS.md.
12. Lokales Maschinen-Hygiene-Audit
Wenn nach C-Laufwerkswachstum, WSL2, Docker Desktop, Modell-Caches, Paket-Caches, Agenten-Zustand oder lokaler Entwicklungsumgebungs-Ausbreitung gefragt wird, verwende ${CLAUDE_SKILL_DIR}/scripts/audit-dev-environment.ps1.
Für portable Paket-/Modell-Cache-Zuordnung in Nicht-Windows-Umgebungen verwende ${CLAUDE_SKILL_DIR}/scripts/audit_dev_environment.py. Verwende das PowerShell-Skript für Windows-spezifische WSL2/Docker VHDX-Inspektion.
Regeln:
- Frage nach expliziten Scan-Roots, wenn ein Projekt-/Workspace-Scan benötigt wird.
- Verwende
-IncludeUserProfilenur, wenn der Benutzer die Aufnahme der standardmäßigen Benutzerprofil-Cache-Orte wünscht. - Verwende
-IncludeDrivesnur, wenn der Benutzer explizit nach Laufwerks-Hinweisen fragt. - Behandle WSL/Docker-Migration, VHDX-Kompaktierung, Docker-Datenumzug,
.wslconfig-Änderungen und Modell-Cache-Umzug alsManuelle / Riskante Operationen. - Lese niemals Tokens, Sitzungsdateien, SQLite-Datenbanken, Registry-Schlüssel, private Logs oder Anmeldedatenspeicher.
Lies für WSL2- und Docker-Details references/wsl2-docker-hygiene.md.
13. Bereinigungsregeln
Erlaubte automatische Bereinigung:
.agent_tmp/– Dateien älter als 7 Tage.agent_reports/– Dateien älter als 30 Tage- Vom Benutzer angegebenes temporäres Agenten-Verzeichnis
- Benannte, abgelaufene, von Agenten erstellte Prozessdateien
Verbotene automatische Bereinigung:
- Geschützte Dokumente (Klasse A)
- Quellcode
- Tool-Zustand (Klasse E)
- Unbekanntes Markdown in Benutzerordnern
- Git-verfolgte Dateien
- Verdächtige Dateien auf Stammebene → nur melden, Benutzer fragen
14. Audit-Regeln
- Schreibgeschützt – ändert niemals Dateien
- Begrenzte Tiefe, überspringt
.git/,node_modules/,dist/,build/,target/,.venv/,venv/ - Listet auf:
.agent_tmp/,.agent_reports/, verdächtige Dateien auf Stammebene, geschützte Dokumente - Schlägt Aktionen vor, führt keine aus
- Kein Upload oder Netzwerkaufrufe
15. Checkliste am Ende der Aufgabe
Bevor du „erledigt" meldest:
- Habe ich Dateien erstellt? War jede durch eine Artefakt-Zweckprüfung gerechtfertigt?
- Sind temporäre Dateien in
.agent_tmp/und Berichtsdateien in.agent_reports/? (Niemals im Stamm.) - Habe ich alle
.gitignore-Regeln angewandt? - Habe ich Tool-Zustandsverzeichnisse oder geschützte Dokumente vermieden?
- Ist der Chat immer noch die beste Quelle für den Kontext dieser Sitzung?
16. Trigger-Phrasen
Das Skill reagiert auf eine breite Palette von natürlichsprachlichen Auslösern. Siehe commands/TRIGGERS.md für die vollständige Liste.
17. Zugehörige Skripte
${CLAUDE_SKILL_DIR}/scripts/score_repo_hygiene.py— berechnet den Repository-Hygiene-Score (Python)${CLAUDE_SKILL_DIR}/scripts/score-repo-hygiene.ps1— Windows-native Version${CLAUDE_SKILL_DIR}/scripts/audit_workspace_hygiene.py— Multi-Repo-Workspace-Audit (Python)${CLAUDE_SKILL_DIR}/scripts/audit-workspace-hygiene.ps1— Windows-native Version${CLAUDE_SKILL_DIR}/scripts/audit_agent_artifacts.py— Einzel-Repo-Agenten-Artefakt-Audit (Python)${CLAUDE_SKILL_DIR}/scripts/audit-agent-artifacts.ps1— Windows-native Version${CLAUDE_SKILL_DIR}/scripts/audit-dev-environment.ps1— Lokales Maschinen-Hygiene-Audit (Windows)${CLAUDE_SKILL_DIR}/scripts/audit_dev_environment.py— Portables lokales Maschinen-Audit (Python)${CLAUDE_SKILL_DIR}/scripts/tidy_doctor.py— Einmalige Installation + Hygiene-Arzt / CI-Gate${CLAUDE_SKILL_DIR}/scripts/tidy_repair.py— DryRun-erste sichere Reparaturen${CLAUDE_SKILL_DIR}/scripts/tidy-install-hooks.py— DryRun-Host-Hook-Konfigurations-Emitter${CLAUDE_SKILL_DIR}/scripts/classify_artifact.py— Pfad vor dem Schreiben klassifizieren${CLAUDE_SKILL_DIR}/scripts/hygiene_snapshot.py— Score-Verlauf speichern/vergleichen, auf min_score prüfen${CLAUDE_SKILL_DIR}/hooks/stop-hygiene-check.py— Schreibgeschützter Check am Ende der Aufgabe
18. Projekt-Konfigurationsreferenzen
references/tidy-skill.policy.example.json— Beispiel für eine Projektrichtliniereferences/tidy-skill.policy.pwf.example.json— Beispiel für Planung-mit-Dateien-Koexistenzrichtliniereferences/score-weights.example.json— Beispiel für Score-Gewichtungenreferences/wsl2-docker-hygiene.md— Details zu WSL2/Docker-Hygienecommands/TRIGGERS.md— Vollständige Liste der Auslösephrasen
„Eine Datei ist nicht Müll, weil sie groß ist. Sie ist Müll, wenn sie keinen Zweck, keinen Besitzer, keinen Leser, keinen Lebenszyklus und keinen Wiederherstellungspfad hat."