Borrowing it
Nothing to install: this file belongs to BariBariGood/manzanas. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/BariBariGood/manzanas/main/.agents/skills/ui-audit-and-predicates/SKILL.mdgit clone --depth 1 https://github.com/BariBariGood/manzanasWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/baribarigood/manzanas/ui-audit-and-predicates)<a href="https://agentmods.dev/skills/baribarigood/manzanas/ui-audit-and-predicates"><img src="https://agentmods.dev/badge/skills/baribarigood/manzanas/ui-audit-and-predicates/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/baribarigood/manzanas/ui-audit-and-predicates"><img src="https://agentmods.dev/badge/skills/baribarigood/manzanas/ui-audit-and-predicates.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00059 | $0.01394 |
| Opus 5 | $0.00030 | $0.00697 |
| Sonnet 5 | $0.00012 | $0.00279 |
| Haiku 4.5 | $0.00006 | $0.00139 |
Grade A, and why
ui-audit-and-predicates scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 117 lines — stays where its author put it; the contents beside it link to each section on GitHub.
UI audit + predicates: stop hand-parsing trees
Two tools replace manual tree/screenshot inspection during QA:
audit— deterministic geometry checks over the accessibility tree, returning findings (measured evidence, never pass/fail verdicts) plus an annotated screenshot with a labeled red box per finding. Both are journaled automatically.- Predicates — strict element matching for
tap_element,type_into_element,wait_for_element,scroll_to_element. A predicate must resolve to exactly one element; ambiguity fails loudly with every candidate listed instead of silently guessing.
Audit a screen
manzanas audit --lease $LID -o annotated.png # all six checks
manzanas audit --lease $LID --checks touch_target,missing_labels
manzanas audit --lease $LID --label "Sign up" # scope to one subtree
manzanas audit --lease $LID --region 0,0,393,400 # scope to a screen area
MCP agents call the audit tool with the same fields (checks, region,
matcher fields, min_touch_pt, alignment_tolerance_pt,
spacing_tolerance_pt, safe_area_insets).
Checks: touch_target (< 44x44pt interactive), clipping (past screen or
non-scrolling parent bounds), alignment (near-miss edge deltas ≤ 4pt),
spacing (sibling gaps deviating > 4pt from the median), safe_area
(interactive elements in the insets), missing_labels (interactive
elements a screen reader cannot name).
Reading results:
- Each finding has
check,ref(F1, F2, ... — matches the red box on the annotated screenshot), the element's role/label/id/frame,measuredvalues, and anevidencesentence. - Findings are EVIDENCE, not verdicts. You decide what matters: a 30x30 close button is probably a real defect; a deliberately compact stepper may not be.
- Dense repeated grids (keyboards, emoji pickers, calendar cells) are
auto-suppressed;
suppressed_elementsreports how many. - System chrome is auto-suppressed too: scroll-indicator pseudo-elements,
the status bar, and the keyboard never produce findings by default
(
--include-system-chromerestores them; individual keyboard keys stay under the dense-group rule), andtouch_targetwithholds small controls covered by a full-size tappable list row (Cell or Button) — stock Settings' ~28pt row buttons — reported assuppressed_covered_controls(--include-covered-controlsrestores them). So a noisy stock-app screen audits clean; remaining findings are the app's own layout. - Both artifacts land in the journal:
manzanas journal export $LID -o evidence.mdincludes them — paste into the PR.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 117 lines · 59 tokens per session scan A 62580a947b77
ui-audit-and-predicates is a skill published in the GitHub repository BariBariGood/manzanas (21 stars, last pushed 11d ago), licensed Apache-2.0. It adds 59 tokens to every session and 1,394 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
ios-simulator-interaction
Interaction with the iOS simulator using iosef, a CLI optimized for agent usage. Use when building or testing changes on the iOS Simulator — viewing the screen, tapping buttons, reading accessibility trees, finding elements by selector, asserting UI state, scripting multi-step test flows, installing and launching…
testa
Autonomously E2E-test iOS apps in the Simulator — read the screen (accessibility tree OR on-device OCR), tap/type/swipe/drag-drop/pinch/rotate, manage apps, and assert results. Use when asked to test, QA, drive, or reproduce a flow in an iOS app/simulator (React Native, Expo, native SwiftUI, or any app).…
argent-test-ui-flow
Autonomously test an app UI (iOS or Android) by running interact-screenshot-verify loops using argent MCP tools. Use when testing UI flows, verifying login works, testing navigation, running end-to-end UI test scenarios, manual QA steps, visible UI changes, or visual behavior.
mobile-automation
Control Android and iOS devices, emulators and simulators — launch apps, tap, swipe, type, take screenshots, read the accessibility tree. Use when a task involves a mobile device or app, mobile UI testing, or reproducing a bug on a phone.
baguette
Drive iOS simulators programmatically via the baguette CLI — taps, swipes, multi-finger gestures, hardware buttons (Home / Lock / Volume / Action / Power), ASCII keyboard text, and frame capture, all without opening Xcode. Use when: (1) an agent needs to drive a booted iOS simulator from a script — tap a coordinate…
ios-simulator-skill
29 production-ready scripts for iOS app testing, building, and automation. Provides semantic UI navigation, build automation, accessibility testing, and simulator lifecycle management. Optimized for AI agents with minimal token output.