| Wrong property wrapper chosen | Ownership direction | Match wrapper to data flow | references/state-management.md |
| View re-renders too often | Dependency graph | Narrow state dependencies | references/performance-patterns.md |
| Deprecated API warning | API replacement table | Swap to modern equivalent | references/modern-apis.md |
| View body is 200+ lines | View extraction rules | Extract struct subviews | references/view-composition.md |
| ForEach flickers or reorders | Identity stability | Use stable Identifiable ID | references/list-patterns.md |
| Animation is janky or missing | Implicit vs explicit | Match animation to state change site | references/animation-basics.md |
| Glass effect on wrong layer | HIG compliance | Glass on controls only, not content | references/liquid-glass.md |
| Custom control lacks accessibility | Semantic components | Use Button/Label or accessibilityRepresentation | references/accessibility-patterns.md |
| Tap/gesture not firing inside a scroll or list | Gesture precedence | Use highPriorityGesture/simultaneousGesture | references/gestures.md |
| Async load leaks, re-fires, or janks the UI | Task lifecycle & isolation | .task/.task(id:); offload heavy work with @concurrent | references/data-loading-and-tasks.md |
| Need a layout stacks/grids can't express | Layout negotiation | Conform to the Layout protocol | references/layout-protocol.md |
| App body won't compile or state leaks across windows | Scene structure | App body returns some Scene; WindowGroup is per-window | references/app-lifecycle-and-scenes.md |
| Persisting settings or restoring per-scene state | Persistence mechanism | @AppStorage/@SceneStorage/SwiftData/PreferenceKey | references/data-persistence.md |