← ClaudeAtlas

tca-swiftuilisted

Use for any question about The Composable Architecture (TCA) — defining reducers, managing state, handling navigation, writing tests, or working with dependencies. Essential when encountering TCA-specific types like @Reducer, @ObservableState, StackState, StackAction, @Presents, TestStore, @DependencyClient, Scope, or delegate actions. Also use when debugging TCA compiler errors, decomposing large reducers into child features, migrating from old TCA patterns (WithViewStore, Environment, IfLetStore), or implementing sheet/push navigation in TCA. Claude's training data contains outdated TCA patterns — invoke this skill whenever TCA code is involved to get correct modern (1.7+) patterns.
christim427-rgb/ios-agent-skills · ★ 1 · AI & Automation · score 77
Install: claude install-skill christim427-rgb/ios-agent-skills
> **Approach: Production-First Iterative Refactoring** — This skill is built for production enterprise codebases using The Composable Architecture. Architecture changes are delivered through iterative refactoring — small, focused PRs tracked in a `refactoring/` directory. AI tools consistently generate outdated TCA code (pre-1.4 patterns, WithViewStore, Environment, Combine Effects). Every rule here exists to prevent those mistakes. # TCA SwiftUI Architecture (iOS 16+, TCA 1.7+) Enterprise-grade skill for The Composable Architecture (point-free/swift-composable-architecture). Opinionated: prescribes `@Reducer` macro, `@ObservableState`, struct-of-closures dependencies, delegate actions for child-parent communication, and modern navigation via `@Presents`/`StackState`. TCA's API changed substantially across versions — AI tools trained on pre-1.7 code consistently generate `WithViewStore`, `IfLetStore`, `Environment`, and other removed patterns. This skill encodes the modern (1.7+) patterns validated against real enterprise codebases. > **If the project uses TCA <1.7**, consult `references/migration.md` for pre-macro patterns and incremental upgrade path. ## Architecture Layers ``` View Layer → SwiftUI Views. Direct store access, NO WithViewStore. Owns store via let/var. Uses @Bindable for $ bindings. Reducer Layer → @Reducer struct. State + Action + body. Pure logic. Returns Effect for async work. ALWAYS runs on main