Projektorganisation

Zwei-Phasen-Reorganisation des AI-Plattform-Ökosystems (April 2026)

Published

April 17, 2026

Diese Seite dokumentiert die grundlegende Neustrukturierung des AI-Plattform-Ökosystems, die im April 2026 in zwei Phasen abgeschlossen wurde. Sie beschreibt Ausgangslage, Designprinzipien und konkrete Implementierung beider Phasen.

Ausgangslage: Das flache 2026project-Verzeichnis

Bis April 2026 lagen alle 47 aktiven ai-*-Pakete flach in einem einzigen Dropbox-synchronisierten Verzeichnis:

~/Library/CloudStorage/Dropbox/202x/2026project/
  ai-agenda/
  ai-apple/
  ai-apple-documents/
  ai-argument/
  ai-audio/
  ai-biblatex/
  ai-chroma/
  ai-classifypdf/
  ... (insgesamt 47 Pakete)

Diese Struktur hatte mehrere Schwachstellen:

Keine funktionale Gruppierung. Ein Werkzeug zur E-Mail-Verwaltung (ai-korrespondenz) lag neben einem Forschungsprojekt (ai-nepi2) neben einem Infrastrukturpaket (ai-core).

Dropbox-Synchronisationsoverhead. Alle 47 Pakete wurden auf alle Dropbox-Maschinen synchronisiert, obwohl etwa 40 % nur auf mac-studio benötigt werden. Datenpfade (Audio, Video, PDAI-Sammlungen) erhöhten den Sync-Overhead massiv.

Skalierungsproblem. Bei 47 Paketen und weiterem Wachstum wird eine flache Liste unhandhabbar.


Phase 1: Domänen-Reorganisation (April 14–15, 2026)

Vorarbeit: Datentrennung (Tier-1-Separation)

388 GB schwere Nutzdaten wurden aus 2026project/ auf das dedizierte Datenvolume /Volumes/PDAI-1/2026projectdata/ verschoben:

Paket Verschobene Daten Ersetzt durch
ai-apple App-Daten Symlink → PDAI-1
ai-apple-documents Dokumentarchiv Symlink → PDAI-1
ai-classifypdf Klassifizierungscache Symlink → PDAI-1
ai-eventjournal Journal-Einträge Symlink → PDAI-1
ai-exo Modelldaten Symlink → PDAI-1
ai-nepi2 Konferenzmaterial Symlink → PDAI-1
ai-voicememo Audiodateien Symlink → PDAI-1
repository2.0 Repository-Daten Symlink → PDAI-1

Nach dieser Operation hatte die interne SSD 968 GB freien Speicher (vorher: 19 GB).

Designprinzipien

1. Domänenorientierte Hierarchie statt flacher Liste.
2. Physische Trennung mit logischer Kontinuität — Backward-Compat-Symlinks in 2026project/ für bestehenden Code.
3. Maschinenlesbare Kataloge (index.duckdb je Domäne).
4. Analoges Muster zu ai-privat (schon früher angelegt als Vorlage).

Neue Domänenstruktur

graph TD
    home["~/ (Home-Verzeichnis)"]

    home --> aiPrivat["ai-privat/\nPersönlich, Syncthing"]
    home --> aiPlatform["ai-platform/\nKoordination, Git-repo"]
    home --> aiAgents["ai-agents/\n40 Werkzeugpakete"]
    home --> aiScholarly["ai-scholarly/\n21 Forschungsprojekte"]
    home --> aiPublication["ai-publication/\narXiv-Register"]

    aiAgents --> infra["infrastructure/ (9)"]
    aiAgents --> docproc["document-processing/ (10)"]
    aiAgents --> comm["communication/ (6)"]
    aiAgents --> media["media/ (3)"]
    aiAgents --> apple["apple/ (2)"]
    aiAgents --> dataml["data-ml/ (4)"]
    aiAgents --> mgmt["management/ (6)"]

    aiScholarly --> sundial["ai-sundial3d/ → PDAI-1"]
    aiScholarly --> research["research/ → PDAI-1"]
    aiScholarly --> projects["projects/ → PDAI-1"]

    aiPublication --> arxiv["arxiv/\nai-arxiv-project/\npapers/ Symlinks"]

Die 47 Pakete wurden physisch verschoben; an den alten 2026project/-Pfaden wurden 47 Backward-Compat-Symlinks angelegt.


Phase 2: De-Dropbox-Refactor (April 17, 2026)

Problem: fileproviderd-CPU-Loop

