skills: close four drifts found auditing the catalogue against the Standard - #29
Merged
Conversation
…andard An audit of all 45 first-party skills across nine drift classes turned up four real findings. Three were contradictions or rot; one was a coverage gap. 1. §13 contradiction — spacecraft-brand-guidelines said "Apply the palette to Material Design components (the required UI system for Spacecraft Software GUIs)". True until v1.42, and directly wrong since: Material covers Flutter, web, mobile, and cross-platform; GTK 4 takes GNOME HIG and Qt 6 takes KDE HIG. Rewritten to name all three and to say plainly that the palette is system-agnostic — §13 chooses the widget vocabulary, §11 supplies the colors. spacecraft-accessibility-support/references/gui.md carried a milder version of the same assumption and now generalizes the same way, which matters there because that file documents the GTK and Qt bridges a few lines above. 2. Version-pin rot — brand-guidelines pinned v1.39, theme-factory and steelbore-color-palette v1.42. Two of the three were written today and were already stale one release later, which is the tell: the phrasing is the defect, not the numbers. "Source of truth: The Steelbore Standard v1.42 (§11, §12)" is ambiguous between document version and clause version and rots on every unrelated release. All three now cite sections rather than a document version. steelbore-color-palette keeps "§11 — last amended in v1.39", which is accurate and stable because it moves only when §11 moves; §12's last real amendment could not be established (v1.16 predates the v1.24 renumbering), so nothing is asserted about it. 3. Flutter accessibility gap — spacecraft-flutterdart-guidelines had zero mentions of §18, Semantics, or a screen reader anywhere in the skill, while §18.3 names Semantics/SemanticsRole as its required bridge and §18 makes an accessible mode mandatory for every non-game application. The GTK and Qt skills carry this; Flutter did not. Added: a Core Philosophy clause, an abstraction-choice row, three Required Techniques, a CI gate, five anti-patterns, six checklist items, a cross-reference to spacecraft-accessibility-support, and reference §6 with runnable Semantics, SemanticsService.announce, CustomPainter.semanticsBuilder, and meetsGuideline test patterns. Reference sections renumbered 6→7, 7→8. 4. Constitution synced to Standard v1.44 (Spacecraft-Software/Standard#23), which fixes the published cross-reference table naming a skill that does not exist — spacecraft-accessibility rather than spacecraft-accessibility-support. This skill's table was already correct, so only the version moves here. Clean on audit: retired §11.2 tokens (all legitimate Steelbore Classic), §4.3 LICENSE symlink direction, §14.2 date offsets, §3.1.1 TypeScript, §12 fonts, §6.4 outbound publication, every other skill-name reference, and the §16 checklists (26 items, matching ids). Six skills' bundles rebuilt. Description cap, reuse lint, and the full drift sweep pass. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
UnbreakableMJ
added a commit
that referenced
this pull request
Aug 22, 2026
…nse carriage — v1.50 (#46) Skill-side sync of Standard PR #29 (Spacecraft-Software/Standard@6596880), landed at the same version and date per the two-repo rule. §4.3 gains a License file naming clause: the canonical filename is LICENSE with no extension; LICENSE.md and LICENSE.txt are non-compliant. COPYING MAY be added at project root as a symlink to LICENSE, never a second regular copy and never inside a distributable sub-unit, since archivers dereference symlinks and would ship the text twice. Where more than one license applies each text gets its own LICENSE.<TAG> file after GNU's COPYING.LESSER / COPYING.RUNTIME convention; texts are never concatenated and the SPDX expression, not the filename tag, remains the version claim. §5.6 gains License carriage: a bundle is a distribution in its own right, installed without the consumer ever seeing this repository, so the copyleft obligation to supply the license with the work lands on the bundle. Every skill directory carries a LICENSE, byte-identical to the repo root and verified by an automated gate, and it MUST be a regular file — a ../LICENSE symlink dangles the moment a directory is packaged alone, which is what bundling and the flake's per-skill cp -r do. §14 checklist rows for §4.3 and §5.6 extended to match. Masthead and frontmatter description bumped to v1.50 / 2026-08-22; description re-measured at 988 rendered characters, within the §5.6 cap (12 to spare — the description is near the limit and any future addition must trim elsewhere). This PR is the rule text only. The repo does not yet satisfy it — 34 of 44 bundles ship no license text and ten skills carry LICENSE.md — and the migration lands as its own PR. Claude-Session: https://claude.ai/code/session_01SmZmsWzmSaXpS7bFQu3fWJ Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
An audit of all 45 first-party skills against the Standard, across nine drift classes. Four real findings — three contradictions or rot, one coverage gap.
1. §13 contradiction
spacecraft-brand-guidelines:91said:True until v1.42, wrong since. Material covers Flutter, web, mobile, and cross-platform; GTK 4 takes GNOME HIG and Qt 6 takes KDE HIG. Rewritten to name all three and to state that the palette is system-agnostic — §13 chooses the widget vocabulary, §11 supplies the colors, and the binding is always through the named
steelboretheme.spacecraft-accessibility-support/references/gui.md:123carried a milder version of the same assumption. It now generalizes the same way — which matters there, because that file documents the GTK and Qt bridges a few lines above.2. Version-pin rot
brand-guidelinespinnedv1.39;theme-factoryandsteelbore-color-palettepinnedv1.42.Two of the three were written today and were already stale one release later. That is the tell: the phrasing is the defect, not the numbers.
Source of truth: The Steelbore Standard v1.42 (§11, §12)is ambiguous between document version and clause version, and rots on every unrelated release.All three now cite sections rather than a document version.
steelbore-color-palettekeeps "§11 — last amended in v1.39", which is accurate and stable because it only moves when §11 moves. §12's last real amendment could not be established (the v1.16 entry predates the v1.24 renumbering that shifted §8–§15 → §9–§16), so nothing is asserted about it rather than guessing.3. Flutter accessibility gap
spacecraft-flutterdart-guidelineshad zero mentions of §18,Semantics, or a screen reader anywhere in the skill — while §18.3 namesSemantics/SemanticsRoleas its required bridge and §18 makes an accessible mode mandatory for every non-game application. GTK had 6 mentions, Qt 7, Flutter 0.Added: a Core Philosophy clause, an abstraction-choice row, three Required Techniques, a CI gate, five anti-patterns, six checklist items, a cross-reference to
spacecraft-accessibility-support, and reference §6 with runnable patterns forSemantics,SemanticsService.announce,CustomPainter.semanticsBuilder(the custom-paint failure case), andmeetsGuidelinetest assertions. Reference sections renumbered 6→7, 7→8.Now 15 mentions in
SKILL.md, 24 in the reference.4. Constitution → v1.44
Syncs Spacecraft-Software/Standard#23, which fixes the published cross-reference table naming a skill that does not exist (
spacecraft-accessibilityrather thanspacecraft-accessibility-support). This skill's table was already correct, so only the version moves.Clean on audit
Retired §11.2 tokens (all legitimate Steelbore Classic, un-retired at v1.35) · §4.3 LICENSE symlink direction · §14.2 date offsets · §3.1.1 TypeScript (thoroughly implemented, exemptions included) · §12 fonts · §6.4 outbound publication · every other skill-name reference · §16 checklists (26 items, matching ids).
Verification
Six skills' bundles rebuilt. Description cap across every
SKILL.md,reuse lint, and the full bundle drift sweep all pass. Re-running each audit query that produced a finding now returns nothing.Merge order
Standard#23 first, then this.
🤖 Generated with Claude Code