Chemenu 2.1.0 - deterministischer Wissenskompiler
CI / verify (push) Failing after 32s
Release / release (push) Successful in 38s

Chemenu kompiliert Rohnotizen zu einem verlinkten, quellengebundenen Wiki:
raw/ -> types/ + tools/ -> kb/ -> reports/. Was mechanisch ist, macht
tools/wikitool; was Urteil braucht, macht ein Agent unter Contracts, deren
Grenzen in Code durchgesetzt sind statt im Prompt.

Dieser Commit ist der Startpunkt der oeffentlichen Historie. Die vorherige
Entwicklung fand in einer privaten Instanz statt und ist nicht Teil dieses
Repositorys; ihre Erzaehlung steht vollstaendig in CHANGES.md, das mit 44
Eintraegen von 0.1.0 bis 2.1.0 erhalten geblieben ist.

Der mitgelieferte Korpus ist ein Testbett und eine Demo: 170 Seiten ueber den
Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster. Er
dokumentiert das Werkzeug mit den eigenen Mitteln des Werkzeugs.

Lizenz: AGPL-3.0 fuer den Stack (tools/, types/), CC-BY-4.0 fuer die Inhalte.
Die Grenze zwischen beiden ist der Dateiplan, den dist export berechnet -
siehe NOTICE.
This commit is contained in:
2026-09-01 16:24:34 +02:00
commit 18ae28f918
368 changed files with 50628 additions and 0 deletions
@@ -0,0 +1,124 @@
---
type: types/source.md
source_type: notes
author: Claude Code (claude-opus-5)
raw_files: [raw/notes/Conversation Transcript - Gate Counting and Measured Calibration Session 2026-08-31.md]
source_language: en
date: 2026-08-31
tags: [gate, mass-update-gate, iteration-budget, calibration, publish, measurement]
entities: [wikitool, Chemenu]
concepts: [Mass-Update Gate, Iteration and Cost Limits]
summary: 'Sitzung, die zwei nie gemessene Grenzen an realen Laeufen kalibriert: generierte Dateien zaehlen nicht mehr gegen das Mass-Update Gate, und das Kalibrierungsband fuer komplexe Workflows steigt von 15-25 auf 20-35 Aufrufe (Stack 1.5.0)'
---
# Source: Conversation - Gate Counting and Measured Calibration Session 2026-08-31
**Autor:** Claude Code (claude-opus-5)
**Datum:** 2026-08-31
**Raw-Dateien:** raw/notes/Conversation Transcript - Gate Counting and Measured Calibration Session 2026-08-31.md
**Typ:** Notes
## Zusammenfassung
Das Transkript ist eine treue Zusammenfassung, kein wörtliches Protokoll: Torbens Anweisung
steht wörtlich, die Aufrufzahlen und die Vorher/Nachher-Dateizahlen sind in der Sitzung
gemessene Werte, die Begründungen des Assistenten sind verdichtet. Es ist eines von zwei
Transkripten dieses Sitzungsabschnitts; das andere behandelt `touch --set/--add/--remove` und
wird getrennt eingelesen.
Ausgelöst hat die Sitzung eine Beobachtung, kein Issue: drei gewöhnliche Ingests waren
nacheinander am [[Mass-Update Gate]] stehen geblieben, und Torben hielt zugleich das
dokumentierte Kalibrierungsband für die Anzahl der Tool-Aufrufe für zu niedrig. Beide Hälften
erwiesen sich als messbar statt als Geschmacksfrage, und die Messwerte lagen bereits im
Repository - die Changesets der drei Ingests und die Sitzungszähler in
`tools/.wikitool_session/budget.json`.
Ergebnis ist Stack-Version `1.5.0` (Commit `3166c31`, 9 Dateien, 678 Tests grün): generierte
Dateien werden weiterhin committet und gepusht, zählen aber nicht mehr gegen die Gate-Schwelle,
und das Band für einen komplexen Multi-Tool-Workflow steigt von 15-25 auf 20-35 Aufrufe. Die
Schwelle von 10 und die Budget-Obergrenze von 60 blieben unverändert.
## Kernaussagen
- **Die Beobachtung des Nutzers, wörtlich:** „automatic erzeugte files wie Index.md können wir
Raus nehmen. Wir hatten drei normale ingests und alle liegen ins Gate wo immer ein Haufen
Datenbank files dazu kommen" - und zum zweiten Punkt: „Ich habe den Eindruck, dass die
Maßgabe 15-20/29-25 zu gering ist".
- **Die Teile lagen schon da und waren nur nie verbunden.** `git_publish.py` kannte über
`is_generated()` bereits `kb/index.md`, `kb/log.md`, `kb/provenance.md` und jede `INDEX.md`,
und besaß mit `GATE_EXEMPT_PREFIXES = ("work/",)` plus `counted_files()` bereits einen
Ausnahmemechanismus. `is_generated` wurde nur zur *Gruppierung* der angezeigten Dateiliste
benutzt, unter der Überschrift „rebuilt by wikitool - no review needed" - ein Hinweis, der dem
Prüfer sagte, er müsse diese Dateien nicht lesen, während die Zählung ihn weiter dazu
brachte, sie freizugeben.
- **Begründung der Ausnahme:** Eine generierte Datei trägt keine Entscheidung. Sie ist über
`index rebuild` bzw. `sources rebuild-index` aus dem Baum reproduzierbar, ihre Freigabe
entscheidet also nichts und erzeugt nur die Prüfermüdung, gegen die die Schwelle existiert.
Committet und gepusht werden sie unverändert.
- **Gemessen an den drei realen Changesets desselben Tages:** Comma Bug 14 Dateien, gezählt
vorher 14 (Gate) / jetzt 9; Issue Triage 16, gezählt 16 (Gate) / jetzt 9; Auto Mode 11,
gezählt 11 (Gate) / jetzt 5. Keiner der drei war eine Massenänderung, keiner würde jetzt noch
anhalten.
- **Das Gate bleibt scharf:** Zehn echte Seiten lösen weiterhin aus, egal wie viel
Index-Rauschen mitfährt, und ein Test hält genau das fest, damit die Ausnahme nicht still zur
Abschaltung wird.
- **Die Weigerungszeile führt beide Gründe getrennt auf** - „3 under work/ and 5 generated by
wikitool committed but not counted". Ein Prüfer, der bei einem 14-Dateien-Commit „9 counted"
liest, hält die Differenz sonst für einen Fehler. Die Trennung hält die Gründe außerdem
ehrlich: Scratch-Zustand und abgeleitete Ausgabe sind nicht dasselbe.
- **Der `--confirm`-Token fasst jetzt nur noch zusammen, was ein Mensch tatsächlich gelesen
hat.** Eine neu gebaute `INDEX.md` macht eine bereits erteilte Freigabe nicht mehr ungültig.
- **Die alte Zählweise war ungetestet.** Alle 67 Gate-Tests liefen grün, *bevor* die Tests für
das neue Verhalten geschrieben waren - kein Test hatte je behauptet, dass generierte Dateien
mitgezählt werden. Das ist ein Teil der Erklärung, warum das Verhalten so lange unbemerkt
blieb.
- **Für die zweite Hälfte lag die Evidenz in `tools/.wikitool_session/budget.json`**, das die
Aufrufzahlen je Sitzung ohnehin mitschreibt. Vier reale Ingests: `ingest-comma-bug-2026-08-31`
30 Aufrufe, `ingest-transcript-personalization-plane` 29, `ingest-issue-triage-2026-08-31` 26,
`ingest-auto-mode-2026-08-31` 24. Eine Stack-Sitzung (`issue-14-2026-08-31`) lag bei 9.
- **Jeder dieser Ingests lag auf oder über der Decke des dokumentierten Bandes von 15-25**, ohne
etwas Ungewöhnliches zu tun. Eine Richtgröße, die der Normalfall überschreitet, ist keine
Richtgröße: sie lehrt einen Agenten, dass die Zahlen dekorativ sind - genau das Versagen,
gegen das das Iteration-Budget immun sein sollte.
- **Neues Band: ~5-15 für eine einfache Aufgabe (gemessen 5-9), ~20-35 für einen komplexen
Multi-Tool-Workflow.** Nachgezogen in `run_budget.py`, `instructions/gates.md` sowie den
Skills `wiki-ingest` und `wiki-lint`. Die Obergrenze von 60 blieb unangetastet - sie ist kein
Ziel, sondern der Punkt, ab dem eine Sitzung als festgefahren gilt.
- **Die Provenance-Unterscheidung wurde bewusst erhalten.** Das alte Band ist eine übernommene
Branchen-Faustregel, und [[Iteration and Cost Limits]] führt es mit Quelle genau als solche.
Es wurde **nicht** umgeschrieben: es ist eine belegte Aussage über den Stand der Technik,
nicht über diese Instanz. Was diese Instanz gemessen hat, ist eine andere Behauptung, die
ihre eigene Quelle braucht - weshalb sie auf dieses Transkript wartete, statt direkt in die
Seite geschrieben zu werden.
- **`gates.md` hält jetzt zusätzlich fest, woher die Zahl kommt und wie man sie neu misst**, und
nennt dafür `tools/.wikitool_session/budget.json`. Eine Richtgröße ohne Messvorschrift veraltet
still - was hier passiert war.
## Aufgaben
- [ ] Keine offenen Punkte aus dieser Sitzung. Beide Kalibrierungen sind in `1.5.0` ausgeliefert.
## Nicht übernommen
- **Die Testzahlen im Einzelnen.** Übernommen sind die Gesamtzahl (678) und der Befund, dass die
67 Gate-Tests das alte Zählverhalten nie geprüft hatten; die einzelnen Testnamen tragen keine
dauerhafte Aussage.
- **Das Schwestertranskript derselben Sitzung** zu `touch --set/--add/--remove` und den
write-once-Frontmatterfeldern. Es wird getrennt eingelesen und hat eine eigene Source-Seite;
hier stünde es unbelegt.
- **Eine eigene Concept-Seite für „Kalibrierung aus Messung".** Die Aussage - eine Richtgröße
ohne Messvorschrift veraltet still - steht als Kernpunkt auf [[Iteration and Cost Limits]],
wo sie den konkreten Fall trägt. Eine zweite, allgemeine Seite wäre derselbe Satz an einem
zweiten Ort.
- **Die Aufrufzahl 9 der Stack-Sitzung `issue-14-2026-08-31`** als eigener Beleg für das
Einfach-Band. Sie ist im Transkript ein Vergleichswert am Rand; das Band 5-15 ist mit
„gemessen 5-9" bereits als gemessene Größe geführt.
## Verwandte Entities
- [[wikitool]]
- [[Chemenu]]
## Verwandte Concepts
- [[Mass-Update Gate]]
- [[Iteration and Cost Limits]]