Referenzdateien ohne TOC und deutsche Prosa in der Control Plane: zwei ungenannte Scope-Lücken und ein Regelverstoß #99

Closed
opened 2026-09-13 06:45:16 +00:00 by torben · 5 comments
Owner

Status: Umgesetzt und veröffentlicht am 2026-09-15. Drei Commits: c64479f (6.0.0-beta.3, 31 Dateien, die eigentliche Arbeit), ef60e29 (docs/-Nachzug, ohne Bump) und 05a7506 (6.0.0-beta.4, ein in der Schlussphase gefundener Widerspruch in types/type-spec.md). Der 6.0.0-Kandidat bleibt offen.

Ausgangspunkt war ein status/incoming-Stub mit zwei Beobachtungen (Wortlaut im ersten Kommentar): manche agentengeladene Referenzdatei trug keine TOC, manche Instruction war teilweise deutsch. Beide bestätigt - und für beide gab es bereits eine Regel, die an einer nirgends aufgeschriebenen Stelle nicht griff.

Problem (behoben)

Teil A - TOC-Scope. Die Pflicht aus 5.0.0 galt für AGENTS.md, die Stage-Contracts, kb/CONVENTIONS.md, jede COLLECTION.md und die flache instructions/**.md-Form. docs/ und die Seiten-Type-Specs fielen ohne genannten Grund heraus, während SKILL.md und die Menschendoku ihren Ausschlussgrund im toc.py-Docstring stehen hatten - was die zwei anderen Lücken wie Absicht aussehen ließ. docs/ ist dabei genau der Fall, für den die Schwelle existiert: AGENTS.md § File naming führt es als agentengeladen per Link, also am zweiten Hop.

Teil B - Sprache. Die Regel existierte wörtlich (kb/CONVENTIONS.md § Language: "the control plane stays English"), stand aber in einer instanzeigenen Datei, während sie stackeigene Dateien band. Verletzt wurde sie von instructions/setup-instance.md (297 Zeilen, vollständig deutsch, verbatim an jede Instanz ausgeliefert) und zwei Blockquotes in den Dev-Skills. Dazu kam ein dritter Befund: die Sprechsprache stand doppelt (SOUL.md:65 und kb/CONVENTIONS.md language:).

Teil C - --breaking. Beim Umsetzen aufgefallen: _set_marker_line ersetzte die Breaking-Zeile, statt zu akkumulieren, und version.py begründete das ausdrücklich. Dieser Kandidat ist der Gegenbeweis - sein Linkziel-Übertritt aus beta.1 und der TOC-Übertritt von hier sind zwei Dinge, auf die ein Betreiber getrennt reagieren muss. Ohne Fix hätte der eigene Bump den ersten stillschweigend gelöscht.

Ergebnis

A. toc.target_files() umfasst jetzt zusätzlich types/**.md und docs/**.md, berechnet statt gepflegt. Vier Dateien haben eine Region bekommen (docs/ownership-and-templates.md, docs/version-model.md, types/source.md, types/concept.md; types/entity.md kam beim Übersetzen dazu). SKILL.md bleibt die eine Ausnahme, jetzt belegt statt behauptet - die vendorte Guidance setzt den SKILL.md-Body auf die Ladeebene, die beim Triggern ganz gelesen wird, und richtet ihren TOC-Rat an die gebündelten Referenzdateien daneben. types describe strippt die Region aus seiner Ausgabe, weil dort der ganze Body ohnehin mitkommt.

B. Beide Sprachregeln stehen jetzt als Regeln ohne Werte in AGENTS.md § File naming: Control-Plane-Dateien sind englisch, und ein Agent spricht die KB-Sprache der Instanz. Der Wert dafür lebt weiter in kb/CONVENTIONS.md language:; SOUL.mds Sprache:-Zeile war damit eine Dublette und ist weg. setup-instance.md ist übersetzt, samt description:. Die zwei Blockquotes lesen sich als englisches Modell der Nachricht, die der Agent in der KB-Sprache ausspricht.

B+ (Nutzerergänzung). Dieselbe Regel gilt für alles, was als Template ausgeliefert wird - eine Instanz adoptiert es, bevor sie ihre Sprache gewählt hat. USER.md.template, SOUL.md.template und ENVIRONMENT.md.template waren vollständig deutsch und sind übersetzt; kb/sources/ und kb/concepts/COLLECTION.md waren es in Teilen und ziehen jetzt mit kb/entities/ und kb/comparisons/ gleich, die es längst waren. Bei den vier Seiten-Type-Specs läuft der Schnitt mitten durch die Datei, entlang derselben Prosa/Identifier-Grenze, die kb/CONTRACT.md schon innerhalb einer Seite zieht: Anleitungsprosa ist Anweisung an einen Agenten und damit Control Plane, der ## Template-Block und die layout:-Titel sind Seitentext und bleiben in der KB-Sprache. Verifiziert, dass extract_template weiterhin die deutschen Blöcke liefert - wikitool new entity scaffoldet unverändert deutsche Überschriften.

C. Die Breaking-Zeile ist eine Liste: eine Begründung bleibt flach auf der Markerzeile, ab der zweiten werden es Bullets. Eine vor der Änderung geschriebene Einzelzeile liest sich unverändert als Ein-Element-Liste zurück, also musste kein bestehender Eintrag angefasst werden. Live bewiesen: der eigene Bump hat die alte Zeile zu Bullet 1 gemacht und die neue angehängt.

Entscheidungen (alle getroffen)

  1. SKILL.md bleibt ausgenommen - Bedingung war "außer die Anthropic Best Practices sagen etwas anderes"; sie sagen das Gegenteil (claude-code-skill-creator/SKILL.md:88-99, codex-skill-creator/SKILL.md:221-222). Der Docstring trägt jetzt die Fundstellen, dazu die bisher unbenannte 100-vs-300-Schwellenwahl.
  2. Alles über 100 Zeilen kommt in den Scope, einheitlich - inklusive der Seiten-Type-Specs. Eine frühere Sitzungsableitung, sie auszunehmen, hat der Nutzer verworfen.
  3. TOC-Überschrift bleibt englisch, auch in den vier deutschen Type-Specs: die Region ist generierte Struktur wie ein Frontmatter-Key. Lokalisierung über sections: erwogen und verworfen - sie schüfe ein neues lokalisierbares Element samt Migrationsfrage.
  4. TOCs immer per Automat - docs toc --apply ist jetzt in doc-pull-through.md (eigener Schritt), stack-dev Schritt 5 und stack-close Schritt 3 benannt. Vorher stand das Kommando außerhalb von tools/CONTRACT.md an genau einer Stelle.
  5. Der Sprachsatz zieht nach AGENTS.md statt in kb/CONVENTIONS.md zu bleiben.
  6. Keine mechanische Sprachprüfung - eine Stoppwort-Heuristik schlüge auf zitiertem Vokabular falsch an (kb-profiles.md, link-taxonomy.md sind die Gegenbeispiele). Stattdessen verortet in instructions/CONTRACT.md § "Writing an instruction" und stack-dev.
  7. --migration/--no-migration bleibt eine Einzelzeile - sie beantwortet eine Ja/Nein-Frage über den Kandidaten als Ganzes, und _clear_marker_line ist ihr Rücknahmepfad.
  8. Kein Rücknahmepfad für einen falschen Breaking-Eintrag - selten, und der Kandidat ist bis zum Release dev-lokal. Eigenes Issue, falls es auftritt.
  9. Ownership und Sprache sind zwei Fragen (in der Schlussphase nachgezogen, siehe unten): Ownership sagt, wer eine Zeile ändern darf; die Sprache folgt unabhängig davon dem Publikum der Zeile. Das bindet auch einen Seitentyp, den eine Instanz sich selbst schreibt - der ist durchgängig instanzeigen, aber seine Anleitungshälfte hat trotzdem einen Agenten als Leser.

Versionsteil: --minor, entschieden

6.0.0-beta.2 -> 6.0.0-beta.3 (plus --patch auf beta.4 für den Nachzug). Der Kandidat war bereits breaking, max-wins-Eskalation zählt also nur N hoch - keine neue Grenzübertrittsentscheidung nötig. Der neue Übertritt ist aber schärfer als zunächst eingeschätzt, und die Breaking-Liste sagt das: die Seiten-Type-Specs sind nach Adoption instanzeigen, dist upgrade fasst nur den .template an. Jede Instanz, die die Templates adoptiert hat, sieht docs verify sicher fehlschlagen (types/source.md, types/concept.md ohne Region) - nicht nur möglicherweise wie im docs/-Fall. Das ist derselbe garantierte Fehlschlag auf instanzeigenem Inhalt, der 5.0.0 zu MAJOR gemacht hat. Reparatur in beiden Fällen: tools/wikitool docs toc --apply, keine Inhaltsmigration.

Akzeptanzkriterien

  • Jede Kategorie agentengeladener Referenzdateien ist in docs tocs Scope oder hat ihren Ausschlussgrund im toc.py-Modul-Docstring - SKILL.md und die Menschendoku sind die zwei begründeten Ausschlüsse, alles andere ist drin.
  • docs/ownership-and-templates.md, docs/version-model.md, types/source.md, types/concept.md und types/entity.md tragen eine von docs toc --apply erzeugte Region; docs verify meldet 49 Referenzdateien (vorher 38) als aktuell.
  • tools/wikitool types describe source gibt den Authoring-Body ohne TOC-Marker und ohne Contents-Liste aus (test_strip_region_removes_what_types_describe_would_otherwise_echo), mit erhaltener Leerzeile vor der folgenden Überschrift.
  • Keine SKILL.md trägt eine Region, und der Grund steht mit Fundstelle im Docstring.
  • Ein zweites version bump --breaking hängt an statt zu ersetzen; eine vorher geschriebene Einzelzeile liest sich als Ein-Element-Liste zurück; --no-migration bleibt Einzelzeile und _clear_marker_line nimmt sie weiter zurück (test_a_second_breaking_reason_joins_the_first_instead_of_replacing_it, test_breaking_reasons_reads_a_pre_accumulation_single_line_back, test_no_migration_still_replaces_rather_than_accumulating, test_retracting_no_migration_leaves_an_accumulated_breaking_list_intact). Zusätzlich live am eigenen Bump bestätigt.
  • Beide Sprachregeln existieren genau einmal im Baum, in AGENTS.md; kb/CONVENTIONS.md, kb/CONVENTIONS.md.template, SOUL.md, SOUL.md.template, instructions/CONTRACT.md und types/type-spec.md verweisen darauf oder schweigen.
  • doctor bleibt grün nach dem Eingriff in SOUL.md/SOUL.md.template.
  • Keine Datei unter instructions/ trägt deutsche Prosa außerhalb von zitiertem Vokabular und der benannten Ausnahme german-terminology.md. Nachgeprüft per Scan; die sechs Resttreffer (kb-profiles.md, link-taxonomy.md, version-parts.md, zwei Migrationsdokumente) sind einzeln geprüftes Zitatvokabular in englischen Sätzen.
  • setup-instance.md ist englisch inklusive description:, und der CI-Replay gegen einen frischen dist export läuft grün - die Übersetzung ändert keinen Befehl und keinen Schritt.
  • Die zwei Blockquotes sind englisch und als Modell gekennzeichnet, mit Verweis auf die zentrale Sprechsprachen-Regel.
  • stack-dev und stack-close benennen docs toc --apply.
  • docs verify, instructions verify und pytest (1253) grün; die Breaking-Liste des Kandidaten trägt beide Übertritte, und der neue Eintrag benennt den garantierten Fehlschlag auf adoptierten Seiten-Type-Specs.

Nebenbefunde, mitbehoben

Toter Link in docs/version-model.md. Die Scope-Erweiterung hat ihn sofort aufgedeckt: die Seite verlinkte nach instructions/dev/version-parts.md, das dist export wegschneidet - im Ursprungs-Repo grün, in jeder ausgelieferten Instanz ein toter Link, und vorher von keinem Check erreicht. Jetzt ein Klartextpfad mit dem Satz, warum er keiner ist.

Widerspruch in types/type-spec.md (6.0.0-beta.4, Commit 05a7506). Die Datei sagte weiterhin, Prosa, ## Template-Body und Sprache eines Seiten-Type-Specs gehörten der Instanz, die bei anderer KB-Sprache "einfach die Datei übersetzt" - das Gegenteil des Schnitts, den beta.3 ausgeliefert hat. Der Doku-Nachzug der Hauptarbeit hatte die Stelle übersehen; aufgefallen ist sie erst in der Schlussphase, beim Nachdenken darüber, welche Sprachregel für einen instanz-eigenen neuen Seitentyp gilt. Der Abschnitt trennt die zwei Fragen jetzt als Tabelle (Anleitungsprosa → Control Plane, ## Template/layout:-Titel → KB-Sprache, Feldnamen/Enum-Werte → Identifier) und sagt ausdrücklich, dass das auch für einen selbstgeschriebenen Typ gilt.

Ein Fehler in der Sitzung selbst: der erste AGENTS.md-Entwurf verlinkte german-terminology.md und verletzte damit dessen Manual-Tier. instructions verify hat es gefangen.

Bewusst nicht gemacht

  • Kein Rücknahmepfad für einen Breaking-Listeneintrag (Entscheidung 8).
  • Keine Lokalisierung der TOC-Überschrift (Entscheidung 3).
  • Keine mechanische Sprachprüfung (Entscheidung 6).
  • Kein Split in zwei Pakete - vom Nutzer verworfen; beide Teile fassen instructions/CONTRACT.md, die Dev-Skills und denselben Bump an.
  • Die ## Template-Blöcke der vier Seiten-Type-Specs bleiben deutsch. Wörtlich übersetzt hätte wikitool new englische Überschriften in eine deutsche Wissensbasis geschrieben. Restfolge: eine frische englische Instanz adoptiert einen deutschen Template-Block und muss ihn übersetzen - setup-instance.md Schritt 5.1 sagt das ausdrücklich, aber es bleibt ein Papierschnitt. Siehe Folgearbeit.

Folgearbeit

In der Schlussphase hat sich gezeigt, dass der Papierschnitt oben nur das kleinere Symptom eines Zuschnittproblems ist: weil der ganze Type-Spec instanzeigen ist, erreicht auch jede künftige Verbesserung seiner Anleitungsprosa keine bestehende Instanz mehr - dist upgrade schreibt den .template daneben, nie die adoptierte Datei. Nichts bricht, nichts meldet es. docs/ownership-and-templates.md trägt das jetzt als eigenen Abschnitt ("Where the file boundary strains"), samt der Richtung eines Fixes: den Template-Block in eine eigene instanzeigene Datei schneiden, den Type-Spec damit stackeigen und ganz englisch machen. Kostet eine Migration je bestehender Instanz und nimmt der Instanz die heute zugestandene Freiheit, die Anleitungsprosa selbst umzuschreiben. Eigenes Paket, nicht hier.

Verifiziert

  • Lokal: pytest (1253 grün), tools/wikitool docs verify (49 Referenzdateien), tools/wikitool instructions verify, tools/wikitool doctor - vor jedem der drei Commits.
  • Vollständiger CI-Replay von setup-instance.md gegen einen frischen dist export, zweimal gefahren (vor und nach der Template-Übersetzung): doctor, docs verify, instructions verify, lint --fail-on-error, migrate status, plus die Prüfung, dass in einer ausgelieferten Instanz kein reports/telemetry entsteht. Dabei auch der Scan, dass im ausgelieferten instructions/ nur noch german-terminology.md und das Zitatvokabular in kb-profiles.md deutsch sind.
  • extract_template gegen alle vier Seitentypen geprüft: liefert unverändert die deutschen Blöcke (## Beschreibung, ## Definition, ## Zusammenfassung, ## Überblick).
  • Commits: c64479f (31 Dateien, Mass-Update-Gate vom Nutzer freigegeben), ef60e29 (1 Datei, docs/, ohne Bump - docs/ liegt außerhalb des CI-Version-Gates ^(tools/|types/|instructions/|AGENTS\.md$|[^/]+/CONTRACT\.md$)), 05a7506 (3 Dateien, mit --patch-Bump, weil types/ im Gate liegt).

Herkunft

Vom Nutzer am 2026-09-13 als status/incoming-Stub angelegt, am 2026-09-15 ausgearbeitet, entschieden und umgesetzt. Vom Nutzer stammen die Antworten auf A1/A2/B1-B4, "wir behalten alle Punkte zusammen", die Präzisierung "der Agent spricht immer die KB-Sprache", "behandle alles einheitlich" für die Type-Specs, die Forderung, dass --breaking akkumulieren muss, "alle Templates sollten in der Control-Plane-Sprache sein", und die Frage nach der Sprachregel für instanz-eigene Typerweiterungen, die den Widerspruch in types/type-spec.md zutage gefördert hat. Aus der Sitzung stammen der Befund, die Guidance-Prüfung zu A1, die types describe-Folge, die Verschärfung des Breaking-Texts auf adoptierte Type-Specs, der Prosa/Template-Schnitt bei den Type-Specs und die Folgearbeit oben.

Modell-Handover

  • Design, Versionsteil und Grenzfall-Urteil (stack-dev Schritt 3): Opus 5.
  • Mechanische Mitte (Code, Tests, Übersetzungen, Doku-Nachzug, Version-Bump): Opus 5 - der Wechsel auf Sonnet wurde angeboten und nicht gezogen. Begründet abgeraten: der mechanisch abgedeckte Anteil war hier ungewöhnlich klein (nur toc.py, version.py und deren Tests), der Rest fast vollständig Prosa.
  • Schlussphase (stack-close: Issue-Body, docs/-Prüfung, zwei Nachzüge): Opus 5.
**Status:** Umgesetzt und veröffentlicht am 2026-09-15. Drei Commits: `c64479f` (`6.0.0-beta.3`, 31 Dateien, die eigentliche Arbeit), `ef60e29` (`docs/`-Nachzug, ohne Bump) und `05a7506` (`6.0.0-beta.4`, ein in der Schlussphase gefundener Widerspruch in `types/type-spec.md`). Der `6.0.0`-Kandidat bleibt offen. Ausgangspunkt war ein `status/incoming`-Stub mit zwei Beobachtungen (Wortlaut im ersten Kommentar): manche agentengeladene Referenzdatei trug keine TOC, manche Instruction war teilweise deutsch. Beide bestätigt - und für beide gab es bereits eine Regel, die an einer nirgends aufgeschriebenen Stelle nicht griff. ## Problem (behoben) **Teil A - TOC-Scope.** Die Pflicht aus `5.0.0` galt für `AGENTS.md`, die Stage-Contracts, `kb/CONVENTIONS.md`, jede `COLLECTION.md` und die flache `instructions/**.md`-Form. `docs/` und die Seiten-Type-Specs fielen ohne genannten Grund heraus, während `SKILL.md` und die Menschendoku ihren Ausschlussgrund im `toc.py`-Docstring stehen hatten - was die zwei anderen Lücken wie Absicht aussehen ließ. `docs/` ist dabei genau der Fall, für den die Schwelle existiert: `AGENTS.md` § File naming führt es als agentengeladen per Link, also am zweiten Hop. **Teil B - Sprache.** Die Regel existierte wörtlich (`kb/CONVENTIONS.md` § Language: *"the control plane stays English"*), stand aber in einer instanzeigenen Datei, während sie stackeigene Dateien band. Verletzt wurde sie von `instructions/setup-instance.md` (297 Zeilen, vollständig deutsch, verbatim an jede Instanz ausgeliefert) und zwei Blockquotes in den Dev-Skills. Dazu kam ein dritter Befund: die Sprechsprache stand doppelt (`SOUL.md:65` und `kb/CONVENTIONS.md` `language:`). **Teil C - `--breaking`.** Beim Umsetzen aufgefallen: `_set_marker_line` ersetzte die Breaking-Zeile, statt zu akkumulieren, und `version.py` begründete das ausdrücklich. Dieser Kandidat ist der Gegenbeweis - sein Linkziel-Übertritt aus `beta.1` und der TOC-Übertritt von hier sind zwei Dinge, auf die ein Betreiber getrennt reagieren muss. Ohne Fix hätte der eigene Bump den ersten stillschweigend gelöscht. ## Ergebnis **A.** `toc.target_files()` umfasst jetzt zusätzlich `types/**.md` und `docs/**.md`, berechnet statt gepflegt. Vier Dateien haben eine Region bekommen (`docs/ownership-and-templates.md`, `docs/version-model.md`, `types/source.md`, `types/concept.md`; `types/entity.md` kam beim Übersetzen dazu). `SKILL.md` bleibt die **eine** Ausnahme, jetzt belegt statt behauptet - die vendorte Guidance setzt den SKILL.md-Body auf die Ladeebene, die beim Triggern ganz gelesen wird, und richtet ihren TOC-Rat an die gebündelten Referenzdateien daneben. `types describe` strippt die Region aus seiner Ausgabe, weil dort der ganze Body ohnehin mitkommt. **B.** Beide Sprachregeln stehen jetzt als Regeln ohne Werte in `AGENTS.md` § File naming: Control-Plane-Dateien sind englisch, und ein Agent spricht die KB-Sprache der Instanz. Der Wert dafür lebt weiter in `kb/CONVENTIONS.md` `language:`; `SOUL.md`s `Sprache:`-Zeile war damit eine Dublette und ist weg. `setup-instance.md` ist übersetzt, samt `description:`. Die zwei Blockquotes lesen sich als englisches *Modell* der Nachricht, die der Agent in der KB-Sprache ausspricht. **B+ (Nutzerergänzung).** Dieselbe Regel gilt für alles, was als Template ausgeliefert wird - eine Instanz adoptiert es, bevor sie ihre Sprache gewählt hat. `USER.md.template`, `SOUL.md.template` und `ENVIRONMENT.md.template` waren vollständig deutsch und sind übersetzt; `kb/sources/` und `kb/concepts/COLLECTION.md` waren es in Teilen und ziehen jetzt mit `kb/entities/` und `kb/comparisons/` gleich, die es längst waren. Bei den vier Seiten-Type-Specs läuft der Schnitt mitten durch die Datei, entlang derselben Prosa/Identifier-Grenze, die `kb/CONTRACT.md` schon *innerhalb* einer Seite zieht: Anleitungsprosa ist Anweisung an einen Agenten und damit Control Plane, der `## Template`-Block und die `layout:`-Titel sind Seitentext und bleiben in der KB-Sprache. Verifiziert, dass `extract_template` weiterhin die deutschen Blöcke liefert - `wikitool new entity` scaffoldet unverändert deutsche Überschriften. **C.** Die Breaking-Zeile ist eine Liste: eine Begründung bleibt flach auf der Markerzeile, ab der zweiten werden es Bullets. Eine vor der Änderung geschriebene Einzelzeile liest sich unverändert als Ein-Element-Liste zurück, also musste kein bestehender Eintrag angefasst werden. Live bewiesen: der eigene Bump hat die alte Zeile zu Bullet 1 gemacht und die neue angehängt. ## Entscheidungen (alle getroffen) 1. **`SKILL.md` bleibt ausgenommen** - Bedingung war "außer die Anthropic Best Practices sagen etwas anderes"; sie sagen das Gegenteil (`claude-code-skill-creator/SKILL.md:88-99`, `codex-skill-creator/SKILL.md:221-222`). Der Docstring trägt jetzt die Fundstellen, dazu die bisher unbenannte 100-vs-300-Schwellenwahl. 2. **Alles über 100 Zeilen kommt in den Scope, einheitlich** - inklusive der Seiten-Type-Specs. Eine frühere Sitzungsableitung, sie auszunehmen, hat der Nutzer verworfen. 3. **TOC-Überschrift bleibt englisch**, auch in den vier deutschen Type-Specs: die Region ist generierte Struktur wie ein Frontmatter-Key. Lokalisierung über `sections:` erwogen und verworfen - sie schüfe ein neues lokalisierbares Element samt Migrationsfrage. 4. **TOCs immer per Automat** - `docs toc --apply` ist jetzt in `doc-pull-through.md` (eigener Schritt), `stack-dev` Schritt 5 und `stack-close` Schritt 3 benannt. Vorher stand das Kommando außerhalb von `tools/CONTRACT.md` an genau einer Stelle. 5. **Der Sprachsatz zieht nach `AGENTS.md`** statt in `kb/CONVENTIONS.md` zu bleiben. 6. **Keine mechanische Sprachprüfung** - eine Stoppwort-Heuristik schlüge auf zitiertem Vokabular falsch an (`kb-profiles.md`, `link-taxonomy.md` sind die Gegenbeispiele). Stattdessen verortet in `instructions/CONTRACT.md` § "Writing an instruction" und `stack-dev`. 7. **`--migration`/`--no-migration` bleibt eine Einzelzeile** - sie beantwortet eine Ja/Nein-Frage über den Kandidaten als Ganzes, und `_clear_marker_line` ist ihr Rücknahmepfad. 8. **Kein Rücknahmepfad für einen falschen Breaking-Eintrag** - selten, und der Kandidat ist bis zum Release dev-lokal. Eigenes Issue, falls es auftritt. 9. **Ownership und Sprache sind zwei Fragen** (in der Schlussphase nachgezogen, siehe unten): Ownership sagt, wer eine Zeile ändern darf; die Sprache folgt unabhängig davon dem Publikum der Zeile. Das bindet auch einen Seitentyp, den eine Instanz sich selbst schreibt - der ist durchgängig instanzeigen, aber seine Anleitungshälfte hat trotzdem einen Agenten als Leser. ## Versionsteil: `--minor`, entschieden `6.0.0-beta.2 -> 6.0.0-beta.3` (plus `--patch` auf `beta.4` für den Nachzug). Der Kandidat war bereits breaking, max-wins-Eskalation zählt also nur `N` hoch - keine neue Grenzübertrittsentscheidung nötig. Der neue Übertritt ist aber **schärfer als zunächst eingeschätzt**, und die Breaking-Liste sagt das: die Seiten-Type-Specs sind nach Adoption instanzeigen, `dist upgrade` fasst nur den `.template` an. Jede Instanz, die die Templates adoptiert hat, sieht `docs verify` **sicher** fehlschlagen (`types/source.md`, `types/concept.md` ohne Region) - nicht nur möglicherweise wie im `docs/`-Fall. Das ist derselbe garantierte Fehlschlag auf instanzeigenem Inhalt, der `5.0.0` zu MAJOR gemacht hat. Reparatur in beiden Fällen: `tools/wikitool docs toc --apply`, keine Inhaltsmigration. ## Akzeptanzkriterien - [x] Jede Kategorie agentengeladener Referenzdateien ist in `docs toc`s Scope **oder** hat ihren Ausschlussgrund im `toc.py`-Modul-Docstring - `SKILL.md` und die Menschendoku sind die zwei begründeten Ausschlüsse, alles andere ist drin. - [x] `docs/ownership-and-templates.md`, `docs/version-model.md`, `types/source.md`, `types/concept.md` und `types/entity.md` tragen eine von `docs toc --apply` erzeugte Region; `docs verify` meldet 49 Referenzdateien (vorher 38) als aktuell. - [x] `tools/wikitool types describe source` gibt den Authoring-Body ohne TOC-Marker und ohne Contents-Liste aus (`test_strip_region_removes_what_types_describe_would_otherwise_echo`), mit erhaltener Leerzeile vor der folgenden Überschrift. - [x] Keine `SKILL.md` trägt eine Region, und der Grund steht mit Fundstelle im Docstring. - [x] Ein zweites `version bump --breaking` hängt an statt zu ersetzen; eine vorher geschriebene Einzelzeile liest sich als Ein-Element-Liste zurück; `--no-migration` bleibt Einzelzeile und `_clear_marker_line` nimmt sie weiter zurück (`test_a_second_breaking_reason_joins_the_first_instead_of_replacing_it`, `test_breaking_reasons_reads_a_pre_accumulation_single_line_back`, `test_no_migration_still_replaces_rather_than_accumulating`, `test_retracting_no_migration_leaves_an_accumulated_breaking_list_intact`). Zusätzlich live am eigenen Bump bestätigt. - [x] Beide Sprachregeln existieren genau einmal im Baum, in `AGENTS.md`; `kb/CONVENTIONS.md`, `kb/CONVENTIONS.md.template`, `SOUL.md`, `SOUL.md.template`, `instructions/CONTRACT.md` und `types/type-spec.md` verweisen darauf oder schweigen. - [x] `doctor` bleibt grün nach dem Eingriff in `SOUL.md`/`SOUL.md.template`. - [x] Keine Datei unter `instructions/` trägt deutsche Prosa außerhalb von zitiertem Vokabular und der benannten Ausnahme `german-terminology.md`. Nachgeprüft per Scan; die sechs Resttreffer (`kb-profiles.md`, `link-taxonomy.md`, `version-parts.md`, zwei Migrationsdokumente) sind einzeln geprüftes Zitatvokabular in englischen Sätzen. - [x] `setup-instance.md` ist englisch inklusive `description:`, und der CI-Replay gegen einen frischen `dist export` läuft grün - die Übersetzung ändert keinen Befehl und keinen Schritt. - [x] Die zwei Blockquotes sind englisch und als Modell gekennzeichnet, mit Verweis auf die zentrale Sprechsprachen-Regel. - [x] `stack-dev` und `stack-close` benennen `docs toc --apply`. - [x] `docs verify`, `instructions verify` und `pytest` (1253) grün; die Breaking-Liste des Kandidaten trägt **beide** Übertritte, und der neue Eintrag benennt den garantierten Fehlschlag auf adoptierten Seiten-Type-Specs. ## Nebenbefunde, mitbehoben **Toter Link in `docs/version-model.md`.** Die Scope-Erweiterung hat ihn sofort aufgedeckt: die Seite verlinkte nach `instructions/dev/version-parts.md`, das `dist export` wegschneidet - im Ursprungs-Repo grün, in jeder ausgelieferten Instanz ein toter Link, und vorher von keinem Check erreicht. Jetzt ein Klartextpfad mit dem Satz, warum er keiner ist. **Widerspruch in `types/type-spec.md` (`6.0.0-beta.4`, Commit `05a7506`).** Die Datei sagte weiterhin, Prosa, `## Template`-Body **und Sprache** eines Seiten-Type-Specs gehörten der Instanz, die bei anderer KB-Sprache "einfach die Datei übersetzt" - das Gegenteil des Schnitts, den `beta.3` ausgeliefert hat. Der Doku-Nachzug der Hauptarbeit hatte die Stelle übersehen; aufgefallen ist sie erst in der Schlussphase, beim Nachdenken darüber, welche Sprachregel für einen instanz-eigenen neuen Seitentyp gilt. Der Abschnitt trennt die zwei Fragen jetzt als Tabelle (Anleitungsprosa → Control Plane, `## Template`/`layout:`-Titel → KB-Sprache, Feldnamen/Enum-Werte → Identifier) und sagt ausdrücklich, dass das auch für einen selbstgeschriebenen Typ gilt. **Ein Fehler in der Sitzung selbst:** der erste `AGENTS.md`-Entwurf verlinkte `german-terminology.md` und verletzte damit dessen Manual-Tier. `instructions verify` hat es gefangen. ## Bewusst nicht gemacht - **Kein Rücknahmepfad für einen Breaking-Listeneintrag** (Entscheidung 8). - **Keine Lokalisierung der TOC-Überschrift** (Entscheidung 3). - **Keine mechanische Sprachprüfung** (Entscheidung 6). - **Kein Split in zwei Pakete** - vom Nutzer verworfen; beide Teile fassen `instructions/CONTRACT.md`, die Dev-Skills und denselben Bump an. - **Die `## Template`-Blöcke der vier Seiten-Type-Specs bleiben deutsch.** Wörtlich übersetzt hätte `wikitool new` englische Überschriften in eine deutsche Wissensbasis geschrieben. Restfolge: eine frische englische Instanz adoptiert einen deutschen Template-Block und muss ihn übersetzen - `setup-instance.md` Schritt 5.1 sagt das ausdrücklich, aber es bleibt ein Papierschnitt. Siehe Folgearbeit. ## Folgearbeit In der Schlussphase hat sich gezeigt, dass der Papierschnitt oben nur das kleinere Symptom eines Zuschnittproblems ist: weil der *ganze* Type-Spec instanzeigen ist, erreicht auch jede künftige Verbesserung seiner **Anleitungsprosa** keine bestehende Instanz mehr - `dist upgrade` schreibt den `.template` daneben, nie die adoptierte Datei. Nichts bricht, nichts meldet es. `docs/ownership-and-templates.md` trägt das jetzt als eigenen Abschnitt ("Where the file boundary strains"), samt der Richtung eines Fixes: den Template-Block in eine eigene instanzeigene Datei schneiden, den Type-Spec damit stackeigen und ganz englisch machen. Kostet eine Migration je bestehender Instanz und nimmt der Instanz die heute zugestandene Freiheit, die Anleitungsprosa selbst umzuschreiben. Eigenes Paket, nicht hier. ## Verifiziert - Lokal: `pytest` (1253 grün), `tools/wikitool docs verify` (49 Referenzdateien), `tools/wikitool instructions verify`, `tools/wikitool doctor` - vor jedem der drei Commits. - Vollständiger CI-Replay von `setup-instance.md` gegen einen frischen `dist export`, zweimal gefahren (vor und nach der Template-Übersetzung): `doctor`, `docs verify`, `instructions verify`, `lint --fail-on-error`, `migrate status`, plus die Prüfung, dass in einer ausgelieferten Instanz kein `reports/telemetry` entsteht. Dabei auch der Scan, dass im ausgelieferten `instructions/` nur noch `german-terminology.md` und das Zitatvokabular in `kb-profiles.md` deutsch sind. - `extract_template` gegen alle vier Seitentypen geprüft: liefert unverändert die deutschen Blöcke (`## Beschreibung`, `## Definition`, `## Zusammenfassung`, `## Überblick`). - Commits: `c64479f` (31 Dateien, Mass-Update-Gate vom Nutzer freigegeben), `ef60e29` (1 Datei, `docs/`, ohne Bump - `docs/` liegt außerhalb des CI-Version-Gates `^(tools/|types/|instructions/|AGENTS\.md$|[^/]+/CONTRACT\.md$)`), `05a7506` (3 Dateien, mit `--patch`-Bump, weil `types/` im Gate liegt). ## Herkunft Vom Nutzer am 2026-09-13 als `status/incoming`-Stub angelegt, am 2026-09-15 ausgearbeitet, entschieden und umgesetzt. Vom Nutzer stammen die Antworten auf A1/A2/B1-B4, "wir behalten alle Punkte zusammen", die Präzisierung "der Agent spricht immer die KB-Sprache", "behandle alles einheitlich" für die Type-Specs, die Forderung, dass `--breaking` akkumulieren muss, "alle Templates sollten in der Control-Plane-Sprache sein", und die Frage nach der Sprachregel für instanz-eigene Typerweiterungen, die den Widerspruch in `types/type-spec.md` zutage gefördert hat. Aus der Sitzung stammen der Befund, die Guidance-Prüfung zu A1, die `types describe`-Folge, die Verschärfung des Breaking-Texts auf adoptierte Type-Specs, der Prosa/Template-Schnitt bei den Type-Specs und die Folgearbeit oben. ## Modell-Handover - Design, Versionsteil und Grenzfall-Urteil (`stack-dev` Schritt 3): Opus 5. - Mechanische Mitte (Code, Tests, Übersetzungen, Doku-Nachzug, Version-Bump): Opus 5 - der Wechsel auf Sonnet wurde angeboten und nicht gezogen. Begründet abgeraten: der mechanisch abgedeckte Anteil war hier ungewöhnlich klein (nur `toc.py`, `version.py` und deren Tests), der Rest fast vollständig Prosa. - Schlussphase (`stack-close`: Issue-Body, `docs/`-Prüfung, zwei Nachzüge): Opus 5.
torben added the status/incoming label 2026-09-13 06:45:16 +00:00
torben changed title from Nicht alle LLM Instruktionen haben TOCs to Nicht alle LLM Instruktionen haben TOCs, manche sind in Teilen Deutsch 2026-09-15 07:31:07 +00:00
Author
Owner

Elaboration eines status/incoming-Stubs. Der Wortlaut der Anfrage, bevor der Body ihn ersetzt:

Nicht alle LLM Instruktionen haben TOCs, manche sind in Teilen Deutsch

prüfen

  • instructions
  • conventions
  • contract
    usw.

also alles prüfen.

Changelog: Gegen den Baum geprüft (docs verify grün, wc -l über alle agentengeladenen Referenzdateien, Deutsch-Scan über instructions/, types/, kb/, docs/, AGENTS.md). Beide Beobachtungen bestätigt, aber keine ist das, wonach sie aussieht: Teil A ist keine fehlende TOC-Pflicht, sondern zwei Dateikategorien, die ohne genannten Grund aus docs tocs Scope fallen; Teil B ist ein Verstoß gegen eine Regel, die es bereits gibt (kb/CONVENTIONS.md § Language, "the control plane stays English"), und die ausgerechnet in einer instanzeigenen Datei steht. Body neu geschrieben mit Befund, sechs offenen Fragen und Akzeptanzkriterien; status/incoming entfernt, area/process + kind/decision + prio/planned + size/L gesetzt. Nichts implementiert - die Fragen B1 und A1/A2 entscheiden, was überhaupt gebaut wird.

**Elaboration eines `status/incoming`-Stubs.** Der Wortlaut der Anfrage, bevor der Body ihn ersetzt: > Nicht alle LLM Instruktionen haben TOCs, manche sind in Teilen Deutsch > > prüfen > - instructions > - conventions > - contract > usw. > > also alles prüfen. **Changelog:** Gegen den Baum geprüft (`docs verify` grün, `wc -l` über alle agentengeladenen Referenzdateien, Deutsch-Scan über `instructions/`, `types/`, `kb/`, `docs/`, `AGENTS.md`). Beide Beobachtungen bestätigt, aber keine ist das, wonach sie aussieht: Teil A ist keine fehlende TOC-Pflicht, sondern zwei Dateikategorien, die ohne genannten Grund aus `docs toc`s Scope fallen; Teil B ist ein Verstoß gegen eine Regel, die es bereits gibt (`kb/CONVENTIONS.md` § Language, "the control plane stays English"), und die ausgerechnet in einer instanzeigenen Datei steht. Body neu geschrieben mit Befund, sechs offenen Fragen und Akzeptanzkriterien; `status/incoming` entfernt, `area/process` + `kind/decision` + `prio/planned` + `size/L` gesetzt. Nichts implementiert - die Fragen B1 und A1/A2 entscheiden, was überhaupt gebaut wird.
torben changed title from Nicht alle LLM Instruktionen haben TOCs, manche sind in Teilen Deutsch to Referenzdateien ohne TOC und deutsche Prosa in der Control Plane: zwei ungenannte Scope-Lücken und ein Regelverstoß 2026-09-15 07:37:53 +00:00
torben added prio/plannedsize/Larea/processkind/decision and removed status/incoming labels 2026-09-15 07:37:57 +00:00
torben added size/Mkind/build and removed size/Lkind/decision labels 2026-09-15 08:56:39 +00:00
Author
Owner

Changelog: Alle sechs offenen Fragen vom Nutzer entschieden, Body von "offene Fragen" auf "Entscheidungen + Umsetzungsplan" umgeschrieben. kind/decision → kind/build, size/L → size/M (der einzige große Posten ist eine Übersetzung ohne offene Frage). Split verworfen, beide Teile bleiben ein Paket.

Drei Dinge kamen bei der Vorbereitung dazu, die in keiner der sechs Antworten standen:

  1. A1 ist belegt statt behauptet. Die vendorte Guidance stützt die Ausnahme: claude-code-skill-creator/SKILL.md:88-99 setzt den SKILL.md-Body auf Ladeebene 2 ("In context whenever skill triggers"), der TOC-Punkt derselben Liste gilt Ebene-3-Bündeldateien; bei Codex steht er unter "Keep references one level deep from SKILL.md". Der toc.py-Docstring bekommt die Fundstelle, dazu die bisher unbenannte 100-vs-300-Schwellenwahl.
  2. Die offene Hälfte von A2 (Seiten-Type-Specs) ist nicht entschieden worden, sondern abgeleitet: types describe druckt den vollständigen Authoring-Body, eine Region würde in die Kommandoausgabe echoen - A1s Prinzip auf den Parallelfall. Im Body als Ableitung markiert, umkehrbar.
  3. Zwei Fallen. --breaking akkumuliert nicht (version.py:586), ein zweiter Aufruf löscht den Linkziel-Hinweis des 6.0.0-Kandidaten - der neue Text muss beide Übertritte tragen. Und B2 wörtlich ausgeführt würde den Modellwechsel-Break künftig auf Englisch an einen deutschsprachigen Nutzer richten; die Blockquotes werden deshalb als englisches Modell der Nachricht geschrieben, mit Verweis auf SOUL.md für die gesprochene Sprache.

Versionsteil geklärt: der 6.0.0-Kandidat ist bereits breiten Übertritts, die docs/-Aufnahme ist derselben Form - --minor genügt, keine neue Grenzübertrittsentscheidung nötig.

**Changelog:** Alle sechs offenen Fragen vom Nutzer entschieden, Body von "offene Fragen" auf "Entscheidungen + Umsetzungsplan" umgeschrieben. `kind/decision` → `kind/build`, `size/L` → `size/M` (der einzige große Posten ist eine Übersetzung ohne offene Frage). Split verworfen, beide Teile bleiben ein Paket. Drei Dinge kamen bei der Vorbereitung dazu, die in keiner der sechs Antworten standen: 1. **A1 ist belegt statt behauptet.** Die vendorte Guidance stützt die Ausnahme: `claude-code-skill-creator/SKILL.md:88-99` setzt den SKILL.md-Body auf Ladeebene 2 ("In context whenever skill triggers"), der TOC-Punkt derselben Liste gilt Ebene-3-Bündeldateien; bei Codex steht er unter "Keep references one level deep from SKILL.md". Der `toc.py`-Docstring bekommt die Fundstelle, dazu die bisher unbenannte 100-vs-300-Schwellenwahl. 2. **Die offene Hälfte von A2** (Seiten-Type-Specs) ist nicht entschieden worden, sondern abgeleitet: `types describe` druckt den vollständigen Authoring-Body, eine Region würde in die Kommandoausgabe echoen - A1s Prinzip auf den Parallelfall. Im Body als Ableitung markiert, umkehrbar. 3. **Zwei Fallen.** `--breaking` akkumuliert nicht (`version.py:586`), ein zweiter Aufruf löscht den Linkziel-Hinweis des `6.0.0`-Kandidaten - der neue Text muss beide Übertritte tragen. Und B2 wörtlich ausgeführt würde den Modellwechsel-Break künftig auf Englisch an einen deutschsprachigen Nutzer richten; die Blockquotes werden deshalb als englisches Modell der Nachricht geschrieben, mit Verweis auf `SOUL.md` für die gesprochene Sprache. Versionsteil geklärt: der `6.0.0`-Kandidat ist bereits breiten Übertritts, die `docs/`-Aufnahme ist derselben Form - `--minor` genügt, keine neue Grenzübertrittsentscheidung nötig.
torben added size/L and removed size/M labels 2026-09-15 12:14:19 +00:00
Author
Owner

Changelog: Drei Nachpräzisierungen des Nutzers eingearbeitet, Body entsprechend umgeschrieben. size/M → size/L.

  • A2 vereinheitlicht: die Seiten-Type-Specs kommen doch in den Scope ("behandle alles einheitlich"), meine Ableitung von letzter Runde ist damit hinfällig. SKILL.md bleibt die einzige Ausnahme. Neu als eigene Arbeit: types describe muss die Region aus seiner Ausgabe strippen (types_cmd.py:91 druckt den Body wörtlich), und die TOC-Überschrift bleibt englisch auch in den vier deutschen Type-Specs.
  • B2 zentralisiert statt geflickt: der Agent spricht immer die KB-Sprache der Instanz. Der ursprünglich geplante Halbsatz an jedem Blockquote entfällt - er wäre eine zweite Kopie gewesen. AGENTS.md trägt jetzt beide Sprachregeln als Regeln ohne Werte; SOUL.md:65 wird dadurch zur Dublette und entfällt, in SOUL.md und im .template. Für diese Instanz keine beobachtbare Verhaltensänderung.
  • Neuer Strang C: version bump --breaking akkumuliert. Kehrt eine im Docstring ausdrücklich begründete Entscheidung um, also wird die Begründung mit ersetzt. --migration/--no-migration bleibt Einzelzeile, kein Rücknahmepfad für einen falschen Breaking-Eintrag (beides entschieden). Wird vor dem eigenen Bump gebaut, damit dieses Paket sie selbst nutzt.

Eine Verschärfung kam beim Einarbeiten dazu: die Seiten-Type-Specs sind nach Adoption instanzeigen, dist upgrade fasst nur den .template an. Jede Instanz, die die Templates adoptiert hat, sieht docs verify also sicher fehlschlagen (types/source.md 144, types/concept.md 108 ohne Region) - nicht nur möglicherweise, wie im docs/-Fall. Das ist derselbe garantierte Fehlschlag auf instanzeigenem Inhalt, der 5.0.0 zu MAJOR gemacht hat; der Breaking-Text muss es benennen. Reparatur bleibt docs toc --apply, keine Inhaltsmigration.

**Changelog:** Drei Nachpräzisierungen des Nutzers eingearbeitet, Body entsprechend umgeschrieben. `size/M` → `size/L`. - **A2 vereinheitlicht:** die Seiten-Type-Specs kommen doch in den Scope ("behandle alles einheitlich"), meine Ableitung von letzter Runde ist damit hinfällig. `SKILL.md` bleibt die einzige Ausnahme. Neu als eigene Arbeit: `types describe` muss die Region aus seiner Ausgabe strippen (`types_cmd.py:91` druckt den Body wörtlich), und die TOC-Überschrift bleibt englisch auch in den vier deutschen Type-Specs. - **B2 zentralisiert statt geflickt:** der Agent spricht immer die KB-Sprache der Instanz. Der ursprünglich geplante Halbsatz an jedem Blockquote entfällt - er wäre eine zweite Kopie gewesen. `AGENTS.md` trägt jetzt beide Sprachregeln als Regeln ohne Werte; `SOUL.md:65` wird dadurch zur Dublette und entfällt, in `SOUL.md` und im `.template`. Für diese Instanz keine beobachtbare Verhaltensänderung. - **Neuer Strang C:** `version bump --breaking` akkumuliert. Kehrt eine im Docstring ausdrücklich begründete Entscheidung um, also wird die Begründung mit ersetzt. `--migration`/`--no-migration` bleibt Einzelzeile, kein Rücknahmepfad für einen falschen Breaking-Eintrag (beides entschieden). Wird vor dem eigenen Bump gebaut, damit dieses Paket sie selbst nutzt. Eine Verschärfung kam beim Einarbeiten dazu: die Seiten-Type-Specs sind nach Adoption **instanzeigen**, `dist upgrade` fasst nur den `.template` an. Jede Instanz, die die Templates adoptiert hat, sieht `docs verify` also **sicher** fehlschlagen (`types/source.md` 144, `types/concept.md` 108 ohne Region) - nicht nur möglicherweise, wie im `docs/`-Fall. Das ist derselbe garantierte Fehlschlag auf instanzeigenem Inhalt, der `5.0.0` zu MAJOR gemacht hat; der Breaking-Text muss es benennen. Reparatur bleibt `docs toc --apply`, keine Inhaltsmigration.
Author
Owner

Changelog: Umgesetzt und veröffentlicht (6.0.0-beta.3, Commit c64479f). Body vom Umsetzungsplan auf den Endzustand umgeschrieben: alle elf Akzeptanzkriterien abgehakt, die acht Entscheidungen lesen sich als getroffen, Versionsteil-Abschnitt trägt jetzt die verschärfte Einschätzung (garantierter statt möglicher docs verify-Fehlschlag auf adoptierten Seiten-Type-Specs), Modell-Handover ergänzt. Zwei Abschnitte sind neu: "Nebenbefund, mitbehoben" (der tote docs/version-model.md-Link, den die Scope-Erweiterung sofort aufdeckte) und "Folgearbeit".

Die Folgearbeit ist das, was die Schlussphase zutage gefördert hat und über dieses Paket hinausgeht: der deutsche ## Template-Block in einer frisch adoptierten englischen Instanz ist nur das kleinere Symptom. Weil der ganze Type-Spec instanzeigen ist, erreicht auch jede künftige Verbesserung seiner Anleitungsprosa keine bestehende Instanz mehr - dist upgrade schreibt den .template daneben, nie die adoptierte Datei, und nichts meldet das. docs/ownership-and-templates.md hat dafür einen neuen Abschnitt bekommen ("Where the file boundary strains"), weil die Seite bis dahin behauptete, die Dateigrenze mache das Raten überflüssig - für diesen einen Dateityp stimmt das seit heute nicht mehr. Ohne Bump: docs/ liegt außerhalb des CI-Version-Gates.

Damit geschlossen.

**Changelog:** Umgesetzt und veröffentlicht (`6.0.0-beta.3`, Commit `c64479f`). Body vom Umsetzungsplan auf den Endzustand umgeschrieben: alle elf Akzeptanzkriterien abgehakt, die acht Entscheidungen lesen sich als getroffen, Versionsteil-Abschnitt trägt jetzt die *verschärfte* Einschätzung (garantierter statt möglicher `docs verify`-Fehlschlag auf adoptierten Seiten-Type-Specs), Modell-Handover ergänzt. Zwei Abschnitte sind neu: "Nebenbefund, mitbehoben" (der tote `docs/version-model.md`-Link, den die Scope-Erweiterung sofort aufdeckte) und "Folgearbeit". Die Folgearbeit ist das, was die Schlussphase zutage gefördert hat und über dieses Paket hinausgeht: der deutsche `## Template`-Block in einer frisch adoptierten englischen Instanz ist nur das kleinere Symptom. Weil der *ganze* Type-Spec instanzeigen ist, erreicht auch jede künftige Verbesserung seiner **Anleitungsprosa** keine bestehende Instanz mehr - `dist upgrade` schreibt den `.template` daneben, nie die adoptierte Datei, und nichts meldet das. `docs/ownership-and-templates.md` hat dafür einen neuen Abschnitt bekommen ("Where the file boundary strains"), weil die Seite bis dahin behauptete, die Dateigrenze mache das Raten überflüssig - für diesen einen Dateityp stimmt das seit heute nicht mehr. Ohne Bump: `docs/` liegt außerhalb des CI-Version-Gates. Damit geschlossen.
Author
Owner

Changelog: Body um einen zweiten Nachzug ergänzt, der nach dem Schließen anfiel. Die Frage des Nutzers, welche Sprachregel für einen instanz-eigenen neuen Seitentyp gilt, hat einen Widerspruch aufgedeckt: types/type-spec.md sagte weiterhin, Prosa, ## Template-Body und Sprache eines Seiten-Type-Specs gehörten der Instanz, die bei anderer KB-Sprache "einfach die Datei übersetzt" - genau das Gegenteil des Schnitts, den beta.3 ausgeliefert hatte. Der Doku-Nachzug der Hauptarbeit hatte die Stelle übersehen.

Behoben in 6.0.0-beta.4 (Commit 05a7506): der Abschnitt trennt Ownership und Sprache jetzt als zwei Fragen, mit Tabelle - Anleitungsprosa → Control Plane, ## Template/layout:-Titel → KB-Sprache, Feldnamen und Enum-Werte → Identifier - und sagt ausdrücklich, dass das auch für einen Typ gilt, den eine Instanz sich selbst schreibt: der ist durchgängig instanzeigen, aber seine Anleitungshälfte hat trotzdem einen Agenten als Leser. Als Entscheidung 9 im Body aufgenommen, Status/Verifiziert auf drei Commits nachgezogen.

**Changelog:** Body um einen zweiten Nachzug ergänzt, der nach dem Schließen anfiel. Die Frage des Nutzers, welche Sprachregel für einen *instanz-eigenen* neuen Seitentyp gilt, hat einen Widerspruch aufgedeckt: `types/type-spec.md` sagte weiterhin, Prosa, `## Template`-Body **und Sprache** eines Seiten-Type-Specs gehörten der Instanz, die bei anderer KB-Sprache "einfach die Datei übersetzt" - genau das Gegenteil des Schnitts, den `beta.3` ausgeliefert hatte. Der Doku-Nachzug der Hauptarbeit hatte die Stelle übersehen. Behoben in `6.0.0-beta.4` (Commit `05a7506`): der Abschnitt trennt Ownership und Sprache jetzt als zwei Fragen, mit Tabelle - Anleitungsprosa → Control Plane, `## Template`/`layout:`-Titel → KB-Sprache, Feldnamen und Enum-Werte → Identifier - und sagt ausdrücklich, dass das auch für einen Typ gilt, den eine Instanz sich selbst schreibt: der ist durchgängig instanzeigen, aber seine Anleitungshälfte hat trotzdem einen Agenten als Leser. Als Entscheidung 9 im Body aufgenommen, Status/Verifiziert auf drei Commits nachgezogen.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: torben/chemenu#99