
ios-coredata-pattern
by co-labs-co
Central skills repository for ContextHarness - curated agent skills and workflows
SKILL.md
name: ios-coredata-pattern version: 0.1.0 author: cmtzco description: iOS Core Data persistence and data modeling guide. When to use: when implementing data storage in iOS apps, creating new Core Data entities, setting up persistent storage, working with SQLite databases, or managing data relationships. What problems it solves: provides robust data persistence with automatic schema migrations, manages complex object relationships, enables efficient querying and filtering, and handles background threading for data operations.
iOS Core Data Pattern
Overview
Core Data is Apple's framework for managing the model layer of an iOS application. This skill guides you through setting up Core Data stacks, defining entities and relationships, creating NSManagedObject subclasses, and performing common CRUD operations.
Identified Patterns
The following patterns were identified in this codebase that this skill addresses:
Pattern 1: Persistent Container Setup
- Location:
DadBrain/DadBrain/Models/PersistenceController.swift - Description: NSPersistentContainer initialization with preview environment support
- Frequency: 1 shared controller used throughout app
Pattern 2: Entity Extensions
- Location:
DadBrain/DadBrain/Models/Memory+CoreDataClass.swift - Description: NSManagedObject extensions with computed properties and convenience methods
- Frequency: 2 entity extensions (Memory, Tag)
Pattern 3: Data Model Definition
- Location:
DadBrain.xcdatamodeld - Description: Core Data model with entities, attributes, and relationships
- Frequency: 3 models defined (Memory, Tag, PersistenceController)
TODO: Implementation
This skeleton skill needs Phase 2 refinement. Areas to develop:
Workflow Instructions
- Create or modify .xcdatamodeld file in Xcode
- Define entities, attributes, and relationships
- Generate NSManagedObject subclasses
- Set up NSPersistentContainer
- Create convenience methods and computed properties
Best Practices
- Background context vs main context usage
- Relationship management (delete rules)
- Lightweight migration strategies
- Performance optimization (batching, fetching)
Common Pitfalls
- Not performing saves on proper thread
- Forgetting to handle migration when model changes
- Memory leaks from retaining managed objects
- Over-fetching or missing fetch predicates
Suggested Resources
Based on codebase analysis, consider adding:
Scripts (scripts/)
core-data-migration-generator.swift- Generates migration mapping modelsentity-extension-generator.swift- Creates boilerplate NSManagedObject extensions
References (references/)
core-data-best-practices.md- Apple's Core Data programming guidemigration-strategies.md- Handling data model changesfetch-optimization.md- Performance tips for queries
Assets (assets/)
entity-templates/- Common entity patterns (timestamped, soft-delete, etc.)migration-templates/- Migration code templates
Evidence from Codebase
| File | Pattern | Relevance |
|---|---|---|
DadBrain/DadBrain/Models/PersistenceController.swift | NSPersistentContainer setup | Complete stack setup with preview support |
DadBrain/DadBrain/Models/Memory+CoreDataClass.swift | NSManagedObject extension | Computed properties and category enum |
DadBrain/DadBrain/Models/Tag+CoreDataClass.swift | Entity relationship management | Tag-to-Many relationship |
DadBrain.xcdatamodeld | Data model definition | Entity and relationship schemas |
Refinement Priority
Score: 6.8/10 Priority: Medium
Refinement Tasks
- Research Core Data lifecycle and context management
- Create entity-extension-generator script
- Document relationship types and delete rules
- Add examples for common query patterns
- Create migration guide for model changes
Skeleton generated by ContextHarness /baseline Run Phase 2 skill refinement to complete implementation
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です