◑ MOCKUP — Design-Landkarte (benannte Komponenten-Bibliothek). Kanonische SSOT für ALLE Chat-Screens · Realdaten illustrativ · Hell/Dunkel umschaltbar.

🗺 TGV Design-Landkarte

Benanntes Komponenten-Vokabular · einmal ändern → überall · gegen Drift

Jede wiederkehrende UX-Rolle hat einen Namen, eine Funktion, EINE kanonische Darstellung (+ States), eine Regel (Bibel) und wo verwendet. Instanz-agnostisch: CORE-KAI und gabriel-CHAT sind Geschwister derselben Engine → EIN geteilter Renderer + EIN Vokabular (Shell/Composer/Bubbles/thread-context/generische Blöcke). Instanz-spezifisch nur die render_hint-Typen (CORE=Finanz · gabriel=Memoir) — gleiche Hülle/Regeln. 43 Komponenten. Typografie-Disziplin: nur die DESIGN#01-Skala (6 Größen), Chat-Text TGV-weit EINE Größe — s. type-scale. Schutzlevel-Modell: Ordner-Ampel = Default/Tenor des Verzeichnisses (Dateien erben) · Dokument-🔒-Schloss = konkrete Stufe pro Datei (kann strenger sein) — gleiche Stufen/Farben (🟢 intern · 🟡 vertraulich · 🔴 streng).

