feat(site): llms.txt als Wegweiser + Charset-Fix für llms.md

Anlass war die Frage, ob `llms.md` ein guter Name ist. Zwei Befunde:

1. Der Zweck der Konvention ist ein anderer, als D43 annahm. llmstxt.org
   über die eigene Datei: „a markdown file that provides brief background
   information and guidance, along with links to markdown files providing
   more detailed information“ — ein Index, kein Inhalt. Der 211-Zeilen-
   Leitfaden ist genau eine jener verlinkten Dateien; `llms.md` ist damit
   der richtige Name, es fehlte der Wegweiser davor.

2. `llms.md` kam auf der stabilen Instanz falsch kodiert an: Apache kennt
   `.md` nicht und sendet GAR KEINEN Content-Type, der Browser rät
   windows-1252. Gemessen: characterSet=windows-1252, aus „notation —
   guide“ wurde „notation â€" guide“, 31 Zeilen betroffen. GitHub Pages
   liefert dieselbe Datei korrekt als text/markdown; charset=utf-8 aus.

- frontend/public/llms.txt: Index nach der Konvention (Titel, Blockquote,
  Notation in Kurzform, ## Docs, ## Optional). Rein ASCII — er ist die
  Datei, die ein fremder Agent ungefragt abruft, und soll auch dort
  ankommen, wo ein Server die Kodierung verschweigt. Alle 5 Links: 200.
- scripts/prod.htaccess: AddType für .md/.txt/.werkbaum, von
  deploy-prod.sh als .htaccess gespiegelt. Nicht in public/ — dort landete
  es wirkungslos im Pages-Artefakt. Rückweg bei 500 steht in der Datei.
- Beide Deploy-Wege kopieren llms.txt mit.

SPEC §13 + D43-Nachtrag 2 (mit Richtigstellung der D43-Annahme);
Plan: #not.llms.index [x]. 243 Tests grün, Plan 157 Knoten, 0 Warnungen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-24 11:01:51 +02:00
co-authored by Claude Opus 5
parent cb966e4e20
commit 48d3174684
7 changed files with 137 additions and 3 deletions
+9 -2
View File
@@ -990,6 +990,13 @@ Eine **englische Kurzfassung dieser Spezifikation für KI-Agenten** (lesen
**und** schreiben) liegt als Markdown in `frontend/public/llms.md` und wird
von jeder Instanz unter der Site-Wurzel ausgeliefert
(`https://werkbaum.javagil.de/llms.md`); der Footer verlinkt sie neben der
Versionsnummer. Angelehnt an die llms.txt-Konvention, mit `.md` als der zum
Inhalt ehrlichen Endung. **Diese SPEC bleibt normativ**: Bei Syntaxänderungen
Versionsnummer. **Diese SPEC bleibt normativ**: Bei Syntaxänderungen
wird die Agenten-Fassung im selben Zug nachgezogen (CLAUDE.md). Siehe D43.
Daneben liegt `llms.txt` — der **Wegweiser** der llms.txt-Konvention
(llmstxt.org): Name, ein Satz zur Sache und Links auf die Kurzfassung, diese
SPEC, den Editor und das Repo. Er ist bewusst kurz und **rein ASCII**, damit
er auch dort ankommt, wo ein Server die Kodierung nicht mitschickt. Die
Konvention meint mit `llms.txt` genau so einen Index, **nicht** den Inhalt
selbst — die Kurzfassung ist eine der „markdown files providing more detailed
information“, auf die er zeigt. Siehe D43-Nachtrag 2.