From swiftui
Enforces Clean Architecture in SwiftUI/SwiftData apps: layers Presentation→Domain←Data, flags violations, guides DI and refactoring.
npx claudepluginhub fradser/dotclaude --plugin swiftuiswiftui-review/references/# Clean Architecture Clean Architecture separates code into layers: Presentation → Domain ← Data. Dependencies point inward. ## Presentation Layer - ViewModels must use `@Observable` (not `ObservableObject`) and be marked `@MainActor`. - Views must be purely declarative – no business logic, no direct API calls, no database access. - ViewModels must call Use Cases from Domain, never directly access repositories or network clients. - Use `@State` for view-local UI state only (sheet presentation, focus), not domain data. - Inject dependencies through initializers, never use singletons like...
/create-viewGenerates a SwiftUI view file with MVVM architecture, property wrappers, layouts, navigation elements, states, accessibility, dark mode support, previews, and documentation.
/auditAnalyzes iOS/Swift projects to suggest relevant audits or runs specified ones (e.g., memory, concurrency, accessibility, SwiftUI performance, security).
/audit-dddAudits DDD architecture in PHP projects at <path>, analyzing layer separation, domain model richness, violations; provides pattern recommendations with generation skill links. Supports quick/standard/deep levels.
Share bugs, ideas, or general feedback.
Clean Architecture separates code into layers: Presentation → Domain ← Data. Dependencies point inward.
@Observable (not ObservableObject) and be marked @MainActor.@State for view-local UI state only (sheet presentation, focus), not domain data.NetworkManager.shared.private(set) state – views read, ViewModels write.import SwiftUI, no import SwiftData).Sendable when passed across concurrency boundaries.Codable to domain entities – use separate DTOs in Data layer.GetProductsUseCase, AddToCartUseCase.@Model classes as Sendable – this causes runtime crashes.ModelContext operations must be on @MainActor.@MainActor.Flag these architectural violations:
@Model classes marked as Sendable.shared) used for testable dependenciesCodable conformance@main struct).@Environment to pass dependencies down view hierarchy.