Elevator Pitch: Ein generisches, wiederverwendbares .NET-Tool, das eine hierarchische Markdown-Wissensdatenbank (Front Matter + Ordnerstruktur) in einen MS-SQL-Server-Cache synchronisiert und diesen Cache per MCP (Model Context Protocol) für LLMs (Claude, Cursor, ...) durchsuchbar macht. Geschrieben wird in Markdown-Dateien im Filesystem, gelesen wird strukturiert per SQL über drei schlanke MCP-Tools.
Dieses Verzeichnis (docs/) beschreibt das Tool selbst, nicht eine konkrete Wissensdatenbank. Die eigentlichen .md-Inhalte, die später durchsucht werden, leben in einem beliebigen, frei konfigurierbaren Zielverzeichnis außerhalb dieses Repos (siehe 03-Projektstruktur-und-Konfiguration.md).
| Dokument | Inhalt |
|---|---|
| 01-Konzept-und-Workflow.md | Intention, Akteure, der tägliche Doku-Loop (Explorieren → Exportieren → Validieren → Importieren) |
| 02-Architektur-und-Techstack.md | Tech-Stack, Code-Guidelines, MCP-Tools, SQL-Schema-Überblick |
| 03-Projektstruktur-und-Konfiguration.md | Solution-/Projekt-Layout, Namespaces, appsettings.json, CLI-Kommandos |
| 04-Datenmodell-Validierung-Edgecases.md | SQL-Skripte, Validierungsregeln, Slug-Regeln, Edge Cases & wie sie behandelt werden |
| 05-Roadmap.md | MVP-Scope (v1), Implementierungs-Reihenfolge für einen frischen Chat, Backlog (v2+) |
Diese Entscheidungen wurden bewusst getroffen und sollten in der Umsetzung nicht in Frage gestellt werden, ohne den Nutzer zu fragen:
- Generisches Tool, kein gebundener Inhalt. Docs-Root-Pfad, SQL-Connection-String und der Tabellenname (
DocumentsTableName) sind pro Einsatzort frei konfigurierbar (appsettings.json) — mehrere thematisch getrennte Wissensbibliotheken (z.B. Sage 100, HR, ein Kundenprojekt) können so als eigene Tabellen in derselben oder unterschiedlichen Datenbanken liegen, jede mit eigenem MCP-Server-Prozess/eigener Config. Dieses Repo enthält nur die Software. - MS SQL Server statt SQLite. Läuft lokal oder im Netzwerk, keine "Offline-first"-Anforderung. Alles Nötige steht in
appsettings.json. - Schema-Verwaltung via nummerierte, selbst-idempotente SQL-Skripte. Kein EF Core, kein ORM-Migrations-Ballast, keine Journal-/Versionstabelle — die Skripte prüfen selbst per
IF NOT EXISTS, ob es etwas zu tun gibt, und laufen bei jedemimporterneut. - Suche via
LIKE '%...%', kein Full-Text Search (setzt eine SQL-Server-Feature-Komponente voraus, die nicht auf jeder Zielinstanz installiert ist — siehe 04, Abschnitt "search_docs-Query"), kein Vector-RAG. - Strikte Slug-Regeln: nur
a-z,0-9,-,/in Dateipfaden — vermeidet Case-Collisions zwischen Windows/Linux/Git vollständig. - 3-Projekt-Solution:
KnowHowToAI.Core(Logik),KnowHowToAI.Cli(Entry Point, CLI + MCP-Hosting),KnowHowToAI.Core.Tests(xUnit v3). - Sync nur manuell in v1 (kein Watch-Modus).
exportschreibt eine Marker-Datei und wiped nur, wenn diese vorhanden ist — sonst Abbruch mit Fehler (Schutz vor versehentlichem Datenverlust in Fremd-Verzeichnissen). - Distribution in v1: reines Build-Artefakt, self-contained Single-File-
.exeviascripts/publish.ps1(siehe 03, Abschnitt 5), MCP-Config verweist auf den Pfad zur.exe. Packaging als globales .NET-Tool ist Backlog. - Offizielles
ModelContextProtocol-NuGet-Paket für den stdio-Server,System.CommandLinefür die CLI.
Alle Details und Begründungen ("Warum?") stehen in den verlinkten Dokumenten.