session-setup.md § Scope nennt ein anderes Kriterium als die tatsaechliche Budget-Ausnahmeliste #76

Closed
opened 2026-09-09 09:02:05 +00:00 by torben · 2 comments
Owner

Ergebnis

instructions/session-setup.md und instructions/gates.md nennen jetzt das Kriterium, nach dem das Iteration Budget tatsaechlich zaehlt: eine feste Allowlist, keine Faustregel darueber, ob ein Kommando das Wiki veraendert.

Geliefert in 2c4c2b1 (Stackversion 5.0.0-beta.1).

Was der Befund war

session-setup.md § Scope sagte:

"Read-only retrieval (wikitool search) is exempt from the budget and needs no setup. This matters only for commands that change the wiki."

Das war nicht das Zaehlkriterium. Die Codewahrheit steht in tools/chemenu/commands/run_budget.py: SKIP_COMMANDS (search, doctor) und SKIP_COMMAND_PATHS (budget status, links show, cite id, eval score|sessions, version show|check|notes|"", migrate list|status|verify, upstream verify) — zwoelf befreite Formen, alles andere zaehlt. lint steht nicht darauf: es schreibt nur ins gitignorte reports/, sieht damit folgenlos aus und wird trotzdem gezaehlt wie jedes mutierende Kommando.

Damit waren zwei verschiedene Kriterien als eines beschrieben — "aendert das Wiki" gegen "steht nicht auf der Ausnahmeliste".

Was geaendert wurde

Stelle Vorher Nachher
session-setup.md Z. 18 "before the first wikitool call that changes anything" "before the first wikitool call that is not exempt from the budget", mit Verweis auf § Scope
session-setup.md § Scope search als einzige genannte Ausnahme, Kriterium "aendert das Wiki" Allowlist als Kriterium benannt, die zwoelf Formen aufgezaehlt, lint als der Fall ausgeschrieben, der die falsche Lesart bricht
gates.md Z. 162 "wikitool search is exempt from this budget entirely" dieselbe Korrektur, mit Verweis auf tools/CONTRACT.md statt einer zweiten Liste

Die Liste selbst bleibt an genau einer Stelle: den Kommandozeilen in tools/CONTRACT.md, die je Kommando "exempt from the Iteration Budget Gate" tragen. Beide Instruktionen verweisen darauf, statt sie zu kopieren (Invariante 8).

Akzeptanzkriterien

  • instructions/session-setup.md § Scope nennt das Kriterium, nach dem tatsaechlich gezaehlt wird, und nicht ein davon abweichendes.
  • Der Text behauptet nicht, search sei die einzige oder die typische Ausnahme, wenn es zwoelf gibt.
  • Die Liste der befreiten Kommandos steht weiterhin an genau einer Stelle (tools/CONTRACT.md); session-setup.md verweist darauf, statt sie zu kopieren.
  • Aus dem Text ist beantwortbar, ob ein Skill, der ausschliesslich lint aufruft, den Setup-Schritt braucht. Antwort: jalint zaehlt.
  • tools/wikitool instructions verify und tools/wikitool docs verify laufen ohne neue Findings.

Was das fuer wiki-status heisst

Der Ausloeser des Issues — wiki-status ruft lint, traegt aber keinen session-setup.md-Verweis — ist damit entscheidbar geworden, aber nicht entschieden: nach dem jetzt korrekten Kriterium fehlt der Verweis. Das ist eine Aenderung an einem Skill und gehoert nicht in dieses Issue, das die Instruktionsluecke schliesst. Als eigenes Paket weiterverfolgen.

Verifikation

tools/wikitool docs verify, tools/wikitool instructions verify und pytest (1101 Tests, zusaetzlich im gehaerteten Leerumgebungs-Lauf nach instructions/dev/testing-conventions.md Schritt 6) — alle gruen vor dem Publish.

Herkunft

Analyse aus #65, Sitzung 2026-09-09. Aufgefallen bei der Pruefung, ob wiki-query und wiki-status den fehlenden session-setup.md-Verweis zu Recht haben; vom Operator korrekt eingewandt, dass Suchen budgetbefreit sind — was den urspruenglichen Befund halbierte und diesen hier freilegte. Der wiki-query-Teil ist #75.

