wiki-status ruft lint, traegt aber keinen session-setup.md-Verweis #84

Closed
opened 2026-09-09 18:49:39 +00:00 by torben · 1 comment
Owner

Stand

Umgesetzt in dda80c1 (5.0.0-beta.7). instructions/wiki-status/SKILL.md trägt jetzt den
session-setup.md-Verweis, den die anderen vier Content-Skills schon hatten.

Befund (behoben)

instructions/wiki-status/SKILL.md rief tools/wikitool lint auf, verlinkte aber als einziger
der fünf Content-Skills nicht instructions/session-setup.md.

Bis #76 war nicht entscheidbar, ob das ein Fehler ist: session-setup.md § Scope nannte als
Kriterium, ob ein Kommando „das Wiki verändert" — und lint schreibt nur ins gitignorte
reports/. Seit #76 (2c4c2b1) nennt die Instruction die tatsächliche Ausnahme-Allowlist in
tools/chemenu/commands/run_budget.py (SKIP_COMMANDS/SKIP_COMMAND_PATHS). lint steht nicht
darauf und zählt wie jedes mutierende Kommando — der fehlende Verweis war damit ein Loch, keine
korrekte Auslassung.

Ohne exportierte WIKITOOL_SESSION_ID fällt die Zählung auf getppid() zurück; eine
wiki-status-Sitzung erbte damit den Zählerstand einer fremden Shell.

Entscheidung: Verweis ergänzen (Variante 1)

Die zur Wahl stehende Variante 2 — lint durch etwas Budgetbefreites ersetzen und wiki-status
tatsächlich budgetfrei machen — scheidet an der Sache aus, nicht am Aufwand:

wiki-status liest aus dem Lint-Report die Graph-Auswertung — Broken Links, Orphan Pages,
Schema-Findings, uncovered raw files (Schritt 2) und die „Most-Linked Pages"-Statistik (Schritt 3).
Kein befreites Kommando liefert die. doctor prüft die Installation (Python, ripgrep, Git,
Skills, Personalization, Generated Files, Stack-/KB-Version), nicht den Korpusgraphen; search
ist Retrieval über einzelne Seiten. Ein wiki-status ohne lint wäre kein leichterer Skill,
sondern ein leerer.

Der Einwand gegen Variante 1 — der Setup-Schritt lädt einen bewusst leichten Skill mit einem
Netzwerk-Roundtrip (wikitool sync) auf — trägt nicht: ein Statusschnappschuss auf einem
veralteten Klon ist genau die falsche Antwort, sync ist für diesen Skill also eher Merkmal als
Kosten.

Der ergänzte Text steht zwischen Trigger und Hard rule (dieselbe Reihenfolge wie in
wiki-query) und nennt den Grund als Zeiger statt als zweite Kopie der Regel — die lebt in
session-setup.md § Scope (Invariante 8).

Akzeptanzkriterien

  • instructions/wiki-status/SKILL.md trägt den session-setup.md-Verweis; gewählt wurde
    Variante 1, Begründung siehe oben.
  • Für alle fünf Content-Skills gilt: ein Skill verlinkt session-setup.md genau dann, wenn er
    mindestens ein nicht-befreites wikitool-Kommando aufruft. Geprüft über die
    „wikitool commands used"-Abschnitte gegen die Allowlist: wiki-ingest (raw accept, new,
    publish, …), wiki-manage (dito), wiki-lint (lint, xref, …) und wiki-query
    (log append, ggf. new/publish) rufen jeweils mindestens ein zählendes Kommando auf und
    verlinken; wiki-status ruft lint und verlinkt jetzt ebenfalls. Kein Skill ruft
    ausschließlich befreite Kommandos auf — die Aussage hat aktuell also keine „nur befreit,
    also kein Link"-Seite.
  • tools/wikitool instructions verify (21 Instructions, 7 Skills, 14 publizierte Kopien
    deckungsgleich) und tools/wikitool docs verify ohne neue Findings; pytest 1095 passed.
    CI auf dda80c1: Runs
    223 und
    224, beide success
    einschließlich des setup-instance.md-Replays gegen einen frischen dist export.

Nicht umgesetzt (bewusst)

Die Aussage aus Kriterium 2 wird nicht maschinell geprüft. instructions verify kennt weder
die Kommandolisten der Skills noch run_budget.SKIP_COMMANDS; ein Checker, der beides verbindet,
wäre ein eigener Schnitt und ein eigenes Issue. Er ist auch nicht offensichtlich richtig: die
Kommandoliste eines Skills ist Prosa, kein Aufrufgraph, und ein Verifier, der Prosa gegen Code
prüft, meldet die erste Umformulierung als Fehler.

Herkunft

Abgespalten aus #76 (geschlossen 2026-09-09, 2c4c2b1). Der wiki-query-Teil derselben Analyse
war #75.

