stack: Control-Plane-Sprache universell - Achse ist das Publikum, kein Instanz-Schalter (#103)
CI / verify (push) Failing after 45s
Release / release (push) Successful in 38s

Files changed:
- AGENTS.md
- CHANGES.md
- VERSION
- docs/language-boundaries.md
- kb/CONVENTIONS.md
- kb/CONVENTIONS.md.template
- tools/chemenu/commands/dist_cmd.py
This commit is contained in:
2026-09-15 16:58:55 +02:00
parent 05a75065ba
commit f350999053
7 changed files with 206 additions and 14 deletions
+34 -2
View File
@@ -59,7 +59,7 @@ concern - readable here, never shipped as something to parse.
---
## 6.0.0-beta.4 - 2026-09-15 - types/type-spec.md: Ownership und Sprache getrennt benannt (Nachzug zu #99)
## 6.0.0-beta.5 - 2026-09-15 - Control-Plane-Sprache universell: Achse ist das Publikum, kein Instanz-Schalter
**Author:** Torben Nehmer
@@ -77,6 +77,7 @@ concern - readable here, never shipped as something to parse.
**Medium impact**
- docs verify: ein nur als .template ausgeliefertes Linkziel gilt als aufgeloest
- Control-Plane-Sprache universell: Achse ist das Publikum, kein Instanz-Schalter
**Low impact**
- gates.md/session-setup.md: die Budget-Ausnahme von version regrade haengt an der Aufrufform
@@ -230,7 +231,38 @@ nicht haelt. Der Satz bindet ausdruecklich auch einen Type-Spec, den eine Instan
schreibt: der ist zwar durchgaengig instanzeigen, aber seine Anleitungshaelfte hat trotzdem einen
Agenten als Leser.
---
### Control-Plane-Sprache universell: Achse ist das Publikum, kein Instanz-Schalter
Die Sprachregel in `AGENTS.md` ruhte auf einer Begruendung, die schmaler war als sie selbst:
"Every file in the table above belongs to the stack and **ships to instances** that share none of
this instance's language choices, so:". Das traegt nur fuer ausgeliefertes Material und laesst
offen, was fuer ein Control-Plane-Dokument gilt, das eine Instanz nur fuer sich selbst schreibt -
eine eigene Instruction, ein selbst angelegter Seitentyp (`types/` nimmt einen ohne Code-Aenderung
auf), ein weiterer Stage-Contract. Genau dort fallen Ownership und Publikum auseinander: die Datei
ist durchgaengig instanzeigen, ihre Anleitungshaelfte hat trotzdem einen Agenten als Leser.
Der Vorsatz nennt jetzt die tatsaechliche Achse - die *For*-Spalte der Tabelle darueber, also wer
die Zeile liest, und weder wem die Datei gehoert noch ob sie den Checkout je verlaesst. Regel 1
sagt ausdruecklich, dass sie auch fuer ein nie ausgeliefertes Control-Plane-Dokument gilt und dass
es neben `kb/CONVENTIONS.md`s `language:` bewusst keinen zweiten Sprachwert gibt.
`kb/CONVENTIONS.md` und ihr `.template` sagen dasselbe von ihrer Seite aus: die
Control-Plane-Sprache ist keine Einstellung, die diese Datei zurueckhaelt - es ist gar keine.
Die Begruendung dazu steht als neue `docs/`-Seite
([docs/language-boundaries.md](docs/language-boundaries.md)), weil sie sonst in einem Jahr neu
verhandelt wird: warum Englisch (der Stack redet fast nur ueber Identifier, und die sind
englisch), warum kein Parameter (die Kosten traegt jede Datei, den Nutzen haette ein Dokument, das
ohnehin nur ein Agent liest), und was die Entscheidung wieder aufmachen wuerde. Die Seite haelt
zugleich fest, welches Argument falsch war: "Sprache folgt der Ownership" hat funktioniert,
solange nur ausgeliefertes Material betrachtet wurde, und faellt am instanz-eigenen Typ.
Nebenbei zwei Befunde derselben Ecke behoben. Der Docstring von
`dist_cmd.instance_owned_type_stems()` behauptete weiter, "its prose, its template and its
**language** are the instance's business" - Stand vor dem TOC-/Sprach-Bump oben. Und die
Aufzaehlung der `docs/`-Seiten in `AGENTS.md` sagte "Four pages exist today", waehrend das
Verzeichnis fuenf trug: `docs/model-and-effort-selection.md` fehlte, und zwar absichtlich, weil
ein Link dorthin die Claude-Code-eigene Entscheidung in die anderen drei Harnesses laden wuerde.
Der Satz zaehlt jetzt, was von hier aus verlinkt ist, und benennt die sechste Seite samt Grund.
## 5.1.0 - 2026-09-12 - changelog: Kandidaten-Eintrag nach Impact gruppiert, version regrade zur Nachkorrektur, version release verlangt eine Zusammenfassung