Name the thing, not its position, in the checks' assertion messages #106

Closed
opened 2026-09-22 04:23:58 +01:00 by allod-agent · 0 comments
Member

Rename the position words in the checks' assertion and error messages, so a failing check tells the operator which binding to look at rather than "the fixture above" or "the sweep below".

Primary goals:

  • A failure message names the thing — the sibling assertion, fixture or binding it refers to, by name, so the message stays true when the check body is reordered or split.
  • No history phrasing in a message — "no longer generates", "no longer enforced" describe a change, not a state; the message states what the check expects now.

Current state and specifics

allod/archetypes#101 cut the comments in checks/ to contracts, traps and pointers and left every message string alone, because a string edit changes a check's derivation and is a code change under that issue's gates. The rot it could not reach, on master after that arc: checks/dev-forge-opt-out.nix:216-244 ("the composed-machine sweep below", "the contract the fixture above pins", "the fixture assertion above says so", "the string sabotages below", "no longer generates", "no longer enforced", "no longer installs"); checks/host-user-credentials.nix:263-285, the same phrasings mirrored; checks/ssh-settings.nix:331 ("a second author of the forge block no longer merges"); checks/credential-profiles.nix:404 ("the shared credential-store URL vectors below"); checks/pi-integration.nix:156 ("the Pi pointer assertions below"). Line numbers are as of the #101 branch and will shift. The same shape exists in modules/ai-agents.nix:153,160 and modules/pi-provider-lifecycle.nix:185 (warnEcho "... see ERROR above ..."), where "above" means earlier in the terminal and is fine as it is.

Scope

In scope: the message strings named, and any other assertion or error message in checks/ that names a sibling by position or a change by history. Every touched check is built by ./check.sh as its witness; the derivation-path capture is expected to move for exactly those checks and the PR names them.

Not in scope: comments (done in #101), and the runtime warnEcho strings in modules/, whose "above" is a terminal position.

Refs allod/archetypes#101

Rename the position words in the checks' assertion and error messages, so a failing check tells the operator which binding to look at rather than "the fixture above" or "the sweep below". Primary goals: - **A failure message names the thing** — the sibling assertion, fixture or binding it refers to, by name, so the message stays true when the check body is reordered or split. - **No history phrasing in a message** — "no longer generates", "no longer enforced" describe a change, not a state; the message states what the check expects now. ### Current state and specifics allod/archetypes#101 cut the comments in `checks/` to contracts, traps and pointers and left every message string alone, because a string edit changes a check's derivation and is a code change under that issue's gates. The rot it could not reach, on master after that arc: `checks/dev-forge-opt-out.nix:216-244` ("the composed-machine sweep below", "the contract the fixture above pins", "the fixture assertion above says so", "the string sabotages below", "no longer generates", "no longer enforced", "no longer installs"); `checks/host-user-credentials.nix:263-285`, the same phrasings mirrored; `checks/ssh-settings.nix:331` ("a second author of the forge block no longer merges"); `checks/credential-profiles.nix:404` ("the shared credential-store URL vectors below"); `checks/pi-integration.nix:156` ("the Pi pointer assertions below"). Line numbers are as of the #101 branch and will shift. The same shape exists in `modules/ai-agents.nix:153,160` and `modules/pi-provider-lifecycle.nix:185` (`warnEcho "... see ERROR above ..."`), where "above" means earlier in the terminal and is fine as it is. ### Scope In scope: the message strings named, and any other assertion or error message in `checks/` that names a sibling by position or a change by history. Every touched check is built by `./check.sh` as its witness; the derivation-path capture is expected to move for exactly those checks and the PR names them. Not in scope: comments (done in #101), and the runtime `warnEcho` strings in `modules/`, whose "above" is a terminal position. Refs allod/archetypes#101
vnprc closed this issue 2026-09-23 15:38:09 +01:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
allod/archetypes#106
No description provided.