From 2eb7084982538b10f3dcf8bd7cb41f23d834a088 Mon Sep 17 00:00:00 2001 From: UnbreakableMJ Date: Wed, 5 Aug 2026 09:50:43 +0000 Subject: [PATCH] ci: validate skill references against the Construct catalogue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This document cites skills by id, but the catalogue lives in Construct, so nothing here could tell whether a cited skill exists. It shipped for months naming `spacecraft-accessibility` when the skill had always been `spacecraft-accessibility-support` (fixed in v1.44, #23) — silently, because a missing skill does not announce itself; it simply never loads, and §18 work directed at it proceeds without it. The new `skill-refs` job checks out Construct read-only — both repos are public, so no token and `persist-credentials: false` — and runs Construct's `.github/check-skill-refs.py` against the .texi and its .md companion. The dependency direction is deliberate: this document cites the catalogue, so this document validates against it. One implementation serves both repos rather than a copy drifting on each side, which is the same failure this job exists to prevent. `--no-version-check` is passed: the checker's second rule bans Standard document-version pins in skills, but this document's own masthead version is the one legitimate pin in the ecosystem. Companion to Spacecraft-Software/Construct#30, which adds the script and wires the same checks over the catalogue itself. That PR is merged, so the script is on Construct's main and this job can find it. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/ci.yml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 26e70c1..6d1a712 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,3 +29,38 @@ jobs: - name: Validate JSON / JSONC / TOML / YAML run: python3 .github/validate-configs.py + + # The Standard cites skills by id, but the catalogue lives in Construct, so + # nothing here could tell whether a cited skill exists. It shipped for months + # naming `spacecraft-accessibility` when the skill had always been + # `spacecraft-accessibility-support` — silently, because a missing skill does + # not announce itself; it simply never loads, and §18 work directed at it + # proceeds without it. + # + # This job checks out Construct read-only (both repos are public, so no token) + # and runs Construct's checker against this document. The dependency direction + # is deliberate: the Standard cites the catalogue, so the Standard validates + # against it. The version check is off — this document's own masthead version + # is the one legitimate pin in the ecosystem. + skill-refs: + name: Skill references resolve against the Construct catalogue + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/checkout@v4 + with: + repository: Spacecraft-Software/Construct + path: .construct + persist-credentials: false + + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Validate skill references + run: | + python3 .construct/.github/check-skill-refs.py \ + --catalogue .construct \ + --no-version-check \ + The_Steelbore_Standard.texi The_Steelbore_Standard.md