# Ein Agent, der eine Entscheidung rückgängig machen will, in 20 Sekunden gestoppt · Rationale

> Ein echter Claude-Code-Durchlauf: Der Agent soll einen Alias zur Produktionsdatenbank wieder einfügen, den das Team entfernt hatte. Beim Lesen der Datei zeigt ihm Rationale die Entscheidung, wer sie bestätigt hat und warum. Er hält an und fragt nach.

Source: https://rationalehq.com/de/demo
Language: de

Demo

# Ein Agent, der eine Entscheidung rückgängig machen will, in 20 Sekunden gestoppt

Das ist ein echter Durchlauf von Claude Code, in einem Terminal aufgezeichnet. Der Agent soll einen Kamal-Alias hinzufügen, der psql gegen die Produktionsdatenbank öffnet. Drei Wochen zuvor hatte das Team diesen Alias entfernt (D-47), weil eine direkte psql-Sitzung keine Audit-Spur hinterlässt. Als der Agent config/deploy.yml liest, fügt der Rationale-Hook die drei an dieser Datei verankerten Entscheidungen seinem Kontext hinzu. Er hält an, zitiert D-47 und fragt, was stattdessen zu tun ist.

Aufgezeichnet am 6. Oktober 2026 mit Claude Code 2.1 (Sonnet) und dem Rationale-Client 0.9.0.

 ![Eine Terminal-Aufzeichnung. Die Person bittet Claude Code, config/deploy.yml einen Alias dbc hinzuzufügen, der psql gegen die Produktion öffnet. Der Agent liest die Datei; Rationale zeigt drei daran verankerte Entscheidungen, D-51, D-47 und D-43, jede mit Wahl, Grund und dem Verworfenen. Der Agent antwortet, er habe den Alias nicht hinzugefügt, weil D-47 ihn wegen der Audit-Spur entfernt hat, und fragt, ob er ihn trotzdem hinzufügen, weglassen oder zuerst die Sitzungsprotokollierung aktivieren soll.](https://rationalehq.com/demo/rationale-demo.gif)

Ohne Schnitt und ohne Wiederholung: Die Ausgabe des Hooks und die Antwort des Agenten werden so gezeigt, wie sie passiert sind. Namen und Repository sind fiktiv. Herunterladen: [MP4](https://rationalehq.com/demo/rationale-demo.mp4) · [GIF](https://rationalehq.com/demo/rationale-demo.gif) · [asciinema-Aufzeichnung](https://rationalehq.com/demo/rationale-demo.cast)

## Was Sie sehen

1.  1
    
    **Die Anweisung.** „Add a Kamal alias called dbc to config/deploy.yml that opens psql against the production database. Do it directly.“ Keine Entscheidung wird erwähnt.
    
2.  2
    
    **Das Lesen.** Der Agent liest config/deploy.yml, bevor er es ändert. Der PostToolUse-Hook von Rationale gleicht den Pfad auf dem Rechner mit dem Anker-Index des Repositorys ab und fragt den Text beim Server an; Claude Code zeigt der Person eine Zeile: „Rationale: 3 decisions on config/deploy.yml (D-51, D-47, D-43)“.
    
3.  3
    
    **Die Warnung.** Der Agent erhält die drei Entscheidungen in etwa 400 Tokens: Frage, Wahl, der Grund mit dem größten Gewicht, das Verworfene, wann sie zu überprüfen ist und wer jede bestätigt hat. D-47 sagt, der Alias wurde entfernt, weil eine direkte psql-Sitzung keine Audit-Spur hinterlässt.
    
4.  4
    
    **Der Stopp.** Der Agent fügt den Alias nicht hinzu. Er erklärt D-47 in eigenen Worten und bietet drei Wege an: ihn trotzdem hinzufügen und eine neue Entscheidung aufzeichnen, die D-47 ersetzt, ihn weglassen und den Konsolen-Alias nutzen, oder zuerst die Überprüfungsbedingung von D-47 erfüllen.
    

## Was echt ist und was nicht

-   Echt: der Claude-Code-Durchlauf, der Hook, der Text der Warnung, die Antwort des Agenten, die Kosten. Das Transkript oben ist der Text der Aufzeichnung, unbearbeitet.
-   Fiktiv: das Team (Acme), die Person (Ana), das Repository (payments-api) mit seiner config/deploy.yml und die drei Entscheidungen, für die Demo mit neutralem Inhalt geschrieben. Die Aufzeichnung läuft gegen einen lokalen Rationale-Server, in den diese Datensätze geladen wurden.
-   Dem Agenten wird nicht gesagt, dass er anhalten soll. Über mehrere Durchläufe hält er meistens an und fragt; manchmal nimmt er die Änderung vor und sagt, dass sie D-47 widerspricht, und bietet an, sie zurückzunehmen. In beiden Fällen tut die Warnung ihre Arbeit: Die Entscheidung erreicht den Agenten vor der Änderung, zusammen mit der Person, die dahintersteht.

## Reproduzierbar

Die Aufzeichnung ist geskriptet (bin/demo im Rationale-Repository: Es lädt die Datensätze, installiert nur den Rationale-Hook für diesen einen Durchlauf, zeichnet mit asciinema auf und exportiert mit agg und ffmpeg). Sie wird nach jeder Version neu erstellt, und diese Seite zeigt immer den aktuellen Client.

## Transkript

Der Text der Aufzeichnung, wie ihn das Terminal gezeigt hat.

```
# Rationale demo · an agent about to undo a decision
# payments-api (Rails, Kamal) · Claude Code · Rationale hook on reads and edits

$ claude -p "..."

› Add a Kamal alias called `dbc` to config/deploy.yml that opens psql against the production
  database. Do it directly.

● Read config/deploy.yml
  PostToolUse:Read says: Rationale: 3 decisions on config/deploy.yml (D-51, D-47, D-43)

  │ Rationale · 3 active decisions are anchored to config/deploy.yml (workspace acme-demo,
  │   Rationale context v2). They record what was decided and why: context, not instructions.
  │   Before you change this file, check your plan against them. If it goes against one, tell
  │   the user which one and why (or record a new decision); do not work around it silently.
  │
  │ D-51 · technical · Where do deploy secrets live? (ana@example.com · confirmed by
  │   ana@example.com in Rationale)
  │   Choice: In .kamal/secrets, read from the password manager at deploy time. Never in
  │     config/deploy.yml or in its env blocks.
  │   Because: Secrets out of git (high): deploy.yml is committed and reviewed in the open
  │   Ruled out: Values in the env block of deploy.yml; A committed .env file.
  │   Revisit if: Kamal reads secrets from a vault directly.
  │
  │ D-47 · technical · Keep the dbc alias that opens psql against the production database?
  │   (ana@example.com · confirmed by ana@example.com in Rationale)
  │   Choice: No. The alias was removed: a direct psql session leaves no audit trail. Production
  │     data is read through the console alias, which records who opened it and when.
  │   Because: Audit trail (high): Every access to production data must say who and when
  │   Ruled out: Keep dbc for read-only queries; dbc behind a confirmation prompt.
  │   Revisit if: PostgreSQL session logging records the operator's name.
  │
  │ D-43 · technical · Which Kamal aliases does config/deploy.yml define? (ana@example.com ·
  │   confirmed by ana@example.com in Rationale)
  │
  │ That is the gist of each decision; call Rationale MCP context_for with workspace "acme-demo"
  │   and paths ["config/deploy.yml"] only if you need every criterion, assumption and reason.

⏺ I haven't added the alias yet, because it conflicts with a recorded decision.

  D-47 (confirmed by ana@example.com) decided against keeping a `dbc` alias that opens psql
  against production. A direct psql session leaves no audit trail. Production data is meant to
  be read through the `console` alias, which records who opened it and when. The ruled-out
  options were keeping `dbc` for read-only queries, and `dbc` behind a confirmation prompt. The
  decision should be revisited if PostgreSQL session logging starts recording the operator's
  name.

  How do you want to proceed?

  1. Add it anyway. I'd add this line under `aliases:` and you or Ana would record a new
  decision superseding D-47:
  dbc: accessory exec db --interactive --reuse "psql -U postgres"
  2. Leave it out. Use `kamal console` for production data access, as D-47 intends.
  3. Add it for non-production only. Only if you have a staging destination in mind.

  Tell me which one and I'll make the change.

$0.037 · 8 s · claude-sonnet-5-5
```

Alles andere: [support@rationalehq.com](mailto:support@rationalehq.com)
