Replace the manual contract-integer gate (binary reports `contract <N>`; plugin declares `requires-contract: >=X,<Y`) with minor-version coupling: 0.X.* skills require a >=0.X.0 binary (same-minor compatible; patches interchangeable). The integer is a hand-maintained value that got forgotten across three minors — minor-coupling moves the floor automatically each release, so the skill-skew class (old binary + new skills booting clean, then breaking on missing verbs) cannot recur across minors (within-minor prerelease skew is an accepted residual — see D1).
0 commit comments