Files
eltonandClaude Fable 5.1 4986ef0575 Baue den Index als SQLite mit FTS5 und sqlite-vec, dazu die Suche
Entscheidung Andreas 2026-09-04 (spine/core#8): kein Datenbankdienst. Der
Index ist eine abgeleitete Sicht auf die Markdown-Ablage in einer Datei im
Volume, jederzeit neu baubar. image/km/index.py zerlegt die Dateien in
Chunks (Chunking aus info/ai/scripts/index_docs.py übernommen), hält
Volltext in FTS5 und Vektoren aus bge-m3 in sqlite-vec, inkrementell über
SHA-256 je Datei. image/km/search.py sucht Volltext führend, Vektor
ergänzend, mit Filtern vor dem Ranking (0 Treffer statt gesperrt).

Ingest: Kommentare bei der Erstbefüllung repo-weit statt je Vorgang —
die erste Fassung hing bei live/live nach 371 Vorgängen; jetzt 2175 in zwei
Minuten. Gemessen: Volltext über 61.000 Chunks in 3 s, Vektoren 0,31 s je
Chunk auf der CPU-Box. Kein Bytecode mehr im Repo.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 18:04:35 +02:00

1.6 KiB

image — der Dienst selbst

Hier entsteht git.42i.org/spine/km: die API, die Ablage, der MCP-Endpunkt und die prüfende Schreibfunktion.

Vorhanden: km/ingest_gitea.py holt Tickets und Kommentare aus Gitea in die Ablage (../docs/ingest-gitea.md); km/index.py und km/search.py bauen den SQLite-Index (FTS5 + sqlite-vec) und suchen darüber (../docs/index-suche.md). Der Rest steht in ../docs/konzept.md. Die Reihenfolge, in der es sinnvoll wächst:

  1. read und search über eine Ablage aus Markdown-Dateien — ohne die beiden ist nichts nachprüfbar.
  2. write ohne LLM-Prüfung, aber mit Kategorie und Namespace. Ab hier ist der Dienst benutzbar und kann die ersten Einträge aufnehmen.
  3. Die index.md je Verzeichnis, die jedes write fortschreibt.
  4. summary über die index.md.
  5. Die prüfende Schreibfunktion (LLM, Konflikte, force).
  6. Der MCP-Endpunkt.

Die Reihenfolge ist nicht beliebig: Schritt 5 ist der einzige, der ein Modell braucht und ausfallen kann. Er kommt zuletzt, damit der Dienst vorher schon trägt — und damit man beim Abschalten der Prüfung sieht, was sie eigentlich verhindert hat.

Zwei Dinge, die beim Bauen schon feststehen

Benannt nach der Fähigkeit, nicht nach dem Produkt — die Regel aus spine/images. km ist ein Versprechen auf Wissensverwaltung, keine Wette auf eine bestimmte Ablage oder Suchmaschine.

Die Ablage ist ein Volume, kein Datenbankgeheimnis. Markdown auf Platte, lesbar ohne den Dienst. Wer nur nachsehen will, was gespeichert ist, soll dafür kein laufendes System brauchen.