🧩 Selbst-vervollständigende Landkarte (Pflicht): stößt eine Bau-Lane (oder ein JC-Screenshot eines realen Falls) auf eine UX-Rolle, die hier nicht gelistet ist → flaggen + Komponente ergänzen, nie still ad-hoc bauen. Neue Fälle laufen über AGENT-UX#01 in diese Liste (Name + Darstellung + Regel) → bleibt die einzige Wahrheit gegen Drift.
🏷 Stand-Kennzeichnung + FREIGABE-WORKFLOW (JC 2026-07-03): Komponenten werden HIER am Katalog-Eintrag freigegeben, nicht über Sektions-Mockups (unmöglich, alle Use-Cases in „Heute“/„Klärung“ zu zeigen; im Chat-Modus kann jede Komponente gebraucht werden). Weg: ① Eintrag zeigt kanonische Form + States (+ Verhalten im Vertikalschnitt ODER Kitchen-Sink) → ② JC gibt den EINTRAG frei → Chip JC ✓ freigegeben → ③ Sektionen/Kai dürfen NUR Freigegebenes konsumieren (Antwort-Form-Policy wählt aus dem freigegebenen Vokabular; Konformitäts-Harness + AGENT-UXAUDIT#01 prüfen mechanisch). Neuer Bedarf im Chat → Landkarte ergänzen + freigeben, nie ad-hoc (Selbst-Vervollständigungs-Pflicht oben). Karten mit grünem Stand 03.07. ✓-Chip sind gegen die aktuelle Vertikalschnitt-Referenz geprüft; Karten ohne Chip sind noch nicht gegen die neue Referenz gesweept (können älteren Stand zeigen — im Zweifel gilt der Vertikalschnitt). Änderungs-Log: 03.07. statusline generisch (R-90, 11 Dimensionen) · source-link NEU (R-91) · klaerung-card Fall-Typen-Katalog (8) · doc-steckbrief NEU (Slide-over/Sheet, R-06) · approval-card Aktions-Raster (R-94) · scope-frame auf „Wir schauen auf“-Kanon · Thread-Tint-Kalibrierung (R-82). 02.07. kai-ava/A=B (R-85–R-87) · eckige Unterkanten (R-90). 03.07.(b) scope-selector ABGELÖST → freigegebenes Scope-Popover (beide Achsen) · Bestätigungs-Buttons: Ruhe-Label ohne „✓“ (✓ = Klick-Feedback R-81).
type-scaleSchrift-Disziplin (DESIGN#01-Token)geteilt
Aa h1 · 22px — nur Display-Zahl / großer Titel
Aa h2 · 18px — Bereichs-Titel
Aa h3 · 16px — Karten-/Sektions-Titel
Aa body · 16px — ⭐ CHAT-HAUPTTEXT (KAI + User) = EINE Größe TGV-weit
Aa small · 13px — Sekundär („Eine Frage noch"), Captions, Controls
Aa micro · 11px — Meta/Label/Hint (harte Untergrenze)
K
KAI-Antwort und
JC
deine Nachricht = dieselbe Größe (body).
Funktion
EINE strenge Skala (6 Größen · 3 Gewichte 400/500/600) über ALLE Komponenten.
Regel
⭐ Chat-Haupttext (KAI+User) = body, TGV-weit EINE Größe; Sekundär=small; Meta=micro. Größen NUR aus DESIGN#01-Token, nie pro-Komponente. „Superfett" raus (max. fw-bold 600).
Wo
alle Komponenten · CORE + gabriel
kai-avaKaï-Avatar (kanonisch, EIN Avatar überall)Stand 03.07. ✓
KKAkzent-Quadrat · Tinte=--surface (theme-sicher) · --sm für Scope-Zeile
Funktion
kennzeichnet Kaï als Sprecher — identisch in Chat-Bubble, Scope-Frame, Quittungen.
States
idle · denkt (Punkte)
Regel
R-85: GENAU EIN Kaï-Avatar überall (nie 2. Variante). Sprecher-Code: Kaï links.
Abstand
R-87: Luft LINKS (Rand→Icon) = RECHTS (Icon→Bubble) — beide --msg-gutter (18px), Kaï + User gespiegelt.
SSOT
foundation.css .kai-ava
Wo
überall wo Kaï auftritt
statusline„Ab hier"-Zustandszeile — GENERISCH über den Dimensions-Katalog (R-90)geteiltStand 03.07. ✓
EIN Baustein, parametrisiert über die Dimension — adaptive Formulierung, gewählte Option einheitlich Icon + fett/Akzent, untere Ecken eckig (Dauer-Marker: gilt ab hier abwärts). Alle 11 Dimensionen (JC: jeden Satz einzeln abnehmbar):
K
Wir schauen auf: 🏢 C4 SARL · 📅 Dieses Jahrändern ▾ · ① Scope
K
Wir arbeiten ab hier als 🧑‍💼 mandant_admin.ändern ▾ · ② Rolle
K
Wir wechseln zu 🏷️ Anna (Typ-B).ändern ▾ · ③ Mandant
K
Ab hier: 🧭 Concevoir (Etappe 3).ändern ▾ · ④ Etappe
K
Ab hier 🔒 streng vertraulich.ändern ▾ · ⑤ Vertraulichkeit
K
Ab hier auf 🌐 Français.ändern ▾ · ⑥ Sprache
K
Ab hier arbeitet ✨ der Vertrags-Extraktor für uns.ändern ▾ · ⑦ Skill
K
Ab hier werde ich 🎭 strenger — der Stichtag ist nah.ändern ▾ · ⑧ Persona
K
Ab hier antworte ich aus 📚 dem Wissens-RAG — jede Aussage mit Beleg.ändern ▾ · ⑨ Grounding
K
Ab hier gilt: 🤝 Souverän — ich schlage nur vor.ändern ▾ · ⑩ Autonomie
K
Ab hier ⏳ Stichtag-Modus — UStVA in 3 Tagen.ändern ▾ · ⑪ Frist
(⑫ Multi-User „Ab hier ist User X eingeschaltet" folgt mit PLAT#09 per-Member-RLS.)
„ändern ▾" → EINHEITLICHES Auswahl-Popover (scopepop-Optik, gewählt = is-selected) für JEDE Dimension:
Quelle meiner Antworten
Dimensions-Katalog (engine.js STATE_DIMS): Scope „Wir schauen auf: {v}" · Rolle „Wir arbeiten ab hier als {v}." · Mandant „Wir wechseln zu {v}." · Etappe „Ab hier: {v}." · Vertraulichkeit „Ab hier {v}." · Sprache „Ab hier auf {v}." · Skill „Ab hier arbeitet {v} für uns." · Persona „Ab hier werde ich {v}." · Grounding „Ab hier antworte ich aus {v}." · Autonomie „Ab hier gilt: {v}." · Frist „Ab hier {v}." · (Multi-User folgt mit PLAT#09)
Funktion
markiert JEDE konversationsweite Zustandsänderung als Kaï-Zustand — im Schema/Intent ein Daten-Turn {state, value}, nie Markup.
Regel
R-88 (Grundform: Dauer-Marker-Fläche · kai-ava · A=B · Chat-Textgröße · fade-in bei jeder Änderung) + R-90 (generisch: Dimensions-Katalog · adaptive Formulierung · einheitliches Auswahl-Popover · Option einheitlich Icon+fett · untere Ecken eckig).
SSOT
foundation.css .statusline · engine.js STATE_DIMS/stateLine()
Wo
Scope-Zeile (Instanz #1); jeder Moduswechsel: Rolle · Mandant · Etappe · Vertraulichkeit · Sprache · Skill · Persona · Grounding · Autonomie · Frist
source-linkQuellen-/Beleg-Link (GOLDENE REGEL, R-91)geteiltStand 03.07. ✓
Chip-Form — an Kaï-Aussagen, KPIs, Approval-Fuß, Tabellen-Zellen:
Inline-Form — die Beleg-ID im Text ist SELBST der Link (nie nackt):
Beleg #4821 — REWE 48,30 €
Funktion
jede Zahl/Aussage/Kaï-Antwort trägt ihre klickbare Quelle: 📄 Beleg (#xxxx → Drive) · 🏦 Buchung · 📚 Wissens-RAG (RAG#01-R5-Grounding) · 📈 Live-Daten. Quelle = DATEN im Schema (beleg:{id,drive} · sources:[…]), der Renderer macht den Link.
States
Chip · inline (#ID im Text) · fehlend = sichtbar „—" (Tabellen-Spalte)
Regel
R-91 / GOLDENE REGEL: jede Beleg-ID #xxxx IMMER mit Drive-Link, nie nackt — der Konformitäts-Check flaggt nackte IDs im DOM (fail-closed). Verwandt R-33 (Quell-Links Klär-Karten) · R-34 (out-bar).
SSOT
foundation.css .srclink/.srcbar · engine.js srcChip/srcBar/linkifyBeleg
Wo
Chat-Antworten · KPI-Kacheln · Listen/Tabellen · Approval-Karten · Klärung
doc-steckbriefDokument-Steckbrief — Slide-over (Desktop) / Bottom-Sheet (Mobil), KEIN PopupgeteiltStand 03.07. ✓ NEU
EIN Steckbrief für JEDES Dokument (Beleg · Vertrag · Buchung · Foto) — Messlatte = RKA-Doc-Detail. Zonen von oben nach unten:
🪪Beleg #4913 · NH Hotels 184,00 €🔗 Zuordnung✕
ORIGINAL (DRIVE-VORSCHAU) — live: /preview-iframe · Mockup: Platzhalter
PDF · S. 1
NH Hotels GmbHRECHNUNG
Rechnung 2026-4471 · 11.06.2026
Übernachtung 11.06.154,62 €
Summe184,00 €
↗ Original in Drive öffnen (#4913)
ZUSAMMENFASSUNG (KI-GEPARST)
Rechnung der NH Hotels GmbH über 184,00 € brutto (11.06.2026): eine Übernachtung inkl. Frühstück in Hamburg. Einordnung: Reisekosten ▸ Übernachtung · betrieblich (C3).
WAS DAS SYSTEM WEISS
DokumenttypRechnung⚡ 98 %ändern
KategorieReisekosten ▸ Übernachtung⚡ 94 %ändern
C3 intern Konfidenz high
VERKNÜPFUNGEN
🏦 Buchung 12.06. −184,00 €
✨ Meine Empfehlung: der Buchung vom 12.06. zuordnen — Valuta-Versatz 1 Tag ist bei Kartenzahlung normal.
Funktion
Detail-Ansicht jedes Dokuments: Vorschau (docpage aus erkannten Feldern, R-32) + Drive-Link (GOLDENE REGEL) · Zusammenfassung (KI-geparst) — das Dokument in 1–3 Sätzen Klartext, bei Verträgen der wichtigste Teil (Rate/Laufzeit/Frist/Kündigung als Prosa; Gold-Zone aus dem RKA-Doc-Detail) · „Was das System weiß“ (Felder mit Konfidenz-% und „ändern“ — konversationell: Eingabe unten gilt dem Fall, KEIN totes Formular) · 3-Achsen-Badges · Verknüpfungen (Buchung/Reise/Vertrag) · Kai-Empfehlung · typgerechte Entscheidung (Bestätigen rechts, R-13).
Darreichung
Desktop = rechtes Slide-over (Breite ziehbar, R-06) · Mobil = Sheet von unten (volle Breite, max 86 vh) — NIE schwebendes Popup (Handy-tauglich, JC 2026-07-03). Ersetzt das frühere Modal.
States
Original-Vorschau: live = Drive-/preview-iframe (Gold openDocPanel) · Mockup = ehrlich beschrifteter Skeleton-Platzhalter · ohne Original (Buchung ohne Beleg) = Feld-REKONSTRUKTION, klar so beschriftet — NIE Rekonstruktion als Original ausgeben · Essential/Pro (Dichte-Achse) · Feld unlesbar = „— nicht lesbar“
Regel
R-06 (Slide-over/Sheet, info + EINE Entscheidung) · R-33 (Quell-Links Beleg UND Buchung) · R-91 (Drive-Link) · R-94 ③ (Zugang von jeder Aktions-Karte über „Alle Details“).
SSOT
engine.js docSteckbrief() · foundation.css .steck/.docpage
Wo
Klärung (Beleg-Chips + Fall-Fokus) · Heute („Klären/Prüfen“) · künftig Verträge/Dokumente/Inbox
speaker-bubbleNachricht (KAI/Du)Stand 03.07. ✓
K
Ich habe 3 Belege abgelegt.
JC
Zeig mir Juni.
Funktion
Gesprächs-Turn.
States
KAI (hell, links) · Du (blau, rechts)
Regel
Sprecher-Code; Du rechts, KAI links — auch in Karten. R-89: Blase endet vor der Gegen-Icon-Spalte (Gegen-Ufer frei); Zone bleibt volle Breite (G1).
Wo
alle Chat-Screens
scope-selectorEntität/Zeitraum wählen — ABGELÖST: aufgegangen im freigegebenen Scope-PopoverStand 03.07. ✓
Freigegebene Form (Vertikalschnitt): „ändern ▾“ an der Scope-Zeile → EIN Popover mit BEIDEN Achsen (Entität und Zeitraum von–bis), vertikal angeordnet:
K
Wir schauen auf: 🏢 C3 GmbH · 📅 Juni 2026ändern ▾
Entität
Zeitraum
tagesgenau:–
Die früheren Einzel-Dropdowns der Topbar (🏢 ▾ · 📅 ▾ · „⋯ mehr“) sind ENTFERNT (R-40) — sie existieren nur noch in Alt-Cockpits bis zur Migration.
Funktion
Wahl von Entität UND Zeitraum (von–bis) — immer beide Achsen in EINEM Popover (R-41), geöffnet über „ändern ▾“ der Scope-Zeile ODER den Hero-Scope-Chip (G3, derselbe Wähler).
Regel
ABGELÖST durch scope-frame (= Instanz #1 der statusline, R-88/R-90); das Auswahl-Popover ist das EINHEITLICHE scopepop (R-90). Keine Topbar-Dropdowns, kein Overflow-„mehr“-Muster mehr.
SSOT
foundation.css .scopepop · engine.js (scopePop im Renderer)
Wo
über scope-frame in jeder Konversation/Datensicht · Alt-Cockpits = Migrations-Backlog (PLAT#03)
scope-frameDaten-Scope EINMAL pro Konversation — Instanz #1 der statusline (R-90)geteiltStand 03.07. ✓
KAI-Zeile (kanonisch ✅ — JC 2026-06-28; Wording-Kanon seit R-88/R-90: „Wir schauen auf: …“, untere Ecken eckig — s. statusline):
K Wir schauen auf: 🏢 C3 GmbH · 📅 Juni 2026 oder sag „zeig mir C4 / letztes Jahr"
„ändern ▾" → EIN Popover mit BEIDEN Achsen (Entität und Zeitraum von–bis):
Entität
Zeitraum (von–bis)
vonbis
Funktion
Daten-Scope (Entität + Zeitraum) — EINMAL pro Konversation, von KAI als leiser Eröffnungs-Rahmen behauptet. Scope-Wechsel betrifft IMMER beide Achsen (Entität UND Zeitraum von–bis), nie nur eine. Ändern: konversationell („zeig mir C4 / Q1 / 01.04.–30.06.") ODER 1 Klick „ändern ▾" (EIN Popover mit beidem).
States
beide gesetzt · Popover offen · von–bis-Range · im Thread = Thread-Scope
Regel
Konsolidiert scope-breadcrumb + scope-selector (Header-Dropdowns ENTFERNT, kein Doppel). „ändern" ändert Entität UND Zeitraum (von–bis) zusammen — nicht nur Entität (JC 2026-06-28). Identität → Konto, Essential/Pro → globaler Default. Auto-Scope darf nur verengen (RLS), nie erweitern. Kanonisch = KAI-Zeile; schlanke Leiste verworfen.
Wo
Eröffnung jeder Konversation/Datensicht · CORE + gabriel · Klärungs-Persona
axis-badges3 Achsen (Karte)
C3🔒 vertraulich🪄 KI-Vorschlag
✓ validiertEntwurfabgelehntvalidation_status
Funktion
Entität ⟂ Geheimhaltung(🔒) ⟂ KI-Vertrauen — orthogonal (Quelle: card.entity · card.confidentiality · card.validation_status).
States
KI-Vertrauen = ai_suggested · validated · draft · rejected (kategorisch, KEIN %)
Regel
Bibel M: 3 Achsen nie vermischen. 🔒 ab „vertraulich". %-Konfidenz nur bei Regeln (kb_suppliers), nicht auf Karten.
Wo
Listen · Steckbrief · Karten
micro-confirmkurze Ja/Korrigieren
Funktion
schnelle Inline-Bestätigung im Fluss.
States
offen · bestätigt(grün) · korrigiert
Regel
Bestätigen rechts; Aktion≠Info. Ruhe-Label OHNE „✓“ — das ✓ ist das KLICK-Feedback (R-81 .is-done), nicht Deko.
Wo
Onboarding · Intake · Klärung
approval-card„Ich schlage vor … nichts gespeichert“ — folgt dem Aktions-Karten-Raster R-94Stand 03.07. ✓
🪄 KAI schlägt vornichts gespeichert
Beleg NH Hotels · 184,00 € → Reise Hamburg (Übernachtung)?
Eine Frage noch
Wer war eingeladen?
Funktion
Gabriel-Muster: Vorschlag + 1–2 Fragen, nichts wird ungefragt gespeichert. EINE kanonische Karte (approvalCard()) für Inbox (Intake) UND Klärung (cardHtml) — einmal ändern = beide Flows.
States
offen · übernommen(leave-Animation) · später · (Klärung: mit Schnell-Antwort-Chips + Detail-Buttons)
Regel
Bibel H: Intake = Gabriel; du gibst frei. Stringenz: Inbox & Klärung teilen dieselbe Komponente.
Wo
Inbox · Klärung & Freigaben · Reise-Sammeln · Onboarding
suggestion-cardVorschlag (Arbeitsmodus)
Vorschlag
IONOS-Rechnung → C3 · IT & Telekom · mit Zahlung 05.06. verknüpfen.
Funktion
konkreter Zuordnungs-Vorschlag mit Quelle.
States
offen · übernommen · korrigiert
Regel
immer Quelle nennen; Bestätigen rechts.
Wo
Klärung · Abgleich · Banking
klaerung-cardKlär-Dialog als bedienbare Karte (PLAT#03 #727)geteiltStand 03.07. ✓
❓ KlärungBeleg ↔ Buchung
PDF · S.1
NH HotelsRECHNUNG
Übernachtung 11.06.184,00 €
Summe184,00 €
Gehört dieser Beleg (184,00 €) zur Buchung „NH Hotels" vom 12.06.?
Was soll ich prüfen?

Beleg-Datum 11.06. vs. Buchung 12.06. (1 Tag Differenz, typisch Karten-Valuta). Betrag identisch 184,00 €. Lieferant identisch. Wenn ja → Reise Hamburg zuordnen.

Schnell-Antwort:
Nach „annehmen" → .done-accent + Bestätigungs-Zeile (Karten-Flip), Karte verblasst 2–5 s (Bibel E):
✓ Erledigt — Beleg der Buchung 12.06. zugeordnet. (Schreiben erst nach Freigabe.)
Funktion
Klär-Dialog als Karte („nie wieder tippen"): Beleg-Vorschau + direkte Quell-Links (Beleg UND Buchung) + konkrete Frage + ausklappbares „was prüfen". render_hint:"klaerung_card" (kai_renderer.js).
States
offen · korrigieren · angenommen(done-accent + Flip) · quick-reply gewählt
Regel
Aktion ≠ Frage (Primär „annehmen" rechts). KEIN Composer auf der Karte (Free-Text nur am unteren Composer, Bibel §0e). Quick-Reply-Chips = KAIs Antwort-Angebote an der Nachricht (§0f). Nutzt beleg-preview (Klärungs-Variante) + done-state.
Wo
Klärung-Liste · Inbox-ToDos · Abgleich · Banking · Dups
Fall-Typen (Katalog, vollständig)
🔗 Zuordnung (Beleg↔Buchung, Valuta-Versatz erklären) · 🏢 Entität (C3/C4/privat, inkl. weiterberechenbarer Positionen) · ⚖️ Steuer (§13b Reverse-Charge → UStVA-Liste) · 🕳 Ohne Beleg (Buchung ohne Beleg: „kein Beleg nötig" oder Anbieter nennen) · 🌫 Unlesbar (Angaben nachliefern oder verwerfen — kein Blind-Bestätigen) · 👯 Duplikat (verwerfen, Original verlinkt) · 🔁 Vertrag erkannt (ablegen + Kündigungs-Erinnerung, VERTRAG#01) · 🎯 Zweck fehlt (dienstlich/privat, Fahrtenbuch). Jeder Typ hat EIGENE Aktions-Labels (confirm/decline aus den Daten) — nicht jeder Fall ist ein Ja/Nein. Quelle: klaerung_rework_mockup (PR #750, JC-abgenommen) + Bibel §0k.
result-tableErgebnis-Liste (Listen-Standard)
DatumLieferantBetragStatus
05.06.IONOS SE−79,00 €zugeordnet
10.06.Kunde Meyer AG+4.760,00 €zugeordnet
12.06.NH Hotels−184,00 €zu prüfen
Funktion
strukturierte Daten — auch direkt im Chat.
States
sortierbar · Pager · ⛶ Vollbild · einklappbar · leer
Regel
Bibel D; Beträge entitäts-relativ rot/grün, € nie umbrechen.
Wo
überall mit Listen
kpi-tileKennzahl
Entfernungspauschale
+695,40 €
Ohne Beleg
3
Funktion
eine Zahl prominent, optional Vergleich.
States
neutral · positiv · negativ
Regel
tabellarische Ziffern; € nie umbrechen (nowrap).
Wo
Auswertungen · Banking · Pendler
kpi-blockOrientierungs-Kennzahlen (Bereichs-Eröffnung, #763)geteilt
🧭 OrientierungC3 · Juni 2026
Saldo
+67.206 €
Offene Belege
26
Klärungen
5
Verträge fällig
2
Funktion
Orientierungs-Block: die wichtigsten Kennzahlen eines Bereichs auf einen Blick — Eröffnung der Orientierungsseite-KAI (jeder Menüpunkt = Orientierung→Dialog, #763). Mehrere kpi-tile gruppiert + Scope-Kontext.
States
geladen · lädt (Skelett) · leer · scope-gewechselt
Regel
scope-relativ (folgt scope-frame); jede Zahl ist klickbar → führt in den Bereich. Beträge entitäts-relativ rot/grün.
Wo
Orientierungsseite je Menüpunkt · Heute · Bereichs-Eröffnung
metric-barKategorie-/Cashflow-Balkengeteilt
IT & Telekom−8.012,00 €
Erlöse Beratung+12.480,00 €
Funktion
Beschrifteter Balken für Kategorien/Cashflow: Label + entitäts-relativer Betrag + Fortschritts-Balken (Anteil am Max). Klickbar → Drill-down (L2/L3 + Belege).
States
positiv (grün) · negativ (rot) · neutral · klickbar
Regel
Token-basiert (--c-danger/--c-confirm/--surface-2) = Dark-Mode-sicher; Betrag entitäts-relativ, nie umbrechen (tabular-nums). EINE Funktion bar() — überall dieselbe Form.
Wo
Auswertungen · Cashflow & Kategorien · RKA-Pauschalen
domain-cardDomänen-Objekt (Vertrag/Monat/Konto/Reise)
🔁 VertragC3
Vodafone GmbH · Mobilfunk 03-26-013
79,00 €/M · Konto Geschäft · Kündigung bis 30.09.
Funktion
kompakte Karte je Domänen-Typ.
States
Vertrag · Monatsabschluss · Konto · Reise · Aktionen
Regel
EINE Karten-Hülle (.card) für alle Typen.
Wo
Chat · Verträge · Monatsabschluss
beleg-previewDokument-/Bild-Vorschau (+ Klärungs-Variante)
Standard — eine Quelle:
PDF · S.1
IONOS SERECHNUNG
Hosting Juni66,39 €
USt 19 %12,61 €
Summe79,00 €
Klärungs-Variante — Beleg ↔ Buchung 2-spaltig (nur zum Vergleich, Bibel J):
📄 Beleg
PDF
NH Hotels11.06.
Summe184,00 €
🏦 Buchung
Konto
NH HOTELS12.06.
Betrag184,00 €
Funktion
echtes Dokument-Aussehen (kein Stub). Klärungs-Variante: Beleg + Buchung nebeneinander (Betrag/Datum/Lieferant vergleichbar) — Datenquelle für klaerung-card.
States
geladen · Skelett (lädt) · mehrseitig · Vergleich (2-spaltig)
Regel
Vorschau aus Steckbrief übernehmen, nicht neu bauen. Vergleich nur wenn nötig (Bibel J: 1-Spalte Default, 2 nur Beleg↔Buchung/Dups).
Wo
Steckbrief · Klärung · Inbox · Abgleich
audio-lineAudio: Mic (Input) · Vorlesen (Output) · Auto-Vorlesen (global)geteilt
🎤 Mic = am User-Composer (Input/Diktat)
Diktat läuft … 🎤
🔊 Vorlesen = an KAIs Nachricht (Output, NICHT am Composer)
K
Saldo C3 Juni: +3.570 € — Linkrate 98 %.
global:im User-Menü/Einstellungen
Funktion
Sprache: 🎤 Mic = Diktat am User-Composer (Input) · 🔊 Vorlesen = an jeder KAI-Nachricht (Output) · Auto-Vorlesen = globaler Schalter.
States
bereit · spielt · nimmt auf · Pause · Auto an/aus
Regel
🔊 nie am Composer (Input≠Output). Diktier-Standard: Pausen erlaubt, Stille-Toleranz einstellbar. Live = AUDIO#01 (gpt-4o-mini-tts + MediaRecorder→Whisper, iOS-garantiert). gabriel-Muster v1.10.0 „Écouter" → CORE erbt identisch.
Wo
Composer (Mic) · KAI-Nachrichten (Vorlesen) · CORE + gabriel
route-mapKarte / Wegbeschreibung
Berlin → Hamburg · 289 km · 03.06.
Funktion
Reise-/Adress-Visualisierung.
States
Route · einzelner Punkt · ohne Geo
Regel
Rich-Content je Typ (Bibel C); Start grün/Ziel rot.
Wo
Reise · Fahrtenbuch · Pendler
kai-action-buttonsAktionsleiste (Aktion≠Info)
Funktion
Entscheidungen am Ende einer Karte.
States
primär(confirm) rechts · sekundär · ghost
Regel
Aktion≠Info; Bestätigen immer rechts.
Wo
alle Karten
out-barExport + Output-as-Input
Funktion
Erzeugnis exportieren ODER wieder Input/RAG.
States
—
Regel
Bibel Q: Output-as-Input/RAG, TGV-weit.
Wo
jede Ausgabe (Auswertung/Paket/Pendler)
calloutHinweis (Info/Warn/Confirm)
ℹ️ Quelle = Arbeitsweg-Kalender.
⚠️ Entwurf — Steuerberater-Freigabe fehlt.
✅ Σ 1.139,40 € für 2025.
Funktion
Kontext/Status/Achtung — nicht klickbar.
States
info(blau) · warn(gelb) · confirm(grün)
Regel
Farb-Rollen: gelb=Achtung/zu-tun, nie als Aktion.
Wo
überall
chipSchnellantwort / Tag
Funktion
vorgeschlagene Antworten/Filter, 1 Tap.
States
ruhig · aktiv · hover
Regel
„Antworten als Auswahl" statt tippen.
Wo
Chat · Onboarding · Filter
vorschlags-chipVorgeschlagener nächster Schritt (Orientierung→Dialog, #763)geteilt
Funktion
vorgeschlagene nächste Aktionen (Orientierung→Dialog, #763) — führt in eine Route/einen Dialog (→), kontextuell aus Scope + offenen ToDos. ≠ chip (das beantwortet KAI; dieser handelt/navigiert).
States
ruhig · hover · erledigt-ausgegraut
Regel
Aktions-Vorschlag mit Ziel (→); kein Tipp-Zwang; verschwindet, wenn erledigt.
Wo
Orientierungsseite-KAI · Heute · leerer Chat · nach Abschluss
long-proselange KAI-Erklärung (Engine: prose-Block)
K

Gute Frage — kurz erklärt, warum die UStVA für C3 im Juni so aussieht:

Was zusammenkommt

Deine Ausgangsrechnungen ergeben die Umsatzsteuer, die Eingangsrechnungen die Vorsteuer. Die Differenz ist die Zahllast ans Finanzamt.

  • Umsatzsteuer (19 %): 4.000,00 € → 760,00 €
  • Vorsteuer aus Belegen: −402,18 €
  • Zahllast: 357,82 €
Was du noch prüfen solltest

Zwei Belege sind noch ohne Zahlung verknüpft — die könnten die Vorsteuer leicht erhöhen. Sag Bescheid, dann zeige ich sie dir.

Funktion
ausführliche Antwort/Erklärung — Absätze, optional Zwischen­überschriften (h5) + Listen, auf Lesbarkeit optimiert.
Felder
Engine-Envelope {kind:"prose", text:"…Markdown…"}
States
kurz (1 Absatz) ↔ lang (mehrere) · Vorlesen via audio-line
Regel
Lesebreite ≤ ~70 Zeichen · Markdown→ruhige Typo · KEINE Karten-Hülle (reiner Sprecher-Text, KAI links).
Wo
Erklärungen · Zusammenfassungen · „warum?"
composerEingabe (immer sichtbar · Auto-Grow)geteilt
Funktion
EINE Eingabe-/Senden-Form auf jedem Screen.
States
leer · tippt · mehrzeilig (Auto-Grow→Scroll) · Diktat · Kontext-Chip
Regel
🔴 PFLICHT: Auto-Grow bis Max-Höhe, dann Scroll — Text nie verschlucken. Senden = send-round.
Wo
alle Screens · CORE + gabriel
thread-contextThread-Modus (Toggle + Tönung)geteilt
K
Wir sind im Thread „Hamburg-Reise" — alles hier bezieht sich darauf.
JC
Welche Belege fehlen noch?
Toggle (kein ✕): AUS → weiß → nächste Antwort = neuer Thread; alter bleibt in Historie.
Funktion
signalisiert „ich bin in diesem Thread": ganzer Bereich blau-grau getönt (bis hinter die User-Bubbles); weiß = allgemeiner Chat.
States
AN (getönt) · AUS (weiß) · reversibel (Historie)
Regel
„Im Kontext" = TOGGLE, nicht Löschen. Verlassener Thread NIE gelöscht (Persistenz/Historie = AGENT-CHAT#01).
Wo
jeder Chat · CORE + gabriel
collapsible-sectionAuf-/Zuklappen
▼ Bereits erledigt & versendet (3)
Mai 2026 · 16 Belege · versendet · Σ 4.760 €
Funktion
lange/sekundäre Inhalte einklappen.
States
▶ zu · ▼ offen
Regel
Caret links, ganze Zeile klickbar.
Wo
Outbox · Monatsabschluss · Listen · gabriel-Etappen
claim-blockMarken-Aussage / Begrüßung
Dein KI-Assistent, der nachfragt statt zu raten — in einer EU-gesicherten Umgebung.
Funktion
Marken-Claim/Begrüßung (oben, blaue Linksrand-Linie).
States
statisch
Regel
≠ composer-helper. Claim gehört oben — der Platz über dem Composer ist NICHT für Promo.
Wo
Heute-Kopf · Onboarding
composer-helperInfo/Status über dem Composergeteilt
💬 Schreib unten — deine Frage zu „C3 · Juni" landet im Verlauf.
⚠️ 2 Belege ohne Zahlung — vor dem Sperren prüfen.
Funktion
dezente Zeile direkt über dem Composer = wichtige Info/Status.
States
Hinweis · Warnung · Kontext
Regel
Platz über Composer ist für relevante Info/Status, NIE Promo. Aktion≠Info.
Wo
über jedem Composer · CORE + gabriel
done-stateerledigt-grün (Linksrand)
K
✅ Erledigt — IONOS-Rechnung abgelegt & mit Zahlung verknüpft.
Funktion
signalisiert „fertig/bestätigt".
States
erledigt
Regel
🟢 als Linksrand-Akzent der Karte/Bubble — NICHT als Füllblock links vom KAI-Icon.
Wo
nach Aktion/Approval · gelöste Klärung
data-tableVolle Tabelle (Toolbar: Suche/Filter/Pagination/Vollbild/Klapp-Titel)geteilt
Belege· 24
DatumLieferantBetragStatus
05.06.IONOS SE−79,00 €zugeordnet
12.06.NH Hotels−184,00 €zu prüfen
Seite 1/3
Funktion
die volle Tabelle (vs. einfaches result-table): Klapp-Titel-Header (▾) · Suche · Filter · Max/Seite · Pagination · ⛶ Vollbild · sortierbare Köpfe · optional Multiselect (file-actions).
States
auf/zu · gefiltert · leer · Vollbild · Auswahl-Modus
Regel
EINE Toolbar überall (Listen-Standard, kein Sonderfall) — Belege/Banking/Dokumente/Verträge/Verlauf.
Wo
jede große Liste · CORE + gabriel
nav-railLinke Navigation (Gruppen · Items · Scope · resizable)geteilt
START
🏠 Heute
💬 KAI — Chat
EINGANG
🔔 Klärung & Freigaben 3
📂 DOKUMENTE & ABLAGE
📂 C3/Rechnungen
🌍 PROJEKTE (WELT B)
🔗 gabriel.megabook.fr
Funktion
globale Navigation: klappbare Gruppen · Items mit Icon · ToDo-Badge · Verzeichnisbaum (Schutz-Ampel) · Welt-B-Links. Liefert Scope/Rolle/Sprache global (Shell-SSOT).
States
aktiv · Badge · Rail (eingeklappt) · Drawer (mobil) · resizable (Griff)
Regel
SSOT-Shell konsumieren, nie restylen; §0d EINE Scrollbar (keine eigene sichtbare).
Wo
alle Screens (links) · CORE + gabriel
file-actionsDatei-Aktionen (1 Set: „…" + Multiselect)cross-cutting
pro Datei „…"
IONOS Juni.pdf
↔ Verschieben
⬇ Herunterladen
✉ Per Mail
📚 in Wissen (RAG)
⚡ als Chat-Input
✎ Umbenennen
🗑 Löschen (Schutz-Prüfung)
Multiselect → identisches Set als Bulk-Bar
3 ausgewählt
Funktion
EIN Aktions-Set: Verschieben · Herunterladen · Per Mail · in Wissen (RAG) · als Chat-Input · Umbenennen · Löschen (Schutz-Prüfung). Pro Datei „…" = identisch zur Multiselect-Bulk-Bar.
States
Menü zu/offen · Bulk (N ausgewählt)
Regel
cross-cutting (Dokumente/Belege/Verträge…); Löschen/Verschieben → Dokumentalist prüft Schutzlevel. Output-as-Input/RAG = Owner.
Wo
jede Datei-/Dokument-Liste
folder-treeVerzeichnisbaum (Checkbox-Tree-Vorschlag §0g.5)geteilt
📁 C3 GmbH
2 Ordner gewählt
Funktion
Ordner-Navigation + Mehrfachauswahl mehrerer Ordner per Checkbox-Tree (Vorschlag zu §0g.5). Farbpunkt = Schutz-Ampel (Default des Ordners).
States
einzeln klicken (öffnen) · Checkbox (multi-select) · Eltern wählt Kinder
Regel
Ordner-als-Chat-Input (ganzes Verzeichnis → Chat, Pflicht Projekt A/B). Tree lebt im Menü-Panel; Multi-Select blendet Ordner-Bulk-Bar ein.
Wo
Dokumente & Ablage · Projekt-Ablage
account-status-cardKonten gruppiert (Engine: account_status_card)
🏦 Konten13 aktiv
KontoEntitätIBANSaldoTxn
BV GeschäftC3DE2910…0017+4.812,30 €35
Privat GiroPrivatDE4420…8841+1.290,55 €22
C4 CompteC4FR7630…0042−210,00 €9
Funktion
EINE Karte mit accounts[] = kompakte Konto-Tabelle (Karten-Flut-Fix: nicht mehr 1 Karte je Konto).
Felder
count · accounts[{account_name, iban_masked, entity, balance, currency, txn_count}]
States
1 Konto · viele (scrollbar) · leer
Regel
⛔ IBAN maskiert (DE29…0017), nie roh; Saldo entitäts-relativ rot/grün.
Wo
Banking · „Wie ist der Kontostand?"
stepperPhasen-Fortschritt (gabriel 5 Étappes / CORE-Workflow)geteilt
✓Recueillir› 2Comprendre› 3Concevoir› 4Produire› 5Partager
Funktion
nummerierte Phasen mit Fortschritt. Ursprung = gabriels 5-Étappes-Kanon (Recueillir·Comprendre·Concevoir·Produire·Partager). CORE-Schritt-Flows (Monatsabschluss, Onboarding) nutzen dieselbe Hülle.
States
erledigt (✓) · aktiv · zukünftig
Regel
genau 1 aktiv; gabriel-Étappes-Namen bleiben kanonisch (FR) — nicht umbenennen.
Wo
gabriel-Top-Nav · CORE-Schritt-Flows
universe-bandLebenszyklus-Band (Rohstoff → Werk)geteilt
📥 Souvenir📖 Mémoire🎨 Œuvre
Funktion
semantisches Band für den Lebenszyklus-Status eines Objekts. gabriel: 📥 Souvenir (roh) → 📖 Mémoire (treu) → 🎨 Œuvre (fertig). CORE-Analog: Eingang → geprüft → abgelegt.
States
3 Stufen (Eingang · Bearbeitung · fertig)
Regel
semantisch (Bedeutung), nicht Deko; gleiche Stufen-Logik CORE+gabriel.
Wo
gabriel-Karten/Modals · CORE-Doc-Status
fidelity-badgeTreue/KI-Vertrauen (4 Stufen = validation_status)geteilt
Mot pour motRésumé sourcéInférence prudenteÀ vérifier
Funktion
zeigt, wie belastbar eine Aussage ist. gabriel-Wortlaut (4-État-Treue): verbatim · résumé sourcé · inférence · à vérifier. = dieselbe Achse wie CORE validation_status (ai_suggested · validated · draft · rejected) — EIN Konzept, 2 Vokabulare (DESIGN#04).
States
4 Stufen
Regel
⛔ kein %-Wert — = validation_status-Achse, nicht Konfidenz-%.
Wo
gabriel-Fiche-Passagen · CORE-Karten-validation_status
tag-pillKategorie-Tags (6 Achsen · Variante chip)geteilt
👤 Marie📍 Lyon🕰️ 1985❤️ Freude📖 Kapitel 3🏷️ frei
Funktion
kategorisierte Tags (Variante von chip). gabriel: 👤 Personne · 📍 Lieu · 🕰️ Époque · ❤️ Émotion · 📖 Chapitre · 🏷️ Libre. CORE: freie Labels/Schlagworte.
States
Anzeige · klickbar (Filter) · entfernbar
Regel
Icon = Kategorie; suchbar/filterbar.
Wo
gabriel-Fiche · CORE-Dokumente/Verschlagwortung
lightboxBild/Doc-Vollansicht (Loupe)geteilt
🔍 NH Hotels — Vorschau ✕
[ Dokument groß ]
Funktion
Overlay-Vollansicht eines Bildes/Belegs (Loupe). „Öffnen ↗" → echte Vorschau, kein 404.
States
offen · zu · mehrseitig
Regel
Overlay (kein Seitenwechsel); Escape/✕ schließt.
Wo
Beleg/Foto-Vollansicht · Klärung „Öffnen ↗" · gabriel-Souvenir
gallery-pickerKI-Vorauswahl-Galerie (Bulk-Import)geteilt
✓✓✓
12 von 40 von KAI vorausgewählt · „erzähl dazu" je Bild
Funktion
Galerie mit KI-Vorauswahl (relevante Bilder markiert) + Erzähl-Schritt. gabriel: ~12 Fotos vorausgewählt. CORE: Bulk-Bild-Import (PLAT#07).
States
vorausgewählt · manuell an/ab · Karussell
Regel
Vorauswahl = Vorschlag, User korrigiert; nichts ohne Bestätigung übernommen.
Wo
gabriel-Déposer · CORE-Bulk-Import

🔌 Engine-Datenformen — die 7 echten Karten-Shapes (render_hint)

Die KAI-Karten rendern die echten Engine-Envelopes — abgeglichen mit CARD_SCHEMA_REFERENCE.md (#697, AGENT-CHAT#01), tool-treu, Scope/RLS injiziert. Jede Karte trägt immer: type · render_hint · domain · validation_status. KI-Vertrauen-Achse = validation_status (ai_suggested · validated · draft · rejected) — nicht ein %-Wert (das % ist die Konfidenz deterministischer Regeln, s. kb_suppliers). Jeder render_hint → EINE kanonische Komponente:

render_hintFelder (real, gem. #697)kanonische Komponente
result_cardheadline · id · items[] (optional Liste, z.B. Reisen)callout/result-table (Lead)
contract_cardcontract_id · name · entity · expires · amount · currency · direction · confidentiality · document_iddomain-card (Vertrag)
month_summary_cardentity · period · saldo · saldo_value · txn_count · open_docs · lockeddomain-card (Monat)
account_status_cardcount · accounts[{account_name · iban_masked · entity · account_type · bank_name · currency · balance · balance_date · txn_count}]account-status-card (gruppiert)
next_actions_cardtotal · belege_review · buchungen_offen · vertraege_aktion · fenster_tagedomain-card (Aktionen)
travel_summary_cardtype=result_card + render_hint · trip_id · label · entity · status · period · km · uebernachtungen · pauschalen_eur · belege_open · belege_totaldomain-card (Reise) + route-map
approval_cardtype=approval_card · approval_tier (jc_direct) · state (pending) · proposal{skill,args} · preview[[wort,wert]] · widerruf · writes[] · reversible · audit{event,required} · actions{approve,edit,reject} · microcopy
⛔ Q0062 (CODEX-KAI#03, 25.09.): preview trägt Ziel · Wirkung · Grund · Geltung als Paare, widerruf den Rückweg im Klartext. Bis dahin standen diese Angaben nur in proposal.args — und die liest der Renderer nicht.
approval-card
knowledge_card RAG#01frage/question/title · antwort/answer/snippet/text · sources[]{label · url? · document_id? · drive_file_id?} · confidentiality → 🔒knowledge-card — .kc-snip-Clamp + „Mehr anzeigen“ (lange RAG-Antwort NIE als Textwand) · srclink (R-91, Drive-Link aus drive_file_id selbst gebaut) · 🔒 R-132

knowledge_card ist die RAG-Wissensabfrage-Karte (RAG#01/Mig-227-Cutoff), nicht Teil der #697-Finanz-Engine — daher der eigene Stand-Chip. Regel: eine RAG-Antwort ist IMMER diese Karte (geclampter Snippet + klickbare Quellen), NIE ein roher Chunk-Dump. Der Konformitäts-Harness prüft das (DRIFT-KNOWLEDGE: Renderer da + lange Antwort geclampt). Quellen tragen ihren Drive-Link (R-91, GOLDENE REGEL) — die Karte baut ihn aus drive_file_id selbst, braucht keine fertige url.

Envelope: { v:1, domain, sprache, scope:{mandant_id, entity, confidentiality_max, source}, blocks:[ {kind:"card"|"prose", …} ] }. Anti-Fabrikat: "—"/null = nicht vorhanden (nie erfinden). iban_masked = einzige IBAN-Form. saldo (String, Anzeige) vs. saldo_value (Zahl, Logik). Dedup über (render_hint, id, trip_id, contract_id). ✅ deckungsgleich mit #697.

🟧 gabriel-Memoir — Instanz-render_hints (gleiche Hülle/Regeln, eigene Typen)

Universell: derselbe Renderer + dieselben generischen Blöcke (prose/long-prose/list/table/approval/audio/image/link) tragen auch gabriel. Nur die Domänen-render_hints unterscheiden sich — Memoir statt Finanz. Stimme/Theme (FR/warm) = DESIGN#04, kein Komponenten-Unterschied.

render_hint (gabriel)Rollekanonische Komponente
memoir_fiche_cardErinnerungsblatt (brouillon_ia → validé): Synopsis + Etappe + Treue-Statusdomain-card + long-prose
souvenir_cardeinzelne Erinnerung/Anekdote (Datum, Ort, Personen)domain-card
etappe5_card5-Etappen-Fortschritt (Recueillir·Comprendre·Concevoir·Produire·Partager)domain-card (Stepper)
photo_cardFoto/Scan mit Bildunterschriftbeleg-preview (image-Variante)
synopsis_cardZusammenfassung eines Kapitels/Abschnittslong-prose
(audio-Vorlesen)Fiche vorlesen / Diktataudio-line (geteilt)

4-Status-Treue (verbatim/résumé/inférence/à vérifier) = eigene Achse, fließt in validation_status/Badge. Shell · Composer · thread-context · scope-selector tragen für gabriel mit (geprüft).

🎛 Composer-Senden — 3 Varianten zur Wahl (JC entscheidet)

Der alte ➤-Glyph-Knopf war „schrecklich". Drei saubere Optionen — kanonisch gesetzt = Variante B (Paper-Plane-SVG, kompakt-rund). Sag, falls du A oder C willst, dann ziehe ich es überall nach.

Nachricht …
A · Pill mit Labelmaximal klar/zugänglich (Text + Icon). Etwas breiter — gut auf Desktop.
Nachricht …
B · Rund Paper-Plane ✅ kanonischkompakt-modern, echtes SVG (kein Glyph), Hover-Lift. Mobil-freundlich.
Nachricht …
C · Inline im FeldKnopf sitzt im Eingabefeld rechts, erscheint bei Text. Minimalistisch.

EINE durchgehende Konversation mit allen Bausteinen in echter Kombination, Realdaten. Frage: „in einem Guss?" + „hübsch?" — in Hell und Dunkel (Toggle oben rechts).

K Wir schauen auf: 🏢 C3 GmbH · 📅 Juni 2026 ändern ▾ oder sag „zeig mir C4 / letztes Jahr"
K
Guten Morgen Jean-Chris 👋 Alles liegt auf EU-Servern — du gibst frei, nicht ich. 3 Dinge brauchen kurz dich, den Rest habe ich erledigt.
🔊 Vorlesen 0:08
JC
Was steht für C3 im Juni an?
K
Drei offene Klärungen für C3 · Juni:
DatumLieferantBetragStatus
05.06.IONOS SE−79,00 €zu prüfen
12.06.NH Hotels−184,00 €zu prüfen
10.06.Kunde Meyer AG+4.760,00 €zugeordnet
K
Beim ersten habe ich einen Vorschlag — nichts gespeichert:
🪄 KAI schlägt vornichts gespeichert
IONOS-Rechnung Juni → C3 · IT & Telekom?
C3🔒 vertraulich🪄 96 %
PDF · S.1
IONOS SERECHNUNG
Hosting Juni66,39 €
USt 19 %12,61 €
Summe79,00 €
Eine Frage noch
Mit der Abbuchung vom 05.06. (−79,00 €) verknüpfen?
JC
Ja, passt.
K
Erledigt ✅ — abgelegt & verknüpft. Status Monatsabschluss C3 · 2025-12 (month_summary_card):
📦 Monatsabschlussoffen (nicht gesperrt)
Saldo
+67.206,32 €
Transaktionen
35
offene Belege
26
⚠️ 26 offene Belege — vor dem Sperren prüfen → zur Klärung
K
Beim zweiten ist es eine echte Klärung (klaerung-card) — ich zeige Beleg und Buchung nebeneinander:
❓ KlärungBeleg ↔ Buchung
📄 Beleg
PDF
NH Hotels11.06.
Summe184,00 €
🏦 Buchung
Konto
NH HOTELS12.06.
Betrag184,00 €
Gehört dieser Beleg (184,00 €) zur Buchung „NH Hotels" vom 12.06.?
Was soll ich prüfen?

1 Tag Differenz (Karten-Valuta), Betrag und Lieferant identisch. Wenn ja → Reise Hamburg.

Schnell-Antwort:
JC
Ja, zuordnen
K
✓ Erledigt — Beleg der Buchung 12.06. zugeordnet, Reise Hamburg. (done-accent + Karten-Flip; Schreiben erst nach Freigabe.)
JC
Und wie ist der Kontostand?
K
13 aktive Konten (account_status_card — gruppiert, IBAN maskiert):
🏦 Konten13 aktiv
KontoEntitätIBANSaldoTxn
BV GeschäftC3DE2910…0017+4.812,30 €35
Privat GiroPrivatDE4420…8841+1.290,55 €22
C4 CompteC4FR7630…0042−210,00 €9
JC
Und meine Pendlerpauschale 2025?
K
Aus deinem Arbeitsweg-Kalender (19 km · 122 Bürotage · 74 Homeoffice):
Entfernungspauschale
+695,40 €
Homeoffice
+444,00 €
✅ Σ 1.139,40 € für 2025.
⚠️ Entwurf — Steuerberaterin-Freigabe steht aus.
JC
Wie weit war die Hamburg-Reise nochmal?
K
Reise Berlin → Hamburg, 03.–05.06.:
289 km · Bahn + Hotel (NH) · Projekt Alpha
Diktat möglich:🎤 „Eingeladen war Kunde Meyer …"
K
Noch ein Hinweis zu einem Vertrag, der bald kündbar ist:
🔁 VertragC3
Vodafone GmbH · Mobilfunk 03-26-013
79,00 €/M · Konto Geschäft · Kündigung bis 30.09.
JC
Warum ist die UStVA-Zahllast so hoch — erklär mal.
K

Klar — kurz erklärt, wie die Zahllast zustande kommt:

Die zwei Seiten

Aus deinen Ausgangsrechnungen entsteht Umsatzsteuer, aus den Eingangsrechnungen Vorsteuer. Die Differenz schuldest du dem Finanzamt.

  • Umsatzsteuer (19 %): 760,00 €
  • Vorsteuer aus Belegen: −402,18 €
  • Zahllast: 357,82 €
Warum nicht weniger?

Im Juni gab es kaum Eingangsrechnungen mit Vorsteuer — der größte Posten (IONOS) ist klein. Sobald du die 2 offenen Belege verknüpfst, sinkt die Zahllast evtl. leicht. Soll ich sie raussuchen?

🔊 Vorlesen 0:21
🔒 EU-Server · vertraulich · KAI schlägt vor, du entscheidest.
💬 Schreib unten — deine Frage zu „C3 · Juni" landet im Verlauf.

🧊 EINGEFRORENES ARCHIV (T3-7, JC-OK 19.07.): Stand eingefroren am 19.07.2026 — die Prüf-FUNKTION lebt in den Guards weiter (familie_guard C/D-Achsen · Harness · CI), die Befund-Inhalte sind im Anforderungs-Register aufgegangen. Dieser Reiter bleibt als Historie (Doku-Wert; „löschen geht später immer").

Wo dieselbe UX-Rolle bisher unterschiedlich aussah → EINE kanonische Version festgelegt. Bereinigte Abweichungen:

KomponenteDrift (vorher)Kanonisch (jetzt)
scope-selector„Hamburg"-Kasten, C3-Pille, Perioden-Select — 3 LooksEINE Pille (Icon + Label + ▾), aktiv=blau
kai-action-buttonsBestätigen mal links, mal mittig, Farben gemischtBestätigen rechts (confirm), sekundär/ghost links
domain-cardverschiedene Karten-Hüllen je SektionEINE .card-Hülle für alle Typen
kpi-tile€ brach auf neue Zeile, mal grün mal schwarznowrap; positiv grün / negativ rot, sonst neutral
calloutgelb teils als Button benutztgelb = nur Achtung/Hinweis, nie Aktion
beleg-previewgrauer Stub-Kastenechtes Dokument-Aussehen (.docpage)

Diese 20 Namen werden in die Chatbot-UX-Bibel aufgenommen (SSOT). Ab dann: Änderung an name → automatisch überall (Renderer + Lanes erben).

Dieselben Bausteine — gabriels Memoir-Welt (warm, Französisch). EIN Renderer/Vokabular wie CORE; nur die render_hints sind Memoir statt Finanz. Marke/Stimme (Terracotta, FR) = DESIGN#04, kein Komponenten-Unterschied.

G

Bonjour Jean-Chris 🌿 Racontez-moi un souvenir — je l'écoute, puis j'en fais une fiche. Rien n'est figé tant que vous ne validez pas.

🔊 Écouter 0:06
JC
L'été 1985 chez ma grand-mère en Bretagne…
G
souvenir_card
🕰 Souvenirà vérifier
Été 1985 — Bretagne
Lieu: maison de grand-mère · Personnes: grand-mère · Saison: été
G
memoir_fiche_card (brouillon_ia)
📄 FicheÉtappe: Recueillir

Brouillon : « Les étés en Bretagne sentaient le sel et le pain chaud ; la cuisine de grand-mère ne se taisait jamais… »

🪄 inférenceà vérifier
G
photo_card
🖼 Photo
JPG
🏖️
Légende : « Bretagne, été 1985 »
G
etappe5_card — die 5 kanonischen Etappen:
🪜 5 Étappes
1 Recueillir ✓2 Comprendre3 Concevoir4 Produire5 Partager
🔒 Serveurs UE · gabriel propose, vous validez.
🟧 gabriel — récit en cours (Bretagne)

EINE Komponenten-Bibliothek, ZWEI Marken-Paletten (DESIGN#01 data-brand-Vertrag). Gleiche Rolle-Tokens, andere Hex — Re-Branding ändert NUR Look, nie Bedeutung/Funktion. Der gabriel-Kitchen-Sink flippt live auf data-brand="gabriel" (warm). Quelle: PLAT_06/tokens.css (nicht erfunden).

🔵 CORE — kühl (data-brand=core)

--bg#f4f6f9
--surface#ffffff
--surface-2#eceff4
--border#e1e4ea
--c-action#185fa5
--c-action-bg#e6f1fb
--selected-bd#e3c200

🟧 gabriel — warm (data-brand=gabriel)

--bg#faf5ec
--surface#fffdf8
--surface-2#f2e9da
--border#e7dcc9
--c-action#9a4a28
--c-action-bg#f6e7de
--selected-bd#d99a3a

Stimme/Theme unterscheiden (gabriel FR/warm vs CORE kühl) = DESIGN#04 · kein Komponenten-Unterschied. Megabook = reine Akzent-Marke (Lila), Flächen neutral. Dark-Mode je Marke vorhanden.

UX-Feedback-Panel (.ux-fb-panel) — JC schreibt direkt auf jeder Mockup-Seite was auffällt; das Feedback fließt in die UX-Pipeline. Phase 1: localStorage (Key tgv_ux_fb_v1_{page}), Export → Clipboard → Tower. Phase 2 = Supabase · Phase 3 = UXBOT (KONZEPT_UX_FEEDBACK_PANEL.md). Live auf dieser Seite: unten rechts „💬 Feedback" ausprobieren →

ux-fb-panelFeedback erfassen je Seite/Sektion (Phase 1: localStorage)geteilt
Auf allen 6 Mockup-Seiten ausgerollt (data-ux-page + data-ux-version am <html>). Floating Toggle (unten rechts) → Panel rechts, kollabierbar, Badge = offene Einträge.
Beispiel: „KPI-Tiles zu groß auf Mobile"
UX · buchungen · offen · 29.06.2026
„Theme-Toggle wirkt nicht"
BUG · allgemein · offen · 29.06.2026
Funktion
Feedback je Seite + Sektion (aus location.hash) erfassen, Typ wählen (UX/Bug/Idee/OK/Kritisch), exportieren. Überlebt Reload (localStorage).
States
geschlossen (nur Toggle) · offen · Liste leer/gefüllt · Badge-Count
Regel
Farben nur via --c-*; additive Klassen (kein .ds-*-Restyle); Dark-Mode + 375px-tauglich (≤360px = 100vw).
Wo
alle 6 Mockup-Seiten · später Core-Shell (Phase 2)

🗃 Datenmodell (universell ab Phase 1)

FeldBeispielZweck
idfb-…eindeutig
page · section · versioncore_app_mockup · buchungen · v3.0wo (Seite/Sektion/Stand)
comment · type„KPIs zu groß" · ux/bug/idee/ok/kritischwas
author · statusjc · offen/in_bearbeitung/umgesetzt/abgelehntwer/Stand (Phase 2)
timestamp · pipeline_triggered · linked_prISO · false · nullPipeline-Anbindung (Phase 2/3)

Rollout-Block (CSS+HTML+JS) ist auf jeder Seite identisch vor </body> eingebettet — kopierbar. JS liest data-ux-page/-version vom <html>.