Files
HiveGrid-Wireframes/hivegrid-cloud/docs/milestones/_TEMPLATE.md
T

3.2 KiB

M??? — [Titel]

Block: [Block-Name + Modul-Nr] Pflichtenheft-Quelle: _bmad-output/pflichtenheft/blocks/blockX.md Sektion Y.Z

Ziel

[1-2 Sätze: was am Ende des Milestones funktioniert, vom User aus gesehen]

Pflichtenheft-Bezug

  • [Sektion-ID] — [Kurz-Inhalt]
  • [Bauprinzip-ID falls relevant]

Abhängigkeiten

  • Vorbedingung: [Welche Milestones MÜSSEN davor abgeschlossen sein]
  • Wird benötigt von: [Welche Milestones bauen auf diesem auf]

Out of Scope

  • [Was explizit NICHT in diesem Milestone passiert]

Erfolgskriterium

[1 beobachtbares Ergebnis, das nach Abschluss verifizierbar ist]

Hinweise für Slice-Planung

  • [Hinweis 1]
  • [Hinweis 2]

Definition of Done — verbindlich (siehe AGENTS.md)

Dieses Milestone gilt nur dann als erledigt, wenn alle Punkte wahr sind.

Erreichbarkeit

  • Sidebar-Eintrag registriert in packages/ui-hivegrid/src/app-shell/sidebar.config.ts mit Permission-Gate (Gruppe siehe docs/INTEGRATION-CONTRACTS.md §1) — ODER explizit dokumentiert, warum nur Inline-Verlinkung aus bestehendem Modul
  • Route unter korrektem URL-Pattern (INTEGRATION-CONTRACTS §3)
  • Breadcrumb für Detail-Routes (§4)
  • Mobile-Tab-Bar-Eintrag, falls mobile-relevant (§13) — sonst explizit als „nicht mobile" dokumentiert
  • Customer-Portal-Sichtbarkeit explizit konfiguriert (§14) — Default „nicht sichtbar"

Querschnitt-Wiring

  • Audit läuft (auto via M001 oder manuell für Non-Prisma-Aktionen)
  • Activity-Stream-Eintrag bei relevanter Aktion via logActivity (M045)
  • Notifications via notify() (M011), nicht direkt
  • Search-Index in indexed-entities.ts registriert, falls suchbar
  • Permission-Filter via withTenantScope() + withPermission() (M004)
  • Feature-Flag-fähig (M006) — kann ohne Deploy abgeschaltet werden

Code-Layer-Disziplin

  • Loader baut View-Model; UI-Component empfängt nur VM + Actions
  • Keine Prisma-/Server-Imports in packages/ui-hivegrid/**
  • Subframe-Output via Adapter, nicht direkt importiert
  • Alle UI-Texte als i18n-Keys

Tests

  • Unit-Test für VM-Builder (pure function + Zod-Schema-Validierung)
  • Smoke-Test e2e/smoke/<modul>.spec.ts (Login → Route → Hauptaktion → erwartetes UI)
  • Hot-Swap-Drill grün (Smoke-Test gegen packages/ui-mock)
  • Visual-Regression-Snapshot der Hauptansicht (M016)

Klartext (User-facing)

  • Fehler-Texte aus M002-Catalog (kein HTTP-Code im UI)
  • Empty-State mit Klartext + nächster Aktion
  • Loading-State mit Klartext
  • Permission-Denied → 404, nicht 403

Rollback-Pfad

  • Forward-Only-DB-Migration mit Inverse-SQL als Kommentar im Migration-File
  • Atomic-Slice-Commits (TC-Default)
  • Feature-Flag vorhanden, um das Modul ohne Deploy auszuschalten

Klick-Pfad zum Prüfen (für User)

Schritt-für-Schritt-Anleitung, wie der User die Funktion nach Abschluss findet und testet:

  1. [Schritt 1: einloggen als welcher User-Typ]
  2. [Schritt 2: welche Sidebar-Gruppe + welcher Eintrag]
  3. [Schritt 3: welche Aktion im UI]
  4. [Schritt 4: was erwartet sichtbar sein muss]