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 skills/fusengine/agents/design-androidnpx skills add fusengine/agents --skill design-androidgit clone --depth 1 https://github.com/fusengine/agentsWrote 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/fusengine/agents/design-android)<a href="https://agentmods.dev/skills/fusengine/agents/design-android"><img src="https://agentmods.dev/badge/skills/fusengine/agents/design-android.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 | $0.00033 | $0.01901 |
| Opus 5 | $0.00016 | $0.00950 |
| Sonnet 5 | $0.00007 | $0.00380 |
| Haiku 4.5 | $0.00003 | $0.00190 |
Grade A, and why
design-android 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 yesterday.
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 — 111 lines — stays where its author put it; the contents beside it link to each section on GitHub.
The deliverable is a device-framed HTML mockup at the target window size class plus a Compose-ready handoff spec (colors, typography, shapes, spacing, states, tonal elevation). This skill never writes Jetpack Compose code — implementation is left to an Android developer.
Design Android — Mockup and Handoff, Not Code
When
After design-system tokens exist. This skill never writes Jetpack Compose — it produces
a static HTML mockup at exact device dimensions plus a spec an Android developer implements.
Input
design-system.md— OKLCH palette, typography direction, motion personality.- The screen/flow to mock up and the target window size class.
Steps
- Map tokens to Material 3 type roles.
references/type-scale.mdgives the 15-role baseline scale (displayLarge 57/64sp … labelSmall 11/16sp, Roboto). Material 3 Expressive adds a parallel 15-role Emphasized set on top (30 roles total) for stronger visual rhythm — use baseline by default, reach for Emphasized when the tone fromdesign-methodcalls for it. Source: m3.material.io/styles/typography/type-scale-tokens. - Map tokens to Material 3 color roles.
references/color-roles.mddocuments the core role families (primary/secondary/tertiary + surface/onSurface) derived from a seed color. Material 3's full role system is larger — 45 color roles, including a surface-container ramp (lowest → highest:surfaceContainerLowest,surfaceContainerLow,surfaceContainer,surfaceContainerHigh,surfaceContainerHighest— 5 levels for layering surfaces without shadow),error/onError/errorContainer(kept static, never derived from the dynamic seed, so error states stay legible regardless of theme), and dynamic color: on Android 12+ all roles can be generated tonally from a user's wallpaper/seed, not just the design seed. Source: m3.material.io/styles/color/roles, m3.material.io/styles/color/system/how-the-system-works. Gap:color-roles.mddocuments the core families, not the full 45-role/surface-container enumeration — use the fact above until that reference is expanded (out of this pass's exclusive scope). - Map tokens to shapes.
references/shape-scale.md(never an arbitrary border-radius). Material 3's full shape scale extends to 32dp, 48dp, and Full (pill) beyond what's currently listed — Expressive defaults buttons to pill (Full) shape unless a product reason calls for a smaller radius. Source: m3.material.io/styles/shape/shape-scale-tokens. Gap:shape-scale.mdstops at 28dp (Extra Large); reconfirm 32/48/Full on the m3.material.io page above until expanded. - Apply elevation as tokens, not ad-hoc shadow. 6 levels, 0 → 5, mapping to
0 / 1 / 3 / 6 / 8 / 12dp. Elevation is expressed via shadow at each level —
the older
surfaceTint-only approach is deprecated; don't rely on tint alone to convey elevation. Source: m3.material.io/styles/elevation/overview. Gap: noreferences/elevation.mdexists yet — these token values are grounded but inlined here pending a dedicated reference file (out of this pass's exclusive scope). - Pick the window size class from
references/window-size-classes.md— mock up at the dp width that matches the target device class (phone/foldable/tablet/desktop). - Build the HTML mockup: a device-frame
<div>sized in dp-equivalent px, following the 4dp base / 8dp grid throughout. - Verify touch targets and spacing: 48×48dp minimum touch target, ≥ 8dp spacing
between adjacent targets — see
references/touch-targets.md. - FAB: pick one of 3 tiers, sized to the screen's primary-action weight — small FAB is deprecated in Material 3 Expressive, don't use it. Source: m3.material.io/components/floating-action-button/overview. Gap: no dedicated FAB reference file yet; the 3 surviving tiers and their exact dp sizes should be reconfirmed on the page above before finalizing a mockup.
- Motion: Material 3 Expressive uses spring-physics-based motion (not fixed
duration/easing curves) for its signature feel; the legacy duration/easing-curve tokens
still apply where spring motion isn't specified. Source:
m3.material.io/styles/motion/overview. Gap: no
references/motion.mdexists yet — note spring vs legacy-easing choice explicitly in the handoff spec until one exists. - Write the handoff spec per
references/handoff-compose.md: colors →MaterialTheme.colorScheme.*, typography →MaterialTheme.typography.*, shapes →MaterialTheme.shapes.*, custom spacing scale in dp, explicit sizing, states + tonal elevation (name the elevation level, 0–5, not just "raised"/"flat"), and start/end (never left/right) for RTL correctness.
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- yesterday First seen · 111 lines · 33 tokens per session scan A 2d45275a469a
design-android is a skill published in the GitHub repository fusengine/agents (25 stars, last pushed 1mo ago), licensed MIT. It adds 33 tokens to every session and 1,901 once invoked, about $0.0002 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-09-03.
Other skills, from other repositories
ios-hig-design
Design native iOS interfaces following Apple Human Interface Guidelines. Use when the user mentions "iPhone app", "iPad layout", "SwiftUI", "UIKit", "Dynamic Island", "safe areas", "HIG compliance", "SF Symbols", "haptic feedback", "iOS accessibility", "make my app feel native", or "follow Apple design guidelines".…
designing-interfaces
Creates a design system for software with a UI. Use when a project has a user interface and architecture is confirmed — whether creating from scratch or extracting patterns from existing code.
rn-asset-hygiene
Use when a React Native project has messy assets — unreferenced/unused image, SVG, or Lottie files, scattered or deeply-relative require() paths, or string-based asset references you want made type-safe. Audits first (read-only), then offers git-safe cleanup. Wraps the rn-typed-assets CLI.
ios-simulator
Drive an iOS Simulator headlessly on macOS: discover and boot a device, install and launch an app, drive its UI by accessibility (AXe) rather than brittle coordinates, capture screenshots, and navigate the simulator's own chrome, menus, and execution modes. The iOS analog of android-emulator-harness and…
mobile-accessibility
Why its own skill: the same tags serve two consumers (driving vs auditing); owning them here keeps both DRY. Driving skills read the handle; auditing skills read the semantics.
expo-launchpad-design
Phase A design — define the ui/designTokens.ts spec (colors, spacing, radius, typography), the visual/component concept (game: code-drawn Skia shapes / app: RN primitives), and the asset plan (icon+splash branding, contrast-safe accessibility). Advances pipeline state to contract.