02 — Wikilink-Audit
Pruefung: alle [[<slug>]]- und [[<pfad>]]-Wikilinks im Body. Code-Bloecke, Template-Beispiele (<placeholder>) und Doku-Beispiele (acme, lisa-acme in _meta/schemas.md + ONBOARDING.md etc.) ausgeschlossen.
Ausgangsstand: 54 echte broken Wikilinks.
Endstand: 5 broken Wikilinks (alle Schema-konform: <slug>--kontakt Refs auf gitignored PII-Files).
Behobene Issues (49 Total)
Set A — .md-Suffix in Wikilinks (12 Treffer in 4 Files)
Obsidian-Wikilinks duerfen kein .md-Suffix tragen — der Slug ist der Filename ohne Extension. Drift seitens der Migration:
| Datei | Aenderung |
|---|---|
_meta/config-planning.md | [[config.md]] → [[config]] (2x) |
_meta/loading-strategy.md | [[conventions.md]] → [[conventions]], [[schemas.md]] → [[schemas]], [[config.md]] → [[config]], [[security.md]] → [[security]] (5x) |
_meta/migration-log.md | [[conventions.md]] → [[conventions]], [[schemas.md]] → [[schemas]] (4x) |
_meta/security.md | [[config.md]] → [[config]] (1x) |
Set B — Skill-Pfade auf <skill>/SKILL (12 Treffer in 4 Files)
Skills liegen unter intern/capabilities/skills/<skill>/SKILL.md. Wikilinks [[../skills/<skill>]] zeigen aus MCP-/Repo-Sicht auf einen Ordner ohne direktes Index-File. Korrigiert auf [[../skills/<skill>/SKILL]]:
| Datei | Skills |
|---|---|
intern/capabilities/mcps/gsuite.md | email-schreiben, email-review, inbox-sync, tages-planung, termin-koordinieren |
intern/capabilities/mcps/replicate.md | image-gen |
intern/capabilities/repos/mcp-gsuite.md | email-schreiben, email-review, inbox-sync, tages-planung, termin-koordinieren |
intern/capabilities/repos/mcp-replicate.md | image-gen |
Set C — bas-twin / becker-projekt Wikilinks (14 Treffer in 11 Files)
Beide sind Ordner unter intern/projekte/, kein direkt aufloesbares File. [[bas-twin]] als Slug-Wikilink ist broken.
[[bas-twin]]→[[../projekte/bas-twin/_index]](das_index.mdexistiert)[[becker-projekt]]→[[../projekte/becker-projekt/README]](kein_index.md, README.md uebernimmt die Rolle uebergangsweise; Migration-Plan: Repo wandert nachbas-twin/projekt/)
| Datei | Aenderung |
|---|---|
intern/kunden/becker.md | [[bas-twin]] x2, [[becker-projekt]] x2 → relative Pfade |
intern/menschen/alex-gross.md | [[bas-twin]], [[becker-projekt]] |
intern/menschen/dana-becker.md | [[bas-twin]] |
intern/menschen/marvin-kuehlmann.md | [[bas-twin]], [[becker-projekt]] |
intern/menschen/niklas-becker.md | [[bas-twin]] |
intern/menschen/ralf-schmid.md | [[bas-twin]] |
intern/menschen/roland-becker.md | [[bas-twin]] |
intern/menschen/samira-becker.md | [[bas-twin]] |
intern/menschen/sven-becker.md | [[bas-twin]] |
Set D — Pfad-/File-Korrekturen (5 Treffer)
| Datei | Aenderung | Grund |
|---|---|---|
_meta/security.md | [[../intern/wissen/entscheidungen/eu-ai-act]] → [[...eu-ai-act-pflichten]] | Tatsaechlicher Filename hat Suffix |
_meta/security.md | „(sobald migriert)“-Hinweise entfernt | Files existieren bereits |
intern/finanzen/buchhaltungs-stack.md | [[../firma/recht]] → [[../firma/recht/_context]] | recht/ ist Ordner mit _context.md, kein File |
intern/finanzen/beleg-quellen.md | [[../wissen/templates/rechnung-template]] → Hinweis auf Schema-Doku | Template existiert nicht (templates/-Ordner nur mit _index.md) |
intern/ideen/ideas-backlog.md | [[../wissen/entscheidungen/_context]] → [[..._index]] | entscheidungen/ hat _index.md, kein _context.md |
Set E — Folder-Wikilinks mit Trailing-Slash (5 Treffer in 2 Files)
[[../kunden/]] zeigt auf einen Ordner — Obsidian loest das nicht auf. Auf _context.md/_index.md umgestellt:
| Datei | Aenderung |
|---|---|
intern/firma/_context.md | [[../capabilities/mcps/]] → [[../capabilities/mcps/_index]], [[../kunden/]] → [[../kunden/_context]], [[../finanzen/]] → [[../finanzen/_context]], [[../capabilities/skills/]] → [[../capabilities/skills/_index]] |
extern/_context.md | [[../intern/kunden/]] → [[../intern/kunden/_context]], [[../intern/projekte/]] → [[../intern/projekte/_context]] |
Set F — Vault-Root [[../_context]] (3 Treffer)
Es gibt kein _context.md im Vault-Root — der oberste Knoten ist CLAUDE.md (analog intern/_context.md zeigt auf [[../CLAUDE]]):
| Datei | Aenderung |
|---|---|
extern/_context.md | parent: "[[../_context]]" → parent: "[[../CLAUDE]]" |
assets/_context.md | parent: "[[../_context]]" → parent: "[[../CLAUDE]]" |
inbox/_context.md | parent: "[[../_context]]" → parent: "[[../CLAUDE]]" |
Set G — Sonstiges
intern/projekte/bas-twin/_index.md:[[angebot/]](Folder-Wikilink) → Beschreibung als plain Text (angebot/-Ordner enthaelt nur_drafts/+archive/, kein Index-File — Aufloesung haengt an Status des Angebots)intern/capabilities/skills/wiki-maintenance/SKILL.md:[[datei]](generisches Beispiel) →[[<datei>]]als klare Template-Notationintern/finanzen/buchhaltungs-stack.md:[[../firma/recht]]→[[../firma/recht/_context]]
Verbleibende broken Wikilinks (5)
Alle gewollt, gemaess Schema 5.6.1 PII-Separation:
| Datei | Wikilink | Status |
|---|---|---|
intern/menschen/alex-gross.md | contact_ref: "[[alex-gross--kontakt]]" | gitignored, nicht angelegt |
intern/menschen/markus-erlei.md | contact_ref: "[[markus-erlei--kontakt]]" | gitignored, nicht angelegt |
intern/menschen/paul-radau.md | contact_ref: "[[paul-radau--kontakt]]" | gitignored, nicht angelegt |
intern/menschen/ralf-schmid.md | contact_ref: "[[ralf-schmid--kontakt]]" | gitignored, nicht angelegt |
intern/menschen/thorsten-beer.md | contact_ref: "[[thorsten-beer--kontakt]]" | gitignored, nicht angelegt |
Diese Refs zeigen wo das PII-File liegen wuerde — gerendert in Obsidian mit Strikethrough/dotted-line, was korrekt anzeigt dass das File noch nicht angelegt ist. Wenn ein PII-File benoetigt wird (Tel-Nummer, Email, Adresse), entsteht es lokal und wird vom .gitignore-Pattern *--kontakt.md ausgeschlossen.
Orphan Files (15)
Files auf die NIEMAND verlinkt — gepruefte Liste:
| Datei | Beurteilung |
|---|---|
AGENTS.md | Symlink auf CLAUDE.md, Routing-Default fuer Cursor/Codex |
CLAUDE.md | Top-Level-Operating-Prompt — wird per @import-Mechanismus geladen |
CONTEXT.md | Firmenkontext, Top-Level — soll von Routing-Tabellen erreicht werden, nicht von Wikilinks |
ONBOARDING.md | Mensch-Einstieg, Top-Level |
README.md | GitHub/Filesystem-Default |
_meta/config-planning.md | wird von Skills via Pfad geladen, nicht via Wikilink |
_meta/loading-strategy.md | wird beschrieben in CLAUDE.md, nicht via Wikilink |
_meta/next-session-qa.md | enthalten Briefing fuer den naechsten Session-Start (von Marvin per Pfad geoeffnet) |
assets/firma/email-signatures/CONTEXT.md | Folder-Doku ohne strikten Backlink — akzeptabel |
assets/firma/email-signatures/template.md | Email-Signatur-Template |
assets/firma/partner-materials/2026-04-22-claude-dsgvo-hosting-summary.md | Partner-Material, durch Datei-Browsing erreichbar |
edi-certificates.md | 0-byte File, vermutlich Dreck — siehe 05-final-report |
intern/capabilities/skills/image-gen/references/models.md | Skill-Reference-Subfolder, vom Skill aus erreicht |
intern/capabilities/skills/image-gen/references/prompt-recipes.md | gleicher Subfolder |
intern/firma/brand.md | wird von positioning + image-gen Skill verlinkt — Linker hat es nicht erkannt (False Positive: enthaelt Wikilinks AUS, aber andere Files verlinken via Markdown-Pfad) |
intern/firma/leistung-claude-dsgvo-hosting.md | wird von positioning verlinkt (False Positive aehnlich) |
Echte Empfehlung: nichts loeschen — alle haben legitimen Zweck.