.claude/skills/tca-expert/SKILL.md
Expert guidance on The Composable Architecture (TCA): reducers, effects, dependencies, navigation, testing, bindings, shared state, and performance. Use when writing TCA features, debugging reducers, reviewing TCA code, implementing navigation, or writing TCA tests.
npx skillsauth add adamayoung/popcorn tca-expertInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill for authoritative guidance on TCA 1.23+. Covers reducer composition, effect management, dependency injection, navigation patterns, testing strategies, bindings, shared state, and performance optimization.
@Reducer macro — never hand-write Reducer conformances.@ObservableState on all State structs — never use WithViewStore or ViewStore (deprecated).@Dependency for all external interactions — never reach for singletons or global state.TestStore tests by default; use non-exhaustive only for integration tests.Reduce body lightweight — offload async/CPU work to .run effects.@DependencyClient macro for client definitions — never hand-write unimplemented defaults.@available(*, deprecated, ...). In particular, never use @Reducer(state:action:) — use extensions for conformances instead.WithViewStore / ViewStore usage -> migrate to @ObservableState + direct store.property access.liveValue -> use @Dependency inside liveValue closure..ifLet / .forEach wiring in reducer body.@Bindable var store in view and BindableAction on Action.@Shared reference passing with $ prefix.@Reducer macro is applied to all reducer structs.@ObservableState is on all State types.@Dependency..ifLet (tree) or .forEach (stack) in reducer body.TestStore with proper dependency overrides.state itself (e.g., [id = state.id]).ViewStore, WithViewStore, or IfLetStore usage (all deprecated).references/_index.md — navigation index with quick links by problemreferences/reducers.mdreferences/effects.mdreferences/dependencies.mdreferences/navigation.mdreferences/testing.mdreferences/bindings.mdreferences/shared-state.mdreferences/performance.mddata-ai
Add properties to an existing domain model from TMDb
testing
Run all unit tests
testing
Run UI tests
testing
Run snapshot tests