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)
- Stufe 1 ist lokal (`local_source_artifact`); autoritativ sind lokale Source Registry und `VerifiedArtifact`. Es gibt keinen externen Rekonstruktions-Call im Runtime-Pfad. Abbruch nur ohne Nutzertext.
- Semantische Detection jedes persönlichen Egress; Detect-Treffer nicht automatisch bestätigt; Legacy-Mappings lokal reviewen (`/admin/identities`)
- Response Validation nach dem Generate normalisiert aktiven Klartext lokal. Das verhindert keinen bereits erfolgten Egress. Pre-Egress bleibt fail-closed.
- Journal-Generate muss eine inhaltstreue, redaktionell verbesserte Fassung liefern, keine Dialogkopie. Faktentreue bleibt; Wortlaut darf (und soll) lesbar werden. `prose_edit` und `notes_to_journal` sind lokal. Ein überwiegend stichpunktartiger Dialog bleibt `notes_to_journal`. Unvollständige Sätze dürfen ohne neue Tatsache umgebaut werden. Ähnlichkeit ist Diagnose, kein Retry-Grund. Ein nicht übernommener Modelltext ist kein stiller Rohtext-Entwurf.
- **Additiv 2026-08-27 (Mischquellen):** Die lokale Zuordnung eines gesamten Tages zu `prose_edit` oder `notes_to_journal` war eine technische Zwischenlösung und gilt als ersetzt. Mischquellen sind der Normalfall und werden in einem Generate-Aufruf verarbeitet. Keine dritte Mischkategorie.
- Qualitative Modellfälle nicht als automatisch vollständig bewiesen bezeichnen. Vergleich: `backend/journal_eval.py` (Baseline, vorheriger Vertrag, aktueller Prompt; `--profile-ab` für Stilvorgaben). Live-Qualität ist unbestätigt, bis ein kontrollierter Modellvergleich mit `--live --profile-id` über das Privacy Gateway läuft. Das Harness erklärt keinen Sieger. Fake-Läufe beweisen den Vertrag, nicht die Modellprosa.