Audit Apple Ui
audit_apple_uiAudit an iOS or macOS app's UI against Apple's documentation by analyzing Xcode project configuration and Swift source. Flags deprecated APIs, missing sandbox, and configuration issues with fixes.
Instructions
Audit an iOS or macOS app's UI against Apple's own documentation: point it at the project directory and it reads the four surfaces an Xcode project declares configuration on — the information property list, INFOPLIST_KEY_* build settings in project.pbxproj, the entitlements plist, and each colorset's Contents.json — infers whether the project targets iOS or macOS from those plus the Swift imports, and runs eight rules. Configuration: a custom colorset with no luminosity: dark appearance, the deprecated UIRequiresFullScreen key (either spelling), a microphone entitlement declared under one capability and not its twin, and — on macOS only — no App Sandbox entitlement, reported as a fact about the Mac App Store channel rather than as a defect. Swift: NavigationView, .font(.system(size:)) on iOS only, a colour written as numbers, and a Button whose whole label is one SF Symbol. Every platform-scoped rule stays silent when the platform signals do not settle the question, and the report says which platform was inferred and from what, so a silence can be read as the gate rather than as a result. It reads source and does not measure anything: it builds nothing, runs no simulator, takes no screenshot, and no finding is or can be a rendered-output, contrast, notarization or App Review result. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, file, line — configuration findings carry no line, since a missing key has no position), a severity summary, a scan block saying how much was actually read, and a long machine-readable notVisible list of what it structurally could not check, every entry of it derived from a run. Directory only — there is no snippet mode, because configuration is the backbone of this audit and a snippet carries none of it. A missing path, a path that is a file, or a code argument is returned as an error result, not as an empty audit. Pair with get_design_doc("apple-hig-liquid-glass"), get_design_doc("apple-accessibility") and get_design_doc("apple-shipping-readiness") for the guidance behind the rules.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Not supported by this tool, and rejected with an explanation if passed. There is no snippet mode: the platform verdict and half the rules are read from the information property list, the entitlements plist, `project.pbxproj` and the asset catalog, and a pasted snippet carries none of them. Pass `path` instead. | |
| path | No | The Xcode project directory to audit — the folder holding your `.xcodeproj`, `Info.plist`, `Assets.xcassets` and Swift sources. Required. Absolute paths are strongly preferred: a relative path is resolved against the server's working directory, which is usually not your project folder. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scan | Yes | What the scan reached. Read it before trusting any absence claim: a capped scan looked at part of the project, and the platform-scoped rules are gated on configuration this scan may never have opened. | |
| summary | Yes | Counts by severity. Always agrees with `findings` — it is derived from the same list. | |
| findings | Yes | Every finding, in the order the markdown report lists them. | |
| notVisible | Yes | What this audit structurally could not check, one limitation per entry. Read it as a peer of `findings`: silence on a subject named here is this tool's reach, not a clean result. Nothing any of these tools reports is measured. |