/** * Rule Registry — canonical mapping of every emitted rule/violation-type ID * to its emitting analyzer. * * This is the ONE place that asserts "each rule ID has exactly one emitter." * If you add a new emitted ID to an analyzer, add it here. The enforcement * test (`registry enforces one emitter per rule ID`) fails the suite on * duplicate entries — preventing the `severityOverrides` collision class * where two analyzers emit the same string. * * Rider 2, Spec 19: the `type-mismatch` duplicate between * UniversalSchemaAnalyzer (rule) and SchemaValidator (violationType) was * discovered during ground-truth enumeration. SchemaValidator's copy was * renamed to `schema-field-mismatch`. * * NOTE: `contractType` is NOT in the buildFingerprintInput rule-ID chain. * APIContractAnalyzer violations currently resolve rule='' in fingerprints. * They are listed here for collision detection nonetheless, because * severityOverrides may use a different resolution path. * * NOTE: invariants analyzer rule IDs are user-defined and variable — * `config-error` and `engine-error` are the only fixed, internal ones. */ export interface RuleRegistryEntry { /** The analyzer that emits this rule ID. */ analyzer: string; /** The field on the Violation object that holds this ID. */ field: 'rule' | 'principle' | 'violationType' | 'type' | 'contractType' | 'ruleId' | 'special'; } /** * Every known rule/violation-type ID → analyzer. * * Invariant IDs (user-defined from .codeauditor.json rules) are NOT * listed — they vary per project. The two fixed invariant IDs * (`config-error`, `engine-error`) are listed. */ export declare const RULE_REGISTRY: Record>; //# sourceMappingURL=ruleRegistry.d.ts.map