diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml
index 92ac6e1..1157c97 100644
--- a/.github/workflows/pages.yml
+++ b/.github/workflows/pages.yml
@@ -84,6 +84,8 @@ jobs:
-e "s#\(]*>\)[0-9.]\+#\1${BUILD_VERSION}#" \
frontend/dist/index.html > site/index.html
cp LICENSE site/LICENSE
+ # Agenten-Fassung der Notation (D43) — liegt per Vite-public/ in dist/
+ cp frontend/dist/llms.txt site/llms.txt
- name: Pages-Konfiguration
uses: actions/configure-pages@v6
diff --git a/CLAUDE.md b/CLAUDE.md
index 0551399..440cb7b 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -12,7 +12,9 @@ Integrations-Backend.
## Verbindliche Referenzen
- Sprachdefinition: @docs/SPEC.md — die Notation ist der gemeinsame Vertrag
- von Frontend und Backend. Syntaxänderungen: SPEC **zuerst**, dann Code.
+ von Frontend und Backend. Syntaxänderungen: SPEC **zuerst**, dann Code,
+ dann die Agenten-Fassung `frontend/public/llms.txt` nachziehen
+ (SPEC §13, D43).
- Entscheidungen: @docs/DECISIONS.md — respektieren; Abweichungen als neuen
Eintrag begründen, alte Einträge nie löschen. Besonders D13 (Backend-Stack)
und D14 (Parser-Hoheit) beachten.
diff --git a/docs/DECISIONS.md b/docs/DECISIONS.md
index b5b5539..a6150a4 100644
--- a/docs/DECISIONS.md
+++ b/docs/DECISIONS.md
@@ -2069,3 +2069,37 @@ als Hülle für Tests und Kompatibilität; `render()` liest `exact` für die
Warnung. `markCheapest` entfällt — die Menge entsteht jetzt in einem
Worklist-Durchlauf je Belegung (Zyklen enden über die Mengen-Prüfung von
selbst; erste ID-Vergabe gewinnt, D36/D39).
+
+## D43 — `llms.txt`: die Notation für KI-Agenten, unter der Site-Wurzel
+KI-Agenten sollen Werkbaum-Texte lesen **und schreiben** können, ohne die
+deutsche SPEC durchzuarbeiten. Dafür liefert jede Instanz eine englische
+Markdown-Kurzfassung der Notation unter `/llms.txt` aus
+(`https://werkbaum.javagil.de/llms.txt`). Die Entscheidungen:
+
+**Der Name folgt der llms.txt-Konvention** (llmstxt.org): eine Markdown-Datei
+an der Site-Wurzel, die die Site für Sprachmodelle beschreibt — genau der
+Zweck, und zunehmend der Ort, an dem Agenten und Werkzeuge von sich aus
+nachsehen. Ein hübscherer Name (`notation.md`) wäre nicht auffindbar. Im
+Footer steht der **Dateiname selbst als Link** — dadurch braucht er keine
+Übersetzung in neun Sprachen; der Tooltip ist knapp zweisprachig (DE · EN),
+wie beim Build-Hinweis (D16: Metainformation, kein Produkt-Feature-Text).
+
+**Englisch, obwohl die Doku deutsch ist.** „Doku auf Deutsch" (CLAUDE.md)
+gilt der Projektdokumentation; die Agenten-Fassung ist ein **ausgeliefertes
+Produkt-Artefakt** mit weltweitem Publikum — dieselbe Logik, nach der das
+Beispiel-Dokument englisch ist (D22).
+
+**Quelle in `frontend/public/`** — damit erledigt Vite die halbe Arbeit: Der
+Dev-Server liefert `/llms.txt` direkt aus, `vite build` kopiert es nach
+`dist/`, und beide Deploy-Wege (Pages-Workflow und `deploy-prod.sh`, die die
+Site je von Hand zusammenstellen, D16) kopieren es mit einer Zeile weiter.
+Bewusst **nicht** in die eine `index.html` eingebettet: Agenten holen eine
+URL, kein Bundle.
+
+**Drift ist das Hauptrisiko** — dieselbe Sorge wie bei einem zweiten Parser
+(D14). Gegenmittel: Die Datei erklärt selbst, dass die SPEC normativ ist, und
+die Hausregel in CLAUDE.md lautet jetzt „SPEC zuerst, dann Code, **dann
+llms.txt nachziehen**" (SPEC §13 verweist zurück). Inhaltlich beschreibt sie
+nur die **Notation samt Semantik** (Gates, Status, Ränge, Extraktions-
+reihenfolge, Schreibregeln, ein vollständiges Beispiel) — keine Editor-UI:
+Die braucht ein schreibender Agent nicht, und sie ändert sich öfter.
diff --git a/docs/SPEC.md b/docs/SPEC.md
index e9a5793..9d11259 100644
--- a/docs/SPEC.md
+++ b/docs/SPEC.md
@@ -797,3 +797,12 @@ Entscheidung und verworfene Alternativen: D34-Nachtrag, D40.
- Es gibt keinen registrierten MIME-Typ; wer selbst ausliefert, nimmt
`text/plain; charset=utf-8` (dann zeigt der Browser die Datei an, statt sie
herunterzuladen). Siehe D24.
+
+## 13. Agenten-Fassung (`llms.txt`)
+
+Eine **englische Kurzfassung dieser Spezifikation für KI-Agenten** (lesen
+**und** schreiben) liegt als Markdown in `frontend/public/llms.txt` und wird
+von jeder Instanz unter der Site-Wurzel ausgeliefert
+(`https://werkbaum.javagil.de/llms.txt`) — die llms.txt-Konvention. **Diese
+SPEC bleibt normativ**: Bei Syntaxänderungen wird die Agenten-Fassung im
+selben Zug nachgezogen (CLAUDE.md). Siehe D43.
diff --git a/docs/examples/werkbaum.werkbaum b/docs/examples/werkbaum.werkbaum
index 6fb37dd..0be9408 100644
--- a/docs/examples/werkbaum.werkbaum
+++ b/docs/examples/werkbaum.werkbaum
@@ -23,6 +23,7 @@
- [^] A long block at the end, addressed by its id (S) %% behind a --- separator
- [-] A separate storage format for the structure (L) %% the text is the format
- [ ] Ticket references (#123) (S)
+ - [x] llms.txt, the notation explained to AI agents (S)
- [?] Benefit per node, not only cost (M)
| [?] Another sigil next to the size (S)
| [?] Story points behind the T-shirt sizes (M)
diff --git a/frontend/index.html b/frontend/index.html
index 13c2518..eb78d3b 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -198,7 +198,7 @@
-
+