Swiftdata Code Review

v1.2.1

Reviews SwiftData code for model design, queries, concurrency, and migrations. Use when reviewing .swift files with import SwiftData, @Model, @Query, @ModelA...

0· 168·1 current·1 all-time
byKevin Anderson@anderskev

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for anderskev/swiftdata-code-review.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Swiftdata Code Review" (anderskev/swiftdata-code-review) from ClawHub.
Skill page: https://clawhub.ai/anderskev/swiftdata-code-review
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install swiftdata-code-review

ClawHub CLI

Package manager switcher

npx clawhub@latest install swiftdata-code-review
Security Scan
VirusTotalVirusTotal
Pending
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match the included references and the SKILL.md review checklist. No binaries, env vars, or unrelated config paths are requested — everything requested is appropriate for a static code-review helper for SwiftData code.
Instruction Scope
SKILL.md confines work to .swift files that use SwiftData surface markers and requires citing findings with [FILE:LINE]. References are local files bundled with the skill. There are no instructions to read system files, fetch remote endpoints, or access secrets.
Install Mechanism
No install spec and no code files to execute — instruction-only skill. This minimizes on-disk/remote install risk.
Credentials
Skill declares no required environment variables, credentials, or config paths. The review logic uses only the bundled reference docs and the input code, which is proportionate to its purpose.
Persistence & Privilege
always:false and default model invocation are used (normal for skills). The skill does not request persistent system privileges or modify other skills or global configs.
Assessment
This skill appears coherent: it bundles detailed SwiftData review guidance and instructs the agent to analyze only .swift files and cite findings. Because it is instruction-only and requests no credentials or installs, the technical risk is low. Two practical cautions: (1) provenance is unknown (no homepage / unknown owner), so if you care about source-trust, prefer skills from known publishers; (2) when using the skill, avoid pasting secrets or production credentials into the code snippets you ask it to review — the skill will produce findings based on whatever you provide. If you need higher assurance, request the publisher's identity or test the skill on non-sensitive sample code first.

Like a lobster shell, security has layers — review code before you run it.

latestvk9704xkn7yrbczy4wj28h7eqtn85b6ty
168downloads
0stars
2versions
Updated 6d ago
v1.2.1
MIT-0

SwiftData Code Review

Quick Reference

Issue TypeReference
@Model, @Attribute, @Relationship, delete rulesreferences/model-design.md
@Query, #Predicate, FetchDescriptor, #Indexreferences/queries.md
@ModelActor, ModelContext, background operationsreferences/concurrency.md
VersionedSchema, MigrationStage, lightweight/customreferences/migrations.md

Hard gates (before reporting findings)

Run in order; do not assert an issue until the gate for that issue passes.

  1. Scope — pass when: You have the target .swift path(s) and confirmed SwiftData surface in scope (e.g. import SwiftData, @Model, @Query, @ModelActor, VersionedSchema, or migration types). If none apply, stop or narrow scope with one sentence.
  2. Reference — pass when: For each checklist area you evaluate (models, queries, concurrency, migrations), you opened the matching references/*.md from the Quick Reference table or wrote N/A: no <area> in this review with a one-line reason.
  3. Evidence — pass when: Every finding uses the [FILE:LINE] ISSUE_TITLE header (line range allowed) from the file you read; no finding without a cite.
  4. Report — pass when: Findings list cites first (or inline) using [FILE:LINE] ISSUE_TITLE, then severity or checklist grouping—no uncited assertions.

Review Checklist

  • Models marked final (subclassing crashes)
  • @Relationship decorator on ONE side only (not both)
  • Delete rules explicitly set (not relying on default .nullify)
  • Relationships initialized to empty arrays, not default objects
  • Batch operations used for bulk inserts (append(contentsOf:))
  • @Query not loading thousands of items on main thread
  • External values in predicates captured in local variables
  • Scalar comparisons in predicates (not object references)
  • @ModelActor used for background operations
  • PersistentIdentifier/DTOs used to pass data between actors
  • VersionedSchema defined for each shipped version
  • MigrationPlan passed to ModelContainer

When to Load References

  • Reviewing @Model or relationships -> model-design.md
  • Reviewing @Query or #Predicate -> queries.md
  • Reviewing @ModelActor or background work -> concurrency.md
  • Reviewing schema changes or migrations -> migrations.md

Review Questions

  1. Could this relationship assignment cause NULL foreign keys?
  2. Is @Relationship on both sides creating circular references?
  3. Could this @Query block the main thread with large datasets?
  4. Are model objects being passed between actors unsafely?
  5. Would schema changes require a migration plan?

Comments

Loading comments...