Scaffold modern iOS apps and features with Clean Architecture, MVVM, SwiftUI, GRDB, Swift Concurrency, optional Apple Foundation Models integration, and modular local packages. Use when creating a new iOS app, adding a feature/service/model/migration/design system component/package, or enforcing Domain/Data/Presentation separation with feature-local ownership by default and shared modules only for true cross-domain concerns.
Resources
1Install
npx skillscat add alesanabriav7/ios-architect-skill/ios-architect Install via the SkillsCat registry.
SKILL.md
iOS Architect
Keep token usage low by loading only the references needed for the current request.
Load Strategy
- Always read
references/intake.mdfirst. - Read only the references relevant to the build type:
New app from scratch
references/new-app-scaffold.mdreferences/feature-scaffold.mdreferences/database-and-migrations.mdreferences/design-system.mdreferences/testing-concurrency-di.mdreferences/privacy-and-compliance.md- Optional:
references/networking.md— when the app has API-backed features - Optional:
references/navigation.md— when deep linking or iPad/multi-column is required - Optional:
references/foundation-models.md— for on-device AI features - Optional:
references/liquid-glass.md— when iOS 26+ Liquid Glass styling is requested
New feature
references/feature-scaffold.md- If persistence changes:
references/database-and-migrations.md - If custom UI components:
references/design-system.md - If tests/concurrency concerns:
references/testing-concurrency-di.md - If API-backed:
references/networking.md - If navigation/deep linking changes:
references/navigation.md - If on-device AI generation/streaming:
references/foundation-models.md - If Liquid Glass styling:
references/liquid-glass.md
New cross-domain shared service or model
references/testing-concurrency-di.md- If DB-backed:
references/database-and-migrations.md - If API-backed:
references/networking.md - If Apple Foundation Models:
references/foundation-models.md
New design system component
references/design-system.md- If Liquid Glass:
references/liquid-glass.md
New database migration
references/database-and-migrations.md
New local SPM package
references/new-app-scaffold.mdreferences/testing-concurrency-di.md
Do not bulk-load all references when the task is narrow.
Shared Placement Rule
- Default all model/repository/view-model ownership to the feature that uses it.
- Use
Sharedonly for true cross-domain capabilities consumed by at least two domains/features (e.g. Settings). - Keep shared capabilities domain-scoped (
Shared/Settings/...) with their own Domain/Data/Presentation split. - Never create catch-all buckets such as
Shared/ModelsorShared/Data.
Execution Contract
- Run intake first (build type, name, flow, fields, data source, integrations, test scope).
- Generate complete, compile-ready files with concrete names.
- Keep Clean Architecture boundaries strict:
- Domain — models and protocols only
- Data — repository implementations and records
- Presentation — SwiftUI views, view models, feature UI components
- Keep each layer in the owning feature by default; only promote to shared for proven cross-domain reuse.
- Use modern APIs (
@Observable,@MainActor, Swift Concurrency, Swift Testing).
If AI is included, enforce runtime availability checks and deterministic fallback. - Validate generated output:
- New Tuist app:
tuist generate+ one build - Feature/module changes: targeted build/tests
- New Tuist app:
- Report created files, validations run, and assumptions.