Mitgelieferte Seiten brauchen einen Decay- und Lint-Ausschluss, bevor ein Handbuch ausgeliefert werden kann #27

Closed
opened 2026-09-01 15:21:37 +00:00 by torben · 1 comment
Owner

Woher das kommt

Bei der Vorbereitung der Veröffentlichung stand die Frage im Raum, ob dist export ein Handbuch im KB-Format mitliefern soll — die Distribution würde sich dann mit den eigenen Mitteln dokumentieren, und eine frische Instanz hätte ab Minute eins ein nicht-leeres kb/, an dem search, index rebuild, lint und confidence decay überhaupt etwas zu tun haben.

Die Idee wurde verworfen, aber nicht wegen des Konzepts. Sie scheitert an einer nachprüfbaren Code-Eigenschaft, und die ist reparierbar.

Das Hindernis

tools/chemenu/commands/confidence_decay.py wendet die Formel bedingungslos auf jede kb-Seite an: DECAY_RATE_PER_MONTH = 0.01, Boden 0.2, kein Ausschluss, kein Exempt-Feld, kein Pfadfilter.

Eine mitgelieferte Handbuchseite trägt ein modified: aus dem Releasetag. Ab da verfällt sie mit 1 %/Monat. Nach einem Jahr meldet die Instanz ihr eigenes Handbuch als Wissen niedriger Konfidenz — und der Nutzer soll dann was tun? Eine Aussage über die Gates nachverifizieren, deren einzige Quelle die Datei instructions/gates.md im selben Checkout ist.

Dazu kommt: Die Seiten tauchen in sources coverage, in den Orphan-Zählungen, im Lint-Report und in jedem wikitool search auf und konkurrieren dort mit dem eigenen Wissen des Nutzers. Woche eins in einer frischen Instanz bestünde daraus, fremde Seiten zu bewerten statt eigene anzulegen.

Was zu entscheiden ist

  • Wie wird eine Seite als „mitgeliefert" erkannt? Ein Frontmatter-Feld (origin: distribution?), ein reservierter Bereich (kb/manual/), oder ein Eintrag in .wikitool-release.json? Ein Frontmatter-Feld hat den Vorteil, dass es die Seite selbst trägt und ein touch es entfernen kann, sobald der Nutzer die Seite adoptiert.
  • Was genau wird ausgeschlossen? Decay sicher. Orphan-Zählung vermutlich. search eher nicht — eine Handbuchseite, die man nicht findet, ist nutzlos. Die Trennlinie gehört benannt, nicht geraten.
  • Was passiert bei einem Update? Wenn 2.3.0 eine Handbuchseite ändert, die der Nutzer inzwischen bearbeitet hat, ist das dieselbe Drei-Wege-Frage wie in #7.

Abgrenzung

Dieses Issue baut kein Handbuch. Es schafft nur die Vorbedingung. Solange es offen ist, bleibt dist export inhaltslos, und die Selbstdokumentation ist das öffentliche Repo selbst — ein echter, gewachsener Korpus mit echten kb/log.md-Einträgen ist ohnehin der bessere Beleg, dass das Format trägt.

Die zweite Vorbedingung ist inhaltlicher Natur und gehört mitbedacht: Ein Handbuch, das Regeln beschreibt, ist die zweite Kopie einer Regel, die schon in instructions/ oder einem CONTRACT.md steht (Invariante 8) — und es wäre die Kopie, die ein Agent per search zuerst findet. Ein tragfähiges Handbuch müsste also verfahrensbeschreibend sein und die Contracts zitieren statt sie zu wiederholen.

Akzeptanzkriterien

  • Mitgelieferte Seiten sind maschinell erkennbar, und wie, ist an genau einer Stelle festgelegt
  • confidence decay lässt sie unangetastet; Test dafür
  • lint zählt sie nicht als Waisen; Test dafür
  • Der Übergang „Nutzer übernimmt die Seite" ist beschrieben und mit einem bestehenden Kommando machbar
  • tools/CONTRACT.md und Changelog; MINOR
