🏁 Kanban-Abschlussreport — Buchgenerator Stabilisierung
Projekt: Pup Cid's Little Bookwriter
Basis: F:\bookgenerator_hermes\generator\
Sprints: 0–4 (2026-05-13)
Methode: Multi-Agent-Orchestrierung mit spezialisierten Workern
Metrik
Wert
Erledigte Tickets
23/23 (100%)
Durchgeführte Worker
10 (parallel + sequentiell orchestriert)
Geänderte Dateien
22
Neue Dateien
7
Neue Tests
8
Tests grün
Alle (Export 9, UI 53+, Dependency 1)
Gate
Status
Kriterium
Gate 0 — Safety
✅
Generation crasht nicht, Auto-Save aktiv, DOCX exportiert, Parser robust
Gate 1 — Entrypoint
✅
Offizieller Startpfad klar, Dependency Checks zentral, keine Phantom-Architektur
Gate 2 — Memory
✅
KB Save atomar, FAISS Dimension Guard aktiv, Embedding Cache genutzt
Gate 3 — UI
✅
ui_flet.py reduziert, 3 Komponenten + 1 View extrahiert, keine Regression
Gate 4 — Export
✅
Export-System zuverlässig, ungültige Formate nicht still angeboten
🏗️ Sprint 0 — Safety Hotfix (6/6)
ID
Task
Impact
S0.1
Generation Prompt Double-Call Fix
🔴 CRITICAL — Verhinderte Type-Crash bei Chapter-Generierung
S0.2
Auto-Save nach jedem Kapitel
🔴 CRITICAL — Verhindert Datenverlust bei Crash
S0.3
Atomic KnowledgeBase Save
🟠 HIGH — Keine korrupten KB-Dateien mehr
S0.4
Outline Parser Robustness
🔴 CRITICAL — "1 Titel" ohne Punkt wird erkannt
S0.5
DOCX Critical Fixes
🔴 CRITICAL — Font-Crash, Page-Breaks, Core-Properties
S0.6
PDF/EPUB Protection
🔴 CRITICAL — Keine stille Truncation/Korruption mehr
Dateien: generation_service.py, core.py, export_pipeline.py, knowledge_base.py, test_export_docx.py
🚪 Sprint 1 — Runtime/Entrypoint (4/4)
ID
Task
Impact
S1.1
Entry Point Decision
🟠 HIGH — Vereinheitlicht auf main.py → main_flet.py
S1.2
Central Dependency Check
🟡 MEDIUM — core/dependency_check.py (NEU, 88 LOC)
S1.3
Launcher Cleanup
🟡 MEDIUM — tkinter-Import try/except
S1.4
Bootstrap Cleanup
🟡 MEDIUM — app/ als deprecated markiert
Dateien: core/dependency_check.py (NEU), app/* (4 Dateien deprecated), launcher.py, launcher_flet.py, README.md
🧠 Sprint 2 — Memory/Context Core (4/4)
ID
Task
Impact
S2.1
FAISS Dimension Guard
🟠 HIGH — Verhindert FAISS-Crash bei Modellwechsel
S2.2
Embedding Cache aktivieren
🟠 HIGH — Wiederholte Embeddings werden gecached
S2.3
ContextService Real Extraction
🟠 HIGH — Context-Logik aus core.py in Service delegiert
S2.4
Character DB Consolidation Plan
🟢 INFO — docs/DECISIONS.md (NEU)
Dateien: knowledge_base.py, context_service.py, core.py, core_extensions.py, docs/DECISIONS.md (NEU)
🖥️ Sprint 3 — UI Decomposition (5/5)
ID
Task
Impact
S3.1
Extract Diff Preview Controls
🟠 HIGH — flet_app/components/diff_preview.py (NEU, 89 LOC)
S3.2
Extract Prompt Editor Section
🟠 HIGH — flet_app/components/prompt_editor.py (NEU)
S3.3
Extract Previous Sessions Section
🟠 HIGH — flet_app/components/session_history.py (NEU)
S3.4
Move Search View as Pilot
🟡 MEDIUM — flet_app/views/search_view.py (NEU, 66 LOC)
S3.5
Design Token Enforcement
🟡 MEDIUM — 6 Hex-Familien (~265 Vorkommen) → DESIGN_SYSTEM
Neue Dateien: 4 (3 components + 1 view)
ui_flet.py entlastet: −151 LOC direkt + ~265 Hex→Token
📤 Sprint 4 — Export Product Quality (4/4)
ID
Task
Impact
S4.1
DOCX Hierarchy Preservation
🟠 HIGH — Subchapters als H3 (nicht H2)
S4.2
Export Profile Simplification
🟡 MEDIUM — 9→6 Profile + Aliasing
S4.3
EPUB Minimal Valid
🟡 MEDIUM — Bereits in S0.6 erledigt
S4.4
Export Test Suite
🟠 HIGH — 9 Tests (vorher 4)
Dateien: export_pipeline.py, test_export_docx.py
Datei
LOC
Zweck
core/dependency_check.py
88
Zentrale Dependency-Prüfung
flet_app/components/diff_preview.py
89
Diff Preview Controls
flet_app/components/prompt_editor.py
~30
Prompt Editor
flet_app/components/session_history.py
~65
Session History
flet_app/views/search_view.py
66
Search View (Pilot)
docs/DECISIONS.md
~150
Character-DB-Entscheidungsdokument
KANBAN_SPRINT0.md
~80
Kanban-Plan
⚙️ Geänderte Dateien (22)
Datei
Sprints
Änderungen
core.py
0, 2
+Auto-Save, +Regex optionaler Punkt, +ContextService-Delegation
core/services/generation_service.py
0
−6 LOC (Double-Call entfernt)
core/services/context_service.py
2
+Context-Priorisierungs-Engine
core/export_pipeline.py
0, 4
Font-Crash, Page-Breaks, EPUB, Profile, Hierarchie
core/knowledge_base.py
0, 2
+Atomare Saves, +FAISS Guard, +EmbeddingCache
core/storage.py
—
Referenz-Pattern (keine Änderung nötig)
core_extensions.py
2
+DeprecationWarning
ui_flet.py
3
−151 LOC extrahiert, ~265 Hex→Token, 4 Imports
app/bootstrap.py
1
DEPRECATED markiert
app/runtime_context.py
1
DEPRECATED markiert
app/interfaces.py
1
DEPRECATED markiert
app/feature_flags.py
1
DEPRECATED markiert
launcher.py
1
tkinter try/except
launcher_flet.py
1
ALTERNATIV markiert
README.md
1
Start-Anweisungen vereinheitlicht
test_export_docx.py
0, 4
4→9 Tests (+5 neu)
Regel
Status
❌ Kein neues Feature vor Sprint 0
✅ Eingehalten
❌ Keine komplette Rewrite-Strategie
✅ Eingehalten
❌ Keine neue UI-Technologie
✅ Eingehalten
❌ Keine neue Datenbank
✅ Eingehalten
❌ Keine neuen LLM-Provider
✅ Eingehalten
❌ Keine neuen Exportformate
✅ Eingehalten
❌ Keine neuen Character-Systeme
✅ Eingehalten
❌ Keine parallelen Änderungen an core.py
✅ Eingehalten
❌ Keine parallelen Änderungen an ui_flet.py
✅ Eingehalten
Bereich
Vorher
Nachher
Veränderung
Export-Tests
1 (4.1 LOC)
9 (358 LOC)
+800%
Export-Pipeline Bugs
5 Critical, 5 High
0 Critical, 0 High
Behoben
ui_flet.py LOC
~11.781
~11.630
−151 (+ ~265 Hex→Token)
flet_app/components/
0 Module
3 Module
+3
flet_app/views/
0 Views
1 View
+1
core/dependency_check.py
Existierte nicht
88 LOC
NEU
Auto-Save
Nicht vorhanden
Nach jedem Kapitel
NEU
KB Save
Nicht atomar
atomic (tmp+os.replace)
Gefixt
FAISS Dimension Guard
Nicht vorhanden
Aktiv
NEU
Embedding Cache
Definiert, nie genutzt
Aktiv in KnowledgeBase
Aktiviert
Generation Prompt
Double-Call (TypeError)
Single-Call
Gefixt
Outline Parser
Erkannte "1 Titel" nicht
Erkennt optionalen Punkt
Gefixt
🔮 Empfehlung für nächste Iteration
Sprint 5 — AI/Model Stabilität (vorgeschlagen)
Cloud→Local Fallback in model_router.py (Critical)
Temperature-Handling für gpt-5-nano korrigieren
MODEL_PRICING aktualisieren (gpt-4/4-turbo/3.5 entfernen)
API-Key Storage sichern (verschlüsseln)
Budget-Cap vor API-Call einführen
Streaming für OpenAI/OpenRouter implementieren
Sprint 6 — Weitere UI-Extraktion (vorgeschlagen)
Restliche 6 Views aus ui_flet.py in flet_app/views/ migrieren
app_shell.py und theme.py aktivieren oder entfernen
Navigation-Caching (kein kompletter Rebuild)
Bottom-Bar einklappbar
Sprint 7 — Tote Code-Entfernung (vorgeschlagen)
memory_providers/mistral* (3 Dateien, nie integriert)
secure_pickle.py (nach JSON-Migration)
EnhancedCharacterDatabase in core_extensions.py
app/interfaces.py (keine Implementierer)
app/deprecated.py (nie aufgerufen)