انتقل إلى المحتوى الرئيسي

Variable: NO_REQUIREMENT_KEYWORD_PATTERN

const NO_REQUIREMENT_KEYWORD_PATTERN: string

Defined in: packages/contracts/src/schemas/governance-metamodel.ts:129

A principle contains no capitalised RFC 2119 keyword anywhere, as a whole word. The Metamodel says principles MUST NOT contain testable requirements (its 1.9); this is that rule made mechanical. "Whole word" is judged by Unicode letters and digits on either side, so the rule reads the same in a sentence that mixes scripts.

A keyword that only looks like one is refused too (the 2026-10-14 security review). Each letter matches its look-alikes (LOOK_ALIKES, in this file), so MUST, МUST with a Cyrillic М, and any mix of the three scripts spelling a keyword are refused as MUST is. The mathematical alphanumerics (U+1D400 to U+1D7FF, which NFKC folds to Latin) are refused anywhere in a principle: a value statement has no use for them. A keyword split by an invisible character (M U+200D UST) never reaches this rule, because FRAMEWORK_TEXT_PATTERN refuses every default-ignorable code point first.

What remains, stated rather than chased: look-alikes outside Cyrillic, Greek, the fullwidth forms and the mathematical block (Cherokee Ꮇ, Armenian Ս, the letterlike symbols such as ℳ, circled and parenthesised letters, small capitals). A principle that spells a keyword with those passes this pattern; the publish-time review by a person, which every framework has, is what catches it.