Modul 4

Praktische Arbeit mit Claude Code

Tag 2 · ca. 105 Minuten

Lernziel Modul 4

Der Teilnehmer beherrscht den täglichen iterativen Arbeitszyklus inkl. Review-Loops, Approvals und Session-Management.

Drei Handwerke: kleine Schritte machen · jeden Schritt abnehmen · die Session bewusst führen.

Inhalt

Iterative Workflows

Kleine Schritte statt großer Würfe

Self-Check & Review Loops

Was der Agent selbst prüfen kann — und was nicht

Human in the Loop

Wo der Mensch zwingend hingehört

Approvals & Approval Fatigue

Permissions bewusst statt reflexhaft

Long-running & Recurring Tasks

Lange Läufe und wiederkehrende Prüfungen

Verifiable Outputs

Das Herzstück des Moduls

Session & Context-Lebenszyklus

--continue, --resume, /compact, /clear

Session-Größe & Prompt Caching

Token-Budget und Kostenwirkung

Daily AI Usage

Ein realistischer Arbeitstag

Iterative Workflows

Der tägliche Zyklus

Nicht „Auftrag rein, Feature raus". Sondern eine Schleife, die der Mensch schließt — und zwar nach jedem einzelnen Durchlauf.

Zuschneiden
Agent
arbeitet
Verifizieren
Annehmen
oder korrigieren
Die richtige Iterationsgröße ist die, deren Ergebnis ihr in zwei Minuten beurteilen könnt. Alles, was länger dauert, war ein zu großer Schritt.

Zuschnitt einer Iteration

Zu groß — nicht abnehmbar Implement booking cancellation for the seminar API.
Eine Iteration — abnehmbar Add a failing test for cancelling a booking that is already cancelled. It must expect HTTP 409 and the message "booking already cancelled". Do not touch BookingService yet. Run `mvn test -Dtest=BookingCancelTest` and show me the failure output.
Der gute Prompt nennt drei Dinge: was genau, was ausdrücklich nicht, und woran man sieht, dass es fertig ist.

AI Self-Check, Review Loops & Human in the Loop

Was der Agent selbst prüfen kann

1Kompilieren und Tests laufen lassen. Der objektivste Self-Check überhaupt — das Ergebnis kommt nicht vom Modell.
2Den eigenen Diff nochmal lesen. „Read your own diff and list anything that doesn't belong" findet erstaunlich viel: Debug-Ausgaben, halbe Umbenennungen, vergessene TODOs.
3Gegen eine Checkliste prüfen. Eine Liste im Repo schlägt eine Liste im Kopf — sie ist bei jedem Lauf dieselbe.
4Einen frischen Reviewer ansetzen. Ein Subagent ohne die Vorgeschichte sieht den Code, nicht die eigene Begründung dafür (Modul 8).
Grenze des Self-Checks: Wer den Code geschrieben hat, hat auch die Annahme geschrieben, unter der er richtig aussieht. Selbstprüfung findet Schlampigkeit — nicht Missverständnisse.

Human in the Loop — drei feste Punkte

Vor dem Losgehen

Ist das überhaupt die richtige Aufgabe? Der teuerste Fehler ist der perfekt umgesetzte falsche Plan.

Beim Abbiegen

Der Agent nimmt einen Weg, den ihr nicht wolltet. Sofort stoppen — nicht „mal schauen, wo er rauskommt".

Vor dem Wirksamwerden

Commit, Push, Deploy, Migration, Datenlöschung. Alles, was außerhalb eures Rechners Folgen hat.

Dazwischen darf der Agent arbeiten. Der Mensch ist Torwächter an definierten Stellen, nicht Dauerbeobachter.

Den Diff lesen — die Mindestpflicht

Was nicht reicht

„Tests sind grün, passt."

Die Zusammenfassung des Agenten lesen statt den Diff.

400 geänderte Zeilen durchscrollen und nicken.

