Menschliche Dokumentation nach Diátaxis neu aufbauen – Zielgruppen, Sprache, Ort, generierte Referenz (Design, Zerlegung in Folge-Issues) #185

Closed
opened 2026-10-06 12:28:21 +00:00 by torben · 3 comments
Owner

Ausgearbeitet aus einem status/incoming-Stub; dessen Wortlaut steht im ersten Kommentar. Abgeschlossen als Design – gebaut wird in #187, #188, #189, #190, #191, #192, #193 (§ Zerlegung).

Anliegen

Die Dokumentation für Menschen ist zu dünn an den richtigen Stellen und zu dick an den falschen: Sie steckt in wenigen großen Dateien an der Wurzel, die Lernpfad, Anleitung, Nachschlagewerk und Begründung in einem Fließtext mischen. Ziel ist ein Aufbau nach Diátaxis – Tutorials (lernen), How-to (Aufgabe erledigen), Referenz (nachschlagen), Explanation (verstehen) – mit einem Plan je Bereich, generierter statt geschriebener Referenz, wo eine Quelle existiert, und einem festgelegten Publikationsziel.

Befund (Stand des Baums, 2026-10-06)

Menschliche Dokumente zu diesem Zeitpunkt:

Datei Zeilen Sprache Diátaxis-Mischung
README.md 607 en Explanation (What is this, Architecture), How-to (How to Use: Ingest, Query, Lint, Weekly Review, Capture, Guideline-Export), Tutorial-Ansatz (Your first ingestion), Referenz-Ansätze (Entity Types, Files Created Automatically, Skill-Tabelle, Tools Integration)
INSTALL.md 506 de Tutorial (Installation) + How-to (Update) + Referenz (Konfiguration) + Troubleshooting
INSTALL-MCP.md 288 de How-to (MCP-Server einrichten)
EVALS.md 551 en Explanation (Telemetrie, Eval-Stufen) + How-to (Using it today) + Status
DEVELOPMENT.md 188 de How-to (Release-Ablauf) – nur Ursprungs-Repo
tools/README.md 285 en How-to + Explanation – Entwickler
docs/*.md 7 Seiten en reine Explanation – für Agenten und Menschen, ohne normativen Satz

Schon generiert (Muster: <!-- wikitool:… -->-Region, wikitool docs <x> --apply, Stale-Check in docs verify): Kommandoreferenz aus cli_contract.CommandRecord → -h, wikitool -h, tools/CONTRACT.md; Voraussetzungen aus tools/prerequisites.txt → INSTALL.md; Inhaltsverzeichnisse. Hand-gepflegt, aber ableitbar: Skill-Tabelle in README.md, Entity Types, Files Created Automatically; die .wikitool-*.json-Formen haben keine Quelle außer dem lesenden Code.

Kompatibilitätsfund: kb/CONVENTIONS.md.template – und damit das instanzeigene kb/CONVENTIONS.md jeder bestehenden Instanz – verlinkt ../docs/language-boundaries.md, und check_reference_targets prüft diese Datei. Ein Umzug der Seite bricht docs verify in jeder Instanz nach dem Upgrade (→ N2). Keine andere ausgelieferte Vorlage verlinkt nach docs/, EVALS.md oder INSTALL-MCP.md.

Gitea-Wiki: zum Zeitpunkt der Ausarbeitung eingeschaltet, aber leer (die API meldet „no such file or directory").

Leitplanken (gelten für jedes Folge-Issue)

  1. Eine Regel, ein Ort (Invariante 8). Eine menschliche Anleitung erzählt keine Agenten-Prozedur nach. Muster: INSTALL.md sagt, was vorzubereiten ist, welcher Satz an den Agenten geht, was er fragt und wo er anhält – die Schritte stehen nur in instructions/setup-instance.md, die aufzählbaren Überschneidungen sind über Marker geprüft (tools/chemenu/install_doc.py).
  2. AGENTS.md § File naming ist normativ und von docs verify geprüft; jede neue Rolle eines Pfads ändert diese Tabelle, instructions/dev/doc-pull-through.md und AGENTS.md § Changelog mit.
  3. Generiert heißt: aus einer bestehenden Quelle, mit Stale-Check. Ohne Quelle wäre es nur eine weitere Handkopie.
  4. Was dist export ausliefert, zitiert keine Issue-Nummer und verlinkt nur auf Dateien, die in der Instanz existieren.
  5. Die Agenten-Steuerung bleibt, wie sie ist (Contracts, instructions/, tools/CONTRACT.md). Diátaxis ordnet die menschliche Seite; deren Referenz darf aus denselben Quellen generiert werden, ersetzt die Agenten-Dokumente aber nicht.
  6. docs/ trägt weiterhin keinen normativen Satz und wird nie als Instruktion geladen.

Entscheidungen

E1 – Publikationsziel: Markdown im Repo, plus Spiegel ins Gitea-Wiki. Im Repo ist die Doku mit dem Code versioniert, geht mit dist export offline mit und ist prüfbar. Das Wiki ist ein generierter Spiegel, nie eine zweite Quelle, geschrieben nur von CI (Invariante 5). Keine statische Seite geplant.

E2 – Zielgruppen: Betreiber einer Instanz primär; ein Doku-Baum für beide Zielgruppen. Entwickler-Doku liegt unter docs/dev/ und wird nicht ausgeliefert, weil sie auf instructions/dev/ verlinkt und Issue-Nummern zitiert (Leitplanke 4). Der Wiki-Spiegel zeigt beide Teile. MCP-Einrichtung ist How-to der Betreiber-Doku. (N3: so bestätigt.)

E3 – Sprache: Englisch durchgehend für die menschliche Doku des Stacks; die Regel kommt nach AGENTS.md § File naming. CHANGES.md ist nicht betroffen.

E4 – Struktur: docs/ wird die Diátaxis-Wurzel, docs/{tutorials,how-to,reference,explanation,dev}/; kein zweiter Baum. README.md wird Landeseite, INSTALL.md bleibt an der Wurzel (in #191 präzisiert: ist das Installations-Tutorial), INSTALL-MCP.md, EVALS.md, DEVELOPMENT.md gehen in docs/ auf.

E5 – Generierte Referenz: Kommandoreferenz, Exit-Codes/Gates, Skill-Katalog, Seitentypen; Konfigurationsdateien erst mit eigener Quelle. Die Kommandoreferenz bekommt eine eigene, leserfreundliche Darstellung ohne die agentenadressierten Teile (ON-FAILURE-Reaktionen, never).

N1 – Wiki-Spiegel bei jedem Release (release.yml), nicht bei jedem Push: Das Wiki zeigt, was Instanzen installieren können.

N2 – Sauberer Umzug ohne Stub, als MAJOR (9.0.0). Vorgelegt waren außerdem ein Stub an der alten Stelle (MINOR) und das Liegenlassen der einen Seite (MINOR, dauerhafte Ausnahme). Gewählt: Umzug mit Pflicht-Migrationsdokument, das den Link in der instanzeigenen kb/CONVENTIONS.md nachzieht (#187).

Zerlegung

Paket Issue Version (vorab) Abhängigkeit
A – Gerüst, Umzug der Erklärseiten, DEVELOPMENT.md → docs/dev/, Sprachregel, Migrationsdokument #187 MAJOR 9.0.0 –
B1 – wikitool docs reference: Kommandoseiten je Gruppe, Exit-Codes/Gates #188 MINOR #187
B2 – Skill-Katalog und Seitentypen (Stand der ausgelieferten Vorgaben, Stale-Check nur im Ursprungs-Repo) #189 MINOR #188
C – How-to- und Erklärteile aus README.md, INSTALL.md, INSTALL-MCP.md, EVALS.md #190 MINOR #187
D – Tutorials: INSTALL.md englisch, „first source to first answer", README.md als Landeseite #191 PATCH #187, nach #190
E – Gitea-Wiki-Spiegel per CI bei jedem Release #192 keine (nur Ursprungs-Repo) #187
F – Konfigurationsreferenz mit eigener Quelle #193 offen prio/waiting bis #188

Akzeptanzkriterien (Designphase)

  • E1–E5 entschieden, mit Begründung festgehalten.
  • N1–N3 entschieden.
  • Die Pakete A–F existieren als Issues (#187–#193), A–E erfüllen § Ready to build, F ist kind/decision mit benannter Restfrage.
  • Dieses Issue wird geschlossen; gebaut wird nur in den Folge-Issues.
Ausgearbeitet aus einem `status/incoming`-Stub; dessen Wortlaut steht im ersten Kommentar. **Abgeschlossen als Design** – gebaut wird in #187, #188, #189, #190, #191, #192, #193 (§ Zerlegung). ## Anliegen Die Dokumentation für **Menschen** ist zu dünn an den richtigen Stellen und zu dick an den falschen: Sie steckt in wenigen großen Dateien an der Wurzel, die Lernpfad, Anleitung, Nachschlagewerk und Begründung in einem Fließtext mischen. Ziel ist ein Aufbau nach [Diátaxis](https://diataxis.fr/) – Tutorials (lernen), How-to (Aufgabe erledigen), Referenz (nachschlagen), Explanation (verstehen) – mit einem Plan je Bereich, generierter statt geschriebener Referenz, wo eine Quelle existiert, und einem festgelegten Publikationsziel. ## Befund (Stand des Baums, 2026-10-06) **Menschliche Dokumente zu diesem Zeitpunkt:** | Datei | Zeilen | Sprache | Diátaxis-Mischung | |---|---|---|---| | `README.md` | 607 | en | Explanation (*What is this*, *Architecture*), How-to (*How to Use*: Ingest, Query, Lint, Weekly Review, Capture, Guideline-Export), Tutorial-Ansatz (*Your first ingestion*), Referenz-Ansätze (*Entity Types*, *Files Created Automatically*, Skill-Tabelle, *Tools Integration*) | | `INSTALL.md` | 506 | de | Tutorial (Installation) + How-to (Update) + Referenz (*Konfiguration*) + Troubleshooting | | `INSTALL-MCP.md` | 288 | de | How-to (MCP-Server einrichten) | | `EVALS.md` | 551 | en | Explanation (Telemetrie, Eval-Stufen) + How-to (*Using it today*) + Status | | `DEVELOPMENT.md` | 188 | de | How-to (Release-Ablauf) – nur Ursprungs-Repo | | `tools/README.md` | 285 | en | How-to + Explanation – Entwickler | | `docs/*.md` | 7 Seiten | en | reine Explanation – für Agenten *und* Menschen, ohne normativen Satz | **Schon generiert** (Muster: `<!-- wikitool:… -->`-Region, `wikitool docs <x> --apply`, Stale-Check in `docs verify`): Kommandoreferenz aus `cli_contract.CommandRecord` → `-h`, `wikitool -h`, `tools/CONTRACT.md`; Voraussetzungen aus `tools/prerequisites.txt` → `INSTALL.md`; Inhaltsverzeichnisse. **Hand-gepflegt, aber ableitbar:** Skill-Tabelle in `README.md`, *Entity Types*, *Files Created Automatically*; die `.wikitool-*.json`-Formen haben keine Quelle außer dem lesenden Code. **Kompatibilitätsfund:** `kb/CONVENTIONS.md.template` – und damit das instanzeigene `kb/CONVENTIONS.md` jeder bestehenden Instanz – verlinkt `../docs/language-boundaries.md`, und `check_reference_targets` prüft diese Datei. Ein Umzug der Seite bricht `docs verify` in jeder Instanz nach dem Upgrade (→ N2). Keine andere ausgelieferte Vorlage verlinkt nach `docs/`, `EVALS.md` oder `INSTALL-MCP.md`. **Gitea-Wiki:** zum Zeitpunkt der Ausarbeitung eingeschaltet, aber leer (die API meldet „no such file or directory"). ## Leitplanken (gelten für jedes Folge-Issue) 1. **Eine Regel, ein Ort (Invariante 8).** Eine menschliche Anleitung erzählt keine Agenten-Prozedur nach. Muster: `INSTALL.md` sagt, was vorzubereiten ist, welcher Satz an den Agenten geht, was er fragt und wo er anhält – die Schritte stehen nur in `instructions/setup-instance.md`, die aufzählbaren Überschneidungen sind über Marker geprüft (`tools/chemenu/install_doc.py`). 2. **`AGENTS.md` § File naming ist normativ** und von `docs verify` geprüft; jede neue Rolle eines Pfads ändert diese Tabelle, `instructions/dev/doc-pull-through.md` und `AGENTS.md` § Changelog mit. 3. **Generiert heißt: aus einer bestehenden Quelle, mit Stale-Check.** Ohne Quelle wäre es nur eine weitere Handkopie. 4. **Was `dist export` ausliefert, zitiert keine Issue-Nummer** und verlinkt nur auf Dateien, die in der Instanz existieren. 5. **Die Agenten-Steuerung bleibt, wie sie ist** (Contracts, `instructions/`, `tools/CONTRACT.md`). Diátaxis ordnet die menschliche Seite; deren Referenz darf aus denselben Quellen generiert werden, ersetzt die Agenten-Dokumente aber nicht. 6. **`docs/` trägt weiterhin keinen normativen Satz** und wird nie als Instruktion geladen. ## Entscheidungen **E1 – Publikationsziel: Markdown im Repo, plus Spiegel ins Gitea-Wiki.** Im Repo ist die Doku mit dem Code versioniert, geht mit `dist export` offline mit und ist prüfbar. Das Wiki ist ein generierter Spiegel, nie eine zweite Quelle, geschrieben nur von CI (Invariante 5). Keine statische Seite geplant. **E2 – Zielgruppen: Betreiber einer Instanz primär; ein Doku-Baum für beide Zielgruppen.** Entwickler-Doku liegt unter `docs/dev/` und wird nicht ausgeliefert, weil sie auf `instructions/dev/` verlinkt und Issue-Nummern zitiert (Leitplanke 4). Der Wiki-Spiegel zeigt beide Teile. MCP-Einrichtung ist How-to der Betreiber-Doku. (N3: so bestätigt.) **E3 – Sprache: Englisch durchgehend** für die menschliche Doku des Stacks; die Regel kommt nach `AGENTS.md` § File naming. `CHANGES.md` ist nicht betroffen. **E4 – Struktur: `docs/` wird die Diátaxis-Wurzel**, `docs/{tutorials,how-to,reference,explanation,dev}/`; kein zweiter Baum. `README.md` wird Landeseite, `INSTALL.md` bleibt an der Wurzel (in #191 präzisiert: *ist* das Installations-Tutorial), `INSTALL-MCP.md`, `EVALS.md`, `DEVELOPMENT.md` gehen in `docs/` auf. **E5 – Generierte Referenz:** Kommandoreferenz, Exit-Codes/Gates, Skill-Katalog, Seitentypen; Konfigurationsdateien erst mit eigener Quelle. Die Kommandoreferenz bekommt eine **eigene, leserfreundliche Darstellung** ohne die agentenadressierten Teile (ON-FAILURE-Reaktionen, `never`). **N1 – Wiki-Spiegel bei jedem Release** (`release.yml`), nicht bei jedem Push: Das Wiki zeigt, was Instanzen installieren können. **N2 – Sauberer Umzug ohne Stub, als MAJOR (9.0.0).** Vorgelegt waren außerdem ein Stub an der alten Stelle (MINOR) und das Liegenlassen der einen Seite (MINOR, dauerhafte Ausnahme). Gewählt: Umzug mit Pflicht-Migrationsdokument, das den Link in der instanzeigenen `kb/CONVENTIONS.md` nachzieht (#187). ## Zerlegung | Paket | Issue | Version (vorab) | Abhängigkeit | |---|---|---|---| | A – Gerüst, Umzug der Erklärseiten, `DEVELOPMENT.md` → `docs/dev/`, Sprachregel, Migrationsdokument | #187 | MAJOR 9.0.0 | – | | B1 – `wikitool docs reference`: Kommandoseiten je Gruppe, Exit-Codes/Gates | #188 | MINOR | #187 | | B2 – Skill-Katalog und Seitentypen (Stand der ausgelieferten Vorgaben, Stale-Check nur im Ursprungs-Repo) | #189 | MINOR | #188 | | C – How-to- und Erklärteile aus `README.md`, `INSTALL.md`, `INSTALL-MCP.md`, `EVALS.md` | #190 | MINOR | #187 | | D – Tutorials: `INSTALL.md` englisch, „first source to first answer", `README.md` als Landeseite | #191 | PATCH | #187, nach #190 | | E – Gitea-Wiki-Spiegel per CI bei jedem Release | #192 | keine (nur Ursprungs-Repo) | #187 | | F – Konfigurationsreferenz mit eigener Quelle | #193 | offen | `prio/waiting` bis #188 | ## Akzeptanzkriterien (Designphase) - [x] E1–E5 entschieden, mit Begründung festgehalten. - [x] N1–N3 entschieden. - [x] Die Pakete A–F existieren als Issues (#187–#193), A–E erfüllen § Ready to build, F ist `kind/decision` mit benannter Restfrage. - [x] Dieses Issue wird geschlossen; gebaut wird nur in den Folge-Issues.
torben added the status/incoming label 2026-10-06 12:28:21 +00:00
torben changed title from Dokumentation aufbauen to Menschliche Dokumentation nach Diátaxis neu aufbauen – Zielgruppen, Sprache, Ort, generierte Referenz (Design, Zerlegung in Folge-Issues) 2026-10-06 15:43:22 +00:00
Author
Owner

Changelog: Stub ausgearbeitet (status/incoming → Designissue). Body neu: Befund gegen den Baum (Doku-Bestand je Datei mit Diátaxis-Mischung, was schon generiert wird, was ableitbar wäre, Gitea-Wiki nicht eingeschaltet), Leitplanken, fünf offene Betreiberentscheidungen E1–E5 mit Empfehlung, vorläufige Zerlegung in Folge-Issues, Versionseinschätzung. Titel präzisiert. Labels: area/distribution, kind/decision, prio/planned, size/L.

Ursprünglicher Stub, wörtlich:

Dokumentation aufbauen

Wir sollten eine echte Doka aufbauen, was wir jetzt haben, ist zu wenig bzw. unhandlich in riesigen READMEs u.ä.

Muster für die Doku: https://diataxis.fr/

Es braucht einen Plan für die einzelnen Doku-Bereiche, inklusive der Frage, wie beispielsweise Referenzen automatisch generiert werden könnten. Umfang und Publishing-Ziel (z. B. das gitea-Wiki) müssen wir festlegen.

to be discussed..

**Changelog:** Stub ausgearbeitet (`status/incoming` → Designissue). Body neu: Befund gegen den Baum (Doku-Bestand je Datei mit Diátaxis-Mischung, was schon generiert wird, was ableitbar wäre, Gitea-Wiki nicht eingeschaltet), Leitplanken, fünf offene Betreiberentscheidungen E1–E5 mit Empfehlung, vorläufige Zerlegung in Folge-Issues, Versionseinschätzung. Titel präzisiert. Labels: `area/distribution`, `kind/decision`, `prio/planned`, `size/L`. Ursprünglicher Stub, wörtlich: > **Dokumentation aufbauen** > > Wir sollten eine echte Doka aufbauen, was wir jetzt haben, ist zu wenig bzw. unhandlich in riesigen READMEs u.ä. > > Muster für die Doku: https://diataxis.fr/ > > Es braucht einen Plan für die einzelnen Doku-Bereiche, inklusive der Frage, wie beispielsweise Referenzen automatisch generiert werden könnten. Umfang und Publishing-Ziel (z. B. das gitea-Wiki) müssen wir festlegen. > > to be discussed..
torben added prio/plannedsize/Larea/distributionkind/decision and removed status/incoming labels 2026-10-06 15:43:29 +00:00
Author
Owner

Changelog: E1–E5 entschieden (Repo-Markdown + CI-Spiegel ins Gitea-Wiki; Betreiber primär, ein Baum mit nicht ausgeliefertem docs/dev/; Englisch; docs/ als Diátaxis-Wurzel; generierte Referenz mit eigener, leserfreundlicher Kommandodarstellung ohne agentenadressierte Teile). Neu im Befund: Fundstellen der docs/-Pfade und ein Kompatibilitätsfund (kb/CONVENTIONS.md jeder Instanz verlinkt docs/language-boundaries.md). Neu offen: N1 (Auslöser des Spiegels), N2 (Kompatibilität beim Umzug), N3 (Bestätigung E2). Zerlegung als Tabelle A–F mit Abhängigkeiten; Leitplanke 6 ergänzt.

**Changelog:** E1–E5 entschieden (Repo-Markdown + CI-Spiegel ins Gitea-Wiki; Betreiber primär, ein Baum mit nicht ausgeliefertem `docs/dev/`; Englisch; `docs/` als Diátaxis-Wurzel; generierte Referenz mit eigener, leserfreundlicher Kommandodarstellung ohne agentenadressierte Teile). Neu im Befund: Fundstellen der `docs/`-Pfade und ein Kompatibilitätsfund (`kb/CONVENTIONS.md` jeder Instanz verlinkt `docs/language-boundaries.md`). Neu offen: N1 (Auslöser des Spiegels), N2 (Kompatibilität beim Umzug), N3 (Bestätigung E2). Zerlegung als Tabelle A–F mit Abhängigkeiten; Leitplanke 6 ergänzt.
Author
Owner

Changelog: N1 (a), N2 (b), N3 bestätigt – als Entscheidungen in den Body übernommen. Zerlegung angelegt: #187 (A, MAJOR 9.0.0), #188 (B1), #189 (B2), #190 (C), #191 (D), #192 (E), #193 (F, prio/waiting). Präzisierung gegenüber E4 in #191: INSTALL.md bleibt das Installations-Tutorial an der Wurzel statt eines Stubs. Design abgeschlossen, Issue geschlossen.

**Changelog:** N1 (a), N2 (b), N3 bestätigt – als Entscheidungen in den Body übernommen. Zerlegung angelegt: #187 (A, MAJOR 9.0.0), #188 (B1), #189 (B2), #190 (C), #191 (D), #192 (E), #193 (F, `prio/waiting`). Präzisierung gegenüber E4 in #191: `INSTALL.md` bleibt das Installations-Tutorial an der Wurzel statt eines Stubs. Design abgeschlossen, Issue geschlossen.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: torben/chemenu#185