Skip to content

Comment tense: state invariants rather than change history - #499

Merged
m2ux merged 1 commit into
mainfrom
chore/comment-tense
Aug 24, 2026
Merged

Comment tense: state invariants rather than change history#499
m2ux merged 1 commit into
mainfrom
chore/comment-tense

Conversation

@m2ux

@m2ux m2ux commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Summary

Six comments and two test names in the activity-variable-contract work described what an earlier arrangement did rather than what the system does. A reader who did not watch the change takes that as a statement about the code in front of them, so each one is a small piece of misinformation with a long shelf life. The repository's documentation rule says as much: definitions, comments and commit subjects state the system as it is.

Nothing behaves differently. What each comment was really recording — a hazard, a reason a thing is arranged the way it is — survives, stated as the invariant it implies rather than as the story of how it was found.

What changes

The session-contract checker explained its no-progress finding by naming a smoke run that once claimed two activities and executed one. The invariant is the one that made that run possible: a driver reporting activities while the session stays put is indistinguishable from one that is working, so a run's own account of what it did is not evidence.

The smoke orchestrator carried three. Where sessions live, which said they used to live somewhere else; the point at which a refused transition goes unnoticed, which said that is when it used to happen; and the turn cap, which said an unresolved checkpoint is what made a refusal look like a success. All three state the standing condition instead.

The step-execution walk described itself as covering the two workflows whose step sequence changed, and both of its tests were named for the step each workflow no longer has. It covers the two workflows the policy matrix leaves out, and each test asserts the sequence its activity runs. The assertions are unchanged — a step id absent from an execution list is still a step id absent from an execution list.

Two smaller ones: the binding-fidelity gate reports an entry with no live finding behind it, and resume_checkpoint reads the most recent response because clearing the active checkpoint leaves no id to key by.

Verification

npm run typecheck; npm run check:all — 30 guards, all passing; the three touched test files run green, including both renamed step-execution walks. Comments and test names only, so no behaviour is under test here that was not under test before.

🤖 Generated with Claude Code

Six comments and two test names describe the system as it is. Each held a
sentence about what a prior arrangement did, which reads as current fact to
anyone who did not watch it change; the hazard each was recording survives as
the invariant it implies.
@m2ux
m2ux merged commit e726009 into main Aug 24, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant