v1.0: Phase 3 abgeschlossen + Spec/Plan v1.0/v0.2

Phase 3.2 Radialer Baum (Webapp Tab 3):
- webapp/src/RadialView.tsx: Cytoscape concentric-Layout
- Anker-Notiz in der Mitte, verlinkte Notizen in Ringen
- Auswahl der Anker-Notiz via Klick im Graph oder Cluster-Tab
- Header-Tabs erweitert: Graph | Cluster-Karte | Radial
- App.tsx: view-Mode-State erweitert um 'radial'

Phase 1+2+3 abgeschlossen (siehe Status-Bloecke).

SPEC v1.0:
- Header: v1.0 mit Stand und Status-Block
- Neue Sektion 'Status-Uebersicht' direkt nach Header
- § 3 erweitert: kein deterministischer Konflikt-Vorab-Check (offen)
- § 13.2: 'Phase 3 fertig' markiert
- § 17 'Offene Punkte' aktualisiert: geloeste Items durchgestrichen, Phase-2.4-d (deterministisch) + 2.5e (Embedding) als Phase-2-erweitert, Phase 4+5 als ausstehend

Plan v0.2:
- Header: v0.2 mit Stand und Status-Block
- Status-Tabelle fuer alle 5 Phasen

Verifiziert:
- 28/28 Unit-Tests gruen
- Webapp-Build (35 Module, 595 KB, 2.35s)
- E2E-Pipeline: Inbox -> Ingest -> Wiki (mit --mock), Indexer deterministisch, Sync zu gitea funktioniert
This commit is contained in:
Jannik committed 2026-09-05 12:00:40 +02:00
1 parent aa3083177d
commit fb810b1e7b
4 files changed
+230 -39

No files matched your search

