Rule 13.4
Chapter 13, Change control Test
Every change must pass the mechanical gates: bun run build; bun run test, with surface-names.test.ts, intrinsic-coverage.test.ts, capability-reachability.test.ts, determinism.test.ts, api-surface.test.ts, emit-reflection-conformance.test.ts, and the emit goldens among them; bun run gate:compile; the docs snippet test src/compiler/ts/doc-snippets.test.ts, which compiles every snippet of the surface document.
The rule text and the parts under it are the compiler's own English, as the design document writes them.
Rationale
a rule with a gate is enforced; a rule without one is Appendix B.
Derives from
AGENTS.md and .github/workflows/ci.yml.
How it is verified
Checked by a test. A test, a gate script or a CI workflow names this rule, and the traceability check fails when a file listed below stops naming it.
Where the rule says the compiler enforces it:
CI (.github/workflows/ci.yml).
The files that verify it at commit 26de7be8, each at the first line that names the rule:
-
.github/workflows/ci.yml:3(checked by the compiler's own test)
See also
- Rule 13.3 Test
- Rule 13.5 Review
- Design rules
- Error codes
Source
The rule at commit 26de7be8:
docs/language-design.md:1311(the design document)reqs/rules/RULE-1304.md(its traceability item)