Skip to content

feat(skill): design-system adoption skill for whitelabel forks#327

Merged
91jaeminjo merged 2 commits into
mainfrom
feat/design-system-adoption-skill
Jun 9, 2026
Merged

feat(skill): design-system adoption skill for whitelabel forks#327
91jaeminjo merged 2 commits into
mainfrom
feat/design-system-adoption-skill

Conversation

@WilliamKarolDiCioccio

Copy link
Copy Markdown
Collaborator

Summary

Adds a Claude Code skill that helps a whitelabel fork (often carrying its
own hand-rolled UI) adopt soliplex_design and the SoliplexBranding API
introduced in #261. It turns the design-system adoption knowledge — the hard
rules, the accessor cheat sheet, the branding wiring, and the traps we hit
during the first-party sweeps — into a guided, repeatable workflow.

Lives at .claude/skills/adopt-design-system/:

  • SKILL.md — the workflow: audit → migrate (found→replacement table) →
    wire SoliplexBranding (light/dark accents, logo, app name via standard())
    → verify against the adoption checklist. Includes a gotchas section
    distilled from real sweeps (e.g. SoliplexTheme.of crashing under bare
    ThemeData, icon+label RenderFlex overflow, the missing s5 spacing step,
    withOpacity deprecation under the zero-warning gate).
  • audit.sh — a grep-based scanner for hard-rule violations (hex
    literals, Material status colors, raw radii, fontSize:, font-family
    strings, Material widgets with a SoliplexX equivalent), plus an advisory
    spacing/breakpoint pass. Uses plain grep so it needs no extra tooling on a
    fork machine, excludes the design package itself, and exits non-zero on a
    hit so it doubles as a CI gate.

Why a skill

A fork can't just be handed the README — adoption is a multi-step sweep with
ordering and verification that's easy to get wrong. Encoding it as a skill
means any fork running Claude Code gets the same systematic migration, and the
hard-won edge cases don't have to be rediscovered.

Notes for reviewers

  • Pure docs/tooling — no app or library code changes; nothing in lib/ or the
    packages is touched.
  • Content cross-checked against packages/soliplex_design/README.md, the root
    CLAUDE.md design-system rules, and the branding API from feat(branding): whitelabel branding API + light/dark theming #261; the skill
    abbreviates and links rather than duplicating the canonical docs.

Test plan

  • audit.sh lib runs, reports candidates, exits non-zero on findings.
  • bash -n audit.sh — syntax clean.
  • markdownlint-cli2 on SKILL.md — 0 errors.

🤖 Generated with Claude Code

Adds a Claude Code skill that guides a downstream fork from a hand-rolled
UI to soliplex_design: a grep-based audit scanner for hard-rule violations,
a found-to-replacement mapping table, the SoliplexBranding wiring point
(per PR #261), a gotchas list distilled from the first-party adoption
sweeps, and the verify/checklist gate.

The scanner uses plain grep (no ripgrep dependency) so it runs on any fork
machine and doubles as a CI gate via its exit status. It excludes the
design package itself, where literals are legal.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Comment thread .claude/skills/adopt-design-system/audit.sh Outdated
@91jaeminjo 91jaeminjo force-pushed the feat/design-system-adoption-skill branch from 5971628 to a735f6b Compare June 8, 2026 20:54
RULES=(
"Hex color literal (use colorScheme/SoliplexTheme tokens)|Color\(0x|Color\.fromARGB|Color\.fromRGBO"
"Material status color (use SymbolicColors: danger/success/warning/info)|Colors\.(red|green|orange|blue|yellow)"
"Raw border radius (use SoliplexTheme.of(context).radii.*)|BorderRadius\.circular\("

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be:
"Raw border radius (use SoliplexTheme.of(context).radii.*)|BorderRadius\.circular\( *[0-9]"

to match only on hard coded numerics - otherwise, it matches on all cases including the correct use cases.

…ming

Match BorderRadius.circular( only when a numeric literal follows, so the audit
stops flagging the prescribed circular(radii.x) token form and reports only
hardcoded radii.

Reframe the scanner as a review tool rather than a pass/fail CI gate: sanctioned
residuals (e.g. a raw-hex brand accent) keep the exit non-zero on a clean repo.
Lead the skill description with its triggering conditions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@WilliamKarolDiCioccio WilliamKarolDiCioccio left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catches. Green light from me. Merge on your call.

@91jaeminjo 91jaeminjo merged commit e024b52 into main Jun 9, 2026
6 checks passed
@91jaeminjo 91jaeminjo deleted the feat/design-system-adoption-skill branch June 9, 2026 13:48
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.

2 participants