2026-03-25 22:03:39 +01:00
{
2026-03-30 07:59:11 +02:00
"version" : 7 ,
2026-03-25 22:03:39 +01:00
"updated_at" : "2026-03-25" ,
2026-03-30 07:59:11 +02:00
"project_phase" : "B1 Backend-Sprint – Serverseitige OpenAI-Architektur (Variante B verbindlich)" ,
"b1_backend_sprint" : {
"title" : "B1 Backend-Sprint – Variante B verbindlich" ,
2026-03-25 22:03:39 +01:00
"start" : "2026-03-25" ,
"target" : "ca. 2026-04-22" ,
2026-03-30 07:59:11 +02:00
"architekturentscheidung" : "VARIANTE B: Desktop-App → AZA-Backend → OpenAI. Key nur serverseitig. Kein OpenAI-Key beim Kunden." ,
"woche_1" : "Backend Chat Proxy Endpoint (POST /v1/chat) + Auth + Rate Limiting" ,
"woche_2" : "Desktop-App: alle OpenAI-Calls ueber Backend statt direkt" ,
"woche_3" : "Hetzner Deploy: Docker/Caddy/HTTPS + Production-Env + Smoke-Tests" ,
"woche_4" : "E2E-Test Desktop→Backend→OpenAI + Kundenweg ohne OpenAI-Key + Go-Live-Freigabe" ,
"hostpoint_vs_hetzner" : "Hostpoint bleibt fuer Website/WooCommerce. Hetzner ist JETZT der Backend-Pfad (OpenAI-Proxy/API). Beides parallel."
2026-03-25 22:03:39 +01:00
} ,
"priority_order" : {
2026-03-30 07:59:11 +02:00
"1_hoechste" : "B1-W1: Backend Chat Proxy POST /v1/chat (Woche 1)" ,
"2_hoch" : "B1-W2: Desktop-App OpenAI-Calls auf Backend umstellen (Woche 2)" ,
"3_mittel" : "B1-W3: Hetzner Deploy Docker/Caddy/HTTPS (Woche 3)" ,
"4_hoch" : "B1-W4: E2E-Test + Go-Live-Freigabe Backend-Pfad (Woche 4)" ,
"5_parallel" : "WooCommerce/Stripe/Kauf-Weg (Hostpoint) laeuft parallel weiter" ,
"explizit_nachrangig" : "Update-Komfort, Auto-Updater, Browser-AZA Web-App, grosse Refactors"
2026-03-25 22:03:39 +01:00
} ,
2026-03-30 07:59:11 +02:00
"next_main_block" : "B1-W1: Backend Chat Proxy Endpoint (POST /v1/chat). Variante B verbindlich. Muster /v1/transcribe existiert." ,
2026-03-25 22:03:39 +01:00
"working_principles" : [
"Root-cause-first statt blindem Nachpatchen" ,
"Ein klarer Block nach dem anderen – keine 10 Baustellen gleichzeitig" ,
"Reale installierte Builds staerker gewichten als Code-Behauptungen" ,
"Nicht zu frueh 'fertig' sagen" ,
"Desktop unterscheiden in: 1. Dev-Code, 2. neu gebauter Installer, 3. reales Verhalten im installierten Build"
] ,
"pricing_model" : "Subscription: monatlich CHF 89 + Jahreslizenz CHF 886 (17% guenstiger). KEIN Einmalkauf." ,
"product_naming" : {
"current_direction" : "AZA Office" ,
"status" : "Aktuelle bevorzugte Naming-Richtung – noch nicht zwingend final juristisch/brand-strategisch entschieden" ,
"use_for" : "WooCommerce-Produkt, Website, Download-Seite, Go-Live, Produktdarstellung" ,
"rule" : "Bei spaeteren Diskussionen diese Richtung wiederverwenden statt Namen jedes Mal neu zu erfinden" ,
"favorite_long" : "AZA Office – Ihr medizinischer KI-Arbeitsplatz fuer die Praxis" ,
"second_choice" : "AZA Office – Die KI-Assistenz fuer medizinische Dokumentation" ,
"earlier_shortlist_aza_desktop" : {
"note" : "Fruehere Favoritenliste unter dem Namen AZA Desktop – durch AZA Office abgeloest" ,
"favorites" : [
"AZA Desktop – Die KI-Loesung fuer medizinische Dokumentation" ,
"AZA Desktop – KI-gestuetzte Praxisdokumentation fuer Aerzte" ,
"AZA Desktop – Ihre Plattform fuer medizinische KI-Dokumentation" ,
"AZA Desktop – Ihr medizinischer KI-Arbeitsplatz fuer die Praxis" ,
"AZA Desktop – Die KI-Assistenz fuer medizinische Dokumentation" ,
"AZA Desktop – Medizinische KI fuer Aerzte und Praxen"
] ,
"critically_assessed" : "'von Aerzten' eher nicht verwenden"
}
} ,
2026-03-30 07:59:11 +02:00
"architecture" : "Hostpoint=Website/Marketing/WooCommerce. Hetzner=AZA-Backend/API/OpenAI-Proxy (JETZT AKTIV, nicht mehr spaeter). KEINE DNS-Aenderungen ohne Pruefung." ,
"openai_key_strategy" : "VARIANTE B VERBINDLICH (2026-03-25): OpenAI-Key AUSSCHLIESSLICH serverseitig. Desktop-App → AZA-Backend → OpenAI. KEIN Key beim Kunden. KEIN Shared-Key. Lokale Key-Eingabe nur Dev-Fallback." ,
2026-03-25 22:03:39 +01:00
"audio_format_locked" : "ENDGUELTIG: Aufnahme direkt als M4A (AAC via ffmpeg-Pipe). NIEMALS auf WAV zurueckaendern." ,
"security_benchmark" : "HIN-nahe Schutzprinzipien als Sicherheits-Zielbild fuer Browser-AZA. Geschlossener Vertrauensraum, 2FA, asymm. Verschluesselung, TLS, digitale Signatur, TOM, ISMS ISO/IEC 27001 als Benchmark, EPD-/IdP-nahe Orientierung. KEINE Zertifizierungsbehauptung – reines Zielbild." ,
"phases" : [
{
"name" : "Core Desktop + Backend" ,
"status" : "done" ,
"milestones" : [
{ "name" : "Step 13 - Smoke Suite PASS" , "status" : "done" } ,
{ "name" : "Step 14 - Docker/Compose Smoke PASS" , "status" : "done" }
]
} ,
2026-03-30 07:59:11 +02:00
{
"name" : "B1 Backend-Sprint – Serverseitige OpenAI-Architektur (VARIANTE B)" ,
"status" : "in_progress" ,
"milestones" : [
{ "name" : "B1-W1 - Backend Chat Proxy POST /v1/chat" , "status" : "in_progress" } ,
{ "name" : "B1-W2 - Desktop-App OpenAI-Calls auf Backend umstellen" , "status" : "open" } ,
{ "name" : "B1-W3 - Hetzner Deploy Docker/Caddy/HTTPS/Production-Env" , "status" : "open" } ,
{ "name" : "B1-W4 - E2E-Test Desktop→Backend→OpenAI + Go-Live Backend-Pfad" , "status" : "open" }
]
} ,
2026-03-25 22:03:39 +01:00
{
"name" : "Go-Live / Productization" ,
"status" : "in_progress" ,
"milestones" : [
{ "name" : "Step 17 - Desktop-App + Installer + Kauf-/Download-Flow (CODE-KOMPLETT)" , "status" : "done" } ,
{ "name" : "Step 15 - Caddy/HTTPS Reverse Proxy" , "status" : "done" } ,
{ "name" : "Step 16 - Go-Live extern (aza-medwork.ch)" , "status" : "in_progress" } ,
2026-03-30 07:59:11 +02:00
{ "name" : "Step 22 - Browser-AZA MVP (nach Backend-Architektur)" , "status" : "open" } ,
2026-03-25 22:03:39 +01:00
{ "name" : "Step 18 - Website + Download + Billing Flow" , "status" : "done" } ,
{ "name" : "Step 19 - Support/Telemetry minimal" , "status" : "done" } ,
{ "name" : "Step 20 - Final Security pass" , "status" : "done" }
]
} ,
{
"name" : "Sell-Ready Pack" ,
"status" : "in_progress" ,
"milestones" : [
{ "name" : "Step 21 - Steps/Status/Roadmap/To-Dos konsolidiert" , "status" : "done" } ,
{ "name" : "Step 17a - Installer-Workflow vorbereitet" , "status" : "done" } ,
{ "name" : "Step 17b - Runtime Secret Provisioning + Installer gebaut" , "status" : "done" } ,
{ "name" : "Step 17c - Praxiscomputer-Testpaket ready for field test" , "status" : "done" } ,
{ "name" : "Step 17d - APPDATA-Persistence-Fix + Rebuild validiert" , "status" : "done" } ,
{ "name" : "Step 17e - AZA-Startseite/Launcher mit Modulauswahl" , "status" : "done" } ,
{ "name" : "Step 17f - Launcher 6 Module + Woechentlicher Login + Aktivierungsschluessel + App-Ablauf" , "status" : "done" } ,
{ "name" : "Step 17g - Systemstatus/Selbsttest fuer Praxiscomputer-Validierung" , "status" : "done" } ,
{ "name" : "Step 17h - Windows-Firewall-Fix fuer lokales Backend" , "status" : "done" } ,
{ "name" : "Step 17i - Launcher Canvas-Icons + UX-Feinschliff" , "status" : "done" } ,
{ "name" : "Step 17j - Kauf-/Download-Flow (Landing, Pricing, Checkout, Success, Download)" , "status" : "done" } ,
{ "name" : "Step 17k - Live-Deploy-Readiness (CORS, Dockerfile, Caddyfile, Stripe-URLs, lokal verifiziert)" , "status" : "done" } ,
{ "name" : "DX - Benutzerdaten bei Deinstallation erhalten + Signatur-Fallback + Minifenster-Rechtsklick + Kommentare-Fenster" , "status" : "done" } ,
{ "name" : "DX - Autotext Root-Cause-Fix (_is_admin NameError + Listener-Revert auf Kopie 13)" , "status" : "done" } ,
{ "name" : "DX - Signatur-UI (Haekchen + abweichender Name) in Einstellungen" , "status" : "done" } ,
{ "name" : "BSL - Briefstil-Lernen aus frueheren Word-Briefen (DOCX-Upload, Stilprofil, Integration)" , "status" : "done" } ,
{ "name" : "BSL - Briefstil-Lernen Erweiterungen (strukturierte Analyse, weitere Formate)" , "status" : "open" } ,
{ "name" : "PCP - Persistenz/Consent/Profil-Patch (Erststart-Consent, Code-Feld, Kommentare-Toggle, Einstellungs-Gruppierung)" , "status" : "done" } ,
{ "name" : "UEB - Uebersetzer-Stabilitaetsfix (Toplevel-Embedded statt Tkinter-in-Thread)" , "status" : "done" } ,
{ "name" : "BRP - Vordefinierte Briefprofile: KISIM Bericht + Klinischer Bericht" , "status" : "done" } ,
{ "name" : "DX - AZA Clean Uninstall/Reset Tool (saubere Deinstallation/Reset ohne Neustart, 2 Modi)" , "status" : "done" } ,
{ "name" : "BRP - Briefstil-Profile Fix: Systemprofile immer sichtbar, praezise Prompts, vereinheitlichtes Stilprofil-UI" , "status" : "done" } ,
{ "name" : "FIX - Korrektur-Patch: Uebersetzer-Label, Kommentare-Fenster, Korrektur-Scrollbar, Stilprofil-Live, KG-Inline, Zentrierung" , "status" : "done" } ,
{ "name" : "FIX - Nachschaerfungs-Patch: Stilprofil-Dialog nur Verwaltung, Kommentare auto-open, Logo-Trennung (Wassertropfen=Icon, Logo=Branding)" , "status" : "done" } ,
{ "name" : "FIX - Quellenstrenge Kommentarlogik: Inhaltsquelle/Originallink getrennt, DocCheck Standard + PharmaWiki Fallback, benutzerwaehlbar" , "status" : "done" } ,
{ "name" : "SIGNING - Signing-Readiness vorbereitet (sign_release.ps1, Pipeline-Integration, Artefakt-Report mit Signatur-Status, SIGNING_READINESS.md)" , "status" : "done" } ,
{ "name" : "SIGNING - Publisher-/Namenskonsistenz analysiert (3 Namensformen identifiziert, keine echten Inkonsistenzen)" , "status" : "done" } ,
{ "name" : "SIGNING - Publisher-/Firmenname final festlegen (HR-Name pruefen, vor Zertifikatskauf)" , "status" : "open" } ,
{ "name" : "SIGNING - Echtes Code-Signing-Zertifikat beschaffen und produktiv aktivieren (VOR Kundenauslieferung)" , "status" : "open" } ,
{ "name" : "ARCH-MED - Naechste Stufe: Caching, Robustheit, HCI-API-Evaluation" , "status" : "open" } ,
{ "name" : "GO-LIVE EXTERN - Stripe/WooCommerce/Testkauf (KEINE DNS-Experimente)" , "status" : "in_progress" } ,
{ "name" : "SEC - Sicherheits-Zielbild (HIN-nahe Schutzprinzipien) fuer Browser-AZA konkretisieren" , "status" : "open" } ,
{ "name" : "Step 23 - Billing & Legal sell-ready (Invoices/VAT/AGB)" , "status" : "open" } ,
{ "name" : "Step 24 - Ops/Monitoring/Runbook final" , "status" : "open" } ,
{ "name" : "Step 25 - Go-Live Cutover" , "status" : "open" }
]
} ,
{
"name" : "Zukunft / Internationalisierung (NACH DACH-Erfolg)" ,
"status" : "geparkt" ,
"milestones" : [
{ "name" : "DACH-Markt sauber stabilisiert (CH/DE/AT) – Voraussetzung" , "status" : "open" } ,
{ "name" : "Profil-Architektur: app_language, market_region, med_source_profile, dx_source_profile, therapy_source_profile" , "status" : "geparkt" } ,
{ "name" : "UI-Mehrsprachigkeit (z.B. franzoesische UI)" , "status" : "geparkt" } ,
{ "name" : "Laenderspezifische Medikamentenquellen (Handelsnamen, Zulassungen, Fachinfos je Markt)" , "status" : "geparkt" } ,
{ "name" : "Laenderspezifische Diagnose-/Therapiequellen" , "status" : "geparkt" } ,
{ "name" : "Manueller Override durch Benutzer/Praxis" , "status" : "geparkt" }
]
}
]
}