## Woher das kommt Bei der Vorbereitung der Veröffentlichung stand die Frage im Raum, ob `dist export` ein Handbuch im KB-Format mitliefern soll — die Distribution würde sich dann mit den eigenen Mitteln dokumentieren, und eine frische Instanz hätte ab Minute eins ein nicht-leeres `kb/`, an dem `search`, `index rebuild`, `lint` und `confidence decay` überhaupt etwas zu tun haben. Die Idee wurde **verworfen**, aber nicht wegen des Konzepts. Sie scheitert an einer nachprüfbaren Code-Eigenschaft, und die ist reparierbar. ## Das Hindernis `tools/chemenu/commands/confidence_decay.py` wendet die Formel **bedingungslos auf jede kb-Seite** an: `DECAY_RATE_PER_MONTH = 0.01`, Boden `0.2`, kein Ausschluss, kein Exempt-Feld, kein Pfadfilter. Eine mitgelieferte Handbuchseite trägt ein `modified:` aus dem Releasetag. Ab da verfällt sie mit 1 %/Monat. Nach einem Jahr meldet die Instanz ihr eigenes Handbuch als Wissen niedriger Konfidenz — und der Nutzer soll dann *was* tun? Eine Aussage über die Gates nachverifizieren, deren einzige Quelle die Datei `instructions/gates.md` im selben Checkout ist. Dazu kommt: Die Seiten tauchen in `sources coverage`, in den Orphan-Zählungen, im Lint-Report und in **jedem `wikitool search`** auf und konkurrieren dort mit dem eigenen Wissen des Nutzers. Woche eins in einer frischen Instanz bestünde daraus, fremde Seiten zu bewerten statt eigene anzulegen. ## Was zu entscheiden ist - **Wie wird eine Seite als „mitgeliefert" erkannt?** Ein Frontmatter-Feld (`origin: distribution`?), ein reservierter Bereich (`kb/manual/`), oder ein Eintrag in `.wikitool-release.json`? Ein Frontmatter-Feld hat den Vorteil, dass es die Seite selbst trägt und ein `touch` es entfernen kann, sobald der Nutzer die Seite adoptiert. - **Was genau wird ausgeschlossen?** Decay sicher. Orphan-Zählung vermutlich. `search` eher nicht — eine Handbuchseite, die man nicht findet, ist nutzlos. Die Trennlinie gehört benannt, nicht geraten. - **Was passiert bei einem Update?** Wenn 2.3.0 eine Handbuchseite ändert, die der Nutzer inzwischen bearbeitet hat, ist das dieselbe Drei-Wege-Frage wie in #7. ## Abgrenzung Dieses Issue baut **kein** Handbuch. Es schafft nur die Vorbedingung. Solange es offen ist, bleibt `dist export` inhaltslos, und die Selbstdokumentation ist das öffentliche Repo selbst — ein echter, gewachsener Korpus mit echten `kb/log.md`-Einträgen ist ohnehin der bessere Beleg, dass das Format trägt. Die zweite Vorbedingung ist inhaltlicher Natur und gehört mitbedacht: Ein Handbuch, das Regeln *beschreibt*, ist die zweite Kopie einer Regel, die schon in `instructions/` oder einem `CONTRACT.md` steht (Invariante 8) — und es wäre die Kopie, die ein Agent per `search` zuerst findet. Ein tragfähiges Handbuch müsste also verfahrensbeschreibend sein und die Contracts zitieren statt sie zu wiederholen. ## Akzeptanzkriterien - [ ] Mitgelieferte Seiten sind maschinell erkennbar, und wie, ist an genau einer Stelle festgelegt - [ ] `confidence decay` lässt sie unangetastet; Test dafür - [ ] `lint` zählt sie nicht als Waisen; Test dafür - [ ] Der Übergang „Nutzer übernimmt die Seite" ist beschrieben und mit einem bestehenden Kommando machbar - [ ] `tools/CONTRACT.md` und Changelog; **MINOR**
torben added the prio/waitingsize/M labels 2026-09-01 15:21:37 +00:00
Author
Owner

Geschlossen mit Verweis auf #38. Die hier verhandelte Vorbedingung - Decay-/Lint-Ausschluss für ausgelieferte kb-Seiten, damit ein Handbuch überhaupt mitgeliefert werden könnte - erübrigt sich: #38 hat am 2026-09-02 entschieden, dass Entscheidungs- und vergleichbarer Stack-Content (das, was hier als "Handbuch" gedacht war) gar nicht mehr in kb/ landet, sondern an einem eigenen, dauerhaften Ort außerhalb davon. Damit gibt es keine ausgelieferte kb-Seite, die einen Decay-/Lint-Ausschluss bräuchte - das Problem ist nicht gelöst, sondern die Prämisse (Inhalt landet in kb/) ist entfallen. Sollte in Zukunft doch einmal echter kb-Inhalt mitgeliefert werden (nicht Stack-Prozedur, sondern Wissen), ist das ein neues Issue mit eigenem Befund, keine Wiedereröffnung dieses hier.

**Geschlossen mit Verweis auf #38.** Die hier verhandelte Vorbedingung - Decay-/Lint-Ausschluss für ausgelieferte kb-Seiten, damit ein Handbuch überhaupt mitgeliefert werden könnte - erübrigt sich: #38 hat am 2026-09-02 entschieden, dass Entscheidungs- und vergleichbarer Stack-Content (das, was hier als "Handbuch" gedacht war) gar nicht mehr in `kb/` landet, sondern an einem eigenen, dauerhaften Ort außerhalb davon. Damit gibt es keine ausgelieferte kb-Seite, die einen Decay-/Lint-Ausschluss bräuchte - das Problem ist nicht gelöst, sondern die Prämisse (Inhalt landet in kb/) ist entfallen. Sollte in Zukunft doch einmal echter kb-Inhalt mitgeliefert werden (nicht Stack-Prozedur, sondern Wissen), ist das ein neues Issue mit eigenem Befund, keine Wiedereröffnung dieses hier.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: torben/chemenu#27