Rule 9.6
Chapter 9, Built-in functions and the TypeShade extensions Test
The author-facing names of source (c) must be exactly the rows below; the table is shrink-only, and a name may join it only by Rule 13.6.
The rule text and the parts under it are the compiler's own English, as the design document writes them.
Rationale
an extension is a decision that was reviewed, not a place to put a name that failed the source check.
Derives from
PR #166’s body, section “A design rule this lane settled”; the allowlist TYPESHADE_EXTENSIONS.
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 TypeShade allowlist shrinks), which fails on a row the library no longer declares and on a row WGSL or ECMAScript now covers.
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:953(the design document)reqs/rules/RULE-0906.md(its traceability item)