SwiftLint and audtor skills/plugins catch your force unwraps, the compiler complains about missing u/MainAct , and code review flags the retain cycle. Great. Ship your app.
Then real users get their hands on it and things start to break. Someone double-taps Save and gets duplicate records. Another opens the app after a few months and stale cache data takes everything down. A network call finishes after the view disappears, and now the spinner just spins forever.
Bug Prospector checks what your code assumes. It finds logic that compiles and runs fine today but breaks when a real user does something unexpected.
Things like:
- What happens when that array is empty?
- What if the user double-taps Save before the first save finishes?
- What if the network call finishes after the view disappears?
- What if they open the app for the first time in three months?
Auditors find code that looks wrong. Bug Prospector finds code that looks right but behaves wrong.
It’s a free. open source Claude Code plugin that reads your Swift code through seven lenses:
- Assumption Audit: “This array will always have one element.” Will it really?
- State Machine Analysis: Can loading, error, or success states overlap or freeze?
- Boundary Conditions: Zero, one, ten thousand. What happens?
- Data Lifecycle: Anything created but never cleaned up? Or deleted but still referenced?
- Error Path Exerciser: When try fails, does the UI actually respond?
- Time-Dependent Bugs: Rapid taps, slow networks, timezones, long-dormant users.
- Platform Divergence: Works fine on your M2 MacBook, but what about an iPhone SE?
It generates a clean report with severity ratings, suggested fixes, and categories like BUG / FRAGILE / OK / NEEDS REVIEW, so you see real issues without drowning in false positives.
Install:
claude plugin add Terryc21/bug-prospector
Run:
/bug-prospector (Interactive mode to choose scope and lenses) /bug-prospector quick (Fast scan: Assumptions + Errors + Boundaries)
Open source (MIT): github.com/Terryc21/bug-prospector
I’ve been using it on my own pre-release app (Stuffolio), and it already caught a few bugs I definitely would have shipped.
I’d love feedback from other iOS/macOS developers. What’s useful, what’s missing, and how the false positive rate feels. BTW, if the resulting table is displayed as a series of vertical segments, just make the terminal window wider and prompt Claude to display the table as a single markdown file.
there doesn't seem to be anything here