26 KiB
HiveGrid 2.0 — Progress-Tracker
Zweck: Live-Übersicht über alle 176 Milestones. Der Agent updatet diese Datei nach jedem Milestone-Abschluss. Du als User prüfst über den Klick-Pfad und setzt Sign-Off.
Master-Quellen:
- Master-Index:
docs/milestones/README.md - Per-Milestone-Plan:
docs/milestones/M???-<slug>/PLAN.md - Definition of Done: in jeder PLAN.md am Ende
- Coverage:
docs/milestones/PFLICHTENHEFT-COVERAGE.md
Status-Legende
| Status | Bedeutung |
|---|---|
⚪ NICHT-GESTARTET |
Milestone wartet, Abhängigkeiten ggf. offen |
🔵 IN-ARBEIT |
Agent plant oder führt Slices aus |
🟡 READY-TO-VERIFY |
Agent fertig, Verify-Gates grün, wartet auf User-Sign-Off via Klick-Pfad |
🟢 SIGNED-OFF |
User hat Klick-Pfad durchlaufen und bestätigt |
🔴 BLOCKED |
Agent kann nicht weiter, User-Input nötig |
🟣 PARKED |
Bewusst zurückgestellt |
🟦 BOILERPLATE-PATTERN |
Pattern in Boilerplate vorhanden — HiveGrid-Agent füllt nur Inhalte ein |
Phase 0 — Vorbedingungen (außerhalb der 176)
| Aufgabe | Status | Bemerkung |
|---|---|---|
| EU-Sterilisation der Boilerplate | 🟢 SIGNED-OFF | 2026-05-11 verifiziert: Anthropic/OpenAI/Google-Auth raus; Mistral via @ai-sdk/mistral (packages/ai/src/providers/mistral.ts), Scaleway + AlephAlpha + compatible-Adapter vorhanden; Multi-Provider-Fallback (packages/ai/src/fallback.ts) |
| RR7-Migration zu Ende | 🟢 SIGNED-OFF | 2026-05-11 verifiziert: apps/web/app ist authoritative, kein Root-Hybrid mehr (siehe boilerplate/docs/architecture-migration-status.md) |
Phase-C-Foundation in Boilerplate (packages/foundation, view-models, ui-app, ui-mock, ui-subframe) |
🟢 SIGNED-OFF | 2026-05-11 verifiziert: pnpm verify:phase-c-boundaries läuft grün; alle Foundation-Patterns in @toolctrl/foundation exportiert |
Boilerplate-Inhalt in HiveGrid-Cloud/ übernommen |
🟢 erledigt | 2026-06-04 via git-merge (downstream), nicht rsync — siehe docs/ARCHITECTURE-DECISIONS.md AD-10 |
| Phase-0 Pre-Flight im Code umgesetzt | 🟢 erledigt | 2026-06-05: AGENTS Pre-Flight-Check besteht alle 4 Schritte; Build-Baseline + EU-Steri (OAuth raus) + M00-Neubauten (4/4) committed; offen nur #19 Deps (just-in-time) |
AGENTS.md + docs/INTEGRATION-CONTRACTS.md + docs/MID-STREAM-CHANGES.md + docs/TC-PLANNING-BRIEFING.md im Repo |
🟢 SIGNED-OFF | 2026-05-10 |
176 Milestone-Verzeichnisse mit PLAN.md |
🟢 SIGNED-OFF | 2026-05-10 |
docs/PROGRESS-TRACKER.md (diese Datei) angelegt |
🟢 SIGNED-OFF | 2026-05-10 |
Doku-Naming-Anpassung an Boilerplate-Realität (ui-hivegrid → ui-app, @hivegrid/foundation → @toolctrl/foundation, AdapterStatus, VMStatus) |
🟢 erledigt | 2026-06-05, AGENTS.md (commit 206e1ea3); ältere PLANs/Specs via AD-10-Mapping-Notiz abgedeckt (kein flächiges Rename) |
Boilerplate-Realität ab 2026-05-11: Die EU-Sterilisation + RR7-Migration + Phase-C-Foundation sind technisch abgeschlossen. Die HiveGrid-Milestones M001-M017 sind in der Boilerplate als Pattern umgesetzt — der HiveGrid-Agent muss sie nicht implementieren, sondern nur mit HiveGrid-spezifischen Inhalten befüllen.
Pattern-Standorte in der Boilerplate (für HiveGrid-Agent):
| HiveGrid-Pflicht | Pattern in Boilerplate |
|---|---|
| Audit-Log default (M001) | @toolctrl/foundation → withAuditMiddleware, AuditEventInput, AuditEventClient; DB: packages/db/src/audit-events.server.ts |
| Klartext-Diagnostik (M002) | @toolctrl/foundation → CatalogError, catalogRegistry (leer, HiveGrid füllt), foundationErrors, toPinoLogObject |
| i18n-Pflicht (M003) | @toolctrl/foundation → assertI18nKey; CI: pnpm verify:i18n (i18n-check.ts + ESLint) |
| Tenant-Scope + Permissions (M004, M005) | @toolctrl/foundation → withTenantScope, withPermission, withOwnerCheck, requirePermission, PermissionContext |
| Feature-Flag-Engine (M006) | @toolctrl/foundation → defineFlag, featureFlag, FlagDefinition, FlagResolutionInput |
| Idempotenz-Wrapper (M007) | @toolctrl/foundation → IdempotencyClient, IdempotencyResponse |
| Apps-Engine-Adapter + State-Machine (M008, M009, M010) | @toolctrl/foundation → defineAdapter, getAdapter, AdapterStatus (not_configured | configured | healthy | degraded | unavailable); Plugin-Loader: @toolctrl/plugins |
| Notification-Service (M011) | @toolctrl/foundation → notify, notifyMany, bundleNotifications, isNotificationEnabled, NotificationInput |
| Workspace-Topologie (M012) | Bereits angelegt: packages/view-models, packages/ui-app, packages/ui-subframe, packages/ui-mock |
| View-Model-Konvention (M013) | @toolctrl/view-models → VMState<T> (idle | loading | ready | empty | error), ActionCallbacks<T>, I18nLabel, RegistryGate, ready, empty, assertI18nLabel |
| Action-Callback-Contract (M014) | @toolctrl/view-models → ActionCallbacks<T> mit onCreate, onUpdate, onDelete, onRefresh |
| Subframe-Adapter-Layer (M015) | packages/ui-subframe ist als leeres Paket reserviert (README erklärt die Vendor-Import-Boundary) |
| Visual-Regression-Gate (M016) | CI-Script pnpm verify:ui-visual läuft + scripts/verify-ui-mock-visual.ts |
| Hot-Swap-Drill (M017) | CI-Job „Test UI mock hot-swap" in .gitea/workflows/ci.yml + pnpm test:hot-swap → pnpm verify:ui-hot-swap |
Master-Tabelle (176 Milestones)
| ID | Titel | Status | DoD-Score | Slices | Sign-Off |
|---|---|---|---|---|---|
| M001 | Audit-Log default | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M002 | Klartext-Diagnostik | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M003 | i18n-Pflicht-Wiring | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M004 | Tenant-Scope-Wrapper + Owner-Check | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M005 | URL-Tampering Hardening + Mass-Action-Schutz | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M006 | Feature-Flag-Engine (Code-Layer) | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M007 | Idempotenz-Wrapper für BullMQ-Steps | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M008 | Apps-Engine: Adapter-Interface + State-Machine | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M009 | Apps-Engine: Setup-Wizard + Sync-Log | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M010 | Apps-Engine: Probe-Scheduler + Webhook-Sturm-Schutz | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M011 | Notification-Service-Layer | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M012 | Workspace-Topologie | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M013 | View-Model-Konvention | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M014 | Action-Callback-Contract | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M015 | Subframe-Adapter-Layer | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M016 | Visual-Regression-Gate | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M017 | Hot-Swap-Drill | 🟦 BOILERPLATE-PATTERN | – | – | HiveGrid füllt Inhalte |
| M018 | Mandanten-Anlage | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M019 | Mandanten-Trennung Hardening | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M020 | Email/Passwort-Auth + HIBP + Brute-Force | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M021 | Magic-Link + Sitzungs-Verwaltung | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M022 | TOTP-2FA + Notfall-Codes | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M023 | Rollen-Engine + 6 SHK-Standard-Rollen + Gruppen | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M024 | Mitarbeiter-Einladung / Deaktivierung / Umverteilung | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M025 | Konto-Löschung (User + Admin) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M026 | Mandanten-Lebenszyklus | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M027 | API-Keys + Tarif-Feature-Gates | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M028 | User/Tenant Sprach-Settings + Auflösungs-Reihenfolge | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M029 | Sprach-Wechsler + Fallback-Hinweise | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M030 | Hell/Dunkel-Modus + Capacitor-Status-Bar | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M031 | Feature-Flag Schalter-Definition + Lifecycle | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M032 | Feature-Flag Filter-Editor + Einzel-Ausnahme-Editor | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M033 | Feature-Flag Massen-Funktionen + Statistik + Audit-Historie | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M034 | Plattform-Admin-Auth (admin.) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M035 | Plattform-Admin-Dashboard | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M036 | Mandanten-Verwaltung (Plattform-Admin) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M037 | Stellvertreter-Anmeldung („Login as") | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M038 | Mandanten-Mitarbeiter-Verwaltung (Plattform-Admin) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M039 | Plattform-Admin-Konten + Rollen | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M040 | Interne Lead-Pipeline (HiveGrid-Verkäufe) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M041 | System-Health + Audit-Anzeige + Datenschutz + Support | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M042 | Kontakt-Stammdaten | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M043 | Firma-Stammdaten + Hierarchie | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M044 | Schlagwörter + Custom-Felder + Datenherkunft | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M045 | Aktivitäts-Stream | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M046 | Listen + Segmente + DSGVO-Felder | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M047 | Lead-Inbox + Quellen-Adapter | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M048 | Lead-Routing pro Quelle [N4] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M049 | Auto-Verkaufsfall-Anlage | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M050 | Spam/Duplikat-Erkennung | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M051 | Lead-Status-Pipeline + Verlust-Gründe + Notifications | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M052 | Datei-Upload (Anti-Virus + Format-Whitelist) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M053 | Speicher-Backend (S3 auf Scaleway) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M054 | Datei: Permissions + Sharing + Versionierung | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M055 | Datei: Suche + Tagging + Archivierung | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M056 | Globale Suche: Such-Index | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M057 | Globale Suche: Permission-aware | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M058 | Globale Suche: UI + Saved-Searches | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M059 | Sales-Pipeline: Konfiguration + SHK-Standard-Pipeline | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M060 | Verkaufsfall-CRUD + Pflichtfeld Vertriebler [N6] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M061 | Sales-Pipeline: Kanban-UI + Drag&Drop | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M062 | Sales-Pipeline: Verlust/Gewinn-Gründe [N8] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M063 | Auto-Auftragsprojekt [N7] + Setter-Closer [N17] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M064 | Sales-Pipeline: Reporting + KWP-Sync | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M065 | Auftragspipeline: Konfiguration | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M066 | Auftrag-CRUD + KWP-Dokumenten-Archiv [N5] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M067 | Plantafel mit Tagen-Granularität [N10] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M068 | Auftrag: Mitglieder-Mgmt + Rollen pro Auftrag | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M069 | Auftrag: Abnahme-Workflow + Mängel-Liste | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M070 | Auftrag: Material-Listen + Lager-Anbindung | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M071 | Aufgaben-CRUD + Zuweisung | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M072 | Aufgaben-Listen pro Modul (Inline) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M073 | Aufgaben: Erinnerungen + Push + Email | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M074 | Aufgaben-Sync mit ERP-Aufgaben-Welt [N11] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M075 | Automation: Schema + Auslöser-Registry | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M076 | Automation: Aktion-Registry + Steuerungs-Bausteine | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M077 | Automation: Bedingungen | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M078 | Automation: Visueller Editor | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M079 | Automation: Test-Lauf + Schwellenwert-Vorschau | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M080 | Automation: 24h-Undo-Fenster + Reversibilität | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M081 | Automation: Schleifen-Schutz + Webhook-Sturm + Anomalie | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M082 | Automation: Klartext-Logs + Re-Run + Trigger-Volumen-Metering | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M083 | KI: EU-Provider-Layer (Mistral/Scaleway/AlephAlpha) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M084 | KI: Multi-Provider-Fallback + 30-Min-Health-Window | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M085 | KI: Promptfoo-Eval-Suite mit Injection-Vektoren in CI | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M086 | KI: Sprach-zu-Automation | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M087 | KI: RAG-Layer + Aktions-Grenze | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M088 | KI: Token-Limits + Pay-as-you-go [N13] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M089 | KWP-API-Connector (REST/OAuth über Apps-Engine) [Re-Cut] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M090 | KWP-API Connection-Health [Re-Cut] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M091 | KWP-Push-Queue + Replay (Cloud-Outbox) [Re-Cut] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M092 | KWP-API-Contract-Sentinel [Re-Cut] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M093 | KWP: Konflikt-Auflösung „KWP gewinnt" [N14] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M094 | KWP: Bidirektionale Plantafel-Sync [N10] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M095 | KWP: Dokumenten-Archiv-Sync KWP→HiveGrid [N5] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M096 | Email-Inbox: Gmail-OAuth-Integration via Apps-Engine | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M097 | Email-Inbox: Sync + Inbox-UI + Threading + Auto-Verknüpfung | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M098 | Email-Versand + Vorlagen + Variable-Resolution | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M099 | Email-Tracking + Delivery-Status + Bounces | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M100 | Email-Marketing: Editor (Block-Style) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M101 | Email-Marketing: Segmente + Empfänger-Auswahl | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M102 | Email-Marketing: Versand-Engine + DKIM/SPF + Frequenz-Schutz | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M103 | Email-Marketing: Reporting (Open/Click + Klick-Karte + Pro-Empfänger) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M104 | Email-Marketing: Unsubscribe + Bounce-Handling + Pflicht-Footer | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M105 | Telefonie: HalloPetra-Adapter [N16] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M106 | Telefonie: AirCall-Adapter | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M107 | Telefonie: Anruf-Eingang + CRM-Verknüpfung + Auto-Match | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M108 | Telefonie: Anruf-Ausgang + Click-to-Call | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M109 | Telefonie: Voicemail + Anruf-Notizen + Aufgaben-Auto-Anlage | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M110 | Team-Chat: Channel-Modell + Permissions | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M111 | Team-Chat: Nachrichten + Threads + Pinned + Reactions | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M112 | Team-Chat: Datei/Foto-Anhänge | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M113 | Team-Chat: Modul-Verknüpfungen | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M114 | Team-Chat: Mentions + Push + Lese-Bestätigungen | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M115 | Notification-Center + Lese-Status | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M116 | Notifications: User-Settings (Kanal + Stille Stunden) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M117 | Notifications: Kategorien + Bündelung + Anti-Spam | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M118 | Calendar: Google + Microsoft via Apps-Engine | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M119 | Calendar: Termin-Sync (bidirektional) + Konflikt-Auflösung | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M120 | Calendar: Display + Modul-Verknüpfung + Activity-Stream | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M121 | Form-Builder: Editor | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M122 | Form-Builder: Veröffentlichung + Sharing + Embed | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M123 | Form-Builder: Submission-Eingang + CRM-Verknüpfung + Aktionen | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M124 | Form-Builder: Conditional-Display (kein Branching) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M125 | Form-Builder: Rate-Limit + Captcha + DSGVO-Pflicht | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M126 | Booking: Buchungs-Seite + Time-Slot-Engine | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M127 | Booking: Verfügbarkeits-Berechnung | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M128 | Booking: Bestätigungs-Flow + Verknüpfungen | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M129 | Booking: Stornierung + Verschiebung + No-Show-Tracking | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M130 | Angebot: Erstellung (PDF aus Datei-Speicher oder Upload) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M131 | Angebot: PandaDoc/DocuSign-Integration via Apps-Engine | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M132 | Angebot: Status-Tracking + Auto-Stage-Wechsel | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M133 | HR: Mitarbeiter-Stammdaten + Standorte | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M134 | HR: Dokumente + Lohnabrechnungen + Verschlüsselter Passwort-Safe | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M135 | HR: Urlaubsanträge + Genehmigungs-Workflow | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M136 | HR: Krankmeldungen + Atteste | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M137 | HR: Schwarzes Brett (Bekanntmachungen) + Quick-Links + Resources | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M138 | HR: Onboarding-Drittanbieter (Memberspot/Boobora) [N18] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M139 | HR: Generische Anträge + Berichte + Lohn-Export + Surveys | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M140 | HR: Mitarbeiter-Selbstbedienung + Mobile-First | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M141 | Customer-Portal: Auth (separater Login-Flow) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M142 | Customer-Portal: Projekt-Sicht + Status-Mails | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M143 | Customer-Portal: Datei-Upload durch Endkunde + Reklamations-Forms | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M144 | Customer-Portal: Subunternehmer-Zugang [N19] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M145 | Customer-Portal: Skalierungs-Sicht (Service-Inbox + Routing) [N19] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M146 | Customer-Portal: Pro-Kunden-Lebensdauer + DSGVO + Konfig [N19] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M147 | Dashboard: Layout + Widget-Engine | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M148 | Dashboard: 7 Rollen-Standard-Layouts | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M149 | Dashboard: Drill-Down + Custom-Widget-Konfiguration | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M150 | Dashboard: Export + Report-Versand | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M151 | Audit-Log: Anzeige + Filter + Volltext-Suche | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M152 | Audit-Log: Compliance-Export + Aufbewahrung + Legal Hold | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M153 | Subscriptions: Stripe-Integration (EU) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M154 | Subscriptions: Plan-Engine + Seat-Modell (Büro/Monteur) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M155 | Subscriptions: Trial-Phase + Read-Only-Downgrade + Frozen-Modus | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M156 | Subscriptions: Verbrauchs-Erfassung + Pay-as-you-go [N13] | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M157 | Onboarding: Wizard-Framework + State-Machine | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M158 | Onboarding: SHK-Standard-Daten-Provisionierung | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M159 | Onboarding: Branchen-Templates deklarativ (A.3) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M160 | Onboarding: Demo-Daten + KI-Walkthrough | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M161 | Public-API: OpenAPI-Spec + Read-Endpoints | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M162 | Public-API: API-Key-Auth + Scopes + Rate-Limit | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M163 | Public-API: Webhooks (signiert, ein- und ausgehend) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M164 | DSGVO: User-Daten-Export + Mandanten-Daten-Export | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M165 | DSGVO: Account-Löschung + Mandanten-Lösch-Workflow | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M166 | DSGVO: AVV-Vertrag + Subprozessoren-Liste + Auskunfts-Workflow | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M167 | Mobile: Capacitor-Setup + Build-Pipeline | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M168 | Mobile: Native-Features (Push, Face/Touch-ID, Kamera) + Universal Links | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M169 | Mobile: Native Tab-Bar + Mobile-First-Routes (Baustelle) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M170 | Mobile: Offline-Modus für Baustelle (Pflicht Phase 1) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M171 | Mobile: App-Store-Compliance (Apple + Google) + Force-Update | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M172 | Help-Center: Markdown-Artikel-Mgmt (Git-PRs) | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M173 | Help-Center: Routes + Suche + SEO + Kontextuelle Hilfe | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M174 | Help-Desk: Email-basiertes Ticket-System + Plattform-Admin-Bearbeitung | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M175 | Help-Desk: In-App-Feedback-Widget („Problem melden") | ⚪ NICHT-GESTARTET | 0/14 | – | – |
| M176 | Anti-Liste + Change-Request-Workflow als Repo-Doku | ⚪ NICHT-GESTARTET | 0/14 | – | – |
Detail-Sektionen pro Milestone
Anweisung an den Agent: Sobald ein Milestone in IN-ARBEIT geht, ergänze hier eine Detail-Sektion gemäß folgender Vorlage. Nach Abschluss aller Slices: Status auf
🟡 READY-TO-VERIFY. User trägt nach Sign-Off🟢 SIGNED-OFFmit Datum ein.
Vorlage (zu kopieren pro Milestone)
### M??? — <Titel> — Status: 🔵 IN-ARBEIT
**Pflichtenheft-Bezug:** _bmad-output/pflichtenheft/blocks/blockX.md Sektion Y.Z
**Slice-Status:** N von M abgeschlossen
- [x] S01: <slice-title> — Commit: <hash>
- [x] S02: <slice-title> — Commit: <hash>
- [ ] S03: <slice-title>
**Definition of Done:**
*Erreichbarkeit*
- [ ] Sidebar-Eintrag — Datei: `packages/ui-hivegrid/src/app-shell/sidebar.config.ts` — Gruppe: <Gruppe> — Permission: <key>
- [ ] Route — `app/routes/<...>.tsx`
- [ ] Breadcrumb — `packages/ui-hivegrid/src/breadcrumbs/<...>.ts`
- [ ] Mobile-Tab-Bar — falls relevant: `packages/ui-hivegrid/src/mobile/tab-bar.config.ts`
- [ ] Customer-Portal-Sichtbarkeit — falls relevant: `packages/ui-hivegrid/src/customer-portal/portal-shell.config.ts`
*Querschnitt-Wiring*
- [ ] Audit (auto via M001 oder manuell)
- [ ] Activity-Stream via logActivity()
- [ ] Notifications via notify()
- [ ] Search-Index registriert
- [ ] Permission-Filter via withTenantScope() + withPermission()
- [ ] Feature-Flag-fähig
*Code-Layer-Disziplin*
- [ ] Loader baut VM, UI nur Props
- [ ] Keine Prisma-Imports in ui-hivegrid
- [ ] Alle UI-Texte als i18n-Keys
*Tests*
- [ ] Unit-Test (VM-Builder + Zod): `<test-path>`
- [ ] Smoke-Test: `e2e/smoke/<modul>.spec.ts`
- [ ] Hot-Swap-Drill: grün
- [ ] Visual-Regression-Snapshot: <Anzahl> Bilder
*Klartext + Rollback*
- [ ] Fehler-Texte aus M002-Catalog
- [ ] Empty/Loading/Error-States
- [ ] 404 statt 403 bei fehlender Permission
- [ ] Forward-Only-DB-Migration mit Inverse-SQL-Kommentar
- [ ] Feature-Flag zum Abschalten ohne Deploy
**DoD-Score:** N/14 erfüllt
**Klick-Pfad zum Prüfen** (für User):
1. Login als <user-typ> auf `app.hivegrid.de`
2. Sidebar → <Gruppe> → <Eintrag>
3. <Aktion ausführen>
4. <Erwartetes UI / Ergebnis>
**Notes vom Agent:** <was war nicht offensichtlich, was hat länger gedauert, was muss User wissen>
**User-Sign-Off:** [ ] Klick-Pfad durchlaufen, alles wie erwartet — Datum: <YYYY-MM-DD>, User: <Name>
Workflow
- Agent startet Milestone → Status auf
🔵 IN-ARBEIT, Detail-Sektion anlegen - Agent baut Slices → Slice-Liste abhaken, Commit-Hashes eintragen
- Agent hat alle DoD-Punkte erfüllt → Status auf
🟡 READY-TO-VERIFY - User durchläuft Klick-Pfad → wenn alles ok: User trägt
🟢 SIGNED-OFF+ Datum ein. Wenn nicht ok: User trägt Notes ein, Status zurück auf🔵 IN-ARBEIT - Agent geht zum nächsten Milestone — nicht vorher
Konsistenz-Check
- DoD-Score in der Master-Tabelle muss zur Detail-Sektion passen
🟡 READY-TO-VERIFYohne 14/14 DoD = inkonsistent → Agent muss korrigieren🟢 SIGNED-OFFohne Datum + User = inkonsistent → User muss ergänzen
Pflege
Diese Datei ist Live-Dokument. Pflicht-Update bei jedem Status-Wechsel. Bei mehr als 5 Milestones IN-ARBEIT gleichzeitig: STOP, an User melden — wir wollen Fokus, nicht Chaos.