Files
Orchestrator/docs/monorepo-presentation.md
T

4.4 KiB
Raw Blame History

Monorepo-Konsolidierung Präsentation


Problem

  • 18+ einzelne Repositories — kein Überblick, kein Zusammenhang
  • Secrets manuell transportieren — .gitignore-basiert, geht bei neuem Rechner verloren
  • 3 Arbeitskontexte (Bahn, Extern, Privat) — vermischen sich unkontrolliert
  • AI-Agenten greifen unkontrolliert auf Dateien aller Kontexte zu
  • Team-Zusammenarbeit erfordert separate Repos — aber ich will den Überblick behalten
  • Wissen verstreut — Confluence, Jira, lokale Notizen, Chats, keine Suche darüber

Lösung: Ein Monorepo mit Kontextgrenzen

monorepo/
├── bahn/           ← 10 DB-InfraGO-Projekte
├── extern/          ← 2 externe Projekte
├── privat/         ← 2 persönliche Projekte
└── shared/         ← Übergreifende Tools, Orchestrator, Wissen

Grundprinzip: Alles an einem Ort, aber mit klaren Grenzen.


Kernideen

1. Kontextbasierte Sicherheit

  • Jeder Kontext hat eigene Secrets (verschlüsselt im Repo via git-crypt)
  • AI-Agent im Kontext "bahn" kann nicht auf "privat"-Secrets zugreifen
  • Zugriffsverletzungen werden geloggt und der Task wird abgebrochen

2. Maschinenkontext

  • Jeder Rechner hat nur Zugriff auf autorisierte Kontexte
  • Extern-Laptop → nur extern-Secrets entschlüsselbar
  • Hauptrechner → alles entschlüsselbar
  • Neue Maschine? Dokumentierter Onboarding-Prozess

3. Föderierte Team-Zusammenarbeit

  • Bahn-Team sieht nur bahn/ als eigenständiges Git-Repo
  • Extern-Team sieht nur extern/ als eigenständiges Git-Repo
  • Nur ich sehe das vollständige Monorepo (Hub-and-Spoke)
  • Bidirektionale Synchronisation, Team hat Vorrang bei Konflikten

4. Multi-Harness AI-Dispatch

  • Pro Kontext/Task den optimalen AI-Agenten wählen
  • Kiro, Codex, Claude Code, Antigravity — einheitliche Schnittstelle
  • Agent bekommt nur Workspace + Secrets seines Kontexts

5. Übergreifender Wissensspeicher

  • ETL-Pipeline für alle Wissensquellen (Markdown, Confluence, Jira, PDFs)
  • Progressive Disclosure: Agent liest erst Index, lädt bei Bedarf Details
  • Kontextübergreifende Suche mit Berechtigungsprüfung
  • Kontextbrücke: Wissen gezielt freigeben (mit Sensitive-Content-Filter)

Benefits

Vorteil Details
Ein Repo, voller Überblick Alle Projekte an einem Ort, klar strukturiert
Secrets sicher & portabel Verschlüsselt committet, nicht gitignored — kein manueller Transport
AI-Agent-Sicherheit Kein versehentlicher Zugriff auf fremde Kontexte
Team-Kollaboration Teams arbeiten unabhängig, ohne zu wissen dass ein Monorepo existiert
Wissen verfügbar Jeder AI-Agent bekommt relevantes Wissen aus dem Index injiziert
Multi-Maschinen Neuer Rechner = git clone + Schlüssel installieren, fertig
Bahn-Repos unverändert Bestehende Workflows bleiben, Monorepo zieht nur rein

Drawbacks / Risiken

Risiko Mitigation
Monorepo wird groß Git-Subtrees statt Submodules (flache Checkouts möglich); Wissensdatenbank-Output kann via .gitignore ausgeschlossen werden
git-crypt-Komplexität Dokumentierter Onboarding-Prozess; Schlüssel in Passwort-Manager
OneDrive-Sync-Konflikte Index.lock-Handling dokumentiert; Steering-Files für zukünftige Sessions
Single Point of Failure Regelmäßige Pushes zu GitHub/GitLab; Team-Repos als unabhängige Backups
Federation-Komplexität Einfache team-wins-Strategie; Manuelle Konfliktauflösung nur bei echten Merge-Konflikten
Lernkurve CLI-Tool ctx-guard vereinfacht alle Operationen; 13 dokumentierte Commands

Tech Stack

  • Python — Alle Tools in shared/tools/monorepo-cli/
  • git-crypt — Encryption at rest, pro Kontext
  • git subtree — Repo-Einbindung und Federation
  • YAML — Konfiguration, Frontmatter, Index
  • Hypothesis — 27 Property-Based Tests für Korrektheit
  • 300+ Tests — Unit, Property, Integration (E2E)

Status

Architektur designed und implementiert (12 Module, 300+ Tests) Repos in Kontextordner migriert Wissensdatenbank als Upstream eingebunden CLI-Tool funktionsfähig git-crypt einrichten (Schlüssel generieren) Team-Repos auf GitLab erstellen Knowledge-Management-System für Notizen starten NoteGraph-Neuentwicklung auf Basis des Wissensspeichers