Pin coverage check, subsystems schema key
Library enforcement
validate_pin_coverage() requires every skill and every references/*.md to carry pinned phrases, so a rule nobody pins can no longer be reworded without failing the build. A skill or reference with no registry entry used to pass the pin check vacuously; 15 pin sets were added to close that, and mutation cases prove both branches. The CONTRIBUTING change checklist names the invariant. 33 mutation cases.
Schema key: components → subsystems
The architecture-as-code schema key rename lands as its expand step only:
- The schema and every example say
subsystems. - Both assembler recipes read the new key and the deprecated alias, warn on the alias, and reject a file carrying both.
- The contract step — dropping the alias — is a later major release, gated on evidence that no known consumer file still writes
components. This repository cannot observe that, so the decision belongs to whoever can.
Existing configuration files keep working. Nothing needs to change in a consumer project on this release.
Release commit e8e9dd7. Notes written after the fact from the commit history.