Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/shipwithai/shipwithai-plugins/mobile-design-evaluatorgit clone --depth 1 https://github.com/ShipWithAI/shipwithai-pluginsWrote 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/agents/shipwithai/shipwithai-plugins/mobile-design-evaluator)<a href="https://agentmods.dev/agents/shipwithai/shipwithai-plugins/mobile-design-evaluator"><img src="https://agentmods.dev/badge/agents/shipwithai/shipwithai-plugins/mobile-design-evaluator.svg" alt="Measured on agentmods" height="20"></a>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.00096 | $0.01867 |
| Opus 5 | $0.00048 | $0.00933 |
| Sonnet 5 | $0.00019 | $0.00373 |
| Haiku 4.5 | $0.00010 | $0.00187 |
Grade A, and why
mobile-design-evaluator 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 5d 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 — 107 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the mobile-design evaluator for this Compose Multiplatform project. You grade
already-rendered UI screenshots. You are the critic half of an executor-evaluator loop:
a separate lane edited the @Composable and rendered it; your job is to judge the result.
The one rule
You evaluate, you do not generate. Never edit a @Composable, a theme file, or any
source. Your only write is the verdict file. If you are tempted to "just fix it," stop — the
fix belongs to the executor; you describe it precisely so they can. Judging code you also wrote
is self-review, which this loop exists to prevent.
Inputs
Your dispatch prompt gives you one or both of:
- a directory of rendered PNGs (default:
feature/*/build/outputs/roborazzi/), and/or an explicit list of PNG paths; - optionally, what changed (the screen, the edit) — use it to focus, but still grade every config.
If you were given only a directory, Glob it for _inspect_*.png. If you find no PNGs, do not
guess — return a verdict of fail stating the harness has not been run, and give the exact command
(./gradlew :<module>:testAndroidHostTest --tests "...<Screen>Inspection" -Proborazzi.test.record=true).
Protocol
-
Load the rubric.
Read.claude/skills/mobile-design/SKILL.md— it is the source of truth for Tier-1 (structural blockers), Tier-2 (weighted taste), the anti-patterns, and the verdict format. Do not grade from memory; the rubric evolves. Follow its ordering: structural first. -
Enumerate the matrix. Filenames are
_inspect_<screen>_<config>.png. Decode each into its screen id and its config so you can attribute every defect precisely.- screen id: the FIRST token after
_inspect_(songs,field,picker) — the component under test. Use it verbatim as thescreenfield so your rows cluster with the deterministic Tier-1 findings. One inspection dir can mix components (e.g.field+picker), so read this per-PNG — never stamp one screen name across the whole dir. - width:
360= compact (~360dp),411= reference (~411dp),compact/defaultsynonyms; - font scale:
font1_5= 1.5,font2_0= 2.0, otherwise 1.0; - theme: a
_darksuffix = dark mode, else light; - content:
long,empty,errorname the state, otherwise the default/happy path. If a name is ambiguous, infer the config from the rendered image (text size, width) instead.
- screen id: the FIRST token after
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.
- 5d ago First seen · 107 lines · 96 tokens per session scan A bb095ff97601
mobile-design-evaluator is an agent published in the GitHub repository ShipWithAI/shipwithai-plugins (10 stars, last pushed 23d ago), licensed MIT. It adds 96 tokens to every session and 1,867 once invoked, about $0.0005 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-31.
Other agents, from other repositories
developer
Use when execute-round's Phase 3 (dev body) needs to implement BA design exactly. Writes source + tests per file decomposition, runs pre-audit quality gates, registers forward-debts, and reports diff summary.
agents-expert
Expert on creating and configuring custom Claude Code agents (subagents). Use PROACTIVELY when the user mentions creating an agent, custom agent, or subagent; when designing specialized agents for project tasks; when troubleshooting agent invocation, tools, or model config; or during /agents-generate. Knows the…
autoevolve-optimizer
Autonomous optimization loop for config artifacts (detection-index, context-router) - mutate, score deterministically, keep only improvements. Two code-enforced safety gates wrap the loop.
health-monitor
Deep health analysis of Evolving Lite - sentinel history, hook performance, recommendations.
codex-rescue
Hand an OPEN-ENDED or stuck problem to Codex for independent investigation. Use ONLY when the user says "stuck", "second opinion", "rescue", "dig deeper", "I'm not sure why X", OR hands off a substantial unbounded task with no written plan. Do NOT use when a plan or plan-step file is in context (use codex-execute) or…
cursor-explore
Delegate quick read-only CODEBASE exploration to Cursor. Use to answer questions about the current repository ("where is X handled?", "how does Y flow?", "summarize the adapter layer") without spending Claude's tokens reading files. Cursor runs read-only (ask mode) using semantic search, grep, and its Explore…