What problem does it solve? Architecture rules written as several alternatives (dependency-cruiser forbidden rules or esquery no-restricted-syntax selector unions) silently rot when one alternative is a superset of another: deleting the narrower alternative changes nothing, no fixture can pin it, and the rule looks healthy while a branch is dead. This Skill detects and prevents that overlap. ## Core Features & Use Cases - Disjointness verification: Ensures each alternative in a rule matches a disjoint set by having later alternatives negate what earlier ones already claim, with the node type anchored before negation chains. - Fixture-based rule-rot guards: Requires at least two must-fail fixtures per alternative so deleting any single alternative makes a fixture stop failing, plus bidirectional completeness assertions between rules and fixtures. - Documented-overlap governance: Rules that legitimately co-fire are listed in a reviewed overlap map in both the fixture file and the test, so widening the map to hide a regression stays visible. - Use Case: When adding a new import-shape alternative to a no-restricted-syntax union in config/di-collaborator-policy.js, narrow the side-effect catch-all so it excludes default, namespace, and named specifiers, then add fixtures proving each branch still fires. ## Quick Start Check whether the alternatives in my .dependency-cruiser.js forbidden rules and esquery selector union are disjoint, and add must-fail fixtures for any alternative that cannot currently be pinned.