0010. Each repository names its verify command
Status: Superseded by 0014 · Date: 2026-10-22
Supersedes 0005.
Context
0005 made npm run verify the one command that defines "mechanically healthy" for a repository. The interface was right, but its spelling tied it to npm. A Python, Go or Rust repository had to add a package.json that existed only to hold that script. /lesti added one even when the repository already had a reliable single command for its whole gate, such as make check, cargo test or tox.
Decision
- A repository that uses mexxi has one verify command that defines "mechanically healthy" for it. The repository owns what it contains; mexxi only depends on the interface.
- The command is
npm run verifyunless the repository's committed.mexxi.jsonnames another as"verify".ibni preparereads it from the commit the task starts from and reports it asverifyCommand. Averifythat is not a non-empty string, or a.mexxi.jsonthat is not a JSON object, stopspreparerather than falling back to the default. - Verifika stays the recommended engine, backing
npm run verifywithverifika --all./lestiwires it into npm repositories and repositories with no gate, but records an existing reliable command in.mexxi.jsonrather than adding npm or Verifika. /wettaqrequires a green verify command before work starts and again before delivery. A failure means the work is not finished; checks are fixed, never weakened.- While working, agents run only the checks their change affects (
vfk --changedwhere the repository uses Verifika). That is feedback, never a substitute for the final full run. - A repository can skip the local baseline run by naming, as
ciCheckin.mexxi.json, the CI check that runs its full verify command.ibni preparereuses that check's result only when it passed on the exact commit the task starts from. /lestiis the one place mexxi installs this contract into a repository, by request and through a reviewed pull request.
Consequences
- npm repositories behave exactly as before: with no
verifyin.mexxi.json, the command isnpm run verify. - Other repositories keep their own tooling and need no
package.jsonfor mexxi's sake. - A repository without Verifika has no selective runs, so agents get slower feedback while working. The final gate is unchanged.
- Instructions say "the verify command" instead of a literal command, so agents must carry
verifyCommandfromprepareoradoptthrough the run. - Because
.mexxi.jsonis read from the base commit, a branch that changesverifytakes effect only once it is merged. - A retained workspace keeps the verify command it was prepared with. A follow-up after the default branch changes
verifystill runs the old command until a freshprepare.
Alternatives considered
- Keep
npm run verifyeverywhere: one spelling, but it forces npm onto repositories that have no other use for it. - Name the command in mexxi's user config: it would differ by machine, while the command belongs to the repository and its CI.
- Detect the command from the stack: convenient, but a guess is exactly the inconsistency the contract exists to remove.