trading-system-docs/notion-safety-brain/PILOT_RUN_20260825_001.md

159 lines
5.7 KiB
Markdown

# 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:<sha>` 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.*