CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

swift-formatstyle

Formats and parses locale-aware numbers, decimals, currencies, percentages, dates, durations, measurements, names, lists, byte counts, and URLs with Foundation FormatStyle and ParseableFormatStyle. Use when replacing legacy Formatter subclasses, designing reusable format APIs, using SwiftUI Text(_:format:), correcting availability, or testing user-facing formatted output across locales.

Quality

95%

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

The canonical home for this skill is dpearson2699/swift-ios-skills

SKILL.md
Quality
Evals
Security

Quality

Content

100%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.

An exemplary skill body: lean and prescriptive with no filler, fully executable code examples, a five-step workflow with an explicit validation step, fix-and-rerun feedback loop, a review checklist, and a single well-signaled one-level-deep reference file. No dimension showed anchor-level weakness.

DimensionReasoningScore

Conciseness

The body is lean: dense quick-reference and mistake/fix tables, three short code blocks, and prescriptive constraints ("Pass an ISO 4217 code; never hardcode a symbol"). It never explains concepts Claude already knows (no primer on what FormatStyle or SwiftUI is), and the iOS 15/16/18 availability gating is core content placed in a dedicated Selection and Availability section, so every token earns its place — matching anchor 5.

5 / 5

Actionability

Guidance is fully executable: copy-paste-ready Swift for parsing round trips ("try Decimal(\"$3,500.63\", format: style)"), SwiftUI ("Text(price, format: .currency(code: currencyCode))"), and a complete custom FormatStyle implementation, plus per-value-type style choices and mistake-to-fix pairs covering the common cases. This matches anchor 5 rather than anchor 4, which allows minor gaps; none are evident.

5 / 5

Workflow Clarity

The Workflow is a clear five-step sequence with an explicit validation check ("Render the exact UI with representative locales such as en_US, de_DE, ar_SA, and ja_JP... Check separators, numbering systems, calendars...") and a feedback loop ("If output or parsing fails, fix the style or surrounding copy, restore the input fixture, and rerun the same locale matrix"), plus a Review Checklist section — matching anchor 5 (explicit validation, error-recovery loops, checklists). The destructive/batch cap does not apply since this is display formatting, and validation is present regardless.

5 / 5

Progressive Disclosure

The body is a concise overview, and the single bundle file references/formatstyle-recipes.md (verified to exist, one level deep, no nested references) is clearly signaled twice with a load condition: "Load [FormatStyle Recipes](references/formatstyle-recipes.md) when implementation needs concrete modifiers...". Content is appropriately split with easy navigation — matching anchor 5.

5 / 5

Total

20

/

20

Passed

Description

88%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: it names concrete capabilities comprehensively and provides an explicit, multi-trigger "Use when" clause. The only weaknesses are a few missing natural trigger synonyms (NumberFormatter, DateFormatter, .formatted(), localized) and minor overlap risk with a sibling localization skill on the locale-testing trigger.

Suggestions

Name the concrete legacy classes as trigger synonyms — e.g. "replacing NumberFormatter, DateFormatter, or other Formatter subclasses" — since users far more often say those class names than "legacy Formatter subclasses".

Add ".formatted()" and "localized/localization-aware output" as explicit trigger terms to catch the phrasings users naturally use when asking about formatted output.

Sharpen the boundary against the localization skill: state that String Catalogs, translations, and RTL layout are out of scope (or route them explicitly), so the "testing across locales" trigger does not fire for pure localization requests.

DimensionReasoningScore

Specificity

"Formats and parses locale-aware numbers, decimals, currencies, percentages, dates, durations, measurements, names, lists, byte counts, and URLs with Foundation FormatStyle and ParseableFormatStyle" lists multiple specific concrete actions (formats and parses) with comprehensive coverage of value types and the exact APIs used. It clearly matches the anchor-5 example structure (multiple specific actions, comprehensive coverage) rather than anchor 4, which requires minor gaps in coverage; none are apparent.

5 / 5

Completeness

It clearly answers both questions: what ("Formats and parses locale-aware numbers, decimals, currencies... with Foundation FormatStyle and ParseableFormatStyle") and when ("Use when replacing legacy Formatter subclasses, designing reusable format APIs, using SwiftUI Text(_:format:), correcting availability, or testing user-facing formatted output across locales"). The explicit "Use when..." clause with five concrete trigger phrases matches the anchor-5 example exactly; anchor 4 would require a less explicit 'when', which is not the case.

5 / 5

Trigger Term Quality

The description includes good natural triggers users would say: "legacy Formatter subclasses", "SwiftUI Text(_:format:)", "currencies", "dates", "formatted output across locales". However, common synonyms are missing — users typically say "NumberFormatter", "DateFormatter", ".formatted()", or "localized" rather than the generic "legacy Formatter subclasses", so it fits anchor 4 ("good keyword coverage; a few natural terms missing") rather than anchor 5's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

The niche is well-anchored by "Foundation FormatStyle and ParseableFormatStyle" with distinct triggers (legacy Formatter replacement, SwiftUI Text(_:format:)), but "testing user-facing formatted output across locales" invites minor overlap with a localization/i18n skill — indeed the skill body routes String Catalogs and RTL layout to a separate ios-localization skill. This fits anchor 4 ("mostly distinct; minor overlap risk with closely related skills") better than anchor 5's "minimal conflict risk".

4 / 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

thienqo/ios-skills

Path

skills/swift-formatstyle/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.