Was reicht

Jede geänderte Datei einmal angesehen — warum ist sie geändert?

Jede Datei, die euch überrascht, ist ein Fund.

Änderungen, die nicht zur Aufgabe gehören, gehören raus.

Die Zusammenfassung des Agenten ist generierter Text über den Code, nicht der Code. Beides klingt gleich überzeugend (Modul 1).

Approvals & Approval Fatigue

Permissions sind eine Vertrauensgrenze

Bevor der Agent ein Werkzeug benutzt, entscheidet eine Regel: erlaubt, nachfragen oder verboten.

allow

Läuft ohne Rückfrage. Für alles Harmlose und Häufige: lesen, suchen, Tests laufen lassen.

ask

Der Standardfall. Der Agent hält an und fragt — das ist die Voreinstellung für Unbekanntes.

deny

Wird gar nicht erst angeboten. Für alles, was ihr nie bestätigen wollt.

Die Regeln liegen als Konfiguration im Repo — damit sind sie versioniert, reviewbar und für das ganze Team gleich (Modul 10).
Konkrete Dateipfade, Schlüsselnamen und die Reihenfolge der Settings-Ebenen (User / Projekt / lokal) ändern sich mit der Tool-Version. Vor dem Kurs mit /permissions und claude --help gegenprüfen. Verifiziert gegen Claude Code 2.1.216: /permissions („Manage allow and deny tool permission rules"), --allowedTools, --disallowedTools. — geprüft am 2026-07-21

Approval Fatigue

Was tatsächlich passiert

Minute 1–5: jede Rückfrage wird gelesen.

Minute 5–20: überflogen.

Ab Minute 20: Enter, Enter, Enter.

Die Rückfrage, auf die es ankam, war Nummer 47.

Die Gegenmaßnahme

Die Zahl der Rückfragen so weit senken, dass jede einzelne wieder Aufmerksamkeit verdient.

Das Harmlose freigeben, das Gefährliche verbieten — nicht abfragen.

Wer alles einzeln bestätigen muss, bestätigt nach 20 Minuten blind. Das ist gefährlicher als weniger Rückfragen — weil es sich sicher anfühlt.

Echtes Beispiel: das Gefährliche verbieten

Ausschnitt aus einem produktiv genutzten Projekt (cgsit-finance)

{
  "permissions": {
    "allow": [ "Read(**)", "Write(**)", "Bash(**)" ],
    "deny": [
      "Bash(rm -rf /)",
      "Bash(git push --force *)",
      "Bash(git reset --hard*)",
      "Bash(git clean -fd*)",
      "Bash(docker compose down -v*)",
      "Bash(*DROP TABLE*)",
      "Bash(aws rds delete-db-instance*)",
      "Bash(aws s3 rm*--recursive*)",
      "Bash(*pastebin*)", "Bash(*transfer.sh*)"
    ]
  }
}
Breit erlauben, gezielt verbieten. Die deny-Liste ist kurz, lesbar und beantwortet die Frage: „Was darf hier nie passieren?"

Die Grenze schriftlich ziehen

„Push & Deploy Policy" aus CLAUDE.md desselben Projekts

AktionRegelung
Lokale Builds, Tests, Commits autonom, keine Rückfrage
CI-Status abfragen, Logs lesen, Backups ziehen autonom, nur ankündigen
git push origin main autonom, wenn Commits fertig sind
git push --no-verify (Hook übergehen) vorher fragen
Deploy auf Produktion immer fragen
git push --force, alles Destruktive immer fragen
Die Grenze steht im Repo, nicht im Kopf. Damit ist sie für Mensch und Agent dieselbe — und beim nächsten Mal noch da.

Verifiable Outputs

Beendet ist nicht abgeschlossen

Beendet

Der Agent hört auf zu arbeiten und schreibt „Done".

Das ist eine Aussage des Modells über sich selbst.

Abgeschlossen

Ein objektives Kriterium ist erfüllt: Test grün, Build durch, Endpoint antwortet, Diff gelesen.

Das ist eine Aussage der Welt über den Code.

Ohne objektives Abnahmekriterium ist eine Agentenaufgabe nicht abgeschlossen, sondern nur beendet.

Modul 1: Der Weg ist nicht-deterministisch — also darf nur das Ergebnis das Abnahmekriterium sein, nie der Weg dorthin.

Was als Abnahmekriterium taugt

Ein Test

Der stärkste Kandidat — und der einzige, der beim nächsten Mal automatisch wieder prüft.

Ein Build

Kompiliert, verlinkt, gepackt. Fängt halluzinierte APIs sofort ab.

Ein laufender Endpoint

curl gegen die gestartete Anwendung: erwarteter Status, erwartete Antwort.

Ein gelesener Diff

Schwächer, aber legitim — und für Doku oder Konfiguration oft das einzig Mögliche.

Eine Suche mit Erwartung

grep auf das alte Symbol liefert null Treffer" — perfekt für Aufräumarbeiten.

Nicht geeignet

„Sieht gut aus." — „Der Agent sagt, es funktioniert." — „Keine Fehlermeldung."

Kriterium in den Auftrag schreiben Done when: `mvn test -Dtest=BookingCancelTest` passes, `mvn clean compile` is green, and `git diff --stat` touches only BookingService.java and its test. Show me all three outputs.

Long-running & Recurring Tasks

Long-running

Große Migration, Testsuite nachrüsten, Abhängigkeiten heben. Läuft lange, produziert viel.

Regeln: in Etappen mit eigenem Abnahmekriterium zerlegen · Zwischenstand ins Repo schreiben, nicht in die Session · laute Ausgaben (Test-Logs, Builds) in einen Subagenten auslagern.

Recurring

Immer gleich, immer wieder: Security-Review vor dem Release, Doku-Abgleich, Abhängigkeits-Check.

Regeln: nicht jedes Mal neu formulieren — als Command oder Skill ins Repo legen (Modul 8) und, wo möglich, in die CI hängen (Modul 9).

Ein langer Lauf ist vor allem ein Kontext-Problem: Die Session, in der er endet, ist nicht mehr die, in der er begann.
Claude Code kann Läufe im Hintergrund halten und Sitzungen planen (--background, /tasks, /schedule, /loops, verifiziert gegen 2.1.216). Verhalten, Namen und Verfügbarkeit dieser Funktionen ändern sich schnell — vor dem Kurs live prüfen und nur zeigen, was auf dem Kursrechner tatsächlich läuft. — geprüft am 2026-07-21

Session & Context-Lebenszyklus

Die Session ist ein Budget

Aus Modul 1: Sessions wachsen nur. Systemprompt, CLAUDE.md, jede gelesene Datei, jede Testausgabe — alles bleibt drin und wird bei jedem weiteren Schritt mitgeschickt.

System + CLAUDE.md gelesene Dateien Tool-Ausgaben, Tests, Logs Verlauf frei
Wer den Füllstand nicht kennt, merkt das Problem erst an der schlechter werdenden Antwortqualität. Dann ist es zu spät.
Füllstand und Kosten sichtbar machen — verifiziert gegen Claude Code 2.1.216: /context („Show current context usage" bzw. als farbiges Raster) und /usage (Aliase /cost, /stats: „Show session cost, plan usage, and activity stats"). Grenzwerte und Anzeige ändern sich mit der Version. — geprüft am 2026-07-21

Vier Werkzeuge, vier Zwecke

WerkzeugWas passiertWofür
/clearNeue Session mit leerem Kontext; die alte bleibt gespeichertThemenwechsel. Der billigste und meistvergessene Befehl.
/compactDer Verlauf wird durch eine Zusammenfassung ersetztGleiches Thema, aber Kontext voll. Kompromiss, kein Reset.
claude --continueDie letzte Unterhaltung in diesem Verzeichnis läuft weiterTerminal geschlossen, Arbeit geht weiter.
claude --resumeAuswahl einer früheren Unterhaltung (Picker oder Session-ID)Zurück zu einer bestimmten Aufgabe von gestern.
/compact ist verlustbehaftet: Aus dem Verlauf wird generierter Text. Was in der Zusammenfassung nicht vorkommt, ist weg — und niemand sagt euch, was gefehlt hat.
Verifiziert gegen Claude Code 2.1.216: /clear („Start a new session with empty context; previous session stays on disk, resumable with /resume"), /compact („Free up context by summarizing the conversation so far"), -c, --continue, -r, --resume [id|Suchbegriff]. Ebenfalls vorhanden, aber nicht auf der Hauptfolie: /resume als Slash-Befehl (Alias /continue), --fork-session (beim Fortsetzen eine neue Session-ID vergeben), /rewind (Aliase /checkpoint, /undo), /autocompact (Schwelle fürs automatische Zusammenfassen) sowie ein automatisches Compact bei vollem Fenster. — geprüft am 2026-07-21

Wann was — die Entscheidung

Neues Thema?/clear. Immer. Der alte Kontext hilft nicht, er kostet nur und lenkt ab.
Gleiches Thema, Kontext wird eng? → erst Zwischenstand ins Repo schreiben, dann /compact.
Gleiches Thema, Kontext bereits schlecht? → Handoff schreiben, /clear, frisch starten. Besser als ein zweites /compact.
Morgen weiterarbeiten?--continue für „genau da weiter", --resume für „welche von den fünfen war das nochmal".
Zweimal /compact hintereinander ist ein Warnsignal: Ihr komprimiert eine Zusammenfassung einer Zusammenfassung.

Vor dem /compact: extrahieren

Aus der Praxis In der Session wurde eine Konvention vereinbart, ein Fehlschlag analysiert und eine Architektur-Entscheidung begründet. Nach dem /compact stand in der Zusammenfassung: „Diverse Verbesserungen besprochen." Lehre: Was nur im Verlauf lebt, überlebt die Kompaktierung nicht. Es muss vorher in eine Datei.
Was in der Session entstanden istWohin es gehört
Projektweite Regel, Policy, WorkflowCLAUDE.md
Konvention für einen bestimmten BereichRules-Datei im Projekt
Architektur-Entscheidung mit Begründungdocs/<thema>.md bzw. RFC
Stand der laufenden AufgabeHandoff-Datei (nächste Folie)
Nichts davon — nur Rauschendarf verschwinden

Vorbild: docs/compaction-checklist.md aus einem produktiven Projekt.

Der Handoff

Ein Handoff ist das, was ihr einem Kollegen hinlegen würdet, der die Aufgabe morgen ohne euch zu Ende bringt. Genau das ist die nächste Session auch.

Prompt vor dem Context-Reset Write HANDOFF.md before we reset the context. Include: 1. Goal — what we are building, in two sentences 2. State — what is done, what is not, which files changed 3. Decisions — what we chose and what we rejected, with the reason 4. Verification — the exact commands that must pass when it is done 5. Next step — the single next action for a fresh session Facts only. No summary prose. Anything not written down is lost.
Der Test für einen guten Handoff: Die frische Session macht damit weiter — ohne dass ihr etwas nacherzählen müsst.

Prompt Caching & Kostenwirkung

Weil bei jedem Schritt die gesamte Historie neu geschickt wird (Modul 1), lohnt sich ein Trick: Ein stabiler Anfang muss nicht jedes Mal neu verarbeitet werden, sondern wird wiederverwendet.

Cache-freundlich

Der Anfang der Session bleibt gleich: Systemprompt, CLAUDE.md, dieselben Werkzeuge.

Neues kommt hinten dazu.

Wirkung: spürbar billiger und schneller.

Cache-zerstörend

Mitten in der Arbeit an CLAUDE.md schrauben, MCP-Server dazuschalten, das Modell wechseln.

Alles, was den Anfang verändert, entwertet die Wiederverwendung dahinter.

Praktische Regel: Setup vor der Arbeit erledigen, nicht während. Und eine lange stabile Session ist beim Caching günstiger als zehn kurze — was gegen die Kontext-Hygiene arbeitet. Beide Ziele abwägen.
Bewusst ohne Zahlen: Rabattsätze, Mindestgrößen und Lebensdauer eines Caches sind Anbieter- und Versionsdetails und ändern sich. Wer eine konkrete Zahl braucht, holt sie aus der offiziellen Dokumentation — nicht von dieser Folie. — geprüft am 2026-07-21

Daily AI Usage — ein realistischer Tag

1Session starten, Kontext setzen. Im Projektverzeichnis, damit CLAUDE.md und Regeln greifen. Erste Frage: Was ist der Stand?
2Aufgabe zuschneiden. Ein Ticket, nicht ein Projekt. Abnahmekriterium vorher festlegen und in den Prompt schreiben.
3Iterieren. Arbeiten lassen, Diff lesen, verifizieren, korrigieren. Zwei Minuten pro Abnahme.
4Commit als Wasserstandsmarke. Kleine Commits sind der billigste Rückwärtsgang — und die einzige Stelle, an der der Agent nichts kaputtmachen kann.
5Themenwechsel = /clear. Nicht „ich mach im selben Fenster noch schnell was anderes".
6Bei langen Aufgaben: Zwischenstand ins Repo, dann kompaktieren oder neu starten. Nie ungesichert weiterlaufen lassen.
7Tagesende: aufräumen. Gelerntes in CLAUDE.md oder docs/, offener Stand in den Handoff, Commits gepusht.

Modul 4 in fünf Sätzen

1Arbeitet in Iterationen, die ihr in zwei Minuten abnehmen könnt.
2Der Self-Check des Agenten findet Schlampigkeit — Missverständnisse findet nur der Mensch.
3Konfiguriert Permissions bewusst: das Gefährliche verbieten, statt das Harmlose einzeln zu bestätigen.
4Ohne objektives Abnahmekriterium ist eine Aufgabe beendet, nicht abgeschlossen.
5Führt die Session bewusst: extrahieren, dann /compact oder /clear — und alles Wichtige liegt im Repo, nicht im Verlauf.
Das sind die fünf Handgriffe für Montag. Modul 5 macht daraus einen durchgehenden Phasen-Workflow mit Gates und Artefakten.

Übung 4 — über einen Context-Reset hinweg

Aufgabe

Beginnt in seminar-api eine Aufgabe mit klarem Abnahmekriterium — zum Beispiel: Stornieren einer bereits stornierten Buchung liefert HTTP 409 mit einer verständlichen Meldung, abgesichert durch einen Test.

Arbeitet bis etwa zur Hälfte. Dann: HANDOFF.md schreiben lassen → /clear → in der frischen Session nur mit dem Handoff weiterarbeiten. Keine Nacherzählung aus dem Kopf.

Verifizierbares Ergebnis: Der Test ist grün und der Handoff hat gereicht — ihr könnt benennen, welche Information gefehlt hat und in welchen der fünf Abschnitte sie gehört hätte.

Dauer ca. 30 Minuten · Einzel- oder Paararbeit

© 2026 CGS IT Solutions GmbH

Alle Rechte vorbehalten

Diese Schulungsunterlagen sind urheberrechtlich geschützt. Vervielfältigung, Weitergabe oder kommerzielle Nutzung — auch in Auszügen — nur mit ausdrücklicher schriftlicher Genehmigung der CGS IT Solutions GmbH.

cgsit-claude-training · Modul 4 · v0.1.0