From dc688e5726008605e75d5b4449c45923684bc9fc Mon Sep 17 00:00:00 2001 From: Torben Nehmer Date: Sat, 12 Sep 2026 18:25:57 +0200 Subject: [PATCH] stack: Budget-Ausnahme von version regrade haengt an der Aufrufform (Doku-Nachzug zu #95) Files changed: - CHANGES.md - VERSION - instructions/gates.md - instructions/session-setup.md --- CHANGES.md | 18 ++++++++++++++++++ VERSION | 2 +- instructions/gates.md | 9 ++++++++- instructions/session-setup.md | 5 +++-- 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 765f227..ddd3cfb 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -52,6 +52,24 @@ concern - readable here, never shipped as something to parse. --- +## 5.1.1-beta.1 - 2026-09-12 - gates.md/session-setup.md: die Budget-Ausnahme von version regrade haengt an der Aufrufform + +**Author:** Torben Nehmer + + +**Low impact** +- gates.md/session-setup.md: die Budget-Ausnahme von version regrade haengt an der Aufrufform + + +Doku-Nachzug zu `5.1.0`. Beide Dateien beschrieben die Budget-Ausnahme als feste Liste pro +Kommandoname ("fixed allowlist"); `version regrade` ist die erste Ausnahme, die nur in *einer* +Aufrufform liest - bar listet sie, mit Positionen schreibt sie `CHANGES.md`. Die Liste selbst +bleibt an ihrem einen Ort (`tools/CONTRACT.md`), beide Stellen benennen jetzt aber, dass dort ein +Eintrag pro Aufruf statt pro Namen gilt. Aufgefallen in der Schlussphase derselben Arbeit, deshalb +ein eigener Patch-Bump: der Pfad `instructions/` liegt im Version-Gate der CI. + +--- + ## 5.1.0 - 2026-09-12 - changelog: Kandidaten-Eintrag nach Impact gruppiert, version regrade zur Nachkorrektur, version release verlangt eine Zusammenfassung **Author:** Torben Nehmer diff --git a/VERSION b/VERSION index 831446c..e28d5cc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5.1.0 +5.1.1-beta.1 diff --git a/instructions/gates.md b/instructions/gates.md index 8845e44..9fcd755 100644 --- a/instructions/gates.md +++ b/instructions/gates.md @@ -193,10 +193,17 @@ command you actually need to run, and only with the user's approval. A dozen commands are exempt from this budget entirely - `search` and `doctor` because retrieval and diagnosis are reading, not iterating, plus the read-only forms of `links`, `cite`, `budget`, -`eval`, `version`, `migrate` and `upstream verify`. The exemption is that fixed allowlist in +`eval`, `version`, `migrate` and `upstream verify`. The exemption is that allowlist in [tools/CONTRACT.md](../tools/CONTRACT.md), not a "does not change the wiki" rule of thumb: `lint` only writes to gitignored `reports/` and still counts, because it is not on the list. +**One entry is read-only only in one of its two forms.** `version regrade` lists the running +candidate's graded bump titles when called bare, and writes `CHANGES.md` when called with +positions to regrade - so the exemption is per *invocation* there, not per command name. It is +the only such case; every other row on the list is exempt however it is called. Its +`tools/CONTRACT.md` row says which form is which, which is still the single place that list +lives. + ### Taking a new session id The budget is scoped by `WIKITOOL_SESSION_ID` ([session-setup.md](session-setup.md)), so a new diff --git a/instructions/session-setup.md b/instructions/session-setup.md index df3383f..cf0e1e1 100644 --- a/instructions/session-setup.md +++ b/instructions/session-setup.md @@ -57,11 +57,12 @@ refusal. See [gates.md](gates.md). ## Scope -**The exemption is a fixed allowlist, not "read-only" or "does not change the wiki."** A command +**The exemption is an allowlist, not "read-only" or "does not change the wiki."** A command needs this setup unless it is one of the dozen `tools/CONTRACT.md` marks exempt in its command table (`search`, `doctor`, `links show`, `cite id`, `budget status`, the read-only forms of `eval`, `version`, `migrate` and `upstream verify`) - that table, not a rule of thumb here, is -the single list. +the single list. One entry on it, `version regrade`, is exempt only in its bare listing form and +counted when it is given positions to regrade; every other entry is exempt however it is called. `lint` is the case that breaks the "changes the wiki" reading: it only writes to `reports/`, which is gitignored, so it looks side-effect-free - but it is not on the allowlist and is counted