composable-architectur…
Use when building features with TCA (The Composable Architecture), structuring reducers,…
Use when writing raw SQL with GRDB, complex joins across 4+ tables, window functions, ValueObservation for reactive queries, or dropping down from SQLiteData for performance. Direct SQLite access for iOS/macOS with type-safe queries and migrations.
$ npx -y skills add johnrogers/claude-swift-engineering --skill grdb --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/grdbContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when writing raw SQL with GRDB, complex joins across 4+ tables, window functions, ValueObservation for reactive queries, or dropping down from SQLiteData for performance. Direct SQLite access for iOS/macOS with type-safe queries and migrations.
name: grdb description: Use when writing raw SQL with GRDB, complex joins across 4+ tables, window functions, ValueObservation for reactive queries, or dropping down from SQLiteData for performance. Direct SQLite access for iOS/macOS with type-safe queries and migrations.
Direct SQLite access using [GRDB.swift](https://github.com/groue/GRDB.swift) - type-safe Swift wrapper with full SQLite power when you need it.
**ALWAYS load reference files if there is even a small chance the content may be required.** It's better to have the context than to miss a pattern or make a mistake.
| Reference | Load When | |-----------|-----------| | **[Getting Started](references/getting-started.md)** | Setting up DatabaseQueue or DatabasePool | | **[Queries](references/queries.md)** | Writing raw SQL, Record types, type-safe queries | | **[Value Observation](references/value-observation.md)** | Reactive queries, SwiftUI integration | | **[Migrations](references/migrations.md)** | DatabaseMigrator, schema evolution | | **[Performance](references/performance.md)** | EXPLAIN QUERY PLAN, indexing, profiling |
| Scenario | Use | |----------|-----| | Type-safe @Table models | SQLiteData | | CloudKit sync needed | SQLiteData | | Complex joins (4+ tables) | GRDB | | Window functions (ROW_NUMBER, RANK) | GRDB | | Performance-critical raw SQL | GRDB | | Reactive queries (ValueObservation) | GRDB |
1. Choose DatabaseQueue (single connection) or DatabasePool (concurrent reads) 2. Define migrations with DatabaseMigrator 3. Create Record types (Codable, FetchableRecord, PersistableRecord) 4. Write queries with raw SQL or QueryInterface 5. Use ValueObservation for reactive updates
1. **Performance assumptions without EXPLAIN PLAN** — Assuming your query is fast or slow without checking `EXPLAIN QUERY PLAN` is guessing. Always profile queries with EXPLAIN before optimizing.
2. **Missing indexes on WHERE clauses** — Queries filtering on non-indexed columns scan the entire table. Index any column used in WHERE, JOIN, or ORDER BY clauses for large tables.
3. **Improper migration ordering** — Running migrations out of order or skipping intermediate versions breaks schema consistency. Always apply migrations sequentially; never jump versions.
4. **Record conformance shortcuts** — Not conforming Record types to `PersistableRecord` or `FetchableRecord` correctly leads to silent data loss or deserialization failures. Always implement all required protocols correctly.
5. **ValueObservation without proper cleanup** — Forgetting to cancel ValueObservation when views disappear causes memory leaks and stale data subscriptions. Store the cancellable and clean up in deinit.
Claude Code plugin marketplace for modern Swift/SwiftUI development A specialized AI toolkit for building professional iOS/macOS features with modern Swift 6.2, TCA (The Composable Architecture), and SwiftUI.
Use when building features with TCA (The Composable Architecture), structuring reducers,…
Use when implementing on-device AI with Apple's Foundation Models framework (iOS 26+),…
Use when encountering unfamiliar import statements, exploring dependency APIs, or when user…
Use when adding haptic feedback for user confirmations (button presses, toggles, purchases),…
Use when implementing iOS 26 features (Liquid Glass, new SwiftUI APIs, WebView, Chart3D),…
Use when designing iOS interfaces, implementing accessibility (VoiceOver, Dynamic Type),…