test(checks): derive doc and workflow checks instead of pinning prose (#320)

Of the source-text assertions on Markdown, shell, Makefile, and
workflow files, most pinned wording: they failed on a rewording and
passed when the document was wrong. Each was classified by what it
protects.

Removed as prose pins (24): feature-name phrases in the usage guide,
README section headings, "latest release", and similar sentences whose
wording carries no contract.

Replaced with derived checks that fail on real drift and tolerate
rewording, each verified by a mutation:

- The descriptor contract's rendering bounds and identifier pattern are
  read from ProviderDescriptor.js and required in the proposal. Changing
  maximumActions to 48 without the doc fails; rewording the sentence passes.
- "all 77 providers" in README and the usage guide is now derived from
  the icon check's registry list, so a registry change that forgets the
  docs fails. #316 had to update these pins by hand.
- Six hand-listed Makefile wiring pins became one loop over
  scripts/test_*.sh, so a new unwired check script fails.
- Two SHA-specific action pins became a property check: every `uses:` in
  every workflow must pin a full commit SHA. A pinned bump passes; an
  unpinned `actions/checkout@v4` fails.
- install.sh's three spelling pins became an execution of the real
  script with recording stand-ins for make, kpackagetool6, and systemctl.
  Installing the source tree instead of the built package fails.

Kept, with reasons: README install commands and the troubleshooting
command are user-facing instructions whose exact text is the contract,
and the reject_* assertions express an absence with no executable
equivalent. A duplicate checksum pin was dropped.

Documentation impact: none; contributor-facing check behavior only.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
3ad47e0efeSimone committed on 9/22/2026, 8:30:59 PM· committed by GitHubparentf7cd660
5 files changedLine totals unavailable