Individual skill
adversarial-ios-design
Use this skill to gate iOS SwiftUI design and UX with a pass/fail adversarial review — a single blind reviewer subagent judges screens, diffs, or features against 56 decidable HIG-derived rules, working backwards from mandatory rendered evidence, simulator screenshots (light, dark, accessibility text size) and interaction recordings tiled into filmstrips. Covers navigation/IA (tab bars, five tabs max, system Back), modality and flow grammar (sheets, alerts, unsaved-content protection), layout (44pt targets, safe areas, Dynamic Type), color and contrast, typography floors, Liquid Glass, feedback states (empty, loading, error, launch), motion — filmstrip-primary except the spring-curve and Reduce Motion checks, so code alone never prescribes an unseen animation, and gratuitous decoration fails — plus haptics and craft. Fixes must be the minimal change, removal preferred over addition. Trigger before merging user-facing SwiftUI work. Verdicts only, never fixes; targets without a SwiftUI UI surface abort.
skills/.experimental/adversarial-ios-design/SKILL.md
Source commit cf93c57cac89d6fc3e4194686000411567f5caf3
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 222
- Repository last updated
- Aug 15, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- design Derived category
- writing Derived category
- design-interface Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 14,889 bytesSKILL.mdcore · 14,889 bytesSKILL.mdcore · 14,889 bytesassets/templates/verdict.mddoc · 2,731 bytesgotchas.mddoc · 14,450 bytesmetadata.jsonasset · 2,118 bytesreferences/_evidence-capture.mddoc · 6,402 bytesreferences/_sections.mddoc · 6,093 bytesreferences/color-contrast-floors.mddoc · 3,613 bytesreferences/color-dark-variants.mddoc · 3,137 bytesreferences/color-label-ladder.mddoc · 2,840 bytesreferences/color-not-alone.mddoc · 2,729 bytesreferences/color-scrim-over-images.mddoc · 3,358 bytesreferences/color-semantic-roles.mddoc · 2,498 bytesreferences/color-system-backgrounds.mddoc · 2,898 bytesreferences/craft-no-appearance-lock.mddoc · 2,732 bytesreferences/craft-numeric-text.mddoc · 3,455 bytesreferences/craft-symbol-text-sizing.mddoc · 3,088 bytesreferences/flow-alert-button-grammar.mddoc · 3,256 bytesreferences/flow-alerts-actionable-only.mddoc · 2,647 bytesreferences/flow-confirmationdialog-destructive.mddoc · 3,852 bytesreferences/flow-fullscreencover-media-only.mddoc · 3,446 bytesreferences/flow-no-confirm-undoable-deletes.mddoc · 4,020 bytesreferences/flow-onboarding-optional.mddoc · 3,430 bytesreferences/flow-one-sheet-at-a-time.mddoc · 3,112 bytesreferences/flow-protect-unsaved-sheets.mddoc · 4,442 bytesreferences/flow-settings-in-context.mddoc · 3,269 bytesreferences/flow-sheet-dismiss-affordances.mddoc · 3,619 bytesreferences/flow-sheet-for-self-contained-tasks.mddoc · 4,657 bytesreferences/glass-floating-layer-only.mddoc · 3,405 bytesreferences/glass-one-tinted-action-per-bar.mddoc · 3,180 bytesreferences/glass-preserve-edge-effects.mddoc · 3,507 bytesreferences/haptic-documented-meanings.mddoc · 2,955 bytesreferences/haptic-no-doubling-standard-controls.mddoc · 2,648 bytesreferences/haptic-no-spam.mddoc · 3,166 bytesreferences/haptic-significant-outcomes.mddoc · 3,969 bytesreferences/layout-bleed-backgrounds-respect-safe-areas.mddoc · 3,454 bytesreferences/layout-concentric-corners.mddoc · 2,906 bytesreferences/layout-inset-buttons.mddoc · 2,818 bytesreferences/layout-no-fixed-text-cages.mddoc · 2,456 bytesreferences/layout-touch-targets.mddoc · 3,627 bytesreferences/motion-animate-structural-changes.mddoc · 4,523 bytesreferences/motion-bounce-cap.mddoc · 3,928 bytesreferences/motion-brief-feedback.mddoc · 3,740 bytesreferences/motion-no-gratuitous-animation.mddoc · 4,075 bytesreferences/motion-reduce-motion-path.mddoc · 3,920 bytesreferences/motion-springs-over-curves.mddoc · 3,866 bytesreferences/motion-zoom-transitions.mddoc · 5,482 bytesreferences/nav-five-tabs-max.mddoc · 2,767 bytesreferences/nav-search-system-affordances.mddoc · 2,976 bytesreferences/nav-stable-tab-bar.mddoc · 3,696 bytesreferences/nav-stack-per-tab.mddoc · 2,671 bytesreferences/nav-system-back-button.mddoc · 2,430 bytesreferences/nav-tabs-navigate-not-act.mddoc · 3,275 bytesreferences/nav-tabview-for-top-level.mddoc · 3,410 bytesreferences/nav-title-every-screen.mddoc · 2,962 bytesreferences/reviewer-prompt.mddoc · 10,038 bytesreferences/state-designed-empty-states.mddoc · 3,663 bytesreferences/state-determinate-progress.mddoc · 2,923 bytesreferences/state-error-recovery.mddoc · 3,291 bytesreferences/state-launch-screen-replica.mddoc · 2,891 bytesreferences/state-skeleton-over-spinner.mddoc · 3,758 bytesreferences/type-minimum-eleven-points.mddoc · 2,204 bytesreferences/type-no-thin-weights.mddoc · 2,399 bytesreferences/type-title-case-section-headers.mddoc · 2,497 bytes
Read excerpt
# Adversarial iOS Design Gate
An iOS design-and-UX review gate — pass/fail: a single blind reviewer subagent judges the work against this gate's rules with an adversarial mandate, and the work passes only when every rule is PASS or N/A. This skill renders verdicts; it never fixes the work.
The gate judges rendered user interface, not source text. Capturing evidence — simulator screenshots and interaction recordings tiled into filmstrips — is a mandatory protocol step, and the reviewer works backwards from the pixels: observe the captures, suspect violations, then open code only to locate them. Code-only review is the gate's recorded failure mode: it turns the gate into a linter that prescribes animations it has never seen.
The rules are the decidable subset of what an Apple design review would flag — every rule names the evidence that decides it, drawn from the Human Interface Guidelines, WWDC design sessions, and Apple's own measured app conventions. The gate judges the failure modes agents and experienced-but-not-expert developers actually ship: hamburger drawers where tab bars belong, pushed forms that lose drafts on a swipe, alerts that say "Yes"/"No", blank empty states, whole-screen spinners, teleporting state changes, glass painted on content, and text that clips at accessibility sizes.
## When to Apply
- A user-facing SwiftUI screen, feature, or PR is about to merge and needs an objective PASS/FAIL on design and UX quality, not advisory feedback.
- An agent (Claude, Codex) authored the UI and you want an independent check that it follows platform grammar — modality, navigation structure, alert discipline, feedback states — rather than web/Android idioms translated into Swift.
- A screen "works" but feels non-native, and you want the decidable causes enumerated with locations instead of taste adjectives.
- A design polish pass claims Apple-level quality and you want that claim tested against what the screen actually renders — screenshots and filmstrips — not against what the code implies.