# mindnet v2 – Implementierungs-Playbook & Handover (Side‑by‑Side zu v1)
*Stand:* 2025-11-10 08:03
*Autor:* ChatGPT (Projekt‑Handover)
*Zweck:* Vollständige, ausführbare Anleitung zur Weiterentwicklung von **mindnet** auf eine versionierte, testbare v2‑Architektur (neben v1), inklusive Prompt für den Folgethread, Akzeptanzkriterien, Dateiliste, Test‑ und Rollback‑Pläne.
---
## 0) Kontext & Zielbild (kurz)
- **Mission:** Persönliches Wissensnetz, das langfristig die eigene Persönlichkeit, Erfahrungen und Entscheidungslogik abbildet; später nachvollziehbare Erklärungen für Familie/Nachwelt.
- **Heutiger Stand (v1):** `mindnet_notes` in Qdrant vorhanden; **Chunks** und **Edges** bisher nur teilweise/nicht konsistent; Edge‑Defaults („1 Dot“) vorhanden, aber Ziele teils nicht materialisiert. Importskripte: `import_markdown.py`, `edges.py` (historisch).
-`policies/retrieval.schema.json` (JSON‑Schema) und `policies/retrieval.yaml`, z.B.:
```yaml
privacy_order: [private, internal, public]
recency_boost_half_life_days: 90
type_priority:
person: 1.2
event: 1.1
concept: 1.0
max_chunks_per_note: 8
edge_provenance_weights:
explicit: 1.0
rule: 0.8
default_resolved: 0.6
default: 0.2
rule_sets:
- id: "rules:types-v1"
enabled: true
```
---
## 5) Observability & Reports
- **FastAPI + OpenTelemetry**: Traces um Phasen *parse/chunk/edge/upsert*; Metriken (Counter/Histogramme) pro Phase.
- **Import‑Report** je Lauf (CSV/JSON): counts für Notes/Chunks/Edges, Fehler, Dauer, Embedding‑Version.
---
## 6) Teststrategie
- **Gold‑Notizen** (3–5 repräsentative .md) mit erwarteten *Chunk‑Counts* und *Edge‑Sets*.
- **Regression:** fixer Soll‑Count (z.B. 171 ± 15%) über Gesamt‑Vault; keine Duplikate `(src,relation,dst)`.
- **Dry‑Run vs Apply**: identische Counts, nur ohne Upserts.
- **Filter‑Smoke‑Tests:** Qdrant‑Filter nach `privacy`, `type`, `tags`, `created` funktionieren performant.
---
## 7) Akzeptanzkriterien (KPI)
1.**Chunk‑Qualität:** ≥ 90% der Chunks enden an semantischen Grenzen; Ziel‑Länge 900–1200 Zeichen; deterministische IDs.
2.**Edge‑Kohärenz:** Keine Duplikate gleicher `(src,relation,dst)`; ≥ 95% der expliziten Links materialisiert; `default` nur, wenn kein Ziel existiert.
3.**Filterbarkeit:** Queries nach `privacy/type/tags/created` performant (Payload‑Index vorhanden).
4.**Betriebsfestigkeit:** Telemetrie aktiv; fehlertoleranter Import; Qdrant‑Snapshot nach erfolgreichem Lauf.
---
## 8) Roadmap in kleinen, testbaren Schritten
### Step 0 – Safeguards
- Qdrant‑Snapshot v1 erstellen + Restore‑Probe.
- ENV: `MINDNET_SCHEMA_VERSION=2` (Importer wird v2 schreiben, v1 bleibt unberührt).
- Ziel: Vollständige Generierung von Struktur-, expliziten, typbasierten und Inline-Kanten in den bestehenden Collections `${prefix}_notes`, `${prefix}_chunks`, `${prefix}_edges`.
- Status: Implementiert und durch `tests/test_edges_smoke.py`, `tests/test_edges_all.py` und `scripts/edges_full_check.py` verifiziert.
## 13) **PROMPT für den neuen Chat (bitte exakt so einfügen)**
```
Rolle: Du bist mein Senior‑Entwickler & Architekt für mindnet. Arbeite strikt in kleinen, testbaren Schritten (Side‑by‑Side v2 neben v1). Liefere komplette Dateien als Downloads. Frage immer zuerst nach den **aktuellsten** Projektdateien, wenn du sie brauchst (z.B. import_markdown.py, edges.py, types.yaml), ändere keine Systemfunktion „workaround‑artig“ ohne die Gesamtwirkung zu prüfen.
Kontext (Kurzfassung):
- v1 hat nur mindnet_notes zuverlässig. Chunks/Edges sind inkonsistent/teilweise leer. Ziel: v2 mit drei Collections (notes/chunks/edges), neuem Chunker v2, Edge‑Builder v2 (explicit → rule → default_resolved → default), Policies (YAML), Observability (OTel), Snapshots. Kein Big‑Bang; v2 parallel zu v1.
- Siehe angehängte Datei **mindnet_v2_implementation_playbook.md** (Pfad/Download im Chat). Alles daraus ist verbindlich.
Deine ersten Aufgaben (Step‑by‑Step):
1) **Schemata anlegen (Step 1)**
- Erstelle die Dateien:
- schemas/note.schema.json
- schemas/chunk.schema.json
- schemas/edge.schema.json
- schemas/default_edge.schema.json
- Nutze die in der Playbook‑Datei vorgegebenen Strukturen als Basis.
- Liefere zusätzlich ein einfaches `Makefile`‑Ziel `schema-validate` (jsonschema via Python), plus `requirements.txt`.
- Output: komplette Dateien als Downloads + kurze Testanleitung.
2) **Qdrant v2‑Collections (Step 2)**
- Erzeuge die Collections + Payload‑Indizes.
- Liefere ein kleines Python‑Skript `tools/qdrant_bootstrap_v2.py`, das diese Anlage idempotent durchführt (inkl. Prüf‑Output).
3) **Chunker v2 (Step 3)**
- Implementiere `chunking/block_chunker.py` mit den im Playbook genannten Parametern.
- Teste gegen 3 Gold‑Notizen (liefere mini Test‑Harness in `tests/gold_notes/…`).
Arbeitsweise:
- Jede Aufgabe einzeln, mit klaren Akzeptanzkriterien (aus Playbook) und Download‑Artefakten.
- Keine parallelen Großumbauten.
- Immer deterministische IDs, idempotente Upserts.