Files
Orchestrator/docs/monorepo-summary.md
T

166 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Monorepo-Konsolidierung Zusammenfassung
## Überblick
18+ einzelne Git-Repositories wurden in eine einheitliche Monorepo-Struktur konsolidiert. Das System vereint drei Arbeitskontexte (privat, dhive, bahn) mit einem shared-Bereich und implementiert Sicherheitsgrenzen, einen Wissensspeicher, verschlüsselte Secrets und eine föderierte Team-Zusammenarbeit.
---
## Architektur
```
Orchestrator/ (Monorepo Root)
├── bahn/ ← DB InfraGO Projekte (10 Repos)
│ ├── aisupport/
│ ├── Analyse-O2C-C2S/
│ ├── awesome-bahn-mcp-servers/
│ ├── beam-mcp/
│ ├── Confluence_Bot/
│ ├── db-planet-mcp-server/
│ ├── O2C-Harness/
│ ├── project-audit/
│ ├── teamlandkarte-mcp/
│ └── wissensdatenbank/ ← Upstream-Subtree von DB GitLab
├── dhive/ ← dhive GmbH Projekte (2 Repos)
│ ├── Jury-Voting/
│ └── Projekt-KIQ-HP/
├── privat/ ← Persönliche Projekte (2 Repos)
│ ├── CV/
│ └── NoteGraph/ ← Markiert für Neuentwicklung
├── shared/ ← Kontextübergreifend
│ ├── AI-Orchestrator/ ← Task-Dispatch-Engine
│ ├── OrgMyLife/ ← Persönliche Aufgabenverwaltung
│ ├── power_skills_and_more/ ← Agent-Erweiterungen
│ ├── references/symphony/ ← Read-Only-Referenz
│ ├── config/ ← Zentrale Konfiguration
│ └── tools/monorepo-cli/ ← ctx-guard CLI-Tool
├── monorepo.yaml ← Zentrale Konfiguration
└── .kiro/ ← Specs, Steering, MCP-Server
```
---
## Komponenten
### 1. Ordnerstruktur-Manager (StructureManager)
- Flache 3-Ebenen-Hierarchie: Kontext → Projekt → Modul
- Kebab-case Namenskonvention (250 Zeichen)
- Duplikat-Erkennung pro Kontext
### 2. Sicherheits-Guard (ContextGuard)
- Dateibasierte Zugriffskontrolle zwischen Kontexten
- Pro Kontext eigene .env-Datei (verschlüsselt)
- Audit-Logging bei Zugriffsverletzungen
- Konfigurierbar via `access-config.yaml`
### 3. Secret-Encryption (SecretEncryptionManager)
- git-crypt-basierte Verschlüsselung pro Kontext
- Maschinenkontext-Konzept: Jeder Rechner hat nur autorisierte Schlüssel
- Passwort-Manager-Integration (Bitwarden, 1Password, KeePass)
- Secrets werden committet (verschlüsselt), nicht gitignored
### 4. Wissensspeicher (KnowledgeStore)
- ETL-Pipeline basierend auf der DB-Wissensdatenbank-Architektur
- YAML-Frontmatter + YAML-Index (Progressive Disclosure)
- Scope-basierte Ordnerstruktur
- Volltextsuche mit Scope-Filterung
- Graph-Verknüpfungen zwischen Artefakten
- Inkrementelle Verarbeitung (Content-Hash)
### 5. Externes-Repo-Manager (RepoManager)
- Git-Subtree-Einbindung (Read-Only oder Upstream)
- Bidirektionale Synchronisation mit Upstream-Repos
- Pre-commit-Hook für Read-Only-Schutz
- Konfiguriert via `repos.yaml`
### 6. Kontextbrücke (ContextBridge)
- Kontextübergreifendes Teilen von Wissensartefakten
- Sensitive-Content-Filter (Regex: API-Keys, Endpoints, PII)
- Explizite Nutzerbestätigung vor Freigabe
- Widerruf jederzeit möglich
### 7. Migrations-Engine (MigrationEngine)
- Git-Historie-bewahrende Migration via Subtree/Filter-Repo
- Konflikterkennung (Pfadkollision, Branch-Konflikte, Namenskonvention)
- Validierung nach Migration (Commits, Branches, Tags, Dateien)
- Rollback ohne andere Repos zu beeinflussen
### 8. Orchestrator-Adapter (OrchestratorAdapter)
- Kontextauflösung aus Task-Metadaten (Labels, Projektzuordnung)
- Workspace-Erstellung unter dem korrekten Kontextordner
- Wissensinjection in Agenten-Prompts (YAML-Index)
- Multi-Harness-Dispatch (Kiro, Codex, Claude Code, Antigravity)
- Task-Abbruch bei Out-of-Context-Zugriff
### 9. Shared Tooling (ConfigMerger)
- MCP-Server-Konfiguration-Merge (shared + context override)
- Shared-Tool-Versionierung (Symlinks, automatisch aktuell)
- Agent-Erweiterungen in harness-agnostischem Format
- Adapter-Mechanismus für verschiedene Agent-Harnesses
### 10. Federation-Manager (FederationManager)
- Hub-and-Spoke-Topologie (Monorepo = Hub, Team-Repos = Spokes)
- Bidirektionale Synchronisation via git subtree
- Team-Isolation (Cross-Context-Leakage-Prüfung)
- Shared-Bereich-Spiegelung (Read-Only in Team-Repos)
- Konflikt-Auflösung (team-wins als Standard)
- Member-Onboarding ohne Monorepo-Kenntnis
### 11. Git-Hooks (HookManager)
- Pre-commit: Read-Only-Repos schützen
- Pre-commit: Unverschlüsselte Secrets blockieren
- git-crypt-Filter-Integration
- Installation bei `ctx-guard init`
### 12. CLI-Tool (ctx-guard)
13 Subcommands: `init`, `create-project`, `list-projects`, `add-repo`, `sync-repo`, `migrate`, `validate`, `search`, `encrypt`, `decrypt`, `onboard`, `fed-sync`, `fed-status`
---
## Lösungen für spezifische Probleme
| Problem | Lösung |
|---------|--------|
| 18+ Repos, kein Überblick | Einheitliche Kontextordner-Hierarchie |
| Secrets in .gitignore verloren beim Klonen | git-crypt: Secrets verschlüsselt committet |
| Mehrere Maschinen, verschiedene Zugriffsrechte | Maschinenkontext-Mapping (machine-context.yaml) |
| Team-Zusammenarbeit ohne Monorepo-Offenlegung | Hub-and-Spoke-Föderation mit Team-Repos |
| Wissen verstreut über Kontexte | Zentraler Wissensspeicher mit Scope-Filterung |
| AI-Agent greift auf fremde Secrets zu | ContextGuard + Audit-Logging + Task-Abbruch |
| Verschiedene AI-Tools (Kiro, Codex, Claude) | Multi-Harness-Dispatch mit einheitlicher Schnittstelle |
| DB-Wissensdatenbank separat pflegen | Upstream-Subtree, bidirektionale Sync |
---
## Technische Metriken
- **300+ Tests** (Unit + Property-Based + Integration)
- **12 Python-Module** in `shared/tools/monorepo-cli/`
- **27 Correctness Properties** (Hypothesis-basiert)
- **14 End-to-End-Integration-Tests**
- **13 CLI-Commands** vollständig verdrahtet
---
## Heutige Aktionen
1. ✅ Alle verbleibenden Spec-Tasks implementiert (Wave 1320)
2. ✅ Monorepo-Git-Repository initialisiert
3. ✅ 17 Repos in Kontextordner verschoben
4. ✅ Wissensdatenbank als Upstream-Subtree eingebunden
5. ✅ Projekt-KIQ-HP nach dhive/ verschoben (Korrektur)
6. ✅ Clutter bereinigt (alte README, leere Placeholder, Secrets aus Git entfernt)
7. ✅ .gitignore aktualisiert (Secrets-Patterns)
8. ✅ Steering-Dateien für zukünftige Sessions erstellt
9. ✅ Knowledge-Management-Briefing für nächste Spec vorbereitet
---
## Offene Punkte
- [ ] NoteGraph komplett neu aufbauen (→ Knowledge-Management-Spec)
- [ ] git-crypt tatsächlich einrichten (Schlüssel generieren, .env verschlüsseln)
- [ ] Team-Repos auf GitLab erstellen und Federation aktivieren
- [ ] Wissensdatenbank-Upstream regelmäßig synchronisieren
- [ ] Remaining skipped Tasks (2.22.4, 3.2, 4.1, 11.211.4, 12.212.3) implementieren