Plainy
Rekursive Planning-Pipeline aus acht typisierten Anthropic-Agenten: aus einem Satz wird ein TypeScript-vertragsbasierter TaskBrief, den Claude Code direkt in lauffähigen Code übersetzt.
Schlüsselentscheidung
Capture/Replay statt Demo-Mode. Jede Live-Sitzung ist aufnehmbar; Replays sind nur ein Cursor über der Fixture mit Auto-Resolve. Kein paralleler Demo-Code-Pfad, kein Drift-Risiko zwischen Demo und Live. Preis: 'Entscheide du'-Antworten müssen vorberechnet sein, damit Replays deterministisch laufen. Bezahlt sich aus, weil jede Live-Demo automatisch zur ewig-spielbaren Demo wird.
Acht spezialisierte Anthropic-Agenten (Einstieg, Architekt, Skeptiker, Vertragsdesigner, Stack, Plan-Zusammenfasser, Architektur-Coach, Polish) — jeder ein eigener Tool-Call mit Zod-validiertem Schema; der Architekt streamt sein Tool-Use-JSON inkrementell, ein Klammer-Scanner extrahiert fertige Kind-Objekte und schickt sie als SSE-Events. Ein einzelner Satz wird Schritt für Schritt zu einem Baum aus Arbeitseinheiten, TypeScript-Verträgen (kein `any`, kein `unknown` — hart per Prompt verboten und per Zod nachvalidiert) und sichtbar geloggten Entscheidungen verdichtet. Das Endprodukt — ein Markdown-TaskBrief — wird in eine Claude-Code-Session eingefügt und liefert lauffähigen Code. Capture/Replay statt Demo-Modus: jede Live-Sitzung ist aufnehmbar, Replays laufen deterministisch ohne Anthropic-Call.
Der vollständige Loop — Plan zu lauffähiger App
Die These in einem Satz: plainy zerlegt vage Produktideen in Artefakte, aus denen eine Coding-KI direkt lauffähigen Code baut.
| Idee | plainy-Replay | Resultierende App |
|---|---|---|
| 'Eine App, die mir Skat beibringt.' | Replay öffnen | skat.prototyp.ms |
| 'Ein Gewohnheits-Tracker für mich selbst.' | Replay öffnen | habits.prototyp.ms |
Demo in 60 Sekunden
- 1
Tipp eine Idee in einem Satz.
- 2
Beantworte 3–4 Einstiegsfragen — oder lass 'entscheide du' antworten.
- 3
Der Baum wächst auf: 2–5 Arbeitseinheiten pro Knoten, automatisch vertieft bis Tiefe 2.
- 4
Parallel laufen Skeptiker (ein Risiko) und Vertragsdesigner (TypeScript-Vertrag pro Blatt).
- 5
Stack-Karte: 2–3 Optionen mit Pros/Cons, jede gebündelte Entscheidung wandert sichtbar ins Log.
- 6
Export-Modal mit Markdown-TaskBrief — ein Klick, in Claude Code einfügen, Build beginnt.
Architektur — 8 spezialisierte Agenten
Jeder Agent ist ein eigener Anthropic-Tool-Call mit Zod-validiertem Schema. Mehrere laufen parallel; der Architekt streamt.
| Agent | Modell | Aufgabe |
|---|---|---|
| Einstieg / Intake | Sonnet 4.6 | Wandelt einen Ein-Satz-Wunsch in 3–4 schärfende Pills / Multi-Selects. |
| Architekt / Architect | Sonnet 4.6 · Stream | Teilt einen Knoten in 2–5 Kinder; markiert, was weiter vertieft werden soll. |
| Skeptiker / Skeptic | Sonnet 4.6 | Sucht ein echtes v1-Risiko und rahmt es als Entscheidung. Schweigen ist Default. |
| Vertragsdesigner / Contract designer | Opus 4.7 | Pro Blatt ein TypeScript-Vertrag — domänen-spezifische Typen, kein any, kein unknown. |
| Stack | Sonnet 4.6 | 2–3 alltagssprachliche Stack-Optionen mit Pros/Cons; bündelt stille Entscheidungen. |
| Plan-Zusammenfasser / Plan summariser | Haiku 4.5 | 2–3 Sätze zum fertigen Projekt plus eine kleine Non-Goals-Liste. |
| Architektur-Coach | Sonnet 4.6 | Identifiziert 1–5 Grundmodule, die quer durch Blätter benutzt werden — vor der Blatt-Implementierung. |
| Polish | Haiku 4.5 | Glättet Freitext-Antworten zu 1–2 sauberen Sätzen, ohne Intent zu verändern. |
Validierung & Robustheit
Streaming-Architekt
Der Architekt streamt sein Tool-Use-JSON; ein Klammer-Scanner extrahiert fertige Kind-Objekte und schickt sie als SSE-Events — Knoten erscheinen inkrementell im Baum.
Zod + Retry-Eskalation
Jede Antwort durchläuft ein Zod-Schema. Schlägt die Validierung fehl, eskaliert ein generischer Retry-Helper automatisch auf Opus und gibt den Fehler als Korrekturhinweis mit.
Re-Entry-Guard
Verhindert die Race, bei der Skeptiker-Decomposition und Auto-Recursion gleichzeitig denselben Knoten anfassen.
Modell-Mix nach Bedarf
Haiku für hochfrequente Mikrotexte, Sonnet für strukturelle Arbeit, Opus dort, wo Präzision zählt (Verträge). Dispatch zentral in server/models.ts, austauschbar pro (Agent, Operation).
Designentscheidungen, kurz
Zwei Schichten, eine Datenquelle
PM-Sprache vorne (Titel, Zusammenfassung, Entscheidungen), Ingenieur-Sicht als optionale Projektion derselben Nodes (Verträge, Abnahmekriterien). Kein zweiter Code-Pfad, nur andere Slots.
'Entscheide du' als Vertrauensmechanismus
Jede Frage hat eine vorberechnete KI-Antwort. Wird sie genutzt, landet sie sichtbar im Entscheidungslog mit Begründung — keine stillen Entscheidungen, auch nicht bei der Stack-Wahl.
Capture / Replay statt Demo-Mode
Jede Live-Sitzung ist aufnehmbar; Replays sind nur ein Cursor über der Fixture mit Auto-Resolve. Kein paralleler Demo-Code-Pfad. Karten lösen sich mit Pause + Highlight + Pause auf.
Verträge ohne any
Der Vertragsdesigner-Prompt verbietet any, unknown und leere Interfaces hart; Zod validiert nach. Für Skat heißt es SkatCard, Reizen, Spitzen — nicht Card, Bidding, Bonus.
Deployment
Live auf einem DigitalOcean-VPS mit PM2 (kein Cold-Start). nginx reverse-proxied /api/* auf 127.0.0.1:4747, liefert dist/ statisch aus, mit proxy_buffering off auf /api/agent/stream — sonst kommt der SSE-Stream gepuffert beim Client an und die Streaming-Animation ist tot. TLS via certbot/Let's Encrypt mit Auto-Renew. Der Live-Modus ist über einen X-Plainy-Auth-Header gegen eine env-Var abgesichert; der Replay-Pfad bleibt davon unberührt, weil er nie das Netzwerk anfasst.