Content
86%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
A high-quality reference skill: lean and version-specific content, executable examples with only minor symbol-undefined gaps, explicit validate-and-retry loops for destructive operations, and clean one-level progressive disclosure. The main residual improvements are making the illustrative migration/predicate snippets self-consistent with the shown model.
Suggestions
Define SchemaV3 (or note that migrateV2toV3 is illustrative and lives inside a SchemaMigrationPlan enum) so the custom-migration snippet is self-contained and consistent with the lightweight example above it.
Add the tags relationship (e.g., a to-many Tag model) to the Trip example, or annotate the #Predicate collection example as using a relationship defined in references/swiftdata-queries.md.
For the CloudKit schema rollout steps, add one explicit verification command/checkpoint (e.g., what to confirm in CloudKit Dashboard before promotion) to close the remaining implicit validation gaps.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Prose is terse and every section is SwiftData-specific: version-gated facts Claude cannot reliably know (iOS 18 unidirectional relationships, iOS 26 model inheritance, default deleteRule .nullify, ModelContext non-Sendable, @ModelActor save requirements). Nothing explains Swift/SwiftUI basics, so it matches anchor 5 ('every token earns its place') rather than anchor 4, which would require trimmable over-explanation. | 5 / 5 |
Actionability | Nearly all code is executable and covers the common cases (model definition, container setup, CRUD, @Query variants, migration plan, @ModelActor), matching anchor 5 in spirit. But minor gaps exist: the custom-migration snippet references an undefined SchemaV3 and declares 'static let migrateV2toV3' outside any enum, and the #Predicate example uses a 'tags' relationship absent from the Trip model shown earlier. Anchor 4 ('minor gaps') is the best fit. | 4 / 5 |
Workflow Clarity | Destructive/batch operations include explicit feedback loops — 'first run the exact predicate or version hop against a disposable copy and record affected identifiers/counts... On failure, fix the predicate/schema and restore a pristine fixture before retry', plus 'migrate a fresh copy of each old store and assert post-migration data before release' and a review checklist — so the batch-operation cap does not apply. Still, the skill is organized topically rather than as a sequenced workflow, and some processes (e.g., CloudKit schema rollout) verify only implicitly, fitting anchor 4 rather than 5. | 4 / 5 |
Progressive Disclosure | The body keeps core patterns inline while bulk detail is split across five real, one-level-deep reference files (swiftdata-advanced, swiftdata-queries, core-data-coexistence, predicate-pitfalls, indexing), each verified to exist and linked with a descriptive label in the References section. This matches anchor 5 ('well-signaled one-level-deep references; content appropriately split'); it is not anchor 4, since no bulk content that belongs in a reference is inlined. | 5 / 5 |
Total | 18 / 20 Passed |