wiki-status: die Hard Rule "read-only, never writes any file" widerspricht zwei eigenen Schritten #70

Closed
opened 2026-09-09 08:59:53 +00:00 by torben · 1 comment
Owner

Erledigt in 11d64e6, Version 4.8.0-beta.11

Die Hard Rule von wiki-status lautet jetzt wie die von wiki-query: read-only gegenueber Wiki-Inhalt, mit dem einen Write ausdruecklich benannt.

Vorher: „read-only. Never writes, scaffolds, or modifies any file." — waehrend Schritt 2 lint ruft und selbst beschreibt, dass der Aufruf reports/Lint Report <date>.md schreibt. Ein Agent, der die Regel woertlich nimmt, kann Schritt 2 nicht ausfuehren; einer, der ihn ausfuehrt, hat die staerkste Aussage des Dokuments gebrochen, bevor er Schritt 5 liest. Schritt 5 behauptete dann obendrein, es sei keine Report-Datei geschrieben worden.

Nachher, drei Stellen:

  • Hard Rule: read-only gegenueber Wiki-Inhalt — keine Seite anlegen, aendern, scaffolden, keinen Befund reparieren, nie publishen. Der eine Write ist benannt und begruendet: reports/ ist gitignored und traegt keine Wiki-Seite (reports/CONTRACT.md), der Write hinterlaesst also nichts, was das Wiki ausliefert. Ausdruecklich als „not an exception being stretched" formuliert, damit die Ausnahme nicht als Einfallstor gelesen wird.
  • Schritt 5: sagt nicht mehr, es sei nichts geschrieben worden, sondern was mit dem Geschriebenen nicht passiert — die „Semantic Review"-Sektion bleibt leer, keine Findung wird in eine Seite oder nach kb/log.md ausgetragen. Das ist wiki-lint Schritt 9, und es ist genau der Unterschied zwischen einem Snapshot und einem Lauf.
  • Decision Point: „Never publishes — nothing was written" traegt jetzt den wahren Grund: unter kb/ hat sich nichts geaendert, und der Report ist gitignored, also kann ihn kein Commit aufnehmen.

