flowchart LR
Sidebar["Linke Seitenleiste\nKontaktbogen"] --> Main["Zentraler Bereich\nSucher oder Transkript"]
Main --> Inspector["Rechter Inspektor\nAufnahme + Partitur + Ablage"]
StatusBar["Statusleiste\n(unten)"] --> Sidebar
StatusBar --> Main
StatusBar --> Inspector
Mac Backstage — Bedienung und Bedienphilosophie
Das Backstage-Fenster folgt der Bauhaus-Regel: jedes sichtbare Element ermöglicht eine unmittelbar ausführbare Aktion; Diagnose-Telemetrie gehört hinter einen aufklappbaren Bereich oder in das CLI.
Famulus Repro Backstage ist die macOS-Anwendung, die das Bild des iPhones empfängt, die Verarbeitungskette ausführt und die PDAI-Ablage verwaltet. Das Fenster ist in vier funktionale Bereiche gegliedert, von denen jeder genau einer Aufgabe dient.
1 Das Bauhaus-Prinzip
Die Gestaltungsrichtlinie für Famulus Repro lautet: Form folgt Funktion — zeige nur, was der Nutzer gerade verstehen und handeln kann.
Das schließt eine Reihe von Dingen aus dem Primärfluss aus:
- Keine Rohpixelmaße (
2680 × 3520 px) in sichtbaren Panels - Keine Algorithmusnamen (
mac-segmentation,vision-documents,CIDocumentEnhancer) - Keine Fließkomma-Konfidenzwerte oder Perzentilzahlen
- Keine gelben/bernsteinfarbenen Hervorhebungen für routinemäßige Ausgaben (Warnfarbe ist reserviert für Zustände, die eine sofortige Nutzeraktion erfordern)
Wenn ein Diagnose-Bedürfnis besteht — etwa beim Testen einer neuen Vorlage oder beim Debuggen einer schlechten Aufnahme — stehen das famulus-pipeline-CLI und der ausgeklappte “Erweitert”-Bereich im Inspektor zur Verfügung.
2 Gliederung des Fensters
2.1 Linke Seitenleiste: Kontaktbogen
Die linke Seitenleiste zeigt alle erfassten Seiten als skalierbare Vorschaubilder. Die Thumbs wachsen mit der Breite der Seitenleiste — bei einem breiten Sidebar erscheinen Thumbnails in Buchformat, bei einem schmalen in Listenformat. Der Split-Teiler ist durch Ziehen einstellbar und bleibt persistent.
Seitennum-Beschriftung: Jeder Thumb zeigt die <pagenum>-Bezeichnung aus dem Extension-XML (page_NNN.ext.xml). Werte in eckigen Klammern ([23]) im XML-Header gelten als erkannte Seitenzahlen. Wenn keine Seitennum erkannt wurde, steht ein einfaches x. Diese Beschriftung stammt ausschließlich aus dem OCR-Ergebnis oder aus einem manuellen Override — nie als Inferenz aus der Reihenfolge.
Pagenum-Override: Rechtsklick auf einen Thumb → „Seitennum ändern” → Freieingabe. Der Override wird in metadata/page_selection.json gespeichert, nie direkt im OCR-XML.
Konsekutiv-Schutz: Wenn erkannte, aufeinanderfolgende Seitenzahlen existieren, dürfen Seiten mit unerkannter Zahl (x) nicht zwischen diese eingefügt werden. Die Reihenfolge der erkannten Seitennummern ist eine harte Reihungsgrenze.
Dubletten-Icon: Wenn zwei Thumbs denselben Stem (Firma + Datum + Betrag, oder dieselbe Seitennum) haben, zeigt jede Karte ein 🔁-Icon. Klick → DuplicateSelectionView: beide Versionen nebeneinander, „Behalten” / „Archivieren”. Archivierte Aufnahmen landen in <dok>/archive/.
Jede Doppelseite bietet über Rechtsklick: Neu verarbeiten (Pipeline neu aus Master), Neu aufnehmen (Reshoot-Armierung), Pagenum ändern, Aufnahme löschen.
2.2 Zentraler Bereich: Sucher oder Transkript
Der zentrale Bereich ist kontextsensitiv und zeigt genau eine Sache:
Während der Aufnahme: Den Live-Sucher des iPhones. Der Mac empfängt den komprimierten 1080p-Videostream und zeigt ihn mit dem erkannten Dokumentrahmen und der Wasserwaagen-Überlagerung an. Auslösen ist per Leertaste möglich.
Während der Durchsicht (Seite ausgewählt): PageDetailView mit vier Tabs:
| Tab | Inhalt |
|---|---|
| Transkript | Vision-OCR-Rohtranskript als formatierten HTML-Text (Absätze, Überschriften, Listen) |
| Daten | Key-Value-Ansicht von page_NNN.json (GeometryReport, ToneReport, OCR-Metriken); bei Belegen: receipt.json Flat-Contract |
| XML | Extended-OCR ext.xml als stilisiertes Buchblatt oder Thermobon-Beleg (warm, Oxford-Chrome) |
| XML-Quelle | Syntax-hervorgehobener XML-Quelltext mit Zeilennummern und Kopierschaltfläche |
Niemals zeigt der zentrale Bereich Sucher und Transkript gleichzeitig.
2.3 Rechter Inspektor: Drei Sektionen
Der Inspektor enthält maximal drei sichtbare Sektionen:
Aufnahme
Zeigt Vorlage-Auswahl (Buch / Einzelblatt) und Ausrichtung (nur im Buch-Modus: topOnRight, topOnLeft, topOnTop) sowie den Kopierständer-Schalter. Das sind die einzigen Parameter, die der Nutzer vor dem Auslösen festlegt.
Partitur
Zeigt die ausgewählte Partitur-Score mit ihrer deutschen Bezeichnung und einem Aktions-Button (“Partitur ausführen”). Im Ergebnisfall zeigt diese Sektion die Partitur-Zusammenfassung — ein bis zwei Sätze, die beschreiben, was erkannt wurde.
Ablage
Zeigt den aktuellen Scan-Ordner und zwei Aktionen: “Im Finder zeigen” und “Ordner wählen…”. Kein Rohdateipfad, kein Metadaten-Dump.
DisclosureGroup “Erweitert”
Alle Feineinstellungen — Flat-Field-Schalter, Deskew-Schalter, Tight-Crop-Schalter, Tonwert-Schieberegler, CIDocumentEnhancer-Schalter, Orchestrator-URL — sind hinter einem zugeklappten DisclosureGroup("Erweitert")-Element versteckt. Sie sind zugänglich, sobald der Nutzer sie braucht, stören aber den normalen Aufnahmefluss nicht.
2.4 Statusleiste
Die Statusleiste am unteren Rand zeigt maximal zwei Elemente:
- Links: Ein kurzer Satz zum letzten Ereignis (
2 Seiten erfasst,Partitur abgeschlossen,Verbindung getrennt). Wenn nichts besonderes passiert ist, bleibt die linke Seite leer. - Rechts: Der Name des aktuellen Scan-Ordners, anklickbar, öffnet den Ordner im Finder.
Kein Pipeline-Log, keine Statusfarben für Routineereignisse.
3 Tastatursteuerung
| Taste | Aktion |
|---|---|
| Leertaste | Auslösen (Shutter) |
R |
Erkannten Rahmen zurücksetzen / entfrieren |
Z |
Auto-Zoom auf Dokumentabdeckung |
Cmd+N |
Neues Dokument starten |
Cmd+Shift+K |
iPhone-Verbindung neu aufbauen (funktionierende Konfiguration) |
Cmd+O (implizit über Menü) |
Ablage-Ordner wählen |
Die Tastatursteuerung ist für den Kopierständer-Betrieb optimiert: Beide Hände können das Buch halten, während die Leertaste mit einem Finger ausgelöst wird.
4 Farbpalette und Typographie
Das Backstage folgt der lettreai-Markenpalette:
| Farbrolle | Wert | Verwendung |
|---|---|---|
| Oxford-Blau | #14213d (app: Color.oxford) |
Primärfarbe, Navigationsleisten, Akzente |
| Gold | #c8a22a (app: Color.gold) |
Akzente, Markierungen, aktive Elemente |
| Papier | Color.paper |
Hintergrundflächen, Karten |
| Tinte | Color.ink |
Primärtext |
| Tinte gedämpft | Color.inkMuted |
Sekundäre Beschriftungen |
Warnrot (Color.signalRed) ist reserviert für Zustände, die eine unmittelbare Nutzeraktion erfordern — zum Beispiel eine blockierte Aufnahme wegen zu großer Entfernung. Es erscheint nicht für routinemäßige Pipeline-Ausgaben.