Portfolio-Status KW 2026-W22 #412

Closed
opened 2026-05-27 22:43:32 +02:00 by pm-bot · 2 comments
Collaborator

Portfolio-Status KW 2026-W22

Berichtszeitraum: 2026-05-20 bis 2026-05-28 · Stichtag: 2026-05-28 (Thursday — Refresh v3 nach OCR-Real-Data-Pivot) · PM-Lens: Portfolio

Update v3 — Real-Data-Eval (#416) hat OCR-v0.5-Strategie gekippt. v2-Plan (On-Device als Default) ist tot, v0.5 pivotet auf Fuzzy-Match als Hauptpfad.


1 · Highlights letzte 7 Tage

  • OCR-Spike #77 abgeschlossen mit Pivot — TrOCR-int8 läuft on-device (449 ms warm, 76 MB Bundle), aber Real-Data-Eval auf 77 echten Einkaufszettel-Crops zeigte CER 0.51 (vs. 0.04 synthetisch). TrOCR-printed kann keine Handschrift. Privacy-Klarstellung des Stakeholders (eigener Server = trusted) kippte zusätzlich das On-Device-Wert-Modell. Closing-Cascade: #77, #81, #82, #414, #416 alle geschlossen. v0.5-OCR-Hauptdeliverable wird #415 Fuzzy-Match server-side.
  • #411 Drone-APK-Fix als PR #417 — 1-Zeiler ${APK}$APK, wartet auf CI+Merge.
  • Repo-Hygiene: 13 verwaiste Branches gelöscht (Reconciler clean).
  • Zwei Patch-Releases in 48h ausgeliefert — v0.4.5 (Release-Cut-Härtung) und v0.4.6 (Auth-Hotfix #404). v0.4.6 hatte CI-Bug im APK-Upload (Stopgap manuell, Fix in PR #417).
  • E2E-Test-Stack komplett aufgesetzt — fünf Phasen in einer Woche durch (Web-Playwright Phase 2a/2b/2c, Mobile-RNTL 4.5, Maestro-Smoke 4). App ist erstmals durchgängig im CI smoke-testbar.
  • App-Shell-Epic #336 abgeschlossen via v0.4.5 (#347/#348/#349).
  • Auth-Bug #404 gefixt (PR #410, TDD red-green-refactor). Beifang: #408 (API-Cache, prio/high, noch offen), #409 (ESLint v9).
  • Release-Cut-Mechanik gehärtet — Single-SoT, CI-Drift-Check, Immutable-Tags mit 7-Tage-Rollback, Gitea-Release-Automatik.

2 · Milestone-Übersicht

gantt
    title Portfolio-Roadmap
    dateFormat YYYY-MM-DD
    axisFormat %b

    section Ausgeliefert
    v0.1 Auth+Listen       :done, 2026-02-01, 2026-03-01
    v0.2 Foto-Import       :done, 2026-03-01, 2026-03-20
    v0.3 Tracking MVP      :done, 2026-03-20, 2026-04-10
    v0.6 Tracking v2       :done, 2026-04-15, 2026-05-10
    v0.4.5 App-Shell       :done, 2026-05-20, 2026-05-25
    v0.4.6 Auth-Hotfix     :done, 2026-05-25, 2026-05-27
    OCR-Spike #77 (closed) :done, 2026-05-24, 2026-05-28

    section Laufend
    v0.4 Mail+KI 67%       :active, 2026-04-10, 35d
    v0.5 OCR Fuzzy-Match   :active, 2026-05-28, 14d
    v1.0 Launch 75%        :active, 2026-07-15, 45d

    section Backlog
    Wissensbasis (Spike)   :crit, 2026-08-01, 30d
    Day-Planner Epic #360  :crit, 2026-06-15, 30d

Ampel:

  • 🟢 OCR-Spike #77 mit Pivot-Lerneffekt abgeschlossen (Spike-ROI: 5 Tage Investment statt Wochen-Engineering an gescheiterter On-Device-Pipeline)
  • 🟢 v0.4.6 abgeschlossen, PR #417 fixt Drone-Asset-Upload
  • 🟡 v0.4: 3/9 offen — Mail-Pipeline-Schluss (#176, #177, #109)
  • 🟢 v0.5-OCR neu fokussiert: #415 Fuzzy-Match statt 16 nebulösen Issues
  • 🟡 #408 (Auth, prio/high) noch offen

3 · Top-Initiativen

Initiative Fortschritt Offen Bemerkung
v0.4 Mail+KI (M#17) 67% (6/9) #176, #177, #109 UI-Politur, kein Risiko
v0.5 OCR Pivot abgeschlossen #415 (Hauptpfad) Spike-Cluster #77/#81/#82/#414/#416 closed
v1.0 Launch (M#18) 75% (3/4) 1 offen Sentry/Integrations-Reste
Day-Planner Epic (#360) Phase 7 von 8 done #360 Nächste Schritte unklar
Public Roadmap Epic (#378) Backend done #378 App-UI niedrig priorisiert

v0.5-OCR — Pivot-Detail

Issue State Bemerkung
#77 spike(ocr) TrOCR closed Technical-Yes, Business-No — Code als Reference im spike/77-Branch
#78/#79/#80 closed done-by-spike (Tag 5)
#81 Preprocessing closed Pre-req für #82 entfallen
#82 On-Device-Pipeline closed Privacy-Modell macht On-Device unnötig
#414 CRAFT-Sub-Spike closed Pre-req für #82 entfallen
#416 Real-Data-Eval closed Done mit CER-0.51-Befund
#415 Fuzzy-Match 🟢 open, Hauptpfad server-side Levenshtein gegen Sortiments-DB

4 · Risiken & Blocker

  • #408 (Auth, prio/high) — API-Layer-Cache liefert Lists trotz abgelaufenem ID-Token. Stale-Data-Risiko. Sollte nicht driften.
  • #406 (arch-question, offen seit 2026-05-25) — CI-Guard für Close-Keyword-Convention. Wartet auf Architekt-Antwort.
  • PR #417 wartet auf Merge — Drone-APK-Upload-Fix für künftige Tag-Cuts.
  • Server-OCR-Qualität — EasyOCR CER 0.67 auf Real-Daten ist mies. Fuzzy-Match (#415) mildert es, aber langfristig könnte Server-OCR-Upgrade (EasyOCR→TrOCR-handwritten) nötig werden. Erst nach Fuzzy-Match-Hit-Rate-Daten entscheiden.

5 · Anstehende Entscheidungen

a) #415 Sprint-Start

Fuzzy-Match-Layer in apps/api/src/modules/lists/ocr.service.ts:131 parseItems. PM-Empfehlung: sofort starten, Closing-Cascade hat Kapazität freigemacht. TDD-Pfad: Test mit Mock-Sortiment → Levenshtein-Match → Integration mit echter DB.

b) v0.4-Finish parallel?

Drei v0.4-Items offen (#176, #177, #109). PM-Empfehlung: Async laufen lassen — UI-Politur, niedrig priorisiert.

c) Server-OCR-Upgrade Future-Option

EasyOCR→TrOCR-handwritten als Server-Side-Story aufmachen? PM-Empfehlung: noch nicht. Erst sehen, ob Fuzzy-Match-Hit-Rate hoch genug ist mit aktueller Roh-OCR.

d) Branch-Hygiene: spike/77 Archive

Spike-Code bleibt als Reference im Branch (User-Vorgabe: 2a Archive). Nicht in main mergen.


Vorgänger-Status: #385 (KW 2026-W21, geschlossen 2026-05-27). Nachfolger: KW 2026-W23 → Montag 2026-06-01.

v3-Diff zu v2 (Donnerstag früh): OCR-Pivot dokumentiert; #77/#81/#82/#414/#416 von "open/blocked" zu "closed"; #415 von "Story" zu "Hauptpfad".

# Portfolio-Status KW 2026-W22 *Berichtszeitraum: 2026-05-20 bis 2026-05-28 · Stichtag: 2026-05-28 (Thursday — Refresh v3 nach OCR-Real-Data-Pivot) · PM-Lens: Portfolio* > Update v3 — Real-Data-Eval (#416) hat OCR-v0.5-Strategie gekippt. v2-Plan (On-Device als Default) ist tot, v0.5 pivotet auf Fuzzy-Match als Hauptpfad. --- ## 1 · Highlights letzte 7 Tage - **OCR-Spike #77 abgeschlossen mit Pivot** — TrOCR-int8 läuft on-device (449 ms warm, 76 MB Bundle), aber Real-Data-Eval auf 77 echten Einkaufszettel-Crops zeigte CER 0.51 (vs. 0.04 synthetisch). TrOCR-printed kann keine Handschrift. **Privacy-Klarstellung des Stakeholders** (eigener Server = trusted) kippte zusätzlich das On-Device-Wert-Modell. Closing-Cascade: #77, #81, #82, #414, #416 alle geschlossen. v0.5-OCR-Hauptdeliverable wird **#415 Fuzzy-Match server-side**. - **#411 Drone-APK-Fix als PR #417** — 1-Zeiler `${APK}` → `$APK`, wartet auf CI+Merge. - **Repo-Hygiene:** 13 verwaiste Branches gelöscht (Reconciler clean). - **Zwei Patch-Releases in 48h ausgeliefert** — v0.4.5 (Release-Cut-Härtung) und v0.4.6 (Auth-Hotfix #404). v0.4.6 hatte CI-Bug im APK-Upload (Stopgap manuell, Fix in PR #417). - **E2E-Test-Stack komplett aufgesetzt** — fünf Phasen in einer Woche durch (Web-Playwright Phase 2a/2b/2c, Mobile-RNTL 4.5, Maestro-Smoke 4). App ist erstmals durchgängig im CI smoke-testbar. - **App-Shell-Epic #336 abgeschlossen** via v0.4.5 (#347/#348/#349). - **Auth-Bug #404 gefixt** (PR #410, TDD red-green-refactor). Beifang: #408 (API-Cache, prio/high, noch offen), #409 (ESLint v9). - **Release-Cut-Mechanik gehärtet** — Single-SoT, CI-Drift-Check, Immutable-Tags mit 7-Tage-Rollback, Gitea-Release-Automatik. --- ## 2 · Milestone-Übersicht ```mermaid gantt title Portfolio-Roadmap dateFormat YYYY-MM-DD axisFormat %b section Ausgeliefert v0.1 Auth+Listen :done, 2026-02-01, 2026-03-01 v0.2 Foto-Import :done, 2026-03-01, 2026-03-20 v0.3 Tracking MVP :done, 2026-03-20, 2026-04-10 v0.6 Tracking v2 :done, 2026-04-15, 2026-05-10 v0.4.5 App-Shell :done, 2026-05-20, 2026-05-25 v0.4.6 Auth-Hotfix :done, 2026-05-25, 2026-05-27 OCR-Spike #77 (closed) :done, 2026-05-24, 2026-05-28 section Laufend v0.4 Mail+KI 67% :active, 2026-04-10, 35d v0.5 OCR Fuzzy-Match :active, 2026-05-28, 14d v1.0 Launch 75% :active, 2026-07-15, 45d section Backlog Wissensbasis (Spike) :crit, 2026-08-01, 30d Day-Planner Epic #360 :crit, 2026-06-15, 30d ``` Ampel: - 🟢 OCR-Spike #77 mit Pivot-Lerneffekt abgeschlossen (Spike-ROI: 5 Tage Investment statt Wochen-Engineering an gescheiterter On-Device-Pipeline) - 🟢 v0.4.6 abgeschlossen, PR #417 fixt Drone-Asset-Upload - 🟡 v0.4: 3/9 offen — Mail-Pipeline-Schluss (#176, #177, #109) - 🟢 v0.5-OCR neu fokussiert: **#415 Fuzzy-Match** statt 16 nebulösen Issues - 🟡 #408 (Auth, prio/high) noch offen --- ## 3 · Top-Initiativen | Initiative | Fortschritt | Offen | Bemerkung | |---|---|---|---| | **v0.4 Mail+KI** (M#17) | 67% (6/9) | #176, #177, #109 | UI-Politur, kein Risiko | | **v0.5 OCR** | Pivot abgeschlossen | **#415** (Hauptpfad) | Spike-Cluster #77/#81/#82/#414/#416 closed | | **v1.0 Launch** (M#18) | 75% (3/4) | 1 offen | Sentry/Integrations-Reste | | **Day-Planner Epic** (#360) | Phase 7 von 8 done | #360 | Nächste Schritte unklar | | **Public Roadmap Epic** (#378) | Backend done | #378 | App-UI niedrig priorisiert | ### v0.5-OCR — Pivot-Detail | Issue | State | Bemerkung | |---|---|---| | #77 spike(ocr) TrOCR | ✅ closed | Technical-Yes, Business-No — Code als Reference im `spike/77`-Branch | | #78/#79/#80 | ✅ closed | done-by-spike (Tag 5) | | #81 Preprocessing | ✅ closed | Pre-req für #82 entfallen | | #82 On-Device-Pipeline | ✅ closed | Privacy-Modell macht On-Device unnötig | | #414 CRAFT-Sub-Spike | ✅ closed | Pre-req für #82 entfallen | | #416 Real-Data-Eval | ✅ closed | Done mit CER-0.51-Befund | | **#415 Fuzzy-Match** | 🟢 open, Hauptpfad | server-side Levenshtein gegen Sortiments-DB | --- ## 4 · Risiken & Blocker - **#408 (Auth, prio/high)** — API-Layer-Cache liefert Lists trotz abgelaufenem ID-Token. Stale-Data-Risiko. Sollte nicht driften. - **#406 (arch-question, offen seit 2026-05-25)** — CI-Guard für Close-Keyword-Convention. Wartet auf Architekt-Antwort. - **PR #417 wartet auf Merge** — Drone-APK-Upload-Fix für künftige Tag-Cuts. - **Server-OCR-Qualität** — EasyOCR CER 0.67 auf Real-Daten ist mies. Fuzzy-Match (#415) mildert es, aber langfristig könnte Server-OCR-Upgrade (EasyOCR→TrOCR-handwritten) nötig werden. Erst nach Fuzzy-Match-Hit-Rate-Daten entscheiden. --- ## 5 · Anstehende Entscheidungen ### a) #415 Sprint-Start Fuzzy-Match-Layer in `apps/api/src/modules/lists/ocr.service.ts:131 parseItems`. **PM-Empfehlung:** **sofort starten**, Closing-Cascade hat Kapazität freigemacht. TDD-Pfad: Test mit Mock-Sortiment → Levenshtein-Match → Integration mit echter DB. ### b) v0.4-Finish parallel? Drei v0.4-Items offen (#176, #177, #109). **PM-Empfehlung:** Async laufen lassen — UI-Politur, niedrig priorisiert. ### c) Server-OCR-Upgrade Future-Option EasyOCR→TrOCR-handwritten als Server-Side-Story aufmachen? **PM-Empfehlung:** **noch nicht**. Erst sehen, ob Fuzzy-Match-Hit-Rate hoch genug ist mit aktueller Roh-OCR. ### d) Branch-Hygiene: spike/77 Archive Spike-Code bleibt als Reference im Branch (User-Vorgabe: 2a Archive). Nicht in main mergen. --- *Vorgänger-Status: #385 (KW 2026-W21, geschlossen 2026-05-27). Nachfolger: KW 2026-W23 → Montag 2026-06-01.* *v3-Diff zu v2 (Donnerstag früh):* OCR-Pivot dokumentiert; #77/#81/#82/#414/#416 von "open/blocked" zu "closed"; #415 von "Story" zu "Hauptpfad".
Author
Collaborator

GF-Entscheidungen KW 2026-W22

GF folgt allen drei PM-Empfehlungen:

(a) v0.4 vs. v0.5: → B (parallel)

v0.5-OCR-Spike #77 wird jetzt parallel zu den v0.4-Mail-Resten gestartet. Begründung übernommen: OCR-Spike ist das größte Risiko-Item im Portfolio, lieber jetzt 1 Woche Lerneffekt als später Konzept-Scheitern.

Aktion: #77 als laufendes Risiko-Frontloading markiert; v0.4-Reste (#176, #177, #109) laufen ruhiger parallel.

(b) #411 CI-Fix: → B (Sammel-Cut)

Kein eigener v0.4.7-Patch. Fix wandert in den nächsten Feature-Release. Begründung übernommen: kein User-Wert in v0.4.7, nur Engineering-Lärm.

Aktion: #411 bleibt offen, wird mit nächstem normalen Tag-Cut mitgenommen.

(c) Branch-Cleanup: → A (asynchron sichten)

13 verwaiste Branches einzeln durchgehen über die nächsten 2 Wochen, PR-würdig vs. obsolet entscheiden.

Aktion: PM startet asynchronen Sweep; jeder Branch entweder PR oder dokumentiert-und-gelöscht.


Status #412 bleibt offen bis Nachfolger KW 2026-W23.

## GF-Entscheidungen KW 2026-W22 GF folgt allen drei PM-Empfehlungen: ### (a) v0.4 vs. v0.5: → **B (parallel)** ✅ v0.5-OCR-Spike **#77** wird *jetzt* parallel zu den v0.4-Mail-Resten gestartet. Begründung übernommen: OCR-Spike ist das größte Risiko-Item im Portfolio, lieber jetzt 1 Woche Lerneffekt als später Konzept-Scheitern. **Aktion:** #77 als laufendes Risiko-Frontloading markiert; v0.4-Reste (#176, #177, #109) laufen ruhiger parallel. ### (b) #411 CI-Fix: → **B (Sammel-Cut)** ✅ Kein eigener v0.4.7-Patch. Fix wandert in den nächsten Feature-Release. Begründung übernommen: kein User-Wert in v0.4.7, nur Engineering-Lärm. **Aktion:** #411 bleibt offen, wird mit nächstem normalen Tag-Cut mitgenommen. ### (c) Branch-Cleanup: → **A (asynchron sichten)** ✅ 13 verwaiste Branches einzeln durchgehen über die nächsten 2 Wochen, PR-würdig vs. obsolet entscheiden. **Aktion:** PM startet asynchronen Sweep; jeder Branch entweder PR oder dokumentiert-und-gelöscht. --- *Status #412 bleibt offen bis Nachfolger KW 2026-W23.*
Author
Collaborator

Abgelöst durch #436 (Portfolio-Status KW2026-W23).

Abgelöst durch #436 (Portfolio-Status KW2026-W23).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp#412
No description provided.