--- title: "Kanshō – MVP Freeze Candidate (lokale Urlaubs-Testphase)" status: "Abnahme / Freeze Candidate" date: "2026-08-25" product_family: "Jinkendo" document_role: "Kurze Abnahme-Checkliste für den lokalen Journal-MVP Freeze Candidate" parent_document: "mvp_stand_und_abgleich.md" --- # Kanshō – MVP Freeze Candidate Dieses Blatt ersetzt weder `mvp.md` noch `mvp_stand_und_abgleich.md`. Es sagt, was für die **lokale Urlaubs-Testphase** automatisch, manuell und später in Produktion zu prüfen ist, und was bewusst nicht zu diesem Slice gehört. **Stand:** 2026-08-25. Kein Docker, kein PostgreSQL, keine echten Provider-Aufrufe in der automatischen Suite. ## 1. Automatisierte lokale Prüfungen Einstieg: `.\scripts\test-mvp.ps1` Die Suite setzt UTF-8, leere Provider-Keys und isolierte Temp-Daten. Suites, die einen Fake-Provider brauchen, setzen ihn selbst; Fail-closed bleibt prüfbar. Sie darf `backend/data/kansho.sqlite` und echte Medien nicht verändern. - alle `backend/tests/test_*.py` (Abbruch beim ersten Fehler) - `frontend/src/journal/document.test.js` - Frontend-Produktions-Build - `git diff --check` (separat, vor einem späteren Commit) Neu in diesem Freeze: Backup/Restore, Papierkorb/Purge, Entry-Liste, Opening-Invarianten, `include_existing` beider Varianten. ## 2. Spätere manuelle Modell-/Browserprüfungen Nicht durch Fake-Provider bewiesen: - Erster Impuls mit einem echten Modell: belegter Plan, offener Tagesfaden, neutraler Fallback - Dialogqualität der sechs Operationen (Cases C/D/E bleiben modellabhängig) - Journalentwurf Stufe 1/2 mit einem echten Modell: Quelltreue, keine Assistentenfakten - `include_existing` in der Oberfläche: Checkbox aus, Checkbox an, Nutzerfassung unangetastet - Papierkorb: Soft Delete, Wiederherstellen, endgültiges Löschen inkl. Medien - Startseite: Fortsetzen wenn ein Day existiert, sonst Space-Einstieg - Backup erzeugen und an einem zweiten Temp-Pfad wiederherstellen, inkl. Bestätigung - Browser: ungespeicherte Editoränderungen, `beforeunload`; Zurück bleibt bewusst ohne Router-Migration ## 3. Spätere Produktions-Gates Kein Codefehler des Freeze Candidate, sondern Betriebsreife: - PostgreSQL, Docker/Compose, TLS, Reverse Proxy - Gitea-Pipelines / CI - Ollama bzw. lokales Detect-Modell - Verschlüsselung at rest, DSFA, persistentes Audit ohne Prompts - Quasi-Identifikatoren, vollständige Platzhalterprüfung, inhaltliche Minimierung - Vollständiger Datenexport für ein öffentliches Produkt ## 4. Bewusst ausgeschlossene Funktionen des nächsten Slices - Neue Reflection-Intents, universelle Continuation-Engine - Self Model, semantisches Retrieval, Space Content Memory - Chunk-and-Merge - Voice und visuelle LLM-Verarbeitung - Dialogmedien als direkte Dialogquelle (Bilder/Videos gehören im MVP in den Journal Editor) - Frühere Space-Entries als Faktenquelle der Journalgenerierung ## 5. Bewusste MVP-Grenzen dieses Freeze - Browser-Zurück: vorhandene Unsaved-Warnung und `beforeunload` reichen; keine Data-Router-Migration. - Space-Kontext darf den Dialogzug stützen, nicht still die Generate-Quelle werden. - Stufe 1 bleibt untrusted Auswahl/Annotation; autoritativ sind lokale Source Registry und `VerifiedArtifact`. Ungültiges Modell-JSON bricht Generate nicht ab: lokal volle Nutzerquellen, Abbruch nur ohne Nutzertext. - Qualitative Modellfälle nicht als automatisch vollständig bewiesen bezeichnen.