stack: docs verify prueft § Commands und § Error contracts in tools/CONTRACT.md getrennt, 10 fehlende Fehlerkontrakt-Zeilen nachgetragen (schliesst #91)
Files changed: - CHANGES.md - VERSION - tools/CONTRACT.md - tools/chemenu/commands/docs_verify.py - tools/chemenu/tests/test_docs_verify.py
This commit is contained in:
+45
-1
@@ -35,7 +35,7 @@ dev-checkout concern - readable here, never shipped as something to parse.
|
||||
|
||||
---
|
||||
|
||||
## 5.0.0-beta.12 - 2026-09-11 - AGENTS.md-Changelog-Absatz korrigiert: Contract-Prosa ist Sitzungsarbeit, doc-pull-through-Instruction ergaenzt
|
||||
## 5.0.0-beta.13 - 2026-09-11 - docs verify prueft die Kommando- und Fehlerkontrakttabelle in tools/CONTRACT.md getrennt, 10 fehlende Fehlerkontrakt-Zeilen nachgetragen (schliesst #91)
|
||||
|
||||
**Author:** Torben Nehmer
|
||||
|
||||
@@ -65,6 +65,7 @@ dev-checkout concern - readable here, never shipped as something to parse.
|
||||
- tools/CONTRACT.md: raw accept Doku auf Datums-Shard und Capture-Felder nachgezogen (schliesst #89)
|
||||
- MCP submit-Tool: Quarantäne-Schreibpfad mit Upload Review Gate (schliesst #32)
|
||||
- AGENTS.md-Changelog-Absatz korrigiert: Contract-Prosa ist Sitzungsarbeit, doc-pull-through-Instruction ergaenzt
|
||||
- docs verify prueft die Kommando- und Fehlerkontrakttabelle in tools/CONTRACT.md getrennt, 10 fehlende Fehlerkontrakt-Zeilen nachgetragen (schliesst #91)
|
||||
<!-- /wikitool:bumps -->
|
||||
|
||||
|
||||
@@ -1217,6 +1218,49 @@ Geändert: `AGENTS.md`, `tools/chemenu/commands/docs_verify.py`,
|
||||
`tools/wikitool instructions verify` (nach `instructions sync`), volle `pytest`-Suite (1185
|
||||
passed). Schließt #90.
|
||||
|
||||
**`docs verify` prüfte § Commands und § Error contracts in `tools/CONTRACT.md` als einen Topf
|
||||
(#91).** `TABLE_CELL_RE` sammelte das erste gebacktickte Wort jeder Tabellenzeile über das ganze
|
||||
Dokument, ohne Abschnittsgrenze - eine aus § Commands gelöschte Zeile fiel nicht auf, solange
|
||||
derselbe Name noch in § Error contracts stand, und § Error contracts wurde gegen nichts
|
||||
erzwungen. Gemessen am Baum vor diesem Fix (55 registrierte Kommandos): § Commands war
|
||||
vollständig, § Error contracts fehlten zehn Zeilen - `budget reset`, `instructions list`,
|
||||
`instructions verify`, `log append`, `migrate status`, `sources rebuild-index`, `sources trace`,
|
||||
`types describe`, `upload show`, `version notes` - und `docs verify` blieb grün.
|
||||
|
||||
`check_cli_readme()` liest die beiden Tabellen jetzt über ihre `##`-Überschrift ab (neue
|
||||
`section_text()`), unabhängig voneinander und je Tabelle in beide Richtungen; fehlt eine der
|
||||
beiden Überschriften, meldet die Funktion das explizit statt stillschweigend auf "ganzes
|
||||
Dokument" zurückzufallen. Ursache der zehn Lücken war überwiegend eine zweite, bisher unsichtbare
|
||||
Untugend: mehrere Kommandos teilten sich in § Error contracts eine Zeile der Form "`a` / `b`" -
|
||||
nur das erste Backtick-Wort einer Zeile zählte je als "dokumentiert", der Rest der Gruppe war für
|
||||
den (ungeprüften) Check unsichtbar. Behoben, indem jede betroffene Gruppe in eigene Zeilen mit
|
||||
eigenem, gegen den Code nachgesehenem Inhalt aufgeteilt wurde - dabei fielen nebenbei drei
|
||||
sachlich falsche Zeilen auf: `sources coverage`, `types list`, `instructions list` und `budget
|
||||
status` schlagen nie fehl, die alte gemeinsame Zeile behauptete das Gegenteil, weil sie das
|
||||
Verhalten des jeweils benachbarten Kommandos mit übernahm. Eine echte Formatierungslücke kam
|
||||
dazu: `log append`s Zeile stand im Quelltext ohne Zeilenumbruch hinter der von `index rebuild` /
|
||||
`sources rebuild-index` verschmolzen - für Menschen als Tabelle kaum lesbar und für die
|
||||
zeilenanfang-verankerte Regex unsichtbar.
|
||||
|
||||
**MINOR, kein neues Boundary-Crossing:** additiv und in beide Richtungen drop-in - eine
|
||||
bestehende Instanz kopiert `docs_verify.py` und `tools/CONTRACT.md` über sich, ohne Hand-Arbeit
|
||||
oder Migration. Eine Ausnahme ist es wert, genannt zu werden: eine private Instanz mit einem
|
||||
lokal abweichenden `tools/CONTRACT.md` (`instructions/private-instance.md`) kann nach diesem
|
||||
Update zum ersten Mal an der strengeren Prüfung scheitern, wenn ihr eigener Baum dieselbe
|
||||
Fehlerkontrakt-Lücke trägt oder ihre Kommandotabelle anders benannte `##`-Überschriften
|
||||
verwendet. Das ist kein Boundary-Crossing - kein Dateiformat ändert sich, keine bestehende
|
||||
Funktion verschwindet -, sondern derselbe bereits akzeptierte Fall, den jede Verschärfung von
|
||||
`docs verify` seit jeher mit sich bringt: der Fix legt eine bereits vorhandene
|
||||
Dokumentationslücke bloß, statt eine neue Anforderung einzuführen. Der Kandidat trägt seine
|
||||
`--breaking`-Zeile bereits aus einem früheren Bump; diese Änderung fügt keine neue hinzu.
|
||||
|
||||
Geändert: `tools/chemenu/commands/docs_verify.py` (`section_text`, `check_cli_readme`),
|
||||
`tools/CONTRACT.md` (die `docs verify`-Zeile sowie zehn aufgeteilte bzw. nachgetragene
|
||||
Fehlerkontrakt-Zeilen), `tools/chemenu/tests/test_docs_verify.py` (neue Tests für
|
||||
Abschnittstrennung, fehlende/umbenannte Überschrift, § Error contracts in beiden Richtungen).
|
||||
Verifiziert: `tools/wikitool docs verify`, `tools/wikitool instructions verify`, volle
|
||||
`pytest`-Suite (1193 passed). Schließt #91.
|
||||
|
||||
---
|
||||
|
||||
## 4.7.4 - 2026-09-04 - bootstrap.md nennt den session-id-WARN nach frischem Bootstrap explizit als erwartet
|
||||
|
||||
Reference in New Issue
Block a user