Snorkeling Duck · Tauchgang Modul 1 von 4 · Kursübersicht
Tauchgang 01 · Fortgeschritten

Das Fundament.

Drei Kontext-Schichten — global, Projekt, Vault — die Claude Code bei jedem Start automatisch liest. Kein „ChatGPT im Terminal", sondern ein LLM mit Gedächtnis.

Dauer: 45–60 Min Niveau: Fortgeschritten Voraussetzung: Terminal, npm, Markdown · Claude Pro+

Tauchgang 01 · Willkommen · 25 Sek

Modul-Trailer Tauchgang 01 · 46 Sek · mit Voiceover
Video: Der Modul-Trailer zu diesem Tauchgang ist Teil der Online-Lektion. Schau ihn dir an unter sebastian-sperber.de/tauchgang/lektion-01.
Zur Kursübersicht

Für wen ist dieser Text?

Für dich, wenn du schon mal im Terminal gearbeitet hast, Markdown kennst und npm, git oder brew nicht fremd sind. Du brauchst keine Grundlagen mehr — aber etwas Kontext, warum die Teile so zusammengebaut werden, hilft.

Ergebnis: Drei funktionierende Kontext-Ebenen (global, Projekt, Vault), die Claude Code bei jedem Start automatisch liest.

Das mentale Modell

Claude Code ist nicht „ChatGPT im Terminal". Es ist ein LLM, das im Arbeitsverzeichnis lesen, schreiben und Befehle ausführen darf — mit Sicherheitsnetzen. Damit das sinnvoll wird, brauchst du Kontext in drei Schichten, die alle automatisch geladen werden:

  1. Global~/.claude/CLAUDE.md. Gilt überall, in jeder Session. Hier stehen Person, Sprache, harte Regeln, Anti-Präferenzen.
  2. Projekt<repo>/CLAUDE.md. Stack, Build-Befehle, projektspezifische Hard Rules, Kundenkontext.
  3. Vault<obsidian-root>/CLAUDE.md. Geschäftsmodell, Taxonomie, Workflow-Konventionen.

Alle drei werden beim Start einer Session als System-Prompt mitgegeben. Das ist der Grund, warum Claude Code aus dem Stand deinen Preis, deine Tonalität und deinen Stack kennt — ohne dass du es 100-mal im Chat wiederholst.

Darauf setzt alles Weitere auf (Skills, Slash-Commands, Subagents — das kommt in Tauchgang 02).

Lektion 1.1 — Installation und globale Konfiguration

Voraussetzungen prüfen

node -v    # >= 18 erwartet; v20 LTS empfohlen
npm -v     # kommt mit Node

Wenn Node fehlt: LTS von nodejs.org installieren. Auf dem Mac ist nvm bequemer, wenn du mehrere Node-Versionen parallel brauchst — nvm install --lts reicht dann.

Claude Code installieren

npm install -g @anthropic-ai/claude-code

Ein paar Punkte, die dir Zeit sparen:

claude   # erster Start → Browser-Login
/exit    # Session beenden

Die globale CLAUDE.md

Speicherort: ~/.claude/CLAUDE.md. Diese Datei wird in jeder Claude-Code-Session automatisch geladen, egal aus welchem Arbeitsverzeichnis heraus.

# Global

## Identity
- Sebastian Sperber, Mediengestalter & Art Director, Röthenbach a. d. Pegnitz.
- §19 UStG Kleinunternehmer — keine MwSt. auf Rechnungen.

## Language
- Antworte auf Deutsch. Code, Datei-/Branch-Namen, Git-Commits auf Englisch.
- Commit-Format: Conventional Commits (feat:, fix:, docs:, …).

## Behavior
- Lies Dateien vollständig, bevor du editierst. Keine Edits ohne vorherigen Read.
- Keine erfundenen Pfade/Funktionen. Lieber ehrlich „weiß ich nicht".
- Keine Trailing-Summary — ich lese den Diff.
- Kein Emoji-Noise.

