IFClite TypeScript API
    Preparing search index...

    Interface SpecRule

    Re-run when the specification (or the document's custom declarations) changes.

    interface SpecRule {
        area: LintArea;
        assumptions?: { id: string; verified: string }[];
        code: string;
        defaultSeverity: LintSeverity;
        example?: string;
        fix?: string;
        kind: "model" | "static";
        optIn?: boolean;
        rationale: string;
        references?: string[];
        scope: "spec";
        title: string;
        check(spec: SpecView, input: RuleInput): Finding[];
    }

    Hierarchy (View Summary)

    Index
    area: LintArea
    assumptions?: { id: string; verified: string }[]

    RAID assumptions the rule depends on, with how they were verified.

    code: string
    defaultSeverity: LintSeverity
    example?: string

    A minimal triggering example (IDS XML fragment) for the docs.

    fix?: string

    What the quick fix does, when the rule offers one.

    kind: "model" | "static"

    static rules need no model; model rules are run by the model loop (P-05).

    optIn?: boolean

    Off by default (noisy on real documents). The rule runs only when the linter config enables it: LintOptions.rules names it, or LintOptions.severity gives it a severity other than 'off'.

    rationale: string

    Long-form rationale, shown as Diagnostic.why and on the docs page.

    references?: string[]

    Upstream references (IDS issues, documentation).

    scope: "spec"
    title: string

    One-line title for tables and the docs index.