Nach Phase 1 traversierte fileproviderd (Dropbox-File-Provider) die 47 Symlinks in 2026project/ rekursiv durch alle .venv/-Verzeichnisse — eine effektive Baumgröße von ~3.4 TB. fileproviderd lief über 2 Tage bei 98.8 % CPU.

Lösung: Encapsulation + direkte LaunchAgents

Schritt 1 — Alle Domänen direkt nach $HOME bewegt:

Alle fünf Domänen liegen als echte Verzeichnisse direkt im Home-Verzeichnis — kein Encapsulation-Wrapper, kein Doppel-Traversal:

~/ai-mac-studio/platform/      (real directory)
~/ai-mac-studio/agents/        (real directory)
~/ai-mac-studio/scholarly/     (real directory)
~/ai-mac-studio/publication/   (real directory)
~/ai-mac-studio/privat/        (real directory)

Schritt 2 — 13 LaunchAgents direkt umschreiben:

Alle LaunchAgents wurden von Dropbox-Pfaden auf direkte ~/ai-mac-studio/…-Pfade umgestellt (backup → sed → plutil-Validierung → bootout/bootstrap):

Dienst Pakete
ai-viewer 8 Kollektion-Plists
ai-voicememo 2 Plists
ai-cluster 2 Plists
ai-index 1 Plist

Schritt 3 — 47 Compat-Symlinks entfernen:

Die 47 Symlinks in 2026project/ wurden in ein Backup-Verzeichnis verschoben: ~/.local/share/ai-platform/2026project-symlink-backup-20260417/

Danach las lsof -p $(pgrep fileproviderd) keine ai-mac-studio/-Pfade mehr.

Schritt 4 — ~45 GB Bulk-Daten externalisieren:

Lokaler Pfad Ziel Größe
~/ai-mac-studio/scholarly/research PDAI-1/ai-scholarly/research ~20 GB
~/ai-mac-studio/scholarly/ai-sundial3d PDAI-1/ai-scholarly/ai-sundial3d ~14 GB
~/ai-mac-studio/scholarly/projects PDAI-1/ai-scholarly/projects ~5.8 GB
~/ai-mac-studio/scholarly/ai-applevoicerecorder PDAI-1/ai-scholarly/ai-applevoicerecorder ~2.4 GB
~/ai-mac-studio/agents/communication/ai-mail PDAI-1/ai-agents/communication/ai-mail ~1.6 GB
~/ai-mac-studio/agents/document-processing/ai-ocr-dev PDAI-1/ai-agents/document-processing/ai-ocr-dev ~1.7 GB

Schritt 5 — Stale .venv-Shebangs reparieren:

Die virtuellen Umgebungen von ai-voicememo, ai-viewer und ai-cluster hatten noch hartcodierte Shebangs auf den alten Dropbox-Python-Interpreter-Pfad. Alle drei wurden mit uv sync neu erstellt.

Schritt 6 — lib/env.py refaktoriert:

Neue Package-Registry indiziert Pakete direkt aus den Domain-Verzeichnissen. PROJECT_BASE auf mac-studio zeigt nun auf $HOME (kein Dropbox-Pfad mehr). DROPBOX_ROOT ist auf mac-studio entfernt.

Ergebnis

Aspekt Vorher Nachher
fileproviderd 98.8 % CPU, 2+ Tage Normal (nach Restart)
LaunchAgents Via 2026project/-Symlinks Direkt → ~/ai-mac-studio/agents/ ~/ai-mac-studio/platform/
Dropbox-Abhängigkeit 47 Compat-Symlinks Keine
Symlinks am Home-Root 5 ai-* Symlinks Keine — echte Verzeichnisse
Lokaler Freispeicher ~19 GB ~83 GB (nach Externalisierung)

ai-agents: 40 Werkzeugpakete in 7 Kategorien

~/ai-mac-studio/agents/
  infrastructure/       Core-Plattform, Orchestrierung, Scheduling
  document-processing/  OCR, PDF, PDAI, Typesetting-Pipeline
  communication/        E-Mail, Korrespondenz, Sprache, Reporting
  media/                Audio-, Video-, Fotoverarbeitung
  apple/                Apple-Device- und Document-Integration
  data-ml/              Vektorspeicher, Indexing, Inference
  management/           Kalender, Journale, Tasks, Memos

infrastructure (9 Pakete)

