brain/CLAUDE.md

210 lines
12 KiB
Markdown

# Vault Context
Dieses Vault ist das Zweite Gehirn von Christian Kauer.
## Über mich
Christian Kauer, IT-Leiter bei der KRAH Elektrotechnischen Fabrik GmbH & Co. KG, wohnhaft in Buchhagen bei Drolshagen, NRW. Studierter Informatiker mit über 20 Jahren Berufserfahrung — erst als Softwareentwickler und Projektmanager bei IT-Dienstleistern, seit ca. 12 Jahren bei KRAH, wo er weltweit für die gesamte IT verantwortlich ist. Seine Abteilung heißt intern KIT (KRAH-IT). Ausführliches Profil in 00 Kontext/Über mich.md.
## Vault-Struktur
- 00 Kontext/: Persönliches Kontext-Profil (Über mich.md, ICP.md, Angebot.md, Schreibstil.md, Branding.md). Zentrale Referenz für alle inhaltlichen Aufgaben. Lies diese Dateien wenn du Content erstellst, Mails schreibst oder Angebote formulierst.
- 01 Inbox/: Schnelle Gedanken, Brain Dumps, unverarbeitete Notizen. Alles was noch keinen festen Platz hat landet hier.
- 02 Projekte/: Aktive Projekte mit konkretem Ziel und Enddatum. Projekte starten als einzelne .md Datei. Nur bei komplexen Projekten mit mehreren Dateien wird ein Unterordner erstellt.
- 03 Bereiche/: Laufende Verantwortungsbereiche ohne Enddatum. Jeder Bereich ist ein eigener Ordner, weil Bereiche über die Zeit wachsen und mehrere Dateien sammeln.
- 04 Ressourcen/: Referenzmaterial, Wissen, gesammelte Informationen. Jedes Thema ist ein eigener Ordner.
- 05 Daily Notes/: Tägliches Logbuch. Was an einem Tag passiert ist, welche Entscheidungen getroffen wurden, was offen ist. Gibt Claude die Kontinuität zwischen Sessions.
- 06 Archiv/: Abgeschlossene Projekte und inaktive Bereiche. Aus dem aktiven Blickfeld, aber durchsuchbar.
- 07 Anhänge/: Bilder, PDFs, Medien. Obsidian legt hier automatisch alle eingefügten Dateien ab.
## Regeln für dieses Vault
- Nutze [[Wikilinks]] für Verknüpfungen zwischen Notizen
- Neue Notizen ohne klaren Platz kommen in 01 Inbox/
- Halte Notizen atomar: eine Idee pro Notiz wo möglich. Ausnahme: Daily Notes fassen einen ganzen Tag zusammen.
- Daily Notes benennen im Format: YYYY-MM-DD.md (z.B. 2026-04-11.md). So sortieren sie automatisch chronologisch.
- Nutze YAML Frontmatter: tags, status (aktiv/abgeschlossen/pausiert), date
- Dateinamen in normaler Schreibweise mit Leerzeichen und Großbuchstaben: Beschreibender Name.md
- Neue Projekte bekommen eine einzelne .md Datei direkt unter 02 Projekte/. Einen Unterordner nur anlegen wenn das Projekt mehrere Dateien braucht.
- Bereiche und Ressourcen sind immer Ordner, weil sie über die Zeit wachsen
- Abgeschlossene Projekte nach 06 Archiv/ verschieben. Nur auf Anweisung des Nutzers, nicht eigenständig.
- Wenn du Dateien erstellst oder verschiebst, erkläre kurz warum
- Bevor du Dateien löschst oder überschreibst, frag nach
- Wenn der Nutzer sagt "merk dir das" oder "speicher das", speichere es dort wo es thematisch hingehört. Schreibregeln nach 00 Kontext/Schreibstil.md, Projekt-Infos in die jeweilige Projekt-Datei, technische Erkenntnisse in 04 Ressourcen/, Vault-Regeln in diese CLAUDE.md. Im Zweifel kurz fragen wo es hin soll.
- Primärsprache im Vault: Deutsch. Englisch wird ebenfalls genutzt, besonders bei technischen Themen und internationaler Kommunikation.
## Paperless / Dokumentenarchiv
Wenn der Nutzer „Paperless", „mein Dokumentenarchiv", „mein Archiv", „meine Belege" o.ä. erwähnt, ist die Paperless-ngx-Instanz unter `https://paper.straso.com/` gemeint.
**Zugriff:** Primär über **MCP** (`mcp__paperless__*`-Tools). Container läuft lokal auf `http://localhost:5000/mcp`. Setup-Doku: [[03 Bereiche/Heimnetz/Server/Paperless.md|Paperless.md]].
**Wichtige Tools:**
- `paperless_documents_get` — Einzeldokument (inkl. OCR-`content`)
- `paperless_documents_list` / Search-Tools — Listen, Filter, Volltextsuche
- `paperless_correspondents_*`, `paperless_document_types_*`, `paperless_tags_*` — Metadaten
- `paperless_documents_update` / Bulk-Ops — Editieren (Dry-Run default, destruktive Ops brauchen `confirm=true`)
**Fallback (nur wenn MCP-Container down):** REST mit Token-Auth aus `scripts/.env`:
```bash
source scripts/.env
curl -sS -H "Authorization: Token $PAPERLESS_TOKEN" "$PAPERLESS_URL/api/documents/<ID>/"
```
**Hinweise:**
- Bei Bezug auf Dokumente: ID, Titel und Datum nennen.
- **Verlinkung — sowohl in Notizen als auch im Chat — immer als externer Markdown-Link:** `[Paperless <ID>](https://paper.straso.com/documents/<ID>/details)`. Wikilinks `[[Paperless <ID>]]` nicht mehr verwenden (öffnen in Obsidian leere Datei statt Browser).
- Token niemals in Notizen oder Chat ausgeben
- Bei Fallback auf curl: JSON immer mit `encoding='utf-8'` lesen (Windows-Default cp1252 scheitert)
## Session-Routinen
### Bei Session-Start
1. Prüfe 01 Inbox/ auf neue Notizen, zeige was drin liegt, und biete an die Einträge in die passenden Ordner einzusortieren
### Kontext bei Bedarf
Wenn der Nutzer fragt "Was ist gerade aktuell?", "Wo war ich stehen geblieben?" oder ähnliches: Lies die letzten 2-3 Daily Notes in 05 Daily Notes/ und die aktiven Projekt-Dateien in 02 Projekte/ um ein Briefing zu geben.
### Bei Session-Ende
Wenn der Nutzer die Session beendet oder du merkst dass ein natürliches Ende erreicht ist, biete an:
1. Einen Daily Note Eintrag in 05 Daily Notes/ zu erstellen mit einer Zusammenfassung des Tages
2. Neue Erkenntnisse als Notizen zu speichern
3. Die Inbox aufzuräumen falls nötig
## Personen
Personennotizen liegen in `00 Kontext/Personen/`. Jede Person hat eine eigene Datei mit Beziehung, Kategorie und Notizen. Kategorien: Familie, Mitarbeiter, Kollege, Partner, Sonstige.
**Namensauflösung:** Wenn ein Name in einer Notiz oder Anfrage auftaucht, schau zuerst in `00 Kontext/Personen/` nach. Bekannte Kurzformen und Spitznamen:
- "Vera" → [[00 Kontext/Personen/Vera Kauer]] (Ehefrau)
- "Jussi" / "Justus" → [[00 Kontext/Personen/Justus Kauer]] (Sohn)
- "Vicky" / "Victoria" → [[00 Kontext/Personen/Victoria Kauer]] (Tochter)
- "Hetti" → [[00 Kontext/Personen/Hedwig Theile-Ochel]] (Schwiegermutter)
- "Philip" → [[00 Kontext/Personen/Philip Losch]] (Mitarbeiter, IT-Administrator)
- "Christopher" → [[00 Kontext/Personen/Christopher Klein]] (Mitarbeiter, IT-Administrator)
- "Eray" → [[00 Kontext/Personen/Eray Kara]] (Mitarbeiter, IT-Administrator)
- "Florian" → [[00 Kontext/Personen/Florian Fiala]] (Mitarbeiter, SAP-Consultant)
- "Josiah" → [[00 Kontext/Personen/Josiah Stieve]] (Mitarbeiter, Auszubildender)
- "Steffen A." / "Steffen Ackerschott" → [[00 Kontext/Personen/Steffen Ackerschott]] (Mitarbeiter, SAP-Consultant)
- "Steffen B." / "Steffen Brauer" → [[00 Kontext/Personen/Steffen Brauer]] (Mitarbeiter, IT-Administrator)
- "Steffen" alleine → nachfragen welcher Steffen gemeint ist
- "Christian H." / "Christian Hermann" → [[00 Kontext/Personen/Christian Hermann]] (Vorgesetzter, Freund, Kegelbruder)
**Regel:** Wenn ein Name vorkommt und nicht eindeutig einer Person zuzuordnen ist, kurz nachfragen. Beim Anlegen neuer Aufgaben für Mitarbeiter immer die Beziehung (Vorgesetzter = Christian) im Kontext berücksichtigen.
## Offene Aufgaben
- [ ] Schreibstil-Analyse: Christians Texte analysieren und 00 Kontext/Schreibstil.md verfeinern
## Meeting-Notizen
### Anlegen einer Meeting-Notiz
Wenn der Nutzer eine Meeting-Notiz anlegen möchte:
1. Kalender-Events per MCP abrufen (nächste 7 Tage)
2. Event auswählen lassen oder aus dem Kontext ableiten
3. Teilnehmer-Matching durchführen (siehe unten)
4. Notiz erstellen in `03 Bereiche/Meetings/YYYY-MM-DD Titel.md`
### Teilnehmer-Matching (Priorität)
1. **E-Mail-Match:** Suche in `00 Kontext/Personen/` nach `email` im Frontmatter
2. **Name-Fallback:** Vergleiche Display Name mit `vorname` + `nachname`
3. **Neu anlegen:** Kein Match → neue Personen-Notiz mit `status: ungeprüft`, Firma aus E-Mail-Domain ableiten
### Firmen-Zuordnung
- Domain aus E-Mail extrahieren (z.B. `landata.de` aus `max@landata.de`)
- Suche in `00 Kontext/Firmen/` nach `domain` im Frontmatter
- Match → Wikilink zur Firmen-Notiz, kein Match → Domain als Plain Text
### Serie-Erkennung
- Wiederkehrendes Meeting → Titel gegen `03 Bereiche/Jour Fixe/*/` matchen
- Serie erkannt → Topics aus `Agenda.md` (📌 Dauerläufer + 🆕 Neu) als Agenda übernehmen. ⏸️ Postponed wird NICHT übernommen.
- Keine Serie → O365-Termin-Body als Agenda
- Beides leer → leere Agenda-Sektion
### Agenda-Übernahme bei Jour Fixe
Topics aus der Agenda.md sind als **H3-Überschriften** (`###`) mit Freitext/Links darunter strukturiert. Statusblöcke sind **H2-Überschriften** (`##`). Diese Struktur **1:1 in die Meeting-Notiz übernehmen** — nicht als Bullet-Liste umformatieren.
**Agenda-Blöcke:**
- `## 📌 Dauerläufer` — alle laufenden Topics
- `## 🆕 Neu` — neue Topics (mit 🆕 im Titel zur Kennzeichnung)
- `## ⏸️ Postponed` — leerer Block (zum Verschieben während des Meetings)
Jede Topic-Überschrift in der Meeting-Notiz enthält einen `📋`-Wikilink zur Agenda (z.B. `### Topic [[Agenda#Topic|📋]]`), damit man im Meeting direkt zur vollen Historie springen kann. Neue Topics (🆕) haben noch keine Historie und brauchen keinen Link.
**Richtig** (H2 pro Block, H3 pro Topic mit Agenda-Link):
```
## 📌 Dauerläufer
### VPN A41 Termin Losch [[03 Bereiche/Jour Fixe/IT Team/Agenda#VPN A41 Termin Losch|📋]]
Formular an A41 zurückgeschickt
### AM-Projekt in Plane für TISAX [[03 Bereiche/Jour Fixe/IT Team/Agenda#AM-Projekt in Plane für TISAX|📋]]
Für das TISAX Audit wird ein Projektplan benötigt...
## 🆕 Neu
### 🆕 HKR WLAN erneuern
Umstellung auf Unify abstimmen
## ⏸️ Postponed
```
**Falsch** (Bullet-Liste):
```
## Agenda
- **AM-Projekt in Plane für TISAX** — Für das TISAX Audit...
- **HKR WLAN erneuern** — Umstellung auf Unify
```
So kann der Nutzer während des Meetings direkt unter jeder H3-Überschrift Notizen ergänzen.
### Meeting-Ergebnisse zurückführen — Historie fortschreiben
Nach jedem Jour-Fixe-Meeting werden die Ergebnisse aus der Meeting-Notiz in die Agenda.md zurückgeführt. Ziel: Jedes Topic in der Agenda trägt seine eigene **Historie mit Datumseinträgen**, sodass der Verlauf über mehrere Meetings sichtbar bleibt.
**Ablauf:**
1. **Historie am Topic fortschreiben:** Unter jeder H3-Überschrift in der Agenda.md einen datierten Eintrag mit dem Ergebnis aus dem Meeting ergänzen. Neuester Eintrag oben. Format: `**YYYY-MM-DD:** Kurzfassung` mit Verweis auf die Meeting-Notiz.
2. **Neue Topics → Dauerläufer:** Topics aus `## 🆕 Neu` nach `## 📌 Dauerläufer` verschieben (🆕 Emoji aus Titel entfernen).
3. **Erledigte Topics ins Archiv:** Topics die abgeschlossen sind → nach `Archiv.md` verschieben (inkl. der gesammelten Historie). Format dort: `## YYYY-MM-DD — Topic-Titel ✅`. Dann aus der Agenda.md entfernen.
4. **Postponed Topics:** Topics die in der Meeting-Notiz unter `## ⏸️ Postponed` stehen → nach `## ⏸️ Postponed` in der Agenda.md übertragen.
5. **Offene Topics bleiben:** Topics die noch laufen, bleiben in der Agenda.md unter `## 📌 Dauerläufer` mit ihrer wachsenden Historie stehen.
6. **Nachfragen:** Im Zweifel den Nutzer fragen, welche Topics erledigt sind und welche offen bleiben.
**Beispiel Agenda.md mit Historie:**
```
### AM-Projekt in Plane für TISAX
Für das TISAX Audit wird ein Projektplan in Plane benötigt.
**2026-04-20:** Grobe Planung steht, vergangene Arbeitspakete erledigt markiert. → [[03 Bereiche/Meetings/2026-04-20 Jour Fixe IT Team]]
**2026-04-13:** Aufgabe verteilt, Christopher übernimmt. → [[03 Bereiche/Meetings/2026-04-13 Jour Fixe IT Team]]
### HKR WLAN erneuern
Umstellung auf Unify abstimmen
**2026-04-13:** Angebot von Unify liegt vor, wird nächste Woche bewertet. → [[03 Bereiche/Meetings/2026-04-13 Jour Fixe IT Team]]
```
**Beispiel Archiv.md nach Abschluss:**
```
## 2026-04-20 — HKR WLAN erneuern ✅
Umstellung auf Unify abgestimmt und beauftragt. → [[03 Bereiche/Meetings/2026-04-20 Jour Fixe IT Team]]
**2026-04-13:** Angebot von Unify liegt vor, wird nächste Woche bewertet.
**2026-04-06:** Erstmals besprochen, Umstellung auf Unify als Ziel definiert.
```
### Meeting-Notiz Format
- **Dateiname:** `YYYY-MM-DD Titel.md`
- **Ort:** `03 Bereiche/Meetings/`
- **Frontmatter:** tags, date, start, end, serie, projekt, teilnehmer, status, o365_id
- **Sektionen:** Teilnehmer, Agenda, Notizen, Entscheidungen, Aufgaben