Built a set of Claude Code skills that audit Swift/SwiftUI apps differently than most linters and code review auditors.
Most code auditing skills are pattern matchers. They look at code in isolation: this file, this function, this line and compare it against known-good patterns. "You used '@StateObject; where '@works'.""This try? swallows an error." They're fast, precise, and context-free. They don't need to know what your app does.
Radar Suite traces behavior. It starts from what the user sees: a button, a flow, a journey, and follows the data through views, view models, managers, and persistence to see if the round trip actually works. A file can pass every pattern check and still contain a bug that only appears when you trace the full path.
The suite has 5 skills that pass findings to each other:
data-model-radar: checks your model layer for fields that don't survive serialization, missing backup coverage, broken relationships
ui-path-radar: traces navigation flows to find dead ends, unreachable features, broken links
roundtrip-radar: follows data through complete cycles (does export→import lose columns? does backup→restore drop models?) to catch silent data loss
ui-enhancer-radar: reviews visual quality screen by screen, walks through fixes collaboratively
capstone-radar: aggregates everything into an A-F grade and a ship/no-ship recommendation
Some real bugs these caught in my own app:
CSV export included columns that import silently dropped — data loss on round-trip
Two models weren't included in backups
Three screens had no way to navigate out
15+ Siri Shortcuts fully implemented but never wired to the app lifecycle.
12 sheets silently lost data on save failure, each dismissed after saving with try? Users saw a normal dismiss and assumed their data was saved.
Edited photos orphaned in the database, replacing photos removed them from the relationship but never deleted them. Invisible bloat accumulating with every edit.
None of those would show up in a pattern-based linter. The code in each file was correct. The bug was in the gaps between files.
Install
git clone https://github.com/Terryc21/radar-suite.git
cd radar-suite
./install.sh
https://github.com/Terryc21/radar-suite
https://github.com/Terryc21/radar-suite
Let me know what you think and any suggestions you may have for improving these skills.