Rule 9.7
Chapter 9, Built-in functions and the TypeShade extensions Test
A name must be added to the table in this order and in no other: the rationale is written into this section (and into Rule 4.4’s family for an f64 type), the row is added to TYPESHADE_EXTENSIONS with the same reason, the surface document gains or extends a §, and CHANGELOG.md gains an entry under [Unreleased].
The rule text and the parts under it are the compiler's own English, as the design document writes them.
Rationale
the test message that catches a stray name tells the reader to do exactly this, and the order keeps the reason ahead of the name.
Derives from
the comment above TYPESHADE_EXTENSIONS in surface-names.test.ts.
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:
surface-names.test.ts (the extension table of docs/language-design.md is TYPESHADE_EXTENSIONS, row for row), which reads the table above and fails on a row, an order, or a reason that differs from the allowlist; review for the surface § and the CHANGELOG.
The files that verify it at commit 26de7be8, each at the first line that names the rule:
See also
Source
The rule at commit 26de7be8:
docs/language-design.md:1057(the design document)reqs/rules/RULE-0907.md(its traceability item)