Zum Hauptinhalt springen

Risikoregister (Taktano)

Lebendes Register relevanter Risiken (Technik · Sicherheit · Datenschutz · Regulatorik) für die Zielmärkte DE · AT · CH und generell. Pflicht (CLAUDE.md §Compliance): zu Session-/PR-Beginn die relevanten Risiken sichten, neue eintragen, Status/Maßnahme pflegen; bei kritischen/regulatorisch relevanten Themen aktiv hinweisen + Optionen zeigen.

Skala: W = Wahrscheinlichkeit (1 niedrig · 2 mittel · 3 hoch) · A = Auswirkung (1 · 2 · 3) · Score = W×A (1–9; ≥6 = vorrangig). Status: offen · in Arbeit · gemindert · akzeptiert.

IDRisikoBereichWAScoreStatusMaßnahme / OwnerBezugLetzte Prüfung
RISK-1DO-Blob wächst unbegrenzt (auftraege/leistungsnachweise/archivierte nie beschnitten) → DO-Storage-Limit & LadezeitPersistenz/Skalierung236offenPruning/Archiv-Auslagerung; queryable Store (D1) für HistorieOP-AUDIT-12026-06-24
RISK-2Vergangene Wunschfrei/Bereitschaft nicht wiederherstellbar (removeAbwesenheit löscht ohne Historie) → Fairness-Historie & Audit unmöglichDaten/Audit326offenAppend-only-Historie / Audit-LogOP-AUDIT-1, OP-OPT-72026-06-24
RISK-3Klartext-PII in Logs/State/URLs (DSGVO DE/AT/CH)Datenschutz236offenPII-Scrubbing im Logger-Wrapper; EU-Residenz; Datenminimierung (Kunde = Name + CRM-Link)OP-LOG-1, OP-OBS-1, OP-SEC-12026-06-24
RISK-4Supply-Chain / verwundbare (transitive) DependenciesSicherheit236 → 4gemindert (06-27)SBOM (CycloneDX) + ✅ Dependabot (npm/pip/actions) + ✅ CI-Gate security-audit (npm audit prod-Deps high+ / pip-audit, blockiert PR/CI — nicht Deploy, Availability); gepinnte Actions. CodeQL ✅ aktiv via GitHub Default Setup (TS+Python automatisch, kein eigener Workflow; 06-27). Snyk = spätere Komfort-Option, nicht zwingend (Befund/Umsetzung 06-27, docs/betrieb/Compliance.md). Vuln-Assessment 07-03: 0 Prod-Runtime-Vulns (Server/Client npm audit --omit=dev = 0, pip-audit Solver grün) — alle Findings lagen in Dev-/Build-Toolchains und wurden nicht-brechend behoben: wrangler ^4.105 (Server + docs-site → undici/ws/miniflare-Highs weg), Client npm audit fix (Angular 20.3.31/vite 7.3.5) + Patch-Override http-proxy-middleware 3.0.7 (Angular pinnte exakt 3.0.5); flyctl-Action SHA-gepinnt (war letzte @master-Referenz). Akzeptierte Dev-only-Residuen (kein nicht-brechender Fix; nicht ausgeliefert): drizzle-kit→esbuild (moderate), Client babel/uuid-Ketten (low/moderate, Angular-exakt-Pins), docs-site serialize-javascript (high, aber nur Build-Cache der statischen Doku-Site, vertrauenswürdige Inputs — npm-„Fix" wäre Docusaurus-Downgrade)OP-SBOM-1, OP-SEC-12026-07-03
RISK-5Secret-Leak (FLY_API_TOKEN · Cloudflare · GitHub-Bot)Secrets/CI133gemindertKeine Secrets im Repo (GitHub-Secrets), least-privilege Deploy-Token, gepinnte ActionsOP-SEC-12026-06-24
RISK-6Mandanten-Isolation: Cross-Tenant-Zugriff über DO-State/Broadcast/InsightsMulti-Tenancy236offenAuthz je Message, keine Fremd-State-Broadcasts, Pentest vor Mehr-Mandanten-BetriebOP-SEC-1, OP-AUTH-12026-06-24
RISK-7CP-SAT-Solver (Fly.io) nicht erreichbarVerfügbarkeit212gemindertTS-Fallback aktiv; Solver-Status-Hinweis im Cockpit (30-s-Ping)OP-DEPLOY-22026-06-24
RISK-8E-Rechnungs-Pflicht DE-B2B (ab 2025) nicht erfülltRegulatorik (DE)224offenSevDesk erzeugt XRechnung/ZUGFeRD (zurückgestellt, vor Produktivbetrieb)OP-BILLING-12026-06-24
RISK-9Zahlungs-gesteuerter Zugang sperrt fälschlich bei Sync-AusfallZugang122gemindertBewusst fail-open + Admin-Override + Audit jedes StufenwechselsOP-ACCESS-1, OP-AUDIT-12026-06-24
RISK-10Prompt-Injection / Tool-Missbrauch im In-App-AssistentenKI/Sicherheit224in Arbeit (07-01)Härtung gebaut: Tools nur read/simulate (Hebel kein Auto-Apply, §3), Rundenlimit je Turn (MAX_RUNDEN), Feature-Flag-Allowlist (ASSISTENT_ALLOWLIST), Feedback dormant-guarded. Offen: externe vs. interne Doku-Sicht scharf schalten (OP-DOCS-5), Eingabe-Rate-Limit je NutzerOP-AI-4 §5, OP-SEC-12026-07-01
RISK-11Falsche Kosten-Stammdaten (Stundensätze/Materialpreise) → irreführende Margen/FehlentscheidungenDaten/Steuerung224offenSprechende Stammdaten-Pflege, Soll-Ist-Plausibilisierung, Audit der Änderungen (G-1/D-2)OP-COST-1, OP-AUDIT-12026-06-25
RISK-12Sensible Kostendaten vor verifiziertem Rollenmodell sichtbar (Marge/Sätze ohne OP-AUTH-1 A-3)Datenschutz/Zugang224offen (interim akzeptiert)Rollen-Gate gebaut, aber interim self-declared (A-1.5, 2026-07-26): das per-Connection-Gate (Broadcast-Filter + Schreib-Gate) hängt jetzt an der im Menü gewählten Rolle (kosten = Buchhaltung/Inhaber-Chef) statt an der entfernten E-Mail-Allowlist KOSTEN_ADMIN_EMAILS. Restrisiko: die Rolle ist selbst-deklariert → jeder hinter Cloudflare Access erreichbare Nutzer kann eine Kosten-berechtigte Rolle wählen (Zugang selbst am Edge per Access geschützt; aktuell nur Infra-/Cloud-Spend Sicht B exponiert — Sicht A Marge/Sätze noch nicht gebaut). Verifizierte Durchsetzung (Rolle aus Better-Auth-JWT-Claim) folgt mit OP-AUTH-1 A-3OP-COST-1, OP-AUTH-1, OP-SEC-12026-07-26
RISK-13Etablierter Wettbewerber (branchennahes Bestandssystem / KFZ-DMS) kopiert die Veredelungs-Nische inkl. Taktung → Differenzierungsvorsprung schmilztMarkt/Wettbewerb224offenVorsprung über Tiefe (CP-SAT-Taktung, „Mensch entscheidet, KI schlägt vor") + Referenzkunden/Verbands-Hebel ausbauen, bevor Nachahmer aufschließen; Roadmap auf den Burggraben fokussierenOP-COMPETE-1, OP-MARKET-12026-06-28
RISK-14Markt zu klein / SOM überschätzt (zu wenige Betriebe mit echtem Planungsschmerz) → Vertriebsinvestition trägt nichtMarkt/Strategie236offenPilot-Validierung VOR großer Vertriebsinvestition (Vorher/Nachher-Messung); TAM/SAM/SOM-Annahmen mit Verbands-/IHK-Statistik kalibrieren; Beachhead scharf halten (Folierer DE)OP-MARKET-1, OP-COMPETE-12026-06-28
RISK-15Assistent-Prompts/Live-State (Auftrags-/Standortdaten) verlassen die EU an den LLM-Provider → DSGVO/AVV-PflichtDatenschutz (DE/AT/CH)236in Arbeit (07-01)EU-gehostetes Modell gewählt (Residenz in der EU, ASSISTENT_LLM_BASE_URL); dormant ohne Key; Datenminimierung (schmale Insight-Projektion statt Roh-State); kein Klartext-PII im Prompt. Offen: AVV mit Provider abschließen + in Compliance.md belegen, EU-Region final verifizierenOP-AI-4, OP-LOG-1, OP-SEC-12026-07-01
RISK-16OTel-Betriebs-Logs/-Metriken an Grafana-Cloud-Region → Telemetrie-Datentransfer (DSGVO DE/AT/CH)Datenschutz (DE/AT/CH)224 → 2gemindert (07-02)EU-Umstellung erfolgt: Stack auf Grafana Cloud EU (otlp-gateway-prod-eu-west-2) umgestellt (Nutzer 07-02) → Telemetrie bleibt in der EU. Zuvor kurzzeitig US-Test-Stack (nur Dev, PII-gescrubbt, keine echten Kundendaten) — abgelöst. AVV/DPA dokumentiert (07-02): als Tracker-Zeile C-18 in Compliance.md erfasst (Datenminimierung: nur PII-gescrubbte Betriebs-Telemetrie, keine Kundendaten; EU-Region belegt) — Rest-Offen (Nutzer/Legal): Grafana-Labs-Standard-DPA gegenzeichnen + ins VVT (C-10) aufnehmen, Retention dokumentieren, vor Go-Live final verifizieren. Wechsel ist code-frei via OTLP (nur OTEL_EXPORTER_OTLP_ENDPOINT/_HEADERS)OP-OBS-1, OP-LOG-1, OP-SEC-12026-07-02
RISK-18Self-hosted CI-Runner (OP-CI-2) führt bei einem Fork-PR fremden Code aus (Build-/Test-Skripte) → Zugriff auf den lokalen Runner-Host/das Netz der OrgSicherheit/CI236 → 2gemindert (07-04)Fork-Gate im Workflow: in ci.yml läuft jeder Job als runs-on: ${{ github.event.pull_request.head.repo.fork && 'ubuntu-latest' || vars.CI_RUNNER || 'self-hosted' }} → PRs aus Forks landen immer auf GitHub-gehosteten Wegwerf-Runnern, nie auf dem self-hosted Runner. sync-pr-logs.yml weist Fork-PRs zusätzlich per Guard 2 vor dem Checkout ab. Deploy-/Schedule-Workflows (fly-deploy/docs-deploy/weekly-audit) laufen nur auf main-Push/Dispatch/Cron im eigenen Repo (kein Fremd-PR). Rest-Offen: Runner-Host härten (ephemer/isoliert, least-privilege im Org-Netz), sobald der lokale Runner produktiv trägtOP-CI-2, OP-SEC-12026-07-04
RISK-17Vectorize (Doku-RAG-Index) bietet keine EU-Jurisdiktions-Option (anders als R2) → Doku-Chunks (inkl. sichtbarkeit:'intern') liegen in einem global verteilten StoreDatenschutz (DE/AT/CH)212in Arbeit (07-02, akzeptiert)Aktiviert (Nutzer-Entscheidung 07-02, überstimmt die frühere Zurückstellung): RAG live geschaltet — Index taktano-doku self-provisioniert + Embeddings-Push via scripts/push-doku-index.mjs (CI deploy + docs-deploy). Exposure gering + by design begrenzt: nur Doku-Inhalte + Metadaten, kein PII, keine Kunden-/Tenant-Daten; Frage-Embeddings über das EU-Modell (RISK-15/C-17), nur der Vektor geht an Vectorize. Compliance-Nachzug erledigt: Zeile C-19 in Compliance.md (Residenz + AVV-Scope C-10). Offen (wiederkehrend): prüfen, ob CF EU-Jurisdiktion für Vectorize anbietet (dann pinnen); bei sensibleren Index-Inhalten (Tenant-Doku) neu bewertenOP-DOCS-2, OP-AI-4, OP-SEC-1, C-192026-07-02
RISK-19Akquise-/Orga-Tool (OP-VERTRIEB-2) — falls Standard-CRM/Marketing-Tool (z. B. Hubspot) statt Eigenbau gewählt wird: Lead-Kontaktdaten fremder Betriebe (kein Taktano-Mandantendatum) landen bei einem externen Anbieter → AVV-/EU-Residenz-Pflicht (DSGVO DE/AT/CH), noch nicht geprüftDatenschutz (DE/AT/CH)224offenVor Tool-Entscheidung klären (Teil der Build-vs-Buy-Prüfung OP-VERTRIEB-2 selbst): EU-Residenz/AVV-Fähigkeit des gewählten Anbieters, Datenminimierung (nur Kontakt-/Call-Status-Daten, keine weiteren PII), VVT-Eintrag (C-10) bei Go-LiveOP-VERTRIEB-22026-07-11

Review-Rhythmus

  • Je Session/PR: betroffene Risiken sichten; neue Risiken aus dem Change eintragen; Score/Status aktualisieren.
  • Vorrangig behandeln: Score ≥ 6. Bei neuen kritischen/regulatorischen Themen für DE/AT/CH sofort flaggen + Optionen aufzeigen (CLAUDE.md §Compliance) und hier eintragen.
  • Verknüpfung: Maßnahmen hängen an den OPs in ops/<ID>.md (Single Source der Umsetzung, → Offene-Punkte.md); dieses Register bündelt die Risiko-Sicht.

↩ Zurück zur Doku-Landkarte · Lesepfade · Register (alle OPs)