uikit
Skill1 starsChanged 16 days agoMITView on GitHub
UIKit interface work. Use when building, reviewing, maintaining, or modernizing UIKit controllers, scenes, traits, adaptive layout, collections, component feedback, async or edge-state behavior, accessibility semantics, or Liquid Glass; or deciding whether an existing UIKit surface should adopt SwiftUI.
4 other projects use a version of this.
Adopted by
Most recently taken up by
- caglarbaranbora/Apple-Agent-Kittheir own version, first seen Oct 13, 2026
- G1Joshi/Agent-Skillstheir own version, first seen Oct 13, 2026
- mimukit/skillstheir own version, first seen Jul 13, 2026
- Prisma-Labs-Dev/apple-skillstheir own version, first seen Apr 14, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- Prisma-Labs-Dev/apple-skills★ 336same name
- G1Joshi/Agent-Skills★ 15same name
- mimukit/skills★ 2same name
- caglarbaranbora/Apple-Agent-Kit★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository57 other files it gives its agents.
- AGENTS.mdAGENTS.md
- agent-loginSkill
- animateSkill
- app-intentsSkill
- app-store-connectSkill
- architectSkill
- arenaSkill
- blast-radiusSkill
- codebase-designSkill
- code-qualitySkill
- correctSkill
- diagnosing-bugsSkill
- domain-modelingSkill
- eli5Skill
- engineering-principlesSkill
- gauntlet-loopSkill
- gh-stackSkill
- goal-swarmSkill
- grillingSkill
- grill-with-docsSkill
- handoffSkill
- howSkill
- improve-codebase-architectureSkill
- ios-hapticsSkill
- koubouSkill
- mergeSkill
- orchestrationSkill
- prototypeSkill
- prSkill
- react-best-practicesSkill
- react-doctorSkill
- reframeSkill
- repo-cleanupSkill
- researchSkill
- retroSkill
- review-fix-loopSkill
- reviewSkill
- review-sweepSkill
- seoSkill
- setup-sreestackSkill
- show-dont-tellSkill
- showroomSkill
- snipsnap-do-choresSkill
- snip-snapSkill
- swift-testing-modernizationSkill
- swiftuiSkill
- tddSkill
- to-specSkill
- to-ticketsSkill
- triageSkill
- ui-designSkill
- verifySkill
- wayfinderSkill
- web-component-inspirationSkill
- whySkill
- writing-for-agentsSkill
- xcode-security-auditSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 21
Read only the references needed for the task:
- Very specific: line 47
Use standard controls and containers where they express the behavior.
- Distinctive: line 65
When behavior or accessibility is in scope, exercise the supported touch, pointer, keyboard, focus, announcement, and VoiceOver reading …
- Very specific: line 67
Use verify for visual or interactive acceptance checks, animate for motion, ios-haptics for iOS tactile feedback, ui-design for visual …
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
UIKit
Build each interface around its actual view-controller, view, window, and scene context. Preserve the product's architecture and deployment targets while making ownership and lifecycle explicit.
For an authorized build or fix, implement and test the workflow below. For a plan or review, leave the product unchanged and turn its implementation and test steps into exact proposed changes, findings, and checks.
Workflow
- Inspect the affected controller hierarchy, scene configuration, layout system, data source, deployment targets, and user-visible behavior. Identify which object owns the window, content, navigation, and mutable state.
- Read only the references needed for the task:
- Model the Domain for controller responsibilities and state ownership; Boundary Discipline for interface boundaries; Make Operations Idempotent for overlapping effects or lifecycle recovery; and Migrate Callers Then Delete Legacy APIs for caller migration. Keep the scene and controller lifecycle rules below as the UIKit implementation.
- Choosing SwiftUI or UIKit when the
framework is not fixed or the work could introduce a framework boundary. If
SwiftUI owns the affected surface, continue with
swiftuiand end this workflow. For a hybrid, name the boundary and continue here only for the UIKit-owned side. - View controllers and collections for containment, lifecycle ownership, lists, or stable item identity.
- Scenes and traits for windows, screens, geometry, orientation, environment changes, or deprecated global lookups.
- Layout and safe areas for constraints, margins, bars, keyboard interaction, or resizable interfaces.
- Materials and Liquid Glass when adopting current UIKit materials or reviewing custom glass effects.
- Choose the nearest valid context. UI code should normally derive environment from its view or controller; non-UI code should receive the specific value or capability it needs.
- Use standard controls and containers where they express the behavior. If a
SwiftUI island is appropriate, place
UIHostingControllerat an explicit containment boundary and keep one owner for state and lifecycle. - For interactive components, give immediate feedback and keep loading, empty, disabled, error, and overflow states close to the action or content they describe. Cancel or identify interrupted and repeated async work so an older callback cannot overwrite the current state. Prefer platform controls and strong defaults over extra options; preserve valid activation and cancellation.
- Preserve useful accessibility semantics. Expose the control's name, value, state, and actions, and keep focus and announcements aligned with the task and reading order rather than an incidental view hierarchy. Announce visible async status, validation, and errors when focus does not move and the change would otherwise be missed.
- For modernization, replace a deprecated or global assumption end to end. Trace every caller, pass local context where needed, and preserve supported behavior for each active scene rather than swapping symbols mechanically.
- Build the affected targets and exercise resizing, traits, navigation, data
updates, edge states, interruption, and repeated input relevant to the change.
When behavior or accessibility is in scope, exercise the supported touch,
pointer, keyboard, focus, announcement, and VoiceOver reading paths.
Use
verifyfor visual or interactive acceptance checks,animatefor motion,ios-hapticsfor iOS tactile feedback,ui-designfor visual hierarchy and token-system work, anddiagnosing-bugsfor runtime failures or performance regressions.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

