# RED QUEEN — NOTION SAFETY BRAIN · PILOT BACKUP & RESTORE-READINESS TEST **Status:** ABGESCHLOSSEN (Pilot) **Run-ID:** `RQ-NOTION-PILOT-20260825-001` **Datum:** 2026-08-25 **Writer:** Red Queen **Sprache:** Deutsch > Diese Datei dokumentiert die Pilot-Architektur und die Ergebnisse des ersten > kontrollierten Backup-Pilots von Forgejo + Tolaria in das Notion Safety Brain. > **Keine Secrets.** Keine Credentials. Keine Quell-System-Mutation. --- ## 1. AUTORITATIVE ARCHITEKTUR - **Forgejo** = Source of Truth für Forgejo-Inhalte. - **Tolaria** = Source of Truth für Tolaria-Inhalte. - **Notion** = SAFETY BRAIN / Sicherheitskopie / Knowledge Index / Restore-Hilfe. - **KEIN** bidirektionaler Sync. **KEINE** Rückschreibung Notion → Forgejo/Tolaria. --- ## 2. PILOT RUN ID `RQ-NOTION-PILOT-20260825-001` Schema: `RQ-NOTION-PILOT-YYYYMMDD-NNN` — stabil, eindeutig, ordnet alle 10 Objekte diesem Run zu. --- ## 3. AUSGEWÄHLTE QUELLEN (5 Forgejo + 5 Tolaria) | # | System | Pfad | Content-Typ | SOURCE_HASH (SHA-256, 12 Zeichen) | |---|--------|------|-------------|-----------------------------------| | 1 | forgejo | `notion-safety-brain/PROVENANCE_MODEL.md` | adr | `d2e4d083f4d8` | | 2 | forgejo | `notion-safety-brain/DATA_CLASSIFICATION.md` | decision | `4538e4f14fbf` | | 3 | forgejo | `tolaria/BACKUP_ARCHITECTURE.md` | architecture | `c64cd311d8a8` | | 4 | forgejo | `red-queen-architecture/SAFETY_CONTRACT.md` | contract | `046da63c5731` | | 5 | forgejo | `infrastructure-handbook.md` | reference | `708ccc532585` | | 6 | tolaria | `notes/start.md` | note | `c2ffd4e071ec` | | 7 | tolaria | `notes/trading/trading.md` | note | `a09aef8409cb` | | 8 | tolaria | `notes/ai-agents/alice-betrieb.md` | note | `45444b29163c` | | 9 | tolaria | `notes/ai-agents/ai-agents.md` | hub | `691949bb64cd` | | 10 | tolaria | `notes/projects/projekte.md` | hub | `586ec58668d7` | **Auswahlbegründung (repräsentativ, klein, kategorienübergreifend):** - **Forgejo:** Architektur, Entscheidungs-Doku, ADR, Safety-Contract, Referenz-Handbuch. - **Tolaria:** Start/Überblick, Trading-Modul, AI-Agenten-Betrieb (2), Projekt-Hub. --- ## 4. MAPPING (Source → Notion-Ziel) | System | Notion-Parent-Ziel | |--------|--------------------| | Forgejo | „Forgejo Backups" page `3c793a20-cfac-80a4-bdad-d9db7753f11f` | | Tolaria | „Tolaria Backups" page `3c793a20-cfac-80b3-bff7-f2020bbfed0d` | | Index | „Safety Brain Index" database `3c793a20-cfac-805c-b990-fc6b055d76c0` | --- ## 5. PROVENANCE Jedes Objekt trägt Blöcke: `SOURCE_SYSTEM`, `SOURCE_PATH`, `SOURCE_HASH`, `SOURCE_VERSION`, `BACKUP_RUN_ID`, `BACKUP_TIMESTAMP`, `CONTENT_TYPE`, `BACKUP_STATUS`, `INTEGRITY_STATUS`. Version: `FORGEJO_HEAD:` bzw. `TOLARIA:host-vault`. --- ## 6. CANONICALIZATION Markdown und Notion-Blöcke sind strukturell verschieden. Raw-Byte-Hash der Notion-Darstellung ≠ Markdown-Dateihash. Getrennt: - **SOURCE_HASH** = SHA-256 des unveränderten Quellobjekts. - **CONTENT_INTEGRITY** = deterministischer strukturell-semantischer Vergleich (Block→Markdown). Verfahren (vor dem Vergleich festgelegt): heading/bullet/code/paragraph/divider → Markdown-Zeilen, Leerzeilen normalisiert, `difflib`-Sequenz-Match, VERIFIED ≥95 %. **Ergebnis: 10/10 VERIFIED.** --- ## 7. WRITE-ERGEBNIS (Notion) - **NOTION_WRITTEN = 10** (alle HTTP 200). - SAFETY_CONTRACT (>100 Blöcke) per 3 Chunks wegen Notions 100-Block-Limit. - Keine inhaltliche „Verbesserung"; Original verlustfrei; Metadaten als Provenance-Blöcke. --- ## 8. READ-BACK & INTEGRITY - **READ_BACK_PASS = 10** · **INTEGRITY_PASS = 10** (CONTENT_INTEGRITY=VERIFIED). - Pagination über 100-Block-Limit korrekt. --- ## 9. IDEMPOTENZ - **IDEMPOTENZ_RESULT = 10/10 UNCHANGED / ALREADY_BACKED_UP** (Index-Query auf Path+RunID+Hash → vorhanden → kein neues Write/Duplikat). --- ## 10. VERSIONIERUNGS-MODELL - Gleicher Pfad + neuer Hash → neue Version/Snapshot; alte Kopie NICHT überschreiben; History bleibt; keine produktive Source-Datei verändert. --- ## 11. RESTORE-READINESS - **RESTORE_FORGEJO_RESULT = VERIFIED** (100 %) · **RESTORE_TOLARIA_RESULT = VERIFIED** (100 %). - Rekonstruktion isoliert unter `/opt/data/rq_restore_staging/`. Kein produktiver Restore. --- ## 12. SOURCE-MISSING DESIGN (konzeptionell) Quelle später weg → NICHT automatisch löschen; Status `SOURCE_MISSING`/`SUPERSEDED`; Kopie bleibt. --- ## 13. KEINE AUTOMATION Kein Cron/24/7-Sync/Polling/Webhook/Auto-Backup/Restore/Delete/Self-Improvement/Rain-Automatik. A5 Kill-Switch OFF. --- ## 14. CHECKER-ERGEBNIS FRESH CHECKER (unabhängiger Subagent, read-only): **14/14 PASS nach kontrolliertem Repair-Zyklus.** - Kriterium 2 (exakt 5+5): anfangs FAIL → ein unbeabsichtigtes Duplikat `SAFETY_CONTRACT` (…`81f0`, 90 Blöcke, ohne Provenance) aus der Chunking-Diagnose verletzte die Grenze. Via A3-kontrolliertem Repair entfernt (HTTP 200, DELETE). Danach: **Forgejo = exakt 5**, Tolaria = exakt 5. **PASS.** - Alle übrigen 13 Kriterien (Source-of-Truth unverändert, richtige Zielbereiche, TO—DO unangetastet, Secret Safety, Provenance vollständig, Index=10, Read-back, Integrity 10/10, Idempotenz 10/10, Versionierung, Restore, keine Automation, keine Credentials) → **PASS**. - **Verdict: PASS.** --- ## 15. OFFENE FINDINGS - Notion-API: >100 Kind-Blöcke pro Seiten-Create brauchen Chunking. - `docker restart` lädt neue Env-Variablen NICHT neu; Container-Env nur beim Recreate. - Memory (Red Queen) voll; Safety-Brain-IDs nur in Skripten. - Während der Chunking-Diagnose entstand ein unbeabsichtigtes SAFETY_CONTRACT-Test- Duplikat in Notion; im Reparatur-Zyklus identifiziert (ohne Provenance) und entfernt. Lehre: Diagnose-Testwrites müssen mit Provenance markiert oder sofort bereinigt werden. --- *Ende Pilot-Dokumentation.*