Skip to content

feat(standard): §13 declared component system per platform — v1.42 - #21

Merged
UnbreakableMJ merged 1 commit into
mainfrom
standard-v1.42-design-systems
Aug 5, 2026
Merged

feat(standard): §13 declared component system per platform — v1.42#21
UnbreakableMJ merged 1 commit into
mainfrom
standard-v1.42-design-systems

Conversation

@UnbreakableMJ

Copy link
Copy Markdown
Contributor

Why

§13 required Material Design as "the required component system for all graphical applications" — a rule written when the graphical surface in scope was Flutter and web.

It has been unsatisfiable for native desktop since the day it was written. GTK 4 ships Adwaita and the GNOME HIG; Qt 6 ships Fusion and the KDE HIG; neither has a Material component set to theme. A GTK or Qt application could not pass the §16 audit gate no matter how it was built — the only honest options were a permanent filed deviation, or an application matching neither its own toolkit nor Material.

Worse, imposing a foreign component system on a native toolkit fights exactly the platform integration §18 depends on: the accessibility bridge, the window manager, the system high-contrast and reduced-motion preferences, and the settings portal are all wired to the toolkit's own vocabulary.

What changed

§13 is rewritten around the requirement that actually carries the intent — every graphical application declares exactly one component system, in its README.md beside the §5.2 posture section, and follows it consistently — with the system determined by the platform:

Application class Required component system
Flutter, web, mobile, cross-platform GUI Material Design
GTK 4 desktop GNOME HIG via libadwaita
Qt 6 desktop KDE HIG via Qt Quick Controls / Fusion
Custom-drawn / immediate-mode UI Material Design, unless a platform HIG is declared

Material Design remains the default wherever the platform supplies no system of its own, so nothing compliant under v1.41 becomes non-compliant — the clause is narrowed, never widened.

Explicitly unchanged

  • §11 binding is unconditional — every palette reference still goes through the named steelbore theme (§11.1). A component system chooses the widget vocabulary; it never supplies the colors.
  • WCAG 2.2 Level AA remains the contrast floor, with the measured pairing stated.
  • §18 still governs wherever the two overlap.

Also in this PR

  • @settitle, @set VERSION, @set UPDATED → 1.42 / 2026-08-05
  • §16 checklist bullet rewritten to the declare-and-follow form
  • Skill Cross-References gains spacecraft-gtk-guidelines and spacecraft-qt-guidelines rows. Both are Rust-first under §3.1 (gtk-rs for GTK, CXX-Qt for Qt), so choosing a native desktop toolkit does not become a route around the memory-safe-language preference.
  • CHANGELOG.md entry prepended; .md companion regenerated via texi2any --docbook | pandoc -f docbook -t gfm

Verification

  • makeinfo --no-split The_Steelbore_Standard.texizero errors, zero warnings
  • reuse lint → compliant (8/8 files)
  • python3 .github/validate-configs.py → 3 config files, 0 failed

Companion change

The skill side landed in Construct at the same version: 094c806spacecraft-standard-constitution/SKILL.md (masthead, frontmatter description at 976/1000, §13 body, §16 bullet, cross-reference table) and references/CHANGELOG.md, alongside the two new spacecraft-gtk-guidelines / spacecraft-qt-guidelines skills that implement this section.

🤖 Generated with Claude Code

§13 required Material Design as "the required component system for all
graphical applications" — a rule written when the graphical surface in scope
was Flutter and web. It has been unsatisfiable for native desktop since the
day it was written: GTK 4 ships Adwaita and the GNOME HIG, Qt 6 ships Fusion
and the KDE HIG, and neither has a Material component set to theme. A GTK or
Qt application could not pass the §16 audit gate no matter how it was built.

Rewritten around the requirement that carries the intent: every graphical
application declares exactly one component system in its README.md and follows
it, with the system chosen by platform — Material Design for Flutter, web,
mobile, cross-platform, and undeclared custom-drawn UI; GNOME HIG via
libadwaita for GTK 4; KDE HIG via Qt Quick Controls/Fusion for Qt 6.

Material remains the default wherever the platform supplies no system, so
nothing compliant under v1.41 becomes non-compliant — the clause is narrowed,
never widened. Unchanged: §11 token binding is unconditional, WCAG 2.2 AA
remains the contrast floor, and §18 still governs where the two overlap.

- @settitle, @set VERSION, @set UPDATED bumped to 1.42 / 2026-08-05
- §16 checklist bullet rewritten to the declare-and-follow form
- Skill Cross-References gains spacecraft-gtk-guidelines and
  spacecraft-qt-guidelines rows; both are Rust-first under §3.1, so a native
  desktop toolkit is not a route around the memory-safe-language preference
- CHANGELOG.md entry prepended; .md companion regenerated via
  texi2any --docbook | pandoc -f docbook -t gfm

makeinfo --no-split: zero errors, zero warnings. reuse lint and
validate-configs pass.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@UnbreakableMJ
UnbreakableMJ merged commit a6caced into main Aug 5, 2026
1 check passed
@UnbreakableMJ
UnbreakableMJ deleted the standard-v1.42-design-systems branch August 5, 2026 08:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant