5.7 KiB
📘 Mindnet Skript-Handbuch
Dieses Handbuch dokumentiert die implementierten Skripte für das Projekt mindnet Wissensnetzwerk.
Es beschreibt Zweck, Parameter und typische Aufrufe. Alle Beispiele sind geprüft und lauffähig.
Alle Skripte liegen in ~/mindnet/scripts/.
Ausführung erfolgt im aktivierten venv:
cd ~/mindnet
source .venv/bin/activate
1. Vault anlegen (für Tests)
make_test_vault.py
Zweck:
Erstellt einen kleinen, nachvollziehbaren Test-Vault mit Markdown-Dateien.
Szenarien: offene Links, nachträgliche Anlage fehlender Notes, geänderte Chunk-Grenzen.
Parameter:
--out PATH: Zielverzeichnis (Default:./test_vault)--force: Existierenden Ordner löschen und neu anlegen--with-missing: Optional – auch diemissing-notegleich anlegen
Hinweise für Tests
- Erster Import (dry-run oder --apply): Es gibt einen „leeren“ Link missing-note.
- Lege danach eine Datei für „missing-note“ an (mit gleicher ID im YAML) und importiere erneut: -> Erwartung: Edges für ehemals leeren Link werden korrekt nachgezogen (references + backlink).
- Ändere den Body von exp-one.md so, dass andere Chunk-Grenzen entstehen und importiere erneut: -> Erwartung: Chunks/Edges/Note werden für betroffene Noten aktualisiert.
Kompatibel mit:
- note.schema.json: 'created'/'updated' müssen strings sein. (Wichtig!)
Beispiele:
python3 -m scripts.make_test_vault --out ./test_vault --force
python3 -m scripts.make_test_vault --out ./test_vault --force --with-missing
2. Import in Qdrant
import_markdown.py
Zweck:
Importiert Notes/Chunks/Edges aus einem Vault nach Qdrant.
- prüft Frontmatter
- chunked Inhalte + Embeddings
- erzeugt Edges (
references,references_at,backlink) - erkennt geänderte Dateien automatisch
- optional: Purge der alten Chunks/Edges pro Note
Parameter:
--vault PATH: (Pflicht) Vault-Verzeichnis--apply: Änderungen wirklich durchführen (sonst Dry-Run)--purge-before-upsert: Vor Upsert alte Chunks/Edges nur der geänderten Notes löschen--note-id ID: Nur eine bestimmte Note importieren
Beispiele:
python3 -m scripts.import_markdown --vault ./vault
python3 -m scripts.import_markdown --vault ./vault --apply
python3 -m scripts.import_markdown --vault ./vault --apply --purge-before-upsert
3. Konsistenzprüfungen
audit_vault_vs_qdrant.py
Zweck:
Vergleicht Vault-Inhalte mit Qdrant.
- Zählt Notes/Chunks/Edges
- Verifiziert Anzahl Wikilinks vs. Edges
- Meldet Mismatches pro Note
Parameter:
--vault PATH: Vault-Verzeichnis--prefix STR: Prefix für Qdrant-Collections (Default:mindnet)
Beispiel:
python3 -m scripts.audit_vault_vs_qdrant --vault ./vault --prefix mindnet
validate_edges.py
Zweck:
Prüft die Edges-Collection in Qdrant.
- Zählt Edges pro Typ
- Kontrolliert Invarianten (z. B. jede Reference hat Backlink)
- Listet unresolved Edges auf
Parameter:
--prefix STR: Prefix für Qdrant-Collections--details: Detailausgabe mit Beispielen
Beispiel:
python3 -m scripts.validate_edges --prefix mindnet --details
4. Qdrant zurücksetzen
reset_qdrant.py
Zweck:
Setzt die Qdrant-Collections zurück.
- „wipe“: löscht Collections komplett (inkl. Schema)
- „truncate“: löscht nur Inhalte, behält Collections
Parameter:
--mode {wipe,truncate}: Aktion--prefix STR: Prefix der Collections (Default:mindnet)--yes: Automatische Bestätigung--dry-run: Nur anzeigen, nicht ausführen
Beispiele:
python3 -m scripts.reset_qdrant --mode truncate --prefix mindnet --yes
python3 -m scripts.reset_qdrant --mode wipe --prefix mindnet --yes
5. Diagnose
diagnose_changed.py
Zweck:
Prüft, ob die Datei-Hashes (sha256) mit den gespeicherten hash_fulltext in Qdrant übereinstimmen.
Hilft, wenn der Importer zu viele Dateien als „changed“ erkennt.
Parameter:
--vault PATH: Vault-Verzeichnis--prefix STR: Prefix (Default:mindnet)--note-id ID: Nur bestimmte Note prüfen--all: Alle Notes prüfen
Beispiel:
python3 -m scripts.diagnose_changed --vault ./vault --prefix mindnet --all
6. Unresolved Links nachträglich auflösen
resolve_unresolved_references.py
Zweck:
Prüft offene Wikilinks (status=unresolved) und fügt Edges nach, wenn inzwischen passende Notizen existieren.
Parameter:
--prefix STR: Prefix für Qdrant-Collections--apply: Änderungen wirklich ausführen (sonst nur Vorschau)
Beispiele:
python3 -m scripts.resolve_unresolved_references --prefix mindnet
python3 -m scripts.resolve_unresolved_references --prefix mindnet --apply
✅ Typische Workflows
A) Vault neu importieren
python3 -m scripts.reset_qdrant --mode truncate --prefix mindnet --yes
python3 -m scripts.import_markdown --vault ./vault --apply
python3 -m scripts.audit_vault_vs_qdrant --vault ./vault --prefix mindnet
B) Änderungen einspielen (mit Purge für geänderte Notes)
python3 -m scripts.import_markdown --vault ./vault --apply --purge-before-upsert
python3 -m scripts.audit_vault_vs_qdrant --vault ./vault --prefix mindnet
C) Unresolved Links nachziehen
python3 -m scripts.resolve_unresolved_references --prefix mindnet --apply
python3 -m scripts.validate_edges --prefix mindnet --details
D) Test-Vault Szenario durchspielen
python3 -m scripts.make_test_vault --out ./test_vault --force
python3 -m scripts.import_markdown --vault ./test_vault --apply
python3 -m scripts.audit_vault_vs_qdrant --vault ./test_vault --prefix mindnet