SilverBullet mountet dasselbe Volume und legt seine Dateien an, bevor km dran ist — der clone scheiterte auf hive.home an einem nicht leeren Verzeichnis. Jetzt: init im Verzeichnis, Remote holen, Branch auschecken wenn vorhanden, sonst legt der erste Push ihn an. Die Eigendateien der Oberfläche (.silverbullet*, _plug/) kommen in die .gitignore der Ablage. Dazu die restlichen Umlaute im compose-Kommentar. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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:
readundsearchüber eine Ablage aus Markdown-Dateien — ohne die beiden ist nichts nachprüfbar.writeohne LLM-Prüfung, aber mit Kategorie und Namespace. Ab hier ist der Dienst benutzbar und kann die ersten Einträge aufnehmen.- Die
index.mdje Verzeichnis, die jedeswritefortschreibt. summaryüber dieindex.md.- Die prüfende Schreibfunktion (LLM, Konflikte,
force). - 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.