# LeoCRM — Quality Gate Phase 2 (Architecture) Review **Reviewer:** Quality Reviewer (Agent Zero) **Datum:** 2026-06-28 **Phase:** Phase 2 — Architecture + Task Graph + AGENTS.md **Verdict:** ❌ **BLOCKED** — 3 Critical Issues, 5 Major Issues --- ## Prüfkriterien-Übersicht | # | Kriterium | Ergebnis | Severity | |---|----------|----------|----------| | 1 | Architecture.md deckt alle 10 Bereiche ab | ✅ PASS | — | | 2 | Task Graph: 6-8 substantielle Tasks | ✅ PASS | — | | 3 | 143/143 Features abgedeckt | ❌ **FAIL** | CRITICAL | | 4 | AGENTS.md: Commands, Forbidden Patterns, Task-Zuweisung | ✅ PASS | — | | 5 | Keine Widersprüche arch.md ↔ requirements.md | ⚠️ PARTIAL | MAJOR | | 6 | Keine Widersprüche task_graph.json ↔ arch.md | ⚠️ PARTIAL | MINOR | | 7 | Multi-Tenant (tenant_id) konsistent | ✅ PASS | — | | 8 | Plugin-System als v1-Core-Feature | ✅ PASS | — | | 9 | PostgreSQL 16, React 18 SPA, FastAPI | ✅ PASS | — | | 10 | Session-based Auth + API-Token separat | ⚠️ PARTIAL | CRITICAL | **Gesamt:** 6 PASS, 2 PARTIAL, 1 FAIL, 1 CRITICAL PARTIAL → **BLOCKED** --- ## Detaillierte Befunde ### ✅ Kriterium 1: Architecture.md — 10 Bereiche (PASS) Alle 10 Bereiche sind vorhanden und substantiell ausgearbeitet: | Bereich | Section | Zeilen | Status | |---------|---------|--------|-------| | System Architecture | §1 | 1-131 | ✅ Vollständig (Diagramm, Services, Backend/Frontend Struktur) | | DB Schema | §2 | 134-725 | ✅ Vollständig (Core + Plugin Tables, FTS) | | API Design | §3 | 728-967 | ✅ Vollständig (alle Endpoints mit Feature-IDs) | | Plugin Architecture | §4 | 970-1078 | ✅ Vollständig (Manifest, Lifecycle, Event Bus, DI, UI Framework) | | Multi-Tenant | §5 | 1081-1106 | ✅ Vollständig (Session Context, ORM Auto-Filter, TenantMixin) | | Auth | §6 | 1108-1171 | ✅ Vollständig (Session, RBAC, API Tokens, CSRF, Password Reset) | | Frontend | §7 | 1174-1244 | ✅ Vollständig (Stack, Routing, State, i18n, A11Y, Design System) | | Deployment | §8 | 1247-1343 | ✅ Vollständig (Docker Compose, .env, Backup) | | Test Strategy | §9 | 1345-1386 | ✅ Vollständig (Backend, Frontend, E2E) | | ADRs | §10 | 1389-1450 | ✅ Vollständig (6 ADRs mit Context/Decision/Rationale/Alternatives) | --- ### ✅ Kriterium 2: Task Graph — 8 substantielle Tasks (PASS) | Task | Titel | Est. Lines | Dependencies | Test Spec | Acceptance Criteria | |------|-------|------------|--------------|------------|---------------------| | T01 | Core Infrastructure + Multi-Tenant + Auth | 500 | — | ✅ 3 commands | ✅ 25 criteria | | T02 | Company + Contact + Import/Export | 600 | T01 | ✅ 3 commands | ✅ 24 criteria | | T03 | Plugin System Framework | 500 | T01 | ✅ 3 commands | ✅ 14 criteria | | T04 | DMS Plugin + Tags Plugin | 700 | T01, T03 | ✅ 4 commands | ✅ 32 criteria | | T05 | Calendar Plugin | 700 | T01, T03 | ✅ 3 commands | ✅ 29 criteria | | T06 | Mail Plugin | 800 | T01, T03 | ✅ 3 commands | ✅ 27 criteria | | T07 | Frontend Core SPA | 600 | T01, T02 | ✅ 4 commands | ✅ 31 criteria | | T08 | Frontend Plugins + Search + Deployment | 700 | T03-T07 | ✅ 6 commands | ✅ 42 criteria | - Alle Tasks im 200-800 Zeilen-Bereich ✅ - Jeder Task hat test_spec mit commands, test_files, coverage_target ✅ - Jeder Task hat substantielle acceptance_criteria ✅ - 5-Phasen-Execution-Plan mit Parallelisierung ✅ - Keine Micro-Tasks ✅ --- ### ❌ Kriterium 3: Feature Coverage 143/143 (FAIL — CRITICAL) **Cross-Check-Ergebnis (programmatisch durchgeführt):** - **Requirements.md:** 143 eindeutige Feature-IDs - **Task Graph:** 114 eindeutige Feature-IDs in requirement_ids arrays - **Fehlend:** 30 Features in requirements.md aber NICHT in task_graph.json - **Phantom:** 1 Feature in task_graph.json aber NICHT in requirements.md (F-CONT-08) #### Klassifikation der 30 fehlenden Features: **Kategorie A: v2-Scope (6 Features — legitimerweise ausgeschlossen)** | Feature | Beschreibung | Tag | |---------|-------------|-----| | F-FILE-01 | Datei-Explorer | [v2-Plugin] | | F-FILE-02 | Datei-Sharing | [v2-Plugin] | | F-FILE-03 | PDF-Preview | [v2-Plugin] | | F-FILE-04 | OnlyOffice-Integration | [v2-Plugin] | | F-FILEUI-05 | Upload-Progress-Anzeige | [v2-Plugin] | | F-FILEUI-06 | Drag & Drop zwischen Ordnern | [v2-Plugin] | → Diese 6 Features sind als [v2-Plugin] markiert und korrekterweise nicht in v1-Tasks enthalten. Funktionalität ist teilweise durch F-DMS-XX und F-FILEUI-01-04 abgedeckt. **Kategorie B: Implizit abgedeckt, aber Feature-ID fehlt in task_graph (19 Features — Traceability-Gap)** | Feature | Beschreibung | Implizit gedeckt durch | Severity | |---------|-------------|----------------------|----------| | F-DATA-03 | Daten-Validierung | Pydantic schemas in allen Tasks | MAJOR | | F-DATA-04 | PostgreSQL als Datenbank | ADR-01, gesamte DB Schema | MAJOR | | F-DATA-06 | ARIA-Rollen auf DataTable | F-A11Y-01/02/03 in T07 | MAJOR | | F-ENV-01 | Environments & Secrets | .env.example in Architecture §8 | MAJOR | | F-INFRA-02 | Backup & Restore | Architecture §8 Backup section | MAJOR | | F-INFRA-03 | Logging | LOG_LEVEL in .env.example | MAJOR | | F-NAV-01 | Navigation Sidebar | T07 Layout Shell (Sidebar) | MAJOR | | F-SCHED-01 | Background-Jobs | T01 ARQ Job Queue | MAJOR | | F-SEC-02 | XSS-Schutz & Input-Sanitization | DOMPurify, Pydantic validation | MAJOR | | F-SEC-03 | Session-Timeout | T01 Auth (8h timeout) | MAJOR | | F-SET-01 | Einstellungen als Baum-Menü | T07 Settings Feature (SettingsTree) | MAJOR | | F-TEST-01 | Testing-Strategie | Architecture §9 + AGENTS.md | MAJOR | | F-UI-01 | Responsive Design | T07 Tailwind responsive breakpoints | MAJOR | | F-UI-02 | Internationalisierung | T07 i18n setup (de/en) | MAJOR | | F-UI-03 | Error-Handling & Toast | T07 Toast component | MAJOR | | F-UI-04 | Loading-States | T07 Skeleton component | MAJOR | | F-UI-05 | Empty-States | T07 EmptyState component | MAJOR | | F-UI-06 | Confirmation-Dialogs | T07 ConfirmDialog | MAJOR | | F-UI-08 | Datenansichten Tabelle/Karten/Liste | T07 TanStack Table | MAJOR | → Diese 19 Features sind funktional durch die Tasks abgedeckt, aber ihre Feature-IDs sind NICHT in den `requirement_ids` Arrays der Tasks gelistet. **Die Traceability ist broken.** Jede Anforderung muss explizit einem Task zugeordnet sein. **Kategorie C: Völlig unabgedeckt — v1 Features ohne Task und ohne Architecture (5 Features — CRITICAL)** | Feature | Beschreibung | Status | Severity | |---------|-------------|--------|----------| | **F-AI-01** | KI-Copilot mit voller API-Kontrolle [v1] | ❌ KEIN Task, KEINE Architecture | **CRITICAL** | | **F-WF-01** | Hybrid-Workflow-Engine [v1] | ❌ KEIN Task, KEINE Architecture | **CRITICAL** | | F-DOC-01 | Dokumentation [v1] | ❌ KEIN Task | MAJOR | | F-INFRA-04 | Monitoring & Alerting [v1] | ❌ Nicht abgedeckt | MAJOR | | F-PERF-01 | Performance [v1] | ❌ Nicht abgedeckt | MAJOR | **Detailanalyse F-AI-01 (KI-Copilot):** - Requirements sagen: "KI-Copilot von Anfang an einplanen" + "Architektur muss KI-Integration von vornherein unterstützen" - Architecture.md erwähnt nur API-First-Design (F-CORE-06), aber hat KEINE Sektion für KI-Integration - Task Graph hat keinen Task für KI-Copilot - Der Copilot benötigt API-Zugriff mit RBAC-Respektierung — die API existiert, aber kein Task implementiert die Copilot-Integration - **Erforderliche Aktion:** Architektur um KI-Integration-Sektion erweitern + Task für KI-Copilot API-Endpunkt hinzufügen (oder als Teil von T01/T02 als API-First-Design-Nachweis) **Detailanalyse F-WF-01 (Hybrid-Workflow-Engine):** - Requirements sagen: "Hybrid-Ansatz: Code-Engine für Kern-Workflows + konfigurierbare Workflow-Regeln" - Architecture.md hat Event Bus, aber keine Workflow-Engine - Task Graph hat keinen Task für Workflow-Engine - **Erforderliche Aktion:** Architektur um Workflow-Engine-Sektion erweitern + Task hinzufügen (oder bestehenden Task erweitern) #### Phantom Feature | Feature | In task_graph | In requirements.md | Issue | |---------|--------------|-------------------|-------| | F-CONT-08 | ✅ T02 requirement_ids | ❌ Nicht vorhanden | Phantom — vermutlich GDPR-Delete für Contacts, das eigentlich F-COMP-08 ist (bereits gelistet) | --- ### ✅ Kriterium 4: AGENTS.md (PASS) **Build/Test Commands:** - Backend: venv setup, uvicorn, alembic, pytest, pytest-cov, mypy, ruff ✅ - Frontend: npm install, dev, build, vitest, tsc, eslint ✅ - Docker Compose: build, up, logs, down, config validate ✅ - E2E: Playwright install + test ✅ **Forbidden Patterns:** - Backend: 14 Forbidden Patterns (SQLite, Jinja2, Cross-Tenant, Plaintext Passwords, JWT, Naive Datetime, Integer IDs, Hard-Delete ohne GDPR, Manual Tenant Filter, Sync I/O, Raw SQL, Secrets in Code, Unvalidated Input, Missing Audit Log, Plugin Tables ohne tenant_id) ✅ - Frontend: 10 Forbidden Patterns (Class Components, Inline Styles, Hardcoded Strings, Manual Fetch, Server Data in Zustand, `any` Types, Missing ARIA, Touch Targets <44px, Direct DOM, Unsafe HTML) ✅ - Deployment: 5 Forbidden Patterns (Root in Container, Exposed DB Port, No Health Check, No Volume, Secrets in compose) ✅ **Task-Zuweisung:** - 5-Phasen-Plan mit Parallelisierung ✅ - Task-to-Subagent Mapping (alle implementation_engineer) ✅ - Block Rules (max 3 Tasks/Block, quality_reviewer nach Block) ✅ - Quality Gates (Per-Task, Phase, Release) ✅ --- ### ⚠️ Kriterium 5: Widersprüche architecture.md ↔ requirements.md (PARTIAL — MAJOR) **Keine direkten Widersprüche** in Technologie-Entscheidungen: - PostgreSQL 16 ↔ F-DATA-04 ✓ - React 18 SPA ↔ Requirements ✓ - FastAPI Backend ↔ Requirements ✓ - Session-based Auth ↔ F-AUTH-01/F-INT-02 ✓ - Plugin System ↔ F-PLUGIN-01/02 ✓ **Aber: Gaps (Requirements fordern, Architecture schweigt):** - F-AI-01 fordert KI-Integration → Architecture hat keine KI-Sektion (CRITICAL) - F-WF-01 fordert Workflow-Engine → Architecture hat keine Workflow-Sektion (CRITICAL) - F-SEC-02 fordert CSP-Header → Architecture erwähnt keinen CSP-Header (MINOR) - F-INFRA-04 fordert Monitoring & Alerting → Architecture hat keins (MAJOR) - F-PERF-01 fordert Performance-Requirements → Architecture hat keine Performance-Sektion (MAJOR) --- ### ⚠️ Kriterium 6: Widersprüche task_graph.json ↔ architecture.md (PARTIAL — MINOR) - Task-API-Endpoints ↔ Architecture API Design: Konsistent ✅ - Task-DB-Models ↔ Architecture DB Schema: Konsistent ✅ - Task-Plugin-Architecture ↔ Architecture Plugin Section: Konsistent ✅ - Task-Dependencies ↔ Architecture Service Dependencies: Konsistent ✅ - **F-CONT-08** in T02 requirement_ids existiert nicht in requirements.md (Phantom) — MINOR - `api_tokens` table in Architecture §6 erwähnt, aber nicht in DB Schema §2 — MINOR --- ### ✅ Kriterium 7: Multi-Tenant konsistent (PASS) - DB Schema: Jede Tabelle hat `tenant_id UUID FK→tenants.id` ✅ - Core: tenants, users, user_tenants, roles, sessions, companies, contacts, company_contacts, audit_log, deletion_log, notifications, password_reset_tokens, plugins ✅ - DMS: dms_folders, dms_files, file_links, folder_permissions, file_shares, share_links ✅ - Calendar: calendars, calendar_entries, calendar_entry_links, calendar_shares, user_calendar_visibility, subtasks, resources, resource_bookings ✅ - Mail: mail_accounts, mail_folders, mails, mail_attachments, mail_labels, mail_label_assignments, mail_rules, mail_templates, mail_signatures, vacation_sent_log, pgp_keys, contact_pgp_keys ✅ - Tags: tags, tag_assignments ✅ - Architecture §5: ORM Auto-Filter via `before_query` event listener ✅ - TenantMixin base class ✅ - Cross-Tenant Protection: 404 (not 403) ✅ - Plugin Tables MUST include tenant_id — migration validator enforces ✅ - AGENTS.md Forbidden: "Plugin Tables without tenant_id" ✅ - Task T01 acceptance criteria: "Cross-tenant access auf company → 404" ✅ --- ### ✅ Kriterium 8: Plugin-System als v1-Core-Feature (PASS) - Architecture §4: Vollständige Plugin-Architektur (Manifest, Lifecycle, Event Bus, DI, UI Framework) ✅ - ADR-03: Built-in plugins with manifest-driven registration ✅ - Task T03: Plugin System Framework (install/activate/deactivate/uninstall, migrations, UI registry) ✅ - Tasks T04-T06: Plugin-Implementierungen (DMS+Tags, Calendar, Mail) ✅ - Plugin Endpoints in API Design ✅ - AGENTS.md: Plugin structure in conventions ✅ - Nicht als Non-Goal markiert ✅ --- ### ✅ Kriterium 9: PostgreSQL 16, React 18 SPA, FastAPI (PASS) - Docker Compose: `postgres:16-alpine` ✅ - Frontend Stack: React 18, Vite, React Router v6 ✅ - Backend: FastAPI + Uvicorn ✅ - ADR-01: PostgreSQL 16 instead of SQLite ✅ - AGENTS.md Forbidden: ❌ SQLite, ❌ Jinja2 ✅ - Keine SQLite-Referenzen in gesamter Architektur ✅ - Keine Jinja2-Referenzen in gesamter Architektur ✅ --- ### ⚠️ Kriterium 10: Session-based Auth + API-Token separat (PARTIAL — CRITICAL) **Session-based Auth:** - Architecture §6: Session in `sessions` table, HttpOnly+Secure+SameSite=Strict cookie ✅ - ADR-05: Session-based Auth instead of JWT ✅ - AGENTS.md Forbidden: ❌ JWT Tokens ✅ - Password hashing: bcrypt cost=12 ✅ - CSRF: SameSite=Strict + Origin-Header-Validierung ✅ **⚠️ CRITICAL CONTRADICTION — Session Storage:** - Architecture §6 (line 1116): "Create session in `sessions` table" → PostgreSQL - ADR-05 (line 1437): "Server-side sessions in Redis" + "Session data in Redis for fast lookup" - DB Schema (lines 193-200): `sessions` table definiert mit id, user_id, tenant_id, csrf_token, expires_at - **Widerspruch:** Section 6 sagt PostgreSQL `sessions` table, ADR-05 sagt Redis. Es ist unklar, ob Sessions in Redis ODER PostgreSQL ODER beiden gespeichert werden. - **Erforderliche Aktion:** Klären und konsistent dokumentieren: Redis für Session-Lookup (fast) + PostgreSQL für Persistenz (survival)? Oder nur PostgreSQL? ADR-05 muss mit Section 6 übereinstimmen. **API Tokens:** - Architecture §6 erwähnt `api_tokens` table (user_id, token_hash, name, scopes, expires_at) ✅ - Markiert als "post-MVP, but architecture supports it" ✅ - `api_tokens` table NICHT in DB Schema §2 definiert — MINOR - Token auth via `Authorization: Bearer ` ✅ - Token respektiert RBAC und tenant isolation ✅ --- ## Severity Summary | Severity | Count | Details | |----------|-------|--------| | **CRITICAL** | 3 | F-AI-01 fehlt, F-WF-01 fehlt, Session-Storage-Widerspruch | | **MAJOR** | 5 | 19 Features ohne Traceability, F-DOC-01 fehlt, F-INFRA-04 fehlt, F-PERF-01 fehlt, F-CONT-08 Phantom | | **MINOR** | 3 | api_tokens table nicht in DB Schema, CSP-Header nicht erwähnt, Architecture line 1033 typo (```n) | | **SUGGESTION** | 1 | Feature-IDs der implizit abgedeckten Features zu task_graph hinzufügen | --- ## Findings (Strukturiert) ### CRITICAL-1: F-AI-01 (KI-Copilot) — V1 Feature komplett fehlt - **Artifact:** architecture.md, task_graph.json - **Location:** F-AI-01 in requirements.md ist [v1], aber kein Task und keine Architecture-Sektion - **Issue:** Requirements fordern KI-Copilot mit API-Kontrolle und RBAC-Respektierung. Weder Architecture.md noch Task Graph enthalten einen Task oder eine Sektion dafür. - **Recommendation:** 1. Architecture.md um Sektion "KI-Integration" erweitern: API-First-Design als Grundlage, KI-Copilot API-Endpoint (`/api/v1/ai/copilot`), RBAC-Durchsetzung via bestehende Middleware 2. Task Graph: Neuen Task T09 hinzufügen ODER T01/T02 erweitern um KI-Copilot API-Endpoint 3. F-AI-01 zu requirement_ids des entsprechenden Tasks hinzufügen - **Block transition:** JA ### CRITICAL-2: F-WF-01 (Hybrid-Workflow-Engine) — V1 Feature komplett fehlt - **Artifact:** architecture.md, task_graph.json - **Location:** F-WF-01 in requirements.md ist [v1], aber kein Task und keine Architecture-Sektion - **Issue:** Requirements fordern Hybrid-Workflow-Engine (Code-Engine + konfigurierbare Regeln). Architecture hat nur Event Bus, keine Workflow-Engine. - **Recommendation:** 1. Architecture.md um Sektion "Workflow Engine" erweitern: Code-basierte Kern-Workflows + konfigurierbare User-Workflows 2. DB Schema: `workflows`, `workflow_steps`, `workflow_instances` Tabellen 3. Task Graph: Neuen Task hinzufügen ODER bestehenden Task erweitern 4. F-WF-01 zu requirement_ids hinzufügen - **Block transition:** JA ### CRITICAL-3: Session-Storage-Widerspruch (PostgreSQL vs Redis) - **Artifact:** architecture.md - **Location:** Section 6 (line 1116) vs ADR-05 (line 1437) - **Issue:** Section 6 sagt "Create session in `sessions` table" (PostgreSQL). ADR-05 sagt "Server-side sessions in Redis". DB Schema definiert `sessions` table. Unklar, wo Sessions gespeichert werden. - **Recommendation:** 1. Entscheidung treffen: Redis für Session-Store (fast, mit TTL) ODER PostgreSQL `sessions` table (persistent) ODER beides (Redis für Lookup + PostgreSQL für Audit) 2. Architecture §6 und ADR-5 konsistent machen 3. Wenn Redis-only: `sessions` table aus DB Schema entfernen oder als Audit-Trail behalten 4. Wenn PostgreSQL-only: ADR-05 Rationale anpassen - **Block transition:** JA ### MAJOR-1: 19 v1 Features ohne Traceability in task_graph - **Artifact:** task_graph.json - **Location:** requirement_ids arrays in allen Tasks - **Issue:** 19 Features sind funktional durch Tasks abgedeckt, aber ihre IDs fehlen in den requirement_ids Arrays. Traceability ist broken. - **Recommendation:** Füge folgende Feature-IDs zu den entsprechenden Tasks hinzu: - T01: F-SCHED-01, F-SEC-02, F-SEC-03, F-INFRA-03 - T02: F-DATA-03, F-DATA-04 - T07: F-NAV-01, F-SET-01, F-UI-01, F-UI-02, F-UI-03, F-UI-04, F-UI-05, F-UI-06, F-UI-08, F-DATA-06 - T08: F-ENV-01, F-INFRA-02 - Alle Tasks / übergreifend: F-TEST-01 - **Block transition:** NEIN, aber vor Implementation beheben ### MAJOR-2: F-DOC-01 (Dokumentation) — V1 Feature ohne Task - **Artifact:** task_graph.json - **Issue:** F-DOC-01 fordert Dokumentation. Kein Task hat diesen Feature-ID. Architektur erwähnt `docs/admin-guide.md` aber kein Task erstellt Dokumentation. - **Recommendation:** T08 um Dokumentations-Task erweitern oder separaten Mini-Task für Admin-Guide + API-Docs hinzufügen ### MAJOR-3: F-INFRA-04 (Monitoring & Alerting) — V1 Feature nicht abgedeckt - **Artifact:** architecture.md, task_graph.json - **Issue:** Requirements fordern Monitoring & Alerting. Architecture und Task Graph enthalten keins. - **Recommendation:** Architecture §8 um Monitoring-Sektion erweitern (z.B. /health endpoint erweitert, Prometheus metrics, Alerting). Task T01 oder T08 um Monitoring erweitern. ### MAJOR-4: F-PERF-01 (Performance) — V1 Feature nicht abgedeckt - **Artifact:** architecture.md, task_graph.json - **Issue:** Requirements fordern Performance (200k Records, FTS, <2s Response). Architecture hat keine Performance-Sektion oder -Tests. - **Recommendation:** Architecture um Performance-Sektion erweitern (DB Indexing Strategy, Query Optimization, Pagination Limits). Task T02 um Performance-Test erweitern (200k seed + list <2s). ### MAJOR-5: F-CONT-08 Phantom in task_graph.json - **Artifact:** task_graph.json - **Location:** T02 requirement_ids array - **Issue:** F-CONT-08 existiert nicht in requirements.md. Vermutlich für GDPR-Delete von Contacts gedacht, was bereits durch F-COMP-08 abgedeckt ist. - **Recommendation:** F-CONT-08 aus T02 requirement_ids entfernen. Funktionalität ist bereits durch F-COMP-08 abgedeckt. ### MINOR-1: api_tokens table nicht in DB Schema definiert - **Artifact:** architecture.md - **Location:** Section 6 erwähnt api_tokens table, aber Section 2 (DB Schema) definiert sie nicht - **Recommendation:** api_tokens table in DB Schema aufnehmen (selbst wenn post-MVP) ### MINOR-2: CSP-Header nicht erwähnt - **Artifact:** architecture.md - **Location:** F-SEC-02 fordert CSP-Header, Architecture erwähnt keins - **Recommendation:** Nginx config um Content-Security-Policy Header erweitern ### MINOR-3: Architecture line 1033 — Typo in code fence - **Artifact:** architecture.md - **Location:** Line 1033: `​```n` statt `​``` ` - **Recommendation:** `n` entfernen --- ## Next Steps (vor Phase-Übergang erforderlich) 1. **[CRITICAL]** Architecture.md um KI-Integration-Sektion erweitern (F-AI-01) 2. **[CRITICAL]** Architecture.md um Workflow-Engine-Sektion erweitern (F-WF-01) + entsprechende DB-Tabellen 3. **[CRITICAL]** Session-Storage-Widerspruch auflösen (Redis vs PostgreSQL) und Architecture §6 + ADR-05 konsistent machen 4. **[MAJOR]** 19 implizit abgedeckte Feature-IDs zu task_graph.json requirement_ids hinzufügen 5. **[MAJOR]** F-DOC-01, F-INFRA-04, F-PERF-01 Tasks oder Task-Erweiterungen definieren 6. **[MAJOR]** F-CONT-08 aus task_graph.json entfernen (Phantom) 7. **[MINOR]** api_tokens table in DB Schema aufnehmen 8. **[MINOR]** CSP-Header in Nginx config dokumentieren 9. **[MINOR]** Typo in architecture.md line 1033 korrigieren 10. **[SUGGESTION]** feature_coverage_summary in task_graph.json aktualisieren nach Hinzufügen der fehlenden IDs --- ## Review-Metadata - **Files reviewed:** architecture.md (1468 lines), task_graph.json (480 lines), AGENTS.md (538 lines), requirements.md (2142 lines, Referenz) - **Cross-check method:** Programmatische Feature-ID-Extraktion + Set-Differenz (Python regex) - **Review duration:** Vollständige Lektüre aller 4 Dateien - **Tool used:** text_editor (read), code_execution_tool (python cross-check)