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>
36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
# 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](../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](../docs/index-suche.md)). Der Rest steht in
|
|
[../docs/konzept.md](../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.
|