Kansho/docs/architecture/functional/mvp_freeze_candidate.md
2026-08-26 10:42:20 +02:00

68 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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.