/** * graph:high-blast-untested (flagship) — flag high-reach functions that are * NOT exercised by any test. The combination gate ADR-0001 sanctions: a raw * metric (`blast`) gates only as an **ABSOLUTE-threshold input** to a bounded, * actionable predicate, never as a ranking/percentile. * * Predicate (per occurrence): `blast.score >= absoluteThreshold && !testReachable`. * - test-reachable → skip (a high-blast TESTED function emits nothing). * - `blast.score < warn` → skip (a LOW-blast untested function emits nothing — noise). * - `blast.score >= error` → base `high`; else (`[warn, error)`) → base `medium`. * * The count reaches zero once every high-blast function is test-covered → * bounded → gateable. The fix is one verb: add a test. Thresholds are in-rule * opinionated ABSOLUTE constants, overridable via `config.highBlastWarnThreshold` * / `highBlastErrorThreshold` (Phase A). Emitted severity routes through the * opt-in `applySeverityOverride` clamp (ADR-0005). * * Feature columns: `blast` (composite reach score `direct + 0.5 × transitive`) * and `testReachable` (the boolean companion to `reachableOnlyFromTests`). * Both are needed-only `featureDeps`. When the columns are absent (e.g. a * 3/4-arg test call with no features), the rule degrades to emitting nothing * (spec Applicable Conventions: absent column → emit nothing) — blast/test * reachability are NOT cheaply recomputable in-rule, so there is no fallback. */ export declare const highBlastUntestedRule: import("../types.js").Rule; //# sourceMappingURL=high-blast-untested.d.ts.map