Paket Funktion Port
ai-core Gemeinsame AI-Clients, PDAI-Schema, Orchestrator —
ai-cluster Verteilter Task-Dispatch über Tailscale 5830
ai-machine-registry Maschinenregistrierung und -verwaltung —
ai-scheduler PDAI-Task-Warteschlange, OCR-Koordination 8200
projects-dev Dev-Register: Scan + Audit aller Sektionen, Hub /admin/register 5050
ai-symphony Multi-Agenten-Orchestrierung —
ai-sync Synchronisationsverwaltung —
ai-skills Skill-System-Dokumentation —
ai-instructions 29 gemeinsame Jinja2-Instruktions-Templates —

document-processing (10 Pakete)

Paket Funktion Port
ai-scholar PDAI-OCR, Übersetzung, Segmentierung —
ai-classifypdf PDF-Ernte, Klassifizierung in PDAI-1 —
ai-viewer PDAI-Dokumentbetrachter (Web) 5100
ai-ocr OCR-Utilities —
ai-ocr-dev OCR-Entwicklung und Tests —
ai-lector Dokumentlesen und -analyse —
ai-scanner Dokumentscanner —
ai-translation Übersetzungspipeline —
ai-biblatex BibLaTeX-Parse, -Export, DBLP —
ai-schriftsetzer Typesetting-Werkzeuge —

communication (6 Pakete)

Paket Funktion Port
ai-korrespondenz Korrespondenzverwaltung 5300
ai-mail E-Mail-Verwaltung —
ai-reporter Sprachaufnahme-Transkription und Toolchain 5510/5520
ai-dialog Sprachgesteuerter Text-Revisionsworkflow —
ai-speechdialog Sprachdialog-System —
ai-dictation Sprachdiktat —

management (6 Pakete)

Paket Funktion Port
ai-agenda Meeting-Agenda-Verwaltung —
ai-eventjournal Event-Journal-Verwaltung —
ai-task Aufgabenverwaltung —
ai-lacie LaCie-Laufwerksverwaltung —
ai-voicememo Sprachmemo-Transkription und Klassifizierung 5200

ai-scholarly: 21 Forschungsprojekte

~/ai-mac-studio/scholarly/ fasst alle laufenden Forschungsprojekte zusammen. Die Bulk-Daten (~42 GB) liegen auf PDAI-1; die lokalen Pfade sind Symlinks.

~/ai-mac-studio/scholarly/
  ai-sundial3d/           → /Volumes/PDAI-1/2026projectdata/ai-scholarly/ai-sundial3d
  ai-applevoicerecorder/  → /Volumes/PDAI-1/2026projectdata/ai-scholarly/ai-applevoicerecorder
  research/               → /Volumes/PDAI-1/2026projectdata/ai-scholarly/research
  projects/               → /Volumes/PDAI-1/2026projectdata/ai-scholarly/projects

ai-publication: Publikationsregister

~/ai-mac-studio/publication/ enthält das kanonische ai-arxiv-Projekt und Symlinks zu den Paper-Verzeichnissen in ai-scholarly.

~/ai-mac-studio/publication/
  arxiv/
    ai-arxiv-project/   Katalog, Werkzeuge, Website
    papers/             Symlinks → ai-scholarly/*/arxiv/

DuckDB-Katalog und MCP-Server

~/ai-mac-studio/agents/index.duckdb       (40 Einträge)
~/ai-mac-studio/scholarly/index.duckdb    (21 Einträge)
~/ai-mac-studio/publication/index.duckdb  ( 7 Einträge)
python3 ~/ai-mac-studio/agents/index_catalog.py   # alle drei Domänen neu indexieren

Der MCP-Server ai-catalog ist in ~/.cursor/mcp.json registriert.


Datenschicht: PDAI-1-Volume

/Volumes/PDAI-1/
  2026projectdata/      Nutzdaten der ai-*-Pakete (via Symlinks referenziert)
  pdai-collections/     PDAI-Dokumentsammlungen (Euler, Kepler, Kirch, …)
  editions/             11 Editionen

Zeitachse

Datum Schritt
2026-02 ~/ai-mac-studio/privat/ erstellt (PrivatKanzlei, Syncthing)
2026-03 Tier-1-Datentrennung: 388 GB auf PDAI-1 ausgelagert
2026-04-14 INQUA-Archivierung auf 2025Berlin abgeschlossen
2026-04-15 Phase 1: Domain-Verzeichnisse angelegt; 47 Pakete mit Compat-Symlinks verschoben; DuckDB-Kataloge und MCP-Server in Betrieb
2026-04-17 Phase 2: Domänen direkt nach $HOME bewegt (kein Encapsulation-Wrapper); 13 LaunchAgents direkt umgeschrieben; 47 Compat-Symlinks entfernt; ~45 GB externalisiert; Dropbox komplett aus dem Ökosystem entfernt

Letzte Aktualisierung: 2026-04-17