+17 -4
View File
@@ -1,8 +1,21 @@
# Mind-o-Mat — Plan v0.1
# Mind-o-Mat — Plan v0.2
> Stand: 2026-09-05 — Schritt 4 aus dem Original-Video-Prozess. 20 Kernaufgaben aus SPEC v0.4 abgeleitet.
> Jede Aufgabe hat: **Was** (1–2 Sätze), **Test** (was am Ende geprüft wird), **Fertigkriterium** (Definition of Done), **Aufwand** (klein/mittel/groß).
> Reihenfolge: erst Tool-Code (Phase 1a), dann Vault-Init (1b), dann Indexer+Webapp (1c). Wiki+Ingest (Phase 2). Visuell (3). PWA-Editor (4). Native App (5) optional.
> Stand: 2026-09-05 — Phase 1+2+3 abgeschlossen. Phase 4 (PWA-Editor) und Phase 5 (Native App) offen.
> Vorherige Version: v0.1 vom 2026-09-05. Status-Block + Phase-2.5-Duplikate + Phase-3.2-Radial ergänzt.
> Jede Aufgabe hat: **Was**, **Test**, **Fertigkriterium**, **Aufwand**.
> Reihenfolge: erst Tool-Code (1a), dann Vault-Init (1b), dann Indexer+Webapp (1c). Wiki+Ingest (2). Visuell (3). PWA-Editor (4). Native App (5) optional.
## Status-Übersicht
| Phase | Aufgaben | Status |
|---|---|---|
| **1a Tool-Code** | 1.1, 1.2 | ✅ komplett |
| **1b Vault-Init** | 1.3, 1.4 | ✅ komplett |
| **1c Indexer+Webapp** | 1.5, 1.6, 1.7, 1.8 | ✅ Erfolgskriterium erfüllt |
| **2 Wiki+Ingest** | 2.1, 2.2, 2.3, 2.5, 2.6 | ✅ komplett (2.4 nur LLM-basiert) |
| **3 Visuell** | 3.1, 3.2 | ✅ komplett |
| **4 PWA-Editor** | 4.1, 4.2, 4.3 | ⏳ ausstehend |
| **5 Native App** | 5.1 | ⏳ optional |
## Überblick
+57 -21
View File
@@ -1,10 +1,37 @@
# Mind-o-Mat — Spezifikation v0.5
# Mind-o-Mat — Spezifikation v1.0
> Stand: 2026-09-05 — Konzept-Phase abgeschlossen + 4 Blockierer geklärt + Plan v0.1 erstellt.
> Vorherige Version: v0.4 vom 2026-09-05. Repository-Trennung dokumentiert, dann Vault-Pfad-Discovery, Deployment, Init-Konzept und Teststrategie geklärt.
> Diese Spec ist verbindlich für die Implementierung. Konkrete Aufgaben mit Test + Fertigkriterium siehe `10_Wiki/Plan.md`.
> Stand: 2026-09-05 — **Phase 1+2+3 abgeschlossen.** Phase 4 (PWA-Editor) und Phase 5 (Native App) offen.
> Vorherige Version: v0.5 vom 2026-09-05. Status-Block + Phase-3-Tabs + 2.5-Duplikat-Erkennung ergänzt.
> Diese Spec ist verbindlich. Konkrete Aufgaben mit Test + Fertigkriterium siehe `10_Wiki/Plan.md`.
> Änderungen werden in der Klärungen-Sektion (§ 16) dokumentiert.
## Status-Übersicht (Stand 2026-09-05)
| Phase | Beschreibung | Status |
|---|---|---|
| 1a Tool-Code | CLI-Skelett, Vault-Pfad-Discovery | ✅ komplett |
| 1b Vault-Init | `init-vault` mit 12 Ordnern + Konfig + git init | ✅ komplett |
| 1c Indexer+Webapp | Indexer deterministisch, Webapp zeigt Graph | ✅ Erfolgskriterium erfüllt |
| 2 Wiki+Ingest | Schema, Suchleiter, Ingest, Veraltet, Duplikate | ✅ komplett |
| 3 Visuell | 3 Tabs: Graph, Cluster-Karte, Radial | ✅ komplett |
| 4 PWA-Editor | Tiptap-Editor, PWA-Manifest, Service Worker | ⏳ ausstehend |
| 5 Native App | TWA für Play Store | ⏳ optional |
**Verifizierte E2E-Pipeline (Stand 2026-09-05):**
```
Vault (lokal) gitea
3 Demo-Notizen ↑
↓ mindomat index (deterministisch) ↑
landkarte.json (5 Knoten, 3 Kanten) ↑
↓ mindomat ingest --mock ↑
Wiki-Seite + alle 9 Pflichtfelder + sources ↑
↓ mindomat sync ↑
git push ──────────────────────────────────→ d17ceb6 ✓
```
**Tests: 28/28 grün** (vault-path 10, stale 8, ingest-e2e 2, determinism 2, duplicates 6)
## 1. Zweck
Lokales Second-Brain-System für einen Obsidian-kompatiblen Markdown-Vault mit Cloud-Sync und Mobile-Zugriff. Es nimmt vier Dinge ab:
@@ -454,8 +481,10 @@ qmd embed
### 13.2 Mockup-Stile (3 sequenziell)
1. **Default: Force-directed Graph** — Knoten = Notizen, Kanten = Wikilinks, Farbe = Cluster
2. **Tab 2: Cluster-Karte** — Kontinente = Cluster, Städte = Notizen (Phase 3)
3. **Tab 3: Radialer Baum** — Mitte = Anker, Ringe = Themen (Phase 3)
2. **Tab 2: Cluster-Karte** — HTML-Grid mit Clustern als Spalten, Notizen als Karten mit Typ-Farbe und Status
3. **Tab 3: Radialer Baum** — Cytoscape `concentric`-Layout, Anker-Notiz in der Mitte, verlinkte Notizen in Ringen
Alle drei sind implementiert und umschaltbar. **Phase 3 fertig.**
### 13.3 PWA-Features (Phase 4)
@@ -619,24 +648,31 @@ qmd embed
| # | Punkt | Wann zu klären |
|---|---|---|
| 1 | Teststrategie (Unit-Tests für Indexer, manuelle E2E für Ingest) | Phase 1, vor Indexer-Bau |
| 2 | `CLAUDE.md`-Inhalt (konkreter Prompt) | Phase 2 |
| 3 | `10_Wiki/_Schema.md`-Inhalt | Phase 2, vor Ingest-Bau |
| 4 | Beispiel-Notizen für erste Ingest-Iteration | Phase 1, zur Demonstration |
| 5 | Ingest-Log-Format | Phase 2 |
| 6 | Watcher-Mode für Ingest (`--watch`) | Phase 2, Bonus |
| 7 | Lockfile-Mechanik (parallel-Läufe) | Phase 2, falls nötig |
| 8 | Performance bei großen Vaults (>5000 Notizen) | später, nach erstem Wachstum |
| 1 | ~~Teststrategie~~ — **gelöst**: Hybrid Unit + E2E (siehe Klärungen) | — |
| 2 | ~~`CLAUDE.md`-Inhalt~~ — **gelöst**: Template `src/templates/CLAUDE.md` | — |
| 3 | ~~`10_Wiki/_Schema.md`-Inhalt~~ — **gelöst**: Template `src/templates/_Schema.md` | — |
| 4 | ~~Beispiel-Notizen~~ — **gelöst**: Test-Vault hat 3 Demo-Notizen | — |
| 5 | Ingest-Log-Format | Phase 2 (teilweise gelöst, einfaches Format) |
| 6 | Watcher-Mode für Ingest (`--watch`) | Phase 2-erweitert, Bonus |
| 7 | Lockfile-Mechanik (parallel-Läufe) | Phase 2, **gelöst** in `sync.mjs` |
| 8 | Performance bei großen Vaults (>5000 Notizen) | nach erstem Wachstum |
| 9 | TWA-Verpackung für Play Store | Phase 5 (optional) |
| 10 | Sync-Trigger (manuell, automatisch, Cron) | Phase 1, mit `sync.mjs` |
| 10 | Sync-Trigger (manuell, automatisch, Cron) | Phase 1, **gelöst** in `sync.mjs` (manuell) |
| 11 | Konflikt-Auflösung-UI in PWA | Phase 4 |
| 12 | Offline-Modus für Editor (PWA) | Phase 4 |
| 13 | Minimax-API: exakte Endpoints, Request/Response-Format, Rate-Limits, Token-Kosten pro Operation | Phase 2, vor Ingest-Bau |
| 14 | API-Key-Setup für Dev-Umgebung (`.env`-Datei, `direnv`, oder Windows-Env-Vars) | Phase 1, mit `sync.mjs` |
| 15 | Verifizierung: persistiert Minimax Notizinhalte? Datenschutz-Klausel prüfen | Phase 2, vor Ingest-Bau |
| 16 | **Vault-Init-Skript** im Tool: erstellt komplette Vault-Struktur inkl. Konfig, README, .gitignore | Phase 1b, **gelöst**: Voll-Variante mit git-Init (siehe Klärungen) |
| 17 | **Deployment-Mechanik** Tool→Vault: werden Skripte ins Vault kopiert oder aus dem Tool-Pfad aufgerufen? | Phase 1b, **gelöst**: npm-global + Wrapper (siehe Klärungen) |
| 18 | **Vault-Pfad-Discovery**: Wie findet das Tool den Vault? (Env-Var, CLI-Argument, oder explizite Pfad-Konfig im Tool) | Phase 1a, **gelöst**: Env-Var + CLI-Override (siehe Klärungen) |
| 13 | Minimax-API: exakte Endpoints, Request/Response-Format, Rate-Limits, Token-Kosten pro Operation | Phase 2 (Mock aktiv, **gelöst** für Tests; Live braucht Verifizierung) |
| 14 | API-Key-Setup für Dev-Umgebung (`.env`-Datei, `direnv`, oder Windows-Env-Vars) | Phase 1, **gelöst** (Env-Var via `ki_api_key_env`) |
| 15 | Verifizierung: persistiert Minimax Notizinhalte? Datenschutz-Klausel prüfen | Phase 2 (offen — Vertrag mit Minimax prüfen) |
| 16 | ~~Vault-Init-Skript~~ — **gelöst**: Voll-Variante mit git-Init | — |
| 17 | ~~Deployment-Mechanik~~ — **gelöst**: npm-global + Wrapper | — |
| 18 | ~~Vault-Pfad-Discovery~~ — **gelöst**: Env-Var + CLI-Override | — |
| **2.4d** | **Deterministische Konflikt-Vorprüfung** (ohne LLM): Heuristik oder Embedding-basierter Vergleich Notiz vs. Wiki vor LLM-Call | Phase 2.4-erweitert |
| **2.5e** | **Embedding-basierte inhaltliche Ähnlichkeit** (z. B. cosine > 0.9): braucht QMD-Vektor-Index | Phase 2.5-erweitert |
| **3.2** | ~~Radialer Baum~~ — **gelöst**: Cytoscape `concentric`-Layout, dritter Tab | — |
| 4.1 | Tiptap-Editor in PWA integrieren | Phase 4 |
| 4.2 | PWA-Manifest + Service Worker | Phase 4 |
| 4.3 | Sync-Trigger in PWA (Auto-Push nach Speichern) | Phase 4 |
| 5.1 | TWA-Verpackung für Play Store | Phase 5 (optional) |
| 1 | Teststrategie (Unit-Tests für Indexer, manuelle E2E für Ingest) | Phase 1, vor Indexer-Bau, **gelöst**: Hybrid Unit + E2E (siehe Klärungen) |
| 11 | Konflikt-Auflösung-UI in PWA | Phase 4 |
| 12 | Offline-Modus für Editor (PWA) | Phase 4 |