From d953a79e95e0dc92e3b9a8d6ad564d54818911a1 Mon Sep 17 00:00:00 2001 From: davetoolctrl Date: Sat, 8 Aug 2026 03:09:06 +0200 Subject: [PATCH] chore(repo): sync wireframe structure and references --- 01 Regeln/Obsidian Struktur.md | 4 +- .../00 Start hier - David.md | 0 .../D-FORM David Uebergabe 2026-07-09.md | 0 .../David Review Checkliste.md | 0 .../Screens/01 S00 Formulare verwalten.md | 0 .../Screens/02 E01 S00 Keine Formulare.md | 0 .../Screens/03 E02 S00 Keine Treffer.md | 0 .../Screens/04 S01 Formularart auswaehlen.md | 0 .../Screens/05 S02 Einfacher Fragen Editor.md | 0 .../Screens/05b S02L Lead Felder zuweisen.md | 0 .../05c E05 S02 Lead Zuweisung pruefen.md | 0 .../Screens/06 S03 Formular Design.md | 0 .../Screens/07 S04 Oeffentliches Formular.md | 0 .../08 V01 Public Erfolg oder Redirect.md | 0 ...09 V02 Public Formular nicht verfuegbar.md | 0 ...0 V03 Public Captcha oder Submit Fehler.md | 0 .../Screens/11 S05 Antworten Tabelle.md | 0 .../Screens/12 E03 S05 Keine Antworten.md | 0 .../Screens/13 E04 S05 Export Fehler.md | 0 .../81 S01C Website Formular Editor.md | 0 .../Screens/82 S01D Umfrage Editor.md | 0 .../83 S01E Internes Formular Editor.md | 0 .../D01 Sharing Panel URL QR iFrame.md | 0 .../Screens/D02 Post-Submit Actions.md | 0 .../Screens/D03 Conditional Logic Editor.md | 0 .../Screens/D06 Feldkarten Menue.md | 0 .../Screens/D10 Builder Interaktionsfaelle.md | 0 .../Screens/M01 Feld loeschen Confirm.md | 0 .../Screens/M02 Unpublish Confirm.md | 0 .../Screens/M03 Archive Confirm.md | 0 .../Screens/M04 Unsaved Changes Confirm.md | 0 .../Simple Builder Neuausrichtung.md | 0 .../Subframe Bau Log.md | 0 .../Subframe Bauplan.md | 0 .../WF-D-FORM Form Builder.canvas | 28 +- .../WF-D-FORM Form Builder.md | 2 +- .../Screens/M03 Start-Auswahl.md | 0 .../Screens/M04 Automation aktivieren.md | 0 .../Screens/M05 Automation pausieren.md | 0 .../Screens/S01 Flow-Editor.md | 0 .../Screens/S01b Baustein-Picker.md | 0 .../Screens/S01c Canvas-Kontextmenue.md | 0 .../WF-P12 Flow-Editor.canvas | 18 +- .../WF-P12 Flow-Editor/WF-P12 Flow-Editor.md | 0 .../{P12 Automationen => }/P12 Todo.md | 0 .../Screens/K-A1 Datensatz aendern.md | 0 .../Screens/K-A1 Notiz anlegen.md | 0 .../Screens/K-A2 Benachrichtigung senden.md | 0 .../Screens/K-A2 E-Mail senden.md | 0 .../Screens/K-A3 Aufgabe anlegen.md | 0 .../Screens/K-A3 Aufgabe zuweisen.md | 0 .../Screens/K-I1 HTTP-Anfrage.md | 0 .../WF-P12 Verwaltung/Screens/K-L1 Filter.md | 0 .../WF-P12 Verwaltung/Screens/K-L1 Oder.md | 0 .../WF-P12 Verwaltung/Screens/K-L1 Switch.md | 0 .../WF-P12 Verwaltung/Screens/K-L1 Und.md | 0 .../Screens/K-L1 Wenn-Dann.md | 0 .../Screens/K-L2 Schleife.md | 0 .../WF-P12 Verwaltung/Screens/K-L2 Warten.md | 0 .../Screens/K-L2 Wert setzen.md | 0 .../Screens/K-T1 Kontakt geaendert.md | 0 .../Screens/K-T1 Lead qualifiziert.md | 0 .../Screens/K-T1 Neue Anfrage.md | 0 .../K-T1 Neuer Kontakt - Mit Beispiel.md | 0 .../Screens/K-T1 Projekt angelegt.md | 0 .../Screens/K-T1 Projekt gewonnen.md | 0 .../Screens/K-T1 Status gewechselt.md | 0 .../Screens/K-T2 Ereignis erstellt.md | 0 .../Screens/K-T2 Frist oder Termin.md | 0 .../Screens/K-T2 Termin gebucht.md | 0 .../Screens/K-T2 Termin storniert.md | 0 .../Screens/K-T2 Zeitplan monatlich.md | 0 .../Screens/K-T2 Zeitplan.md | 0 .../Screens/K-T3 E-Mail eingegangen.md | 0 .../Screens/K-T3 E-Mail unzustellbar.md | 0 .../Screens/K-T3 Formular abgeschickt.md | 0 .../Screens/K-T3 Webhook empfangen.md | 0 .../Screens/M04 Vorlagen-Katalog.md | 0 .../Screens/S01 Automation-Liste.md | 0 .../Screens/S02 Lauf-Liste.md | 0 .../Screens/S03 Lauf-Detail.md | 0 .../Screens/S05 Baustein-Konfig-Panels.md | 0 .../S05a Baustein-Konfig Vorplanung.md | 0 .../Screens/S06 Zugangsdaten.md | 0 .../WF-P12 Verwaltung.canvas | 84 +- .../WF-P12 Verwaltung/WF-P12 Verwaltung.md | 0 .../Screens/M01 Zurueckziehen.md | 0 .../Screens/S01 Signaturen im Projekt.md | 0 .../Screens/S02 Signatur-Wizard.md | 0 .../Screens/S03 Signatur-Detail.md | 0 .../Screens/S04 Signieren per Link.md | 0 .../Screens/V01 Vor Ort unterschreiben.md | 0 .../WF-P16 E-Signatur.canvas | 57 + .../WF-P16 E-Signatur/WF-P16 E-Signatur.md | 0 .../Screens/M01 Termin-Dialog.md | 0 .../Screens/M02 Termin-Detail.md | 0 .../WF-P16 Kalender/Screens/S01 Kalender.md | 0 .../Screens/S02 Kalender-Einstellungen.md | 0 .../WF-P16 Kalender/WF-P16 Kalender.canvas | 10 +- .../WF-P16 Kalender/WF-P16 Kalender.md | 0 .../Screens/M01 Verschieben.md | 0 .../Screens/M02 Stornieren.md | 0 .../Screens/S01 Termin waehlen.md | 0 .../Screens/S02 Fragen.md | 0 .../Screens/S03 Bestaetigung.md | 0 .../Screens/S04 Absagen Verschieben.md | 0 .../Screens/S05 Buchungen-Liste.md | 0 .../Screens/S06 Buchungs-Detail.md | 0 .../Screens/S07 Buchungsseiten-Liste.md | 0 .../Screens/S08 Buchungsseiten-Editor.md | 0 .../Screens/S09 Verfuegbarkeit.md | 0 .../Screens/V01 Termin waehlen Handy.md | 0 .../WF-P16 Terminbuchung.canvas | 26 +- .../WF-P16 Terminbuchung.md | 0 .../WF-P16 E-Signatur.canvas | 29 - .../Screens/M01 2FA verwalten.md | 0 .../Screens/M02 Device Token hinzufuegen.md | 0 .../Screens/M03 2FA deaktivieren.md | 0 .../WF-P2 2FA Verwalten.canvas | 6 +- .../WF-P2 2FA Verwalten.md | 0 ...D01 Rollen-Dropdown in Mitarbeiterliste.md | 0 .../Screens/D03 Rolle in Nutzung blockiert.md | 0 .../Screens/M01 Mitarbeiter einladen.md | 0 .../Screens/M02 Rolle bearbeiten.md | 0 .../Screens/M03 Mitarbeiter deaktivieren.md | 0 .../Screens/M04A Rolle anlegen.md | 0 .../Screens/M04B Rolle duplizieren.md | 0 .../Screens/S01 Mitarbeiterliste.md | 0 .../Screens/S02 Rollen und Berechtigungen.md | 0 .../Screens/V01 Letzter Admin blockiert.md | 0 .../WF-P2 Admin RBAC/WF-P2 Admin RBAC.canvas | 18 +- .../WF-P2 Admin RBAC/WF-P2 Admin RBAC.md | 0 .../Screens/M01 Identitaet bestaetigen.md | 0 .../Varianten/V01 Zu viele Fehlversuche.md | 0 .../WF-P2 Change Password.canvas | 6 +- .../WF-P2 Change Password.md | 2 +- .../Screens/M01 Loeschung anfragen.md | 0 .../S01 Settings Workspaces Loeschbereich.md | 0 .../WF-P2 Konto loeschen.canvas | 4 +- .../WF-P2 Konto loeschen.md | 2 +- .../WF-P2 Login und 2FA/Screens/S01 Login.md | 0 .../Screens/S02 Magic-Link anfordern.md | 0 .../Screens/S03 Magic-Link gesendet.md | 0 .../Screens/S04 2FA Code eingeben.md | 0 .../Varianten/V01 Login falsche Daten.md | 0 .../Varianten/V02 Login mit mCaptcha.md | 0 .../Varianten/V03 2FA gesperrt.md | 0 .../WF-P2 Login und 2FA.canvas | 14 +- .../WF-P2 Login und 2FA.md | 2 +- .../Screens/M01 Admin kontaktieren.md | 0 .../M02 Wiederherstellungscode eingeben.md | 0 .../Screens/S01 Passwort Reset anfordern.md | 0 .../Screens/S02 Reset-Link gesendet.md | 0 .../Screens/S03 2FA bestaetigen.md | 0 .../Varianten/V01 Reset-Link ungueltig.md | 0 .../Varianten/V02 2FA nicht verfuegbar.md | 0 .../WF-P2 Passwort Reset.canvas | 14 +- .../WF-P2 Passwort Reset.md | 2 +- .../Screens/S01 Profil Settings.md | 0 .../WF-P2 Profil und Sicherheit.canvas | 6 +- .../WF-P2 Profil und Sicherheit.md | 0 .../Screens/S01 Neues Passwort setzen.md | 0 .../Screens/S02 2FA freiwillig anbieten.md | 0 .../Screens/S03 2FA erforderlich.md | 0 .../Screens/S04 2FA einrichten.md | 0 .../Screens/S05 Recovery Hinweis.md | 0 .../Screens/S06 Abschluss.md | 0 .../Varianten/V03 2FA Setup gesperrt.md | 0 .../WF-P2 Set Password.canvas | 14 +- .../WF-P2 Set Password/WF-P2 Set Password.md | 2 +- .../WF-P2 Signup/Screens/S01 Signup.md | 0 ... erfolgreich Workspace wird vorbereitet.md | 0 .../Screens/S03 E-Mail bestaetigen.md | 0 .../WF-P2 Signup/WF-P2 Signup.canvas | 6 +- .../WF-P2 Signup/WF-P2 Signup.md | 2 +- .../Screens/S01 Workspace Auswahl.md | 0 .../Screens/S02 Neuer Workspace anlegen.md | 0 .../WF-P2 Workspace Auswahl.canvas | 4 +- .../WF-P2 Workspace Auswahl.md | 2 +- .../WF-P2 Workspace loeschen.canvas | 0 .../WF-P2 Workspace loeschen.md | 2 +- .../Screens/M01 Detail-Drawer.md | 0 .../Screens/M02 Export anlegen.md | 0 .../Screens/M03 Objekt-Verlauf-Drawer.md | 0 .../Screens/S01 Protokoll-Ansicht.md | 0 .../WF-P3 Audit Log/Screens/S02 Exporte.md | 0 .../WF-P3 Audit Log/WF-P3 Audit Log.canvas | 12 +- .../WF-P3 Audit Log/WF-P3 Audit Log.md | 0 .../Screens/S01 Glocken-Drawer.md | 0 .../Screens/S02 Benachrichtigungen Seite.md | 0 .../S03 Benachrichtigungen Einstellungen.md | 0 .../WF-P3 Benachrichtigungen.canvas | 8 +- .../WF-P3 Benachrichtigungen.md | 0 .../Screens/M01 Aufgabe anlegen.md | 0 .../Screens/S01 Aufgaben-Liste.md | 0 .../Screens/S02 Aufgaben-Detail.md | 0 .../Screens/S03 Aufgaben-Drawer.md | 0 .../V01 Eingebettete Kompakt-Variante.md | 0 .../WF-P4 Aufgaben/WF-P4 Aufgaben.canvas | 12 +- .../WF-P4 Aufgaben/WF-P4 Aufgaben.md | 0 .../Screens/M01 Datei freigeben.md | 0 .../Screens/S01 Datei-Uebersicht.md | 0 .../WF-P4 Dateien/Screens/S02 Upload.md | 0 .../WF-P4 Dateien/Screens/S03 Datei-Detail.md | 0 .../WF-P4 Dateien/WF-P4 Dateien.canvas | 10 +- .../WF-P4 Dateien/WF-P4 Dateien.md | 0 .../Screens/M01 Kontakt anlegen.md | 0 .../Screens/M02 Organisation anlegen.md | 0 .../Screens/M03 Zusammenfuehren.md | 0 .../Screens/S01 Kontakte-Liste.md | 0 .../Screens/S02 Organisationen-Liste.md | 0 .../Screens/S03 Kontakt-Karteikarte.md | 0 .../Screens/S04 Organisations-Karteikarte.md | 0 .../Screens/S05 Eigene Felder.md | 0 .../Screens/S06 Tags.md | 0 .../Screens/S07 Duplikat-Tool.md | 0 .../WF-P6 Kontakte und Organisationen.canvas | 22 +- .../WF-P6 Kontakte und Organisationen.md | 0 .../WF-P8 Pipelines/WF-P8 Pipelines.canvas | 12 +- .../Screens/S01 Abnahme-Liste.md | 0 .../Screens/S02 Schritt Pruefungen.md | 0 .../Screens/S03 Schritt Maengel.md | 0 .../Screens/S04 Schritt Unterschriften.md | 0 .../WF-P9 Abnahme/WF-P9 Abnahme.canvas | 10 +- .../WF-P9 Abnahme/WF-P9 Abnahme.md | 0 .../Screens/M01 Konflikt-Dialog.md | 0 .../Screens/M02 Einsatz-Dialog.md | 0 .../WF-P9 Plantafel/Screens/S01 Plantafel.md | 0 .../Screens/S02 Meine Termine.md | 0 .../WF-P9 Plantafel/WF-P9 Plantafel.canvas | 10 +- .../WF-P9 Plantafel/WF-P9 Plantafel.md | 0 .../Screens/M01 Rechnung anlegen.md | 0 .../Screens/S01 Auftrags-Reiter.md | 0 .../Screens/S02 Mobil-Modus.md | 0 .../Screens/S03 Abnahme-Formular-Vorlagen.md | 0 .../Screens/S04 Projekt-Vorlagen.md | 0 .../WF-P9 Projekt-Akte.canvas | 12 +- .../WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.md | 0 02 Wireframes/Screen Paket Tracker.md | 442 +- 03 Quellen und Referenzen/README.md | 1 + 03 Quellen und Referenzen/Repo Notizen.md | 8 + .../hivegrid-website/.dockerignore | 8 + .../.gitea/workflows/deploy.yml | 159 + .../.gitea/workflows/promote.yml | 275 + .../.gitea/workflows/sonarqube.yml | 22 + .../hivegrid-website/.gitignore | 50 + .../hivegrid-website/.gsd/PROJECT.md | 14 + .../.gsd/milestones/M001/M001-ROADMAP.md | 55 + .../milestones/M001/slices/S01/S01-PLAN.md | 14 + .../milestones/M001/slices/S02/S02-PLAN.md | 14 + .../milestones/M001/slices/S03/S03-PLAN.md | 17 + .../milestones/M001/slices/S04/S04-PLAN.md | 14 + .../hivegrid-website/AGENTS.md | 5 + .../hivegrid-website/CLAUDE.md | 1 + .../hivegrid-website/Dockerfile | 56 + .../hivegrid-website/MCP-SUBPAGE-CONTENT.md | 192 + .../hivegrid-website/OFFENE-PUNKTE.md | 313 + .../hivegrid-website/README.md | 1 + .../hivegrid-website/app/agb/page.tsx | 40 + .../app/api/demo-chat/reply/route.ts | 58 + .../app/api/demo-request/route.ts | 95 + .../hivegrid-website/app/apple-icon.png | Bin 0 -> 5042 bytes .../hivegrid-website/app/datenschutz/page.tsx | 472 ++ .../hivegrid-website/app/demo/DemoForm.tsx | 85 + .../hivegrid-website/app/demo/page.tsx | 6 + .../hivegrid-website/app/favicon.ico | Bin 0 -> 3056 bytes .../hivegrid-website/app/globals.css | 293 + .../hivegrid-website/app/healthz/route.ts | 8 + .../hivegrid-website/app/impressum/page.tsx | 48 + .../app/ki-anbindung/page.tsx | 532 ++ .../app/kontakt/KontaktForm.tsx | 319 + .../hivegrid-website/app/kontakt/page.tsx | 6 + .../hivegrid-website/app/kunden/page.tsx | 236 + .../hivegrid-website/app/layout.tsx | 158 + .../hivegrid-website/app/login/route.ts | 18 + .../hivegrid-website/app/manifest.ts | 19 + .../hivegrid-website/app/mission/page.tsx | 58 + .../app/newsletter/abmelden/AbmeldenForm.tsx | 54 + .../app/newsletter/abmelden/page.tsx | 12 + .../newsletter/abmeldung-bestaetigt/page.tsx | 24 + .../app/newsletter/danke/page.tsx | 30 + .../hivegrid-website/app/not-found.tsx | 41 + .../hivegrid-website/app/opengraph-image.tsx | 127 + .../hivegrid-website/app/page.tsx | 13 + .../hivegrid-website/app/preise/page.tsx | 251 + .../app/produkt/chat/page.tsx | 30 + .../app/produkt/email-marketing/page.tsx | 19 + .../produkt/mitarbeitermanagement/page.tsx | 19 + .../app/produkt/projektmanagement/page.tsx | 19 + .../app/produkt/vertriebspipelines/page.tsx | 20 + .../app/produkt/workflow-engine/page.tsx | 20 + .../app/reset-browser-state/route.ts | 50 + .../hivegrid-website/app/robots.ts | 18 + .../hivegrid-website/app/sitemap.ts | 30 + .../hivegrid-website/app/twitter-image.tsx | 1 + .../app/ueber-uns/TeamCards.tsx | 1027 +++ .../hivegrid-website/app/ueber-uns/page.tsx | 122 + .../hivegrid-website/app/ueber-uns/team.ts | 124 + .../app/waitlist/WaitlistForm.tsx | 260 + .../app/waitlist/WaitlistModules.tsx | 201 + .../app/waitlist/WaitlistNext.tsx | 141 + .../hivegrid-website/app/waitlist/page.tsx | 21 + .../README.md | 16 + .../REWORK_MAPPING.md | 309 + .../landingpage-variants/LabShared.tsx | 390 + .../MUSS_GELOESCHT_WERDEN.md | 10 + .../landingpage-variants/cockpit/page.tsx | 5 + .../landingpage-variants/content.ts | 207 + .../landingpage-variants/lab.module.css | 3940 +++++++++ .../landingpage-variants/layout.tsx | 22 + .../landingpage-variants/page.tsx | 49 + .../prozessfluss/page.tsx | 5 + .../landingpage-variants/systemkarte/page.tsx | 5 + .../landingpage-variants/useLabMotion.ts | 238 + .../landingpage-variants/variants/Cockpit.tsx | 231 + .../variants/Prozessfluss.tsx | 189 + .../variants/Systemkarte.tsx | 187 + .../variants/Werkstatt.tsx | 175 + .../landingpage-variants/werkstatt/page.tsx | 5 + .../grid-lab/GridLabClient.tsx | 291 + .../grid-lab/grid-lab.module.css | 467 ++ .../playground-route/grid-lab/page.tsx | 33 + .../playground-route/middleware.ts | 40 + .../playground-route/page.tsx | 52 + .../components/dev/AgentationClient.tsx | 26 + .../components/dev/AgentationDev.tsx | 7 + .../components/landing/HoneycombSection.tsx | 2236 ++++++ .../components/landing/LandingPageClient.tsx | 796 ++ .../components/layout/Footer.tsx | 230 + .../components/layout/Navbar.tsx | 454 ++ .../components/sections/AdvantagesSection.tsx | 99 + .../components/sections/ApprovalInbox.tsx | 198 + .../components/sections/ChatDemoSection.tsx | 527 ++ .../sections/ChatDemoSectionClient.tsx | 16 + .../sections/DesktopSystemCards.module.css | 146 + .../sections/DesktopSystemCards.tsx | 220 + .../components/sections/EmailBuilder.tsx | 294 + .../components/sections/FAQSection.tsx | 172 + .../components/sections/FeaturesGrid.tsx | 119 + .../components/sections/HeroConnect.tsx | 149 + .../components/sections/HeroSection.tsx | 198 + .../components/sections/HowItWorksSection.tsx | 106 + .../components/sections/KanbanBoard.tsx | 376 + .../sections/ProductPageTemplate.tsx | 207 + .../components/sections/RequestFlow.tsx | 131 + .../sections/ScreenshotAccordion.module.css | 45 + .../sections/ScreenshotAccordion.tsx | 399 + .../components/sections/VertriebBentoGrid.tsx | 370 + .../components/sections/WebChatDemo.tsx | 328 + .../components/sections/WorkflowEditor.tsx | 867 ++ .../components/sections/WorkflowShowcase.tsx | 321 + .../components/ui/CTABanner.tsx | 64 + .../components/ui/CanvasHint.tsx | 102 + .../components/ui/CtaShowcase.tsx | 227 + .../components/ui/DemoButton.tsx | 164 + .../components/ui/LeadForm.tsx | 164 + .../hivegrid-website/docs/deployment.md | 54 + .../hivegrid-website/eslint.config.mjs | 19 + .../hivegrid-website/infrastructure/Caddyfile | 23 + .../docker-compose.production.yml | 42 + .../hivegrid-website/lib/chamfer.ts | 12 + .../lib/chat-demo/assistant.ts | 152 + .../hivegrid-website/lib/db/demo-requests.ts | 52 + .../hivegrid-website/lib/faqs.ts | 26 + .../hivegrid-website/lib/produkt-daten.ts | 247 + .../hivegrid-website/lib/site.config.ts | 97 + .../hivegrid-website/next.config.ts | 65 + .../hivegrid-website/package-lock.json | 7142 +++++++++++++++++ .../hivegrid-website/package.json | 36 + .../hivegrid-website/postcss.config.mjs | 7 + .../hivegrid-website/posts.md | 225 + .../hivegrid-website/public/aircall.svg | 31 + .../hivegrid-website/public/bauhow.png | Bin 0 -> 23819 bytes .../hivegrid-website/public/claude.svg | 16 + .../hivegrid-website/public/cta-honeycomb.svg | 2654 ++++++ .../hivegrid-website/public/datev.png | Bin 0 -> 14389 bytes .../hivegrid-website/public/file.svg | 1 + .../hivegrid-website/public/geerkens-logo.png | Bin 0 -> 72018 bytes .../hivegrid-website/public/globe.svg | 1 + .../public/google-calendar.svg | 28 + .../hivegrid-website/public/google-drive.svg | 8 + .../hivegrid-website/public/hallopetra.png | Bin 0 -> 75735 bytes .../hivegrid-website/public/hivegrid-logo.png | Bin 0 -> 50539 bytes .../public/icons/products/chat-app@4x.png | Bin 0 -> 9343 bytes .../icons/products/email-marketing@4x.png | Bin 0 -> 9932 bytes .../products/mitarbeitermanagement@4x.png | Bin 0 -> 10587 bytes .../icons/products/projektmanagement@4x.png | Bin 0 -> 8789 bytes .../icons/products/vertriebspipelines@4x.png | Bin 0 -> 6184 bytes .../icons/products/workflow-engine@4x.png | Bin 0 -> 7310 bytes .../public/images/hero-screenshot.webp | Bin 0 -> 114474 bytes .../public/images/hivegrid-icon-yellow.svg | 13 + .../illustration-1-dutzende-tools@4x.webp | Bin 0 -> 25016 bytes .../illustration-2-alles-im-kopf@4x.webp | Bin 0 -> 17086 bytes .../illustration-3-kein-wachstum@4x.webp | Bin 0 -> 29834 bytes .../public/images/raffael-sheikh.jpg | Bin 0 -> 4590 bytes .../public/images/screenshot-chat.png | Bin 0 -> 642458 bytes .../public/images/screenshot-formbuilder.png | Bin 0 -> 192417 bytes .../public/images/screenshot-planung.webp | Bin 0 -> 66482 bytes .../screenshot-projektmanagement-pipeline.png | Bin 0 -> 736515 bytes .../images/screenshot-projektmanagement.png | Bin 0 -> 885183 bytes .../public/images/screenshot-verwaltung.webp | Bin 0 -> 58786 bytes .../public/images/screenshot-workflow.png | Bin 0 -> 410704 bytes .../public/images/step-aktionen.webp | Bin 0 -> 12582 bytes .../public/images/step-aktivieren.webp | Bin 0 -> 92140 bytes .../images/step-trigger-definieren.webp | Bin 0 -> 13380 bytes .../images/step-workflow-erstellen.webp | Bin 0 -> 42246 bytes .../public/images/team-cards/aki-bg.webp | Bin 0 -> 37808 bytes .../public/images/team-cards/aki-person.webp | Bin 0 -> 49730 bytes .../public/images/team-cards/artur-bg.webp | Bin 0 -> 32880 bytes .../images/team-cards/artur-person.webp | Bin 0 -> 35404 bytes .../public/images/team-cards/david-bg.webp | Bin 0 -> 31592 bytes .../images/team-cards/david-person.webp | Bin 0 -> 41584 bytes .../public/images/team-cards/dejan-bg.webp | Bin 0 -> 33460 bytes .../images/team-cards/dejan-person.webp | Bin 0 -> 43578 bytes .../public/images/team-cards/haris-bg.webp | Bin 0 -> 36240 bytes .../images/team-cards/haris-person.webp | Bin 0 -> 42938 bytes .../public/images/team-cards/michelle-bg.webp | Bin 0 -> 44408 bytes .../images/team-cards/michelle-person.webp | Bin 0 -> 59574 bytes .../public/images/team-cards/noah-bg.webp | Bin 0 -> 32800 bytes .../public/images/team-cards/noah-person.webp | Bin 0 -> 43812 bytes .../public/images/team-cards/raffael-bg.webp | Bin 0 -> 37786 bytes .../images/team-cards/raffael-person.webp | Bin 0 -> 43630 bytes .../public/images/team/david-bertram.webp | Bin 0 -> 118510 bytes .../public/images/team/noah.webp | Bin 0 -> 112668 bytes .../hivegrid-website/public/kwp.png | Bin 0 -> 61646 bytes .../hivegrid-website/public/logo-white.svg | 93 + .../hivegrid-website/public/logo.svg | 93 + .../hivegrid-website/public/ms-outlook.svg | 35 + .../hivegrid-website/public/ms-teams.svg | 22 + .../hivegrid-website/public/next.svg | 1 + .../hivegrid-website/public/onepage.png | Bin 0 -> 6240 bytes .../hivegrid-website/public/openai.svg | 6 + .../hivegrid-website/public/pandadoc.png | Bin 0 -> 1522 bytes .../hivegrid-website/public/pds.svg | 30 + .../hivegrid-website/public/sw.js | 21 + .../hivegrid-website/public/vercel.svg | 1 + .../public/videos/hero-poster.jpg | Bin 0 -> 176495 bytes .../public/videos/hero-test.mp4 | Bin 0 -> 2183427 bytes .../hivegrid-website/public/window.svg | 1 + .../scripts/cf-disable-video-compression.sh | 84 + .../scripts/coolify-deploy.mjs | 228 + .../scripts/deploy-contract.test.mjs | 80 + .../hivegrid-website/sonar-project.properties | 4 + .../hivegrid-website/tsconfig.json | 34 + .../hivegrid-website/webinar-plattformen.md | 340 + .../hivegrid-website/webinar.md | 998 +++ 05 HiveGrid Map/HiveGrid Map.canvas | 88 +- 05 HiveGrid Map/HiveGrid Map.md | 34 +- AI README.md | 2 +- .../Fertige Tickets/D-FLOW Workflow Engine.md | 100 +- .../Fertige Tickets/D-FORM Form Builder.md | 14 +- .../Fertige Tickets/D-P2 Auth Wireframes.md | 112 +- Todo.md | 4 +- 453 files changed, 36639 insertions(+), 621 deletions(-) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/00 Start hier - David.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/D-FORM David Uebergabe 2026-07-09.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/David Review Checkliste.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/01 S00 Formulare verwalten.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/02 E01 S00 Keine Formulare.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/03 E02 S00 Keine Treffer.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/04 S01 Formularart auswaehlen.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/05 S02 Einfacher Fragen Editor.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/05b S02L Lead Felder zuweisen.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/05c E05 S02 Lead Zuweisung pruefen.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/06 S03 Formular Design.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/07 S04 Oeffentliches Formular.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/08 V01 Public Erfolg oder Redirect.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/09 V02 Public Formular nicht verfuegbar.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/10 V03 Public Captcha oder Submit Fehler.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/11 S05 Antworten Tabelle.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/12 E03 S05 Keine Antworten.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/13 E04 S05 Export Fehler.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/81 S01C Website Formular Editor.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/82 S01D Umfrage Editor.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/83 S01E Internes Formular Editor.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/D01 Sharing Panel URL QR iFrame.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/D02 Post-Submit Actions.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/D03 Conditional Logic Editor.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/D06 Feldkarten Menue.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/D10 Builder Interaktionsfaelle.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/M01 Feld loeschen Confirm.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/M02 Unpublish Confirm.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/M03 Archive Confirm.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Screens/M04 Unsaved Changes Confirm.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Simple Builder Neuausrichtung.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Subframe Bau Log.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/Subframe Bauplan.md (100%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/WF-D-FORM Form Builder.canvas (68%) rename 02 Wireframes/{D-FORM Formulare => D-FORM Form Builder}/WF-D-FORM Form Builder/WF-D-FORM Form Builder.md (99%) rename 02 Wireframes/{P12 Automationen => P12 Flow-Editor}/WF-P12 Flow-Editor/Screens/M03 Start-Auswahl.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Flow-Editor}/WF-P12 Flow-Editor/Screens/M04 Automation aktivieren.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Flow-Editor}/WF-P12 Flow-Editor/Screens/M05 Automation pausieren.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Flow-Editor}/WF-P12 Flow-Editor/Screens/S01 Flow-Editor.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Flow-Editor}/WF-P12 Flow-Editor/Screens/S01b Baustein-Picker.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Flow-Editor}/WF-P12 Flow-Editor/Screens/S01c Canvas-Kontextmenue.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Flow-Editor}/WF-P12 Flow-Editor/WF-P12 Flow-Editor.canvas (74%) rename 02 Wireframes/{P12 Automationen => P12 Flow-Editor}/WF-P12 Flow-Editor/WF-P12 Flow-Editor.md (100%) rename 02 Wireframes/{P12 Automationen => }/P12 Todo.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-A1 Datensatz aendern.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-A1 Notiz anlegen.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-A2 Benachrichtigung senden.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-A2 E-Mail senden.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-A3 Aufgabe anlegen.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-A3 Aufgabe zuweisen.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-I1 HTTP-Anfrage.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-L1 Filter.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-L1 Oder.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-L1 Switch.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-L1 Und.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-L1 Wenn-Dann.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-L2 Schleife.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-L2 Warten.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-L2 Wert setzen.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T1 Kontakt geaendert.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T1 Lead qualifiziert.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T1 Neue Anfrage.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T1 Neuer Kontakt - Mit Beispiel.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T1 Projekt angelegt.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T1 Projekt gewonnen.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T1 Status gewechselt.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T2 Ereignis erstellt.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T2 Frist oder Termin.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T2 Termin gebucht.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T2 Termin storniert.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T2 Zeitplan monatlich.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T2 Zeitplan.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T3 E-Mail eingegangen.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T3 E-Mail unzustellbar.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T3 Formular abgeschickt.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/K-T3 Webhook empfangen.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/M04 Vorlagen-Katalog.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/S01 Automation-Liste.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/S02 Lauf-Liste.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/S03 Lauf-Detail.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/S05 Baustein-Konfig-Panels.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/S05a Baustein-Konfig Vorplanung.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/Screens/S06 Zugangsdaten.md (100%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas (60%) rename 02 Wireframes/{P12 Automationen => P12 Verwaltung}/WF-P12 Verwaltung/WF-P12 Verwaltung.md (100%) rename 02 Wireframes/{P16 Termine => P16 E-Signatur}/WF-P16 E-Signatur/Screens/M01 Zurueckziehen.md (100%) rename 02 Wireframes/{P16 Termine => P16 E-Signatur}/WF-P16 E-Signatur/Screens/S01 Signaturen im Projekt.md (100%) rename 02 Wireframes/{P16 Termine => P16 E-Signatur}/WF-P16 E-Signatur/Screens/S02 Signatur-Wizard.md (100%) rename 02 Wireframes/{P16 Termine => P16 E-Signatur}/WF-P16 E-Signatur/Screens/S03 Signatur-Detail.md (100%) rename 02 Wireframes/{P16 Termine => P16 E-Signatur}/WF-P16 E-Signatur/Screens/S04 Signieren per Link.md (100%) rename 02 Wireframes/{P16 Termine => P16 E-Signatur}/WF-P16 E-Signatur/Screens/V01 Vor Ort unterschreiben.md (100%) create mode 100644 02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/WF-P16 E-Signatur.canvas rename 02 Wireframes/{P16 Termine => P16 E-Signatur}/WF-P16 E-Signatur/WF-P16 E-Signatur.md (100%) rename 02 Wireframes/{P16 Termine => P16 Kalender}/WF-P16 Kalender/Screens/M01 Termin-Dialog.md (100%) rename 02 Wireframes/{P16 Termine => P16 Kalender}/WF-P16 Kalender/Screens/M02 Termin-Detail.md (100%) rename 02 Wireframes/{P16 Termine => P16 Kalender}/WF-P16 Kalender/Screens/S01 Kalender.md (100%) rename 02 Wireframes/{P16 Termine => P16 Kalender}/WF-P16 Kalender/Screens/S02 Kalender-Einstellungen.md (100%) rename 02 Wireframes/{P16 Termine => P16 Kalender}/WF-P16 Kalender/WF-P16 Kalender.canvas (71%) rename 02 Wireframes/{P16 Termine => P16 Kalender}/WF-P16 Kalender/WF-P16 Kalender.md (100%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/Screens/M01 Verschieben.md (100%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/Screens/M02 Stornieren.md (100%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/Screens/S01 Termin waehlen.md (100%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/Screens/S02 Fragen.md (100%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/Screens/S03 Bestaetigung.md (100%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/Screens/S04 Absagen Verschieben.md (100%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/Screens/S05 Buchungen-Liste.md (100%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/Screens/S06 Buchungs-Detail.md (100%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/Screens/S07 Buchungsseiten-Liste.md (100%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/Screens/S08 Buchungsseiten-Editor.md (100%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/Screens/S09 Verfuegbarkeit.md (100%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/Screens/V01 Termin waehlen Handy.md (100%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/WF-P16 Terminbuchung.canvas (52%) rename 02 Wireframes/{P16 Termine => P16 Terminbuchung}/WF-P16 Terminbuchung/WF-P16 Terminbuchung.md (100%) delete mode 100644 02 Wireframes/P16 Termine/WF-P16 E-Signatur/WF-P16 E-Signatur.canvas rename 02 Wireframes/{P2 Auth => P2 2FA Verwalten}/WF-P2 2FA Verwalten/Screens/M01 2FA verwalten.md (100%) rename 02 Wireframes/{P2 Auth => P2 2FA Verwalten}/WF-P2 2FA Verwalten/Screens/M02 Device Token hinzufuegen.md (100%) rename 02 Wireframes/{P2 Auth => P2 2FA Verwalten}/WF-P2 2FA Verwalten/Screens/M03 2FA deaktivieren.md (100%) rename 02 Wireframes/{P2 Auth => P2 2FA Verwalten}/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.canvas (77%) rename 02 Wireframes/{P2 Auth => P2 2FA Verwalten}/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.md (100%) rename 02 Wireframes/{P2 Auth => P2 Admin RBAC}/WF-P2 Admin RBAC/Screens/D01 Rollen-Dropdown in Mitarbeiterliste.md (100%) rename 02 Wireframes/{P2 Auth => P2 Admin RBAC}/WF-P2 Admin RBAC/Screens/D03 Rolle in Nutzung blockiert.md (100%) rename 02 Wireframes/{P2 Auth => P2 Admin RBAC}/WF-P2 Admin RBAC/Screens/M01 Mitarbeiter einladen.md (100%) rename 02 Wireframes/{P2 Auth => P2 Admin RBAC}/WF-P2 Admin RBAC/Screens/M02 Rolle bearbeiten.md (100%) rename 02 Wireframes/{P2 Auth => P2 Admin RBAC}/WF-P2 Admin RBAC/Screens/M03 Mitarbeiter deaktivieren.md (100%) rename 02 Wireframes/{P2 Auth => P2 Admin RBAC}/WF-P2 Admin RBAC/Screens/M04A Rolle anlegen.md (100%) rename 02 Wireframes/{P2 Auth => P2 Admin RBAC}/WF-P2 Admin RBAC/Screens/M04B Rolle duplizieren.md (100%) rename 02 Wireframes/{P2 Auth => P2 Admin RBAC}/WF-P2 Admin RBAC/Screens/S01 Mitarbeiterliste.md (100%) rename 02 Wireframes/{P2 Auth => P2 Admin RBAC}/WF-P2 Admin RBAC/Screens/S02 Rollen und Berechtigungen.md (100%) rename 02 Wireframes/{P2 Auth => P2 Admin RBAC}/WF-P2 Admin RBAC/Screens/V01 Letzter Admin blockiert.md (100%) rename 02 Wireframes/{P2 Auth => P2 Admin RBAC}/WF-P2 Admin RBAC/WF-P2 Admin RBAC.canvas (72%) rename 02 Wireframes/{P2 Auth => P2 Admin RBAC}/WF-P2 Admin RBAC/WF-P2 Admin RBAC.md (100%) rename 02 Wireframes/{P2 Auth => P2 Change Password}/WF-P2 Change Password/Screens/M01 Identitaet bestaetigen.md (100%) rename 02 Wireframes/{P2 Auth => P2 Change Password}/WF-P2 Change Password/Varianten/V01 Zu viele Fehlversuche.md (100%) rename 02 Wireframes/{P2 Auth => P2 Change Password}/WF-P2 Change Password/WF-P2 Change Password.canvas (74%) rename 02 Wireframes/{P2 Auth => P2 Change Password}/WF-P2 Change Password/WF-P2 Change Password.md (99%) rename 02 Wireframes/{P2 Auth => P2 Konto loeschen}/WF-P2 Konto loeschen/Screens/M01 Loeschung anfragen.md (100%) rename 02 Wireframes/{P2 Auth => P2 Konto loeschen}/WF-P2 Konto loeschen/Screens/S01 Settings Workspaces Loeschbereich.md (100%) rename 02 Wireframes/{P2 Auth => P2 Konto loeschen}/WF-P2 Konto loeschen/WF-P2 Konto loeschen.canvas (80%) rename 02 Wireframes/{P2 Auth => P2 Konto loeschen}/WF-P2 Konto loeschen/WF-P2 Konto loeschen.md (99%) rename 02 Wireframes/{P2 Auth => P2 Login und 2FA}/WF-P2 Login und 2FA/Screens/S01 Login.md (100%) rename 02 Wireframes/{P2 Auth => P2 Login und 2FA}/WF-P2 Login und 2FA/Screens/S02 Magic-Link anfordern.md (100%) rename 02 Wireframes/{P2 Auth => P2 Login und 2FA}/WF-P2 Login und 2FA/Screens/S03 Magic-Link gesendet.md (100%) rename 02 Wireframes/{P2 Auth => P2 Login und 2FA}/WF-P2 Login und 2FA/Screens/S04 2FA Code eingeben.md (100%) rename 02 Wireframes/{P2 Auth => P2 Login und 2FA}/WF-P2 Login und 2FA/Varianten/V01 Login falsche Daten.md (100%) rename 02 Wireframes/{P2 Auth => P2 Login und 2FA}/WF-P2 Login und 2FA/Varianten/V02 Login mit mCaptcha.md (100%) rename 02 Wireframes/{P2 Auth => P2 Login und 2FA}/WF-P2 Login und 2FA/Varianten/V03 2FA gesperrt.md (100%) rename 02 Wireframes/{P2 Auth => P2 Login und 2FA}/WF-P2 Login und 2FA/WF-P2 Login und 2FA.canvas (63%) rename 02 Wireframes/{P2 Auth => P2 Login und 2FA}/WF-P2 Login und 2FA/WF-P2 Login und 2FA.md (99%) rename 02 Wireframes/{P2 Auth => P2 Passwort Reset}/WF-P2 Passwort Reset/Screens/M01 Admin kontaktieren.md (100%) rename 02 Wireframes/{P2 Auth => P2 Passwort Reset}/WF-P2 Passwort Reset/Screens/M02 Wiederherstellungscode eingeben.md (100%) rename 02 Wireframes/{P2 Auth => P2 Passwort Reset}/WF-P2 Passwort Reset/Screens/S01 Passwort Reset anfordern.md (100%) rename 02 Wireframes/{P2 Auth => P2 Passwort Reset}/WF-P2 Passwort Reset/Screens/S02 Reset-Link gesendet.md (100%) rename 02 Wireframes/{P2 Auth => P2 Passwort Reset}/WF-P2 Passwort Reset/Screens/S03 2FA bestaetigen.md (100%) rename 02 Wireframes/{P2 Auth => P2 Passwort Reset}/WF-P2 Passwort Reset/Varianten/V01 Reset-Link ungueltig.md (100%) rename 02 Wireframes/{P2 Auth => P2 Passwort Reset}/WF-P2 Passwort Reset/Varianten/V02 2FA nicht verfuegbar.md (100%) rename 02 Wireframes/{P2 Auth => P2 Passwort Reset}/WF-P2 Passwort Reset/WF-P2 Passwort Reset.canvas (64%) rename 02 Wireframes/{P2 Auth => P2 Passwort Reset}/WF-P2 Passwort Reset/WF-P2 Passwort Reset.md (99%) rename 02 Wireframes/{P2 Auth => P2 Profil und Sicherheit}/WF-P2 Profil und Sicherheit/Screens/S01 Profil Settings.md (100%) rename 02 Wireframes/{P2 Auth => P2 Profil und Sicherheit}/WF-P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit.canvas (73%) rename 02 Wireframes/{P2 Auth => P2 Profil und Sicherheit}/WF-P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit.md (100%) rename 02 Wireframes/{P2 Auth => P2 Set Password}/WF-P2 Set Password/Screens/S01 Neues Passwort setzen.md (100%) rename 02 Wireframes/{P2 Auth => P2 Set Password}/WF-P2 Set Password/Screens/S02 2FA freiwillig anbieten.md (100%) rename 02 Wireframes/{P2 Auth => P2 Set Password}/WF-P2 Set Password/Screens/S03 2FA erforderlich.md (100%) rename 02 Wireframes/{P2 Auth => P2 Set Password}/WF-P2 Set Password/Screens/S04 2FA einrichten.md (100%) rename 02 Wireframes/{P2 Auth => P2 Set Password}/WF-P2 Set Password/Screens/S05 Recovery Hinweis.md (100%) rename 02 Wireframes/{P2 Auth => P2 Set Password}/WF-P2 Set Password/Screens/S06 Abschluss.md (100%) rename 02 Wireframes/{P2 Auth => P2 Set Password}/WF-P2 Set Password/Varianten/V03 2FA Setup gesperrt.md (100%) rename 02 Wireframes/{P2 Auth => P2 Set Password}/WF-P2 Set Password/WF-P2 Set Password.canvas (66%) rename 02 Wireframes/{P2 Auth => P2 Set Password}/WF-P2 Set Password/WF-P2 Set Password.md (99%) rename 02 Wireframes/{P2 Auth => P2 Signup}/WF-P2 Signup/Screens/S01 Signup.md (100%) rename 02 Wireframes/{P2 Auth => P2 Signup}/WF-P2 Signup/Screens/S02 Signup erfolgreich Workspace wird vorbereitet.md (100%) rename 02 Wireframes/{P2 Auth => P2 Signup}/WF-P2 Signup/Screens/S03 E-Mail bestaetigen.md (100%) rename 02 Wireframes/{P2 Auth => P2 Signup}/WF-P2 Signup/WF-P2 Signup.canvas (84%) rename 02 Wireframes/{P2 Auth => P2 Signup}/WF-P2 Signup/WF-P2 Signup.md (99%) rename 02 Wireframes/{P2 Auth => P2 Workspace Auswahl}/WF-P2 Workspace Auswahl/Screens/S01 Workspace Auswahl.md (100%) rename 02 Wireframes/{P2 Auth => P2 Workspace Auswahl}/WF-P2 Workspace Auswahl/Screens/S02 Neuer Workspace anlegen.md (100%) rename 02 Wireframes/{P2 Auth => P2 Workspace Auswahl}/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.canvas (84%) rename 02 Wireframes/{P2 Auth => P2 Workspace Auswahl}/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.md (99%) rename 02 Wireframes/{P2 Auth => P2 Workspace loeschen}/WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.canvas (100%) rename 02 Wireframes/{P2 Auth => P2 Workspace loeschen}/WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.md (96%) rename 02 Wireframes/{P3 Querschnitt => P3 Audit Log}/WF-P3 Audit Log/Screens/M01 Detail-Drawer.md (100%) rename 02 Wireframes/{P3 Querschnitt => P3 Audit Log}/WF-P3 Audit Log/Screens/M02 Export anlegen.md (100%) rename 02 Wireframes/{P3 Querschnitt => P3 Audit Log}/WF-P3 Audit Log/Screens/M03 Objekt-Verlauf-Drawer.md (100%) rename 02 Wireframes/{P3 Querschnitt => P3 Audit Log}/WF-P3 Audit Log/Screens/S01 Protokoll-Ansicht.md (100%) rename 02 Wireframes/{P3 Querschnitt => P3 Audit Log}/WF-P3 Audit Log/Screens/S02 Exporte.md (100%) rename 02 Wireframes/{P3 Querschnitt => P3 Audit Log}/WF-P3 Audit Log/WF-P3 Audit Log.canvas (67%) rename 02 Wireframes/{P3 Querschnitt => P3 Audit Log}/WF-P3 Audit Log/WF-P3 Audit Log.md (100%) rename 02 Wireframes/{P3 Querschnitt => P3 Benachrichtigungen}/WF-P3 Benachrichtigungen/Screens/S01 Glocken-Drawer.md (100%) rename 02 Wireframes/{P3 Querschnitt => P3 Benachrichtigungen}/WF-P3 Benachrichtigungen/Screens/S02 Benachrichtigungen Seite.md (100%) rename 02 Wireframes/{P3 Querschnitt => P3 Benachrichtigungen}/WF-P3 Benachrichtigungen/Screens/S03 Benachrichtigungen Einstellungen.md (100%) rename 02 Wireframes/{P3 Querschnitt => P3 Benachrichtigungen}/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.canvas (85%) rename 02 Wireframes/{P3 Querschnitt => P3 Benachrichtigungen}/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.md (100%) rename 02 Wireframes/{P4 Aufgaben und Dateien => P4 Aufgaben}/WF-P4 Aufgaben/Screens/M01 Aufgabe anlegen.md (100%) rename 02 Wireframes/{P4 Aufgaben und Dateien => P4 Aufgaben}/WF-P4 Aufgaben/Screens/S01 Aufgaben-Liste.md (100%) rename 02 Wireframes/{P4 Aufgaben und Dateien => P4 Aufgaben}/WF-P4 Aufgaben/Screens/S02 Aufgaben-Detail.md (100%) rename 02 Wireframes/{P4 Aufgaben und Dateien => P4 Aufgaben}/WF-P4 Aufgaben/Screens/S03 Aufgaben-Drawer.md (100%) rename 02 Wireframes/{P4 Aufgaben und Dateien => P4 Aufgaben}/WF-P4 Aufgaben/Screens/V01 Eingebettete Kompakt-Variante.md (100%) rename 02 Wireframes/{P4 Aufgaben und Dateien => P4 Aufgaben}/WF-P4 Aufgaben/WF-P4 Aufgaben.canvas (81%) rename 02 Wireframes/{P4 Aufgaben und Dateien => P4 Aufgaben}/WF-P4 Aufgaben/WF-P4 Aufgaben.md (100%) rename 02 Wireframes/{P4 Aufgaben und Dateien => P4 Dateien}/WF-P4 Dateien/Screens/M01 Datei freigeben.md (100%) rename 02 Wireframes/{P4 Aufgaben und Dateien => P4 Dateien}/WF-P4 Dateien/Screens/S01 Datei-Uebersicht.md (100%) rename 02 Wireframes/{P4 Aufgaben und Dateien => P4 Dateien}/WF-P4 Dateien/Screens/S02 Upload.md (100%) rename 02 Wireframes/{P4 Aufgaben und Dateien => P4 Dateien}/WF-P4 Dateien/Screens/S03 Datei-Detail.md (100%) rename 02 Wireframes/{P4 Aufgaben und Dateien => P4 Dateien}/WF-P4 Dateien/WF-P4 Dateien.canvas (85%) rename 02 Wireframes/{P4 Aufgaben und Dateien => P4 Dateien}/WF-P4 Dateien/WF-P4 Dateien.md (100%) rename 02 Wireframes/{P6 Kontakte => P6 Kontakte und Organisationen}/WF-P6 Kontakte und Organisationen/Screens/M01 Kontakt anlegen.md (100%) rename 02 Wireframes/{P6 Kontakte => P6 Kontakte und Organisationen}/WF-P6 Kontakte und Organisationen/Screens/M02 Organisation anlegen.md (100%) rename 02 Wireframes/{P6 Kontakte => P6 Kontakte und Organisationen}/WF-P6 Kontakte und Organisationen/Screens/M03 Zusammenfuehren.md (100%) rename 02 Wireframes/{P6 Kontakte => P6 Kontakte und Organisationen}/WF-P6 Kontakte und Organisationen/Screens/S01 Kontakte-Liste.md (100%) rename 02 Wireframes/{P6 Kontakte => P6 Kontakte und Organisationen}/WF-P6 Kontakte und Organisationen/Screens/S02 Organisationen-Liste.md (100%) rename 02 Wireframes/{P6 Kontakte => P6 Kontakte und Organisationen}/WF-P6 Kontakte und Organisationen/Screens/S03 Kontakt-Karteikarte.md (100%) rename 02 Wireframes/{P6 Kontakte => P6 Kontakte und Organisationen}/WF-P6 Kontakte und Organisationen/Screens/S04 Organisations-Karteikarte.md (100%) rename 02 Wireframes/{P6 Kontakte => P6 Kontakte und Organisationen}/WF-P6 Kontakte und Organisationen/Screens/S05 Eigene Felder.md (100%) rename 02 Wireframes/{P6 Kontakte => P6 Kontakte und Organisationen}/WF-P6 Kontakte und Organisationen/Screens/S06 Tags.md (100%) rename 02 Wireframes/{P6 Kontakte => P6 Kontakte und Organisationen}/WF-P6 Kontakte und Organisationen/Screens/S07 Duplikat-Tool.md (100%) rename 02 Wireframes/{P6 Kontakte => P6 Kontakte und Organisationen}/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas (61%) rename 02 Wireframes/{P6 Kontakte => P6 Kontakte und Organisationen}/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Abnahme}/WF-P9 Abnahme/Screens/S01 Abnahme-Liste.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Abnahme}/WF-P9 Abnahme/Screens/S02 Schritt Pruefungen.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Abnahme}/WF-P9 Abnahme/Screens/S03 Schritt Maengel.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Abnahme}/WF-P9 Abnahme/Screens/S04 Schritt Unterschriften.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Abnahme}/WF-P9 Abnahme/WF-P9 Abnahme.canvas (79%) rename 02 Wireframes/{P9 Auftrag => P9 Abnahme}/WF-P9 Abnahme/WF-P9 Abnahme.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Plantafel}/WF-P9 Plantafel/Screens/M01 Konflikt-Dialog.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Plantafel}/WF-P9 Plantafel/Screens/M02 Einsatz-Dialog.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Plantafel}/WF-P9 Plantafel/Screens/S01 Plantafel.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Plantafel}/WF-P9 Plantafel/Screens/S02 Meine Termine.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Plantafel}/WF-P9 Plantafel/WF-P9 Plantafel.canvas (66%) rename 02 Wireframes/{P9 Auftrag => P9 Plantafel}/WF-P9 Plantafel/WF-P9 Plantafel.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Projekt-Akte}/WF-P9 Projekt-Akte/Screens/M01 Rechnung anlegen.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Projekt-Akte}/WF-P9 Projekt-Akte/Screens/S01 Auftrags-Reiter.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Projekt-Akte}/WF-P9 Projekt-Akte/Screens/S02 Mobil-Modus.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Projekt-Akte}/WF-P9 Projekt-Akte/Screens/S03 Abnahme-Formular-Vorlagen.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Projekt-Akte}/WF-P9 Projekt-Akte/Screens/S04 Projekt-Vorlagen.md (100%) rename 02 Wireframes/{P9 Auftrag => P9 Projekt-Akte}/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas (61%) rename 02 Wireframes/{P9 Auftrag => P9 Projekt-Akte}/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.md (100%) create mode 100644 03 Quellen und Referenzen/hivegrid-website/.dockerignore create mode 100644 03 Quellen und Referenzen/hivegrid-website/.gitea/workflows/deploy.yml create mode 100644 03 Quellen und Referenzen/hivegrid-website/.gitea/workflows/promote.yml create mode 100644 03 Quellen und Referenzen/hivegrid-website/.gitea/workflows/sonarqube.yml create mode 100644 03 Quellen und Referenzen/hivegrid-website/.gitignore create mode 100644 03 Quellen und Referenzen/hivegrid-website/.gsd/PROJECT.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/.gsd/milestones/M001/M001-ROADMAP.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/.gsd/milestones/M001/slices/S01/S01-PLAN.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/.gsd/milestones/M001/slices/S02/S02-PLAN.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/.gsd/milestones/M001/slices/S03/S03-PLAN.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/.gsd/milestones/M001/slices/S04/S04-PLAN.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/AGENTS.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/CLAUDE.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/Dockerfile create mode 100644 03 Quellen und Referenzen/hivegrid-website/MCP-SUBPAGE-CONTENT.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/OFFENE-PUNKTE.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/README.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/agb/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/api/demo-chat/reply/route.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/api/demo-request/route.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/apple-icon.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/datenschutz/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/demo/DemoForm.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/demo/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/favicon.ico create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/globals.css create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/healthz/route.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/impressum/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/ki-anbindung/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/kontakt/KontaktForm.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/kontakt/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/kunden/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/layout.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/login/route.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/manifest.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/mission/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/newsletter/abmelden/AbmeldenForm.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/newsletter/abmelden/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/newsletter/abmeldung-bestaetigt/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/newsletter/danke/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/not-found.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/opengraph-image.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/preise/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/produkt/chat/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/produkt/email-marketing/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/produkt/mitarbeitermanagement/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/produkt/projektmanagement/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/produkt/vertriebspipelines/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/produkt/workflow-engine/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/reset-browser-state/route.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/robots.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/sitemap.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/twitter-image.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/ueber-uns/TeamCards.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/ueber-uns/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/ueber-uns/team.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/waitlist/WaitlistForm.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/waitlist/WaitlistModules.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/waitlist/WaitlistNext.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/app/waitlist/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/README.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/REWORK_MAPPING.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/LabShared.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/MUSS_GELOESCHT_WERDEN.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/cockpit/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/content.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/lab.module.css create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/layout.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/prozessfluss/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/systemkarte/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/useLabMotion.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/variants/Cockpit.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/variants/Prozessfluss.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/variants/Systemkarte.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/variants/Werkstatt.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/landingpage-variants/werkstatt/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/playground-route/grid-lab/GridLabClient.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/playground-route/grid-lab/grid-lab.module.css create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/playground-route/grid-lab/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/playground-route/middleware.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/archive/landingpage-experiments-delete-after-finalization/playground-route/page.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/dev/AgentationClient.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/dev/AgentationDev.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/landing/HoneycombSection.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/landing/LandingPageClient.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/layout/Footer.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/layout/Navbar.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/AdvantagesSection.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/ApprovalInbox.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/ChatDemoSection.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/ChatDemoSectionClient.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/DesktopSystemCards.module.css create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/DesktopSystemCards.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/EmailBuilder.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/FAQSection.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/FeaturesGrid.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/HeroConnect.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/HeroSection.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/HowItWorksSection.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/KanbanBoard.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/ProductPageTemplate.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/RequestFlow.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/ScreenshotAccordion.module.css create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/ScreenshotAccordion.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/VertriebBentoGrid.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/WebChatDemo.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/WorkflowEditor.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/sections/WorkflowShowcase.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/ui/CTABanner.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/ui/CanvasHint.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/ui/CtaShowcase.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/ui/DemoButton.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/components/ui/LeadForm.tsx create mode 100644 03 Quellen und Referenzen/hivegrid-website/docs/deployment.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/eslint.config.mjs create mode 100644 03 Quellen und Referenzen/hivegrid-website/infrastructure/Caddyfile create mode 100644 03 Quellen und Referenzen/hivegrid-website/infrastructure/docker-compose.production.yml create mode 100644 03 Quellen und Referenzen/hivegrid-website/lib/chamfer.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/lib/chat-demo/assistant.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/lib/db/demo-requests.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/lib/faqs.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/lib/produkt-daten.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/lib/site.config.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/next.config.ts create mode 100644 03 Quellen und Referenzen/hivegrid-website/package-lock.json create mode 100644 03 Quellen und Referenzen/hivegrid-website/package.json create mode 100644 03 Quellen und Referenzen/hivegrid-website/postcss.config.mjs create mode 100644 03 Quellen und Referenzen/hivegrid-website/posts.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/aircall.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/bauhow.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/claude.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/cta-honeycomb.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/datev.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/file.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/geerkens-logo.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/globe.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/google-calendar.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/google-drive.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/hallopetra.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/hivegrid-logo.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/icons/products/chat-app@4x.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/icons/products/email-marketing@4x.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/icons/products/mitarbeitermanagement@4x.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/icons/products/projektmanagement@4x.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/icons/products/vertriebspipelines@4x.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/icons/products/workflow-engine@4x.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/hero-screenshot.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/hivegrid-icon-yellow.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/illustrations/illustration-1-dutzende-tools@4x.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/illustrations/illustration-2-alles-im-kopf@4x.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/illustrations/illustration-3-kein-wachstum@4x.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/raffael-sheikh.jpg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/screenshot-chat.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/screenshot-formbuilder.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/screenshot-planung.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/screenshot-projektmanagement-pipeline.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/screenshot-projektmanagement.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/screenshot-verwaltung.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/screenshot-workflow.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/step-aktionen.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/step-aktivieren.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/step-trigger-definieren.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/step-workflow-erstellen.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/aki-bg.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/aki-person.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/artur-bg.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/artur-person.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/david-bg.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/david-person.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/dejan-bg.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/dejan-person.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/haris-bg.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/haris-person.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/michelle-bg.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/michelle-person.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/noah-bg.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/noah-person.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/raffael-bg.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team-cards/raffael-person.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team/david-bertram.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/images/team/noah.webp create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/kwp.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/logo-white.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/logo.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/ms-outlook.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/ms-teams.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/next.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/onepage.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/openai.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/pandadoc.png create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/pds.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/sw.js create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/vercel.svg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/videos/hero-poster.jpg create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/videos/hero-test.mp4 create mode 100644 03 Quellen und Referenzen/hivegrid-website/public/window.svg create mode 100755 03 Quellen und Referenzen/hivegrid-website/scripts/cf-disable-video-compression.sh create mode 100644 03 Quellen und Referenzen/hivegrid-website/scripts/coolify-deploy.mjs create mode 100644 03 Quellen und Referenzen/hivegrid-website/scripts/deploy-contract.test.mjs create mode 100644 03 Quellen und Referenzen/hivegrid-website/sonar-project.properties create mode 100644 03 Quellen und Referenzen/hivegrid-website/tsconfig.json create mode 100644 03 Quellen und Referenzen/hivegrid-website/webinar-plattformen.md create mode 100644 03 Quellen und Referenzen/hivegrid-website/webinar.md diff --git a/01 Regeln/Obsidian Struktur.md b/01 Regeln/Obsidian Struktur.md index 59570768..78c10ef2 100644 --- a/01 Regeln/Obsidian Struktur.md +++ b/01 Regeln/Obsidian Struktur.md @@ -90,8 +90,8 @@ Warum: Obsidian-Wiki-Aliase nutzen `|`, und dieses Zeichen kann Markdown-Tabelle Beispiel: ```md -[MD]() -[Canvas]() +[MD](<../02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Screens/S01 Login.md>) +[Canvas](<../02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/WF-P2 Login und 2FA.canvas>) ``` Regel: diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/00 Start hier - David.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/00 Start hier - David.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/00 Start hier - David.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/00 Start hier - David.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/D-FORM David Uebergabe 2026-07-09.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/D-FORM David Uebergabe 2026-07-09.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/D-FORM David Uebergabe 2026-07-09.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/D-FORM David Uebergabe 2026-07-09.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/David Review Checkliste.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/David Review Checkliste.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/David Review Checkliste.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/David Review Checkliste.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/01 S00 Formulare verwalten.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/01 S00 Formulare verwalten.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/01 S00 Formulare verwalten.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/01 S00 Formulare verwalten.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/02 E01 S00 Keine Formulare.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/02 E01 S00 Keine Formulare.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/02 E01 S00 Keine Formulare.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/02 E01 S00 Keine Formulare.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/03 E02 S00 Keine Treffer.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/03 E02 S00 Keine Treffer.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/03 E02 S00 Keine Treffer.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/03 E02 S00 Keine Treffer.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/04 S01 Formularart auswaehlen.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/04 S01 Formularart auswaehlen.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/04 S01 Formularart auswaehlen.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/04 S01 Formularart auswaehlen.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/05 S02 Einfacher Fragen Editor.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/05 S02 Einfacher Fragen Editor.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/05 S02 Einfacher Fragen Editor.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/05 S02 Einfacher Fragen Editor.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/05b S02L Lead Felder zuweisen.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/05b S02L Lead Felder zuweisen.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/05b S02L Lead Felder zuweisen.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/05b S02L Lead Felder zuweisen.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/05c E05 S02 Lead Zuweisung pruefen.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/05c E05 S02 Lead Zuweisung pruefen.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/05c E05 S02 Lead Zuweisung pruefen.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/05c E05 S02 Lead Zuweisung pruefen.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/06 S03 Formular Design.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/06 S03 Formular Design.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/06 S03 Formular Design.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/06 S03 Formular Design.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/07 S04 Oeffentliches Formular.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/07 S04 Oeffentliches Formular.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/07 S04 Oeffentliches Formular.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/07 S04 Oeffentliches Formular.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/08 V01 Public Erfolg oder Redirect.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/08 V01 Public Erfolg oder Redirect.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/08 V01 Public Erfolg oder Redirect.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/08 V01 Public Erfolg oder Redirect.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/09 V02 Public Formular nicht verfuegbar.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/09 V02 Public Formular nicht verfuegbar.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/09 V02 Public Formular nicht verfuegbar.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/09 V02 Public Formular nicht verfuegbar.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/10 V03 Public Captcha oder Submit Fehler.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/10 V03 Public Captcha oder Submit Fehler.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/10 V03 Public Captcha oder Submit Fehler.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/10 V03 Public Captcha oder Submit Fehler.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/11 S05 Antworten Tabelle.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/11 S05 Antworten Tabelle.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/11 S05 Antworten Tabelle.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/11 S05 Antworten Tabelle.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/12 E03 S05 Keine Antworten.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/12 E03 S05 Keine Antworten.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/12 E03 S05 Keine Antworten.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/12 E03 S05 Keine Antworten.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/13 E04 S05 Export Fehler.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/13 E04 S05 Export Fehler.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/13 E04 S05 Export Fehler.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/13 E04 S05 Export Fehler.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/81 S01C Website Formular Editor.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/81 S01C Website Formular Editor.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/81 S01C Website Formular Editor.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/81 S01C Website Formular Editor.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/82 S01D Umfrage Editor.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/82 S01D Umfrage Editor.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/82 S01D Umfrage Editor.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/82 S01D Umfrage Editor.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/83 S01E Internes Formular Editor.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/83 S01E Internes Formular Editor.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/83 S01E Internes Formular Editor.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/83 S01E Internes Formular Editor.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/D01 Sharing Panel URL QR iFrame.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/D01 Sharing Panel URL QR iFrame.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/D01 Sharing Panel URL QR iFrame.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/D01 Sharing Panel URL QR iFrame.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/D02 Post-Submit Actions.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/D02 Post-Submit Actions.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/D02 Post-Submit Actions.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/D02 Post-Submit Actions.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/D03 Conditional Logic Editor.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/D03 Conditional Logic Editor.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/D03 Conditional Logic Editor.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/D03 Conditional Logic Editor.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/D06 Feldkarten Menue.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/D06 Feldkarten Menue.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/D06 Feldkarten Menue.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/D06 Feldkarten Menue.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/D10 Builder Interaktionsfaelle.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/D10 Builder Interaktionsfaelle.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/D10 Builder Interaktionsfaelle.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/D10 Builder Interaktionsfaelle.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/M01 Feld loeschen Confirm.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/M01 Feld loeschen Confirm.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/M01 Feld loeschen Confirm.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/M01 Feld loeschen Confirm.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/M02 Unpublish Confirm.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/M02 Unpublish Confirm.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/M02 Unpublish Confirm.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/M02 Unpublish Confirm.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/M03 Archive Confirm.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/M03 Archive Confirm.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/M03 Archive Confirm.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/M03 Archive Confirm.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/M04 Unsaved Changes Confirm.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/M04 Unsaved Changes Confirm.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/M04 Unsaved Changes Confirm.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/M04 Unsaved Changes Confirm.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Simple Builder Neuausrichtung.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Simple Builder Neuausrichtung.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Simple Builder Neuausrichtung.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Simple Builder Neuausrichtung.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Subframe Bau Log.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Subframe Bau Log.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Subframe Bau Log.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Subframe Bau Log.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Subframe Bauplan.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Subframe Bauplan.md similarity index 100% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Subframe Bauplan.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Subframe Bauplan.md diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/WF-D-FORM Form Builder.canvas b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/WF-D-FORM Form Builder.canvas similarity index 68% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/WF-D-FORM Form Builder.canvas rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/WF-D-FORM Form Builder.canvas index 0ac2eee9..7ec6ec02 100644 --- a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/WF-D-FORM Form Builder.canvas +++ b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/WF-D-FORM Form Builder.canvas @@ -3,24 +3,24 @@ {"id":"group-simple","type":"group","x":-80,"y":160,"width":3900,"height":1060,"label":"D-FORM Hauptflow - Interner Builder"}, {"id":"group-public","type":"group","x":1160,"y":1340,"width":2320,"height":640,"label":"Public Formular und States"}, {"id":"group-notes","type":"group","x":-80,"y":-280,"width":3040,"height":360,"label":"Review-Fokus / Scope"}, - {"id":"package","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/WF-D-FORM Form Builder.md","x":0,"y":-150,"width":360,"height":160}, - {"id":"s03","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/01 S00 Formulare verwalten.md","x":0,"y":380,"width":420,"height":190}, + {"id":"package","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/WF-D-FORM Form Builder.md","x":0,"y":-150,"width":360,"height":160}, + {"id":"s03","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/01 S00 Formulare verwalten.md","x":0,"y":380,"width":420,"height":190}, {"id":"note-subframe-focus","type":"text","text":"# Review-Fokus\n\nAktueller Hauptfluss:\n- 01 S00 Verwaltung\n- 02/03 Empty States\n- 04 S01 Formularart\n- 05 S02 Haupteditor\n- 05b/05c Lead-Zuweisung\n- 06 S03 Design\n- 07-10 Public Form/States\n- 11-13 Antworten/States\n\n81-83 sind nur spaetere Referenz-Beispiele.","x":520,"y":-190,"width":760,"height":240}, {"id":"note-out-of-scope","type":"text","text":"# Nicht in D-FORM\n\n- Vollstaendige Submissions-Verwaltung\n- Submission-Detail\n- Booking\n- Kalender\n- Signatur\n- HR-Screens\n- Personalisierte Links\n- JS-Snippet\n\nS00 ist nur die schlanke Formular-Zentrale. S05 ist nur die Antwortenansicht im Formular.","x":1480,"y":-190,"width":760,"height":240}, - {"id":"s00","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/04 S01 Formularart auswaehlen.md","x":670,"y":385,"width":420,"height":190}, - {"id":"s01a","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/05 S02 Einfacher Fragen Editor.md","x":1240,"y":860,"width":420,"height":190}, - {"id":"s01c","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/81 S01C Website Formular Editor.md","x":2600,"y":200,"width":420,"height":170}, - {"id":"s01d","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/82 S01D Umfrage Editor.md","x":2600,"y":400,"width":420,"height":170}, - {"id":"s01e","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/83 S01E Internes Formular Editor.md","x":2600,"y":600,"width":420,"height":170}, - {"id":"s04","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/06 S03 Formular Design.md","x":2120,"y":765,"width":420,"height":190}, - {"id":"s05","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/11 S05 Antworten Tabelle.md","x":2120,"y":1005,"width":420,"height":190}, + {"id":"s00","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/04 S01 Formularart auswaehlen.md","x":670,"y":385,"width":420,"height":190}, + {"id":"s01a","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/05 S02 Einfacher Fragen Editor.md","x":1240,"y":860,"width":420,"height":190}, + {"id":"s01c","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/81 S01C Website Formular Editor.md","x":2600,"y":200,"width":420,"height":170}, + {"id":"s01d","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/82 S01D Umfrage Editor.md","x":2600,"y":400,"width":420,"height":170}, + {"id":"s01e","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/83 S01E Internes Formular Editor.md","x":2600,"y":600,"width":420,"height":170}, + {"id":"s04","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/06 S03 Formular Design.md","x":2120,"y":765,"width":420,"height":190}, + {"id":"s05","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/11 S05 Antworten Tabelle.md","x":2120,"y":1005,"width":420,"height":190}, {"id":"note-simple-builder","type":"text","text":"# Aktueller Builder-Flow\n\nS00 ist die Formular-Zentrale.\nS01 waehlt die Formularart.\nS02 ist der Haupteditor.\n\nDie Formularart setzt nur Vorlage/Startfragen:\n- Website/Extern\n- Lead\n- Umfrage\n- Intern\n\nTabs im Formular:\n- Fragen\n- Design: S03\n- Antworten: S05\n\nS01C/D/E bleiben Referenz-Beispiele, nicht Review-Pfad.","x":3260,"y":285,"width":500,"height":360}, - {"id":"simple-direction","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Simple Builder Neuausrichtung.md","x":3300,"y":765,"width":420,"height":160}, - {"id":"v01","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/08 V01 Public Erfolg oder Redirect.md","x":1870,"y":1420,"width":420,"height":190}, + {"id":"simple-direction","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Simple Builder Neuausrichtung.md","x":3300,"y":765,"width":420,"height":160}, + {"id":"v01","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/08 V01 Public Erfolg oder Redirect.md","x":1870,"y":1420,"width":420,"height":190}, {"id":"note-public","type":"text","text":"# Public-Regel\n\nKeine App-Shell.\n\nRuhiges Kundenformular:\n- Branding-Kopf\n- Intro\n- Felder\n- mCaptcha\n- Submit\n- Success/Error\n\nMobile zuerst mitdenken.","x":2350,"y":1420,"width":420,"height":250}, - {"id":"s02","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/07 S04 Oeffentliches Formular.md","x":1240,"y":1540,"width":420,"height":190}, - {"id":"v02","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/09 V02 Public Formular nicht verfuegbar.md","x":1870,"y":1660,"width":420,"height":190}, - {"id":"v03","type":"file","file":"02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/Screens/10 V03 Public Captcha oder Submit Fehler.md","x":2350,"y":1700,"width":420,"height":190}, + {"id":"s02","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/07 S04 Oeffentliches Formular.md","x":1240,"y":1540,"width":420,"height":190}, + {"id":"v02","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/09 V02 Public Formular nicht verfuegbar.md","x":1870,"y":1660,"width":420,"height":190}, + {"id":"v03","type":"file","file":"02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/Screens/10 V03 Public Captcha oder Submit Fehler.md","x":2350,"y":1700,"width":420,"height":190}, {"id":"note-public-reuse","type":"text","text":"# Public Renderer\n\nD-FORM baut das Public Form.\n\nAndere Bereiche wie HR oder Booking koennen den Renderer spaeter wiederverwenden, sind aber keine D-FORM-Screens.","x":3000,"y":1550,"width":420,"height":220} ], "edges":[ diff --git a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/WF-D-FORM Form Builder.md b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/WF-D-FORM Form Builder.md similarity index 99% rename from 02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/WF-D-FORM Form Builder.md rename to 02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/WF-D-FORM Form Builder.md index 6ce26b4f..f0f727b3 100644 --- a/02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/WF-D-FORM Form Builder.md +++ b/02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/WF-D-FORM Form Builder.md @@ -6,7 +6,7 @@ package: WF-D-FORM Form Builder typ: Flow status: Review-ready / Subframe Draft gebaut subframe: "https://app.subframe.com/f023064a5ca0/flow/afb1c257-46f0-4b23-aaed-d75f4773f1a9/edit?tab=ai&conversationId=02d948da-f9aa-4ab5-8352-2745789bb9ad" -canvas: "02 Wireframes/D-FORM Formulare/WF-D-FORM Form Builder/WF-D-FORM Form Builder.canvas" +canvas: "02 Wireframes/D-FORM Form Builder/WF-D-FORM Form Builder/WF-D-FORM Form Builder.canvas" --- # WF-D-FORM Form Builder diff --git a/02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/M03 Start-Auswahl.md b/02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/M03 Start-Auswahl.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/M03 Start-Auswahl.md rename to 02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/M03 Start-Auswahl.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/M04 Automation aktivieren.md b/02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/M04 Automation aktivieren.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/M04 Automation aktivieren.md rename to 02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/M04 Automation aktivieren.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/M05 Automation pausieren.md b/02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/M05 Automation pausieren.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/M05 Automation pausieren.md rename to 02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/M05 Automation pausieren.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/S01 Flow-Editor.md b/02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/S01 Flow-Editor.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/S01 Flow-Editor.md rename to 02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/S01 Flow-Editor.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/S01b Baustein-Picker.md b/02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/S01b Baustein-Picker.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/S01b Baustein-Picker.md rename to 02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/S01b Baustein-Picker.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/S01c Canvas-Kontextmenue.md b/02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/S01c Canvas-Kontextmenue.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/S01c Canvas-Kontextmenue.md rename to 02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/S01c Canvas-Kontextmenue.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.canvas b/02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/WF-P12 Flow-Editor.canvas similarity index 74% rename from 02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.canvas rename to 02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/WF-P12 Flow-Editor.canvas index 062fbf95..a543d4d3 100644 --- a/02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.canvas +++ b/02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/WF-P12 Flow-Editor.canvas @@ -2,16 +2,16 @@ "nodes":[ {"id":"1000000000000001","type":"group","x":-80,"y":-120,"width":3600,"height":720,"color":"5","label":"Flow-Editor · Ablauf, Varianten und Toggle-Bestätigungen"}, {"id":"1000000000000002","type":"group","x":1330,"y":960,"width":1590,"height":380,"color":"3","label":"Verknüpfte Verwaltung"}, - {"id":"1000000000000003","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.md","x":-80,"y":-440,"width":460,"height":260}, + {"id":"1000000000000003","type":"file","file":"02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/WF-P12 Flow-Editor.md","x":-80,"y":-440,"width":460,"height":260}, {"id":"1000000000000004","type":"text","text":"# Einstieg\n\n»+ Neue Automation« aus der Automation-Liste öffnet die Start-Auswahl.","x":0,"y":0,"width":420,"height":180}, - {"id":"1000000000000005","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/M03 Start-Auswahl.md","x":840,"y":-5,"width":400,"height":180}, - {"id":"1000000000000007","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/S01b Baustein-Picker.md","x":2350,"y":-50,"width":420,"height":170}, - {"id":"1000000000000009","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S05 Baustein-Konfig-Panels.md","x":2990,"y":-10,"width":500,"height":180,"color":"5"}, - {"id":"1000000000000006","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/S01 Flow-Editor.md","x":1640,"y":-10,"width":420,"height":180}, - {"id":"100000000000000d","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/M05 Automation pausieren.md","x":820,"y":365,"width":400,"height":170}, - {"id":"100000000000000c","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/M04 Automation aktivieren.md","x":-20,"y":370,"width":400,"height":170}, - {"id":"1000000000000008","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/S01c Canvas-Kontextmenue.md","x":2310,"y":370,"width":420,"height":170}, - {"id":"100000000000000a","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S02 Lauf-Liste.md","x":1640,"y":1080,"width":420,"height":180}, + {"id":"1000000000000005","type":"file","file":"02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/M03 Start-Auswahl.md","x":840,"y":-5,"width":400,"height":180}, + {"id":"1000000000000007","type":"file","file":"02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/S01b Baustein-Picker.md","x":2350,"y":-50,"width":420,"height":170}, + {"id":"1000000000000009","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S05 Baustein-Konfig-Panels.md","x":2990,"y":-10,"width":500,"height":180,"color":"5"}, + {"id":"1000000000000006","type":"file","file":"02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/S01 Flow-Editor.md","x":1640,"y":-10,"width":420,"height":180}, + {"id":"100000000000000d","type":"file","file":"02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/M05 Automation pausieren.md","x":820,"y":365,"width":400,"height":170}, + {"id":"100000000000000c","type":"file","file":"02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/M04 Automation aktivieren.md","x":-20,"y":370,"width":400,"height":170}, + {"id":"1000000000000008","type":"file","file":"02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/S01c Canvas-Kontextmenue.md","x":2310,"y":370,"width":420,"height":170}, + {"id":"100000000000000a","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S02 Lauf-Liste.md","x":1640,"y":1080,"width":420,"height":180}, {"id":"100000000000000b","type":"text","text":"# Finaler Scope\n\nKein eigener Screen für gefüllten Editor, Probelauf oder Schleifen-/Ratenwarnung.\n\nM03 ohne Versionssuffix ist final: »Leer starten« oder eine Beispielvorlage. M03 V3 bleibt Referenz. M04/M05 sind Bestätigungsmodale; der Picker enthält 31/31 Bausteine. Beide Flows zusammen: 44 Seiten.","x":2230,"y":1040,"width":540,"height":220} ], "edges":[ diff --git a/02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.md b/02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/WF-P12 Flow-Editor.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/WF-P12 Flow-Editor.md rename to 02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/WF-P12 Flow-Editor.md diff --git a/02 Wireframes/P12 Automationen/P12 Todo.md b/02 Wireframes/P12 Todo.md similarity index 100% rename from 02 Wireframes/P12 Automationen/P12 Todo.md rename to 02 Wireframes/P12 Todo.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A1 Datensatz aendern.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A1 Datensatz aendern.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A1 Datensatz aendern.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A1 Datensatz aendern.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A1 Notiz anlegen.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A1 Notiz anlegen.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A1 Notiz anlegen.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A1 Notiz anlegen.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A2 Benachrichtigung senden.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A2 Benachrichtigung senden.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A2 Benachrichtigung senden.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A2 Benachrichtigung senden.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A2 E-Mail senden.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A2 E-Mail senden.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A2 E-Mail senden.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A2 E-Mail senden.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A3 Aufgabe anlegen.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A3 Aufgabe anlegen.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A3 Aufgabe anlegen.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A3 Aufgabe anlegen.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A3 Aufgabe zuweisen.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A3 Aufgabe zuweisen.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A3 Aufgabe zuweisen.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A3 Aufgabe zuweisen.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-I1 HTTP-Anfrage.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-I1 HTTP-Anfrage.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-I1 HTTP-Anfrage.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-I1 HTTP-Anfrage.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Filter.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Filter.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Filter.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Filter.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Oder.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Oder.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Oder.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Oder.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Switch.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Switch.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Switch.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Switch.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Und.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Und.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Und.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Und.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Wenn-Dann.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Wenn-Dann.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Wenn-Dann.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Wenn-Dann.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L2 Schleife.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L2 Schleife.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L2 Schleife.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L2 Schleife.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L2 Warten.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L2 Warten.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L2 Warten.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L2 Warten.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L2 Wert setzen.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L2 Wert setzen.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L2 Wert setzen.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L2 Wert setzen.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Kontakt geaendert.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Kontakt geaendert.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Kontakt geaendert.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Kontakt geaendert.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Lead qualifiziert.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Lead qualifiziert.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Lead qualifiziert.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Lead qualifiziert.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Neue Anfrage.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Neue Anfrage.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Neue Anfrage.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Neue Anfrage.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Neuer Kontakt - Mit Beispiel.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Neuer Kontakt - Mit Beispiel.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Neuer Kontakt - Mit Beispiel.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Neuer Kontakt - Mit Beispiel.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Projekt angelegt.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Projekt angelegt.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Projekt angelegt.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Projekt angelegt.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Projekt gewonnen.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Projekt gewonnen.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Projekt gewonnen.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Projekt gewonnen.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Status gewechselt.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Status gewechselt.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Status gewechselt.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Status gewechselt.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Ereignis erstellt.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Ereignis erstellt.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Ereignis erstellt.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Ereignis erstellt.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Frist oder Termin.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Frist oder Termin.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Frist oder Termin.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Frist oder Termin.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Termin gebucht.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Termin gebucht.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Termin gebucht.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Termin gebucht.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Termin storniert.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Termin storniert.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Termin storniert.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Termin storniert.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Zeitplan monatlich.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Zeitplan monatlich.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Zeitplan monatlich.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Zeitplan monatlich.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Zeitplan.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Zeitplan.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Zeitplan.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Zeitplan.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T3 E-Mail eingegangen.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T3 E-Mail eingegangen.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T3 E-Mail eingegangen.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T3 E-Mail eingegangen.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T3 E-Mail unzustellbar.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T3 E-Mail unzustellbar.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T3 E-Mail unzustellbar.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T3 E-Mail unzustellbar.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T3 Formular abgeschickt.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T3 Formular abgeschickt.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T3 Formular abgeschickt.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T3 Formular abgeschickt.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T3 Webhook empfangen.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T3 Webhook empfangen.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T3 Webhook empfangen.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T3 Webhook empfangen.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/M04 Vorlagen-Katalog.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/M04 Vorlagen-Katalog.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/M04 Vorlagen-Katalog.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/M04 Vorlagen-Katalog.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S01 Automation-Liste.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S01 Automation-Liste.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S01 Automation-Liste.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S01 Automation-Liste.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S02 Lauf-Liste.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S02 Lauf-Liste.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S02 Lauf-Liste.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S02 Lauf-Liste.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S03 Lauf-Detail.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S03 Lauf-Detail.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S03 Lauf-Detail.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S03 Lauf-Detail.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S05 Baustein-Konfig-Panels.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S05 Baustein-Konfig-Panels.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S05 Baustein-Konfig-Panels.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S05 Baustein-Konfig-Panels.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S05a Baustein-Konfig Vorplanung.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S05a Baustein-Konfig Vorplanung.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S05a Baustein-Konfig Vorplanung.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S05a Baustein-Konfig Vorplanung.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S06 Zugangsdaten.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S06 Zugangsdaten.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S06 Zugangsdaten.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S06 Zugangsdaten.md diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas similarity index 60% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas index a44365f4..de057452 100644 --- a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas +++ b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/WF-P12 Verwaltung.canvas @@ -6,52 +6,52 @@ {"id":"1000000000000004","type":"group","x":2380,"y":1390,"width":1220,"height":360,"label":"Integration · 1 gebaute Subframe-Seite","color":"5"}, {"id":"1000000000000005","type":"group","x":-80,"y":1810,"width":2340,"height":535,"label":"Logik · 8 gebaute Subframe-Seiten","color":"6"}, {"id":"1000000000000006","type":"group","x":2380,"y":1810,"width":1220,"height":535,"label":"Review-Hinweise","color":"3"}, - {"id":"1000000000000007","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.md","x":-80,"y":-450,"width":460,"height":260}, + {"id":"1000000000000007","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/WF-P12 Verwaltung.md","x":-80,"y":-450,"width":460,"height":260}, {"id":"1000000000000008","type":"text","text":"# Einstieg\n\nSidebar → Automationen","x":0,"y":20,"width":420,"height":170}, - {"id":"1000000000000009","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S01 Automation-Liste.md","x":540,"y":20,"width":400,"height":170}, - {"id":"100000000000000a","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/M03 Start-Auswahl.md","x":1060,"y":20,"width":400,"height":170}, - {"id":"100000000000000b","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Flow-Editor/Screens/S01 Flow-Editor.md","x":1580,"y":20,"width":400,"height":170}, - {"id":"100000000000000c","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/M04 Vorlagen-Katalog.md","x":2100,"y":20,"width":400,"height":170}, - {"id":"100000000000000d","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S02 Lauf-Liste.md","x":540,"y":270,"width":400,"height":170}, - {"id":"100000000000000e","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S03 Lauf-Detail.md","x":1060,"y":270,"width":400,"height":170}, - {"id":"100000000000000f","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S05 Baustein-Konfig-Panels.md","x":2620,"y":20,"width":500,"height":170,"color":"5"}, - {"id":"1000000000000010","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S05a Baustein-Konfig Vorplanung.md","x":2620,"y":270,"width":500,"height":170,"color":"5"}, + {"id":"1000000000000009","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S01 Automation-Liste.md","x":540,"y":20,"width":400,"height":170}, + {"id":"100000000000000a","type":"file","file":"02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/M03 Start-Auswahl.md","x":1060,"y":20,"width":400,"height":170}, + {"id":"100000000000000b","type":"file","file":"02 Wireframes/P12 Flow-Editor/WF-P12 Flow-Editor/Screens/S01 Flow-Editor.md","x":1580,"y":20,"width":400,"height":170}, + {"id":"100000000000000c","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/M04 Vorlagen-Katalog.md","x":2100,"y":20,"width":400,"height":170}, + {"id":"100000000000000d","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S02 Lauf-Liste.md","x":540,"y":270,"width":400,"height":170}, + {"id":"100000000000000e","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S03 Lauf-Detail.md","x":1060,"y":270,"width":400,"height":170}, + {"id":"100000000000000f","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S05 Baustein-Konfig-Panels.md","x":2620,"y":20,"width":500,"height":170,"color":"5"}, + {"id":"1000000000000010","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S05a Baustein-Konfig Vorplanung.md","x":2620,"y":270,"width":500,"height":170,"color":"5"}, {"id":"1000000000000011","type":"text","text":"# Zwei Subframe-Flows · final\n\nDer Verwaltungs-Flow enthält 5 finale Seiten: S01 Automation-Liste, S02 Lauf-Liste, S03 Lauf-Detail, M04 Vorlagen-Katalog und S06 Zugangsdaten.\n\nDer Workflow-Engine-Flow enthält 39 Seiten: 6 finale Editor-/Modal-Seiten, M03 V3 als Referenz und 32 Konfigurationsdialoge. Zusammen sind 44/44 aktuelle Seiten synchronisiert.","x":1580,"y":230,"width":920,"height":200}, - {"id":"1000000000000012","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Neuer Kontakt - Mit Beispiel.md","x":0,"y":680,"width":500,"height":170,"color":"4"}, - {"id":"1000000000000013","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Kontakt geaendert.md","x":560,"y":680,"width":500,"height":170,"color":"4"}, - {"id":"1000000000000014","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Neue Anfrage.md","x":1120,"y":680,"width":500,"height":170,"color":"4"}, - {"id":"1000000000000015","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Lead qualifiziert.md","x":1680,"y":680,"width":500,"height":170,"color":"4"}, - {"id":"1000000000000016","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Projekt gewonnen.md","x":0,"y":885,"width":500,"height":170,"color":"4"}, - {"id":"1000000000000017","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Status gewechselt.md","x":560,"y":885,"width":500,"height":170,"color":"4"}, - {"id":"1000000000000018","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T1 Projekt angelegt.md","x":1120,"y":885,"width":500,"height":170,"color":"4"}, - {"id":"1000000000000019","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Frist oder Termin.md","x":1680,"y":885,"width":500,"height":170,"color":"4"}, - {"id":"100000000000001a","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Termin gebucht.md","x":0,"y":1090,"width":500,"height":170,"color":"4"}, - {"id":"100000000000001b","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Termin storniert.md","x":560,"y":1090,"width":500,"height":170,"color":"4"}, - {"id":"100000000000001c","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Ereignis erstellt.md","x":1120,"y":1090,"width":500,"height":170,"color":"4"}, - {"id":"100000000000001d","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Zeitplan.md","x":1680,"y":1090,"width":500,"height":170,"color":"4"}, - {"id":"100000000000001e","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T2 Zeitplan monatlich.md","x":0,"y":1295,"width":500,"height":170,"color":"4"}, - {"id":"100000000000001f","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T3 E-Mail eingegangen.md","x":560,"y":1295,"width":500,"height":170,"color":"4"}, - {"id":"1000000000000020","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T3 E-Mail unzustellbar.md","x":1120,"y":1295,"width":500,"height":170,"color":"4"}, - {"id":"1000000000000021","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T3 Formular abgeschickt.md","x":1680,"y":1295,"width":500,"height":170,"color":"4"}, - {"id":"1000000000000022","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-T3 Webhook empfangen.md","x":0,"y":1500,"width":500,"height":170,"color":"4"}, - {"id":"1000000000000023","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A1 Datensatz aendern.md","x":2460,"y":680,"width":500,"height":170,"color":"1"}, - {"id":"1000000000000024","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A1 Notiz anlegen.md","x":3020,"y":680,"width":500,"height":170,"color":"1"}, - {"id":"1000000000000025","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A2 Benachrichtigung senden.md","x":2460,"y":885,"width":500,"height":170,"color":"1"}, - {"id":"1000000000000026","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A2 E-Mail senden.md","x":3020,"y":885,"width":500,"height":170,"color":"1"}, - {"id":"1000000000000027","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A3 Aufgabe anlegen.md","x":2460,"y":1090,"width":500,"height":170,"color":"1"}, - {"id":"1000000000000028","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-A3 Aufgabe zuweisen.md","x":3020,"y":1090,"width":500,"height":170,"color":"1"}, - {"id":"1000000000000029","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Wenn-Dann.md","x":0,"y":1890,"width":500,"height":170,"color":"6"}, - {"id":"100000000000002a","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Und.md","x":560,"y":1890,"width":500,"height":170,"color":"6"}, - {"id":"100000000000002b","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Oder.md","x":1120,"y":1890,"width":500,"height":170,"color":"6"}, - {"id":"100000000000002c","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Switch.md","x":1680,"y":1890,"width":500,"height":170,"color":"6"}, - {"id":"100000000000002d","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L1 Filter.md","x":0,"y":2095,"width":500,"height":170,"color":"6"}, - {"id":"100000000000002e","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L2 Warten.md","x":560,"y":2095,"width":500,"height":170,"color":"6"}, - {"id":"100000000000002f","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L2 Schleife.md","x":1120,"y":2095,"width":500,"height":170,"color":"6"}, - {"id":"1000000000000030","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-L2 Wert setzen.md","x":1680,"y":2095,"width":500,"height":170,"color":"6"}, - {"id":"1000000000000031","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/K-I1 HTTP-Anfrage.md","x":2460,"y":1470,"width":500,"height":170,"color":"5"}, + {"id":"1000000000000012","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Neuer Kontakt - Mit Beispiel.md","x":0,"y":680,"width":500,"height":170,"color":"4"}, + {"id":"1000000000000013","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Kontakt geaendert.md","x":560,"y":680,"width":500,"height":170,"color":"4"}, + {"id":"1000000000000014","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Neue Anfrage.md","x":1120,"y":680,"width":500,"height":170,"color":"4"}, + {"id":"1000000000000015","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Lead qualifiziert.md","x":1680,"y":680,"width":500,"height":170,"color":"4"}, + {"id":"1000000000000016","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Projekt gewonnen.md","x":0,"y":885,"width":500,"height":170,"color":"4"}, + {"id":"1000000000000017","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Status gewechselt.md","x":560,"y":885,"width":500,"height":170,"color":"4"}, + {"id":"1000000000000018","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T1 Projekt angelegt.md","x":1120,"y":885,"width":500,"height":170,"color":"4"}, + {"id":"1000000000000019","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Frist oder Termin.md","x":1680,"y":885,"width":500,"height":170,"color":"4"}, + {"id":"100000000000001a","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Termin gebucht.md","x":0,"y":1090,"width":500,"height":170,"color":"4"}, + {"id":"100000000000001b","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Termin storniert.md","x":560,"y":1090,"width":500,"height":170,"color":"4"}, + {"id":"100000000000001c","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Ereignis erstellt.md","x":1120,"y":1090,"width":500,"height":170,"color":"4"}, + {"id":"100000000000001d","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Zeitplan.md","x":1680,"y":1090,"width":500,"height":170,"color":"4"}, + {"id":"100000000000001e","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T2 Zeitplan monatlich.md","x":0,"y":1295,"width":500,"height":170,"color":"4"}, + {"id":"100000000000001f","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T3 E-Mail eingegangen.md","x":560,"y":1295,"width":500,"height":170,"color":"4"}, + {"id":"1000000000000020","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T3 E-Mail unzustellbar.md","x":1120,"y":1295,"width":500,"height":170,"color":"4"}, + {"id":"1000000000000021","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T3 Formular abgeschickt.md","x":1680,"y":1295,"width":500,"height":170,"color":"4"}, + {"id":"1000000000000022","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-T3 Webhook empfangen.md","x":0,"y":1500,"width":500,"height":170,"color":"4"}, + {"id":"1000000000000023","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A1 Datensatz aendern.md","x":2460,"y":680,"width":500,"height":170,"color":"1"}, + {"id":"1000000000000024","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A1 Notiz anlegen.md","x":3020,"y":680,"width":500,"height":170,"color":"1"}, + {"id":"1000000000000025","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A2 Benachrichtigung senden.md","x":2460,"y":885,"width":500,"height":170,"color":"1"}, + {"id":"1000000000000026","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A2 E-Mail senden.md","x":3020,"y":885,"width":500,"height":170,"color":"1"}, + {"id":"1000000000000027","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A3 Aufgabe anlegen.md","x":2460,"y":1090,"width":500,"height":170,"color":"1"}, + {"id":"1000000000000028","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-A3 Aufgabe zuweisen.md","x":3020,"y":1090,"width":500,"height":170,"color":"1"}, + {"id":"1000000000000029","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Wenn-Dann.md","x":0,"y":1890,"width":500,"height":170,"color":"6"}, + {"id":"100000000000002a","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Und.md","x":560,"y":1890,"width":500,"height":170,"color":"6"}, + {"id":"100000000000002b","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Oder.md","x":1120,"y":1890,"width":500,"height":170,"color":"6"}, + {"id":"100000000000002c","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Switch.md","x":1680,"y":1890,"width":500,"height":170,"color":"6"}, + {"id":"100000000000002d","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L1 Filter.md","x":0,"y":2095,"width":500,"height":170,"color":"6"}, + {"id":"100000000000002e","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L2 Warten.md","x":560,"y":2095,"width":500,"height":170,"color":"6"}, + {"id":"100000000000002f","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L2 Schleife.md","x":1120,"y":2095,"width":500,"height":170,"color":"6"}, + {"id":"1000000000000030","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-L2 Wert setzen.md","x":1680,"y":2095,"width":500,"height":170,"color":"6"}, + {"id":"1000000000000031","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/K-I1 HTTP-Anfrage.md","x":2460,"y":1470,"width":500,"height":170,"color":"5"}, {"id":"1000000000000032","type":"text","text":"# KWP\n\n»An KWP übergeben« bleibt ein Registry-Eintrag ohne v1-Konfigurationsdialog.","x":3020,"y":1470,"width":500,"height":170}, {"id":"1000000000000033","type":"text","text":"# Development-Handoff\n\nFinal: S01, S02, S03, M04 und S06. Die 32 Dialogseiten gehören vollständig zum Handoff.\n\nNicht blockierend für Development:\n- Live-Namen »Deadline naht« und »Kontakt aendern« weichen vom sichtbaren Produktnamen ab\n- Filter-Breite und Baukasten-Themen bleiben dokumentiert\n- technische Sonder- und Error-Fälle werden in der Umsetzung ergänzt","x":2460,"y":1890,"width":1060,"height":280}, - {"id":"1000000000000034","type":"file","file":"02 Wireframes/P12 Automationen/WF-P12 Verwaltung/Screens/S06 Zugangsdaten.md","x":0,"y":270,"width":400,"height":170,"color":"5"} + {"id":"1000000000000034","type":"file","file":"02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/Screens/S06 Zugangsdaten.md","x":0,"y":270,"width":400,"height":170,"color":"5"} ], "edges":[ { diff --git a/02 Wireframes/P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.md b/02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/WF-P12 Verwaltung.md similarity index 100% rename from 02 Wireframes/P12 Automationen/WF-P12 Verwaltung/WF-P12 Verwaltung.md rename to 02 Wireframes/P12 Verwaltung/WF-P12 Verwaltung/WF-P12 Verwaltung.md diff --git a/02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/M01 Zurueckziehen.md b/02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/M01 Zurueckziehen.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/M01 Zurueckziehen.md rename to 02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/M01 Zurueckziehen.md diff --git a/02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/S01 Signaturen im Projekt.md b/02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/S01 Signaturen im Projekt.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/S01 Signaturen im Projekt.md rename to 02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/S01 Signaturen im Projekt.md diff --git a/02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/S02 Signatur-Wizard.md b/02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/S02 Signatur-Wizard.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/S02 Signatur-Wizard.md rename to 02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/S02 Signatur-Wizard.md diff --git a/02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/S03 Signatur-Detail.md b/02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/S03 Signatur-Detail.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/S03 Signatur-Detail.md rename to 02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/S03 Signatur-Detail.md diff --git a/02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/S04 Signieren per Link.md b/02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/S04 Signieren per Link.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/S04 Signieren per Link.md rename to 02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/S04 Signieren per Link.md diff --git a/02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/V01 Vor Ort unterschreiben.md b/02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/V01 Vor Ort unterschreiben.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/V01 Vor Ort unterschreiben.md rename to 02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/V01 Vor Ort unterschreiben.md diff --git a/02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/WF-P16 E-Signatur.canvas b/02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/WF-P16 E-Signatur.canvas new file mode 100644 index 00000000..7f3dcd0f --- /dev/null +++ b/02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/WF-P16 E-Signatur.canvas @@ -0,0 +1,57 @@ +{ + "nodes":[ + {"id":"md-paket","type":"file","file":"02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/WF-P16 E-Signatur.md","x":-80,"y":-440,"width":460,"height":280}, + {"id":"group-intern","type":"group","x":-80,"y":-100,"width":1740,"height":660,"label":"Projekt-Team (intern)"}, + {"id":"group-public","type":"group","x":1840,"y":-100,"width":1180,"height":660,"label":"Kunde unterschreibt"}, + {"id":"group-actions","type":"group","x":3200,"y":-100,"width":620,"height":380,"label":"Aktionen"}, + {"id":"note-entry","type":"text","text":"# Einstieg\n\nProjekt-Detail → Reiter »Signaturen« oder Aktion »Zur Signatur senden«.\n\nSignatur hängt am Projekt-Kern, nicht an Deal.","x":0,"y":0,"width":360,"height":200}, + {"id":"s01","type":"file","file":"02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/S01 Signaturen im Projekt.md","x":560,"y":0,"width":420,"height":200}, + {"id":"s02","type":"file","file":"02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/S02 Signatur-Wizard.md","x":1120,"y":0,"width":420,"height":200}, + {"id":"s03","type":"file","file":"02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/S03 Signatur-Detail.md","x":560,"y":300,"width":420,"height":200}, + {"id":"note-assets","type":"text","text":"# Artefakte\n\nOriginal-PDF, signiertes PDF und Abschluss-Nachweis landen in den Projekt-Dateien.\n\nDefault: SES-Eigenbau. PandaDoc nur BYOK-Opt-in.","x":1120,"y":300,"width":420,"height":200}, + {"id":"s04","type":"file","file":"02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/S04 Signieren per Link.md","x":1920,"y":0,"width":420,"height":200}, + {"id":"v01","type":"file","file":"02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/V01 Vor Ort unterschreiben.md","x":2480,"y":0,"width":420,"height":200}, + {"id":"note-public","type":"text","text":"# Public-Delta\n\nD-P16 nennt den Wizard, aber nicht den Kunden-Signierframe. S04 ist trotzdem Pflicht, weil hier Vertrauen + OTP + Signatur passieren.","x":1920,"y":300,"width":460,"height":200}, + {"id":"m01","type":"file","file":"02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/Screens/M01 Zurueckziehen.md","x":3280,"y":0,"width":420,"height":200} + ], + "edges":[ + { + "id":"e-entry", + "fromNode":"note-entry", + "fromSide":"right", + "toNode":"s01", + "toSide":"left", + "toEnd":"arrow", + "styleAttributes":{"path":"dotted"} + }, + {"id":"e-new","fromNode":"s01","fromSide":"right","toNode":"s02","toSide":"left","toEnd":"arrow","label":"Zur Signatur senden"}, + {"id":"e-open","fromNode":"s01","fromSide":"bottom","toNode":"s03","toSide":"left","toEnd":"arrow","label":"öffnen"}, + {"id":"e-send","fromNode":"s02","fromSide":"right","toNode":"s04","toSide":"left","toEnd":"arrow","label":"Fern-Link + OTP"}, + {"id":"e-local","fromNode":"s02","fromSide":"right","toNode":"v01","toSide":"left","toEnd":"arrow","label":"Vor Ort"}, + {"id":"e-status","fromNode":"s04","fromSide":"bottom","toNode":"s03","toSide":"right","toEnd":"arrow","label":"Status"}, + {"id":"e-local-status","fromNode":"v01","fromSide":"bottom","toNode":"s03","toSide":"right","toEnd":"arrow","label":"Status"}, + { + "id":"e-assets", + "fromNode":"note-assets", + "fromSide":"left", + "toNode":"s03", + "toSide":"right", + "toEnd":"arrow", + "styleAttributes":{"path":"dotted"} + }, + { + "id":"e-public-note", + "fromNode":"note-public", + "fromSide":"top", + "toNode":"s04", + "toSide":"bottom", + "toEnd":"arrow", + "styleAttributes":{"path":"dotted"} + }, + {"id":"e-revoke","fromNode":"s03","fromSide":"right","toNode":"m01","toSide":"left","toEnd":"arrow","label":"zurückziehen"} + ], + "metadata":{ + "version":"1.0-1.0", + "frontmatter":{} + } +} \ No newline at end of file diff --git a/02 Wireframes/P16 Termine/WF-P16 E-Signatur/WF-P16 E-Signatur.md b/02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/WF-P16 E-Signatur.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 E-Signatur/WF-P16 E-Signatur.md rename to 02 Wireframes/P16 E-Signatur/WF-P16 E-Signatur/WF-P16 E-Signatur.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Kalender/Screens/M01 Termin-Dialog.md b/02 Wireframes/P16 Kalender/WF-P16 Kalender/Screens/M01 Termin-Dialog.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Kalender/Screens/M01 Termin-Dialog.md rename to 02 Wireframes/P16 Kalender/WF-P16 Kalender/Screens/M01 Termin-Dialog.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Kalender/Screens/M02 Termin-Detail.md b/02 Wireframes/P16 Kalender/WF-P16 Kalender/Screens/M02 Termin-Detail.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Kalender/Screens/M02 Termin-Detail.md rename to 02 Wireframes/P16 Kalender/WF-P16 Kalender/Screens/M02 Termin-Detail.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Kalender/Screens/S01 Kalender.md b/02 Wireframes/P16 Kalender/WF-P16 Kalender/Screens/S01 Kalender.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Kalender/Screens/S01 Kalender.md rename to 02 Wireframes/P16 Kalender/WF-P16 Kalender/Screens/S01 Kalender.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Kalender/Screens/S02 Kalender-Einstellungen.md b/02 Wireframes/P16 Kalender/WF-P16 Kalender/Screens/S02 Kalender-Einstellungen.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Kalender/Screens/S02 Kalender-Einstellungen.md rename to 02 Wireframes/P16 Kalender/WF-P16 Kalender/Screens/S02 Kalender-Einstellungen.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Kalender/WF-P16 Kalender.canvas b/02 Wireframes/P16 Kalender/WF-P16 Kalender/WF-P16 Kalender.canvas similarity index 71% rename from 02 Wireframes/P16 Termine/WF-P16 Kalender/WF-P16 Kalender.canvas rename to 02 Wireframes/P16 Kalender/WF-P16 Kalender/WF-P16 Kalender.canvas index 06ba0863..6de34c32 100644 --- a/02 Wireframes/P16 Termine/WF-P16 Kalender/WF-P16 Kalender.canvas +++ b/02 Wireframes/P16 Kalender/WF-P16 Kalender/WF-P16 Kalender.canvas @@ -1,14 +1,14 @@ { "nodes":[ - {"id":"md-paket","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Kalender/WF-P16 Kalender.md","x":-80,"y":-440,"width":460,"height":280}, + {"id":"md-paket","type":"file","file":"02 Wireframes/P16 Kalender/WF-P16 Kalender/WF-P16 Kalender.md","x":-80,"y":-440,"width":460,"height":280}, {"id":"group-kalender","type":"group","x":-80,"y":-100,"width":1140,"height":380,"label":"Kalender (Desktop, Bespoke)"}, {"id":"group-dialoge","type":"group","x":-80,"y":460,"width":1140,"height":380,"label":"Termin-Dialoge"}, {"id":"group-sync","type":"group","x":1300,"y":-100,"width":1120,"height":380,"label":"Einstellungen & Sync (pro Nutzer)"}, {"id":"note-entry","type":"text","text":"# Einstieg\n\nSidebar → Kalender.\n\nQuellen: Google · Buchung · Plantafel · Projekt · eigene Termine. Kollegen als Overlay einblendbar (fremde private Google-Termine nur »belegt«).","x":0,"y":0,"width":360,"height":200}, - {"id":"s01","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Kalender/Screens/S01 Kalender.md","x":560,"y":0,"width":420,"height":200}, - {"id":"m01","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Kalender/Screens/M01 Termin-Dialog.md","x":0,"y":560,"width":420,"height":200}, - {"id":"m02","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Kalender/Screens/M02 Termin-Detail.md","x":580,"y":560,"width":420,"height":200}, - {"id":"s02","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Kalender/Screens/S02 Kalender-Einstellungen.md","x":1340,"y":0,"width":420,"height":200}, + {"id":"s01","type":"file","file":"02 Wireframes/P16 Kalender/WF-P16 Kalender/Screens/S01 Kalender.md","x":560,"y":0,"width":420,"height":200}, + {"id":"m01","type":"file","file":"02 Wireframes/P16 Kalender/WF-P16 Kalender/Screens/M01 Termin-Dialog.md","x":0,"y":560,"width":420,"height":200}, + {"id":"m02","type":"file","file":"02 Wireframes/P16 Kalender/WF-P16 Kalender/Screens/M02 Termin-Detail.md","x":580,"y":560,"width":420,"height":200}, + {"id":"s02","type":"file","file":"02 Wireframes/P16 Kalender/WF-P16 Kalender/Screens/S02 Kalender-Einstellungen.md","x":1340,"y":0,"width":420,"height":200}, {"id":"note-sync","type":"text","text":"# Wiederverwendet aus WF-P5\n\nOAuth-Assistent (M01) + Trennen-Modal (M03, + »auch extern entfernen?«).\n\nOutlook als Teaser »bald verfügbar« (v2). Konflikt-Verlauf als Sektion hier.","x":1900,"y":0,"width":460,"height":200} ], "edges":[ diff --git a/02 Wireframes/P16 Termine/WF-P16 Kalender/WF-P16 Kalender.md b/02 Wireframes/P16 Kalender/WF-P16 Kalender/WF-P16 Kalender.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Kalender/WF-P16 Kalender.md rename to 02 Wireframes/P16 Kalender/WF-P16 Kalender/WF-P16 Kalender.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/M01 Verschieben.md b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/M01 Verschieben.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/M01 Verschieben.md rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/M01 Verschieben.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/M02 Stornieren.md b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/M02 Stornieren.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/M02 Stornieren.md rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/M02 Stornieren.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S01 Termin waehlen.md b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S01 Termin waehlen.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S01 Termin waehlen.md rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S01 Termin waehlen.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S02 Fragen.md b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S02 Fragen.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S02 Fragen.md rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S02 Fragen.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S03 Bestaetigung.md b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S03 Bestaetigung.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S03 Bestaetigung.md rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S03 Bestaetigung.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S04 Absagen Verschieben.md b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S04 Absagen Verschieben.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S04 Absagen Verschieben.md rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S04 Absagen Verschieben.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S05 Buchungen-Liste.md b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S05 Buchungen-Liste.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S05 Buchungen-Liste.md rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S05 Buchungen-Liste.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S06 Buchungs-Detail.md b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S06 Buchungs-Detail.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S06 Buchungs-Detail.md rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S06 Buchungs-Detail.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S07 Buchungsseiten-Liste.md b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S07 Buchungsseiten-Liste.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S07 Buchungsseiten-Liste.md rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S07 Buchungsseiten-Liste.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S08 Buchungsseiten-Editor.md b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S08 Buchungsseiten-Editor.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S08 Buchungsseiten-Editor.md rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S08 Buchungsseiten-Editor.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S09 Verfuegbarkeit.md b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S09 Verfuegbarkeit.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S09 Verfuegbarkeit.md rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S09 Verfuegbarkeit.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/V01 Termin waehlen Handy.md b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/V01 Termin waehlen Handy.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/V01 Termin waehlen Handy.md rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/V01 Termin waehlen Handy.md diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/WF-P16 Terminbuchung.canvas b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/WF-P16 Terminbuchung.canvas similarity index 52% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/WF-P16 Terminbuchung.canvas rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/WF-P16 Terminbuchung.canvas index 6b44b652..330ca6c9 100644 --- a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/WF-P16 Terminbuchung.canvas +++ b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/WF-P16 Terminbuchung.canvas @@ -1,23 +1,23 @@ { "nodes":[ - {"id":"md-paket","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Terminbuchung/WF-P16 Terminbuchung.md","x":-80,"y":-440,"width":460,"height":280}, + {"id":"md-paket","type":"file","file":"02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/WF-P16 Terminbuchung.md","x":-80,"y":-440,"width":460,"height":280}, {"id":"group-public","type":"group","x":-80,"y":-100,"width":2260,"height":660,"label":"Kunde 🌐 (Calendly-Stil, höchster Polish)"}, {"id":"group-intern","type":"group","x":2360,"y":-100,"width":1700,"height":940,"label":"Büro (intern)"}, {"id":"group-modals","type":"group","x":4160,"y":-100,"width":1180,"height":380,"label":"Aktionen (Modals)"}, {"id":"note-entry","type":"text","text":"# Einstieg Kunde\n\nBuchungslink / QR / iFrame-Embed.\n\nJede Buchung → Anfrage im Lead-Eingang ODER Aktivität am bekannten Kontakt (E-Mail-Match) + Termin im Mitarbeiter-Kalender.","x":0,"y":0,"width":360,"height":200}, - {"id":"s01","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S01 Termin waehlen.md","x":560,"y":0,"width":420,"height":200}, - {"id":"s02","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S02 Fragen.md","x":1120,"y":0,"width":420,"height":200}, - {"id":"s03","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S03 Bestaetigung.md","x":1680,"y":0,"width":420,"height":200}, - {"id":"v01","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/V01 Termin waehlen Handy.md","x":560,"y":280,"width":420,"height":200}, - {"id":"s04","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S04 Absagen Verschieben.md","x":1680,"y":280,"width":420,"height":200}, - {"id":"s05","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S05 Buchungen-Liste.md","x":2440,"y":0,"width":420,"height":200}, - {"id":"s06","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S06 Buchungs-Detail.md","x":3000,"y":0,"width":420,"height":200}, - {"id":"s07","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S07 Buchungsseiten-Liste.md","x":2440,"y":280,"width":420,"height":200}, - {"id":"s08","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S08 Buchungsseiten-Editor.md","x":3000,"y":280,"width":420,"height":200}, - {"id":"s09","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/S09 Verfuegbarkeit.md","x":2440,"y":560,"width":420,"height":200}, + {"id":"s01","type":"file","file":"02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S01 Termin waehlen.md","x":560,"y":0,"width":420,"height":200}, + {"id":"s02","type":"file","file":"02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S02 Fragen.md","x":1120,"y":0,"width":420,"height":200}, + {"id":"s03","type":"file","file":"02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S03 Bestaetigung.md","x":1680,"y":0,"width":420,"height":200}, + {"id":"v01","type":"file","file":"02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/V01 Termin waehlen Handy.md","x":560,"y":280,"width":420,"height":200}, + {"id":"s04","type":"file","file":"02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S04 Absagen Verschieben.md","x":1680,"y":280,"width":420,"height":200}, + {"id":"s05","type":"file","file":"02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S05 Buchungen-Liste.md","x":2440,"y":0,"width":420,"height":200}, + {"id":"s06","type":"file","file":"02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S06 Buchungs-Detail.md","x":3000,"y":0,"width":420,"height":200}, + {"id":"s07","type":"file","file":"02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S07 Buchungsseiten-Liste.md","x":2440,"y":280,"width":420,"height":200}, + {"id":"s08","type":"file","file":"02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S08 Buchungsseiten-Editor.md","x":3000,"y":280,"width":420,"height":200}, + {"id":"s09","type":"file","file":"02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/S09 Verfuegbarkeit.md","x":2440,"y":560,"width":420,"height":200}, {"id":"note-intern","type":"text","text":"# Slot-Berechnung\n\nBuchbar = Verfügbarkeit (S09) − bestehende Termine (inkl. Google-Kalender aus WF-P16 Kalender) − Puffer/Vorlauf.\n\nVergabe v1: erster freier Mitarbeiter.","x":3000,"y":560,"width":460,"height":200}, - {"id":"m01","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/M01 Verschieben.md","x":4240,"y":0,"width":420,"height":200}, - {"id":"m02","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 Terminbuchung/Screens/M02 Stornieren.md","x":4820,"y":0,"width":420,"height":200} + {"id":"m01","type":"file","file":"02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/M01 Verschieben.md","x":4240,"y":0,"width":420,"height":200}, + {"id":"m02","type":"file","file":"02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/Screens/M02 Stornieren.md","x":4820,"y":0,"width":420,"height":200} ], "edges":[ {"id":"e-entry","fromNode":"note-entry","fromSide":"right","toNode":"s01","toSide":"left","toEnd":"arrow","styleAttributes":{"path":"dotted"}}, diff --git a/02 Wireframes/P16 Termine/WF-P16 Terminbuchung/WF-P16 Terminbuchung.md b/02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/WF-P16 Terminbuchung.md similarity index 100% rename from 02 Wireframes/P16 Termine/WF-P16 Terminbuchung/WF-P16 Terminbuchung.md rename to 02 Wireframes/P16 Terminbuchung/WF-P16 Terminbuchung/WF-P16 Terminbuchung.md diff --git a/02 Wireframes/P16 Termine/WF-P16 E-Signatur/WF-P16 E-Signatur.canvas b/02 Wireframes/P16 Termine/WF-P16 E-Signatur/WF-P16 E-Signatur.canvas deleted file mode 100644 index a9123cb7..00000000 --- a/02 Wireframes/P16 Termine/WF-P16 E-Signatur/WF-P16 E-Signatur.canvas +++ /dev/null @@ -1,29 +0,0 @@ -{ - "nodes": [ - {"id":"md-paket","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 E-Signatur/WF-P16 E-Signatur.md","x":-80,"y":-440,"width":460,"height":280}, - {"id":"group-intern","type":"group","x":-80,"y":-100,"width":1740,"height":660,"label":"Projekt-Team (intern)"}, - {"id":"group-public","type":"group","x":1840,"y":-100,"width":1180,"height":660,"label":"Kunde unterschreibt"}, - {"id":"group-actions","type":"group","x":3200,"y":-100,"width":620,"height":380,"label":"Aktionen"}, - {"id":"note-entry","type":"text","text":"# Einstieg\n\nProjekt-Detail → Reiter »Signaturen« oder Aktion »Zur Signatur senden«.\n\nSignatur hängt am Projekt-Kern, nicht an Deal.","x":0,"y":0,"width":360,"height":200}, - {"id":"s01","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/S01 Signaturen im Projekt.md","x":560,"y":0,"width":420,"height":200}, - {"id":"s02","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/S02 Signatur-Wizard.md","x":1120,"y":0,"width":420,"height":200}, - {"id":"s03","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/S03 Signatur-Detail.md","x":560,"y":300,"width":420,"height":200}, - {"id":"note-assets","type":"text","text":"# Artefakte\n\nOriginal-PDF, signiertes PDF und Abschluss-Nachweis landen in den Projekt-Dateien.\n\nDefault: SES-Eigenbau. PandaDoc nur BYOK-Opt-in.","x":1120,"y":300,"width":420,"height":200}, - {"id":"s04","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/S04 Signieren per Link.md","x":1920,"y":0,"width":420,"height":200}, - {"id":"v01","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/V01 Vor Ort unterschreiben.md","x":2480,"y":0,"width":420,"height":200}, - {"id":"note-public","type":"text","text":"# Public-Delta\n\nD-P16 nennt den Wizard, aber nicht den Kunden-Signierframe. S04 ist trotzdem Pflicht, weil hier Vertrauen + OTP + Signatur passieren.","x":1920,"y":300,"width":460,"height":200}, - {"id":"m01","type":"file","file":"02 Wireframes/P16 Termine/WF-P16 E-Signatur/Screens/M01 Zurueckziehen.md","x":3280,"y":0,"width":420,"height":200} - ], - "edges": [ - {"id":"e-entry","fromNode":"note-entry","fromSide":"right","toNode":"s01","toSide":"left","toEnd":"arrow","styleAttributes":{"path":"dotted"}}, - {"id":"e-new","fromNode":"s01","fromSide":"right","toNode":"s02","toSide":"left","toEnd":"arrow","label":"Zur Signatur senden"}, - {"id":"e-open","fromNode":"s01","fromSide":"bottom","toNode":"s03","toSide":"left","toEnd":"arrow","label":"öffnen"}, - {"id":"e-send","fromNode":"s02","fromSide":"right","toNode":"s04","toSide":"left","toEnd":"arrow","label":"Fern-Link + OTP"}, - {"id":"e-local","fromNode":"s02","fromSide":"right","toNode":"v01","toSide":"left","toEnd":"arrow","label":"Vor Ort"}, - {"id":"e-status","fromNode":"s04","fromSide":"bottom","toNode":"s03","toSide":"right","toEnd":"arrow","label":"Status"}, - {"id":"e-local-status","fromNode":"v01","fromSide":"bottom","toNode":"s03","toSide":"right","toEnd":"arrow","label":"Status"}, - {"id":"e-assets","fromNode":"note-assets","fromSide":"left","toNode":"s03","toSide":"right","toEnd":"arrow","styleAttributes":{"path":"dotted"}}, - {"id":"e-public-note","fromNode":"note-public","fromSide":"top","toNode":"s04","toSide":"bottom","toEnd":"arrow","styleAttributes":{"path":"dotted"}}, - {"id":"e-revoke","fromNode":"s03","fromSide":"right","toNode":"m01","toSide":"left","toEnd":"arrow","label":"zurückziehen"} - ] -} diff --git a/02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/Screens/M01 2FA verwalten.md b/02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/Screens/M01 2FA verwalten.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/Screens/M01 2FA verwalten.md rename to 02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/Screens/M01 2FA verwalten.md diff --git a/02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/Screens/M02 Device Token hinzufuegen.md b/02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/Screens/M02 Device Token hinzufuegen.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/Screens/M02 Device Token hinzufuegen.md rename to 02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/Screens/M02 Device Token hinzufuegen.md diff --git a/02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/Screens/M03 2FA deaktivieren.md b/02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/Screens/M03 2FA deaktivieren.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/Screens/M03 2FA deaktivieren.md rename to 02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/Screens/M03 2FA deaktivieren.md diff --git a/02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.canvas b/02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.canvas similarity index 77% rename from 02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.canvas rename to 02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.canvas index ebb402f3..a524f508 100644 --- a/02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.canvas +++ b/02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.canvas @@ -2,9 +2,9 @@ "nodes":[ {"id":"group-main","type":"group","x":-80,"y":-100,"width":1900,"height":420,"label":"Hauptflow"}, {"id":"group-notes","type":"group","x":-80,"y":560,"width":1700,"height":360,"label":"Dokumentierte Zustaende"}, - {"id":"m01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/Screens/M01 2FA verwalten.md","x":0,"y":0,"width":420,"height":200}, - {"id":"m02","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/Screens/M02 Device Token hinzufuegen.md","x":640,"y":0,"width":420,"height":200}, - {"id":"m03","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/Screens/M03 2FA deaktivieren.md","x":1280,"y":0,"width":420,"height":200}, + {"id":"m01","type":"file","file":"02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/Screens/M01 2FA verwalten.md","x":0,"y":0,"width":420,"height":200}, + {"id":"m02","type":"file","file":"02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/Screens/M02 Device Token hinzufuegen.md","x":640,"y":0,"width":420,"height":200}, + {"id":"m03","type":"file","file":"02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/Screens/M03 2FA deaktivieren.md","x":1280,"y":0,"width":420,"height":200}, {"id":"note-inline","type":"text","text":"# Inline-Zustaende\n\n2FA-Code falsch/abgelaufen bleibt Inline in M02/M03.\n\nKein eigener `2FA bestaetigen`-Flow.","x":0,"y":680,"width":420,"height":200}, {"id":"note-remove","type":"text","text":"# Device entfernen\n\nRow-Action + Confirm in M01.\n\nLetztes Device nicht still entfernen: blockieren oder zu M03 leiten.","x":540,"y":680,"width":420,"height":220}, {"id":"note-notify","type":"text","text":"# MFA-Aenderung\n\nNach Setup, Remove oder Disable Security-Benachrichtigung dokumentieren: E-Mail und/oder Toast.\n\nKein eigener Screen.","x":1080,"y":680,"width":420,"height":220} diff --git a/02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.md b/02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.md rename to 02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/D01 Rollen-Dropdown in Mitarbeiterliste.md b/02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/D01 Rollen-Dropdown in Mitarbeiterliste.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/D01 Rollen-Dropdown in Mitarbeiterliste.md rename to 02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/D01 Rollen-Dropdown in Mitarbeiterliste.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/D03 Rolle in Nutzung blockiert.md b/02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/D03 Rolle in Nutzung blockiert.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/D03 Rolle in Nutzung blockiert.md rename to 02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/D03 Rolle in Nutzung blockiert.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M01 Mitarbeiter einladen.md b/02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M01 Mitarbeiter einladen.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M01 Mitarbeiter einladen.md rename to 02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M01 Mitarbeiter einladen.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M02 Rolle bearbeiten.md b/02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M02 Rolle bearbeiten.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M02 Rolle bearbeiten.md rename to 02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M02 Rolle bearbeiten.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M03 Mitarbeiter deaktivieren.md b/02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M03 Mitarbeiter deaktivieren.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M03 Mitarbeiter deaktivieren.md rename to 02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M03 Mitarbeiter deaktivieren.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M04A Rolle anlegen.md b/02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M04A Rolle anlegen.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M04A Rolle anlegen.md rename to 02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M04A Rolle anlegen.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M04B Rolle duplizieren.md b/02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M04B Rolle duplizieren.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M04B Rolle duplizieren.md rename to 02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M04B Rolle duplizieren.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/S01 Mitarbeiterliste.md b/02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/S01 Mitarbeiterliste.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/S01 Mitarbeiterliste.md rename to 02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/S01 Mitarbeiterliste.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/S02 Rollen und Berechtigungen.md b/02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/S02 Rollen und Berechtigungen.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/S02 Rollen und Berechtigungen.md rename to 02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/S02 Rollen und Berechtigungen.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/V01 Letzter Admin blockiert.md b/02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/V01 Letzter Admin blockiert.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/V01 Letzter Admin blockiert.md rename to 02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/V01 Letzter Admin blockiert.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Admin RBAC/WF-P2 Admin RBAC.canvas b/02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/WF-P2 Admin RBAC.canvas similarity index 72% rename from 02 Wireframes/P2 Auth/WF-P2 Admin RBAC/WF-P2 Admin RBAC.canvas rename to 02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/WF-P2 Admin RBAC.canvas index 8b007bdb..0b3d41e4 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Admin RBAC/WF-P2 Admin RBAC.canvas +++ b/02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/WF-P2 Admin RBAC.canvas @@ -2,15 +2,15 @@ "nodes":[ {"id":"group-main","type":"group","x":-120,"y":-680,"width":4280,"height":1440,"label":"Admin RBAC Hauptflow"}, {"id":"group-notes","type":"group","x":-120,"y":900,"width":4280,"height":430,"label":"Dokumentierte Zustaende und Backlog"}, - {"id":"s02","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/S02 Rollen und Berechtigungen.md","x":1560,"y":440,"width":440,"height":230}, - {"id":"s01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/S01 Mitarbeiterliste.md","x":0,"y":45,"width":440,"height":230}, - {"id":"m04a","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M04A Rolle anlegen.md","x":2120,"y":-110,"width":440,"height":230}, - {"id":"m04b","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M04B Rolle duplizieren.md","x":2980,"y":-110,"width":440,"height":230}, - {"id":"d03","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/D03 Rolle in Nutzung blockiert.md","x":3600,"y":440,"width":440,"height":230}, - {"id":"m02","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M02 Rolle bearbeiten.md","x":2680,"y":440,"width":440,"height":230}, - {"id":"v01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/V01 Letzter Admin blockiert.md","x":2120,"y":-440,"width":440,"height":230}, - {"id":"m01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M01 Mitarbeiter einladen.md","x":1000,"y":-360,"width":440,"height":230}, - {"id":"m03","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M03 Mitarbeiter deaktivieren.md","x":1000,"y":5,"width":440,"height":230}, + {"id":"s02","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/S02 Rollen und Berechtigungen.md","x":1560,"y":440,"width":440,"height":230}, + {"id":"s01","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/S01 Mitarbeiterliste.md","x":0,"y":45,"width":440,"height":230}, + {"id":"m04a","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M04A Rolle anlegen.md","x":2120,"y":-110,"width":440,"height":230}, + {"id":"m04b","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M04B Rolle duplizieren.md","x":2980,"y":-110,"width":440,"height":230}, + {"id":"d03","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/D03 Rolle in Nutzung blockiert.md","x":3600,"y":440,"width":440,"height":230}, + {"id":"m02","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M02 Rolle bearbeiten.md","x":2680,"y":440,"width":440,"height":230}, + {"id":"v01","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/V01 Letzter Admin blockiert.md","x":2120,"y":-440,"width":440,"height":230}, + {"id":"m01","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M01 Mitarbeiter einladen.md","x":1000,"y":-360,"width":440,"height":230}, + {"id":"m03","type":"file","file":"02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/Screens/M03 Mitarbeiter deaktivieren.md","x":1000,"y":5,"width":440,"height":230}, {"id":"note-seed","type":"text","text":"# Rollenmodell\n\nAdmin ist die einzige Start-/Systemrolle.\n\nWeitere Rollen werden vom Admin selbst angelegt.\n\nRollen-Vorlagen sind Work in Progress und werden nicht als feste Rollen in der Liste gezeigt.","x":1520,"y":1020,"width":520,"height":240}, {"id":"note-navigation","type":"text","text":"# Navigation\n\nS01 ist der Einstieg unter `Settings -> Mitarbeiter`.\n\nDer Rollen-Tab S02 ist direkt ueber die Settings-Tabs erreichbar und zusaetzlich ueber den Dropdown-Eintrag `Rollen und Berechtigungen bearbeiten`.","x":-40,"y":1020,"width":520,"height":240}, {"id":"note-d01","type":"text","text":"# D01 Rollen-Dropdown\n\nKein eigener Screen.\n\nDas Dropdown ist direkt in S01 enthalten:\n- Rolle wechseln\n- `Rollen und Berechtigungen bearbeiten` fuehrt zu S02\n- letzter Admin wird ueber V01 blockiert","x":720,"y":1015,"width":500,"height":250}, diff --git a/02 Wireframes/P2 Auth/WF-P2 Admin RBAC/WF-P2 Admin RBAC.md b/02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/WF-P2 Admin RBAC.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Admin RBAC/WF-P2 Admin RBAC.md rename to 02 Wireframes/P2 Admin RBAC/WF-P2 Admin RBAC/WF-P2 Admin RBAC.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Change Password/Screens/M01 Identitaet bestaetigen.md b/02 Wireframes/P2 Change Password/WF-P2 Change Password/Screens/M01 Identitaet bestaetigen.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Change Password/Screens/M01 Identitaet bestaetigen.md rename to 02 Wireframes/P2 Change Password/WF-P2 Change Password/Screens/M01 Identitaet bestaetigen.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Change Password/Varianten/V01 Zu viele Fehlversuche.md b/02 Wireframes/P2 Change Password/WF-P2 Change Password/Varianten/V01 Zu viele Fehlversuche.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Change Password/Varianten/V01 Zu viele Fehlversuche.md rename to 02 Wireframes/P2 Change Password/WF-P2 Change Password/Varianten/V01 Zu viele Fehlversuche.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Change Password/WF-P2 Change Password.canvas b/02 Wireframes/P2 Change Password/WF-P2 Change Password/WF-P2 Change Password.canvas similarity index 74% rename from 02 Wireframes/P2 Auth/WF-P2 Change Password/WF-P2 Change Password.canvas rename to 02 Wireframes/P2 Change Password/WF-P2 Change Password/WF-P2 Change Password.canvas index 4f8fa1d9..87c20f0d 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Change Password/WF-P2 Change Password.canvas +++ b/02 Wireframes/P2 Change Password/WF-P2 Change Password/WF-P2 Change Password.canvas @@ -3,10 +3,10 @@ {"id":"group-main","type":"group","x":-80,"y":-100,"width":1900,"height":420,"label":"Hauptflow"}, {"id":"group-blocker","type":"group","x":620,"y":560,"width":760,"height":360,"label":"Blocker"}, {"id":"group-notes","type":"group","x":-80,"y":560,"width":560,"height":360,"label":"Regeln"}, - {"id":"m01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Change Password/Screens/M01 Identitaet bestaetigen.md","x":0,"y":0,"width":420,"height":200}, - {"id":"core-set-password","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Set Password/WF-P2 Set Password.md","x":640,"y":0,"width":420,"height":200}, + {"id":"m01","type":"file","file":"02 Wireframes/P2 Change Password/WF-P2 Change Password/Screens/M01 Identitaet bestaetigen.md","x":0,"y":0,"width":420,"height":200}, + {"id":"core-set-password","type":"file","file":"02 Wireframes/P2 Set Password/WF-P2 Set Password/WF-P2 Set Password.md","x":640,"y":0,"width":420,"height":200}, {"id":"note-core","type":"text","text":"# Core-Uebergabe\n\nNeues Passwort setzen und Abschluss liegen in `WF-P2 Set Password`.\n\n`WF-P2 Change Password` besitzt nur Reauth. 2FA-Code ist ein Zustand in M01, kein eigener Screen.","x":1280,"y":0,"width":420,"height":240}, - {"id":"v01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Change Password/Varianten/V01 Zu viele Fehlversuche.md","x":760,"y":680,"width":420,"height":200}, + {"id":"v01","type":"file","file":"02 Wireframes/P2 Change Password/WF-P2 Change Password/Varianten/V01 Zu viele Fehlversuche.md","x":760,"y":680,"width":420,"height":200}, {"id":"note-reauth","type":"text","text":"# Reauth-Regel\n\nKein E-Mail-Link im eingeloggten Zustand.\n\nAccount-E-Mail readonly anzeigen, aktuelles Passwort pruefen, 2FA erneut verlangen wenn aktiv oder per Policy erforderlich.","x":0,"y":680,"width":420,"height":200} ], "edges":[ diff --git a/02 Wireframes/P2 Auth/WF-P2 Change Password/WF-P2 Change Password.md b/02 Wireframes/P2 Change Password/WF-P2 Change Password/WF-P2 Change Password.md similarity index 99% rename from 02 Wireframes/P2 Auth/WF-P2 Change Password/WF-P2 Change Password.md rename to 02 Wireframes/P2 Change Password/WF-P2 Change Password/WF-P2 Change Password.md index 9ea1a61e..287c4b70 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Change Password/WF-P2 Change Password.md +++ b/02 Wireframes/P2 Change Password/WF-P2 Change Password/WF-P2 Change Password.md @@ -184,7 +184,7 @@ M01 -> V01 Zu viele Fehlversuche Core-Verweis: -- [[../WF-P2 Set Password/WF-P2 Set Password.md]] +- [[../../P2 Set Password/WF-P2 Set Password/WF-P2 Set Password.md]] --- diff --git a/02 Wireframes/P2 Auth/WF-P2 Konto loeschen/Screens/M01 Loeschung anfragen.md b/02 Wireframes/P2 Konto loeschen/WF-P2 Konto loeschen/Screens/M01 Loeschung anfragen.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Konto loeschen/Screens/M01 Loeschung anfragen.md rename to 02 Wireframes/P2 Konto loeschen/WF-P2 Konto loeschen/Screens/M01 Loeschung anfragen.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Konto loeschen/Screens/S01 Settings Workspaces Loeschbereich.md b/02 Wireframes/P2 Konto loeschen/WF-P2 Konto loeschen/Screens/S01 Settings Workspaces Loeschbereich.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Konto loeschen/Screens/S01 Settings Workspaces Loeschbereich.md rename to 02 Wireframes/P2 Konto loeschen/WF-P2 Konto loeschen/Screens/S01 Settings Workspaces Loeschbereich.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Konto loeschen/WF-P2 Konto loeschen.canvas b/02 Wireframes/P2 Konto loeschen/WF-P2 Konto loeschen/WF-P2 Konto loeschen.canvas similarity index 80% rename from 02 Wireframes/P2 Auth/WF-P2 Konto loeschen/WF-P2 Konto loeschen.canvas rename to 02 Wireframes/P2 Konto loeschen/WF-P2 Konto loeschen/WF-P2 Konto loeschen.canvas index 8d5b3bd5..db6ea54e 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Konto loeschen/WF-P2 Konto loeschen.canvas +++ b/02 Wireframes/P2 Konto loeschen/WF-P2 Konto loeschen/WF-P2 Konto loeschen.canvas @@ -2,10 +2,10 @@ "nodes":[ {"id":"group-main","type":"group","x":-80,"y":-60,"width":1440,"height":420,"label":"Backlog / geparkte Konto-Loeschung"}, {"id":"group-notes","type":"group","x":-80,"y":560,"width":1440,"height":360,"label":"Backlog-Hinweise"}, - {"id":"s01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Konto loeschen/Screens/S01 Settings Workspaces Loeschbereich.md","x":0,"y":0,"width":420,"height":200}, + {"id":"s01","type":"file","file":"02 Wireframes/P2 Konto loeschen/WF-P2 Konto loeschen/Screens/S01 Settings Workspaces Loeschbereich.md","x":0,"y":0,"width":420,"height":200}, {"id":"note-permission","type":"text","text":"# Trennung\n\nAccount/Konto loeschen und Workspace loeschen sind zwei unterschiedliche Workflows.\n\nNicht in einem Screen vermischen.","x":0,"y":680,"width":420,"height":200}, {"id":"note-request","type":"text","text":"# Backlog\n\nDer gesamte Konto-Loeschworkflow ist geparkt.\n\nBestehende Screens sind nur Referenz und werden nicht als aktueller v1-Scope weitergebaut.","x":860,"y":680,"width":420,"height":200}, - {"id":"m01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Konto loeschen/Screens/M01 Loeschung anfragen.md","x":860,"y":0,"width":420,"height":200}, + {"id":"m01","type":"file","file":"02 Wireframes/P2 Konto loeschen/WF-P2 Konto loeschen/Screens/M01 Loeschung anfragen.md","x":860,"y":0,"width":420,"height":200}, {"id":"note-backlog","type":"text","text":"# Voraussetzung\n\nErst wieder aufnehmen, wenn Workspace Settings gebaut/validiert sind.\n\nDanach Flow neu mit David validieren.","x":1440,"y":680,"width":420,"height":200} ], "edges":[ diff --git a/02 Wireframes/P2 Auth/WF-P2 Konto loeschen/WF-P2 Konto loeschen.md b/02 Wireframes/P2 Konto loeschen/WF-P2 Konto loeschen/WF-P2 Konto loeschen.md similarity index 99% rename from 02 Wireframes/P2 Auth/WF-P2 Konto loeschen/WF-P2 Konto loeschen.md rename to 02 Wireframes/P2 Konto loeschen/WF-P2 Konto loeschen/WF-P2 Konto loeschen.md index fc834212..8cc97add 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Konto loeschen/WF-P2 Konto loeschen.md +++ b/02 Wireframes/P2 Konto loeschen/WF-P2 Konto loeschen/WF-P2 Konto loeschen.md @@ -76,7 +76,7 @@ Welche Loeschthemen muessen fuer spaeter getrennt vorgemerkt werden, ohne jetzt | Entscheidung | Status | Notiz | |---|---|---| | Account/Konto-Loeschung | Backlog | eigener spaeterer Workflow | -| Workspace-Loeschung | Backlog | eigener spaeterer Workflow in [[../WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.md]] | +| Workspace-Loeschung | Backlog | eigener spaeterer Workflow in [[../../P2 Workspace loeschen/WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.md]] | | Einstieg unter Settings -> Workspaces | Backlog/Klaeren | Workspace Settings sind noch nicht gebaut | | Settings/Workspaces minimal bauen | Raus fuer jetzt | erst nach separater Workspace-Settings-Planung | | Erklaerung im Modal | Backlog | spaeter entscheiden, ob Modal oder Wizard | diff --git a/02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Screens/S01 Login.md b/02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Screens/S01 Login.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Screens/S01 Login.md rename to 02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Screens/S01 Login.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Screens/S02 Magic-Link anfordern.md b/02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Screens/S02 Magic-Link anfordern.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Screens/S02 Magic-Link anfordern.md rename to 02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Screens/S02 Magic-Link anfordern.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Screens/S03 Magic-Link gesendet.md b/02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Screens/S03 Magic-Link gesendet.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Screens/S03 Magic-Link gesendet.md rename to 02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Screens/S03 Magic-Link gesendet.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Screens/S04 2FA Code eingeben.md b/02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Screens/S04 2FA Code eingeben.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Screens/S04 2FA Code eingeben.md rename to 02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Screens/S04 2FA Code eingeben.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Varianten/V01 Login falsche Daten.md b/02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Varianten/V01 Login falsche Daten.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Varianten/V01 Login falsche Daten.md rename to 02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Varianten/V01 Login falsche Daten.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Varianten/V02 Login mit mCaptcha.md b/02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Varianten/V02 Login mit mCaptcha.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Varianten/V02 Login mit mCaptcha.md rename to 02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Varianten/V02 Login mit mCaptcha.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Varianten/V03 2FA gesperrt.md b/02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Varianten/V03 2FA gesperrt.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Varianten/V03 2FA gesperrt.md rename to 02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Varianten/V03 2FA gesperrt.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Login und 2FA/WF-P2 Login und 2FA.canvas b/02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/WF-P2 Login und 2FA.canvas similarity index 63% rename from 02 Wireframes/P2 Auth/WF-P2 Login und 2FA/WF-P2 Login und 2FA.canvas rename to 02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/WF-P2 Login und 2FA.canvas index 0a59e42f..69b76866 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Login und 2FA/WF-P2 Login und 2FA.canvas +++ b/02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/WF-P2 Login und 2FA.canvas @@ -4,16 +4,16 @@ {"id":"group-login-variants","type":"group","x":-80,"y":520,"width":1100,"height":430,"label":"Login-Varianten"}, {"id":"group-magic","type":"group","x":-760,"y":520,"width":560,"height":760,"label":"Magic-Link Branch"}, {"id":"group-2fa-variants","type":"group","x":1120,"y":520,"width":560,"height":430,"label":"2FA-Variante"}, - {"id":"s01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Screens/S01 Login.md","x":0,"y":0,"width":400,"height":190}, - {"id":"s02","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Screens/S02 Magic-Link anfordern.md","x":-660,"y":660,"width":400,"height":190}, - {"id":"s03","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Screens/S03 Magic-Link gesendet.md","x":-660,"y":1000,"width":400,"height":190}, - {"id":"v01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Varianten/V01 Login falsche Daten.md","x":40,"y":660,"width":400,"height":190}, + {"id":"s01","type":"file","file":"02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Screens/S01 Login.md","x":0,"y":0,"width":400,"height":190}, + {"id":"s02","type":"file","file":"02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Screens/S02 Magic-Link anfordern.md","x":-660,"y":660,"width":400,"height":190}, + {"id":"s03","type":"file","file":"02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Screens/S03 Magic-Link gesendet.md","x":-660,"y":1000,"width":400,"height":190}, + {"id":"v01","type":"file","file":"02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Varianten/V01 Login falsche Daten.md","x":40,"y":660,"width":400,"height":190}, {"id":"note-layout","type":"text","text":"# Canvas-Regel\n\nHauptflow nach rechts.\nBranches liegen darunter.\nBranch-Kanten bleiben ohne Labels, damit nichts ueberlappt.","x":1220,"y":1000,"width":460,"height":180}, {"id":"note-login","type":"text","text":"# Login-Entscheidung\n\nKein E-Mail-Pre-Screen.\n\nS01 zeigt direkt:\n- E-Mail\n- Passwort\n- Magic-Link Alternative\n- Konto erstellen Link","x":-760,"y":-25,"width":460,"height":240}, {"id":"outcome","type":"text","text":"# Outcome\n\nNormale Rolle -> Home/App\n\nAdmin -> Tenant-/Workspace-Auswahl oder Admin-Startpunkt\n\nWenn keine 2FA noetig ist, endet S01 direkt hier.\n\nLogin erfolgreich wird nicht als eigener Screen gebaut.","x":1360,"y":-25,"width":360,"height":240}, - {"id":"s04","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Screens/S04 2FA Code eingeben.md","x":680,"y":0,"width":400,"height":190}, - {"id":"v02","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Varianten/V02 Login mit mCaptcha.md","x":560,"y":660,"width":400,"height":190}, - {"id":"v03","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Login und 2FA/Varianten/V03 2FA gesperrt.md","x":1220,"y":660,"width":400,"height":190} + {"id":"s04","type":"file","file":"02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Screens/S04 2FA Code eingeben.md","x":680,"y":0,"width":400,"height":190}, + {"id":"v02","type":"file","file":"02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Varianten/V02 Login mit mCaptcha.md","x":560,"y":660,"width":400,"height":190}, + {"id":"v03","type":"file","file":"02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/Varianten/V03 2FA gesperrt.md","x":1220,"y":660,"width":400,"height":190} ], "edges":[ {"id":"edge-s01-s04","fromNode":"s01","fromSide":"right","toNode":"s04","toSide":"left","label":"2FA"}, diff --git a/02 Wireframes/P2 Auth/WF-P2 Login und 2FA/WF-P2 Login und 2FA.md b/02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/WF-P2 Login und 2FA.md similarity index 99% rename from 02 Wireframes/P2 Auth/WF-P2 Login und 2FA/WF-P2 Login und 2FA.md rename to 02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/WF-P2 Login und 2FA.md index 11d21efb..e2b8f363 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Login und 2FA/WF-P2 Login und 2FA.md +++ b/02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/WF-P2 Login und 2FA.md @@ -6,7 +6,7 @@ package: WF-P2 Login und 2FA typ: Flow status: In Subframe subframe: "https://app.subframe.com/f023064a5ca0/flow/a457cbaa-9cca-412a-98b2-3bef128338ac/edit" -canvas: "02 Wireframes/P2 Auth/WF-P2 Login und 2FA/WF-P2 Login und 2FA.canvas" +canvas: "02 Wireframes/P2 Login und 2FA/WF-P2 Login und 2FA/WF-P2 Login und 2FA.canvas" --- # WF-P2 Login und 2FA diff --git a/02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/M01 Admin kontaktieren.md b/02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/M01 Admin kontaktieren.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/M01 Admin kontaktieren.md rename to 02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/M01 Admin kontaktieren.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/M02 Wiederherstellungscode eingeben.md b/02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/M02 Wiederherstellungscode eingeben.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/M02 Wiederherstellungscode eingeben.md rename to 02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/M02 Wiederherstellungscode eingeben.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/S01 Passwort Reset anfordern.md b/02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/S01 Passwort Reset anfordern.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/S01 Passwort Reset anfordern.md rename to 02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/S01 Passwort Reset anfordern.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/S02 Reset-Link gesendet.md b/02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/S02 Reset-Link gesendet.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/S02 Reset-Link gesendet.md rename to 02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/S02 Reset-Link gesendet.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/S03 2FA bestaetigen.md b/02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/S03 2FA bestaetigen.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/S03 2FA bestaetigen.md rename to 02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/S03 2FA bestaetigen.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Varianten/V01 Reset-Link ungueltig.md b/02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Varianten/V01 Reset-Link ungueltig.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Varianten/V01 Reset-Link ungueltig.md rename to 02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Varianten/V01 Reset-Link ungueltig.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Varianten/V02 2FA nicht verfuegbar.md b/02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Varianten/V02 2FA nicht verfuegbar.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Varianten/V02 2FA nicht verfuegbar.md rename to 02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Varianten/V02 2FA nicht verfuegbar.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Passwort Reset/WF-P2 Passwort Reset.canvas b/02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/WF-P2 Passwort Reset.canvas similarity index 64% rename from 02 Wireframes/P2 Auth/WF-P2 Passwort Reset/WF-P2 Passwort Reset.canvas rename to 02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/WF-P2 Passwort Reset.canvas index 4357bf40..b6405652 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Passwort Reset/WF-P2 Passwort Reset.canvas +++ b/02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/WF-P2 Passwort Reset.canvas @@ -3,16 +3,16 @@ {"id":"group-blocker","type":"group","x":980,"y":560,"width":1840,"height":620,"label":"Blocker und Recovery"}, {"id":"group-main","type":"group","x":-80,"y":-100,"width":2440,"height":420,"label":"Hauptflow"}, {"id":"group-notes","type":"group","x":-80,"y":560,"width":820,"height":380,"label":"Regeln"}, - {"id":"s01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/S01 Passwort Reset anfordern.md","x":0,"y":0,"width":420,"height":200}, - {"id":"s02","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/S02 Reset-Link gesendet.md","x":640,"y":0,"width":420,"height":200}, - {"id":"s03","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/S03 2FA bestaetigen.md","x":1280,"y":0,"width":420,"height":200}, + {"id":"s01","type":"file","file":"02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/S01 Passwort Reset anfordern.md","x":0,"y":0,"width":420,"height":200}, + {"id":"s02","type":"file","file":"02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/S02 Reset-Link gesendet.md","x":640,"y":0,"width":420,"height":200}, + {"id":"s03","type":"file","file":"02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/S03 2FA bestaetigen.md","x":1280,"y":0,"width":420,"height":200}, {"id":"outcome-set-password","type":"text","text":"# Outcome\n\nWeiter zu `WF-P2 Set Password`.\n\nDort werden neues Passwort, 2FA-Angebot/Pflicht, Recovery-Hinweis und Abschluss gebaut.","x":1920,"y":0,"width":360,"height":220}, - {"id":"v01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Varianten/V01 Reset-Link ungueltig.md","x":1080,"y":680,"width":420,"height":200}, - {"id":"v02","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Varianten/V02 2FA nicht verfuegbar.md","x":1700,"y":680,"width":420,"height":200}, + {"id":"v01","type":"file","file":"02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Varianten/V01 Reset-Link ungueltig.md","x":1080,"y":680,"width":420,"height":200}, + {"id":"v02","type":"file","file":"02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Varianten/V02 2FA nicht verfuegbar.md","x":1700,"y":680,"width":420,"height":200}, {"id":"note-security","type":"text","text":"# Security-Regel\n\nUnbekannte E-Mail zeigt denselben Gesendet-Screen wie bekannte E-Mail.\n\nKein Screen `E-Mail nicht gefunden`.","x":0,"y":680,"width":360,"height":200}, {"id":"note-2fa","type":"text","text":"# 2FA-Regel\n\nWenn 2FA aktiv ist, muss sie vor Set Password bestaetigt werden.\n\nWenn 2FA nicht verfuegbar ist: Admin kontaktieren oder gespeicherten Wiederherstellungscode verwenden.","x":440,"y":680,"width":360,"height":240}, - {"id":"m02-recovery","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/M02 Wiederherstellungscode eingeben.md","x":2360,"y":600,"width":420,"height":200}, - {"id":"m01-admin","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Passwort Reset/Screens/M01 Admin kontaktieren.md","x":2360,"y":920,"width":420,"height":200} + {"id":"m02-recovery","type":"file","file":"02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/M02 Wiederherstellungscode eingeben.md","x":2360,"y":600,"width":420,"height":200}, + {"id":"m01-admin","type":"file","file":"02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/Screens/M01 Admin kontaktieren.md","x":2360,"y":920,"width":420,"height":200} ], "edges":[ {"id":"edge-s01-s02","fromNode":"s01","fromSide":"right","toNode":"s02","toSide":"left","label":"senden"}, diff --git a/02 Wireframes/P2 Auth/WF-P2 Passwort Reset/WF-P2 Passwort Reset.md b/02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/WF-P2 Passwort Reset.md similarity index 99% rename from 02 Wireframes/P2 Auth/WF-P2 Passwort Reset/WF-P2 Passwort Reset.md rename to 02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/WF-P2 Passwort Reset.md index fb4d3549..5d9c27e8 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Passwort Reset/WF-P2 Passwort Reset.md +++ b/02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/WF-P2 Passwort Reset.md @@ -6,7 +6,7 @@ package: WF-P2 Passwort Reset typ: Zubringerflow status: In Subframe subframe: "https://app.subframe.com/f023064a5ca0/flow/5782f3c4-4321-4bb9-b048-990e296897a4/edit" -canvas: "02 Wireframes/P2 Auth/WF-P2 Passwort Reset/WF-P2 Passwort Reset.canvas" +canvas: "02 Wireframes/P2 Passwort Reset/WF-P2 Passwort Reset/WF-P2 Passwort Reset.canvas" --- # WF-P2 Passwort Reset diff --git a/02 Wireframes/P2 Auth/WF-P2 Profil und Sicherheit/Screens/S01 Profil Settings.md b/02 Wireframes/P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit/Screens/S01 Profil Settings.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Profil und Sicherheit/Screens/S01 Profil Settings.md rename to 02 Wireframes/P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit/Screens/S01 Profil Settings.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit.canvas b/02 Wireframes/P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit.canvas similarity index 73% rename from 02 Wireframes/P2 Auth/WF-P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit.canvas rename to 02 Wireframes/P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit.canvas index 75846d3f..f39b5add 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit.canvas +++ b/02 Wireframes/P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit.canvas @@ -2,9 +2,9 @@ "nodes":[ {"id":"group-main","type":"group","x":-80,"y":-100,"width":1900,"height":420,"label":"Profil Settings"}, {"id":"group-notes","type":"group","x":-80,"y":560,"width":1700,"height":360,"label":"Trigger und Spaeter"}, - {"id":"s01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Profil und Sicherheit/Screens/S01 Profil Settings.md","x":0,"y":0,"width":420,"height":200}, - {"id":"change-password","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Change Password/WF-P2 Change Password.md","x":640,"y":0,"width":420,"height":200}, - {"id":"manage-2fa","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.md","x":1280,"y":0,"width":420,"height":200}, + {"id":"s01","type":"file","file":"02 Wireframes/P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit/Screens/S01 Profil Settings.md","x":0,"y":0,"width":420,"height":200}, + {"id":"change-password","type":"file","file":"02 Wireframes/P2 Change Password/WF-P2 Change Password/WF-P2 Change Password.md","x":640,"y":0,"width":420,"height":200}, + {"id":"manage-2fa","type":"file","file":"02 Wireframes/P2 2FA Verwalten/WF-P2 2FA Verwalten/WF-P2 2FA Verwalten.md","x":1280,"y":0,"width":420,"height":200}, {"id":"note-fields","type":"text","text":"# Profilfelder\n\nEditierbar: Avatar, Name, Telefonnummer, Abteilung.\n\nRead-only: Rolle, wird durch Admin zugewiesen.\n\nRaus: Theme, Bio.","x":0,"y":680,"width":420,"height":220}, {"id":"note-security","type":"text","text":"# Security\n\nProfil besitzt keine Passwort- oder 2FA-Screens.\n\nPasswort aendern und 2FA verwalten starten eigene validierte Flows.","x":540,"y":680,"width":420,"height":220}, {"id":"note-later","type":"text","text":"# Spaeter\n\nSecurity/Sessions, Trust Devices und Ueberall abmelden bleiben fuer v1 raus.","x":1080,"y":680,"width":420,"height":180} diff --git a/02 Wireframes/P2 Auth/WF-P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit.md b/02 Wireframes/P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit.md rename to 02 Wireframes/P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit/WF-P2 Profil und Sicherheit.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S01 Neues Passwort setzen.md b/02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S01 Neues Passwort setzen.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S01 Neues Passwort setzen.md rename to 02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S01 Neues Passwort setzen.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S02 2FA freiwillig anbieten.md b/02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S02 2FA freiwillig anbieten.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S02 2FA freiwillig anbieten.md rename to 02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S02 2FA freiwillig anbieten.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S03 2FA erforderlich.md b/02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S03 2FA erforderlich.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S03 2FA erforderlich.md rename to 02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S03 2FA erforderlich.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S04 2FA einrichten.md b/02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S04 2FA einrichten.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S04 2FA einrichten.md rename to 02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S04 2FA einrichten.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S05 Recovery Hinweis.md b/02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S05 Recovery Hinweis.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S05 Recovery Hinweis.md rename to 02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S05 Recovery Hinweis.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S06 Abschluss.md b/02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S06 Abschluss.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S06 Abschluss.md rename to 02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S06 Abschluss.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Set Password/Varianten/V03 2FA Setup gesperrt.md b/02 Wireframes/P2 Set Password/WF-P2 Set Password/Varianten/V03 2FA Setup gesperrt.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Set Password/Varianten/V03 2FA Setup gesperrt.md rename to 02 Wireframes/P2 Set Password/WF-P2 Set Password/Varianten/V03 2FA Setup gesperrt.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Set Password/WF-P2 Set Password.canvas b/02 Wireframes/P2 Set Password/WF-P2 Set Password/WF-P2 Set Password.canvas similarity index 66% rename from 02 Wireframes/P2 Auth/WF-P2 Set Password/WF-P2 Set Password.canvas rename to 02 Wireframes/P2 Set Password/WF-P2 Set Password/WF-P2 Set Password.canvas index 7553f38c..b14bd45d 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Set Password/WF-P2 Set Password.canvas +++ b/02 Wireframes/P2 Set Password/WF-P2 Set Password/WF-P2 Set Password.canvas @@ -6,14 +6,14 @@ {"id":"group-regel","type":"group","x":2480,"y":700,"width":600,"height":320,"label":"Regel"}, {"id":"note-back","type":"text","text":"# Zurueck\n\nSekundare Navigation zurueck zum vorherigen Auth-Schritt, wenn der Zubringerflow es erlaubt.\n\nBeispiel: Passwort Reset versehentlich geoeffnet.","x":0,"y":760,"width":460,"height":220}, {"id":"note-skip","type":"text","text":"# Skip\n\nNur bei freiwilliger 2FA.\n\nFuehrt direkt zum Abschluss mit Hinweis, dass 2FA spaeter in Security Settings aktiviert werden kann.","x":660,"y":800,"width":420,"height":200}, - {"id":"v03","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Set Password/Varianten/V03 2FA Setup gesperrt.md","x":1740,"y":800,"width":420,"height":200}, + {"id":"v03","type":"file","file":"02 Wireframes/P2 Set Password/WF-P2 Set Password/Varianten/V03 2FA Setup gesperrt.md","x":1740,"y":800,"width":420,"height":200}, {"id":"note-regel","type":"text","text":"# Core-Regel\n\nPflicht oder freiwillig kommt vom Zubringerflow.\n\nDer Core versteckt keine Sonderregeln: Reset, Einladung, Admin-Reset, Change Password und Incident dokumentieren ihre eigene Regel im jeweiligen Paket.\n\nNeukunden-Signup ist die Ausnahme: Passwort wird direkt im Signup gesetzt.","x":2580,"y":760,"width":500,"height":280}, - {"id":"s01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S01 Neues Passwort setzen.md","x":0,"y":100,"width":420,"height":200}, - {"id":"s04","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S04 2FA einrichten.md","x":1320,"y":100,"width":420,"height":200}, - {"id":"s05","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S05 Recovery Hinweis.md","x":1980,"y":100,"width":420,"height":200}, - {"id":"s06","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S06 Abschluss.md","x":2640,"y":100,"width":420,"height":200}, - {"id":"s02","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S02 2FA freiwillig anbieten.md","x":660,"y":240,"width":420,"height":200}, - {"id":"s03","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Set Password/Screens/S03 2FA erforderlich.md","x":660,"y":-40,"width":420,"height":200} + {"id":"s01","type":"file","file":"02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S01 Neues Passwort setzen.md","x":0,"y":100,"width":420,"height":200}, + {"id":"s04","type":"file","file":"02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S04 2FA einrichten.md","x":1320,"y":100,"width":420,"height":200}, + {"id":"s05","type":"file","file":"02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S05 Recovery Hinweis.md","x":1980,"y":100,"width":420,"height":200}, + {"id":"s06","type":"file","file":"02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S06 Abschluss.md","x":2640,"y":100,"width":420,"height":200}, + {"id":"s02","type":"file","file":"02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S02 2FA freiwillig anbieten.md","x":660,"y":240,"width":420,"height":200}, + {"id":"s03","type":"file","file":"02 Wireframes/P2 Set Password/WF-P2 Set Password/Screens/S03 2FA erforderlich.md","x":660,"y":-40,"width":420,"height":200} ], "edges":[ {"id":"edge-s01-s02","fromNode":"s01","fromSide":"right","toNode":"s02","toSide":"left","label":"freiwillig"}, diff --git a/02 Wireframes/P2 Auth/WF-P2 Set Password/WF-P2 Set Password.md b/02 Wireframes/P2 Set Password/WF-P2 Set Password/WF-P2 Set Password.md similarity index 99% rename from 02 Wireframes/P2 Auth/WF-P2 Set Password/WF-P2 Set Password.md rename to 02 Wireframes/P2 Set Password/WF-P2 Set Password/WF-P2 Set Password.md index 637190dc..dd9c06f1 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Set Password/WF-P2 Set Password.md +++ b/02 Wireframes/P2 Set Password/WF-P2 Set Password/WF-P2 Set Password.md @@ -6,7 +6,7 @@ package: WF-P2 Set Password typ: Auth-Core Flow status: In Subframe subframe: "https://app.subframe.com/f023064a5ca0/flow/534bffc2-b7d3-423b-b9b6-da424980dcf3/edit" -canvas: "02 Wireframes/P2 Auth/WF-P2 Set Password/WF-P2 Set Password.canvas" +canvas: "02 Wireframes/P2 Set Password/WF-P2 Set Password/WF-P2 Set Password.canvas" --- # WF-P2 Set Password diff --git a/02 Wireframes/P2 Auth/WF-P2 Signup/Screens/S01 Signup.md b/02 Wireframes/P2 Signup/WF-P2 Signup/Screens/S01 Signup.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Signup/Screens/S01 Signup.md rename to 02 Wireframes/P2 Signup/WF-P2 Signup/Screens/S01 Signup.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Signup/Screens/S02 Signup erfolgreich Workspace wird vorbereitet.md b/02 Wireframes/P2 Signup/WF-P2 Signup/Screens/S02 Signup erfolgreich Workspace wird vorbereitet.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Signup/Screens/S02 Signup erfolgreich Workspace wird vorbereitet.md rename to 02 Wireframes/P2 Signup/WF-P2 Signup/Screens/S02 Signup erfolgreich Workspace wird vorbereitet.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Signup/Screens/S03 E-Mail bestaetigen.md b/02 Wireframes/P2 Signup/WF-P2 Signup/Screens/S03 E-Mail bestaetigen.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Signup/Screens/S03 E-Mail bestaetigen.md rename to 02 Wireframes/P2 Signup/WF-P2 Signup/Screens/S03 E-Mail bestaetigen.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Signup/WF-P2 Signup.canvas b/02 Wireframes/P2 Signup/WF-P2 Signup/WF-P2 Signup.canvas similarity index 84% rename from 02 Wireframes/P2 Auth/WF-P2 Signup/WF-P2 Signup.canvas rename to 02 Wireframes/P2 Signup/WF-P2 Signup/WF-P2 Signup.canvas index 77acbb37..e5967daf 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Signup/WF-P2 Signup.canvas +++ b/02 Wireframes/P2 Signup/WF-P2 Signup/WF-P2 Signup.canvas @@ -2,13 +2,13 @@ "nodes":[ {"id":"group-main","type":"group","x":-80,"y":-120,"width":2960,"height":460,"label":"Signup Hauptflow"}, {"id":"group-notes","type":"group","x":-80,"y":560,"width":2960,"height":430,"label":"Regeln und Backlog"}, - {"id":"s01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Signup/Screens/S01 Signup.md","x":0,"y":0,"width":420,"height":210}, + {"id":"s01","type":"file","file":"02 Wireframes/P2 Signup/WF-P2 Signup/Screens/S01 Signup.md","x":0,"y":0,"width":420,"height":210}, {"id":"note-password","type":"text","text":"# Passwort-Regel\n\nNeukunden setzen das Passwort direkt in S01.\n\n`WF-P2 Set Password` bleibt fuer Einladung, Reset, Change Password, Admin-Reset und Security-Incidents reserviert.","x":0,"y":680,"width":560,"height":230}, {"id":"note-backlog","type":"text","text":"# Backlog\n\nMehrstufiges Onboarding, echte Firmen-/Workspace-Daten, Billing, USt-ID, Branding, Team-Einladung, Templates, Integrationen und CRM-/Pipeline-Setup spaeter ausbauen.","x":2340,"y":680,"width":500,"height":230}, {"id":"outcome-app","type":"text","text":"# App-Start\n\nWeiter in den ersten Workspace.\n\nSignup-Ersteller ist initialer Workspace-Admin.","x":2460,"y":0,"width":360,"height":210}, {"id":"note-provisioning","type":"text","text":"# Vorbereitung\n\nS02 zeigt Spinner/Ladefeld fuer `Workspace wird vorbereitet`.\n\nWenn technisch nichts sichtbar laedt, darf S02 automatisch uebersprungen werden.","x":1540,"y":680,"width":500,"height":230}, - {"id":"s02","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Signup/Screens/S02 Signup erfolgreich Workspace wird vorbereitet.md","x":1560,"y":0,"width":480,"height":210}, - {"id":"s03","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Signup/Screens/S03 E-Mail bestaetigen.md","x":760,"y":0,"width":420,"height":210}, + {"id":"s02","type":"file","file":"02 Wireframes/P2 Signup/WF-P2 Signup/Screens/S02 Signup erfolgreich Workspace wird vorbereitet.md","x":1560,"y":0,"width":480,"height":210}, + {"id":"s03","type":"file","file":"02 Wireframes/P2 Signup/WF-P2 Signup/Screens/S03 E-Mail bestaetigen.md","x":760,"y":0,"width":420,"height":210}, {"id":"note-email","type":"text","text":"# E-Mail-Regel\n\nS03 ist Pflicht.\n\nOhne bestaetigte E-Mail ist der Signup nicht abgeschlossen.","x":840,"y":680,"width":420,"height":210} ], "edges":[ diff --git a/02 Wireframes/P2 Auth/WF-P2 Signup/WF-P2 Signup.md b/02 Wireframes/P2 Signup/WF-P2 Signup/WF-P2 Signup.md similarity index 99% rename from 02 Wireframes/P2 Auth/WF-P2 Signup/WF-P2 Signup.md rename to 02 Wireframes/P2 Signup/WF-P2 Signup/WF-P2 Signup.md index ff037cf3..5a23b8a5 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Signup/WF-P2 Signup.md +++ b/02 Wireframes/P2 Signup/WF-P2 Signup/WF-P2 Signup.md @@ -6,7 +6,7 @@ package: WF-P2 Signup typ: Flow status: In Subframe subframe: "https://app.subframe.com/f023064a5ca0/flow/5bb64c72-46af-46a8-84dd-5b4ac6bcfcfe/edit" -canvas: "02 Wireframes/P2 Auth/WF-P2 Signup/WF-P2 Signup.canvas" +canvas: "02 Wireframes/P2 Signup/WF-P2 Signup/WF-P2 Signup.canvas" --- # WF-P2 Signup diff --git a/02 Wireframes/P2 Auth/WF-P2 Workspace Auswahl/Screens/S01 Workspace Auswahl.md b/02 Wireframes/P2 Workspace Auswahl/WF-P2 Workspace Auswahl/Screens/S01 Workspace Auswahl.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Workspace Auswahl/Screens/S01 Workspace Auswahl.md rename to 02 Wireframes/P2 Workspace Auswahl/WF-P2 Workspace Auswahl/Screens/S01 Workspace Auswahl.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Workspace Auswahl/Screens/S02 Neuer Workspace anlegen.md b/02 Wireframes/P2 Workspace Auswahl/WF-P2 Workspace Auswahl/Screens/S02 Neuer Workspace anlegen.md similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Workspace Auswahl/Screens/S02 Neuer Workspace anlegen.md rename to 02 Wireframes/P2 Workspace Auswahl/WF-P2 Workspace Auswahl/Screens/S02 Neuer Workspace anlegen.md diff --git a/02 Wireframes/P2 Auth/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.canvas b/02 Wireframes/P2 Workspace Auswahl/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.canvas similarity index 84% rename from 02 Wireframes/P2 Auth/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.canvas rename to 02 Wireframes/P2 Workspace Auswahl/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.canvas index 63b47526..bde42f3c 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.canvas +++ b/02 Wireframes/P2 Workspace Auswahl/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.canvas @@ -2,8 +2,8 @@ "nodes":[ {"id":"group-main","type":"group","x":-80,"y":-100,"width":1540,"height":420,"label":"Workspace Auswahl"}, {"id":"group-notes","type":"group","x":-80,"y":560,"width":1540,"height":420,"label":"Regeln und Backlog"}, - {"id":"s01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Workspace Auswahl/Screens/S01 Workspace Auswahl.md","x":0,"y":0,"width":420,"height":200}, - {"id":"s02","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Workspace Auswahl/Screens/S02 Neuer Workspace anlegen.md","x":640,"y":0,"width":420,"height":200}, + {"id":"s01","type":"file","file":"02 Wireframes/P2 Workspace Auswahl/WF-P2 Workspace Auswahl/Screens/S01 Workspace Auswahl.md","x":0,"y":0,"width":420,"height":200}, + {"id":"s02","type":"file","file":"02 Wireframes/P2 Workspace Auswahl/WF-P2 Workspace Auswahl/Screens/S02 Neuer Workspace anlegen.md","x":640,"y":0,"width":420,"height":200}, {"id":"outcome-app","type":"text","text":"# Outcome\n\nWorkspace wird gesetzt.\n\nNach neuer Anlage direkt in den neuen Workspace wechseln und Toast anzeigen.","x":1200,"y":0,"width":360,"height":210}, {"id":"note-admin","type":"text","text":"# Admin-Regel\n\nAdmins sehen Workspace-Auswahl immer, auch bei nur einem Workspace.\n\nBerechtigte Rollen koennen den Wechsel ueber die App-Shell starten.","x":0,"y":680,"width":420,"height":230}, {"id":"note-workspace","type":"text","text":"# Workspace-Begriff\n\nUI sagt Workspace, nicht Tenant.\n\nLetzte 5 Workspaces, Suche, Info-I und Neuer-Workspace-CTA sind im Hauptscreen.","x":540,"y":680,"width":420,"height":230}, diff --git a/02 Wireframes/P2 Auth/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.md b/02 Wireframes/P2 Workspace Auswahl/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.md similarity index 99% rename from 02 Wireframes/P2 Auth/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.md rename to 02 Wireframes/P2 Workspace Auswahl/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.md index 7e706044..a72af6aa 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.md +++ b/02 Wireframes/P2 Workspace Auswahl/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.md @@ -6,7 +6,7 @@ package: WF-P2 Workspace Auswahl typ: Flow status: In Subframe subframe: "https://app.subframe.com/f023064a5ca0/flow/08d4bebd-5db8-4ea8-ba59-270f88356f93/edit" -canvas: "02 Wireframes/P2 Auth/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.canvas" +canvas: "02 Wireframes/P2 Workspace Auswahl/WF-P2 Workspace Auswahl/WF-P2 Workspace Auswahl.canvas" --- # WF-P2 Workspace Auswahl diff --git a/02 Wireframes/P2 Auth/WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.canvas b/02 Wireframes/P2 Workspace loeschen/WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.canvas similarity index 100% rename from 02 Wireframes/P2 Auth/WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.canvas rename to 02 Wireframes/P2 Workspace loeschen/WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.canvas diff --git a/02 Wireframes/P2 Auth/WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.md b/02 Wireframes/P2 Workspace loeschen/WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.md similarity index 96% rename from 02 Wireframes/P2 Auth/WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.md rename to 02 Wireframes/P2 Workspace loeschen/WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.md index 6768f38f..b3ad3644 100644 --- a/02 Wireframes/P2 Auth/WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.md +++ b/02 Wireframes/P2 Workspace loeschen/WF-P2 Workspace loeschen/WF-P2 Workspace loeschen.md @@ -45,7 +45,7 @@ Dieser Flow ist aktuell nur als Backlog-Paket angelegt. Der Einstieg liegt spaet | Workflow | Bedeutung | Status | |---|---|---| -| Account/Konto loeschen | Nutzerkonto bzw. persoenliches Profil entfernen/anfragen | Backlog in [[../WF-P2 Konto loeschen/WF-P2 Konto loeschen.md]] | +| Account/Konto loeschen | Nutzerkonto bzw. persoenliches Profil entfernen/anfragen | Backlog in [[../../P2 Konto loeschen/WF-P2 Konto loeschen/WF-P2 Konto loeschen.md]] | | Workspace loeschen | Tenant/Workspace entfernen/anfragen | Dieses Backlog-Paket | Diese beiden Flows duerfen spaeter verknuepft sein, muessen aber getrennt geplant und validiert werden. diff --git a/02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/M01 Detail-Drawer.md b/02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/M01 Detail-Drawer.md similarity index 100% rename from 02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/M01 Detail-Drawer.md rename to 02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/M01 Detail-Drawer.md diff --git a/02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/M02 Export anlegen.md b/02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/M02 Export anlegen.md similarity index 100% rename from 02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/M02 Export anlegen.md rename to 02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/M02 Export anlegen.md diff --git a/02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/M03 Objekt-Verlauf-Drawer.md b/02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/M03 Objekt-Verlauf-Drawer.md similarity index 100% rename from 02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/M03 Objekt-Verlauf-Drawer.md rename to 02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/M03 Objekt-Verlauf-Drawer.md diff --git a/02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/S01 Protokoll-Ansicht.md b/02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/S01 Protokoll-Ansicht.md similarity index 100% rename from 02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/S01 Protokoll-Ansicht.md rename to 02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/S01 Protokoll-Ansicht.md diff --git a/02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/S02 Exporte.md b/02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/S02 Exporte.md similarity index 100% rename from 02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/S02 Exporte.md rename to 02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/S02 Exporte.md diff --git a/02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/WF-P3 Audit Log.canvas b/02 Wireframes/P3 Audit Log/WF-P3 Audit Log/WF-P3 Audit Log.canvas similarity index 67% rename from 02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/WF-P3 Audit Log.canvas rename to 02 Wireframes/P3 Audit Log/WF-P3 Audit Log/WF-P3 Audit Log.canvas index 0f72d898..080dcad5 100644 --- a/02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/WF-P3 Audit Log.canvas +++ b/02 Wireframes/P3 Audit Log/WF-P3 Audit Log/WF-P3 Audit Log.canvas @@ -4,13 +4,13 @@ {"id":"group-drawer","type":"group","x":-80,"y":460,"width":1875,"height":420,"label":"Drawer und Modals"}, {"id":"group-notes","type":"group","x":1935,"y":-100,"width":460,"height":980,"label":"Regeln"}, {"id":"note-entry","type":"text","text":"# Einstieg\n\nVerwaltung → Aktivitäts-Protokoll (`/admin/audit`).\n\nNur mit Recht `audit.read` sichtbar.","x":0,"y":0,"width":360,"height":200}, - {"id":"s01","type":"file","file":"02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/S01 Protokoll-Ansicht.md","x":595,"y":0,"width":420,"height":200}, - {"id":"s02","type":"file","file":"02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/S02 Exporte.md","x":1275,"y":0,"width":420,"height":200}, - {"id":"m01","type":"file","file":"02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/M01 Detail-Drawer.md","x":0,"y":560,"width":420,"height":200}, - {"id":"m03","type":"file","file":"02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/M03 Objekt-Verlauf-Drawer.md","x":655,"y":560,"width":420,"height":200}, - {"id":"m02","type":"file","file":"02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/Screens/M02 Export anlegen.md","x":1275,"y":560,"width":420,"height":200}, + {"id":"s01","type":"file","file":"02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/S01 Protokoll-Ansicht.md","x":595,"y":0,"width":420,"height":200}, + {"id":"s02","type":"file","file":"02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/S02 Exporte.md","x":1275,"y":0,"width":420,"height":200}, + {"id":"m01","type":"file","file":"02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/M01 Detail-Drawer.md","x":0,"y":560,"width":420,"height":200}, + {"id":"m03","type":"file","file":"02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/M03 Objekt-Verlauf-Drawer.md","x":655,"y":560,"width":420,"height":200}, + {"id":"m02","type":"file","file":"02 Wireframes/P3 Audit Log/WF-P3 Audit Log/Screens/M02 Export anlegen.md","x":1275,"y":560,"width":420,"height":200}, {"id":"note-mask","type":"text","text":"# Regeln (nur Doku)\n\n- Sensible Werte im Diff: nur „Wert geändert\"\n- Zeitraum max. 24 Monate — ältere nur per Export\n- Sortierung/Filter: Mitarbeiter, Zeitraum, Bereich, Änderungs-Art (validiert)\n- Actor-Marker: Mensch / Automation / MCP-Agent / Admin\n- M03 ist das wiederverwendbare „Verlauf\"-Muster für alle Detailseiten (Einstieg je Feature-Paket)","x":1975,"y":0,"width":380,"height":560}, - {"id":"md-paket","type":"file","file":"02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/WF-P3 Audit Log.md","x":-80,"y":-440,"width":460,"height":280} + {"id":"md-paket","type":"file","file":"02 Wireframes/P3 Audit Log/WF-P3 Audit Log/WF-P3 Audit Log.md","x":-80,"y":-440,"width":460,"height":280} ], "edges":[ {"id":"e-entry","fromNode":"note-entry","fromSide":"right","toNode":"s01","toSide":"left","toEnd":"arrow"}, diff --git a/02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/WF-P3 Audit Log.md b/02 Wireframes/P3 Audit Log/WF-P3 Audit Log/WF-P3 Audit Log.md similarity index 100% rename from 02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/WF-P3 Audit Log.md rename to 02 Wireframes/P3 Audit Log/WF-P3 Audit Log/WF-P3 Audit Log.md diff --git a/02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/Screens/S01 Glocken-Drawer.md b/02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/Screens/S01 Glocken-Drawer.md similarity index 100% rename from 02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/Screens/S01 Glocken-Drawer.md rename to 02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/Screens/S01 Glocken-Drawer.md diff --git a/02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/Screens/S02 Benachrichtigungen Seite.md b/02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/Screens/S02 Benachrichtigungen Seite.md similarity index 100% rename from 02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/Screens/S02 Benachrichtigungen Seite.md rename to 02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/Screens/S02 Benachrichtigungen Seite.md diff --git a/02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/Screens/S03 Benachrichtigungen Einstellungen.md b/02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/Screens/S03 Benachrichtigungen Einstellungen.md similarity index 100% rename from 02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/Screens/S03 Benachrichtigungen Einstellungen.md rename to 02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/Screens/S03 Benachrichtigungen Einstellungen.md diff --git a/02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.canvas b/02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.canvas similarity index 85% rename from 02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.canvas rename to 02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.canvas index 36932d96..48649f56 100644 --- a/02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.canvas +++ b/02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.canvas @@ -39,7 +39,7 @@ { "id": "s01", "type": "file", - "file": "02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/Screens/S01 Glocken-Drawer.md", + "file": "02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/Screens/S01 Glocken-Drawer.md", "x": 560, "y": 0, "width": 420, @@ -48,7 +48,7 @@ { "id": "s02", "type": "file", - "file": "02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/Screens/S02 Benachrichtigungen Seite.md", + "file": "02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/Screens/S02 Benachrichtigungen Seite.md", "x": 1240, "y": 0, "width": 420, @@ -66,7 +66,7 @@ { "id": "s03", "type": "file", - "file": "02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/Screens/S03 Benachrichtigungen Einstellungen.md", + "file": "02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/Screens/S03 Benachrichtigungen Einstellungen.md", "x": 440, "y": 560, "width": 420, @@ -102,7 +102,7 @@ { "id": "md-paket", "type": "file", - "file": "02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.md", + "file": "02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.md", "x": -80, "y": -440, "width": 460, diff --git a/02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.md b/02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.md similarity index 100% rename from 02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.md rename to 02 Wireframes/P3 Benachrichtigungen/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.md diff --git a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/M01 Aufgabe anlegen.md b/02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/M01 Aufgabe anlegen.md similarity index 100% rename from 02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/M01 Aufgabe anlegen.md rename to 02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/M01 Aufgabe anlegen.md diff --git a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/S01 Aufgaben-Liste.md b/02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/S01 Aufgaben-Liste.md similarity index 100% rename from 02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/S01 Aufgaben-Liste.md rename to 02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/S01 Aufgaben-Liste.md diff --git a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/S02 Aufgaben-Detail.md b/02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/S02 Aufgaben-Detail.md similarity index 100% rename from 02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/S02 Aufgaben-Detail.md rename to 02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/S02 Aufgaben-Detail.md diff --git a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/S03 Aufgaben-Drawer.md b/02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/S03 Aufgaben-Drawer.md similarity index 100% rename from 02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/S03 Aufgaben-Drawer.md rename to 02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/S03 Aufgaben-Drawer.md diff --git a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/V01 Eingebettete Kompakt-Variante.md b/02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/V01 Eingebettete Kompakt-Variante.md similarity index 100% rename from 02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/V01 Eingebettete Kompakt-Variante.md rename to 02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/V01 Eingebettete Kompakt-Variante.md diff --git a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/WF-P4 Aufgaben.canvas b/02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/WF-P4 Aufgaben.canvas similarity index 81% rename from 02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/WF-P4 Aufgaben.canvas rename to 02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/WF-P4 Aufgaben.canvas index d3b0df31..6aec8317 100644 --- a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/WF-P4 Aufgaben.canvas +++ b/02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/WF-P4 Aufgaben.canvas @@ -39,7 +39,7 @@ { "id": "s01", "type": "file", - "file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/S01 Aufgaben-Liste.md", + "file": "02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/S01 Aufgaben-Liste.md", "x": 560, "y": 0, "width": 420, @@ -48,7 +48,7 @@ { "id": "s02", "type": "file", - "file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/S02 Aufgaben-Detail.md", + "file": "02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/S02 Aufgaben-Detail.md", "x": 1240, "y": 0, "width": 420, @@ -57,7 +57,7 @@ { "id": "md-paket", "type": "file", - "file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/WF-P4 Aufgaben.md", + "file": "02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/WF-P4 Aufgaben.md", "x": -80, "y": -440, "width": 460, @@ -66,7 +66,7 @@ { "id": "m01", "type": "file", - "file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/M01 Aufgabe anlegen.md", + "file": "02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/M01 Aufgabe anlegen.md", "x": -20, "y": 580, "width": 420, @@ -75,7 +75,7 @@ { "id": "v01", "type": "file", - "file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/V01 Eingebettete Kompakt-Variante.md", + "file": "02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/V01 Eingebettete Kompakt-Variante.md", "x": 460, "y": 580, "width": 420, @@ -93,7 +93,7 @@ { "id": "s03", "type": "file", - "file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/Screens/S03 Aufgaben-Drawer.md", + "file": "02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/Screens/S03 Aufgaben-Drawer.md", "x": 1780, "y": 580, "width": 420, diff --git a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/WF-P4 Aufgaben.md b/02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/WF-P4 Aufgaben.md similarity index 100% rename from 02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/WF-P4 Aufgaben.md rename to 02 Wireframes/P4 Aufgaben/WF-P4 Aufgaben/WF-P4 Aufgaben.md diff --git a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/Screens/M01 Datei freigeben.md b/02 Wireframes/P4 Dateien/WF-P4 Dateien/Screens/M01 Datei freigeben.md similarity index 100% rename from 02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/Screens/M01 Datei freigeben.md rename to 02 Wireframes/P4 Dateien/WF-P4 Dateien/Screens/M01 Datei freigeben.md diff --git a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/Screens/S01 Datei-Uebersicht.md b/02 Wireframes/P4 Dateien/WF-P4 Dateien/Screens/S01 Datei-Uebersicht.md similarity index 100% rename from 02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/Screens/S01 Datei-Uebersicht.md rename to 02 Wireframes/P4 Dateien/WF-P4 Dateien/Screens/S01 Datei-Uebersicht.md diff --git a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/Screens/S02 Upload.md b/02 Wireframes/P4 Dateien/WF-P4 Dateien/Screens/S02 Upload.md similarity index 100% rename from 02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/Screens/S02 Upload.md rename to 02 Wireframes/P4 Dateien/WF-P4 Dateien/Screens/S02 Upload.md diff --git a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/Screens/S03 Datei-Detail.md b/02 Wireframes/P4 Dateien/WF-P4 Dateien/Screens/S03 Datei-Detail.md similarity index 100% rename from 02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/Screens/S03 Datei-Detail.md rename to 02 Wireframes/P4 Dateien/WF-P4 Dateien/Screens/S03 Datei-Detail.md diff --git a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/WF-P4 Dateien.canvas b/02 Wireframes/P4 Dateien/WF-P4 Dateien/WF-P4 Dateien.canvas similarity index 85% rename from 02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/WF-P4 Dateien.canvas rename to 02 Wireframes/P4 Dateien/WF-P4 Dateien/WF-P4 Dateien.canvas index 96f37106..98174c83 100644 --- a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/WF-P4 Dateien.canvas +++ b/02 Wireframes/P4 Dateien/WF-P4 Dateien/WF-P4 Dateien.canvas @@ -39,7 +39,7 @@ { "id": "s01", "type": "file", - "file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/Screens/S01 Datei-Uebersicht.md", + "file": "02 Wireframes/P4 Dateien/WF-P4 Dateien/Screens/S01 Datei-Uebersicht.md", "x": 560, "y": 0, "width": 420, @@ -48,7 +48,7 @@ { "id": "s03", "type": "file", - "file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/Screens/S03 Datei-Detail.md", + "file": "02 Wireframes/P4 Dateien/WF-P4 Dateien/Screens/S03 Datei-Detail.md", "x": 1240, "y": 0, "width": 420, @@ -57,7 +57,7 @@ { "id": "s02", "type": "file", - "file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/Screens/S02 Upload.md", + "file": "02 Wireframes/P4 Dateien/WF-P4 Dateien/Screens/S02 Upload.md", "x": 0, "y": 560, "width": 420, @@ -84,7 +84,7 @@ { "id": "md-paket", "type": "file", - "file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/WF-P4 Dateien.md", + "file": "02 Wireframes/P4 Dateien/WF-P4 Dateien/WF-P4 Dateien.md", "x": -80, "y": -440, "width": 460, @@ -93,7 +93,7 @@ { "id": "m01", "type": "file", - "file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/Screens/M01 Datei freigeben.md", + "file": "02 Wireframes/P4 Dateien/WF-P4 Dateien/Screens/M01 Datei freigeben.md", "x": 480, "y": 560, "width": 420, diff --git a/02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/WF-P4 Dateien.md b/02 Wireframes/P4 Dateien/WF-P4 Dateien/WF-P4 Dateien.md similarity index 100% rename from 02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/WF-P4 Dateien.md rename to 02 Wireframes/P4 Dateien/WF-P4 Dateien/WF-P4 Dateien.md diff --git a/02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/M01 Kontakt anlegen.md b/02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/M01 Kontakt anlegen.md similarity index 100% rename from 02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/M01 Kontakt anlegen.md rename to 02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/M01 Kontakt anlegen.md diff --git a/02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/M02 Organisation anlegen.md b/02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/M02 Organisation anlegen.md similarity index 100% rename from 02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/M02 Organisation anlegen.md rename to 02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/M02 Organisation anlegen.md diff --git a/02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/M03 Zusammenfuehren.md b/02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/M03 Zusammenfuehren.md similarity index 100% rename from 02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/M03 Zusammenfuehren.md rename to 02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/M03 Zusammenfuehren.md diff --git a/02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S01 Kontakte-Liste.md b/02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S01 Kontakte-Liste.md similarity index 100% rename from 02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S01 Kontakte-Liste.md rename to 02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S01 Kontakte-Liste.md diff --git a/02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S02 Organisationen-Liste.md b/02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S02 Organisationen-Liste.md similarity index 100% rename from 02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S02 Organisationen-Liste.md rename to 02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S02 Organisationen-Liste.md diff --git a/02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S03 Kontakt-Karteikarte.md b/02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S03 Kontakt-Karteikarte.md similarity index 100% rename from 02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S03 Kontakt-Karteikarte.md rename to 02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S03 Kontakt-Karteikarte.md diff --git a/02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S04 Organisations-Karteikarte.md b/02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S04 Organisations-Karteikarte.md similarity index 100% rename from 02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S04 Organisations-Karteikarte.md rename to 02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S04 Organisations-Karteikarte.md diff --git a/02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S05 Eigene Felder.md b/02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S05 Eigene Felder.md similarity index 100% rename from 02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S05 Eigene Felder.md rename to 02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S05 Eigene Felder.md diff --git a/02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S06 Tags.md b/02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S06 Tags.md similarity index 100% rename from 02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S06 Tags.md rename to 02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S06 Tags.md diff --git a/02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S07 Duplikat-Tool.md b/02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S07 Duplikat-Tool.md similarity index 100% rename from 02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S07 Duplikat-Tool.md rename to 02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S07 Duplikat-Tool.md diff --git a/02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas b/02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas similarity index 61% rename from 02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas rename to 02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas index c13b52fe..7029796a 100644 --- a/02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas +++ b/02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas @@ -5,20 +5,20 @@ {"id":"group-orgs","type":"group","x":-80,"y":460,"width":1820,"height":380,"label":"Organisationen (Reiter im selben Tab)"}, {"id":"group-anlegen","type":"group","x":1960,"y":460,"width":1120,"height":380,"label":"Anlegen (Modals)"}, {"id":"group-modell","type":"group","x":1980,"y":-520,"width":700,"height":520,"label":"Kontaktmodell (validiert 2026-07-08)"}, - {"id":"md-paket","type":"file","file":"02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.md","x":-80,"y":-440,"width":460,"height":280}, + {"id":"md-paket","type":"file","file":"02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.md","x":-80,"y":-440,"width":460,"height":280}, {"id":"note-entry","type":"text","text":"# Einstieg\n\nSidebar → Kontakte (`/contacts`).\n\nZwei Reiter, nie gemischt: **Kontakte** (ALLE Personen, auch Ansprechpartner — Organisation + Rolle in der Zeile) und **Organisationen**.","x":0,"y":0,"width":360,"height":200}, - {"id":"s01","type":"file","file":"02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S01 Kontakte-Liste.md","x":560,"y":0,"width":420,"height":200}, - {"id":"s03","type":"file","file":"02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S03 Kontakt-Karteikarte.md","x":1240,"y":0,"width":420,"height":200}, + {"id":"s01","type":"file","file":"02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S01 Kontakte-Liste.md","x":560,"y":0,"width":420,"height":200}, + {"id":"s03","type":"file","file":"02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S03 Kontakt-Karteikarte.md","x":1240,"y":0,"width":420,"height":200}, {"id":"note-orgs","type":"text","text":"# Hinweis\n\nUI-Begriff »Organisation«, nicht »Firma/Unternehmen« (öffentl. Einrichtungen!).\n\nKarteikarte zeigt die **Ansprechpartner-Liste** mit Rollen — genau EIN Hauptkontakt (markiert, umhängbar).","x":0,"y":560,"width":360,"height":200}, - {"id":"s02","type":"file","file":"02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S02 Organisationen-Liste.md","x":560,"y":560,"width":420,"height":200}, - {"id":"s04","type":"file","file":"02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S04 Organisations-Karteikarte.md","x":1240,"y":560,"width":420,"height":200}, - {"id":"m01","type":"file","file":"02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/M01 Kontakt anlegen.md","x":2000,"y":560,"width":420,"height":200}, - {"id":"m02","type":"file","file":"02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/M02 Organisation anlegen.md","x":2580,"y":560,"width":420,"height":200}, + {"id":"s02","type":"file","file":"02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S02 Organisationen-Liste.md","x":560,"y":560,"width":420,"height":200}, + {"id":"s04","type":"file","file":"02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S04 Organisations-Karteikarte.md","x":1240,"y":560,"width":420,"height":200}, + {"id":"m01","type":"file","file":"02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/M01 Kontakt anlegen.md","x":2000,"y":560,"width":420,"height":200}, + {"id":"m02","type":"file","file":"02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/M02 Organisation anlegen.md","x":2580,"y":560,"width":420,"height":200}, {"id":"note-daten","type":"text","text":"# Einstieg\n\nEinstellungen → Daten. Gilt auch für Projekte/Anfragen (Ziel-Typ umschaltbar).","x":0,"y":1120,"width":360,"height":200}, - {"id":"s05","type":"file","file":"02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S05 Eigene Felder.md","x":560,"y":1120,"width":420,"height":200}, - {"id":"s06","type":"file","file":"02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S06 Tags.md","x":1140,"y":1120,"width":420,"height":200}, - {"id":"s07","type":"file","file":"02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/S07 Duplikat-Tool.md","x":1720,"y":1120,"width":420,"height":200}, - {"id":"m03","type":"file","file":"02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/Screens/M03 Zusammenfuehren.md","x":2400,"y":1120,"width":420,"height":200}, + {"id":"s05","type":"file","file":"02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S05 Eigene Felder.md","x":560,"y":1120,"width":420,"height":200}, + {"id":"s06","type":"file","file":"02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S06 Tags.md","x":1140,"y":1120,"width":420,"height":200}, + {"id":"s07","type":"file","file":"02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S07 Duplikat-Tool.md","x":1720,"y":1120,"width":420,"height":200}, + {"id":"m03","type":"file","file":"02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/M03 Zusammenfuehren.md","x":2400,"y":1120,"width":420,"height":200}, {"id":"note-modell","type":"text","text":"# Regeln\n- **EIN Datensatz für alles:** »Firma« = Kontakt vom Typ Organisation (Unterart = Auswahlfeld)\n- **Kontaktart (Haupt/Sekundär) = Rolle der Verknüpfung**, nicht der Person\n- Privatperson: nur Name Pflicht, keine Kontaktart-Frage\n- Organisation: auch ohne Person anlegbar\n- Genau **ein Hauptkontakt** je Organisation — erste Person automatisch, umhängbar\n- Auch **Privatpersonen können Sekundärkontakte** haben (Shell-Prinzip, z. B. Ehepartner)","x":2020,"y":-440,"width":620,"height":400} ], "edges":[ diff --git a/02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.md b/02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.md similarity index 100% rename from 02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.md rename to 02 Wireframes/P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.md diff --git a/02 Wireframes/P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas b/02 Wireframes/P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas index 171fe59a..0bd6e5da 100644 --- a/02 Wireframes/P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas +++ b/02 Wireframes/P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas @@ -8,8 +8,10 @@ {"id":"c905c9f52bfb87b7","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S00 Boards-Startseite.md","x":600,"y":160,"width":400,"height":200}, {"id":"3a6e300d3286b1b6","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S01 Kanban-Board.md","x":1120,"y":160,"width":400,"height":200}, {"id":"937eb200b46fd94f","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S01a Kanban-Board Empty State.md","x":1120,"y":540,"width":400,"height":200,"color":"3"}, - {"id":"eb09c954546f78cb","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S02 Pipelines Detailansicht.md","x":2200,"y":160,"width":440,"height":220}, {"id":"f5eb8545672b7472","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/M03 Kontextmen_ Rechtsklick.md","x":80,"y":540,"width":400,"height":200,"color":"6"}, + {"id":"68ede1e6b59b1efa","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S03 Projekt-Liste.md","x":1640,"y":540,"width":400,"height":200}, + {"id":"c94a57bec72e0de9","type":"text","text":"# Subframe ist die Quelle\n\n**Abgleich:** 2026-07-28 · 23/23 Seiten per MCP inklusive JSX gelesen.\n\n**Kanten:** sichtbare Controls plus von David validierte Produktlogik. Die exportierten `onClick`-Handler sind leer; statusbasierte Development-Regeln sind deshalb nicht mit bereits verdrahteter Prototype-Navigation gleichzusetzen.\n\n**Farben:** Gelb = gebaute Variante/State · Violett = Modal/Overlay · Rot = Fehlerzustand.","x":540,"y":-520,"width":980,"height":260}, + {"id":"eb09c954546f78cb","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S02 Pipelines Detailansicht.md","x":2200,"y":160,"width":440,"height":220}, {"id":"8b42521bcff69d43","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/M01 Verloren-Dialog.md","x":2740,"y":160,"width":400,"height":200,"color":"6"}, {"id":"8836d9c048695b13","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S02 Modal Aufgabe erstellen.md","x":2720,"y":540,"width":400,"height":200,"color":"6"}, {"id":"bf1c6f41f0443345","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S02 Modal Notiz erstellen.md","x":3240,"y":540,"width":400,"height":200,"color":"6"}, @@ -18,20 +20,18 @@ {"id":"7747b3f26459f6b2","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/M04 Pipeline-Uebergabe.md","x":2200,"y":540,"width":400,"height":200,"color":"6"}, {"id":"3988fbe97300c3c1","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/M04a Pipeline-Uebergabe Dateien.md","x":2720,"y":1000,"width":400,"height":200,"color":"6"}, {"id":"24c4bb324a1ae48c","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/M04b Pipeline-Uebergabe Aufgaben.md","x":3240,"y":1000,"width":400,"height":200,"color":"6"}, - {"id":"48d4567b68b4f14e","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/M04c Pipeline-Uebergabe Termine.md","x":3760,"y":1000,"width":400,"height":200,"color":"6"}, - {"id":"68ede1e6b59b1efa","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S03 Projekt-Liste.md","x":1640,"y":540,"width":400,"height":200}, {"id":"473cd8a7cb5dfc69","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S03a Projekt-Liste Empty State.md","x":1640,"y":920,"width":400,"height":200,"color":"3"}, + {"id":"48d4567b68b4f14e","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/M04c Pipeline-Uebergabe Termine.md","x":3760,"y":1000,"width":400,"height":200,"color":"6"}, {"id":"8662a71220e50b16","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S07 Boards-Uebersicht.md","x":80,"y":1660,"width":400,"height":200}, {"id":"316632e854dbdb52","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S07 Neues Board Dialog Variante.md","x":600,"y":1660,"width":400,"height":200,"color":"6"}, {"id":"0a204ec0c85164d7","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S07a Neues Board Error State.md","x":1120,"y":1660,"width":400,"height":200,"color":"1"}, {"id":"85500a52f8b5652c","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S06 Verlust-Gruende.md","x":80,"y":2060,"width":400,"height":200}, {"id":"bfe7baf11bc6d804","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S04 Board-Einstellungen.md","x":600,"y":2060,"width":400,"height":200}, {"id":"6777d7f1acde205f","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/S05 Detail-Schablone Edit-Mode.md","x":1120,"y":2060,"width":400,"height":200}, - {"id":"12910581f662cd08","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/Modal Bestandsfeld.md","x":1640,"y":2060,"width":400,"height":200,"color":"6"}, - {"id":"c94a57bec72e0de9","type":"text","text":"# Subframe ist die Quelle\n\n**Abgleich:** 2026-07-28 · 23/23 Seiten per MCP inklusive JSX gelesen.\n\n**Kanten:** sichtbare Controls plus von David validierte Produktlogik. Die exportierten `onClick`-Handler sind leer; statusbasierte Development-Regeln sind deshalb nicht mit bereits verdrahteter Prototype-Navigation gleichzusetzen.\n\n**Farben:** Gelb = gebaute Variante/State · Violett = Modal/Overlay · Rot = Fehlerzustand.","x":540,"y":-520,"width":980,"height":260} + {"id":"12910581f662cd08","type":"file","file":"02 Wireframes/P8 Pipelines/WF-P8 Pipelines/Screens/Modal Bestandsfeld.md","x":1640,"y":2060,"width":400,"height":200,"color":"6"} ], "edges":[ - {"id":"650171f983a71e47","fromNode":"b63c44f74be06db9","fromSide":"right","toNode":"c905c9f52bfb87b7","toSide":"left","label":"Pipelines"}, + {"id":"650171f983a71e47","toFloating":false,"fromNode":"b63c44f74be06db9","fromSide":"right","toNode":"c905c9f52bfb87b7","toSide":"left","label":"Pipelines"}, {"id":"a2388dc39bf31f00","fromNode":"c905c9f52bfb87b7","fromSide":"right","toNode":"3a6e300d3286b1b6","toSide":"left","label":"Board öffnen"}, {"id":"fc6cca6282b98003","fromNode":"3a6e300d3286b1b6","fromSide":"bottom","toNode":"68ede1e6b59b1efa","toSide":"left","fromEnd":"arrow","label":"Board ↔ Liste"}, {"id":"da04822bf54a7b12","fromNode":"3a6e300d3286b1b6","fromSide":"bottom","toNode":"937eb200b46fd94f","toSide":"top","label":"leer / Filter"}, diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S01 Abnahme-Liste.md b/02 Wireframes/P9 Abnahme/WF-P9 Abnahme/Screens/S01 Abnahme-Liste.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S01 Abnahme-Liste.md rename to 02 Wireframes/P9 Abnahme/WF-P9 Abnahme/Screens/S01 Abnahme-Liste.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S02 Schritt Pruefungen.md b/02 Wireframes/P9 Abnahme/WF-P9 Abnahme/Screens/S02 Schritt Pruefungen.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S02 Schritt Pruefungen.md rename to 02 Wireframes/P9 Abnahme/WF-P9 Abnahme/Screens/S02 Schritt Pruefungen.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S03 Schritt Maengel.md b/02 Wireframes/P9 Abnahme/WF-P9 Abnahme/Screens/S03 Schritt Maengel.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S03 Schritt Maengel.md rename to 02 Wireframes/P9 Abnahme/WF-P9 Abnahme/Screens/S03 Schritt Maengel.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S04 Schritt Unterschriften.md b/02 Wireframes/P9 Abnahme/WF-P9 Abnahme/Screens/S04 Schritt Unterschriften.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S04 Schritt Unterschriften.md rename to 02 Wireframes/P9 Abnahme/WF-P9 Abnahme/Screens/S04 Schritt Unterschriften.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.canvas b/02 Wireframes/P9 Abnahme/WF-P9 Abnahme/WF-P9 Abnahme.canvas similarity index 79% rename from 02 Wireframes/P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.canvas rename to 02 Wireframes/P9 Abnahme/WF-P9 Abnahme/WF-P9 Abnahme.canvas index e1392be4..2b57f3b1 100644 --- a/02 Wireframes/P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.canvas +++ b/02 Wireframes/P9 Abnahme/WF-P9 Abnahme/WF-P9 Abnahme.canvas @@ -1,12 +1,12 @@ { "nodes":[ - {"id":"md-paket","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.md","x":-80,"y":-440,"width":460,"height":280}, + {"id":"md-paket","type":"file","file":"02 Wireframes/P9 Abnahme/WF-P9 Abnahme/WF-P9 Abnahme.md","x":-80,"y":-440,"width":460,"height":280}, {"id":"group-flow","type":"group","x":-80,"y":-100,"width":2500,"height":380,"label":"Abnahme-Workflow 📱 (mehrstufig, offline)"}, {"id":"group-notes","type":"group","x":-80,"y":460,"width":2500,"height":340,"label":"Regeln"}, - {"id":"s01","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S01 Abnahme-Liste.md","x":0,"y":0,"width":420,"height":200}, - {"id":"s02","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S02 Schritt Pruefungen.md","x":640,"y":0,"width":420,"height":200}, - {"id":"s03","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S03 Schritt Maengel.md","x":1240,"y":0,"width":420,"height":200}, - {"id":"s04","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Abnahme/Screens/S04 Schritt Unterschriften.md","x":1880,"y":0,"width":420,"height":200}, + {"id":"s01","type":"file","file":"02 Wireframes/P9 Abnahme/WF-P9 Abnahme/Screens/S01 Abnahme-Liste.md","x":0,"y":0,"width":420,"height":200}, + {"id":"s02","type":"file","file":"02 Wireframes/P9 Abnahme/WF-P9 Abnahme/Screens/S02 Schritt Pruefungen.md","x":640,"y":0,"width":420,"height":200}, + {"id":"s03","type":"file","file":"02 Wireframes/P9 Abnahme/WF-P9 Abnahme/Screens/S03 Schritt Maengel.md","x":1240,"y":0,"width":420,"height":200}, + {"id":"s04","type":"file","file":"02 Wireframes/P9 Abnahme/WF-P9 Abnahme/Screens/S04 Schritt Unterschriften.md","x":1880,"y":0,"width":420,"height":200}, {"id":"note-rules","type":"text","text":"# Regeln (nur Doku)\n\n- Einstufung bestimmt Ergebnis: kritisch = verweigert (zurück in Ausführung + PL-Meldung) · klein = mit Vorbehalt (Mängel → Aufgaben) · kosmetisch = erfolgt\n- Nach Abschluss: PDF + Auto-Mail an Kunden, danach UNVERÄNDERBAR (6 Jahre, Gesperrt-Banner)\n- Offline komplett ausfüllbar inkl. Fotos + Unterschriften; Sync bei Verbindung\n- Teil-Abnahmen möglich; letzte Voll-Abnahme → Spalten-Wechsel-Vorschlag","x":0,"y":540,"width":1100,"height":240} ], "edges":[ diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.md b/02 Wireframes/P9 Abnahme/WF-P9 Abnahme/WF-P9 Abnahme.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Abnahme/WF-P9 Abnahme.md rename to 02 Wireframes/P9 Abnahme/WF-P9 Abnahme/WF-P9 Abnahme.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/M01 Konflikt-Dialog.md b/02 Wireframes/P9 Plantafel/WF-P9 Plantafel/Screens/M01 Konflikt-Dialog.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/M01 Konflikt-Dialog.md rename to 02 Wireframes/P9 Plantafel/WF-P9 Plantafel/Screens/M01 Konflikt-Dialog.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/M02 Einsatz-Dialog.md b/02 Wireframes/P9 Plantafel/WF-P9 Plantafel/Screens/M02 Einsatz-Dialog.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/M02 Einsatz-Dialog.md rename to 02 Wireframes/P9 Plantafel/WF-P9 Plantafel/Screens/M02 Einsatz-Dialog.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/S01 Plantafel.md b/02 Wireframes/P9 Plantafel/WF-P9 Plantafel/Screens/S01 Plantafel.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/S01 Plantafel.md rename to 02 Wireframes/P9 Plantafel/WF-P9 Plantafel/Screens/S01 Plantafel.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/S02 Meine Termine.md b/02 Wireframes/P9 Plantafel/WF-P9 Plantafel/Screens/S02 Meine Termine.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/S02 Meine Termine.md rename to 02 Wireframes/P9 Plantafel/WF-P9 Plantafel/Screens/S02 Meine Termine.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.canvas b/02 Wireframes/P9 Plantafel/WF-P9 Plantafel/WF-P9 Plantafel.canvas similarity index 66% rename from 02 Wireframes/P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.canvas rename to 02 Wireframes/P9 Plantafel/WF-P9 Plantafel/WF-P9 Plantafel.canvas index 207a1a37..4b18cb8e 100644 --- a/02 Wireframes/P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.canvas +++ b/02 Wireframes/P9 Plantafel/WF-P9 Plantafel/WF-P9 Plantafel.canvas @@ -1,14 +1,14 @@ { "nodes":[ - {"id":"md-paket","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.md","x":-80,"y":-440,"width":460,"height":280}, + {"id":"md-paket","type":"file","file":"02 Wireframes/P9 Plantafel/WF-P9 Plantafel/WF-P9 Plantafel.md","x":-80,"y":-440,"width":460,"height":280}, {"id":"group-desktop","type":"group","x":-80,"y":-100,"width":1140,"height":380,"label":"Büro (Desktop, Bespoke)"}, {"id":"group-dialoge","type":"group","x":-80,"y":460,"width":1140,"height":380,"label":"Dialoge"}, {"id":"group-mobil","type":"group","x":1200,"y":-100,"width":1120,"height":380,"label":"Monteur 📱 (offline)"}, {"id":"note-entry","type":"text","text":"# Einstieg\n\nSidebar → Plantafel.\n\nKonflikte gespeist aus HR (Urlaub/krank) + Kalender-Abgleich.","x":0,"y":0,"width":360,"height":200}, - {"id":"s01","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/S01 Plantafel.md","x":560,"y":0,"width":420,"height":200}, - {"id":"m02","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/M02 Einsatz-Dialog.md","x":0,"y":560,"width":420,"height":200}, - {"id":"m01","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/M01 Konflikt-Dialog.md","x":580,"y":560,"width":420,"height":200}, - {"id":"s02","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Plantafel/Screens/S02 Meine Termine.md","x":1240,"y":0,"width":420,"height":200}, + {"id":"s01","type":"file","file":"02 Wireframes/P9 Plantafel/WF-P9 Plantafel/Screens/S01 Plantafel.md","x":560,"y":0,"width":420,"height":200}, + {"id":"m02","type":"file","file":"02 Wireframes/P9 Plantafel/WF-P9 Plantafel/Screens/M02 Einsatz-Dialog.md","x":0,"y":560,"width":420,"height":200}, + {"id":"m01","type":"file","file":"02 Wireframes/P9 Plantafel/WF-P9 Plantafel/Screens/M01 Konflikt-Dialog.md","x":580,"y":560,"width":420,"height":200}, + {"id":"s02","type":"file","file":"02 Wireframes/P9 Plantafel/WF-P9 Plantafel/Screens/S02 Meine Termine.md","x":1240,"y":0,"width":420,"height":200}, {"id":"note-mobil","type":"text","text":"# Monteur-Einstieg\n\nBottom-Nav »Heute«. Ein Frame mit Umschalter Heute ↔ Woche (validiert). Tipp auf Einsatz → Projekt-Mobil-Modus.","x":1800,"y":0,"width":460,"height":200} ], "edges":[ diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.md b/02 Wireframes/P9 Plantafel/WF-P9 Plantafel/WF-P9 Plantafel.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Plantafel/WF-P9 Plantafel.md rename to 02 Wireframes/P9 Plantafel/WF-P9 Plantafel/WF-P9 Plantafel.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/M01 Rechnung anlegen.md b/02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/M01 Rechnung anlegen.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/M01 Rechnung anlegen.md rename to 02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/M01 Rechnung anlegen.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S01 Auftrags-Reiter.md b/02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/S01 Auftrags-Reiter.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S01 Auftrags-Reiter.md rename to 02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/S01 Auftrags-Reiter.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S02 Mobil-Modus.md b/02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/S02 Mobil-Modus.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S02 Mobil-Modus.md rename to 02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/S02 Mobil-Modus.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S03 Abnahme-Formular-Vorlagen.md b/02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/S03 Abnahme-Formular-Vorlagen.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S03 Abnahme-Formular-Vorlagen.md rename to 02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/S03 Abnahme-Formular-Vorlagen.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S04 Projekt-Vorlagen.md b/02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/S04 Projekt-Vorlagen.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S04 Projekt-Vorlagen.md rename to 02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/S04 Projekt-Vorlagen.md diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas b/02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas similarity index 61% rename from 02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas rename to 02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas index b411a017..8f9088cf 100644 --- a/02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas +++ b/02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas @@ -1,14 +1,14 @@ { "nodes":[ - {"id":"md-paket","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.md","x":-80,"y":-440,"width":460,"height":280}, + {"id":"md-paket","type":"file","file":"02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.md","x":-80,"y":-440,"width":460,"height":280}, {"id":"group-akte","type":"group","x":-80,"y":-100,"width":1820,"height":380,"label":"Projekt-Akte (erweitert P8-Detailseite)"}, {"id":"group-settings","type":"group","x":-80,"y":460,"width":1820,"height":380,"label":"Rechnung + Vorlagen (Einstellungen → Arbeitsweise)"}, {"id":"note-entry","type":"text","text":"# Einstieg\n\nAuftrags-Board → Projekt öffnen. Gleiche Detailseite wie im Vertrieb (P8) — die Auftrags-Reiter kommen dazu.","x":0,"y":0,"width":360,"height":200}, - {"id":"s01","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S01 Auftrags-Reiter.md","x":560,"y":0,"width":420,"height":200}, - {"id":"s02","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S02 Mobil-Modus.md","x":1240,"y":0,"width":420,"height":200}, - {"id":"m01","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/M01 Rechnung anlegen.md","x":0,"y":560,"width":420,"height":200}, - {"id":"s03","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S03 Abnahme-Formular-Vorlagen.md","x":580,"y":560,"width":420,"height":200}, - {"id":"s04","type":"file","file":"02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/Screens/S04 Projekt-Vorlagen.md","x":1160,"y":560,"width":420,"height":200}, + {"id":"s01","type":"file","file":"02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/S01 Auftrags-Reiter.md","x":560,"y":0,"width":420,"height":200}, + {"id":"s02","type":"file","file":"02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/S02 Mobil-Modus.md","x":1240,"y":0,"width":420,"height":200}, + {"id":"m01","type":"file","file":"02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/M01 Rechnung anlegen.md","x":0,"y":560,"width":420,"height":200}, + {"id":"s03","type":"file","file":"02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/S03 Abnahme-Formular-Vorlagen.md","x":580,"y":560,"width":420,"height":200}, + {"id":"s04","type":"file","file":"02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/Screens/S04 Projekt-Vorlagen.md","x":1160,"y":560,"width":420,"height":200}, {"id":"note-rules","type":"text","text":"# Regeln (nur Doku)\n\n- Board-Auftragsoptionen (Abnahme-Pflicht je Spalte, Auto-Archiv) erweitern die Board-Einstellungen aus WF-P8 (S04)\n- Offene Mängel → roter Banner; Spaltenwechsel ohne Pflicht-Abnahme blockiert\n- Abnahmen-Reiter → Paket WF-P9 Abnahme · Termine speisen die Plantafel","x":1900,"y":0,"width":460,"height":760} ], "edges":[ diff --git a/02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.md b/02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.md similarity index 100% rename from 02 Wireframes/P9 Auftrag/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.md rename to 02 Wireframes/P9 Projekt-Akte/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.md diff --git a/02 Wireframes/Screen Paket Tracker.md b/02 Wireframes/Screen Paket Tracker.md index ce6d748d..5e143e58 100644 --- a/02 Wireframes/Screen Paket Tracker.md +++ b/02 Wireframes/Screen Paket Tracker.md @@ -24,34 +24,34 @@ Diese Datei ist der erste Ort, um zu sehen: | Flow-Paket | Ticket | Bereich | Status | Paket-MD | Canvas | Subframe | Naechster Schritt | Notiz | |---|---|---|---|---|---|---|---|---| -| WF-P2 Login und 2FA | D-P2 | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; keine bestehenden Screens geloescht/bearbeitet | -| WF-P2 Set Password | D-P2 / Auth-Core | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; keine bestehenden Screens geloescht/bearbeitet | -| WF-P2 Passwort Reset | D-P2 | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; keine bestehenden Screens geloescht/bearbeitet | -| WF-P2 Signup | D-P2 | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; Passwort im Signup verankert | -| WF-P2 Workspace Auswahl | D-P2 | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; Workspace-Auswahl fuer Admins + neuen Workspace anlegen | -| WF-P2 Profil und Sicherheit | D-P2 | Auth/Settings | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seite erstellt; Profil in Settings, Trigger zu Passwort/2FA | -| WF-P2 Change Password | D-P2 / Auth-Core | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; Reauth-Zubringer zu `WF-P2 Set Password` | -| WF-P2 2FA Verwalten | D-P2 / Auth-Core | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; eigenstaendiger 2FA-Verwalten-Flow | -| WF-P2 Admin RBAC | D-P2 | Auth/Admin | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; Permission-Bundles als Arbeitsgeruest; Gruppen/Reassign raus | -| WF-P2 Konto loeschen | D-P2 | Auth/Settings | Backlog | [MD]() | [Canvas]() | [Subframe]() | Backlog | Gesamter Account/Konto-Loeschflow geparkt; bestehende Screens nur Referenz | -| WF-P2 Workspace loeschen | D-P2 | Auth/Settings | Backlog | [MD]() | [Canvas]() | - | Backlog | Eigener Workflow; erst planen, wenn Workspace Settings gebaut/validiert sind | -| WF-P3 Benachrichtigungen | D-P3 | Querschnitt | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Drawer wird Muster fuer Topbar-Drawer | -| WF-P3 Audit Log | D-P3 | Querschnitt | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Export als Reiter; M03 = wiederverwendbares Verlauf-Muster | -| WF-P4 Aufgaben | D-P4 | Aufgaben & Dateien | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; inkl. Davids Delta: Topbar-Button + Aufgaben-Drawer | -| WF-P4 Dateien | D-P4 | Aufgaben & Dateien | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Teilen/Ordner/Versionen sichtbar als Backlog v2 | +| WF-P2 Login und 2FA | D-P2 | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; keine bestehenden Screens geloescht/bearbeitet | +| WF-P2 Set Password | D-P2 / Auth-Core | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; keine bestehenden Screens geloescht/bearbeitet | +| WF-P2 Passwort Reset | D-P2 | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; keine bestehenden Screens geloescht/bearbeitet | +| WF-P2 Signup | D-P2 | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; Passwort im Signup verankert | +| WF-P2 Workspace Auswahl | D-P2 | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; Workspace-Auswahl fuer Admins + neuen Workspace anlegen | +| WF-P2 Profil und Sicherheit | D-P2 | Auth/Settings | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seite erstellt; Profil in Settings, Trigger zu Passwort/2FA | +| WF-P2 Change Password | D-P2 / Auth-Core | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; Reauth-Zubringer zu `WF-P2 Set Password` | +| WF-P2 2FA Verwalten | D-P2 / Auth-Core | Auth | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; eigenstaendiger 2FA-Verwalten-Flow | +| WF-P2 Admin RBAC | D-P2 | Auth/Admin | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Review | Neue Seiten erstellt; Permission-Bundles als Arbeitsgeruest; Gruppen/Reassign raus | +| WF-P2 Konto loeschen | D-P2 | Auth/Settings | Backlog | [MD]() | [Canvas]() | [Subframe]() | Backlog | Gesamter Account/Konto-Loeschflow geparkt; bestehende Screens nur Referenz | +| WF-P2 Workspace loeschen | D-P2 | Auth/Settings | Backlog | [MD]() | [Canvas]() | - | Backlog | Eigener Workflow; erst planen, wenn Workspace Settings gebaut/validiert sind | +| WF-P3 Benachrichtigungen | D-P3 | Querschnitt | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Drawer wird Muster fuer Topbar-Drawer | +| WF-P3 Audit Log | D-P3 | Querschnitt | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Export als Reiter; M03 = wiederverwendbares Verlauf-Muster | +| WF-P4 Aufgaben | D-P4 | Aufgaben & Dateien | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; inkl. Davids Delta: Topbar-Button + Aufgaben-Drawer | +| WF-P4 Dateien | D-P4 | Aufgaben & Dateien | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Teilen/Ordner/Versionen sichtbar als Backlog v2 | | WF-P5 Integrationen | D-P5 | Integrationen | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Sync-Verlauf als eigene Seiten; Connection-Card = Muster fuer P14/P15/P16 | -| WF-P6 Kontakte und Organisationen | D-CRM | Kontakte | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Karteikarte = Muster-Vorlage fuer alle Detailseiten (Zweispalter + Reiter) | +| WF-P6 Kontakte und Organisationen | D-CRM | Kontakte | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Karteikarte = Muster-Vorlage fuer alle Detailseiten (Zweispalter + Reiter) | | WF-P7 Leads | D-P7 | Leads | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Lead->Projekt als grosses Modal (+Bulk); CSV-Import = Davids Delta/CR | | WF-P8 Pipelines | D-P8 + D-KANBAN | Pipelines | In Subframe | [MD]() | [Canvas]() | [Subframe]() | Development-Handoff | 23 aktuelle Seiten per MCP abgeglichen; S03/S04/M03/M04-Produktlogik am 2026-07-28 von David validiert | -| WF-P9 Projekt-Akte | D-P9 | Auftrag | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Rechnung v1 neu; Board-Auftragsoptionen erweitern WF-P8 S04 | -| WF-P9 Plantafel | D-PLAN | Auftrag | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Monteur-Modus = 1 Frame Heute<->Woche; Konflikt-Dialog wird gebaut | -| WF-P9 Abnahme | D-ABN | Auftrag | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; mehrstufiger Mobile-Workflow; immutable nach Abschluss | -| WF-P12 Flow-Editor | D-FLOW | Automationen | Fertig / Development-Handoff | [MD]() | [Canvas]() | [Subframe]() | Übergabe abgeschlossen | 39 aktuelle Seiten: 6 finale Editor-/Modal-Seiten, M03 V3 als Referenz und 32 Konfigurationsdialoge. Picker 31/31; kein eigener Screen für gefüllten Editor, Probelauf oder Schleifen-/Ratenwarnung. | -| WF-P12 Verwaltung | D-P12 | Automationen | Fertig / Development-Handoff | [MD]() | [Canvas]() | [Subframe]() | Übergabe abgeschlossen | 5 finale Seiten: S01, S02, S03, M04 Vorlagen-Katalog und S06. Beide Flows zusammen 44/44 Seiten. | -| WF-D-FORM Form Builder | D-FORM | Termine & Formulare | Review | [MD]() | [Canvas]() | [Subframe]() | David Review / Handoff | Mitarbeiterinnen-Paket eingebaut 2026-07-09; S02 Simple Builder ist empfohlener Hauptfluss; Advanced-Canvas bleibt Referenz | -| WF-P16 Kalender | D-BOOK + D-P16 | Termine | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Davids Delta: vollwertiger Kalender (anlegen + einladen inkl. freie E-Mails, Kollegen-Overlay) = CR an Dev; Sync im P5-Muster | -| WF-P16 Terminbuchung | D-BOOK + D-P16 | Termine | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Calendly-Stil; Davids Delta: Kunde kann per Mail-Link absagen/verschieben (S04) = CR an Dev; Feld-Zuordnung zum Lead im Editor | -| WF-P16 E-Signatur | D-P16 + AK-P16d | Termine | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Projekt-Kern statt Deal; SES-Eigenbau Default; Davids Delta: eigene Kunden-Signierseite S04 | +| WF-P9 Projekt-Akte | D-P9 | Auftrag | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Rechnung v1 neu; Board-Auftragsoptionen erweitern WF-P8 S04 | +| WF-P9 Plantafel | D-PLAN | Auftrag | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Monteur-Modus = 1 Frame Heute<->Woche; Konflikt-Dialog wird gebaut | +| WF-P9 Abnahme | D-ABN | Auftrag | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; mehrstufiger Mobile-Workflow; immutable nach Abschluss | +| WF-P12 Flow-Editor | D-FLOW | Automationen | Fertig / Development-Handoff | [MD]() | [Canvas]() | [Subframe]() | Übergabe abgeschlossen | 39 aktuelle Seiten: 6 finale Editor-/Modal-Seiten, M03 V3 als Referenz und 32 Konfigurationsdialoge. Picker 31/31; kein eigener Screen für gefüllten Editor, Probelauf oder Schleifen-/Ratenwarnung. | +| WF-P12 Verwaltung | D-P12 | Automationen | Fertig / Development-Handoff | [MD]() | [Canvas]() | [Subframe]() | Übergabe abgeschlossen | 5 finale Seiten: S01, S02, S03, M04 Vorlagen-Katalog und S06. Beide Flows zusammen 44/44 Seiten. | +| WF-D-FORM Form Builder | D-FORM | Termine & Formulare | Review | [MD]() | [Canvas]() | [Subframe]() | David Review / Handoff | Mitarbeiterinnen-Paket eingebaut 2026-07-09; S02 Simple Builder ist empfohlener Hauptfluss; Advanced-Canvas bleibt Referenz | +| WF-P16 Kalender | D-BOOK + D-P16 | Termine | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Davids Delta: vollwertiger Kalender (anlegen + einladen inkl. freie E-Mails, Kollegen-Overlay) = CR an Dev; Sync im P5-Muster | +| WF-P16 Terminbuchung | D-BOOK + D-P16 | Termine | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Calendly-Stil; Davids Delta: Kunde kann per Mail-Link absagen/verschieben (S04) = CR an Dev; Feld-Zuordnung zum Lead im Editor | +| WF-P16 E-Signatur | D-P16 + AK-P16d | Termine | Validiert | [MD]() | [Canvas]() | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Projekt-Kern statt Deal; SES-Eigenbau Default; Davids Delta: eigene Kunden-Signierseite S04 | | WF-P15 Team-Chat | D-CHAT + AK-P15b | Kommunikation | Fertig / Development-Handoff | [MD]() | [Canvas]() | [Subframe]() | Übergabe abgeschlossen | 24/24 aktuelle Subframe-Seiten am 2026-08-08 im finalen Team-Chat-Flow synchronisiert; UX-Validierung und Development-Handoff abgeschlossen | --- @@ -60,82 +60,82 @@ Diese Datei ist der erste Ort, um zu sehen: | ID | Screen/Zustand | Paket | Typ | Umsetzung | Status | Route/Ort | MD | Subframe | Canvas | |---|---|---|---|---|---|---|---|---|---| -| S01 | Login | WF-P2 Login und 2FA | Auth Form | Bauen | In Subframe | `/login` | [MD]() | [Subframe]() | [Canvas]() | -| S02 | Magic-Link anfordern | WF-P2 Login und 2FA | Auth Form | Bauen | In Subframe | von Login | [MD]() | [Subframe]() | [Canvas]() | -| S03 | Magic-Link gesendet | WF-P2 Login und 2FA | Auth Feedback | Bauen | In Subframe | nach Magic-Link-Anforderung | [MD]() | [Subframe]() | [Canvas]() | -| S04 | 2FA Code eingeben | WF-P2 Login und 2FA | Auth Security | Bauen | In Subframe | nach Login | [MD]() | [Subframe]() | [Canvas]() | -| V01 | Login falsche Daten | WF-P2 Login und 2FA | Auth Error | Bauen | In Subframe | Variante von S01 | [MD]() | [Subframe]() | [Canvas]() | -| V02 | Login mit mCaptcha | WF-P2 Login und 2FA | Auth Error | Bauen | In Subframe | Variante von S01 | [MD]() | [Subframe]() | [Canvas]() | -| V03 | 2FA gesperrt | WF-P2 Login und 2FA | Auth Blocker | Bauen | In Subframe | Variante von S04 | [MD]() | [Subframe]() | [Canvas]() | -| S01 | Neues Passwort setzen | WF-P2 Set Password | Auth Form | Bauen | In Subframe | Auth-Core Start | [MD]() | [Subframe]() | [Canvas]() | -| S02 | 2FA freiwillig anbieten | WF-P2 Set Password | Auth Decision | Bauen | In Subframe | nach S01, wenn 2FA freiwillig | [MD]() | [Subframe]() | [Canvas]() | -| S03 | 2FA erforderlich | WF-P2 Set Password | Auth Decision | Bauen | In Subframe | nach S01, wenn 2FA Pflicht | [MD]() | [Subframe]() | [Canvas]() | -| S04 | 2FA einrichten | WF-P2 Set Password | Auth Security | Bauen | In Subframe | nach S02/S03 | [MD]() | [Subframe]() | [Canvas]() | -| S05 | Recovery Hinweis | WF-P2 Set Password | Auth Security | Bauen | In Subframe | nach S04 | [MD]() | [Subframe]() | [Canvas]() | -| S06 | Abschluss | WF-P2 Set Password | Auth Feedback | Bauen | In Subframe | Flow-Ende | [MD]() | [Subframe]() | [Canvas]() | -| V03 | 2FA Setup gesperrt | WF-P2 Set Password | Auth Blocker | Bauen | In Subframe | Variante von S04 | [MD]() | [Subframe]() | [Canvas]() | -| S01 | Passwort Reset anfordern | WF-P2 Passwort Reset | Auth Form | Bauen | In Subframe | `/forgot-password` | [MD]() | [Subframe]() | [Canvas]() | -| S02 | Reset-Link gesendet | WF-P2 Passwort Reset | Auth Feedback | Bauen | In Subframe | nach S01 | [MD]() | [Subframe]() | [Canvas]() | -| S03 | 2FA bestaetigen | WF-P2 Passwort Reset | Auth Security | Bauen | In Subframe | nach Reset-Link, falls 2FA aktiv | [MD]() | [Subframe]() | [Canvas]() | -| V01 | Reset-Link ungueltig | WF-P2 Passwort Reset | Auth Blocker | Bauen | In Subframe | Link-Fehler | [MD]() | [Subframe]() | [Canvas]() | -| V02 | 2FA nicht verfuegbar | WF-P2 Passwort Reset | Auth Blocker | Bauen | In Subframe | Variante von S03 | [MD]() | [Subframe]() | [Canvas]() | -| M01 | Admin kontaktieren | WF-P2 Passwort Reset | Auth Modal | Bauen | In Subframe | von V02 | [MD]() | [Subframe]() | [Canvas]() | -| M02 | Wiederherstellungscode eingeben | WF-P2 Passwort Reset | Auth Modal | Bauen | In Subframe | von V02 | [MD]() | [Subframe]() | [Canvas]() | -| S01 | Signup | WF-P2 Signup | Auth Form | Bauen | In Subframe | `/signup` | [MD]() | [Subframe]() | [Canvas]() | -| S02 | Signup erfolgreich / Workspace wird vorbereitet | WF-P2 Signup | Auth Feedback | Bauen | In Subframe | nach E-Mail-Bestaetigung | [MD]() | [Subframe]() | [Canvas]() | -| S03 | E-Mail bestaetigen | WF-P2 Signup | Auth Feedback | Bauen | In Subframe | nach Signup | [MD]() | [Subframe]() | [Canvas]() | -| S01 | Workspace Auswahl | WF-P2 Workspace Auswahl | Auth List | Bauen | In Subframe | nach Login/2FA fuer Admins | [MD]() | [Subframe]() | [Canvas]() | -| S02 | Neuer Workspace anlegen | WF-P2 Workspace Auswahl | Auth Form | Bauen | In Subframe | von Workspace Auswahl / App-Shell | [MD]() | [Subframe]() | [Canvas]() | -| D05 | Neuer Workspace angelegt | WF-P2 Workspace Auswahl | Toast/Redirect | Nur dokumentieren | Validiert | nach S02 | [MD]() | - | - | -| V01 | Workspace gesperrt/suspended | WF-P2 Workspace Auswahl | Toast | Nur dokumentieren | Validiert | beim Oeffnungsversuch | [MD]() | - | - | -| S01 | Profil Settings | WF-P2 Profil und Sicherheit | Settings | Bauen | In Subframe | `/settings/profile` | [MD]() | [Subframe]() | [Canvas]() | -| S02 | Security / Sessions | WF-P2 Profil und Sicherheit | Settings/List | Spaeter | Spaeter | `/settings/security` | [MD]() | - | - | -| D01 | Passwort aendern | WF-P2 Profil und Sicherheit | Trigger | Nur dokumentieren | Validiert | von Profil Settings | [MD]() | - | [Canvas]() | -| D02 | 2FA verwalten | WF-P2 Profil und Sicherheit | Trigger | Nur dokumentieren | Validiert | von Profil Settings | [MD]() | - | [Canvas]() | -| M01 | Identitaet bestaetigen | WF-P2 Change Password | Auth Modal | Bauen | In Subframe | von Profil Settings | [MD]() | [Subframe]() | [Canvas]() | -| D03 | 2FA-Code eingeben | WF-P2 Change Password | Inline-Zustand | Nur dokumentieren | Validiert | in M01, falls 2FA aktiv/Policy | [MD]() | - | [Canvas]() | -| D01 | Neues Passwort setzen | WF-P2 Change Password | Auth-Core Verweis | Wiederverwenden | Validiert | nach Reauth | [MD]() | - | [Canvas]() | -| D02 | Passwort geaendert | WF-P2 Change Password | Auth-Core Verweis | Wiederverwenden | Validiert | Abschluss im Core | [MD]() | - | [Canvas]() | -| V01 | Zu viele Fehlversuche | WF-P2 Change Password | Auth Blocker | Bauen | In Subframe | nach falscher Reauth | [MD]() | [Subframe]() | [Canvas]() | -| M01 | 2FA verwalten | WF-P2 2FA Verwalten | Modal | Bauen | In Subframe | von Profil Settings | [MD]() | [Subframe]() | [Canvas]() | -| M02 | Device/Token hinzufuegen | WF-P2 2FA Verwalten | Modal | Bauen | In Subframe | von M01 | [MD]() | [Subframe]() | [Canvas]() | -| M03 | 2FA deaktivieren | WF-P2 2FA Verwalten | Modal | Bauen | In Subframe | von M01 | [MD]() | [Subframe]() | [Canvas]() | -| D01 | Device entfernen | WF-P2 2FA Verwalten | Row Action | Nur dokumentieren | Validiert | in M01 | [MD]() | - | [Canvas]() | -| D02 | 2FA-Code falsch/abgelaufen | WF-P2 2FA Verwalten | Inline-Zustand | Nur dokumentieren | Validiert | in M02/M03 | [MD]() | - | [Canvas]() | -| D03 | Letztes Device entfernen | WF-P2 2FA Verwalten | Inline/Confirm | Nur dokumentieren | Validiert | in M01 | [MD]() | - | [Canvas]() | -| D04 | MFA-Aenderung Benachrichtigung | WF-P2 2FA Verwalten | E-Mail/Toast | Nur dokumentieren | Validiert | nach Setup/Remove/Disable | [MD]() | - | [Canvas]() | -| S01 | Mitarbeiterliste | WF-P2 Admin RBAC | Admin List | Bauen | In Subframe | `Settings -> Mitarbeiter`, Tab `Mitarbeiter` | [MD]() | [Subframe]() | [Canvas]() | -| M01 | Mitarbeiter einladen | WF-P2 Admin RBAC | Modal | Bauen | In Subframe | von S01 | [MD]() | [Subframe]() | [Canvas]() | -| D01 | Rollen-Dropdown in Mitarbeiterliste | WF-P2 Admin RBAC | Inline-Zustand in S01 | Nur dokumentieren | Validiert | in S01, kein eigener Subframe-Screen | [MD]() | - | [Canvas]() | -| M03 | Mitarbeiter deaktivieren | WF-P2 Admin RBAC | Confirm Modal | Bauen | In Subframe | von S01 | [MD]() | [Subframe]() | [Canvas]() | -| S02 | Rollen und Berechtigungen | WF-P2 Admin RBAC | Settings Subpage | Bauen | In Subframe | `Settings -> Mitarbeiter`, Tab `Rollen und Berechtigungen` | [MD]() | [Subframe]() | [Canvas]() | -| M04A | Rolle anlegen | WF-P2 Admin RBAC | Modal Step | Bauen | In Subframe | Neue Rolle mit leerem Formular; an M04B-Stil angeglichen, ohne Duplikat-Modus | [MD]() | [Subframe]() | [Canvas]() | -| M04B | Rolle duplizieren | WF-P2 Admin RBAC | Modal Step | Bauen | In Subframe | Quellrolle kopieren; Duplikat-Modus | [MD]() | [Subframe]() | [Canvas]() | -| M02 | Rolle bearbeiten | WF-P2 Admin RBAC | Grosses Modal | Bauen | In Subframe | Finale Seite: Rolle bearbeiten | [MD]() | [Subframe]() | [Canvas]() | -| D03 | Rolle in Nutzung blockiert | WF-P2 Admin RBAC | Admin Blocker | Nur dokumentieren | In Subframe | von S02/M02 | [MD]() | [Subframe]() | [Canvas]() | -| V01 | Letzter Admin blockiert | WF-P2 Admin RBAC | Admin Blocker | Nur dokumentieren | In Subframe | von S01/M03/Rollenwechsel | [MD]() | [Subframe]() | [Canvas]() | -| S01 | Settings -> Workspaces / Loeschbereich | WF-P2 Konto loeschen | Settings | Spaeter | Backlog | spaeter `Settings -> Workspaces` | [MD]() | [Subframe]() | [Canvas]() | -| M01 | Loeschung anfragen | WF-P2 Konto loeschen | Modal | Spaeter | Backlog | von zukuenftigem Settings-Einstieg | [MD]() | [Subframe]() | [Canvas]() | -| D01 | Anfrage gesendet | WF-P2 Konto loeschen | Toast/Status | Nur dokumentieren | Backlog | nach M01 | [MD]() | - | [Canvas]() | -| D02 | Keine Berechtigung | WF-P2 Konto loeschen | Permission State | Nur dokumentieren | Backlog | in S01 | [MD]() | - | [Canvas]() | -| S01 | Glocken-Drawer | WF-P3 Benachrichtigungen | Drawer | Bauen | Validiert | Topbar, global | [MD]() | - | [Canvas]() | -| S02 | Benachrichtigungen Seite | WF-P3 Benachrichtigungen | Liste | Bauen | Validiert | `/notifications` | [MD]() | - | [Canvas]() | -| S03 | Benachrichtigungen Einstellungen | WF-P3 Benachrichtigungen | Settings | Bauen | Validiert | `/settings/notifications` | [MD]() | - | [Canvas]() | -| D01 | Bounce-Banner (E-Mails kommen nicht an) | WF-P3 Benachrichtigungen | Banner | Nur dokumentieren | Validiert | in S01/S02/S03 | [MD]() | - | - | -| S01 | Protokoll-Ansicht | WF-P3 Audit Log | Admin Liste | Bauen | Validiert | `/admin/audit` | [MD]() | - | [Canvas]() | -| S02 | Exporte (Reiter) | WF-P3 Audit Log | Admin Liste | Bauen | Validiert | `/admin/audit`, Reiter | [MD]() | - | [Canvas]() | -| M01 | Detail-Drawer (Vorher/Nachher) | WF-P3 Audit Log | Drawer | Bauen | Validiert | aus S01 | [MD]() | - | [Canvas]() | -| M02 | Export anlegen | WF-P3 Audit Log | Modal | Bauen | Validiert | aus S01/S02 | [MD]() | - | [Canvas]() | -| M03 | Objekt-Verlauf-Drawer (wiederverwendbar) | WF-P3 Audit Log | Drawer | Bauen | Validiert | in jeder Detailseite | [MD]() | - | [Canvas]() | -| S01 | Aufgaben-Liste | WF-P4 Aufgaben | Liste | Bauen | Validiert | `/tasks` | [MD]() | - | [Canvas]() | -| S02 | Aufgaben-Detail | WF-P4 Aufgaben | Detail | Bauen | Validiert | `/tasks/:id` | [MD]() | - | [Canvas]() | -| S03 | Aufgaben-Drawer (Topbar) | WF-P4 Aufgaben | Drawer | Bauen | Validiert | Topbar, global | [MD]() | - | [Canvas]() | -| M01 | Aufgabe anlegen | WF-P4 Aufgaben | Modal | Bauen | Validiert | aus S01/S03/Detailseiten | [MD]() | - | [Canvas]() | -| V01 | Eingebettete Kompakt-Variante | WF-P4 Aufgaben | Variante | Bauen | Validiert | Reiter in Detailseiten | [MD]() | - | [Canvas]() | -| S01 | Datei-Uebersicht | WF-P4 Dateien | Liste | Bauen | Validiert | `/files` | [MD]() | - | [Canvas]() | -| S02 | Upload | WF-P4 Dateien | Form/Dropzone | Bauen | Validiert | `/files/upload` | [MD]() | - | [Canvas]() | -| S03 | Datei-Detail | WF-P4 Dateien | Detail | Bauen | Validiert | `/files/:id` | [MD]() | - | [Canvas]() | -| M01 | Datei freigeben | WF-P4 Dateien | Modal | Bauen | Validiert | aus S01/S03 | [MD]() | - | [Canvas]() | +| S01 | Login | WF-P2 Login und 2FA | Auth Form | Bauen | In Subframe | `/login` | [MD]() | [Subframe]() | [Canvas]() | +| S02 | Magic-Link anfordern | WF-P2 Login und 2FA | Auth Form | Bauen | In Subframe | von Login | [MD]() | [Subframe]() | [Canvas]() | +| S03 | Magic-Link gesendet | WF-P2 Login und 2FA | Auth Feedback | Bauen | In Subframe | nach Magic-Link-Anforderung | [MD]() | [Subframe]() | [Canvas]() | +| S04 | 2FA Code eingeben | WF-P2 Login und 2FA | Auth Security | Bauen | In Subframe | nach Login | [MD]() | [Subframe]() | [Canvas]() | +| V01 | Login falsche Daten | WF-P2 Login und 2FA | Auth Error | Bauen | In Subframe | Variante von S01 | [MD]() | [Subframe]() | [Canvas]() | +| V02 | Login mit mCaptcha | WF-P2 Login und 2FA | Auth Error | Bauen | In Subframe | Variante von S01 | [MD]() | [Subframe]() | [Canvas]() | +| V03 | 2FA gesperrt | WF-P2 Login und 2FA | Auth Blocker | Bauen | In Subframe | Variante von S04 | [MD]() | [Subframe]() | [Canvas]() | +| S01 | Neues Passwort setzen | WF-P2 Set Password | Auth Form | Bauen | In Subframe | Auth-Core Start | [MD]() | [Subframe]() | [Canvas]() | +| S02 | 2FA freiwillig anbieten | WF-P2 Set Password | Auth Decision | Bauen | In Subframe | nach S01, wenn 2FA freiwillig | [MD]() | [Subframe]() | [Canvas]() | +| S03 | 2FA erforderlich | WF-P2 Set Password | Auth Decision | Bauen | In Subframe | nach S01, wenn 2FA Pflicht | [MD]() | [Subframe]() | [Canvas]() | +| S04 | 2FA einrichten | WF-P2 Set Password | Auth Security | Bauen | In Subframe | nach S02/S03 | [MD]() | [Subframe]() | [Canvas]() | +| S05 | Recovery Hinweis | WF-P2 Set Password | Auth Security | Bauen | In Subframe | nach S04 | [MD]() | [Subframe]() | [Canvas]() | +| S06 | Abschluss | WF-P2 Set Password | Auth Feedback | Bauen | In Subframe | Flow-Ende | [MD]() | [Subframe]() | [Canvas]() | +| V03 | 2FA Setup gesperrt | WF-P2 Set Password | Auth Blocker | Bauen | In Subframe | Variante von S04 | [MD]() | [Subframe]() | [Canvas]() | +| S01 | Passwort Reset anfordern | WF-P2 Passwort Reset | Auth Form | Bauen | In Subframe | `/forgot-password` | [MD]() | [Subframe]() | [Canvas]() | +| S02 | Reset-Link gesendet | WF-P2 Passwort Reset | Auth Feedback | Bauen | In Subframe | nach S01 | [MD]() | [Subframe]() | [Canvas]() | +| S03 | 2FA bestaetigen | WF-P2 Passwort Reset | Auth Security | Bauen | In Subframe | nach Reset-Link, falls 2FA aktiv | [MD]() | [Subframe]() | [Canvas]() | +| V01 | Reset-Link ungueltig | WF-P2 Passwort Reset | Auth Blocker | Bauen | In Subframe | Link-Fehler | [MD]() | [Subframe]() | [Canvas]() | +| V02 | 2FA nicht verfuegbar | WF-P2 Passwort Reset | Auth Blocker | Bauen | In Subframe | Variante von S03 | [MD]() | [Subframe]() | [Canvas]() | +| M01 | Admin kontaktieren | WF-P2 Passwort Reset | Auth Modal | Bauen | In Subframe | von V02 | [MD]() | [Subframe]() | [Canvas]() | +| M02 | Wiederherstellungscode eingeben | WF-P2 Passwort Reset | Auth Modal | Bauen | In Subframe | von V02 | [MD]() | [Subframe]() | [Canvas]() | +| S01 | Signup | WF-P2 Signup | Auth Form | Bauen | In Subframe | `/signup` | [MD]() | [Subframe]() | [Canvas]() | +| S02 | Signup erfolgreich / Workspace wird vorbereitet | WF-P2 Signup | Auth Feedback | Bauen | In Subframe | nach E-Mail-Bestaetigung | [MD]() | [Subframe]() | [Canvas]() | +| S03 | E-Mail bestaetigen | WF-P2 Signup | Auth Feedback | Bauen | In Subframe | nach Signup | [MD]() | [Subframe]() | [Canvas]() | +| S01 | Workspace Auswahl | WF-P2 Workspace Auswahl | Auth List | Bauen | In Subframe | nach Login/2FA fuer Admins | [MD]() | [Subframe]() | [Canvas]() | +| S02 | Neuer Workspace anlegen | WF-P2 Workspace Auswahl | Auth Form | Bauen | In Subframe | von Workspace Auswahl / App-Shell | [MD]() | [Subframe]() | [Canvas]() | +| D05 | Neuer Workspace angelegt | WF-P2 Workspace Auswahl | Toast/Redirect | Nur dokumentieren | Validiert | nach S02 | [MD]() | - | - | +| V01 | Workspace gesperrt/suspended | WF-P2 Workspace Auswahl | Toast | Nur dokumentieren | Validiert | beim Oeffnungsversuch | [MD]() | - | - | +| S01 | Profil Settings | WF-P2 Profil und Sicherheit | Settings | Bauen | In Subframe | `/settings/profile` | [MD]() | [Subframe]() | [Canvas]() | +| S02 | Security / Sessions | WF-P2 Profil und Sicherheit | Settings/List | Spaeter | Spaeter | `/settings/security` | [MD]() | - | - | +| D01 | Passwort aendern | WF-P2 Profil und Sicherheit | Trigger | Nur dokumentieren | Validiert | von Profil Settings | [MD]() | - | [Canvas]() | +| D02 | 2FA verwalten | WF-P2 Profil und Sicherheit | Trigger | Nur dokumentieren | Validiert | von Profil Settings | [MD]() | - | [Canvas]() | +| M01 | Identitaet bestaetigen | WF-P2 Change Password | Auth Modal | Bauen | In Subframe | von Profil Settings | [MD]() | [Subframe]() | [Canvas]() | +| D03 | 2FA-Code eingeben | WF-P2 Change Password | Inline-Zustand | Nur dokumentieren | Validiert | in M01, falls 2FA aktiv/Policy | [MD]() | - | [Canvas]() | +| D01 | Neues Passwort setzen | WF-P2 Change Password | Auth-Core Verweis | Wiederverwenden | Validiert | nach Reauth | [MD]() | - | [Canvas]() | +| D02 | Passwort geaendert | WF-P2 Change Password | Auth-Core Verweis | Wiederverwenden | Validiert | Abschluss im Core | [MD]() | - | [Canvas]() | +| V01 | Zu viele Fehlversuche | WF-P2 Change Password | Auth Blocker | Bauen | In Subframe | nach falscher Reauth | [MD]() | [Subframe]() | [Canvas]() | +| M01 | 2FA verwalten | WF-P2 2FA Verwalten | Modal | Bauen | In Subframe | von Profil Settings | [MD]() | [Subframe]() | [Canvas]() | +| M02 | Device/Token hinzufuegen | WF-P2 2FA Verwalten | Modal | Bauen | In Subframe | von M01 | [MD]() | [Subframe]() | [Canvas]() | +| M03 | 2FA deaktivieren | WF-P2 2FA Verwalten | Modal | Bauen | In Subframe | von M01 | [MD]() | [Subframe]() | [Canvas]() | +| D01 | Device entfernen | WF-P2 2FA Verwalten | Row Action | Nur dokumentieren | Validiert | in M01 | [MD]() | - | [Canvas]() | +| D02 | 2FA-Code falsch/abgelaufen | WF-P2 2FA Verwalten | Inline-Zustand | Nur dokumentieren | Validiert | in M02/M03 | [MD]() | - | [Canvas]() | +| D03 | Letztes Device entfernen | WF-P2 2FA Verwalten | Inline/Confirm | Nur dokumentieren | Validiert | in M01 | [MD]() | - | [Canvas]() | +| D04 | MFA-Aenderung Benachrichtigung | WF-P2 2FA Verwalten | E-Mail/Toast | Nur dokumentieren | Validiert | nach Setup/Remove/Disable | [MD]() | - | [Canvas]() | +| S01 | Mitarbeiterliste | WF-P2 Admin RBAC | Admin List | Bauen | In Subframe | `Settings -> Mitarbeiter`, Tab `Mitarbeiter` | [MD]() | [Subframe]() | [Canvas]() | +| M01 | Mitarbeiter einladen | WF-P2 Admin RBAC | Modal | Bauen | In Subframe | von S01 | [MD]() | [Subframe]() | [Canvas]() | +| D01 | Rollen-Dropdown in Mitarbeiterliste | WF-P2 Admin RBAC | Inline-Zustand in S01 | Nur dokumentieren | Validiert | in S01, kein eigener Subframe-Screen | [MD]() | - | [Canvas]() | +| M03 | Mitarbeiter deaktivieren | WF-P2 Admin RBAC | Confirm Modal | Bauen | In Subframe | von S01 | [MD]() | [Subframe]() | [Canvas]() | +| S02 | Rollen und Berechtigungen | WF-P2 Admin RBAC | Settings Subpage | Bauen | In Subframe | `Settings -> Mitarbeiter`, Tab `Rollen und Berechtigungen` | [MD]() | [Subframe]() | [Canvas]() | +| M04A | Rolle anlegen | WF-P2 Admin RBAC | Modal Step | Bauen | In Subframe | Neue Rolle mit leerem Formular; an M04B-Stil angeglichen, ohne Duplikat-Modus | [MD]() | [Subframe]() | [Canvas]() | +| M04B | Rolle duplizieren | WF-P2 Admin RBAC | Modal Step | Bauen | In Subframe | Quellrolle kopieren; Duplikat-Modus | [MD]() | [Subframe]() | [Canvas]() | +| M02 | Rolle bearbeiten | WF-P2 Admin RBAC | Grosses Modal | Bauen | In Subframe | Finale Seite: Rolle bearbeiten | [MD]() | [Subframe]() | [Canvas]() | +| D03 | Rolle in Nutzung blockiert | WF-P2 Admin RBAC | Admin Blocker | Nur dokumentieren | In Subframe | von S02/M02 | [MD]() | [Subframe]() | [Canvas]() | +| V01 | Letzter Admin blockiert | WF-P2 Admin RBAC | Admin Blocker | Nur dokumentieren | In Subframe | von S01/M03/Rollenwechsel | [MD]() | [Subframe]() | [Canvas]() | +| S01 | Settings -> Workspaces / Loeschbereich | WF-P2 Konto loeschen | Settings | Spaeter | Backlog | spaeter `Settings -> Workspaces` | [MD]() | [Subframe]() | [Canvas]() | +| M01 | Loeschung anfragen | WF-P2 Konto loeschen | Modal | Spaeter | Backlog | von zukuenftigem Settings-Einstieg | [MD]() | [Subframe]() | [Canvas]() | +| D01 | Anfrage gesendet | WF-P2 Konto loeschen | Toast/Status | Nur dokumentieren | Backlog | nach M01 | [MD]() | - | [Canvas]() | +| D02 | Keine Berechtigung | WF-P2 Konto loeschen | Permission State | Nur dokumentieren | Backlog | in S01 | [MD]() | - | [Canvas]() | +| S01 | Glocken-Drawer | WF-P3 Benachrichtigungen | Drawer | Bauen | Validiert | Topbar, global | [MD]() | - | [Canvas]() | +| S02 | Benachrichtigungen Seite | WF-P3 Benachrichtigungen | Liste | Bauen | Validiert | `/notifications` | [MD]() | - | [Canvas]() | +| S03 | Benachrichtigungen Einstellungen | WF-P3 Benachrichtigungen | Settings | Bauen | Validiert | `/settings/notifications` | [MD]() | - | [Canvas]() | +| D01 | Bounce-Banner (E-Mails kommen nicht an) | WF-P3 Benachrichtigungen | Banner | Nur dokumentieren | Validiert | in S01/S02/S03 | [MD]() | - | - | +| S01 | Protokoll-Ansicht | WF-P3 Audit Log | Admin Liste | Bauen | Validiert | `/admin/audit` | [MD]() | - | [Canvas]() | +| S02 | Exporte (Reiter) | WF-P3 Audit Log | Admin Liste | Bauen | Validiert | `/admin/audit`, Reiter | [MD]() | - | [Canvas]() | +| M01 | Detail-Drawer (Vorher/Nachher) | WF-P3 Audit Log | Drawer | Bauen | Validiert | aus S01 | [MD]() | - | [Canvas]() | +| M02 | Export anlegen | WF-P3 Audit Log | Modal | Bauen | Validiert | aus S01/S02 | [MD]() | - | [Canvas]() | +| M03 | Objekt-Verlauf-Drawer (wiederverwendbar) | WF-P3 Audit Log | Drawer | Bauen | Validiert | in jeder Detailseite | [MD]() | - | [Canvas]() | +| S01 | Aufgaben-Liste | WF-P4 Aufgaben | Liste | Bauen | Validiert | `/tasks` | [MD]() | - | [Canvas]() | +| S02 | Aufgaben-Detail | WF-P4 Aufgaben | Detail | Bauen | Validiert | `/tasks/:id` | [MD]() | - | [Canvas]() | +| S03 | Aufgaben-Drawer (Topbar) | WF-P4 Aufgaben | Drawer | Bauen | Validiert | Topbar, global | [MD]() | - | [Canvas]() | +| M01 | Aufgabe anlegen | WF-P4 Aufgaben | Modal | Bauen | Validiert | aus S01/S03/Detailseiten | [MD]() | - | [Canvas]() | +| V01 | Eingebettete Kompakt-Variante | WF-P4 Aufgaben | Variante | Bauen | Validiert | Reiter in Detailseiten | [MD]() | - | [Canvas]() | +| S01 | Datei-Uebersicht | WF-P4 Dateien | Liste | Bauen | Validiert | `/files` | [MD]() | - | [Canvas]() | +| S02 | Upload | WF-P4 Dateien | Form/Dropzone | Bauen | Validiert | `/files/upload` | [MD]() | - | [Canvas]() | +| S03 | Datei-Detail | WF-P4 Dateien | Detail | Bauen | Validiert | `/files/:id` | [MD]() | - | [Canvas]() | +| M01 | Datei freigeben | WF-P4 Dateien | Modal | Bauen | Validiert | aus S01/S03 | [MD]() | - | [Canvas]() | | S01 | App-Katalog | WF-P5 Integrationen | Katalog | Bauen | Validiert | `/admin/integrations` | [MD]() | - | [Canvas]() | | S02 | App-Seite (Verbindungs-Verwaltung) | WF-P5 Integrationen | Verwaltung | Bauen | Validiert | `/admin/integrations/:app` | [MD]() | - | [Canvas]() | | S03 | Sync-Verlauf | WF-P5 Integrationen | Liste | Bauen | Validiert | `.../syncs` | [MD]() | - | [Canvas]() | @@ -143,17 +143,17 @@ Diese Datei ist der erste Ort, um zu sehen: | M01 | Assistent OAuth | WF-P5 Integrationen | Modal/Wizard | Bauen | Validiert | aus S02 | [MD]() | - | [Canvas]() | | M02 | Assistent API-Schluessel | WF-P5 Integrationen | Modal/Wizard | Bauen | Validiert | aus S02 | [MD]() | - | [Canvas]() | | M03 | Trennen-Bestaetigung | WF-P5 Integrationen | Modal | Bauen | Validiert | aus S02 | [MD]() | - | [Canvas]() | -| S01 | Kontakte-Liste | WF-P6 Kontakte und Organisationen | Liste | Bauen | Validiert | `/contacts` | [MD]() | - | [Canvas]() | -| S02 | Organisationen-Liste | WF-P6 Kontakte und Organisationen | Liste | Bauen | Validiert | `/contacts/companies` | [MD]() | - | [Canvas]() | -| S03 | Kontakt-Karteikarte (Muster-Vorlage) | WF-P6 Kontakte und Organisationen | Detail | Bauen | Validiert | `/contacts/:id` | [MD]() | - | [Canvas]() | -| S04 | Organisations-Karteikarte | WF-P6 Kontakte und Organisationen | Detail | Bauen | Validiert | `/contacts/companies/:id` | [MD]() | - | [Canvas]() | -| M01 | Kontakt anlegen | WF-P6 Kontakte und Organisationen | Modal | Bauen | Validiert | aus S01 + ueberall | [MD]() | - | [Canvas]() | -| M02 | Organisation anlegen | WF-P6 Kontakte und Organisationen | Modal | Bauen | Validiert | aus S02 | [MD]() | - | [Canvas]() | -| S05 | Eigene Felder | WF-P6 Kontakte und Organisationen | Settings-Liste | Bauen | Validiert | `/admin/custom-fields` | [MD]() | - | [Canvas]() | -| S06 | Tags | WF-P6 Kontakte und Organisationen | Settings-Liste | Bauen | Validiert | `/admin/tags` | [MD]() | - | [Canvas]() | -| S07 | Duplikat-Tool | WF-P6 Kontakte und Organisationen | Settings-Liste | Bauen | Validiert | `/admin/duplicates` | [MD]() | - | [Canvas]() | -| M03 | Zusammenfuehren (Seite an Seite) | WF-P6 Kontakte und Organisationen | Modal (gross) | Bauen | Validiert | aus S07 | [MD]() | - | [Canvas]() | -| D01 | Inline-Anlegen in Liste (Notion-Stil) | WF-P6 Kontakte und Organisationen | Idee | Spaeter | Dokumentiert | in S01 | [MD]() | - | - | +| S01 | Kontakte-Liste | WF-P6 Kontakte und Organisationen | Liste | Bauen | Validiert | `/contacts` | [MD]() | - | [Canvas]() | +| S02 | Organisationen-Liste | WF-P6 Kontakte und Organisationen | Liste | Bauen | Validiert | `/contacts/companies` | [MD]() | - | [Canvas]() | +| S03 | Kontakt-Karteikarte (Muster-Vorlage) | WF-P6 Kontakte und Organisationen | Detail | Bauen | Validiert | `/contacts/:id` | [MD]() | - | [Canvas]() | +| S04 | Organisations-Karteikarte | WF-P6 Kontakte und Organisationen | Detail | Bauen | Validiert | `/contacts/companies/:id` | [MD]() | - | [Canvas]() | +| M01 | Kontakt anlegen | WF-P6 Kontakte und Organisationen | Modal | Bauen | Validiert | aus S01 + ueberall | [MD]() | - | [Canvas]() | +| M02 | Organisation anlegen | WF-P6 Kontakte und Organisationen | Modal | Bauen | Validiert | aus S02 | [MD]() | - | [Canvas]() | +| S05 | Eigene Felder | WF-P6 Kontakte und Organisationen | Settings-Liste | Bauen | Validiert | `/admin/custom-fields` | [MD]() | - | [Canvas]() | +| S06 | Tags | WF-P6 Kontakte und Organisationen | Settings-Liste | Bauen | Validiert | `/admin/tags` | [MD]() | - | [Canvas]() | +| S07 | Duplikat-Tool | WF-P6 Kontakte und Organisationen | Settings-Liste | Bauen | Validiert | `/admin/duplicates` | [MD]() | - | [Canvas]() | +| M03 | Zusammenfuehren (Seite an Seite) | WF-P6 Kontakte und Organisationen | Modal (gross) | Bauen | Validiert | aus S07 | [MD]() | - | [Canvas]() | +| D01 | Inline-Anlegen in Liste (Notion-Stil) | WF-P6 Kontakte und Organisationen | Idee | Spaeter | Dokumentiert | in S01 | [MD]() | - | - | | S01 | Lead-Inbox (Triage) | WF-P7 Leads | Liste | Bauen | Validiert | `/leads` | [MD]() | - | [Canvas]() | | S02 | Lead-Detail | WF-P7 Leads | Detail | Bauen | Validiert | `/leads/:id` | [MD]() | - | [Canvas]() | | M01 | Lead zu Projekt (Kern-Moment) | WF-P7 Leads | Modal (gross, +Bulk) | Bauen | Validiert | aus S01/S02 | [MD]() | - | [Canvas]() | @@ -185,115 +185,115 @@ Diese Datei ist der erste Ort, um zu sehen: | M04b | Pipeline-Uebergabe Aufgaben | WF-P8 Pipelines | Modal-Variante | Bauen | In Subframe | Aufgaben-Tab von M04 | [MD]() | [Subframe]() | [Canvas]() | | M04c | Pipeline-Uebergabe Termine | WF-P8 Pipelines | Modal-Variante | Bauen | In Subframe | Termine-Tab von M04 | [MD]() | [Subframe]() | [Canvas]() | | M05 | Modal Bestandsfeld | WF-P8 Pipelines | S05-Dialogzustand | Bauen | In Subframe | aus S05 | [MD]() | [Subframe]() | [Canvas]() | -| S01 | Auftrags-Reiter am Projekt | WF-P9 Projekt-Akte | Detail-Erweiterung | Bauen | Validiert | `/projects/:id` | [MD]() | - | [Canvas]() | -| S02 | Mobil-Modus | WF-P9 Projekt-Akte | Variante 📱 | Bauen | Validiert | `/projects/:id` (Handy) | [MD]() | - | [Canvas]() | -| M01 | Rechnung anlegen | WF-P9 Projekt-Akte | Modal | Bauen | Validiert | Rechnungen-Reiter | [MD]() | - | [Canvas]() | -| S03 | Abnahme-Formular-Vorlagen | WF-P9 Projekt-Akte | Settings | Bauen | Validiert | `/admin/projects/acceptance-forms` | [MD]() | - | [Canvas]() | -| S04 | Projekt-Vorlagen | WF-P9 Projekt-Akte | Settings-Liste | Bauen | Validiert | `/admin/projects/templates` | [MD]() | - | [Canvas]() | -| S01 | Plantafel (Desktop-Raster) | WF-P9 Plantafel | BESPOKE Grid | Bauen | Validiert | `/projects/plantafel` | [MD]() | - | [Canvas]() | -| S02 | Meine Termine (Heute<->Woche) | WF-P9 Plantafel | BESPOKE-Mobile offline | Bauen | Validiert | Bottom-Nav »Heute« | [MD]() | - | [Canvas]() | -| M01 | Konflikt-Dialog (Trotzdem zuweisen?) | WF-P9 Plantafel | Modal | Bauen | Validiert | aus S01 | [MD]() | - | [Canvas]() | -| M02 | Einsatz-Dialog | WF-P9 Plantafel | Modal/Panel | Bauen | Validiert | Slot-Klick in S01 | [MD]() | - | [Canvas]() | -| S01 | Abnahme-Liste | WF-P9 Abnahme | Liste | Bauen | Validiert | `/projects/:id/acceptance` | [MD]() | - | [Canvas]() | -| S02 | Abnahme Schritt 1: Pruefungen | WF-P9 Abnahme | BESPOKE-Mobile | Bauen | Validiert | `/projects/:id/acceptance/new` | [MD]() | - | [Canvas]() | -| S03 | Abnahme Schritt 2: Maengel | WF-P9 Abnahme | BESPOKE-Mobile | Bauen | Validiert | Workflow | [MD]() | - | [Canvas]() | -| S04 | Abnahme Schritt 3: Unterschriften | WF-P9 Abnahme | BESPOKE-Mobile | Bauen | Validiert | Workflow | [MD]() | - | [Canvas]() | -| S01 | Flow-Editor (Vollbild-Canvas) | WF-P12 Flow-Editor | BESPOKE | Bauen | Fertig / Development-Handoff | `/automations/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | -| S01b | Baustein-Picker (Drawer) | WF-P12 Flow-Editor | Drawer | Bauen | Fertig / 31 von 31 synchron | aus S01 | [MD]() | [Subframe]() | [Canvas]() | -| S01c | Canvas-Kontextmenue | WF-P12 Flow-Editor | Kontextmenue | Bauen | Fertig / Development-Handoff | Rechtsklick in S01 | [MD]() | [Subframe]() | [Canvas]() | -| M03 | Start-Auswahl (leer/Vorlage) | WF-P12 Flow-Editor | Modal | Bauen | Final; V3 bleibt Referenz | + Neue Automation | [MD]() | [Final]() · [Referenz V3]() | [Canvas]() | -| M04 | Automation aktivieren | WF-P12 Flow-Editor | Bestätigungsmodal | Bauen | Fertig / Development-Handoff | Aktiv-Schalter in S01 | [MD]() | [Subframe]() | [Canvas]() | -| M05 | Automation pausieren | WF-P12 Flow-Editor | Bestätigungsmodal | Bauen | Fertig / Development-Handoff | Aktiv-Schalter in S01 | [MD]() | [Subframe]() | [Canvas]() | -| S01 | Automation-Liste | WF-P12 Verwaltung | Liste | Bauen | Fertig / Development-Handoff | `/automations` | [MD]() | [Subframe]() | [Canvas]() | -| S02 | Lauf-Liste | WF-P12 Verwaltung | Liste | Bauen | Fertig / Development-Handoff | `/automations/:id/executions` | [MD]() | [Subframe]() | [Canvas]() | -| S03 | Lauf-Detail (Accordion + Fehlerhilfe) | WF-P12 Verwaltung | Detail | Bauen | Fertig / Development-Handoff | `/automations/:id/executions/:id` | [MD]() | [Subframe]() | [Canvas]() | -| M04 | Vorlagen-Katalog | WF-P12 Verwaltung | Modal + Karten-Liste | Bauen | Fertig / Development-Handoff | Button „Vorlagen“ in S01 | [MD]() | [Subframe]() | [Canvas]() | -| S05 | Baustein-Konfigurationsdialoge (32 Seiten) | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig; vollständig in Obsidian gespiegelt | Dialog über dem Editor | [MD]() | [Flow]() | [Canvas]() | -| S05a | Baustein-Katalog (32 Seiten/Links) | WF-P12 Verwaltung | Screen-Index | Dokumentieren | Finale Detailwahrheit mit bekannten Hinweisen | — | [MD]() | [Flow]() | [Canvas]() | -| S06 | Zugangsdaten | WF-P12 Verwaltung | Liste / Verwaltung | Bauen | Fertig / Development-Handoff | `/automations/credentials` | [MD]() | [Subframe]() | [Canvas]() | -| K-T1 | Neuer Kontakt – Mit Beispiel | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T1 | Kontakt geändert | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T1 | Neue Anfrage | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T1 | Lead qualifiziert | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T1 | Projekt gewonnen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T1 | Status gewechselt | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T1 | Projekt angelegt | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T2 | Frist oder Termin | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt; Live-Seitenname weicht ab | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T2 | Termin gebucht | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T2 | Termin storniert | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T2 | Ereignis erstellt | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T2 | Zeitplan | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T2 | Zeitplan monatlich | WF-P12 Verwaltung | A5 Dialogzustand | Handoff | Fertig / gespiegelt | Zustand von Zeitplan | [MD]() | [Subframe]() | [Canvas]() | -| K-T3 | E-Mail eingegangen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T3 | E-Mail unzustellbar | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T3 | Formular abgeschickt | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-T3 | Webhook empfangen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-A1 | Datensatz ändern | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt; Live-Seitenname weicht ab | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-A1 | Notiz anlegen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-A2 | Benachrichtigung senden | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-A2 | E-Mail senden | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-A3 | Aufgabe anlegen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-A3 | Aufgabe zuweisen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-L1 | Wenn-Dann | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-L1 | Und | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-L1 | Oder | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-L1 | Switch | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-L1 | Filter | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt; Breite als Hinweis | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-L2 | Warten | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-L2 | Schleife | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-L2 | Wert setzen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| K-I1 | HTTP-Anfrage | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | -| S00 | Formulare verwalten | WF-D-FORM Form Builder | Formular-Zentrale | Bauen | Subframe Draft / Review offen | `/forms` | [MD]() | [Subframe]() | [Canvas]() | -| E01 | S00 Keine Formulare | WF-D-FORM Form Builder | Empty State | Bauen | Subframe Draft / Review offen | `/forms` | [MD]() | [Subframe]() | [Canvas]() | -| E02 | S00 Keine Treffer | WF-D-FORM Form Builder | Empty State | Bauen | Subframe Draft / Review offen | `/forms` | [MD]() | [Subframe]() | [Canvas]() | -| S01 | Formularart auswaehlen | WF-D-FORM Form Builder | Einstieg / Auswahl | Alternative bauen | Subframe Draft / Review offen | `/forms/new` | [MD]() | [Subframe]() | [Canvas]() | -| S02 | Einfacher Fragen Editor | WF-D-FORM Form Builder | Simple Builder Alternative | Alternative bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | -| S02L | Lead Felder zuweisen | WF-D-FORM Form Builder | S02-Zustand / Lead Editor | Subframe Draft | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | -| E05 | S02 Lead Zuweisung pruefen | WF-D-FORM Form Builder | Lead Mapping Error State | Subframe Draft | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | -| S03 | Formular Design | WF-D-FORM Form Builder | Builder Tab | Bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | -| S04 | Oeffentliches Formular | WF-D-FORM Form Builder | Public Form | Bauen | Subframe Draft / Review offen | `/f/{tenant}/{slug}` | [MD]() | [Subframe]() | [Canvas]() | -| V01 | Public Erfolg oder Redirect | WF-D-FORM Form Builder | Public Feedback | Bauen | Subframe Draft / Review offen | `/f/:slug` | [MD]() | [Subframe]() | [Canvas]() | -| V02 | Public Formular nicht verfuegbar | WF-D-FORM Form Builder | Public Blocker | Bauen | Subframe Draft / Review offen | `/f/:slug` | [MD]() | [Subframe]() | [Canvas]() | -| V03 | Public Captcha oder Submit Fehler | WF-D-FORM Form Builder | Public Error | Bauen | Subframe Draft / Review offen | `/f/:slug` | [MD]() | [Subframe]() | [Canvas]() | -| S05 | Antworten Tabelle | WF-D-FORM Form Builder | Builder Tab | Bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | -| E03 | S05 Keine Antworten | WF-D-FORM Form Builder | Empty State | Bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | -| E04 | S05 Export Fehler | WF-D-FORM Form Builder | Error State | Bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | -| S01C | Website Formular Editor | WF-D-FORM Form Builder | Simple Builder Beispiel | Alternative bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | -| S01D | Umfrage Editor | WF-D-FORM Form Builder | Simple Builder Beispiel | Alternative bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | -| S01E | Internes Formular Editor | WF-D-FORM Form Builder | Simple Builder Beispiel | Alternative bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | -| D01 | Sharing Panel URL QR iFrame | WF-D-FORM Form Builder | Detailnotiz | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | Public-Link/Teilen-Kontext, kein eigener Screen | [MD]() | - | - | -| D02 | Post-Submit Actions | WF-D-FORM Form Builder | Detailnotiz | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | Nach-Absenden-Kontext, kein eigener Screen | [MD]() | - | - | -| D03 | Conditional Logic Editor | WF-D-FORM Form Builder | Detailnotiz | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | einfache Bedingungen, kein eigener Screen | [MD]() | - | - | -| D06 | Feldkarten Menue | WF-D-FORM Form Builder | Detailnotiz | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | Fragekarten-Menue, kein eigener Screen | [MD]() | - | - | -| D10 | Builder Interaktionsfaelle | WF-D-FORM Form Builder | Case-Matrix | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | Klick-/Edge-Cases, kein eigener Screen | [MD]() | - | - | -| M01 | Feld loeschen Confirm | WF-D-FORM Form Builder | Confirm Modal | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | von Fragekarte oder Inspector | [MD]() | - | - | -| M02 | Unpublish Confirm | WF-D-FORM Form Builder | Confirm Modal | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | von Publish/Public-Link-Kontext | [MD]() | - | - | -| M03 | Archive Confirm | WF-D-FORM Form Builder | Confirm Modal | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | von More-Menue | [MD]() | - | - | -| M04 | Unsaved Changes Confirm | WF-D-FORM Form Builder | Confirm Modal / Browser Guard | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | beim Verlassen mit Dirty State | [MD]() | - | - | -| S01 | Kalender (Monat/Woche, Kollegen-Overlay) | WF-P16 Kalender | BESPOKE Grid | Bauen | Validiert | `/calendar` | [MD]() | - | [Canvas]() | -| M01 | Termin anlegen/bearbeiten | WF-P16 Kalender | Modal | Bauen | Validiert | Slot-Klick / + Termin in S01 | [MD]() | - | [Canvas]() | -| M02 | Termin-Detail (Popover) | WF-P16 Kalender | Popover | Bauen | Validiert | Termin-Klick in S01 | [MD]() | - | [Canvas]() | -| S02 | Kalender-Einstellungen & Sync | WF-P16 Kalender | Settings (A6) | Bauen | Validiert | `/calendar/settings` | [MD]() | - | [Canvas]() | -| D01 | OAuth-Assistent (aus WF-P5 M01) | WF-P16 Kalender | Wizard | Wiederverwenden | Validiert | aus S02 | [MD]() | - | - | -| D02 | Trennen-Bestaetigung + Extern-Wahl (aus WF-P5 M03) | WF-P16 Kalender | Modal | Wiederverwenden | Validiert | aus S02 | [MD]() | - | - | -| S01 | Termin waehlen (Slot-Picker) 🌐 | WF-P16 Terminbuchung | BESPOKE-Public | Bauen | Validiert | `/b/{firma}/{slug}` | [MD]() | - | [Canvas]() | -| S02 | Fragen (Kunden-Formular) 🌐 | WF-P16 Terminbuchung | BESPOKE-Public | Bauen | Validiert | Schritt 2 | [MD]() | - | [Canvas]() | -| S03 | Bestaetigung (+ .ics) 🌐 | WF-P16 Terminbuchung | BESPOKE-Public | Bauen | Validiert | Schritt 3 | [MD]() | - | [Canvas]() | -| V01 | Termin waehlen — Handy 🌐📱 | WF-P16 Terminbuchung | BESPOKE-Public Mobile | Bauen | Validiert | Variante von S01 | [MD]() | - | [Canvas]() | -| S04 | Absagen/Verschieben per Link 🌐 | WF-P16 Terminbuchung | BESPOKE-Public | Bauen | Validiert (Delta) | Link aus Bestaetigungs-Mail | [MD]() | - | [Canvas]() | -| S05 | Buchungen-Liste | WF-P16 Terminbuchung | Liste | Bauen | Validiert | `/bookings` | [MD]() | - | [Canvas]() | -| S06 | Buchungs-Detail (Karteikarte) | WF-P16 Terminbuchung | Detail | Bauen | Validiert | `/bookings/:id` | [MD]() | - | [Canvas]() | -| S07 | Buchungsseiten-Liste | WF-P16 Terminbuchung | Liste | Bauen | Validiert | `/bookings/pages` | [MD]() | - | [Canvas]() | -| S08 | Buchungsseiten-Editor | WF-P16 Terminbuchung | Settings/Form | Bauen | Validiert | `/bookings/pages/:id` + `/new` | [MD]() | - | [Canvas]() | -| S09 | Verfuegbarkeit (Wochen-Zeiten + Ausnahmen) | WF-P16 Terminbuchung | Settings/Form | Bauen | Validiert | `/availability` | [MD]() | - | [Canvas]() | -| M01 | Verschieben (interner Slot-Picker) | WF-P16 Terminbuchung | Modal | Bauen | Validiert | aus S06 | [MD]() | - | [Canvas]() | -| M02 | Stornieren (Grund + Auto-Mail) | WF-P16 Terminbuchung | Modal | Bauen | Validiert | aus S05/S06 (auch Bulk) | [MD]() | - | [Canvas]() | -| S01 | Signaturen im Projekt | WF-P16 E-Signatur | Projekt-Sektion | Bauen | Validiert | Projekt-Detail | [MD]() | - | [Canvas]() | -| S02 | Signatur-Wizard | WF-P16 E-Signatur | Wizard | Bauen | Validiert | aus Projekt-Detail/S01 | [MD]() | - | [Canvas]() | -| S03 | Signatur-Detail & Status | WF-P16 E-Signatur | Detail | Bauen | Validiert | Signatur öffnen | [MD]() | - | [Canvas]() | -| S04 | Signieren per Link 🌐 | WF-P16 E-Signatur | BESPOKE-Public | Bauen | Validiert (Delta) | `/sign/:token` | [MD]() | - | [Canvas]() | -| V01 | Vor Ort unterschreiben 📱 | WF-P16 E-Signatur | BESPOKE-Mobile | Bauen | Validiert | Touch-Modus aus S02 | [MD]() | - | [Canvas]() | -| M01 | Signatur zurueckziehen | WF-P16 E-Signatur | Confirm-Modal | Bauen | Validiert | aus S03 | [MD]() | - | [Canvas]() | +| S01 | Auftrags-Reiter am Projekt | WF-P9 Projekt-Akte | Detail-Erweiterung | Bauen | Validiert | `/projects/:id` | [MD]() | - | [Canvas]() | +| S02 | Mobil-Modus | WF-P9 Projekt-Akte | Variante 📱 | Bauen | Validiert | `/projects/:id` (Handy) | [MD]() | - | [Canvas]() | +| M01 | Rechnung anlegen | WF-P9 Projekt-Akte | Modal | Bauen | Validiert | Rechnungen-Reiter | [MD]() | - | [Canvas]() | +| S03 | Abnahme-Formular-Vorlagen | WF-P9 Projekt-Akte | Settings | Bauen | Validiert | `/admin/projects/acceptance-forms` | [MD]() | - | [Canvas]() | +| S04 | Projekt-Vorlagen | WF-P9 Projekt-Akte | Settings-Liste | Bauen | Validiert | `/admin/projects/templates` | [MD]() | - | [Canvas]() | +| S01 | Plantafel (Desktop-Raster) | WF-P9 Plantafel | BESPOKE Grid | Bauen | Validiert | `/projects/plantafel` | [MD]() | - | [Canvas]() | +| S02 | Meine Termine (Heute<->Woche) | WF-P9 Plantafel | BESPOKE-Mobile offline | Bauen | Validiert | Bottom-Nav »Heute« | [MD]() | - | [Canvas]() | +| M01 | Konflikt-Dialog (Trotzdem zuweisen?) | WF-P9 Plantafel | Modal | Bauen | Validiert | aus S01 | [MD]() | - | [Canvas]() | +| M02 | Einsatz-Dialog | WF-P9 Plantafel | Modal/Panel | Bauen | Validiert | Slot-Klick in S01 | [MD]() | - | [Canvas]() | +| S01 | Abnahme-Liste | WF-P9 Abnahme | Liste | Bauen | Validiert | `/projects/:id/acceptance` | [MD]() | - | [Canvas]() | +| S02 | Abnahme Schritt 1: Pruefungen | WF-P9 Abnahme | BESPOKE-Mobile | Bauen | Validiert | `/projects/:id/acceptance/new` | [MD]() | - | [Canvas]() | +| S03 | Abnahme Schritt 2: Maengel | WF-P9 Abnahme | BESPOKE-Mobile | Bauen | Validiert | Workflow | [MD]() | - | [Canvas]() | +| S04 | Abnahme Schritt 3: Unterschriften | WF-P9 Abnahme | BESPOKE-Mobile | Bauen | Validiert | Workflow | [MD]() | - | [Canvas]() | +| S01 | Flow-Editor (Vollbild-Canvas) | WF-P12 Flow-Editor | BESPOKE | Bauen | Fertig / Development-Handoff | `/automations/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | +| S01b | Baustein-Picker (Drawer) | WF-P12 Flow-Editor | Drawer | Bauen | Fertig / 31 von 31 synchron | aus S01 | [MD]() | [Subframe]() | [Canvas]() | +| S01c | Canvas-Kontextmenue | WF-P12 Flow-Editor | Kontextmenue | Bauen | Fertig / Development-Handoff | Rechtsklick in S01 | [MD]() | [Subframe]() | [Canvas]() | +| M03 | Start-Auswahl (leer/Vorlage) | WF-P12 Flow-Editor | Modal | Bauen | Final; V3 bleibt Referenz | + Neue Automation | [MD]() | [Final]() · [Referenz V3]() | [Canvas]() | +| M04 | Automation aktivieren | WF-P12 Flow-Editor | Bestätigungsmodal | Bauen | Fertig / Development-Handoff | Aktiv-Schalter in S01 | [MD]() | [Subframe]() | [Canvas]() | +| M05 | Automation pausieren | WF-P12 Flow-Editor | Bestätigungsmodal | Bauen | Fertig / Development-Handoff | Aktiv-Schalter in S01 | [MD]() | [Subframe]() | [Canvas]() | +| S01 | Automation-Liste | WF-P12 Verwaltung | Liste | Bauen | Fertig / Development-Handoff | `/automations` | [MD]() | [Subframe]() | [Canvas]() | +| S02 | Lauf-Liste | WF-P12 Verwaltung | Liste | Bauen | Fertig / Development-Handoff | `/automations/:id/executions` | [MD]() | [Subframe]() | [Canvas]() | +| S03 | Lauf-Detail (Accordion + Fehlerhilfe) | WF-P12 Verwaltung | Detail | Bauen | Fertig / Development-Handoff | `/automations/:id/executions/:id` | [MD]() | [Subframe]() | [Canvas]() | +| M04 | Vorlagen-Katalog | WF-P12 Verwaltung | Modal + Karten-Liste | Bauen | Fertig / Development-Handoff | Button „Vorlagen“ in S01 | [MD]() | [Subframe]() | [Canvas]() | +| S05 | Baustein-Konfigurationsdialoge (32 Seiten) | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig; vollständig in Obsidian gespiegelt | Dialog über dem Editor | [MD]() | [Flow]() | [Canvas]() | +| S05a | Baustein-Katalog (32 Seiten/Links) | WF-P12 Verwaltung | Screen-Index | Dokumentieren | Finale Detailwahrheit mit bekannten Hinweisen | — | [MD]() | [Flow]() | [Canvas]() | +| S06 | Zugangsdaten | WF-P12 Verwaltung | Liste / Verwaltung | Bauen | Fertig / Development-Handoff | `/automations/credentials` | [MD]() | [Subframe]() | [Canvas]() | +| K-T1 | Neuer Kontakt – Mit Beispiel | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T1 | Kontakt geändert | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T1 | Neue Anfrage | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T1 | Lead qualifiziert | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T1 | Projekt gewonnen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T1 | Status gewechselt | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T1 | Projekt angelegt | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T2 | Frist oder Termin | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt; Live-Seitenname weicht ab | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T2 | Termin gebucht | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T2 | Termin storniert | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T2 | Ereignis erstellt | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T2 | Zeitplan | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T2 | Zeitplan monatlich | WF-P12 Verwaltung | A5 Dialogzustand | Handoff | Fertig / gespiegelt | Zustand von Zeitplan | [MD]() | [Subframe]() | [Canvas]() | +| K-T3 | E-Mail eingegangen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T3 | E-Mail unzustellbar | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T3 | Formular abgeschickt | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-T3 | Webhook empfangen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-A1 | Datensatz ändern | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt; Live-Seitenname weicht ab | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-A1 | Notiz anlegen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-A2 | Benachrichtigung senden | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-A2 | E-Mail senden | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-A3 | Aufgabe anlegen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-A3 | Aufgabe zuweisen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-L1 | Wenn-Dann | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-L1 | Und | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-L1 | Oder | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-L1 | Switch | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-L1 | Filter | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt; Breite als Hinweis | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-L2 | Warten | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-L2 | Schleife | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-L2 | Wert setzen | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| K-I1 | HTTP-Anfrage | WF-P12 Verwaltung | A5 Dialog | Handoff | Fertig / gespiegelt | Dialog im Editor | [MD]() | [Subframe]() | [Canvas]() | +| S00 | Formulare verwalten | WF-D-FORM Form Builder | Formular-Zentrale | Bauen | Subframe Draft / Review offen | `/forms` | [MD]() | [Subframe]() | [Canvas]() | +| E01 | S00 Keine Formulare | WF-D-FORM Form Builder | Empty State | Bauen | Subframe Draft / Review offen | `/forms` | [MD]() | [Subframe]() | [Canvas]() | +| E02 | S00 Keine Treffer | WF-D-FORM Form Builder | Empty State | Bauen | Subframe Draft / Review offen | `/forms` | [MD]() | [Subframe]() | [Canvas]() | +| S01 | Formularart auswaehlen | WF-D-FORM Form Builder | Einstieg / Auswahl | Alternative bauen | Subframe Draft / Review offen | `/forms/new` | [MD]() | [Subframe]() | [Canvas]() | +| S02 | Einfacher Fragen Editor | WF-D-FORM Form Builder | Simple Builder Alternative | Alternative bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | +| S02L | Lead Felder zuweisen | WF-D-FORM Form Builder | S02-Zustand / Lead Editor | Subframe Draft | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | +| E05 | S02 Lead Zuweisung pruefen | WF-D-FORM Form Builder | Lead Mapping Error State | Subframe Draft | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | +| S03 | Formular Design | WF-D-FORM Form Builder | Builder Tab | Bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | +| S04 | Oeffentliches Formular | WF-D-FORM Form Builder | Public Form | Bauen | Subframe Draft / Review offen | `/f/{tenant}/{slug}` | [MD]() | [Subframe]() | [Canvas]() | +| V01 | Public Erfolg oder Redirect | WF-D-FORM Form Builder | Public Feedback | Bauen | Subframe Draft / Review offen | `/f/:slug` | [MD]() | [Subframe]() | [Canvas]() | +| V02 | Public Formular nicht verfuegbar | WF-D-FORM Form Builder | Public Blocker | Bauen | Subframe Draft / Review offen | `/f/:slug` | [MD]() | [Subframe]() | [Canvas]() | +| V03 | Public Captcha oder Submit Fehler | WF-D-FORM Form Builder | Public Error | Bauen | Subframe Draft / Review offen | `/f/:slug` | [MD]() | [Subframe]() | [Canvas]() | +| S05 | Antworten Tabelle | WF-D-FORM Form Builder | Builder Tab | Bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | +| E03 | S05 Keine Antworten | WF-D-FORM Form Builder | Empty State | Bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | +| E04 | S05 Export Fehler | WF-D-FORM Form Builder | Error State | Bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | +| S01C | Website Formular Editor | WF-D-FORM Form Builder | Simple Builder Beispiel | Alternative bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | +| S01D | Umfrage Editor | WF-D-FORM Form Builder | Simple Builder Beispiel | Alternative bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | +| S01E | Internes Formular Editor | WF-D-FORM Form Builder | Simple Builder Beispiel | Alternative bauen | Subframe Draft / Review offen | `/forms/:id/edit` | [MD]() | [Subframe]() | [Canvas]() | +| D01 | Sharing Panel URL QR iFrame | WF-D-FORM Form Builder | Detailnotiz | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | Public-Link/Teilen-Kontext, kein eigener Screen | [MD]() | - | - | +| D02 | Post-Submit Actions | WF-D-FORM Form Builder | Detailnotiz | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | Nach-Absenden-Kontext, kein eigener Screen | [MD]() | - | - | +| D03 | Conditional Logic Editor | WF-D-FORM Form Builder | Detailnotiz | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | einfache Bedingungen, kein eigener Screen | [MD]() | - | - | +| D06 | Feldkarten Menue | WF-D-FORM Form Builder | Detailnotiz | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | Fragekarten-Menue, kein eigener Screen | [MD]() | - | - | +| D10 | Builder Interaktionsfaelle | WF-D-FORM Form Builder | Case-Matrix | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | Klick-/Edge-Cases, kein eigener Screen | [MD]() | - | - | +| M01 | Feld loeschen Confirm | WF-D-FORM Form Builder | Confirm Modal | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | von Fragekarte oder Inspector | [MD]() | - | - | +| M02 | Unpublish Confirm | WF-D-FORM Form Builder | Confirm Modal | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | von Publish/Public-Link-Kontext | [MD]() | - | - | +| M03 | Archive Confirm | WF-D-FORM Form Builder | Confirm Modal | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | von More-Menue | [MD]() | - | - | +| M04 | Unsaved Changes Confirm | WF-D-FORM Form Builder | Confirm Modal / Browser Guard | Nur dokumentieren | Dokumentiert / nicht im Review-Canvas | beim Verlassen mit Dirty State | [MD]() | - | - | +| S01 | Kalender (Monat/Woche, Kollegen-Overlay) | WF-P16 Kalender | BESPOKE Grid | Bauen | Validiert | `/calendar` | [MD]() | - | [Canvas]() | +| M01 | Termin anlegen/bearbeiten | WF-P16 Kalender | Modal | Bauen | Validiert | Slot-Klick / + Termin in S01 | [MD]() | - | [Canvas]() | +| M02 | Termin-Detail (Popover) | WF-P16 Kalender | Popover | Bauen | Validiert | Termin-Klick in S01 | [MD]() | - | [Canvas]() | +| S02 | Kalender-Einstellungen & Sync | WF-P16 Kalender | Settings (A6) | Bauen | Validiert | `/calendar/settings` | [MD]() | - | [Canvas]() | +| D01 | OAuth-Assistent (aus WF-P5 M01) | WF-P16 Kalender | Wizard | Wiederverwenden | Validiert | aus S02 | [MD]() | - | - | +| D02 | Trennen-Bestaetigung + Extern-Wahl (aus WF-P5 M03) | WF-P16 Kalender | Modal | Wiederverwenden | Validiert | aus S02 | [MD]() | - | - | +| S01 | Termin waehlen (Slot-Picker) 🌐 | WF-P16 Terminbuchung | BESPOKE-Public | Bauen | Validiert | `/b/{firma}/{slug}` | [MD]() | - | [Canvas]() | +| S02 | Fragen (Kunden-Formular) 🌐 | WF-P16 Terminbuchung | BESPOKE-Public | Bauen | Validiert | Schritt 2 | [MD]() | - | [Canvas]() | +| S03 | Bestaetigung (+ .ics) 🌐 | WF-P16 Terminbuchung | BESPOKE-Public | Bauen | Validiert | Schritt 3 | [MD]() | - | [Canvas]() | +| V01 | Termin waehlen — Handy 🌐📱 | WF-P16 Terminbuchung | BESPOKE-Public Mobile | Bauen | Validiert | Variante von S01 | [MD]() | - | [Canvas]() | +| S04 | Absagen/Verschieben per Link 🌐 | WF-P16 Terminbuchung | BESPOKE-Public | Bauen | Validiert (Delta) | Link aus Bestaetigungs-Mail | [MD]() | - | [Canvas]() | +| S05 | Buchungen-Liste | WF-P16 Terminbuchung | Liste | Bauen | Validiert | `/bookings` | [MD]() | - | [Canvas]() | +| S06 | Buchungs-Detail (Karteikarte) | WF-P16 Terminbuchung | Detail | Bauen | Validiert | `/bookings/:id` | [MD]() | - | [Canvas]() | +| S07 | Buchungsseiten-Liste | WF-P16 Terminbuchung | Liste | Bauen | Validiert | `/bookings/pages` | [MD]() | - | [Canvas]() | +| S08 | Buchungsseiten-Editor | WF-P16 Terminbuchung | Settings/Form | Bauen | Validiert | `/bookings/pages/:id` + `/new` | [MD]() | - | [Canvas]() | +| S09 | Verfuegbarkeit (Wochen-Zeiten + Ausnahmen) | WF-P16 Terminbuchung | Settings/Form | Bauen | Validiert | `/availability` | [MD]() | - | [Canvas]() | +| M01 | Verschieben (interner Slot-Picker) | WF-P16 Terminbuchung | Modal | Bauen | Validiert | aus S06 | [MD]() | - | [Canvas]() | +| M02 | Stornieren (Grund + Auto-Mail) | WF-P16 Terminbuchung | Modal | Bauen | Validiert | aus S05/S06 (auch Bulk) | [MD]() | - | [Canvas]() | +| S01 | Signaturen im Projekt | WF-P16 E-Signatur | Projekt-Sektion | Bauen | Validiert | Projekt-Detail | [MD]() | - | [Canvas]() | +| S02 | Signatur-Wizard | WF-P16 E-Signatur | Wizard | Bauen | Validiert | aus Projekt-Detail/S01 | [MD]() | - | [Canvas]() | +| S03 | Signatur-Detail & Status | WF-P16 E-Signatur | Detail | Bauen | Validiert | Signatur öffnen | [MD]() | - | [Canvas]() | +| S04 | Signieren per Link 🌐 | WF-P16 E-Signatur | BESPOKE-Public | Bauen | Validiert (Delta) | `/sign/:token` | [MD]() | - | [Canvas]() | +| V01 | Vor Ort unterschreiben 📱 | WF-P16 E-Signatur | BESPOKE-Mobile | Bauen | Validiert | Touch-Modus aus S02 | [MD]() | - | [Canvas]() | +| M01 | Signatur zurueckziehen | WF-P16 E-Signatur | Confirm-Modal | Bauen | Validiert | aus S03 | [MD]() | - | [Canvas]() | | S01 | Team Chat - Kein Chat ausgewaehlt | WF-P15 Team-Chat | Hauptansicht | Bauen | Fertig / Development-Handoff | Chat-Einstieg | [MD]() | [Subframe]() | [Canvas]() | | S02 | Team Chat - Projektchat offen 2 | WF-P15 Team-Chat | Hauptansicht | Bauen | Fertig / Development-Handoff | Projektchat | [MD]() | [Subframe]() | [Canvas]() | | S02b | Team Chat - Gruppe offen | WF-P15 Team-Chat | Hauptansicht | Bauen | Fertig / Development-Handoff | Freie Gruppe | [MD]() | [Subframe]() | [Canvas]() | diff --git a/03 Quellen und Referenzen/README.md b/03 Quellen und Referenzen/README.md index 8b0f76db..586950ab 100644 --- a/03 Quellen und Referenzen/README.md +++ b/03 Quellen und Referenzen/README.md @@ -9,6 +9,7 @@ Hier liegt Kontext, der fuer Wireframe- und UX-Planung gelesen werden kann, aber | Pfad | Zweck | |---|---| | `hivegrid-cloud/` | mitgepushte HiveGrid-Cloud-Referenz inklusive Planning, Ticket-Docs und Code-Kontext | +| `hivegrid-website/` | mitgepushte Website-Referenz; lokale Abhängigkeiten und Build-Caches bleiben ausgeschlossen | | [[Repo Notizen]] | Hinweise zum Aktualisieren und Nutzen der HiveGrid-Cloud-Referenz | ## Regel diff --git a/03 Quellen und Referenzen/Repo Notizen.md b/03 Quellen und Referenzen/Repo Notizen.md index 3b07edd8..a31194de 100644 --- a/03 Quellen und Referenzen/Repo Notizen.md +++ b/03 Quellen und Referenzen/Repo Notizen.md @@ -21,6 +21,14 @@ git pull --ff-only Hinweis: Diese Referenz ist fuer die Wireframe-Arbeit vor allem auf Lesen/Pullen ausgelegt. Relevante Planning-Aenderungen werden im Hauptrepo mitgepusht. +Die mitgepushte Website-Referenz liegt hier: + +```text +03 Quellen und Referenzen/hivegrid-website +``` + +Sie bildet den aktuellen Quellstand von `https://git.tool-ctrl.de/toolctrl-labs/HiveGrid-Website.git` ab. Lokale Verzeichnisse wie `node_modules/` und `.next/` sind Abhängigkeiten beziehungsweise Build-Caches und werden nicht in das Wireframe-Repo übernommen. + Alter lokaler Backup-Ordner: ```text diff --git a/03 Quellen und Referenzen/hivegrid-website/.dockerignore b/03 Quellen und Referenzen/hivegrid-website/.dockerignore new file mode 100644 index 00000000..f4ecc72d --- /dev/null +++ b/03 Quellen und Referenzen/hivegrid-website/.dockerignore @@ -0,0 +1,8 @@ +node_modules +.next +.git +.gsd +archive +*.md +.env* +.DS_Store diff --git a/03 Quellen und Referenzen/hivegrid-website/.gitea/workflows/deploy.yml b/03 Quellen und Referenzen/hivegrid-website/.gitea/workflows/deploy.yml new file mode 100644 index 00000000..a626d11e --- /dev/null +++ b/03 Quellen und Referenzen/hivegrid-website/.gitea/workflows/deploy.yml @@ -0,0 +1,159 @@ +name: Deploy staging + +on: + push: + branches: [main] + workflow_dispatch: + +env: + REGISTRY: git.tool-ctrl.de + IMAGE: git.tool-ctrl.de/toolctrl-labs/hivegrid-website + HIVEGRID_GITEA_HOST_IP: ${{ vars.HIVEGRID_GITEA_HOST_IP }} + +concurrency: + group: hivegrid-website-deploy + cancel-in-progress: false + +jobs: + build-and-stage: + name: Build and deploy website to staging + runs-on: toolctrl-ci + timeout-minutes: 45 + env: + SHA: ${{ github.sha }} + steps: + - name: Resolve staging revision + run: | + REF="${GITHUB_REF:-${{ github.ref }}}" + if [ "$REF" != "refs/heads/main" ]; then + echo "Staging must be deployed from refs/heads/main" + exit 1 + fi + if ! printf '%s' "$SHA" | grep -Eq '^[0-9a-f]{40}$'; then + echo "Gitea SHA must be a full 40-character commit SHA" + exit 1 + fi + + { + echo "IMAGE_TAG=$SHA" + echo "SHORT_SHA=$(printf '%s' "$SHA" | cut -c1-7)" + } >> "$GITHUB_ENV" + + - name: Setup hosts override and Docker CLI + run: | + : "${HIVEGRID_GITEA_HOST_IP:=192.168.178.62}" + if ! HIVEGRID_GITEA_HOST_IP="$HIVEGRID_GITEA_HOST_IP" node -e 'process.exit(require("node:net").isIP(process.env.HIVEGRID_GITEA_HOST_IP || "") ? 0 : 1)'; then + echo "HIVEGRID_GITEA_HOST_IP must be a single IPv4 or IPv6 token" + exit 1 + fi + printf '%s git.tool-ctrl.de\n' "$HIVEGRID_GITEA_HOST_IP" >> /etc/hosts + + apt-get update -qq + apt-get install -qq -y --no-install-recommends ca-certificates curl git + + if ! command -v docker >/dev/null 2>&1 || ! docker buildx version >/dev/null 2>&1; then + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc + chmod a+r /etc/apt/keyrings/docker.asc + . /etc/os-release + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian ${VERSION_CODENAME} stable" > /etc/apt/sources.list.d/docker.list + apt-get update -qq + apt-get install -qq -y --no-install-recommends docker-ce-cli docker-buildx-plugin + fi + + docker --version + docker buildx version + + - name: Checkout + run: | + mkdir -p /workspace/repo + cd /workspace/repo + git clone "https://${{ secrets.REGISTRY_USER }}:${{ secrets.REGISTRY_PAT }}@git.tool-ctrl.de/toolctrl-labs/HiveGrid-Website.git" . + git checkout "$SHA" + CHECKOUT_SHA="$(git rev-parse HEAD)" + if [ "$CHECKOUT_SHA" != "$SHA" ]; then + echo "Checked out revision must match the Gitea SHA" + exit 1 + fi + + - name: Verify deploy contract + run: | + cd /workspace/repo + node --check scripts/coolify-deploy.mjs + npm test + + - name: Login to Gitea Registry + run: echo "${{ secrets.REGISTRY_PAT }}" | docker login "$REGISTRY" --username "${{ secrets.REGISTRY_USER }}" --password-stdin + + - name: Build and publish staging image + run: | + cd /workspace/repo + docker buildx build --push --provenance=false \ + --build-arg GIT_SHA="$SHORT_SHA" \ + --tag "$IMAGE:$IMAGE_TAG" \ + . + docker buildx imagetools create --prefer-index=false --tag "$IMAGE:staging" "$IMAGE:$IMAGE_TAG" + IMAGE_DIGEST="$(docker buildx imagetools inspect "$IMAGE:$IMAGE_TAG" --format '{{json .Manifest.Digest}}' | tr -d '"')" + STAGING_DIGEST="$(docker buildx imagetools inspect "$IMAGE:staging" --format '{{json .Manifest.Digest}}' | tr -d '"')" + if ! printf '%s' "$IMAGE_DIGEST" | grep -Eq '^sha256:[0-9a-f]{64}$' || [ "$IMAGE_DIGEST" != "$STAGING_DIGEST" ]; then + echo "Published staging image does not resolve to the exact SHA digest" + exit 1 + fi + echo "IMAGE_DIGEST=$IMAGE_DIGEST" >> "$GITHUB_ENV" + + - name: Deploy staging + env: + COOLIFY_STAGING_API_URL: ${{ vars.COOLIFY_STAGING_API_URL }} + COOLIFY_STAGING_RESOURCE_UUID: ${{ vars.COOLIFY_STAGING_RESOURCE_UUID }} + COOLIFY_STAGING_TOKEN: ${{ secrets.COOLIFY_STAGING_TOKEN }} + WEBSITE_STAGING_URL: ${{ vars.WEBSITE_STAGING_URL }} + run: | + if [ -z "$COOLIFY_STAGING_API_URL" ] || [ -z "$COOLIFY_STAGING_RESOURCE_UUID" ] || [ -z "$COOLIFY_STAGING_TOKEN" ]; then + echo "Coolify staging configuration is incomplete" + exit 1 + fi + + cd /workspace/repo + SELECTED_COOLIFY_API_URL="$COOLIFY_STAGING_API_URL" \ + SELECTED_COOLIFY_TOKEN="$COOLIFY_STAGING_TOKEN" \ + node scripts/coolify-deploy.mjs set-release "$COOLIFY_STAGING_RESOURCE_UUID" "$IMAGE" "$IMAGE_DIGEST" + DEPLOYMENT_UUID="$( + SELECTED_COOLIFY_API_URL="$COOLIFY_STAGING_API_URL" \ + SELECTED_COOLIFY_TOKEN="$COOLIFY_STAGING_TOKEN" \ + node scripts/coolify-deploy.mjs trigger "$COOLIFY_STAGING_RESOURCE_UUID" + )" + SELECTED_COOLIFY_API_URL="$COOLIFY_STAGING_API_URL" \ + SELECTED_COOLIFY_TOKEN="$COOLIFY_STAGING_TOKEN" \ + node scripts/coolify-deploy.mjs wait "$DEPLOYMENT_UUID" "Coolify staging website" + + TARGET_URL="${WEBSITE_STAGING_URL:-https://staging.hivegrid.de}" \ + node -e ' + const target = process.env.TARGET_URL.replace(/\/+$/, ""); + const expected = process.env.SHORT_SHA; + for (let i = 1; i <= 60; i += 1) { + const res = await fetch(`${target}/healthz?__deploycheck=${expected}-${i}-${Date.now()}`, { cache: "no-store" }).catch(() => null); + if (res?.ok) { + const body = await res.json().catch(() => ({})); + if (body.revision === expected) process.exit(0); + } + await new Promise((resolve) => setTimeout(resolve, 10000)); + } + console.error("Staging healthz never reported the expected revision"); + process.exit(1); + ' + ROLLED_OUT_IMAGE_DIGEST="$(docker buildx imagetools inspect "$IMAGE:$IMAGE_TAG" --format '{{json .Manifest.Digest}}' | tr -d '"')" + if [ "$ROLLED_OUT_IMAGE_DIGEST" != "$IMAGE_DIGEST" ]; then + echo "Staging website digest changed during rollout" + exit 1 + fi + SELECTED_COOLIFY_API_URL="$COOLIFY_STAGING_API_URL" \ + SELECTED_COOLIFY_TOKEN="$COOLIFY_STAGING_TOKEN" \ + node scripts/coolify-deploy.mjs assert-release "$COOLIFY_STAGING_RESOURCE_UUID" "$IMAGE" "$ROLLED_OUT_IMAGE_DIGEST" + + - name: Summary + run: | + echo "### Deployed to staging.hivegrid.de" >> "$GITHUB_STEP_SUMMARY" + echo "" >> "$GITHUB_STEP_SUMMARY" + echo "- Commit: \`$IMAGE_TAG\`" >> "$GITHUB_STEP_SUMMARY" + echo "- Digest: \`$IMAGE_DIGEST\`" >> "$GITHUB_STEP_SUMMARY" + echo "- To go live: run **Promote to production**." >> "$GITHUB_STEP_SUMMARY" diff --git a/03 Quellen und Referenzen/hivegrid-website/.gitea/workflows/promote.yml b/03 Quellen und Referenzen/hivegrid-website/.gitea/workflows/promote.yml new file mode 100644 index 00000000..3f866095 --- /dev/null +++ b/03 Quellen und Referenzen/hivegrid-website/.gitea/workflows/promote.yml @@ -0,0 +1,275 @@ +name: Promote to production + +on: + workflow_dispatch: + +env: + REGISTRY: git.tool-ctrl.de + IMAGE: git.tool-ctrl.de/toolctrl-labs/hivegrid-website + HIVEGRID_GITEA_HOST_IP: ${{ vars.HIVEGRID_GITEA_HOST_IP }} + +concurrency: + group: hivegrid-website-deploy + cancel-in-progress: false + +jobs: + promote: + name: Promote current staging website to production + runs-on: toolctrl-ci + timeout-minutes: 30 + env: + WORKFLOW_SHA: ${{ github.sha }} + steps: + - name: Require main branch + run: | + REF="${GITHUB_REF:-${{ github.ref }}}" + if [ "$REF" != "refs/heads/main" ]; then + echo "Production promotion must run from refs/heads/main" + exit 1 + fi + + - name: Setup hosts override and Docker CLI + run: | + : "${HIVEGRID_GITEA_HOST_IP:=192.168.178.62}" + if ! HIVEGRID_GITEA_HOST_IP="$HIVEGRID_GITEA_HOST_IP" node -e 'process.exit(require("node:net").isIP(process.env.HIVEGRID_GITEA_HOST_IP || "") ? 0 : 1)'; then + echo "HIVEGRID_GITEA_HOST_IP must be a single IPv4 or IPv6 token" + exit 1 + fi + printf '%s git.tool-ctrl.de\n' "$HIVEGRID_GITEA_HOST_IP" >> /etc/hosts + + apt-get update -qq + apt-get install -qq -y --no-install-recommends ca-certificates curl git + + if ! command -v docker >/dev/null 2>&1 || ! docker buildx version >/dev/null 2>&1; then + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc + chmod a+r /etc/apt/keyrings/docker.asc + . /etc/os-release + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian ${VERSION_CODENAME} stable" > /etc/apt/sources.list.d/docker.list + apt-get update -qq + apt-get install -qq -y --no-install-recommends docker-ce-cli docker-buildx-plugin + fi + + docker --version + docker buildx version + + - name: Checkout workflow revision + run: | + mkdir -p /workspace/repo + cd /workspace/repo + git clone "https://${{ secrets.REGISTRY_USER }}:${{ secrets.REGISTRY_PAT }}@git.tool-ctrl.de/toolctrl-labs/HiveGrid-Website.git" . + git checkout "$WORKFLOW_SHA" + if [ "$(git rev-parse HEAD)" != "$WORKFLOW_SHA" ]; then + echo "Checked out revision must match the Gitea workflow SHA" + exit 1 + fi + + - name: Verify deploy contract + run: | + cd /workspace/repo + node --check scripts/coolify-deploy.mjs + npm test + + - name: Login to Gitea Registry + run: echo "${{ secrets.REGISTRY_PAT }}" | docker login "$REGISTRY" --username "${{ secrets.REGISTRY_USER }}" --password-stdin + + - name: Resolve and verify current staging release + env: + COOLIFY_STAGING_API_URL: ${{ vars.COOLIFY_STAGING_API_URL }} + COOLIFY_STAGING_RESOURCE_UUID: ${{ vars.COOLIFY_STAGING_RESOURCE_UUID }} + COOLIFY_STAGING_TOKEN: ${{ secrets.COOLIFY_STAGING_TOKEN }} + WEBSITE_STAGING_URL: ${{ vars.WEBSITE_STAGING_URL }} + run: | + if [ -z "$COOLIFY_STAGING_API_URL" ] || [ -z "$COOLIFY_STAGING_RESOURCE_UUID" ] || [ -z "$COOLIFY_STAGING_TOKEN" ]; then + echo "Coolify staging configuration is incomplete" + exit 1 + fi + + cd /workspace/repo + TARGET_URL="${WEBSITE_STAGING_URL:-https://staging.hivegrid.de}" + SHORT_SHA="$( + TARGET_URL="$TARGET_URL" node -e ' + const target = process.env.TARGET_URL.replace(/\/+$/, ""); + const res = await fetch(`${target}/healthz?__promotecheck=${Date.now()}`, { cache: "no-store" }); + if (!res.ok) process.exit(1); + const body = await res.json(); + process.stdout.write(String(body.revision || "")); + ' + )" + if ! printf '%s' "$SHORT_SHA" | grep -Eq '^[0-9a-f]{7}$'; then + echo "Staging healthz did not return a valid seven-character revision" + exit 1 + fi + + git fetch --no-tags origin main + MATCHING_SHAS="$(git rev-list origin/main | grep -E "^${SHORT_SHA}[0-9a-f]{33}$" || true)" + if [ "$(printf '%s\n' "$MATCHING_SHAS" | grep -c .)" -ne 1 ]; then + echo "Staging revision must resolve to exactly one commit on main" + exit 1 + fi + STAGED_SHA="$MATCHING_SHAS" + git merge-base --is-ancestor "$STAGED_SHA" origin/main + + IMAGE_DIGEST="$(docker buildx imagetools inspect "$IMAGE:$STAGED_SHA" --format '{{json .Manifest.Digest}}' | tr -d '"')" + STAGING_DIGEST="$(docker buildx imagetools inspect "$IMAGE:staging" --format '{{json .Manifest.Digest}}' | tr -d '"')" + if ! printf '%s' "$IMAGE_DIGEST" | grep -Eq '^sha256:[0-9a-f]{64}$' || [ "$IMAGE_DIGEST" != "$STAGING_DIGEST" ]; then + echo "Current staging alias does not match the live staging revision" + exit 1 + fi + + SELECTED_COOLIFY_API_URL="$COOLIFY_STAGING_API_URL" \ + SELECTED_COOLIFY_TOKEN="$COOLIFY_STAGING_TOKEN" \ + node scripts/coolify-deploy.mjs assert-release "$COOLIFY_STAGING_RESOURCE_UUID" "$IMAGE" "$IMAGE_DIGEST" + + { + echo "STAGED_SHA=$STAGED_SHA" + echo "SHORT_SHA=$SHORT_SHA" + echo "IMAGE_DIGEST=$IMAGE_DIGEST" + } >> "$GITHUB_ENV" + + - name: Capture production rollback digest + env: + COOLIFY_API_URL: ${{ vars.COOLIFY_API_URL }} + COOLIFY_RESOURCE_UUID: ${{ vars.COOLIFY_RESOURCE_UUID }} + COOLIFY_TOKEN: ${{ secrets.COOLIFY_TOKEN }} + run: | + if [ -z "$COOLIFY_API_URL" ] || [ -z "$COOLIFY_RESOURCE_UUID" ] || [ -z "$COOLIFY_TOKEN" ]; then + echo "Coolify production configuration is incomplete" + exit 1 + fi + + cd /workspace/repo + PREVIOUS_PRODUCTION_DIGEST="$( + SELECTED_COOLIFY_API_URL="$COOLIFY_API_URL" \ + SELECTED_COOLIFY_TOKEN="$COOLIFY_TOKEN" \ + node scripts/coolify-deploy.mjs current-release "$COOLIFY_RESOURCE_UUID" "$IMAGE" + )" + echo "PREVIOUS_PRODUCTION_DIGEST=$PREVIOUS_PRODUCTION_DIGEST" >> "$GITHUB_ENV" + echo "Rollback digest: $PREVIOUS_PRODUCTION_DIGEST" + echo "- Previous production digest: \`$PREVIOUS_PRODUCTION_DIGEST\`" >> "$GITHUB_STEP_SUMMARY" + + - name: Publish production alias + run: | + docker buildx imagetools create --prefer-index=false --tag "$IMAGE:main" "$IMAGE:$STAGED_SHA" + PRODUCTION_ALIAS_DIGEST="$(docker buildx imagetools inspect "$IMAGE:main" --format '{{json .Manifest.Digest}}' | tr -d '"')" + if [ "$PRODUCTION_ALIAS_DIGEST" != "$IMAGE_DIGEST" ]; then + echo "Production alias did not preserve the staged digest" + exit 1 + fi + + - name: Deploy production + env: + COOLIFY_API_URL: ${{ vars.COOLIFY_API_URL }} + COOLIFY_RESOURCE_UUID: ${{ vars.COOLIFY_RESOURCE_UUID }} + COOLIFY_TOKEN: ${{ secrets.COOLIFY_TOKEN }} + WEBSITE_PRODUCTION_URL: ${{ vars.WEBSITE_PRODUCTION_URL }} + run: | + cd /workspace/repo + SELECTED_COOLIFY_API_URL="$COOLIFY_API_URL" \ + SELECTED_COOLIFY_TOKEN="$COOLIFY_TOKEN" \ + node scripts/coolify-deploy.mjs set-release "$COOLIFY_RESOURCE_UUID" "$IMAGE" "$IMAGE_DIGEST" + DEPLOYMENT_UUID="$( + SELECTED_COOLIFY_API_URL="$COOLIFY_API_URL" \ + SELECTED_COOLIFY_TOKEN="$COOLIFY_TOKEN" \ + node scripts/coolify-deploy.mjs trigger "$COOLIFY_RESOURCE_UUID" + )" + SELECTED_COOLIFY_API_URL="$COOLIFY_API_URL" \ + SELECTED_COOLIFY_TOKEN="$COOLIFY_TOKEN" \ + node scripts/coolify-deploy.mjs wait "$DEPLOYMENT_UUID" "Coolify production website" + + TARGET_URL="${WEBSITE_PRODUCTION_URL:-https://hivegrid.de}" \ + node -e ' + const target = process.env.TARGET_URL.replace(/\/+$/, ""); + const expected = process.env.SHORT_SHA; + for (let i = 1; i <= 60; i += 1) { + const res = await fetch(`${target}/healthz?__deploycheck=${expected}-${i}-${Date.now()}`, { cache: "no-store" }).catch(() => null); + if (res?.ok) { + const body = await res.json().catch(() => ({})); + if (body.revision === expected) process.exit(0); + } + await new Promise((resolve) => setTimeout(resolve, 10000)); + } + console.error("Production healthz never reported the expected revision"); + process.exit(1); + ' + SELECTED_COOLIFY_API_URL="$COOLIFY_API_URL" \ + SELECTED_COOLIFY_TOKEN="$COOLIFY_TOKEN" \ + node scripts/coolify-deploy.mjs assert-release "$COOLIFY_RESOURCE_UUID" "$IMAGE" "$IMAGE_DIGEST" + + - name: Ensure Cloudflare leaves /videos uncompressed + env: + CF_ZONE_ID: ${{ secrets.CF_ZONE_ID }} + CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} + run: | + # A gzip/brotli response can't be byte-range served, so Cloudflare + # returns 200 (whole file) with no Accept-Ranges and Safari refuses to + # play