wiki-maintenance
Der Haushalts-Skill. Gibt Marvin periodisch das Gefuehl dass das System nicht messy wird — weil es tatsaechlich nicht messy wird. Arbeitet in sechs Passes, jeder mit eigenem Review-Gate. Marvin kann einzelne Passes skippen (nur inbox, nur links, nur tbd).
Geltungsbereich. Liest immer das ganze Repo. Schreibt nur nach expliziter Bestaetigung. Loescht niemals ungefragt. Bei Unsicherheit: flaggen, nicht handeln.
Zwei Modi:
- Interactive (Default, manueller Trigger): Batch-Report zeigt alle Vorschlaege, Marvin akzeptiert per Batch oder einzeln.
- Autonomous (Cron, siehe Autonomous-Mode): strengere Regeln, nur High-Confidence-Aktionen, Unklares bleibt in Inbox.
Ablauf-Uebersicht
Pass 1: Inbox einsortieren (wichtigster, oft einziger gebrauchter)
Pass 2: Broken Links + Inline-Code-Pfad-Check
Pass 3: Frontmatter-Check
Pass 4: Stale Files
Pass 5: DONE-Archivierung (Plugin-TODO-Liste)
Pass 6: TBD-Tracker
Am Ende: Summary-Report
Wenn Marvin “nur inbox” sagt: nur Pass 1, direkt zum Report. Analog fuer andere Passes (nur links, nur tbd, nur frontmatter).
Pass 1: Inbox einsortieren
Ziel: inbox/ leeren. Jedes File landet an seinem richtigen Ort oder wird geloescht.
Der Pass laeuft in drei Phasen: (A) Scan → (B) Batch-Report → (C) Aktionen. Phase B zeigt alle Klassifizierungs-Vorschlaege auf einen Blick — du kannst klare Faelle im Batch bestaetigen und nur unsichere einzeln abarbeiten. Das spart Clicks bei vollen Inboxes.
1.1 Files sammeln (alle Typen)
Liste alle Files in inbox/ (exkl. CONTEXT.md, .gitkeep). Fuer jedes File:
- Dateityp: Extension + ggf. MIME-Detection
- Alter: File-Timestamp (frisch vs. laenger in Inbox liegend)
- Name-Signal: Pattern-Match im Dateinamen (
Rechnung,Invoice,Immatrikulation,YYYY-MM-DD-*, Vendor-Name) - Content-Read, abhaengig vom Typ:
.md,.txt,.html: komplett lesen, Frontmatter parsen.pdf: mitRead-Tool extrahieren (max 20 Seiten), Key-Felder lesen (Betreff, Datum, Betrag, Vendor).pptx:pptx-Skill triggern fuer Titel + Structure.heic/.jpg/.png: Preview anschauen, Dateiname + EXIF-Datum als Context- Unbekannter Typ: nicht lesen, flaggen als “Unklar”
Wenn Inbox leer: Pass 1 skippen, kurz melden.
1.2 Klassifikations-Matrix
| Klassifikation | Ziel | Trigger-Signale |
|---|---|---|
| TODO | Plugin-TODO-Liste (agentic-ventures Plugin) | .md beschreibt konkrete Aktion mit Aufwand fuer uns |
| Idee (geparkt) | intern/ideen/ideas-backlog.md | .md Brainstorm ohne konkreten Next Step, passt nicht zum Fokus |
| Wiki-Wissen | `intern/wissen/<entscheidungen | prozesse |
| Kunden-Info | intern/kunden/<slug>.md (Stamm) oder intern/projekte/<projekt>/ressourcen/<file>.md (Projekt-Detail) | .md Info ueber spezifischen Kunden |
| Config-Wert | _meta/config-planning.md (operativ) oder _meta/config.md (technisch) | .md Dauer-Default, Themen-Tag-Anpassung, Arbeitszeit-Aenderung |
| Research-Kandidat | Vorschlag fuer intern/runs/<datum>-research-<topic>/ | .md offene Frage / Thema zum Erkunden (nicht einfacher Fakt) |
| Rechnung (Eingang) | PDF → assets/finanzen/<YYYY>/, Metadata-.md → extern/inbound/rechnungen/ | PDF, Name enthaelt Rechnung/Invoice/Vendor, Content hat IBAN/USt-ID/Betrag, Vendor ist extern |
| Rechnung (Ausgang) | PDF → assets/finanzen/<YYYY>/, Metadata-.md → extern/outbound/rechnungen/ | PDF, von uns an Kunden ausgestellt (Name enthaelt Kunden-Slug + unseren Absender) |
| Medical-Doc | iCloud → ~/Library/Mobile Documents/com~apple~CloudDocs/Archiv/medical/ | PDF mit medizinischem Content (Screening, Befund, Attest, Fragebogen). Kein Vault-Eintrag. |
| Uni-Bescheinigung | iCloud → .../Archiv/uni/ | PDF Name Immatrikulation* / Exmatrikulation* / Studien*. Kein Vault-Eintrag. |
| Personal-Foto | iCloud → .../Archiv/personal/ | .heic/.jpg ohne Business-Kontext (Screenshot von Quittung oder Whiteboard zaehlt NICHT hier — siehe Screenshot-Eintrag) |
| Partner-Material | assets/firma/partner-materials/ | PPTX/PDF fuer Alex oder externe Sales-Partner |
| Screenshot mit Kontext | assets/<bereich>/<slug>.png + Text-File .md daneben in intern/wissen/... | Bild das ein Konzept/Workflow zeigt, mit Dateiname oder Notiz daneben |
| Fragment/Noise | Loeschen | Test-Message, unvollstaendiger Gedanke, Duplikat (Hash-Match) |
| Unklar | Flaggen, in inbox/ lassen | Keine der anderen Kategorien greift sicher |
Regel: Im Zweifel flaggen, nicht raten. Falsch einsortiertes Material ist schlimmer als nicht einsortiertes. Ein File das du nicht einschaetzen kannst darf in inbox/ bleiben — Marvin sieht’s im Report und entscheidet.
1.3 Batch-Report
Nach dem Full-Scan: erst alle Vorschlaege zeigen, dann fragen. Zwei Confidence-Buckets plus Flag-Liste.
📋 Inbox-Scan: 12 Files (7 md, 3 pdf, 1 heic, 1 pptx)
━━━ KLAR (8) — Batch-Accept moeglich ━━━
📄 Hetzner_2026-04-12_089000852058.pdf → Rechnung [assets/finanzen/2026/ + extern/inbound/rechnungen/]
📄 Immatrikulationsbescheinigung_SoSe_2025.pdf → Uni-Doc [iCloud/uni/]
📄 Immatrikulationsbescheinigung_WiSe_2025.pdf → Uni-Doc [iCloud/uni/]
📄 ADHS_SB.pdf → Medical [iCloud/medical/]
📄 BDI-II.pdf → Medical [iCloud/medical/]
📄 2026-04-17-becker-stahl-mittwoch.md → TODO [Plugin-TODO]
📄 2026-04-17-lissabon-sonntag.md → TODO [Plugin-TODO]
📄 Becker_Huels_Kuehlmann-...pptx → Partner-Material [assets/firma/partner-materials/]
━━━ UNSICHER (3) — einzeln ━━━
📄 IMG_0389.HEIC → Personal-Foto? (keine Context-Info, nur EXIF-Datum 2026-04-20)
📄 2026-04-17-skool-community-youtube.md → Idee vs Research? (koennte beides sein)
📄 therapeutin-fragebogen-2026-04-21.html → Medical? Private Notiz? (Name ambig)
━━━ FLAGGEN (1) ━━━
📄 Hase 2.pdf → Unklar (Dateiname gibt nichts her, Content = Bild ohne Beschriftung)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[j] alle KLAR ausfuehren, dann UNSICHER einzeln
[e] einzeln ab Nr 1
[s] nur ausgewaehlte Nummern (z.B. "1,2,5-7")
[n] abbrechen
1.4 Aktionen ausfuehren
Bei Batch-Accept: KLAR-Liste wird in einer Sequenz ausgefuehrt, UNSICHER kommt pro File mit dem klassischen [j/n/k/z]-Dialog.
Pro Klassifikation:
- TODO: in Plugin-TODO-Liste in passende Section einfuegen. Prio
[WICHTIG]oder[NORMAL]. Inbox-File loeschen. - Idee: in
intern/ideen/ideas-backlog.mdunter## Parkedanhaengen. Inbox-File loeschen. - Wiki-Wissen: neues File oder bestehendes ergaenzen unter
intern/wissen/<entscheidungen|prozesse|glossar>/. Inline-Marker<!-- from inbox YYYY-MM-DD -->. Danach Rule 12 Capture-Check (siehe 1.5). Inbox-File loeschen. - Kunden-Info: analog Wiki, in
intern/kunden/<slug>.md(Stamm) oderintern/projekte/<projekt>/ressourcen/<file>.md(Detail). - Config-Wert: in
_meta/config-planning.md(operativ) oder_meta/config.md(technisch) eintragen, immer mit Bestaetigung, nie stumpf ueberschreiben. - Research-Kandidat: Spezial-Flow (siehe 1.6).
- Rechnung:
- Metadata aus PDF extrahieren: Vendor, Rechnungs-Datum, Rechnungs-Nr, Netto, USt-Satz, Brutto, Leistung (1 Zeile), Zahlungsfrist.
- PDF nach
assets/finanzen/<YYYY>/(gitignored) verschieben. Jahr aus Rechnungs-Datum, nicht File-Timestamp. Umbenennen:YYYY-MM-DD_lieferant_betrag.pdf. - Metadata-
.mdmit Frontmatter Schema 5.9 (Invoice) anlegen inextern/inbound/rechnungen/<YYYY>/<inv-id>.md(Eingang) oderextern/outbound/rechnungen/<YYYY>/<inv-id>.md(Ausgang).file:-Pointer auf das PDF setzen. - Inbox-File entfernen.
- Medical / Uni / Personal-Foto: nach iCloud-Pfad verschieben (
~/Library/Mobile Documents/com~apple~CloudDocs/Archiv/<category>/). Kein Vault-Eintrag. Inbox-File entfernen. Nur Zeile im Summary (“3 Medical-Docs nach iCloud/medical/”). - Partner-Material: nach
assets/firma/partner-materials/. Vault-Verweis-Option: wenn Material Teil eines laufenden Partner-Prozesses ist (Alex-Deck, Icking-Angebot), Erwaehnung im entsprechenden Kunden- oder Projekt-File anbieten. - Screenshot mit Kontext: Bild nach
assets/<bereich>/<slug>.<ext>, kurze.mddaneben inintern/wissen/...mit Beschreibung. Inbox-File entfernen. - Fragment: Loeschen (File weg, keine Spur). Im Autonomous-Mode nie — immer flaggen.
Frontmatter beim Neu-Anlegen: received_at aus Inbox-File als Kontext, last_reviewed: <heute>.
1.5 Capture-Check bei neuem Wissen (CLAUDE.md Rule 12)
Wenn ein File als Wiki-Wissen klassifiziert und eine neue oder substanziell erweiterte Wissens-Datei geschrieben wurde, direkt den Capture-Check ausloesen (CLAUDE Rule 12):
- Wissens-Datei — schon erledigt in 1.4.
- Memory-Eintrag noetig? — Ja wenn neuer Cluster / neues Tool / neuer Trigger, der in fresh Sessions auffindbar sein muss. Vorschlag:
🧠 Neuer Wiki-Cluster erkannt: intern/wissen/<bereich>/<topic>.md Vorschlag Memory-Eintrag (reference-type): name: <topic>-reference description: <eine Zeile> Pointer: intern/wissen/<bereich>/<topic>.md [j] anlegen [n] skip - CLAUDE.md-Routing noetig? — Ja wenn User-Formulierung zum neuen Thema vage sein koennte und nicht durch bestehende Routing-Zeile abgedeckt ist. Vorschlag:
🗺️ CLAUDE.md-Routing-Zeile? Neuer Eintrag in Routing-Tabelle: Aufgabe: "<User-Formulierung>" | Pfad: — | Aktion: Lies intern/wissen/<bereich>/<topic>.md [j] eintragen [n] skip
Nur vorschlagen, nie ohne Bestaetigung schreiben. CLAUDE.md ist Source-of-Truth, Memory ist persistent.
Dieser Schritt ist nicht im Autonomous-Mode aktiv — Memory/CLAUDE.md-Writes erfordern Review.
1.6 Research-Kandidat — Spezial-Flow
Wenn ein File wie eine Research-Idee aussieht (offene Frage, Pattern das man untersuchen koennte, Thema das tiefer erkundet gehoert), nicht einfach ins Wiki schreiben. Stattdessen vorschlagen:
🔎 inbox/2026-04-20-supplement-stack.md sieht nach Research-Kandidat aus.
Vorschlag: `intern/runs/2026-04-20-research-supplement-stack/` anlegen, dort Bericht generieren.
Anschliessend — wenn Erkenntnisse dauerhaft relevant sind — verdichtetes File in `intern/wissen/` als generated view.
[j] Research starten (Topic bestaetigen) [n] nicht jetzt, lass als Idee in ideas-backlog.md [w] direkt als Wissens-Notiz ablegen (kein Research noetig, war nur ein Fakt)
Nie ungefragt eine Research starten. Research kostet Token und Zeit — Marvin entscheidet ob’s das wert ist.
Ablage-Garantie (siehe CLAUDE Rule 11): Recherche-Outputs landen immer in intern/runs/<datum>-research-<topic>/ (Event). Erst in zweitem Schritt verdichtet in intern/wissen/... (berechnete Sicht). Niemals an dritter Stelle. Wenn Marvin “w — direkt Wissen” waehlt: trotzdem mit vollstaendigem Frontmatter + ## Related wie in conventions §2+§4 gefordert.
1.7 Korrektur-Modus
Wenn Marvin bei einem File [k] sagt oder im Batch-Report einzelne korrigiert: er sagt dir den korrekten Ort (z.B. “das gehoert nach intern/wissen/prozesse/mistral-api.md”). Du verschiebst entsprechend, ggf. neues File anlegen oder in bestehende Datei anhaengen.
Pass 2: Broken Links + Inline-Code-Pfad-Check
Ziel: Alle internen Verweise die ins Leere zeigen, finden — egal ob als Markdown-Link, Wikilink oder als Inline-Code-Pfad. Letztere sind der haeufigste Drift-Vektor (CLAUDE.md Rule 19), weil sie wie Behauptungen klingen aber niemand sie validiert.
2.1 Scan
Drei Klassen pruefen:
- Markdown-Links der Form
[text](relativer/pfad.md)oder[text](pfad.md#anker).- Pro Link: Zielpfad existiert (relativ zur Quell-Datei aufgeloest)?
- Wiki-Links der Form
[[<datei>]]oder[[../path/<datei>]].- Existiert die Datei irgendwo im Repo? Dotted/strikethrough in Obsidian wird hier nochmal explizit aufgelistet.
- Ausnahme: PII-Stub-Refs (
<slug>--kontakt) sind gewollt, ueberspringen (Schema 5.6.1).
- Inline-Code-Pfade der Form
`intern/<...>.md`/`extern/<...>.md`/`assets/<...>.md`/`_meta/<...>.md`/`inbox/<...>.md`.- Regex:
`((?:intern|extern|assets|_meta|inbox)/[^\s`<*{]+\.md)(?:#[^`\s]+)?` - Schema-Notationen mit
<...>,*,{...}werden vom Regex ausgeschlossen — das sind Beispiele, keine Behauptungen (CLAUDE.md Rule 19 Form (c)). - Quellen-Filter: Refs aus
_meta/migration-archiv/und aus alten Run-Berichten (intern/runs/<datum>-...-vollstaendigkeit/) ignorieren — historische Snapshots, keine Live-Drift.
- Regex:
- Externe Links (http/https) nicht pruefen (zu langsam, zu viele).
2.2 Report
Drei Bloecke, je eine Liste:
🔗 Pass 2 — Verweis-Drift
━━━ Markdown-Links broken (2) ━━━
❌ intern/kunden/koehnemann-design.md (Zeile 42)
[Teamleader-API](../wissen/prozesse/teamleader-api.md)
→ Ziel existiert nicht
Vorschlag: intern/wissen/prozesse/teamleader-mcp.md (best guess)
━━━ Wikilinks broken (1) ━━━
❌ intern/projekte/foo/_index.md (Zeile 12)
[[../../wissen/prozesse/dxx-pattern]]
→ keine Datei dxx-pattern.md im Repo gefunden
Vorschlag: Wikilink entfernen oder Pfad korrigieren?
━━━ Inline-Code-Pfade broken (3) ━━━
❌ intern/projekte/av-website/_index.md (Zeile 45)
`intern/firma/leistungen.md`
→ Ziel existiert nicht
Vorschlag: (a) leistungen.md als Skeleton anlegen
(b) zu Wikilink-Stub `[[../firma/leistungen]]` aendern
(c) Erwaehnung umformulieren
❌ intern/wissen/prozesse/foo.md (Zeile 12)
`intern/kunden/<kunde>/profil.md`
→ Pfad-Pattern, Kunden-Slug `<kunde>` nicht im Vault gefunden
Vorschlag: Kunden-Stub anlegen oder Pattern entkoppeln?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[j] best-guess Vorschlaege akzeptieren wo vorhanden
[e] einzeln durchgehen
[n] skip Pass 2 ganz
2.3 Fix-Optionen
Keine auto-fix. Pro Treffer im Interactive-Mode [j/n/e]:
[j]— Best-Guess akzeptieren (nur wo angeboten — z.B. Tippfehler, Rename-Drift).[n]— diesen Treffer skippen, in der naechsten Lauf-History merken.[e]— Marvin gibt den richtigen Pfad / das richtige Ziel.- Skeleton-Anlage (nur fuer Inline-Code-Pfade): Vorschlag, ein leeres File mit Frontmatter anzulegen — sinnvoll wenn der Pfad bewusst als „kommt noch” gedacht war (z.B.
intern/firma/leistungen.mdSkeleton).
Broken Verweise entstehen oft durch Rename — die richtige Aufloesung ist kontextuell. Auto-Fix ist nur bei .md-Suffix-Drift in Wikilinks ([[foo.md]] → [[foo]]) sicher genug fuer Batch-Akzeptanz, alles andere geht durch Marvin.
Pass 3: Frontmatter-Check
Ziel: Alle Daten-Dateien haben description: und last_reviewed:.
3.1 Scan
- Alle
.md-Files (ausserSKILL.md-Files — die habenname:+description:als Pflicht,last_reviewed:nicht). - Pro File: hat es YAML-Frontmatter? Hat es
description:? Hat eslast_reviewed:?
3.2 Report
⚠️ Fehlende Frontmatter-Felder:
- inbox/alte-notiz.md: kein Frontmatter
- runs/2026-04-10-.../01.md: description fehlt
Soll ich fuer jede ein Default-Frontmatter vorschlagen? [j/n]
Bei j: Pro File vorschlagen, Marvin bestaetigt einzeln oder als Batch.
Pass 4: Stale Files
Ziel: Flaggen was laenger nicht angefasst wurde — koennte veraltet sein.
4.1 Scan
- Alle Daten-Files mit
last_reviewed:parsen. - Altersgruppen: <60 Tage (ok), 60-90 Tage (warnen), >90 Tage (kritisch).
4.2 Report
Nur anzeigen, nicht fixen. Marvin muss selber entscheiden ob eine Datei inhaltlich noch stimmt.
📅 Stale Files (last_reviewed alt):
Kritisch (>90 Tage):
- intern/wissen/prozesse/alte-doku.md (letztes Review: 2026-01-05, 102 Tage)
Warnung (60-90 Tage):
- intern/kunden/xyz.md (letztes Review: 2026-02-14, 62 Tage)
Was tun: file oeffnen, Inhalt pruefen, `last_reviewed` updaten oder Inhalt aktualisieren.
Ausnahme: Files die haeufig editiert werden (_meta/config*.md, CLAUDE.md) — deren Content aendert sich oft, last_reviewed sollte aber auch dann angefasst werden. Flag sie auch.
Pass 5: DONE-Archivierung
Ziel: Erledigte Items aus der Plugin-TODO-Liste ins Wochen-Archiv verschieben.
Hinweis: Die TODO-Liste lebt im agentic-ventures Plugin (siehe claude-code-plugins-active), nicht im Vault. Dieser Pass interagiert mit der Plugin-Persistenz.
5.1 Scan
- Plugin-TODO-Liste komplett parsen.
- Alle Zeilen mit
[x]undDONE (YYYY-MM-DD)einsammeln. - Pro Item: Datum pruefen. Wenn das Item aelter als 7 Tage ist, Kandidat fuer Archivierung.
5.2 Archivierung vorschlagen
📦 DONE-Items zur Archivierung ({n} gefunden, alle aelter als 7 Tage):
- [x] DONE (2026-04-08) "Kontakt zu XY"
- [x] DONE (2026-04-10) "Rechnung an Kunde Z"
- ...
Zielort: Plugin-Wochen-Archiv (`done-2026-wXX.md`, pro Kalenderwoche eine Datei)
Alle archivieren? [j/n/einzeln]
5.3 Durchfuehren
- Zieldatei im Plugin ermitteln (
done-{YYYY}-w{KW}.mdbasierend auf DONE-Datum). - Falls Datei existiert: anhaengen. Falls nicht: neu anlegen mit Frontmatter.
- Aus aktiver Plugin-TODO-Liste entfernen.
Regel: Items die DONE sind aber mit [KORREKTUR ...]-Marker enthalten (CLAUDE.md Rule 17 — Datenintegritaet) bleiben wo sie sind. Historie darf nicht versteckt werden.
Pass 6: TBD-Tracker
Ziel: Stellen finden wo „kommt noch” steht aber niemand mehr daran denkt — (tbd), PENDING, „in Vorbereitung”, „sobald migriert” und aehnliche Marker. Keine Auto-Fixes, nur Sichtbarkeit.
6.1 Scan
Pattern, die im Body von .md-Files gesucht werden:
| Pattern | Beispiel im Wild |
|---|---|
(tbd) / (TBD) / t.b.d. | - leistungen.md (tbd) — Leistungs-Katalog |
PENDING (Inline oder als Wert) | HRB: PENDING — wird nach Eintragung gefuellt |
[PENDING — ...] | Telefon: [PENDING — feste Nummer] |
| „in Vorbereitung” / „sobald migriert” / „sobald angelegt” | Brand-Assets: assets/firma/brand-assets/ (sobald migriert) |
TODO: / FIXME: als Inline-Marker im Body | nicht als Headline |
Frontmatter-Werte gleich ?, tbd, pending, unbekannt | phone: ?, status: tbd |
Quellen-Filter: wie Pass 2 — Migration-Archiv und alte QA-Runs ignorieren. Plus: Run-Files unter intern/runs/ ueberspringen, weil dort PENDING legitim als Snapshot-Wert steht.
6.2 Report
Gruppiert nach File, mit Datum-Heuristik (wenn Marker > 60 Tage alt im File hinterlegt, eskalieren):
📌 Pass 6 — TBD-Tracker (12 Marker in 7 Files)
━━━ Frisch (<30 Tage) — vermutlich aktiv (4) ━━━
intern/firma/leistungen.md
- „TBD nach Phase 0.2: Preis-Range pro Baustein"
→ erwartet aus Phase 0.2 Website-Redesign
━━━ Mittel (30-60 Tage) — checken (5) ━━━
intern/firma/email-footer.md
- „Telefon: [PENDING — feste Geschaefts-Nummer]"
- „HRB: [PENDING — wird nach Eintragung gefuellt]"
→ wartet auf UG-Eintragung
━━━ Alt (>60 Tage) — wahrscheinlich vergessen (3) ━━━
intern/firma/positioning.md (last_reviewed 2026-04-19, 21 Tage)
- „leistungen.md (tbd)" ← geloest seit 2026-05-10, Marker entfernen?
intern/firma/web-properties.md
- „heyjulia.de — soll offline" ← Status seit Q1 2026, immer noch nicht offline?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Kein Auto-Fix. Marvin sieht die Liste, entscheidet:
- TBD aufloesen (Inhalt liefern, Marker entfernen)
- TBD abkuendigen (Erwartung war falsch, Marker entfernen, Section umformulieren)
- TBD weiter parken (Status-Note ergaenzen, naechster Check-Termin)
6.3 Verbindung zu Pass 2
TBD-Tracker findet Stellen wo eine Datei „kommt noch” — Pass 2 findet Stellen wo eine Datei „existiert nicht”. Oft ueberlappend: Inline-Code-Pfad auf nicht existierendes File ist meist auch ein TBD. Berichte zeigen Cross-Refs:
Cross-Ref: `intern/firma/leistungen.md` taucht in Pass 2 als kaputter Inline-Pfad UND in Pass 6 als TBD auf.
Empfehlung: Skeleton anlegen (loest beide Marker auf einmal).
Final: Summary-Report
Am Ende ein kompakter Ueberblick:
🧹 Maintenance-Lauf abgeschlossen
📥 Inbox: {n} Files einsortiert, {n} geflaggt, {n} geloescht
davon: {n} TODO, {n} Wissen, {n} Rechnung→assets/finanzen+extern, {n} Medical→iCloud, {n} Uni→iCloud, {n} Personal→iCloud
🔗 Verweise: {n} Markdown-Links broken, {n} Wikilinks broken, {n} Inline-Code-Pfade broken — {n} gefixt, {n} geskippt
📋 Frontmatter: {n} Files fehlt was, {n} ergaenzt
📅 Stale: {n} Files >60 Tage, {n} kritisch (>90 Tage) — nur Info, nichts gefixt
📦 Archive: {n} DONE-Items ins Plugin-Archiv verschoben
📌 TBD: {n} Marker gefunden ({n} frisch, {n} mittel, {n} alt) — nur Info
🧠 Capture: {n} Memory-Eintraege vorgeschlagen, {n} CLAUDE.md-Routing vorgeschlagen, {n} uebernommen
Offen geblieben:
- inbox/unklar-xyz.md — koenntest du bitte selber einsortieren
- {andere geflaggte Items}
Naechster empfohlener Lauf: in ~7 Tagen, oder wenn Inbox wieder voll ist.
Autonomous-Mode (Cron-Betrieb)
Der Skill laeuft nachts via Cron. Im Autonomous-Mode gelten striktere Regeln, weil Marvin nicht in der Session ist:
Was der Skill darf
- Nur Klassifikationen mit Confidence ≥ 95%. Jede Unsicherheit = File bleibt in Inbox, Eintrag in Summary.
- Aktionen ohne Review-Gate:
Rechnung (Eingang)→ PDF inassets/finanzen/<YYYY>/+ Metadata-.mdinextern/inbound/rechnungen/<YYYY>/Rechnung (Ausgang)→ PDF inassets/finanzen/<YYYY>/+ Metadata-.mdinextern/outbound/rechnungen/<YYYY>/Medical-Doc→ iCloud/medical/Uni-Bescheinigung→ iCloud/uni/Personal-Foto→ iCloud/personal/Partner-Material→assets/firma/partner-materials/(nur verschieben, kein Vault-Eintrag — braucht Context)TODOmit klarem Datum + konkreter Aktion → Plugin-TODO-ListeHash-Duplicate(identischer SHA256 zu bestehender Datei irgendwo im Vault) → loeschen
- Pass 2 + Pass 6 als Berichts-Lauf: Drift-Scan und TBD-Scan duerfen automatisch laufen, weil sie nichts schreiben (keine Auto-Fixes). Output landet als TODO in der Plugin-TODO-Liste, Marvin triagiert.
Was der Skill NICHT darf
- Keine Wissen-Writes. Wissens-Daten brauchen Review (Sprache, Cross-Refs, Memory-/Routing-Impact). Wissens-Kandidaten bleiben in Inbox mit Tag
# wiki-kandidatim Summary. - Keine Config-Aenderungen.
- Keine Deletes ausser Hash-Duplikate. Fragmente bleiben in Inbox.
- Keine Kalender-Events. TODOs aus Inbox werden in der Plugin-TODO-Liste geparkt, Marvin kann beim morgigen Tagesplan-Durchgang selbst entscheiden.
- Keine Research-Starts.
- Keine Memory-/CLAUDE.md-Updates (Capture-Check komplett defer an Interactive-Mode).
- Keine Auto-Fixes in Pass 2 / Pass 3 / Pass 6. Kein Link-Fix, kein Frontmatter-Fix, keine TBD-Aufloesung — nur Berichte.
- Pass 4 + 5 (Stale Files, DONE-Archivierung) komplett im Interactive-Mode lassen.
Output
- Summary-Log: Append-Zeile pro Lauf in
intern/runs/inbox-scan-log.md(Format:YYYY-MM-DD HH:MM | inbox=N (A einsortiert, B flagged) | drift=N (M markdown, W wikilinks, I inline) | tbd=N). - TODOs in Plugin-TODO-Liste (eine Zeile pro Befund-Cluster, unter
## System / Wiki-Maintenance):[ ] Inbox: N Files warten auf manuelle Klassifikation (davon M Wiki-Kandidat, K Unklar)— wenn Inbox nicht leer.[ ] Drift: N kaputte Verweise im Vault (M Markdown-Links, W Wikilinks, I Inline-Pfade) — Detail im naechsten Interactive-Lauf— wenn Pass 2 was findet.[ ] TBD: N Marker gefunden, davon X alt (>60 Tage) — Detail im naechsten Interactive-Lauf— wenn Pass 6 was findet, mit Schwerpunkt auf alte Marker.
- Kein Push-Layer. Marvin sieht das morgens in der TODO-Liste oder beim Tagesplan-Durchgang.
- Drift- und TBD-Detail-Bericht NICHT in der TODO-Zeile, sondern abrufbar wenn Marvin den naechsten Interactive-Lauf startet (
wiki checktriggert vollen Bericht).
Trigger & Konfig
- Cron via
schedule-Skill, nightly 22:00 lokale Zeit (Europe/Berlin, spaeter Europe/Lisbon). - Prompt:
Starte wiki-maintenance im Autonomous-Mode, nur Pass 1. - Reaktivieren/Deaktivieren:
mcp__scheduled-tasks__list_scheduled_tasks+ update mit{"enabled": false}. - Wenn Strategie-Aenderung (Fokus-Shift, Vault-Reorg): Cron prufen ob er noch passt, ggf. aussetzen — siehe Memory
reference_remote_triggers.md.
iCloud-Zugriff
- Pfad:
~/Library/Mobile Documents/com~apple~CloudDocs/Archiv/ - macOS blockiert Terminal-Zugriff auf iCloud per Default. Einmalig freigeben: Systemeinstellungen → Datenschutz & Sicherheit → Festplattenvollzugriff → Terminal.app (und ggf. Claude Code) aktivieren.
- Unterordner-Setup (einmal manuell anlegen):
medical/,uni/,personal/. Keine Buchhaltung in iCloud — Rechnungen bleiben unterassets/finanzen/<YYYY>/(gitignored), iCloud ist nur fuer private/medizinische Docs.
Regeln und Grenzen
- Niemals Kundenfiles veraendern ohne expliziten OK. Kunden-Files (
intern/kunden/<slug>.md) und Projekt-Files (intern/projekte/<projekt>/) sind besonders geschuetzt. Selbst bei Broken Links: nur melden, nie stillschweigend fixen. Verweis auf CLAUDE Rule 17 (Datenintegritaet Kundenfiles). - Niemals etwas aus
intern/runs/loeschen. Runs sind append-only Event-Log. Wenn ein Run-Ordner “komisch” aussieht: melden, nicht handeln. - Niemals
CLAUDE.md,_meta/conventions.md,_meta/config.mdinhaltlich aendern ohne Confirm. Nurlast_revieweddarf angepasst werden, und auch das nur mit Bestaetigung. - Keine Git-Operationen. Der Skill committed nicht, pusht nicht. Marvin entscheidet separat wann ein Commit gemacht wird.
- Autonomous-Mode ist strikter. Die Einschraenkungen oben gelten zusaetzlich, nicht statt.
- Privacy-First bei non-md Files. Medical/Uni/Personal werden ausschliesslich verschoben, nie in committete Dateien referenziert (keine Links, keine Dateinamen im Log). Im Summary nur Count, nicht Namen.
Related
- SKILL — befuellt die Inbox, dieser Skill arbeitet sie ab
- _context — Inbox-Zweck
- ideas-backlog — Ziel fuer geparkte Ideen
- Plugin-TODO-Liste (
agentic-venturesPlugin) — Ziel fuer TODOs, Quelle fuer Archivierung - buchhaltungs-stack — welches Tool aktiv ist (Papierkram primary)
- beleg-quellen — Beleg-Quellen + Workflow Beleg-Eingang
- conventions §14 — Wohin-mit-einem-Eintrag (Entscheidungs-Faustregel)
- CLAUDE — Rule 10 (eigene Tools vor Workaround), Rule 11 (Recherche-Ablage), Rule 12 (Wissen einfangen), Rule 13 (Rule-Zero-Check), Rule 17 (Datenintegritaet), Rule 19 (Pfad-Erwaehnungen — Pass 2 enforced das)