I2963 — The README's exit codes are the commands' contract
State in the README's command table the exit codes each command's model declares, and hold the table to share/commands.yaml (through its generated projection) with a case, so the sentence 'Exit codes are a contract' is true of the table above it.
DONE wave 0 · p0 · implementation profile · parallel safe
Part of development-runtime — The runtime has a development surface.
Objective
State in the README's command table the exit codes each command's model declares, and hold the table to share/commands.yaml (through its generated projection) with a case, so the sentence 'Exit codes are a contract' is true of the table above it.
Why
Truth sweep 2026-10-18 (f6, S11, verified): README.md:300-315 gave check '0 / 10', watch '0 / 11', init and start '0 / 15', update '0 / 10 / 15' and wrong codes for 13 of its 14 rows, under the sentence 'Exit codes are a contract'. share/commands.yaml declares check [0, 2, 10, 12, 13], watch [0, 2, 10, 11], init [0, 2, 10, 13, 15], start and update [0, 2, 10, 12, 15]; its exit_codes are reconciled against each lib file's MJ_EX_* constants.
Current state
Corrected in this change: every row of the README's command table states the model's codes. Generating the table from the model is post-alpha (ledger row derivable-counts-in-prose).
Desired state
Case 3365 refuses a README whose command table states any command's exit codes otherwise than the model declares them, and proves its comparison on a mutated row.
Scope
- README.md
- test/cases/3365_the_readme_exit_codes_are_the_contracts.sh
Dependencies
None. This issue is a root of the graph.
What waits on this
Acceptance criteria
- Every row of the README's command table states the exit codes its command's model declares
- Case 3365 fails on a row whose codes differ from the model
Validation
- majordomus plan validate
Evidence required
- case_the_readme_exit_codes_are_the_contracts
Evidence
| covers | type | command | result | at commit |
|---|---|---|---|---|
| case_the_readme_exit_codes_are_the_contracts | test | bash test/run.sh 3365_the_readme_exit_codes_are_the_contracts | 14 passed, 0 failed, 0 skipped on master dd4c0a87cba | dd4c0a8 |
Timeline
- started
- 2026-10-19T13:57:59Z
- verified
- —
- completed
- 2026-10-19T13:58:32Z
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I2963.yaml. Read it back with majordomus plan show I2963.