From 1f98f01283d4134e6e465a29103477db973dc95f Mon Sep 17 00:00:00 2001 From: DEV-bot Date: Mon, 2 Mar 2026 01:52:37 +0000 Subject: [PATCH] docs(#251): define release-often SPA MVP 3-batch micro-PR plan --- TODO.md | 1 + ...UE-251-RELEASE-OFTEN-SPA-MVP-BATCH-PLAN.md | 89 +++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 docs/ISSUE-251-RELEASE-OFTEN-SPA-MVP-BATCH-PLAN.md diff --git a/TODO.md b/TODO.md index 7e8a466..62c1ffa 100644 --- a/TODO.md +++ b/TODO.md @@ -107,6 +107,7 @@ Byg **Weirsøe Party Protocol**: en dansk party-webapp platform ala Jackbox, hvo - [x] (Need-to-have) Tilføj spiller-auth/session-token for submit_lie (pt. baseret på player_id i payload) - [ ] (Nice-to-have) Endpoint til status/progress i løgnfasen (antal indsendt ud af total) - [ ] (Need-to-have) [Fejltype: CI/lint F401] [Fil/område: core_admin/*, fupogfakta/tests.py+views.py, lobby/admin.py+models.py, realtime/*, voice/*] [Branch/PR: feature/f3-lobby-create-join, feature/fase0-mvp-fup-og-fakta, feature/lobby-mvp (ingen åbne PRs fundet)] Fjern ubrugte scaffold-imports (eller kør ruff check --fix) så quality gate kan blive grøn før merge. +- [x] (Need-to-have) [Issue #251] Release-often lane: SPA MVP opdelt i 3 merge-klare micro-PR batches (plan + acceptance criteria dokumenteret i `docs/ISSUE-251-RELEASE-OFTEN-SPA-MVP-BATCH-PLAN.md`). - [ ] (Need-to-have) Rate limiting på join/submit endpoints - [ ] (Need-to-have) Session-kode brute-force beskyttelse - [ ] (Need-to-have) Audit-log for host-handlinger (start/stop/skip) diff --git a/docs/ISSUE-251-RELEASE-OFTEN-SPA-MVP-BATCH-PLAN.md b/docs/ISSUE-251-RELEASE-OFTEN-SPA-MVP-BATCH-PLAN.md new file mode 100644 index 0000000..dabe76c --- /dev/null +++ b/docs/ISSUE-251-RELEASE-OFTEN-SPA-MVP-BATCH-PLAN.md @@ -0,0 +1,89 @@ +# Issue #251 — Release-often lane for SPA MVP (3 micro-PR batches) + +## Formål +Bryde SPA MVP-arbejdet op i **3 merge-klare micro-PRs** med tydelige acceptance criteria, +så vi kan levere værdi oftere, reducere review-risiko og holde `main` grøn. + +## Scope (issue-bound) +Denne plan dækker kun planlægning/acceptance for den kommende SPA MVP-lane. +Implementering af de konkrete features sker i efterfølgende PRs. + +## Hard acceptance criteria for issue #251 +- [ ] Der findes en dokumenteret plan med præcis **3 batches**. +- [ ] Hver batch har: + - [ ] mål og afgrænsning + - [ ] konkrete leverancer (kodeområder) + - [ ] test/checks før merge + - [ ] "ikke med i denne batch" for at undgå scope creep +- [ ] Batch-rækkefølgen er dependencies-sikker (batch 2 bygger på batch 1, batch 3 på batch 2). +- [ ] Hver batch kan merges uafhængigt uden at blokere drift på `main`. + +## Batch-plan (merge-klare micro-PRs) + +### Batch 1 — SPA shell + routing baseline +**Mål:** Et stabilt SPA-skelet med route-struktur og guard-basics. + +**Leverancer** +- Frontend shell-komponenter og route-konfiguration for host/player entrypoints. +- Baseline route guards (kun ikke-destruktive sikkerhedschecks). +- Feature-flag/kompatibilitet så eksisterende flow ikke brydes. + +**Checks før merge** +- Frontend build/lint/test grøn. +- Smoke: host route og player route kan åbnes uden runtime-fejl. +- Ingen regression i eksisterende server-rendered/default flow. + +**Ikke med i batch 1** +- Fuld gameplay-state synkronisering. +- Audio/polish og i18n finpudsning ud over baseline wiring. + +--- + +### Batch 2 — Session-state + host/player sync MVP +**Mål:** Korrekt synkronisering af session-state mellem host og spillerklient. + +**Leverancer** +- Klient-state wiring til eksisterende backend events/endpoints. +- Deterministiske overgangstilstande for centrale faser (join/lobby/round/score). +- Guardrails mod race conditions i route/session handoff. + +**Checks før merge** +- Relevante unit/integration tests for state transitions grøn. +- Smoke: host handling afspejles hos spiller indenfor forventet latenstid. +- Ingen 500/JS runtime errors i happy-path MVP flow. + +**Ikke med i batch 2** +- Avanceret UX-polish/animation. +- Udvidet observability udenfor MVP-kritiske logs. + +--- + +### Batch 3 — UX hardening + release readiness +**Mål:** Gøre SPA MVP release-klar med fokus på stabilitet og driftssikkerhed. + +**Leverancer** +- Error/empty/loading states for kritiske skærme. +- Dokumenteret smoke-run + opdaterede release-noter/changelog input. +- Endelig cutover-checkliste for MVP-lane. + +**Checks før merge** +- End-to-end MVP smoke-pass (host + mindst én spiller). +- Definerede fallback-paths ved manglende data/event-delay verificeret. +- Release artefakter opdateret (relevant docs/changelog-input). + +**Ikke med i batch 3** +- Post-MVP featureudvidelser. +- Større refactors uden direkte release-værdi. + +## Merge-gate for alle 3 batches +- Små PRs (mål: reviewbar størrelse, helst < ~300 netto-linjer når muligt). +- Grøn CI/checks før review-request. +- Tydelig PR-beskrivelse med: scope, test evidence, out-of-scope. +- Ingen skjulte sideeffekter på tværs af apps/domæner. + +## Foreslået branch/PR navngivning +- `feat/issue-251-batch-1-spa-shell-routing` +- `feat/issue-251-batch-2-session-sync` +- `feat/issue-251-batch-3-ux-hardening-release` + +Denne issue-PR (#251) er plan-PRen, som gør lane-kørsel merge-klar.