Rule 10.4
Chapter 10, Extensions and capabilities Test
Every capability must have a witness: a module shape an author can write that uses the feature; a declarable capability with no witness is recorded as such and never advertised as usable.
The rule text and the parts under it are the compiler's own English, as the design document writes them.
Rationale
a capability is a promise to an author, and a promise with nothing behind it fails pipeline creation for nothing.
Derives from
src/core/backends/capability-reachability.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:
that test’s witness table.
The files that verify it at commit 26de7be8, each at the first line that names the rule:
See also
- Rule 10.3 Test
- Rule 10.5 Test
- Design rules
- Error codes
Source
The rule at commit 26de7be8:
docs/language-design.md:1102(the design document)reqs/rules/RULE-1004.md(its traceability item)