CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

swiftui-best-practices

USE THIS when migrating a CDS React Native component to native iOS, or when writing or reviewing SwiftUI in packages/cds-ios or apps/ios-gallery. Covers rewrite patterns (Style vs SwiftUI API vs CDS view), RN visual spec (not HIG look-alikes), HIG-styled control enforcement, tokens, gallery, and tests.

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

75%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A highly actionable, well-structured migration workflow with real call sites, a decision table, and exact test commands. Its weaknesses are redundancy (the wrap-don't-wrap rule is repeated four times) and a workflow whose validation step lacks an explicit failure-recovery loop.

Suggestions

Consolidate the anti-wrapper guidance into one section plus the Checklist — it currently appears in four places (the 'Do not' paragraph, 'Do not wrap styled HIG controls' with its table, 'Anti-patterns', and 'Checklist').

Add a short failure-recovery step after the test step, e.g. 'If ComponentStyleTests fail, fix token wiring in the pure mapping functions and re-run yarn nx run cds-ios:test'.

Move the per-pattern rationale (e.g. why a CDSButton swallows ButtonRole/toolbar placement) into the referenced 'CDS SwiftUI Best Practices' Linear doc and keep only the decision table and call sites inline.

DimensionReasoningScore

Conciseness

The body is dense and project-specific (no textbook SwiftUI explanations), but the anti-wrapper rule is stated four times (the "Do not" paragraph, the "Do not wrap styled HIG controls" section with its table, the Anti-patterns list, and the Checklist), and includes rhetorical padding like "that is 'the app is CDS', that is 'the app is covered in CTAs'". It could be meaningfully tightened, matching the 3 anchor; it is not a 4 because the duplication is more than minor trimming.

3 / 5

Actionability

Fully concrete guidance throughout: copy-ready Swift call sites (`.buttonStyle(.cds(.primary))`, `Text("Balance").cdsText(.title3)`), exact file paths (`packages/cds-ios/Sources/Components/<Name>.swift`, `Tests/CDSDesignSystemTests/ComponentStyleTests.swift`), and exact commands (`yarn nx run cds-ios:test`). The five-row pattern decision table makes classification mechanical. Matches the 5 anchor for executable, copy-paste-ready coverage.

5 / 5

Workflow Clarity

There is a coherent sequence (read AGENTS.md and Linear refs → classify the pattern → implement steps 1-8 → test/build) closed by a checklist, and a validation step exists ("yarn nx run cds-ios:test"). It is not a 5 because the end-to-end flow must be assembled from separate sections and there is no error-recovery loop (what to do when the test or token-lock fails), and not a 3 because checkpoints and the checklist are explicit.

4 / 5

Progressive Disclosure

No bundle files exist, so all content lives in SKILL.md with clear section headers, and every external pointer is clearly signaled and one level deep (Linear docs, `packages/cds-ios/AGENTS.md`, `packages/mobile/` sources). Good structure with minor gaps — e.g. the pattern-decision rationale could live in the referenced Linear doc — which matches the 4 anchor; a 5 would require the long-term reference material (RN→iOS map details) to be explicitly split out rather than deferred to external Linear docs.

4 / 5

Total

16

/

20

Passed

Description

87%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: explicit 'USE THIS when...' trigger, concrete actions, and tightly scoped triggers that distinguish it from generic SwiftUI/iOS skills. The only weakness is the compressed, slightly jargon-heavy tail of the coverage list.

DimensionReasoningScore

Specificity

"USE THIS when migrating a CDS React Native component to native iOS, or when writing or reviewing SwiftUI" names concrete actions, and "Covers rewrite patterns (Style vs SwiftUI API vs CDS view), RN visual spec..., tokens, gallery, and tests" lists several specific capabilities. It sits at 4 rather than 5 only because the tail items ("tokens, gallery, and tests") are telegraphic topic labels rather than fully stated concrete actions.

4 / 5

Completeness

The description explicitly answers "when" with a concrete trigger clause ("USE THIS when migrating... or when writing or reviewing SwiftUI in packages/cds-ios or apps/ios-gallery") and "what" with the enumerated coverage ("rewrite patterns... RN visual spec... HIG-styled control enforcement, tokens, gallery, and tests"). This matches the 5 anchor's pattern of both what and when with concrete trigger phrases; the 4 anchor would require a weaker or less explicit 'when'.

5 / 5

Trigger Term Quality

Natural trigger terms users would actually say are present: "migrating", "React Native", "native iOS", "SwiftUI", "writing or reviewing". It is not a 5 because common variations and synonyms are missing (e.g. ".swift", "Swift", "iOS app" on their own), though the scoping to specific packages reduces the need for them.

4 / 5

Distinctiveness Conflict Risk

It occupies a clear niche (CDS RN-to-SwiftUI migration) with triggers scoped to named codebases ("packages/cds-ios or apps/ios-gallery"), so it is unlikely to fire for a generic SwiftUI or non-CDS iOS skill. Minimal conflict risk, matching the 5 anchor.

5 / 5

Total

18

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

coinbase/cds

Path

.claude/skills/swiftui-best-practices/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.