Regelwerk, Agenten, Skills und Werkzeuge veröffentlichen
Erster Stand des öffentlichen Ausschnitts aus dem Vault. Die .gitignore arbeitet als Positivliste: ausgeschlossen ist alles, eingeschlossen nur, was ausdrücklich wieder aufgenommen wird. Notizen, Projekte, Finanzen, das Sitzungsgedächtnis und settings.local.json bleiben damit außen vor. Der Kundenname in AI/Regelwerk/seo.md ist durch eine neutrale Bezeichnung ersetzt; die Regeln selbst sind unverändert. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
commit
2c9a4475fc
97 files changed
+14627
No files matched your search
@@ -0,0 +1,95 @@
|
||||
---
|
||||
type: resource
|
||||
title: "Navigator-Werkzeuge"
|
||||
status: reference
|
||||
summary: "Wie du suchst, wenn die MOCs nicht reichen: Grep, linkcheck, was vom alten Navigator-Toolkit noch gilt, Obsidian-CLI und Obsidian-Skills, Links schreiben und Dateien verschieben."
|
||||
tags: [regelwerk, navigation, werkzeuge]
|
||||
created: 2026-08-30
|
||||
updated: 2026-09-13
|
||||
---
|
||||
|
||||
# Navigator-Werkzeuge
|
||||
|
||||
Laden, wenn die MOC-Kaskade aus dem [[CLAUDE|Stamm]] nicht reicht, wenn du Links prüfst oder Obsidian-Werkzeuge nutzen willst. Für die alltägliche Navigation über Wissenslandkarte und Seeds brauchst du diese Datei nicht.
|
||||
|
||||
Der Aufruf von Python auf dieser Maschine (`python` statt `python3`, `PYTHONIOENCODING=utf-8`) steht in [[AI/Regelwerk/windows-shell|windows-shell.md]].
|
||||
|
||||
## Suchen, wenn die MOCs nicht reichen
|
||||
|
||||
**Gezielt mit Grep suchen**, auf den Themenordner eingegrenzt, wenn du ihn kennst. Das ist schneller und aktueller als jeder Index. Gemessen am 2026-09-13 über 61 Sitzungen: Die Wissenslandkarte wurde in 7 geöffnet, gelesen wird fast alles per Grep und Bash.
|
||||
|
||||
Zwei Grenzen der Suche:
|
||||
|
||||
- **Pfade in Backticks sind keine Links.** Grep findet sie, Backlinks und Linkcheck sehen sie nicht.
|
||||
- **Inline-Tags wie `#review`** findest du mit `rg -P '(^|\s)#review(?![-\w])'`. Ein einfaches `\b` am Ende trifft auch `#review-done`. Das Frontmatter-Feld `tags` allein reicht nicht, im IT Workspace stehen die meisten Tags im Text.
|
||||
|
||||
## Tote Links: linkcheck
|
||||
|
||||
```bash
|
||||
PYTHONIOENCODING=utf-8 python .vault-tools/linkcheck/linkcheck.py --vault .
|
||||
python .vault-tools/linkcheck/faelle.py
|
||||
```
|
||||
|
||||
Der erste Befehl meldet die echten toten Wikilinks, weil er Codeblöcke ausnimmt. Der zweite fährt die Angriffsfälle gegen die Codeblock-Erkennung. Entwurf, Herkunft je Regel und benannte Lücken: `.vault-tools/linkcheck/ENTWURF-codeblock-erkennung.md`.
|
||||
|
||||
## Sitzungs-Hooks
|
||||
|
||||
Unter `.vault-tools/session-hooks/` liegen zwei Hooks, eingetragen in `.claude/settings.json`:
|
||||
|
||||
- **`sitzungsstart.py`** (SessionStart) gibt beim Start nur Zahlen in den Kontext: ob die Tagesnotiz existiert, offene Inbox-Notizen, Notizen mit `#needs-review`, `#review` ohne `#review-done`, Regelwerk-Dateien auf `pending-review` und die Sitzungsdateien von heute, damit eine Namenskollision auffällt.
|
||||
- **`regelwerk_nach_edit.py`** (PostToolUse) startet `regelwerk_check.py` nach jedem Edit oder Write an `CLAUDE.md`, `AI/Regelwerk/`, `.claude/agents/` oder `.claude/skills/` und meldet Befunde zurück. Solange eine Regelwerk-Datei auf `pending-review` steht, meldet er genau diesen Befund jedes Mal mit.
|
||||
|
||||
Beide nehmen die Vault-Wurzel aus ihrem eigenen Pfad, nicht aus `cwd`, weil `cwd` einem `cd` in einen Projektordner folgt. Regressionstreiber: `faelle_sitzungsstart.py` und `faelle_nach_edit.py`. Entwurf und benannte Lücken: `.vault-tools/session-hooks/ENTWURF.md`. Ein Fangnetz, kein Nachweis.
|
||||
|
||||
## Das alte Navigator-Toolkit — nicht mehr die Rückfallebene
|
||||
|
||||
Unter `.vault-tools/obsidian-vault-navigator/` liegen `build_index.py`, `vault_query.py` und `vault_doctor.py` aus dem Cowork-Skill „obsidian-vault-navigator". **Seit dem 2026-09-13 nutzt du sie nicht mehr für Antworten**, und `_index/` wird nicht mehr gepflegt. Die Gründe, gemessen am selben Tag:
|
||||
|
||||
- Der Index war neun Tage alt und kannte 253 von 1006 Notizen nicht, darunter sechs Regelwerk-Dateien. Nichts baut ihn automatisch neu.
|
||||
- `vault_query --tag` liest nur Frontmatter-Tags. `--tag review` fand 1 Notiz, inline tragen den Tag 242.
|
||||
- `vault_doctor.py` meldet tote Links auch aus Codeblöcken (92 gemeldet, 0 echte am 2026-09-03). `KNOWN_TYPES` kennt 3 der 22 Typen aus [[AI/Regelwerk/frontmatter|frontmatter.md]], und `extract_headings()` hält Bash-Kommentare für Überschriften.
|
||||
|
||||
Das Toolkit ist fremd und schreibgeschützt. Deshalb wird es nicht gepatcht, sondern bleibt als Bestand liegen.
|
||||
|
||||
## Obsidian-Werkzeuge
|
||||
|
||||
**Obsidian CLI.** Obsidian 1.13.7 bringt sie als `C:\Program Files\Obsidian\Obsidian.com` mit. Am 2026-09-13 war sie abgeschaltet („Command line interface is not enabled") und nicht im PATH. Einschalten kann nur Pascal, unter Einstellungen → Allgemein → Erweitert. Ist sie an, liefert sie `backlinks`, `tags` und `search` aus Obsidians eigenem, immer aktuellem Graphen, inklusive Inline-Tags. Sie braucht eine laufende App, für geplante Läufe taugt sie deshalb nicht. Vor dem Einsatz prüfst du mit `"C:\Program Files\Obsidian\Obsidian.com" version`, ob sie antwortet.
|
||||
|
||||
**Plugin `obsidian-skills`** (kepano):
|
||||
|
||||
- `obsidian-bases` nimmst du, wenn du eine `.base`-Datei schreibst oder änderst.
|
||||
- `obsidian-markdown`: Für Frontmatter gilt [[AI/Regelwerk/frontmatter|frontmatter.md]] vor dem Skill.
|
||||
- `obsidian-cli` funktioniert nur bei eingeschalteter CLI, siehe oben.
|
||||
- `defuddle` ist auf dieser Maschine nicht installiert. Webseiten holst du deshalb mit WebFetch.
|
||||
|
||||
**Account-Skill `obsidian-vault-navigator` gilt hier nicht**, auch wenn seine Beschreibung „immer" sagt. Er widerspricht dem Vault an mehreren Stellen: Index zuerst statt Wissenslandkarte, `python3`, andere `status`-Werte, `vault_doctor` für tote Links, und er will eine eigene `CLAUDE.md` in die Wurzel kopieren. Abwählen kann ihn nur Pascal.
|
||||
|
||||
**Bases** (`Projekte.base`, `Review-Queue.base`) sind Pascals Sicht. Du liest nur das YAML der `.base`-Datei, nicht das ausgewertete Ergebnis. Als Navigation für dich ersetzen sie also keine MOC. Eine Gruppierung per Formel statt per Feld bleibt verworfen (2026-08-03): Sie ist nicht dokumentiert und kann das Rendern der ganzen Datei verhindern.
|
||||
|
||||
## Links schreiben und Dateien verschieben
|
||||
|
||||
- **Wikilinks mit vollem Vault-Pfad:** `[[AI/Regelwerk/navigation|navigation.md]]`. In Tabellenzellen schreibst du den Alias-Trenner als `\|`.
|
||||
- **Nicht-Markdown-Anhänge** verlinkst du mit Dateiendung (`[[…/audit-data.json]]`) oder nennst sie als Pfad in Backticks. Ein Wikilink ohne Endung löst nur auf `.md` auf.
|
||||
- **Kein Wikilink ins Harness-Gedächtnis.** Obsidian sieht den Ordner nicht, der Link wäre tot. Nenne den Namen in Backticks.
|
||||
- **Wenn du eine Datei verschiebst oder umbenennst, zieht Obsidian die Links nicht nach.** Das tut es nur bei Verschiebungen in der App, und auch dort nur nach Rückfrage, denn `alwaysUpdateLinks` bleibt bewusst aus: Sonst schreibt Obsidian ungefragt in Dateien, die in den Git-Repos unter Code Projekte liegen. Vor dem Verschieben suchst du per Grep nach eingehenden Wikilinks, nach Backtick-Pfaden im Vault und nach Pfaden im Harness-Gedächtnis, und ziehst sie mit.
|
||||
- **`userIgnoreFilters` in `.obsidian/app.json`:** Ein Eintrag ohne umschließende Schrägstriche gilt nur ab der Vault-Wurzel (`_index/`). Für einen Ordner in beliebiger Tiefe schreibst du einen regulären Ausdruck zwischen Schrägstriche, zum Beispiel `/(^|\/)node_modules\//`. Belegt am Code von Obsidian 1.13.7 (`updateUserIgnoreFilters`).
|
||||
|
||||
## Frontmatter im IT Workspace
|
||||
|
||||
Ein erheblicher Teil der Artikel im IT Workspace hat kein YAML-Frontmatter, sondern nur die alte Tag-Konvention (`#Nextcloud`, `#review`). Die Seed-MOCs funktionieren trotzdem, weil Titel und Zusammenfassung aus Überschrift und erstem Absatz abgeleitet werden.
|
||||
|
||||
Den genauen Anteil misst du, statt ihn hier zu pflegen:
|
||||
|
||||
```bash
|
||||
find "IT Workspace" -name '*.md' -not -name '_MOC-*' -exec sh -c 'head -c 3 "$1" | grep -q -- "---" || echo "$1"' _ {} \; | wc -l
|
||||
```
|
||||
|
||||
Frontmatter flächendeckend nachrüsten wäre ein eigener, größerer Schritt — nur auf Zuruf.
|
||||
|
||||
## Referenzen
|
||||
|
||||
- [[CLAUDE|↑ Claude.md (Stamm)]]
|
||||
- [[Wissenslandkarte|Wissenslandkarte]]
|
||||
- [[AI/Regelwerk/frontmatter|frontmatter.md]]: Schema und Tags
|
||||
- [[AI/Regelwerk/projekte|projekte.md]]: Projekt-Tag und Projekt-Einstieg
|
||||
- [[AI/Regelwerk/windows-shell|windows-shell.md]]: Python, Kodierung, Shells
|
||||
Reference in new issue
Block a user