sraldon24/claudecodeconfigs/swift-actor-persistence
Trust tier 3
- community
Source check pending
Checking that the SKILL.md file is still in the repository.
Thread-safe data persistence in Swift using actors — in-memory cache with file-backed storage, eliminating data races by design.
Install
npx vskill@latest install sraldon24/claudecodeconfigs/swift-actor-persistenceSKILL.md
The same SKILL.md was published earlier as affaan-m/everything-claude-code/swift-actor-persistence.
Swift Actors for Thread-Safe Persistence
Patterns for building thread-safe data persistence layers using Swift actors. Combines in-memory caching with file-backed storage, leveraging the actor model to eliminate data races at compile time.
When to Activate
- Building a data persistence layer in Swift 5.5+
- Need thread-safe access to shared mutable state
- Want to eliminate manual synchronization (locks, DispatchQueues)
- Building offline-first apps with local storage
Core Pattern
Actor-Based Repository
The actor model guarantees serialized access — no data races, enforced by the compiler.
Usage
All calls are automatically async due to actor isolation:
Combining with @Observable ViewModel
Key Design Decisions
| Decision | Rationale | |
|---|---|---|
| Actor (not class + lock) | Compiler-enforced thread safety, no manual synchronization | |
| In-memory cache + file persistence | Fast reads from cache, durable writes to disk | |
| Synchronous init loading | Avoids async initialization complexity | |
| Dictionary keyed by ID | O(1) lookups by identifier | |
Generic over Codable & Identifiable | Reusable across any model type | |
Atomic file writes (.atomic) | Prevents partial writes on crash |
Best Practices
- Use `Sendable` types for all data crossing actor boundaries
- Keep the actor's public API minimal — only expose domain operations, not persistence details
- Use `.atomic` writes to prevent data corruption if the app crashes mid-write
- Load synchronously in `init` — async initializers add complexity with minimal benefit for local files
- Combine with `@Observable` ViewModels for reactive UI updates
Anti-Patterns to Avoid
- Using
DispatchQueueorNSLockinstead of actors for new Swift concurrency code - Exposing the internal cache dictionary to external callers
- Making the file URL configurable without validation
- Forgetting that all actor method calls are
await— callers must handle async context - Using
nonisolatedto bypass actor isolation (defeats the purpose)
When to Use
- Local data storage in iOS/macOS apps (user data, settings, cached content)
- Offline-first architectures that sync to a server later
- Any shared mutable state that multiple parts of the app access concurrently
- Replacing legacy
DispatchQueue-based thread safety with modern Swift concurrency
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/_archived/everything-claude-code/swift-actor-persistence/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/sraldon24/claudecodeconfigs/swift-actor-persistence)