CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

swiftdata

Implement or review SwiftData models, containers, queries, relationships, migrations, CloudKit configuration, and background persistence work. Use for SwiftData-backed storage; route legacy Core Data-only work to core-data.

Quality

90%

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

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

Excellent body content: a concise, well-sequenced overview with explicit verification steps, a review checklist, and a clean one-level-deep reference structure where every cited file exists and is signaled with when-to-read guidance. The only weakness is actionability — the body offers strong API-level decision rules but no executable examples, leaving minor gaps for tasks like setting up a @ModelActor or testing a migration.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence — it names @ModelActor, PersistentIdentifier, FetchDescriptor, and autosave without explanation, and every line is a rule, decision, or pointer rather than padding. The Contents list is navigation structure, not over-explanation, so it does not warrant the minor-trimming penalty of a 4.

5 / 5

Actionability

Guidance is concrete and API-specific ("Use `@Query` when a SwiftUI view owns a live query... Use `FetchDescriptor` for imperative, reusable, paginated, or actor-owned fetches"; "pass stable identifiers or `PersistentIdentifier` values across isolation boundaries rather than live model objects"), but the body contains no executable snippets (e.g., a minimal @ModelActor or migration setup) and verification advice like "test it with a copy of representative data" gives no method. Not 3: the decision rules name exact APIs and outcomes; not 5: guidance is decision-oriented rather than copy-paste ready, which is acceptable for an instruction-only skill but leaves minor gaps.

4 / 5

Workflow Clarity

The five-step workflow is clearly sequenced with a conditional migration step ("If the schema changes, define a migration and test it with a copy of representative data"), explicit verification ("Build and verify create, fetch, update, delete, relaunch persistence, failure handling"), failure/rollback expectations in the migration section, and a 10-item review checklist. The destructive-operation cap does not apply because validation steps are explicitly present.

5 / 5

Progressive Disclosure

The body is a lean overview and all seven referenced files (references/custom-stores-history-and-cloudkit.md, performance-predicates-and-modeling.md, containers-undo-previews-and-errors.md, indexing.md, swiftdata-queries.md, predicate-pitfalls.md, core-data-coexistence.md) exist in the bundle, are one level deep, and are clearly signaled with when-to-read guidance (e.g., "Read [Predicate Pitfalls](references/predicate-pitfalls.md) before debugging optional relationships, captured values, enums, or unsupported expressions") plus a consolidated References section.

5 / 5

Total

19

/

20

Passed

Description

83%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 states a clear, comprehensive "what" and an explicit "Use for" trigger with routing that sharply distinguishes it from the sibling core-data skill. The main gaps are in trigger-term breadth — natural API names users type when debugging SwiftData (@Model, @Query, ModelContainer, predicate) are absent from the description even though they appear in the body.

Suggestions

Add a few natural API-name triggers users actually say to the when-clause, e.g. "Use for SwiftData-backed storage, @Model types, ModelContainer/@Query setup, or predicate debugging".

Enumerate one or two concrete trigger phrases mirroring the what-list, e.g. "when the user mentions SwiftData migrations, CloudKit sync, or persistence".

DimensionReasoningScore

Specificity

"Implement or review SwiftData models, containers, queries, relationships, migrations, CloudKit configuration, and background persistence work" lists multiple concrete capabilities with comprehensive coverage of the SwiftData domain, matching the anchor for multiple specific concrete actions. Not 4: there are no meaningful gaps in domain coverage.

5 / 5

Completeness

Both parts are present: a clear "what" ("Implement or review SwiftData models, containers, queries...") and an explicit trigger clause ("Use for SwiftData-backed storage") plus routing guidance, so the missing-when cap does not apply. Not 5: the when-clause offers a single trigger condition rather than enumerated concrete trigger phrases like "when the user mentions...".

4 / 5

Trigger Term Quality

Good natural keyword coverage ("SwiftData", "migrations", "CloudKit", "persistence", "Core Data") that users would say, but it omits common API-name triggers like "@Model", "ModelContainer", "@Query", "FetchDescriptor", or "predicate". Not 5: lacks synonyms and API-name variations beyond the framework name itself.

4 / 5

Distinctiveness Conflict Risk

"Use for SwiftData-backed storage; route legacy Core Data-only work to core-data" claims a clear framework-specific niche and explicitly disambiguates against the nearest competing skill, giving minimal conflict risk. Not 4: it does not merely reduce overlap, it actively routes the closest competitor away.

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

thienqo/ios-skills

Path

skills/swiftdata/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.