## Ergebnis `instructions/session-setup.md` und `instructions/gates.md` nennen jetzt das Kriterium, nach dem das Iteration Budget tatsaechlich zaehlt: eine feste Allowlist, keine Faustregel darueber, ob ein Kommando das Wiki veraendert. Geliefert in `2c4c2b1` (Stackversion `5.0.0-beta.1`). ## Was der Befund war `session-setup.md` § Scope sagte: > "Read-only retrieval (`wikitool search`) is exempt from the budget and needs no setup. This matters only for commands that change the wiki." Das war nicht das Zaehlkriterium. Die Codewahrheit steht in `tools/chemenu/commands/run_budget.py`: `SKIP_COMMANDS` (`search`, `doctor`) und `SKIP_COMMAND_PATHS` (`budget status`, `links show`, `cite id`, `eval score|sessions`, `version show|check|notes|""`, `migrate list|status|verify`, `upstream verify`) — zwoelf befreite Formen, alles andere zaehlt. `lint` steht nicht darauf: es schreibt nur ins gitignorte `reports/`, sieht damit folgenlos aus und wird trotzdem gezaehlt wie jedes mutierende Kommando. Damit waren zwei verschiedene Kriterien als eines beschrieben — "aendert das Wiki" gegen "steht nicht auf der Ausnahmeliste". ## Was geaendert wurde | Stelle | Vorher | Nachher | |---|---|---| | `session-setup.md` Z. 18 | "before the first `wikitool` call that changes anything" | "before the first `wikitool` call that is not exempt from the budget", mit Verweis auf § Scope | | `session-setup.md` § Scope | `search` als einzige genannte Ausnahme, Kriterium "aendert das Wiki" | Allowlist als Kriterium benannt, die zwoelf Formen aufgezaehlt, `lint` als der Fall ausgeschrieben, der die falsche Lesart bricht | | `gates.md` Z. 162 | "`wikitool search` is exempt from this budget entirely" | dieselbe Korrektur, mit Verweis auf `tools/CONTRACT.md` statt einer zweiten Liste | Die Liste selbst bleibt an genau einer Stelle: den Kommandozeilen in `tools/CONTRACT.md`, die je Kommando "exempt from the Iteration Budget Gate" tragen. Beide Instruktionen verweisen darauf, statt sie zu kopieren (Invariante 8). ## Akzeptanzkriterien - [x] `instructions/session-setup.md` § Scope nennt das Kriterium, nach dem tatsaechlich gezaehlt wird, und nicht ein davon abweichendes. - [x] Der Text behauptet nicht, `search` sei die einzige oder die typische Ausnahme, wenn es zwoelf gibt. - [x] Die Liste der befreiten Kommandos steht weiterhin an genau einer Stelle (`tools/CONTRACT.md`); `session-setup.md` verweist darauf, statt sie zu kopieren. - [x] Aus dem Text ist beantwortbar, ob ein Skill, der ausschliesslich `lint` aufruft, den Setup-Schritt braucht. **Antwort: ja** — `lint` zaehlt. - [x] `tools/wikitool instructions verify` und `tools/wikitool docs verify` laufen ohne neue Findings. ## Was das fuer `wiki-status` heisst Der Ausloeser des Issues — `wiki-status` ruft `lint`, traegt aber keinen `session-setup.md`-Verweis — ist damit **entscheidbar geworden, aber nicht entschieden**: nach dem jetzt korrekten Kriterium fehlt der Verweis. Das ist eine Aenderung an einem Skill und gehoert nicht in dieses Issue, das die Instruktionsluecke schliesst. Als eigenes Paket weiterverfolgen. ## Verifikation `tools/wikitool docs verify`, `tools/wikitool instructions verify` und `pytest` (1101 Tests, zusaetzlich im gehaerteten Leerumgebungs-Lauf nach `instructions/dev/testing-conventions.md` Schritt 6) — alle gruen vor dem Publish. ## Herkunft Analyse aus #65, Sitzung 2026-09-09. Aufgefallen bei der Pruefung, ob `wiki-query` und `wiki-status` den fehlenden `session-setup.md`-Verweis zu Recht haben; vom Operator korrekt eingewandt, dass Suchen budgetbefreit sind — was den urspruenglichen Befund halbierte und diesen hier freilegte. Der `wiki-query`-Teil ist #75.
torben added the prio/plannedsize/Sarea/processkind/defect labels 2026-09-09 09:02:05 +00:00
Author
Owner

Changelog: Body auf den Endstand umgeschrieben. Gegen den urspruenglichen Stand neu: die Codewahrheit ist verifiziert statt abgeleitet (run_budget.py SKIP_COMMANDS/SKIP_COMMAND_PATHS, nicht nur die Kommandotabelle), die Vorher/Nachher-Tabelle nennt alle drei geaenderten Stellen einschliesslich session-setup.md Z. 18 — die dasselbe falsche Kriterium trug wie § Scope. Der wiki-status-Ausloeser ist ausdruecklich als entscheidbar geworden, aber nicht entschieden vermerkt: nach dem jetzt korrekten Kriterium fehlt dort der Verweis, das ist aber eine Skill-Aenderung und gehoert in ein eigenes Paket.

**Changelog:** Body auf den Endstand umgeschrieben. Gegen den urspruenglichen Stand neu: die Codewahrheit ist verifiziert statt abgeleitet (`run_budget.py` `SKIP_COMMANDS`/`SKIP_COMMAND_PATHS`, nicht nur die Kommandotabelle), die Vorher/Nachher-Tabelle nennt alle drei geaenderten Stellen einschliesslich `session-setup.md` Z. 18 — die dasselbe falsche Kriterium trug wie § Scope. Der `wiki-status`-Ausloeser ist ausdruecklich als *entscheidbar geworden, aber nicht entschieden* vermerkt: nach dem jetzt korrekten Kriterium fehlt dort der Verweis, das ist aber eine Skill-Aenderung und gehoert in ein eigenes Paket.
Author
Owner

Der offengelassene wiki-status-Teil ist jetzt #84 — mit der Vorfrage, ob der Verweis ergaenzt oder lint dort durch ein budgetbefreites Kommando ersetzt wird.

Der offengelassene `wiki-status`-Teil ist jetzt #84 — mit der Vorfrage, ob der Verweis ergaenzt oder `lint` dort durch ein budgetbefreites Kommando ersetzt wird.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: torben/chemenu#76