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: ja — lint 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.
Changelog: Body auf den Endstand umgeschrieben. Gegen den urspruenglichen Stand neu: die Codewahrheit ist verifiziert statt abgeleitet (run_budget.pySKIP_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.
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Ergebnis
instructions/session-setup.mdundinstructions/gates.mdnennen 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(Stackversion5.0.0-beta.1).Was der Befund war
session-setup.md§ Scope sagte:Das war nicht das Zaehlkriterium. Die Codewahrheit steht in
tools/chemenu/commands/run_budget.py:SKIP_COMMANDS(search,doctor) undSKIP_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.lintsteht nicht darauf: es schreibt nur ins gitignortereports/, 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
session-setup.mdZ. 18wikitoolcall that changes anything"wikitoolcall that is not exempt from the budget", mit Verweis auf § Scopesession-setup.md§ Scopesearchals einzige genannte Ausnahme, Kriterium "aendert das Wiki"lintals der Fall ausgeschrieben, der die falsche Lesart brichtgates.mdZ. 162wikitool searchis exempt from this budget entirely"tools/CONTRACT.mdstatt einer zweiten ListeDie 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.searchsei die einzige oder die typische Ausnahme, wenn es zwoelf gibt.tools/CONTRACT.md);session-setup.mdverweist darauf, statt sie zu kopieren.lintaufruft, den Setup-Schritt braucht. Antwort: ja —lintzaehlt.tools/wikitool instructions verifyundtools/wikitool docs verifylaufen ohne neue Findings.Was das fuer
wiki-statusheisstDer Ausloeser des Issues —
wiki-statusruftlint, traegt aber keinensession-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 verifyundpytest(1101 Tests, zusaetzlich im gehaerteten Leerumgebungs-Lauf nachinstructions/dev/testing-conventions.mdSchritt 6) — alle gruen vor dem Publish.Herkunft
Analyse aus #65, Sitzung 2026-09-09. Aufgefallen bei der Pruefung, ob
wiki-queryundwiki-statusden fehlendensession-setup.md-Verweis zu Recht haben; vom Operator korrekt eingewandt, dass Suchen budgetbefreit sind — was den urspruenglichen Befund halbierte und diesen hier freilegte. Derwiki-query-Teil ist #75.Changelog: Body auf den Endstand umgeschrieben. Gegen den urspruenglichen Stand neu: die Codewahrheit ist verifiziert statt abgeleitet (
run_budget.pySKIP_COMMANDS/SKIP_COMMAND_PATHS, nicht nur die Kommandotabelle), die Vorher/Nachher-Tabelle nennt alle drei geaenderten Stellen einschliesslichsession-setup.mdZ. 18 — die dasselbe falsche Kriterium trug wie § Scope. Derwiki-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.Der offengelassene
wiki-status-Teil ist jetzt #84 — mit der Vorfrage, ob der Verweis ergaenzt oderlintdort durch ein budgetbefreites Kommando ersetzt wird.