ios-swiftui-architect — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ios-swiftui-architect (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
A bulleted imperative like {match} tells the agent to never reveal, disclose, or mention something to the user. Used adversarially it can instruct the agent to hide its tool calls or lie about what it did — stripping the transparency a user relies on to trust the agent.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use for iOS SwiftUI UI structure and component choices. Read the nearest local example before introducing a new pattern.
rg "TabView\\(", etc.), then read references/components-index.md.references/app-wiring.md for TabView + NavigationStack + sheets, then expand route/sheet enums as screens appear.references/scroll-reveal.md before hand-rolling gestures.@State, @Binding, @Observable, and @Environment; avoid unnecessary view models.ObservableObject with @StateObject at the owner and @ObservedObject for injection..task/.task(id:) with loading/error states; read references/async-state.md for cancellation/debouncing.@Environment; keep feature-local dependencies as explicit inputs..sheet(item:), avoid if let inside sheet bodies, let sheets call dismiss() internally.| Scenario | Pattern |
|---|---|
| Local UI state | @State |
| Child mutates parent value | @Binding |
| Root-owned iOS 17+ reference model | @State with @Observable |
| Injected iOS 17+ observable | explicit stored property |
| Shared service/config | @Environment(Type.self) |
| iOS 16 legacy model | @StateObject owner, @ObservedObject injected |
Choose ownership first; do not introduce a reference model when value state is enough.
body.AnyView as a composition escape hatch.@EnvironmentObject or a global router.references/components-index.mdreferences/navigationstack.mdreferences/sheets.mdreferences/deeplinks.mdreferences/app-wiring.mdreferences/async-state.mdreferences/previews.mdreferences/performance.mdUse current Apple docs when API availability or platform guidance may have changed. New component refs should be short, actionable, and listed in components-index.md.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.