Mitgezogen im selben Publish, weil dieselbe Datei (#78): lint --json aus „wikitool commands used" gestrichen (von keinem Schritt benutzt), Beispielblock ergaenzt.

Akzeptanzkriterien

  • Die Hard Rule ist mit Schritt 2 vereinbar — sie schliesst Schreibzugriffe auf Wiki-Inhalt aus und benennt den lint-Report als ausdrueckliche, begruendete Ausnahme.
  • Schritt 5 behauptet nicht mehr, es sei keine Report-Datei geschrieben worden.
  • Kein Satz im Dokument sagt aus, dass der Skill gar keine Datei schreibt — auch der Decision Point nicht, der es vorher indirekt tat.
  • tools/wikitool instructions verify laeuft ohne neue Findings.
  • tools/wikitool instructions sync ist gelaufen, .claude/skills/wiki-status/SKILL.md ist byteidentisch zur Quelle (verify: „14 published copy/copies match their source").

Zusaetzlich geprueft: docs verify OK, pytest 1076 passed.

Geaendert

instructions/wiki-status/SKILL.md (Hard Rule, Schritt 5, Decision Points, Kommandoliste, Beispielblock). 54 → 62 Zeilen.

Herkunft

Analyse aus #65 (Fund 7), Sitzung 2026-09-09. Der zweite Widerspruch (Schritt 5) kam bei der Volltext-Sichtung dazu, der dritte (Decision Point) erst bei der Umsetzung. Vorbild fuer die Formulierung war instructions/wiki-query/SKILL.md. Umgesetzt in derselben Sitzung wie #74, #75 und #78.

## Erledigt in `11d64e6`, Version `4.8.0-beta.11` Die Hard Rule von `wiki-status` lautet jetzt wie die von `wiki-query`: read-only gegenueber Wiki-*Inhalt*, mit dem einen Write ausdruecklich benannt. **Vorher:** „read-only. Never writes, scaffolds, or modifies any file." — waehrend Schritt 2 `lint` ruft und selbst beschreibt, dass der Aufruf `reports/Lint Report <date>.md` schreibt. Ein Agent, der die Regel woertlich nimmt, kann Schritt 2 nicht ausfuehren; einer, der ihn ausfuehrt, hat die staerkste Aussage des Dokuments gebrochen, bevor er Schritt 5 liest. Schritt 5 behauptete dann obendrein, es sei keine Report-Datei geschrieben worden. **Nachher**, drei Stellen: - **Hard Rule:** read-only gegenueber Wiki-Inhalt — keine Seite anlegen, aendern, scaffolden, keinen Befund reparieren, nie publishen. Der eine Write ist benannt und begruendet: `reports/` ist gitignored und traegt keine Wiki-Seite ([reports/CONTRACT.md](../../reports/CONTRACT.md)), der Write hinterlaesst also nichts, was das Wiki ausliefert. Ausdruecklich als „not an exception being stretched" formuliert, damit die Ausnahme nicht als Einfallstor gelesen wird. - **Schritt 5:** sagt nicht mehr, es sei nichts geschrieben worden, sondern was mit dem Geschriebenen *nicht* passiert — die „Semantic Review"-Sektion bleibt leer, keine Findung wird in eine Seite oder nach `kb/log.md` ausgetragen. Das ist `wiki-lint` Schritt 9, und es ist genau der Unterschied zwischen einem Snapshot und einem Lauf. - **Decision Point:** „Never publishes — nothing was written" traegt jetzt den wahren Grund: unter `kb/` hat sich nichts geaendert, und der Report ist gitignored, also kann ihn kein Commit aufnehmen. Mitgezogen im selben Publish, weil dieselbe Datei (#78): `lint --json` aus „wikitool commands used" gestrichen (von keinem Schritt benutzt), Beispielblock ergaenzt. ## Akzeptanzkriterien - [x] Die Hard Rule ist mit Schritt 2 vereinbar — sie schliesst Schreibzugriffe auf Wiki-Inhalt aus und benennt den `lint`-Report als ausdrueckliche, begruendete Ausnahme. - [x] Schritt 5 behauptet nicht mehr, es sei keine Report-Datei geschrieben worden. - [x] Kein Satz im Dokument sagt aus, dass der Skill gar keine Datei schreibt — auch der Decision Point nicht, der es vorher indirekt tat. - [x] `tools/wikitool instructions verify` laeuft ohne neue Findings. - [x] `tools/wikitool instructions sync` ist gelaufen, `.claude/skills/wiki-status/SKILL.md` ist byteidentisch zur Quelle (`verify`: „14 published copy/copies match their source"). Zusaetzlich geprueft: `docs verify` OK, `pytest` 1076 passed. ## Geaendert `instructions/wiki-status/SKILL.md` (Hard Rule, Schritt 5, Decision Points, Kommandoliste, Beispielblock). 54 → 62 Zeilen. ## Herkunft Analyse aus #65 (Fund 7), Sitzung 2026-09-09. Der zweite Widerspruch (Schritt 5) kam bei der Volltext-Sichtung dazu, der dritte (Decision Point) erst bei der Umsetzung. Vorbild fuer die Formulierung war `instructions/wiki-query/SKILL.md`. Umgesetzt in derselben Sitzung wie #74, #75 und #78.
torben added the prio/plannedsize/Sarea/processkind/defect labels 2026-09-09 08:59:53 +00:00
Author
Owner

Changelog: Body auf den Endstand umgeschrieben. Neu gegenueber dem Befund: ein dritter Widerspruch, der erst bei der Umsetzung auffiel — der Decision Point "Never publishes - nothing was written" behauptete dasselbe wie die Hard Rule und ist mitgezogen. Alle fuenf Akzeptanzkriterien abgehakt. Mitgenommen, weil dieselbe Datei: lint --json aus der Kommandoliste gestrichen und ein Beispielblock ergaenzt (#78). 54 → 62 Zeilen. Umgesetzt in 11d64e6, 4.8.0-beta.11. Geschlossen.

**Changelog:** Body auf den Endstand umgeschrieben. Neu gegenueber dem Befund: ein **dritter** Widerspruch, der erst bei der Umsetzung auffiel — der Decision Point "Never publishes - nothing was written" behauptete dasselbe wie die Hard Rule und ist mitgezogen. Alle fuenf Akzeptanzkriterien abgehakt. Mitgenommen, weil dieselbe Datei: `lint --json` aus der Kommandoliste gestrichen und ein Beispielblock ergaenzt (#78). 54 → 62 Zeilen. Umgesetzt in `11d64e6`, `4.8.0-beta.11`. Geschlossen.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: torben/chemenu#70