Nothing to hand? Load the — a model recreated on every parent render, index-keyed rows, sticky navigation and onAppear tasks — the , where it works but erasure, hoisting and previews are wrong, or the , which should come back sound.
Paste the Swift
One file, several files with // ... comment headers, a screen with its model, or a grab-bag of views. The instant prescan reads it for free while you type and lists what it mechanically found: ObservableObject-era observation, an @ObservedObject default instance, AnyView erasure, NavigationView and sticky NavigationLink(isActive:), index-based ForEach identity, non-private @State, DispatchQueue in view code, onAppear-launched Tasks, Task.detached, force unwraps, hardcoded colors, UIScreen.main sizing, Timers in views, I/O in body and eager ScrollView stacks - plus the views, observable models and destination enums declared and the @State property, effect modifier, ForEach, lazy container, preview, test and line counts in your paste.
The AI reviews it
A sound/refactor/rework verdict; severity-ranked findings, each quoting the view, model, property wrapper, type or expression it concerns and carrying corrected Swift code; a twelve-item SwiftUI checklist scored pass, fail or not-observable against your paste; and an honest health check across State & observation, Rendering & performance, View composition & reuse, Effects & lifecycle, and Navigation & structure. Every prescan hit is confirmed or explicitly set aside — including the false positives, like ObservableObject in a codebase whose deployment target predates iOS 17.
Take the rewrite and go
Your own code refined — same screen, same intent, same naming: observation migrated to @Observable (or ownership corrected on a legacy target), @State made private, rows given stable identity, lazy containers introduced where lists are large, navigation made a typed NavigationStack path, work moved out of body into an @MainActor model method driven by .task, force unwraps replaced with guard let, hardcoded values replaced with semantic tokens, repeated styling folded into a ViewModifier — as a downloadable Refined.swift or as a unified diff against your own paste that git apply accepts, plus the ordered next steps, the findings as CSV, a PR review comment, and review history kept on your account and mirrored to this device with restore. The prescan re-reads the rewrite for free and says which of the smells it matched are actually gone; take the rewrite back into the box as your new input and it keeps scoring your edits against the last review, so you only pay for a second review once it is worth running. Markdown and JSON export throughout.
Derived from the @affaan-m/swiftui-patterns skill (MIT).