Where an agent writes, the checks run at each of its edits
Where an agent writes the specification, the tests or the code, the checks of the specification and of the code run after each of its edits, and what they refuse is reported to the agent.
Before an edit is made, it is refused where it would leave a node checked over a wording its owner never confirmed (§s-5ah25f6gy99panq), change the code of a rule no test carries the sid of (§s-rah8b37kytb682y), or change the confirmations otherwise than through the procedure that records a confirmation or withdraws one.
An agent told of a refusal at the edit that caused it mends it there, rather than at the commit among every other.
A node is confirmed by its owner, or in the owner's name by the agent working for that owner where its change states nothing new (§s-67vekyup7y8smap), so an agent that could set a status, or write a confirmation itself, could confirm what its owner never agreed to; and every later check takes the confirmations as given, so they can be held only where they are written. The procedure that records a confirmation takes the wording the node already holds and refuses a node whose owner is someone else, and a withdrawal only leaves a node unchecked.
A commit holds a test and its code together whichever was written first, so the order of the work can be held only where the edits are made.
The links it makes
The links made to it
The decisions taken on it
- Problem
The checks ran only at a commit: an agent met every refusal at once, far from the edits that caused them, nothing held the order of rule, test and code that a commit cannot show, and a status an agent set was caught only at the commit.
- Ruling
The owner: where an agent writes, the checks run at each of its edits, and an edit that would leave a node checked unconfirmed or change the code of a rule with no test is refused before it is made; the hooks ship with the tools and are kept in git.
- Problem
An agent could write a confirmation of a new wording into the confirmations and then reword a checked node: the check before the edit found the confirmation and let the edit pass, and only this rule's reason spoke against it.
- Ruling
The owner: an agent's edit changing the confirmations is refused before it is made; only the procedure that records a confirmation or withdraws one writes them.
- Problem
The reason held that nobody but a node's owner confirms it, while the agent working for the owner may now confirm in the owner's name a node whose change states nothing new.
- Ruling
Following the owner's ruling on §s-67vekyup7y8smap: the reason names that exception.
The tests bound to it
- skills/tools/test/e2e/hooks.test.ts · s-83ev4wwesbwnhnp after an agent's edit the checks run over the working tree, and what they refuse is handed to the agent
- skills/tools/test/unit/gates.test.ts · s-83ev4wwesbwnhnp judges no tool that makes no edit, and no file outside the repository's code, tests and specification
- skills/tools/test/unit/gates.test.ts · s-83ev4wwesbwnhnp lets an edit through where a test carries the sid of every rule whose code it changes, and an edit to a test
- skills/tools/test/unit/gates.test.ts · s-83ev4wwesbwnhnp refuses before it is made an edit changing the code of a rule no test carries the sid of
- skills/tools/test/unit/gates.test.ts · s-83ev4wwesbwnhnp refuses before it is made an edit giving a checked node an owner who never confirmed it
- skills/tools/test/unit/gates.test.ts · s-83ev4wwesbwnhnp refuses before it is made an edit leaving a node checked over a wording its owner never confirmed
- skills/tools/test/unit/gates.test.ts · s-83ev4wwesbwnhnp refuses before it is made an edit of the confirmations made with the agent's file tools