## Tooling-Präferenzen
- TypeScript bevorzugt, strict: true, kein any.
- Kein redundantes Error-Handling für Szenarien, die nicht eintreten können.
- Prefer rg über grep, fd über find, wenn verfügbar.

## Destruktives
- Nie ohne Rückfrage: git reset --hard, git push --force, rm -rf, DB-DROP, publish.
- Backups vor Migrationen verifizieren, nicht nur anstoßen.
Warum diese Aufteilung? Die Grobblöcke (Identity, Language, Behavior, Tooling, Destruktives) sind so gewählt, dass Claude beim Lesen schnell scannen kann. Längere Regelwerke fressen Context-Fenster, die du später für echte Arbeit brauchst. Jede Zeile, die du nicht wirklich brauchst, kostet dich Tokens.

Die Projekt-CLAUDE.md

In jedem Repo (oder Projekt-Ordner) legst du eine eigene CLAUDE.md. Pattern für ein WordPress-Kundenprojekt:

# Kinderhaus Feucht – Website

## Stack
- WordPress 6.x, Elementor Pro, Astra-Child-Theme
- PHP 8.2, MySQL 8
- UpdraftPlus daily, Backups auf externen Server
- Lokal: WordPress Studio (wp-studio://)

## Befehle
- wp db export backups/$(date +%F).sql vor DB-Edits — immer.
- Staging-Push via „All-in-One WP Migration", kein roher DB-Copy.

## Hard Rules
- Parent-Theme wird nicht editiert. Nur Astra-Child.
- Fluent Forms, nicht Contact Form 7 (DSGVO + Entry-Handling).
- Vor jedem Deploy: UpdraftPlus-Backup ausführen UND prüfen, dass es durchgelaufen ist.

## Kunde
- Kinderhaus Feucht, Bestandskunde (65 €/h).
- Ansprache „Sie", Mail bevorzugt vor Call.
- Stefan Krieger ist Haupt-Ansprechpartner.

Zwei Tipps aus Erfahrung:

Verifikation

cd ~/Projekte/kinderhaus
claude

Prompt:

Fasse den Kontext aus globaler und Projekt-CLAUDE.md in einer Bullet-Liste zusammen.
Hebe Widersprüche hervor, falls vorhanden.

Wenn beide Ebenen erkannt werden und keine Widersprüche gemeldet werden: Kontext-Layering steht.

Lektion 1.2 — Obsidian als Second Brain

Warum Obsidian und nicht Notion / Logseq / Capacities?

Plain Markdown auf der Platte. Das ist der einzige Grund, der zählt, wenn du mit Claude Code arbeiten willst:

Notion und Konsorten haben ihre Daseinsberechtigung, aber wenn Claude Code die Wissensbasis pflegen soll, brauchst du Plain-MD.

Ordnerstruktur

Eine opinionated Struktur, die sich bewährt hat:

MeinBusiness/
├── 00-daily/         # YYYY-MM-DD.md, eine Datei pro Tag
├── 00-inbox/         # unsortiert, Triage später
├── raw/              # Rohmaterial (Karpathy-raw-layer)
├── wiki/             # LLM-kuratierte Wissensbasis
│   └── index.md      # Katalog, wird mitgepflegt
├── 01-calls/         # YYYY-MM-DD-<slug>.md, Prep + Notes
├── 02-proposals/     # YYYY-MM-DD-<kunde>-<projekt>.md
├── 03-marketing/     # Content-Strategie, Posts
├── 04-crm/kunden/    # <id>-<slug>.md pro Kunde
├── 05-content/       # Video-/Blog-/Newsletter-Drafts
├── 07-templates/     # wiederverwendbare Vorlagen
└── CLAUDE.md         # Business-Schema
Warum die Nummern? Dateisystem sortiert alphabetisch. 00- ganz oben = täglich benutzt. 07-/08- unten = selten gebraucht. Beiläufiger Effekt: beim Navigieren im Terminal kommst du mit cd 04<tab> schnell zum CRM.

Installation + Bootstrap

brew install --cask obsidian

cd ~/Documents
mkdir -p MeinBusiness/{00-daily,00-inbox,raw,wiki,01-calls,02-proposals,03-marketing,04-crm/kunden,05-content,07-templates}
cd MeinBusiness
git init
echo ".obsidian/workspace*" >> .gitignore
echo ".DS_Store" >> .gitignore

.obsidian/workspace* ignorieren: das sind Per-Machine-Layout-Dateien (welches Panel gerade offen ist), die in einem Git-Repo nur Konflikte erzeugen. Die Plugin-Konfigs (.obsidian/plugins/) willst du aber mitversionieren — sonst fehlen dir auf dem zweiten Rechner die Erweiterungen.

Business-CLAUDE.md im Vault

# Business

## Identity & Goals
- Preise: 82,50 €/h (Neu) · 65 €/h (Bestand)
- Jahresziel: 20 Kursteilnehmer:innen „Tauchgang" bis Ende Q2.

## Services
| Service | Einheit | Preis | Notiz |
|---|---|---|---|
| Website-Check | 30 min | 150 € | Lead-Magnet |
| WP-Neuaufbau | pauschal | ab 1.500 € | Scope-Kickoff vor Angebot |
| Betreuungsvertrag | Monat | ab 250 € | Recurring Revenue |

## Workflows
- Anfrage → 04-crm/kunden/<id>-<slug>.md anlegen (Template aus 07-templates/kunde.md).
- Call → 01-calls/YYYY-MM-DD-<slug>.md (Prep oben, Notes unten).
- Angebot → 02-proposals/YYYY-MM-DD-<kunde>-<projekt>.md.

## Anti-Liste
- Keine Aufträge unter 200 €.
- Keine Shops ohne klares Zahlungs-Setup.
- Keine Projekte mit mehr als drei Entscheidern ohne PM-Rolle.

Der Punkt mit der Anti-Liste wird oft unterschätzt. Wenn Claude einen Angebotsentwurf schreiben soll, liest er die Anti-Liste und lehnt den Entwurf höflich ab, wenn das Briefing gegen die Regeln verstößt. Das spart mehr Entscheidungen, als man am Anfang glaubt.

Lektion 1.3 — Claude und Vault integrieren

Das raw/wiki/ Prinzip

Kommt von Andrej Karpathy. Grundidee: trenne ungefiltertes Eingangsmaterial von der kuratierten Wissensbasis. Claude macht die Brücke.

Der Prompt (später als Slash-Command in Tauchgang 02):

Lies alle Dateien in raw/, deren mtime nach dem letzten Eintrag in wiki/log.md liegt.
Für jede Datei:
1. Extrahiere die 3-5 Kern-Themen.
2. Lege oder erweitere wiki/<thema>.md. Bei bestehenden Artikeln: neuen Abschnitt ergänzen,
   nicht überschreiben.
3. Quelle als Fußnote oder YAML-Frontmatter vermerken (source, date, tags).
4. Wiki-Links [[...]] zu verwandten Artikeln ziehen.
5. wiki/index.md flach nach Kategorie aktualisieren.
6. Append an wiki/log.md: "ISO-Datum | Datei | Aktion".

Bei Binary-Quellen (PDF, PNG) → in raw/skipped.md notieren, nicht parsen.
Warum so detailliert? LLMs neigen dazu, bestehende Dateien zu überschreiben, wenn sie nicht explizit instruiert werden zu ergänzen. Die Regel „bei bestehenden Artikeln: neuen Abschnitt ergänzen" verhindert, dass dir eine Woche Wiki-Arbeit in einem Lauf wegradiert wird.

Performance-Tipp: PDFs vorher mit pdftotext oder pandoc nach Markdown wandeln. Der LLM braucht für eine PDF-Seite je nach Einbettung 5–20× so viele Tokens wie für reinen Text.

CRM — ein Template statt Freestyle

Lege eine Vorlage an: 07-templates/kunde.md. Dann kopierst du sie pro neuem Kunden und passt die YAML-Metadaten an.

---
id: <nnn>
name: <Name>
tier: bestand|neu
rate: 65|82.50
since: YYYY-MM
channel: mail|call
---

# <nnn> <Name>

## Kontakt
- E-Mail:
- Telefon:
- Website:

## Status
- Seit:
- Letzter Kontakt:

## Gesprächshistorie

## Aktive Projekte

## Offene Rechnungen

## Nächste Schritte
- [ ]

Warum das YAML-Frontmatter? Damit lassen sich zielgerichtete Claude-Abfragen auf den Metadaten bauen, ohne jede Datei vollständig zu lesen:

Öffne 04-crm/kunden/*.md, lies NUR das YAML-Frontmatter.
Gib mir alle Kunden mit tier=bestand und (heute - since) > 180 Tage,
die in den letzten 30 Tagen keinen Kontakt hatten.

Das spart in großen Vaults dramatisch Tokens.

Morgendliche Triage

Ein Prompt, den du zur Gewohnheit machst:

Lies 04-crm/kunden/*.md und 00-daily/ der letzten 7 Tage.
Output:
- Kunden mit "Letzter Kontakt" > 14 Tage und offenen Tasks.
- Gesamtbetrag offene Rechnungen.
- Nicht-beantwortete Anfragen.
Format: priorisierte Liste, jede Zeile mit einer konkreten nächsten Aktion.

Der Output gehört als Eröffnung in dein heutiges Daily-Log. Drei Minuten morgens, und du weißt, wo du wirklich stehst.

Test der gesamten Integration

cd ~/Documents/MeinBusiness
claude

Prompt:

Gib mir die drei dringendsten Business-Themen für diese Woche.
Jedes Thema mit Datei-Referenz (Pfad:Zeile oder Pfad) und einer konkreten nächsten Aktion.

Wenn Claude mit echten Datei-Referenzen antwortet, nicht mit Allgemeinplätzen: dein Business hat ein Gedächtnis, das skaliert.

Häufige Probleme und Lösungen

ProblemUrsacheLösung
command not found: claude nach Installation$PATH noch nicht aktualisiertNeue Shell öffnen oder source ~/.zshrc
EACCES-Fehler bei npm install -gSystem-Node ohne Schreibrechtesudo npm install -g … oder via nvm einen User-Node installieren
Claude erfindet Pfade/FunktionenKontext zu knapp oder widersprüchlichRegel in CLAUDE.md: „Keine erfundenen Pfade"; zusätzlich --model-Stufe erhöhen
Session wird beim CRM-Durchsuchen langsamVault zu groß, zu viel Inline-ContentErst rg oder fd für Vorfilterung, dann nur Treffer in den Prompt reichen
iCloud-Sync erzeugt .conflict-* in VaultZwei Geräte schreiben parallelCron oder Hazel: Konflikte nach 00-inbox/conflicts/ verschieben und in wiki/log.md vermerken
Token-Budget knappGroße Sessions, alles mit Claude OpusFür CRM-Lookups Haiku oder Sonnet nehmen, Opus nur für Content-Generation

Nach diesem Tauchgang

Erfolgs-Check: Dreistufiger Kontext (global, Projekt, Vault) wird beim Start automatisch geladen. Claude zitiert konkrete Datei-Pfade und Zeilen, nicht nur Plattitüden.

Weiterführend (optional)

Deine Werkzeugkiste

Acht sofort einsetzbare PDFs zum Download. Teil deines Kurs-Materials.

Nächster Tauchgang: Die Werkzeuge.

Slash-Commands, Skills, Subagents.

Einen Prompt einmal schreiben — tausendmal nutzen.

sebastian-sperber.de/tauchgang

Tauchgang 01 · Lektion-Intro · 15 Sek

Kurz-Anleitungen zu diesem Tauchgang

Vier 45-Sekunden-Videos — jeweils ein konkreter Schritt zum Nachmachen.

01

Claude Code installieren

Node, npm, Claude Pro, Login

02

CLAUDE.md schreiben

Personal Memory File auf Root

03

Obsidian-Vault aufsetzen

iCloud-Pfad, Struktur, Kontext

04

Memory-System aktivieren

4 Speicher-Typen, Recall