Rule handbook metadata
- Rule
DET.KS.VISUAL_FAMILY_COVERAGE· lanedeterministic- Page status
- current
- page_version
372fb6ccde94dcae83a6f9aa45f05d1e4c4816ab65d2929fa23dcc5a2b0c7c43- generated_at
- 2026-05-28T20:30:00.000Z
- registry_fingerprint
aef1de6082cf0f50d463783c843dee0ffb9132fbd5ed4ea6e5bb3f031f359c72
How this rule is fixed
Pilot deterministic fixer: plan_only · harness mode repo_overlay · verify expect_rule_clean.
See fixer module for plan_only in lib/ux-deterministic-fixers/.
Detection module: docs/design/ux-audit/deterministic-design-rules.md#det-ks-visual-family-coverage. Scroll down for Before / After examples and Evidence and remediation steps.
Purpose
Registry rows that emit HTML to consumers (emits_html, react-primitive, components/, react/, assets/svg/) must have contract_status: own with an on-disk contract, or family-covered with a justified family contract. Scope: KS repos; repo scan only.
Passing signals
node tools/design-catalog/check-visual-catalog.mjspasses contract path coverage.DET.KS.VISUAL_FAMILY_COVERAGEreports zero violations.
Failing signals
- missing-contract-path — consumer-bound hash without contract.
- contract-file-missing —
contract:path not found on disk.
Before example
Registry row without contract:
hash: Zzz
type: component
emits_html: true
contract_status: missing
After example
hash: Zzz
type: component
emits_html: true
contract_status: own
contract: docs/design/catalog/components/Zzz-example.md
Deterministic checks
DET.KS.VISUAL_FAMILY_COVERAGE—det-ks-visual-family-coverage.check.js.DET.CONTRACT.PATH— companion path existence gate.
Remediation
Add {HASH}-*.md under docs/design/catalog/ or mark family-covered with a valid family contract file.