## Stand Umgesetzt in `dda80c1` (`5.0.0-beta.7`). `instructions/wiki-status/SKILL.md` trägt jetzt den `session-setup.md`-Verweis, den die anderen vier Content-Skills schon hatten. ## Befund (behoben) `instructions/wiki-status/SKILL.md` rief `tools/wikitool lint` auf, verlinkte aber als einziger der fünf Content-Skills nicht `instructions/session-setup.md`. Bis #76 war nicht entscheidbar, ob das ein Fehler ist: `session-setup.md` § Scope nannte als Kriterium, ob ein Kommando „das Wiki verändert" — und `lint` schreibt nur ins gitignorte `reports/`. Seit #76 (`2c4c2b1`) nennt die Instruction die tatsächliche Ausnahme-Allowlist in `tools/chemenu/commands/run_budget.py` (`SKIP_COMMANDS`/`SKIP_COMMAND_PATHS`). `lint` steht nicht darauf und zählt wie jedes mutierende Kommando — der fehlende Verweis war damit ein Loch, keine korrekte Auslassung. Ohne exportierte `WIKITOOL_SESSION_ID` fällt die Zählung auf `getppid()` zurück; eine `wiki-status`-Sitzung erbte damit den Zählerstand einer fremden Shell. ## Entscheidung: Verweis ergänzen (Variante 1) Die zur Wahl stehende Variante 2 — `lint` durch etwas Budgetbefreites ersetzen und `wiki-status` tatsächlich budgetfrei machen — scheidet an der Sache aus, nicht am Aufwand: `wiki-status` liest aus dem Lint-Report die Graph-Auswertung — Broken Links, Orphan Pages, Schema-Findings, uncovered raw files (Schritt 2) und die „Most-Linked Pages"-Statistik (Schritt 3). Kein befreites Kommando liefert die. `doctor` prüft die **Installation** (Python, ripgrep, Git, Skills, Personalization, Generated Files, Stack-/KB-Version), nicht den Korpusgraphen; `search` ist Retrieval über einzelne Seiten. Ein `wiki-status` ohne `lint` wäre kein leichterer Skill, sondern ein leerer. Der Einwand gegen Variante 1 — der Setup-Schritt lädt einen bewusst leichten Skill mit einem Netzwerk-Roundtrip (`wikitool sync`) auf — trägt nicht: ein Statusschnappschuss auf einem veralteten Klon ist genau die falsche Antwort, `sync` ist für diesen Skill also eher Merkmal als Kosten. Der ergänzte Text steht zwischen **Trigger** und **Hard rule** (dieselbe Reihenfolge wie in `wiki-query`) und nennt den Grund als Zeiger statt als zweite Kopie der Regel — die lebt in `session-setup.md` § Scope (Invariante 8). ## Akzeptanzkriterien - [x] `instructions/wiki-status/SKILL.md` trägt den `session-setup.md`-Verweis; gewählt wurde Variante 1, Begründung siehe oben. - [x] Für alle fünf Content-Skills gilt: ein Skill verlinkt `session-setup.md` genau dann, wenn er mindestens ein nicht-befreites `wikitool`-Kommando aufruft. Geprüft über die „wikitool commands used"-Abschnitte gegen die Allowlist: `wiki-ingest` (`raw accept`, `new`, `publish`, …), `wiki-manage` (dito), `wiki-lint` (`lint`, `xref`, …) und `wiki-query` (`log append`, ggf. `new`/`publish`) rufen jeweils mindestens ein zählendes Kommando auf und verlinken; `wiki-status` ruft `lint` und verlinkt jetzt ebenfalls. Kein Skill ruft ausschließlich befreite Kommandos auf — die Aussage hat aktuell also keine „nur befreit, also kein Link"-Seite. - [x] `tools/wikitool instructions verify` (21 Instructions, 7 Skills, 14 publizierte Kopien deckungsgleich) und `tools/wikitool docs verify` ohne neue Findings; `pytest` 1095 passed. CI auf `dda80c1`: Runs [223](https://gitea.nehmer.net/torben/chemenu/actions/runs/223) und [224](https://gitea.nehmer.net/torben/chemenu/actions/runs/224), beide `success` — einschließlich des `setup-instance.md`-Replays gegen einen frischen `dist export`. ## Nicht umgesetzt (bewusst) Die Aussage aus Kriterium 2 wird **nicht** maschinell geprüft. `instructions verify` kennt weder die Kommandolisten der Skills noch `run_budget.SKIP_COMMANDS`; ein Checker, der beides verbindet, wäre ein eigener Schnitt und ein eigenes Issue. Er ist auch nicht offensichtlich richtig: die Kommandoliste eines Skills ist Prosa, kein Aufrufgraph, und ein Verifier, der Prosa gegen Code prüft, meldet die erste Umformulierung als Fehler. ## Herkunft Abgespalten aus #76 (geschlossen 2026-09-09, `2c4c2b1`). Der `wiki-query`-Teil derselben Analyse war #75.
torben added the prio/plannedsize/Sarea/processkind/defect labels 2026-09-09 18:49:39 +00:00
Author
Owner

Body auf Endstand umgeschrieben: Der Abschnitt „Zu prüfen, bevor umgesetzt wird" ist zur getroffenen Entscheidung geworden (Variante 1, mit der Begründung, warum Variante 2 an lints Graph-Auswertung scheitert); alle drei Akzeptanzkriterien abgehakt und um die tatsächlich gelaufenen Prüfungen samt CI-Runs ergänzt; neuer Abschnitt „Nicht umgesetzt (bewusst)" für den nicht gebauten maschinellen Check. Umsetzung: dda80c1, Version 5.0.0-beta.7.

Body auf Endstand umgeschrieben: Der Abschnitt „Zu prüfen, bevor umgesetzt wird" ist zur getroffenen Entscheidung geworden (Variante 1, mit der Begründung, warum Variante 2 an `lint`s Graph-Auswertung scheitert); alle drei Akzeptanzkriterien abgehakt und um die tatsächlich gelaufenen Prüfungen samt CI-Runs ergänzt; neuer Abschnitt „Nicht umgesetzt (bewusst)" für den nicht gebauten maschinellen Check. Umsetzung: `dda80c1`, Version `5.0.0-beta.7`.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: torben/chemenu#84