Paket B2 aus #185 (E5 Punkte 3–4). Baut auf #188 auf (geschlossen; wikitool docs reference gibt es seit 9.0.0-beta.3) und hängt an dessen Erweiterungspunkt reference_doc.regions() zwei Regionen an.
Stand: abgeschlossen. Gebaut und publiziert als 9.0.0-beta.5 in 070cae6, verifiziert durch CI-Lauf 584 (verify mit Fresh-Instance-Replay, pwsh) und Lauf 585, beide grün. Die Abschlussprüfung hat eine fehlende Begründung in docs/explanation/ nachgetragen (Punkt 5) – cff7df4, ohne Versionssprung (docs/ liegt außerhalb des Version-Gates), verifiziert durch CI-Lauf 586, grün. Lokal: pytest 2387 bestanden/3 übersprungen, docs verify, instructions verify grün. Ein Release ist nicht geschnitten – das entscheidet der Betreiber.
Was gebaut wurde
Skill-Katalogdocs/reference/skills.md: generierte Region <!-- wikitool:reference-skills -->, eine Tabellenzeile je ausgeliefertem Skill – Name, „What it does“, „Use it when“ – aus der Frontmatter von instructions/<name>/SKILL.md (reference_doc.shipped_skills() über instructions_cmd.skill_dirs()/is_dev_only()). Nicht die Skills unter instructions/dev/. Der Auslösesatz kommt aus der description (kein zusätzliches Feld): sie wird am Satz „Use when …“ geteilt (reference_doc.split_description). Beim Bauen entschieden: Eine description ohne „Use when“ bekommt „only when asked for by name“ – ein solcher Skill wird von keiner Anfrage ausgelöst; heute betrifft das keinen ausgelieferten Skill. Tabellenzellen maskieren | und, außerhalb von Inline-Code, </> (sonst verschwindet z. B. "ingest <file>" als HTML-Tag). Die handgepflegte Skill-Tabelle in README.md § For the LLM ist durch einen Link ersetzt.
Seitentypendocs/reference/page-types.md: generierte Region <!-- wikitool:reference-page-types -->, ein ## ``-Abschnitt je Type-Spec, die dist_cmd.instance_owned_type_stems() als Seitentyp führt (dieselbe Regel, nach der dist export als .template ausliefert – root: kb mit base_dir): Zweck (description), Zielverzeichnis, ggf. Titelpräfix, Subtypen als Tabelle (Wert, Zielverzeichnis, Index-Abschnitt aus layout:) und Pflichtfelder mit Typ und Enum. Abweichung vom Entwurf „vorhandenen Renderer wiederverwenden“: Der Textrenderer von types describe schreibt direkt auf das Terminal; wiederverwendet ist deshalb die Datenschicht, die er und --json gemeinsam lesen – types_core.describe_type() –, dazu resolver.subtype_dir()/get_layout() für die Verzeichnisse. Subtypen sind die Enum-Werte des Subtypfelds (Reihenfolge des Schemas). In README.md ist § Entity Types zu § Page Types mit Link geworden (die types describe-Befehle für den Stand der Instanz bleiben), und § Files Created Automatically verweist für die Seiten auf page-types.md statt fünf Verzeichnisse aufzuzählen.
Instanz-Veränderlichkeit, entschieden: Beide Quellen kann eine Instanz verändern – sie übernimmt Type-Specs als .template und passt sie an, und sie darf eigene Instruktionen anlegen. Würde die Referenz den Stand der Instanz zeigen, müsste docs reference --apply dort eine ausgelieferte Datei umschreiben, und dist upgrade würde sie danach als lokal verändert blockieren. Deshalb:
Beide Seiten beschreiben die ausgelieferten Vorgaben des Stacks. Ihr handgeschriebener Kopf sagt das, und er sagt, dass tools/wikitool types describe <typ> bzw. tools/wikitool instructions list den Stand dieser Instanz zeigen.
Umsetzung: reference_doc.Region hat ein Feld origin_only; reference_doc.in_instance() prüft version.stamp_file() (.wikitool-release.json, dieselbe Unterscheidung wie der Telemetrie-Default), reference_doc.applicable() teilt die Regionen. In einer Instanz prüft docs verify die zwei Regionen gar nicht – auch nicht, ob die Seiten existieren – und seine Erfolgszeile sagt das; docs reference lässt sie unberührt und meldet „Left alone in this instance: …“.
Im Ursprungs-Repo sind types/*.md genau das, was als .template ausgeliefert wird; die Generierung liest dort also die Vorgaben.
Doku nachgezogen:instructions/dev/doc-pull-through.md – Zeilen „A skill's own step sequence or catalogue“ und „A new page type…“ nennen docs reference --apply; docs verify- und docs reference-Datensatz (Notes, Zusammenfassung „human reference“, Failure-Ursachen), tools/CONTRACT.md regeneriert; docs/reference/README.md verlinkt beide Seiten; tools/README.md Modulbaum (reference_doc.py).
Abschlussprüfung (stack-close): Die Begründung aus Punkt 3 stand nur in diesem Issue und im Modul-Docstring von reference_doc.py. Sie ist jetzt als Absatz in docs/explanation/ownership-and-templates.md § The consequence in practice nachgetragen: eine generierte, wörtlich ausgelieferte Datei darf nichts darstellen, was der Instanz gehört, sonst macht das Regenerieren sie lokal verändert. Geprüft und ohne Änderung geblieben: docs/explanation/language-boundaries.md (nennt die Kommandoreferenz als Beispiel generierter Doku, weiter zutreffend; die deutschen layout:-Titel in page-types.md sind zitierte Daten der ausgelieferten Vorgaben, keine Prosa); AGENTS.md § Routing (seine Skill-Tabelle ist Steuerungsebene für Agenten, nicht Gegenstand dieses Pakets); types/type-spec.md und instructions/CONTRACT.md (das Nachziehen der Referenz betrifft nur das Ursprungs-Repo und steht deshalb in instructions/dev/doc-pull-through.md); tools/CONTRACT.md-Einleitung („vierte Ansicht“ meint weiter nur die Kommandoreferenz). Keine Installationsinstruktion war berührt.
Version
MINOR – neue generierte Seiten, Check-Erweiterung; drop-in. In einer Instanz ändert sich am Verhalten von docs verify nichts (siehe Punkt 3). Gebumpt mit version bump --minor --impact medium auf 9.0.0-beta.5; der Themenabschnitt von #188 in CHANGES.md ist zu „Generierte Referenz für Menschen unter docs/reference/ (#188, #189)“ umgeschrieben.
Akzeptanzkriterien
skills.md hat genau eine Zeile je instructions/<name>/SKILL.md außerhalb von instructions/dev/ (test_the_skill_catalogue_has_one_row_per_shipped_skill).
page-types.md hat genau einen Abschnitt je Type-Spec mit root: kb; ein Test belegt, dass Pflichtfelder und Subtypen mit types describe übereinstimmen (test_page_types_has_one_section_per_page_type_matching_types_describe – vergleicht mit types describe --json und die Subtyp-Verzeichnisse mit resolver.compute_target_dir).
Im Ursprungs-Repo: eine geänderte description oder Type-Spec ohne --apply lässt docs verify scheitern (test_a_changed_skill_or_type_makes_verify_name_its_page).
In einem per dist export erzeugten und danach angepassten Baum (eigene Type-Spec-Änderung, eigener Skill) bleibt docs verify grün, und docs reference --apply ändert keine der zwei Seiten (test_an_adapted_instance_leaves_both_pages_alone: echter Export, prüft den Referenz-Check check_reference_regions – nicht das ganze docs verify – und die zwei Seiten byte-gleich; dazu test_an_instance_skips_a_missing_skill_or_type_page. Das ganze docs verify auf einer frischen, unangepassten Instanz prüft der CI-Schritt „The distribution works as a fresh instance“, grün in den Läufen 584 und 586).
README.md enthält keine handgepflegte Skill-Tabelle mehr.
pytest, docs verify, instructions verify, CI grün (lokal; CI-Läufe 584 und 585 auf 070cae6, 586 auf cff7df4).
Tests: tools/chemenu/tests/test_reference_doc.py (8 neue Tests; die Fixture des Fixture-Baums stellt eigene Skills/Typen über reference_doc.shipped_skills/page_types bereit).
Paket B2 aus #185 (E5 Punkte 3–4). Baut auf #188 auf (geschlossen; `wikitool docs reference` gibt es seit 9.0.0-beta.3) und hängt an dessen Erweiterungspunkt `reference_doc.regions()` zwei Regionen an.
**Stand: abgeschlossen.** Gebaut und publiziert als **9.0.0-beta.5** in `070cae6`, verifiziert durch CI-Lauf [584](https://gitea.nehmer.net/torben/chemenu/actions/runs/584) (`verify` mit Fresh-Instance-Replay, `pwsh`) und Lauf [585](https://gitea.nehmer.net/torben/chemenu/actions/runs/585), beide grün. Die Abschlussprüfung hat eine fehlende Begründung in `docs/explanation/` nachgetragen (Punkt 5) – `cff7df4`, ohne Versionssprung (`docs/` liegt außerhalb des Version-Gates), verifiziert durch CI-Lauf [586](https://gitea.nehmer.net/torben/chemenu/actions/runs/586), grün. Lokal: `pytest` 2387 bestanden/3 übersprungen, `docs verify`, `instructions verify` grün. Ein Release ist nicht geschnitten – das entscheidet der Betreiber.
## Was gebaut wurde
1. **Skill-Katalog** `docs/reference/skills.md`: generierte Region `<!-- wikitool:reference-skills -->`, eine Tabellenzeile je ausgeliefertem Skill – Name, „What it does“, „Use it when“ – aus der Frontmatter von `instructions/<name>/SKILL.md` (`reference_doc.shipped_skills()` über `instructions_cmd.skill_dirs()`/`is_dev_only()`). **Nicht** die Skills unter `instructions/dev/`. Der Auslösesatz kommt aus der `description` (kein zusätzliches Feld): sie wird am Satz „Use when …“ geteilt (`reference_doc.split_description`). **Beim Bauen entschieden:** Eine `description` ohne „Use when“ bekommt „only when asked for by name“ – ein solcher Skill wird von keiner Anfrage ausgelöst; heute betrifft das keinen ausgelieferten Skill. Tabellenzellen maskieren `|` und, außerhalb von Inline-Code, `<`/`>` (sonst verschwindet z. B. `"ingest <file>"` als HTML-Tag). Die handgepflegte Skill-Tabelle in `README.md` § For the LLM ist durch einen Link ersetzt.
2. **Seitentypen** `docs/reference/page-types.md`: generierte Region `<!-- wikitool:reference-page-types -->`, ein `## `<typ>``-Abschnitt je Type-Spec, die `dist_cmd.instance_owned_type_stems()` als Seitentyp führt (dieselbe Regel, nach der `dist export` als `.template` ausliefert – `root: kb` mit `base_dir`): Zweck (`description`), Zielverzeichnis, ggf. Titelpräfix, Subtypen als Tabelle (Wert, Zielverzeichnis, Index-Abschnitt aus `layout:`) und Pflichtfelder mit Typ und Enum. **Abweichung vom Entwurf „vorhandenen Renderer wiederverwenden“:** Der Textrenderer von `types describe` schreibt direkt auf das Terminal; wiederverwendet ist deshalb die Datenschicht, die er und `--json` gemeinsam lesen – `types_core.describe_type()` –, dazu `resolver.subtype_dir()`/`get_layout()` für die Verzeichnisse. Subtypen sind die Enum-Werte des Subtypfelds (Reihenfolge des Schemas). In `README.md` ist § *Entity Types* zu § *Page Types* mit Link geworden (die `types describe`-Befehle für den Stand der Instanz bleiben), und § *Files Created Automatically* verweist für die Seiten auf `page-types.md` statt fünf Verzeichnisse aufzuzählen.
3. **Instanz-Veränderlichkeit, entschieden:** Beide Quellen kann eine Instanz verändern – sie übernimmt Type-Specs als `.template` und passt sie an, und sie darf eigene Instruktionen anlegen. Würde die Referenz den Stand der Instanz zeigen, müsste `docs reference --apply` dort eine ausgelieferte Datei umschreiben, und `dist upgrade` würde sie danach als lokal verändert blockieren. Deshalb:
- Beide Seiten beschreiben die **ausgelieferten Vorgaben des Stacks**. Ihr handgeschriebener Kopf sagt das, und er sagt, dass `tools/wikitool types describe <typ>` bzw. `tools/wikitool instructions list` den Stand dieser Instanz zeigen.
- Umsetzung: `reference_doc.Region` hat ein Feld `origin_only`; `reference_doc.in_instance()` prüft `version.stamp_file()` (`.wikitool-release.json`, dieselbe Unterscheidung wie der Telemetrie-Default), `reference_doc.applicable()` teilt die Regionen. In einer Instanz prüft `docs verify` die zwei Regionen gar nicht – auch nicht, ob die Seiten existieren – und seine Erfolgszeile sagt das; `docs reference` lässt sie unberührt und meldet „Left alone in this instance: …“.
- Im Ursprungs-Repo sind `types/*.md` genau das, was als `.template` ausgeliefert wird; die Generierung liest dort also die Vorgaben.
4. **Doku nachgezogen:** `instructions/dev/doc-pull-through.md` – Zeilen „A skill's own step sequence or catalogue“ und „A new page type…“ nennen `docs reference --apply`; `docs verify`- und `docs reference`-Datensatz (Notes, Zusammenfassung „human reference“, Failure-Ursachen), `tools/CONTRACT.md` regeneriert; `docs/reference/README.md` verlinkt beide Seiten; `tools/README.md` Modulbaum (`reference_doc.py`).
5. **Abschlussprüfung (`stack-close`):** Die Begründung aus Punkt 3 stand nur in diesem Issue und im Modul-Docstring von `reference_doc.py`. Sie ist jetzt als Absatz in `docs/explanation/ownership-and-templates.md` § The consequence in practice nachgetragen: eine generierte, wörtlich ausgelieferte Datei darf nichts darstellen, was der Instanz gehört, sonst macht das Regenerieren sie lokal verändert. Geprüft und ohne Änderung geblieben: `docs/explanation/language-boundaries.md` (nennt die Kommandoreferenz als Beispiel generierter Doku, weiter zutreffend; die deutschen `layout:`-Titel in `page-types.md` sind zitierte Daten der ausgelieferten Vorgaben, keine Prosa); `AGENTS.md` § Routing (seine Skill-Tabelle ist Steuerungsebene für Agenten, nicht Gegenstand dieses Pakets); `types/type-spec.md` und `instructions/CONTRACT.md` (das Nachziehen der Referenz betrifft nur das Ursprungs-Repo und steht deshalb in `instructions/dev/doc-pull-through.md`); `tools/CONTRACT.md`-Einleitung („vierte Ansicht“ meint weiter nur die Kommandoreferenz). Keine Installationsinstruktion war berührt.
## Version
**MINOR** – neue generierte Seiten, Check-Erweiterung; drop-in. In einer Instanz ändert sich am Verhalten von `docs verify` nichts (siehe Punkt 3). Gebumpt mit `version bump --minor --impact medium` auf **`9.0.0-beta.5`**; der Themenabschnitt von #188 in `CHANGES.md` ist zu „Generierte Referenz für Menschen unter `docs/reference/` (#188, #189)“ umgeschrieben.
## Akzeptanzkriterien
- [x] `skills.md` hat genau eine Zeile je `instructions/<name>/SKILL.md` außerhalb von `instructions/dev/` (`test_the_skill_catalogue_has_one_row_per_shipped_skill`).
- [x] `page-types.md` hat genau einen Abschnitt je Type-Spec mit `root: kb`; ein Test belegt, dass Pflichtfelder und Subtypen mit `types describe` übereinstimmen (`test_page_types_has_one_section_per_page_type_matching_types_describe` – vergleicht mit `types describe --json` und die Subtyp-Verzeichnisse mit `resolver.compute_target_dir`).
- [x] Im Ursprungs-Repo: eine geänderte `description` oder Type-Spec ohne `--apply` lässt `docs verify` scheitern (`test_a_changed_skill_or_type_makes_verify_name_its_page`).
- [x] In einem per `dist export` erzeugten und danach angepassten Baum (eigene Type-Spec-Änderung, eigener Skill) bleibt `docs verify` grün, und `docs reference --apply` ändert keine der zwei Seiten (`test_an_adapted_instance_leaves_both_pages_alone`: echter Export, prüft den Referenz-Check `check_reference_regions` – nicht das ganze `docs verify` – und die zwei Seiten byte-gleich; dazu `test_an_instance_skips_a_missing_skill_or_type_page`. Das ganze `docs verify` auf einer frischen, unangepassten Instanz prüft der CI-Schritt „The distribution works as a fresh instance“, grün in den Läufen 584 und 586).
- [x] `README.md` enthält keine handgepflegte Skill-Tabelle mehr.
- [x] `pytest`, `docs verify`, `instructions verify`, CI grün (lokal; CI-Läufe 584 und 585 auf `070cae6`, 586 auf `cff7df4`).
Tests: `tools/chemenu/tests/test_reference_doc.py` (8 neue Tests; die Fixture des Fixture-Baums stellt eigene Skills/Typen über `reference_doc.shipped_skills`/`page_types` bereit).
Changelog:status/blocked entfernt: #188 ist geschlossen. wikitool docs reference gibt es seit 9.0.0-beta.3. Der Erweiterungspunkt ist reference_doc.regions(), eine Liste von Region(path, name, render), an die dieses Paket seine zwei Regionen anhängt. Der Body nennt #188 noch als Blocker und wird beim Aufgreifen gegen den Baum geprüft.
**Changelog:** `status/blocked` entfernt: #188 ist geschlossen. `wikitool docs reference` gibt es seit 9.0.0-beta.3. Der Erweiterungspunkt ist `reference_doc.regions()`, eine Liste von `Region(path, name, render)`, an die dieses Paket seine zwei Regionen anhängt. Der Body nennt #188 noch als Blocker und wird beim Aufgreifen gegen den Baum geprüft.
Changelog: Gebaut, publiziert als 9.0.0-beta.5 in 070cae6, CI-Läufe 584 und 585 grün; alle Kriterien abgehakt. Der veraltete Hinweis „blockiert durch #188“ ist ersetzt. Neu im Body sind drei Entscheidungen aus dem Bau: der Fallback „only when asked for by name“ für eine description ohne „Use when“, das Maskieren von </> in Tabellenzellen, und dass statt des Terminal-Renderers von types describe dessen Datenschicht describe_type() wiederverwendet wird. Außerdem ist die Umsetzung von Punkt 3 jetzt beschrieben (Region.origin_only, in_instance(), applicable()). README.md § Entity Types heißt jetzt § Page Types. Präzisiert ist, dass der Instanz-Test den Referenz-Check prüft und nicht das ganze docs verify.
**Changelog:** Gebaut, publiziert als `9.0.0-beta.5` in `070cae6`, CI-Läufe 584 und 585 grün; alle Kriterien abgehakt. Der veraltete Hinweis „blockiert durch #188“ ist ersetzt. Neu im Body sind drei Entscheidungen aus dem Bau: der Fallback „only when asked for by name“ für eine `description` ohne „Use when“, das Maskieren von `<`/`>` in Tabellenzellen, und dass statt des Terminal-Renderers von `types describe` dessen Datenschicht `describe_type()` wiederverwendet wird. Außerdem ist die Umsetzung von Punkt 3 jetzt beschrieben (`Region.origin_only`, `in_instance()`, `applicable()`). `README.md` § *Entity Types* heißt jetzt § *Page Types*. Präzisiert ist, dass der Instanz-Test den Referenz-Check prüft und nicht das ganze `docs verify`.
Changelog: Abschlussprüfung: Punkt 5 neu. Die Begründung, warum der Skill-Katalog und die Seitentypen nur im Ursprungs-Repo erzeugt werden, steht jetzt in docs/explanation/ownership-and-templates.md (cff7df4, CI-Lauf 586 grün). Die geprüften und unveränderten Dokumente sind dort aufgezählt. „Stand“ lautet jetzt abgeschlossen. Geschlossen.
**Changelog:** Abschlussprüfung: Punkt 5 neu. Die Begründung, warum der Skill-Katalog und die Seitentypen nur im Ursprungs-Repo erzeugt werden, steht jetzt in `docs/explanation/ownership-and-templates.md` (`cff7df4`, CI-Lauf 586 grün). Die geprüften und unveränderten Dokumente sind dort aufgezählt. „Stand“ lautet jetzt abgeschlossen. Geschlossen.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Paket B2 aus #185 (E5 Punkte 3–4). Baut auf #188 auf (geschlossen;
wikitool docs referencegibt es seit 9.0.0-beta.3) und hängt an dessen Erweiterungspunktreference_doc.regions()zwei Regionen an.Stand: abgeschlossen. Gebaut und publiziert als 9.0.0-beta.5 in
070cae6, verifiziert durch CI-Lauf 584 (verifymit Fresh-Instance-Replay,pwsh) und Lauf 585, beide grün. Die Abschlussprüfung hat eine fehlende Begründung indocs/explanation/nachgetragen (Punkt 5) –cff7df4, ohne Versionssprung (docs/liegt außerhalb des Version-Gates), verifiziert durch CI-Lauf 586, grün. Lokal:pytest2387 bestanden/3 übersprungen,docs verify,instructions verifygrün. Ein Release ist nicht geschnitten – das entscheidet der Betreiber.Was gebaut wurde
docs/reference/skills.md: generierte Region<!-- wikitool:reference-skills -->, eine Tabellenzeile je ausgeliefertem Skill – Name, „What it does“, „Use it when“ – aus der Frontmatter voninstructions/<name>/SKILL.md(reference_doc.shipped_skills()überinstructions_cmd.skill_dirs()/is_dev_only()). Nicht die Skills unterinstructions/dev/. Der Auslösesatz kommt aus derdescription(kein zusätzliches Feld): sie wird am Satz „Use when …“ geteilt (reference_doc.split_description). Beim Bauen entschieden: Einedescriptionohne „Use when“ bekommt „only when asked for by name“ – ein solcher Skill wird von keiner Anfrage ausgelöst; heute betrifft das keinen ausgelieferten Skill. Tabellenzellen maskieren|und, außerhalb von Inline-Code,</>(sonst verschwindet z. B."ingest <file>"als HTML-Tag). Die handgepflegte Skill-Tabelle inREADME.md§ For the LLM ist durch einen Link ersetzt.docs/reference/page-types.md: generierte Region<!-- wikitool:reference-page-types -->, ein##``-Abschnitt je Type-Spec, diedist_cmd.instance_owned_type_stems()als Seitentyp führt (dieselbe Regel, nach derdist exportals.templateausliefert –root: kbmitbase_dir): Zweck (description), Zielverzeichnis, ggf. Titelpräfix, Subtypen als Tabelle (Wert, Zielverzeichnis, Index-Abschnitt auslayout:) und Pflichtfelder mit Typ und Enum. Abweichung vom Entwurf „vorhandenen Renderer wiederverwenden“: Der Textrenderer vontypes describeschreibt direkt auf das Terminal; wiederverwendet ist deshalb die Datenschicht, die er und--jsongemeinsam lesen –types_core.describe_type()–, dazuresolver.subtype_dir()/get_layout()für die Verzeichnisse. Subtypen sind die Enum-Werte des Subtypfelds (Reihenfolge des Schemas). InREADME.mdist § Entity Types zu § Page Types mit Link geworden (dietypes describe-Befehle für den Stand der Instanz bleiben), und § Files Created Automatically verweist für die Seiten aufpage-types.mdstatt fünf Verzeichnisse aufzuzählen..templateund passt sie an, und sie darf eigene Instruktionen anlegen. Würde die Referenz den Stand der Instanz zeigen, müsstedocs reference --applydort eine ausgelieferte Datei umschreiben, unddist upgradewürde sie danach als lokal verändert blockieren. Deshalb:tools/wikitool types describe <typ>bzw.tools/wikitool instructions listden Stand dieser Instanz zeigen.reference_doc.Regionhat ein Feldorigin_only;reference_doc.in_instance()prüftversion.stamp_file()(.wikitool-release.json, dieselbe Unterscheidung wie der Telemetrie-Default),reference_doc.applicable()teilt die Regionen. In einer Instanz prüftdocs verifydie zwei Regionen gar nicht – auch nicht, ob die Seiten existieren – und seine Erfolgszeile sagt das;docs referencelässt sie unberührt und meldet „Left alone in this instance: …“.types/*.mdgenau das, was als.templateausgeliefert wird; die Generierung liest dort also die Vorgaben.instructions/dev/doc-pull-through.md– Zeilen „A skill's own step sequence or catalogue“ und „A new page type…“ nennendocs reference --apply;docs verify- unddocs reference-Datensatz (Notes, Zusammenfassung „human reference“, Failure-Ursachen),tools/CONTRACT.mdregeneriert;docs/reference/README.mdverlinkt beide Seiten;tools/README.mdModulbaum (reference_doc.py).stack-close): Die Begründung aus Punkt 3 stand nur in diesem Issue und im Modul-Docstring vonreference_doc.py. Sie ist jetzt als Absatz indocs/explanation/ownership-and-templates.md§ The consequence in practice nachgetragen: eine generierte, wörtlich ausgelieferte Datei darf nichts darstellen, was der Instanz gehört, sonst macht das Regenerieren sie lokal verändert. Geprüft und ohne Änderung geblieben:docs/explanation/language-boundaries.md(nennt die Kommandoreferenz als Beispiel generierter Doku, weiter zutreffend; die deutschenlayout:-Titel inpage-types.mdsind zitierte Daten der ausgelieferten Vorgaben, keine Prosa);AGENTS.md§ Routing (seine Skill-Tabelle ist Steuerungsebene für Agenten, nicht Gegenstand dieses Pakets);types/type-spec.mdundinstructions/CONTRACT.md(das Nachziehen der Referenz betrifft nur das Ursprungs-Repo und steht deshalb ininstructions/dev/doc-pull-through.md);tools/CONTRACT.md-Einleitung („vierte Ansicht“ meint weiter nur die Kommandoreferenz). Keine Installationsinstruktion war berührt.Version
MINOR – neue generierte Seiten, Check-Erweiterung; drop-in. In einer Instanz ändert sich am Verhalten von
docs verifynichts (siehe Punkt 3). Gebumpt mitversion bump --minor --impact mediumauf9.0.0-beta.5; der Themenabschnitt von #188 inCHANGES.mdist zu „Generierte Referenz für Menschen unterdocs/reference/(#188, #189)“ umgeschrieben.Akzeptanzkriterien
skills.mdhat genau eine Zeile jeinstructions/<name>/SKILL.mdaußerhalb voninstructions/dev/(test_the_skill_catalogue_has_one_row_per_shipped_skill).page-types.mdhat genau einen Abschnitt je Type-Spec mitroot: kb; ein Test belegt, dass Pflichtfelder und Subtypen mittypes describeübereinstimmen (test_page_types_has_one_section_per_page_type_matching_types_describe– vergleicht mittypes describe --jsonund die Subtyp-Verzeichnisse mitresolver.compute_target_dir).descriptionoder Type-Spec ohne--applylässtdocs verifyscheitern (test_a_changed_skill_or_type_makes_verify_name_its_page).dist exporterzeugten und danach angepassten Baum (eigene Type-Spec-Änderung, eigener Skill) bleibtdocs verifygrün, unddocs reference --applyändert keine der zwei Seiten (test_an_adapted_instance_leaves_both_pages_alone: echter Export, prüft den Referenz-Checkcheck_reference_regions– nicht das ganzedocs verify– und die zwei Seiten byte-gleich; dazutest_an_instance_skips_a_missing_skill_or_type_page. Das ganzedocs verifyauf einer frischen, unangepassten Instanz prüft der CI-Schritt „The distribution works as a fresh instance“, grün in den Läufen 584 und 586).README.mdenthält keine handgepflegte Skill-Tabelle mehr.pytest,docs verify,instructions verify, CI grün (lokal; CI-Läufe 584 und 585 auf070cae6, 586 aufcff7df4).Tests:
tools/chemenu/tests/test_reference_doc.py(8 neue Tests; die Fixture des Fixture-Baums stellt eigene Skills/Typen überreference_doc.shipped_skills/page_typesbereit).Changelog:
status/blockedentfernt: #188 ist geschlossen.wikitool docs referencegibt es seit 9.0.0-beta.3. Der Erweiterungspunkt istreference_doc.regions(), eine Liste vonRegion(path, name, render), an die dieses Paket seine zwei Regionen anhängt. Der Body nennt #188 noch als Blocker und wird beim Aufgreifen gegen den Baum geprüft.Changelog: Gebaut, publiziert als
9.0.0-beta.5in070cae6, CI-Läufe 584 und 585 grün; alle Kriterien abgehakt. Der veraltete Hinweis „blockiert durch #188“ ist ersetzt. Neu im Body sind drei Entscheidungen aus dem Bau: der Fallback „only when asked for by name“ für einedescriptionohne „Use when“, das Maskieren von</>in Tabellenzellen, und dass statt des Terminal-Renderers vontypes describedessen Datenschichtdescribe_type()wiederverwendet wird. Außerdem ist die Umsetzung von Punkt 3 jetzt beschrieben (Region.origin_only,in_instance(),applicable()).README.md§ Entity Types heißt jetzt § Page Types. Präzisiert ist, dass der Instanz-Test den Referenz-Check prüft und nicht das ganzedocs verify.Changelog: Abschlussprüfung: Punkt 5 neu. Die Begründung, warum der Skill-Katalog und die Seitentypen nur im Ursprungs-Repo erzeugt werden, steht jetzt in
docs/explanation/ownership-and-templates.md(cff7df4, CI-Lauf 586 grün). Die geprüften und unveränderten Dokumente sind dort aufgezählt. „Stand“ lautet jetzt abgeschlossen. Geschlossen.