Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/harshii0509/designStacknpx agentmods add skills/harshii0509/designstack/mobileWrote 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/harshii0509/designstack/mobile)<a href="https://agentmods.dev/skills/harshii0509/designstack/mobile"><img src="https://agentmods.dev/badge/skills/harshii0509/designstack/mobile/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/harshii0509/designstack/mobile"><img src="https://agentmods.dev/badge/skills/harshii0509/designstack/mobile.svg" alt="Reviewed on agentmods" width="80" 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.00059 | $0.02183 |
| Opus 5.5 | $0.00024 | $0.00873 |
| Sonnet 5.5 | $0.00012 | $0.00437 |
| Haiku 4.5 | $0.00006 | $0.00218 |
Grade A, and why
ds-mobile 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 1mo 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 — 200 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Preamble
"../lib/env.sh" "mobile"
What this skill does
Check if your site works on phones and tablets. I'll show you three side-by-side screenshots — phone, tablet, desktop — and flag anything that looks broken or is hard to use on smaller screens. In plain English. No code until you ask.
Step 1 — Get the URL
Ask the user:
"What page should I check on mobile? Give me the URL (e.g.
http://localhost:3000or your live site URL). If you want me to check a specific page like checkout or signup, say that too."
If the URL was already mentioned in the conversation, confirm it:
"I'll check how [URL] looks on different screen sizes. Sound right?"
Step 2 — Check browse availability
If BROWSE is NOT_FOUND:
"I can't take screenshots without the visual browser. I'll check your code for mobile problems instead — fixed widths, text that's too small, and buttons that are too small to tap."
Then proceed to Step 5 (code-only check).
Step 3 — Take screenshots at three sizes
If the URL is not reachable:
"Your project doesn't seem to be running right now. Start it with
npm run dev(ornpm start) and then give me the URL — usually http://localhost:3000. I'll wait."
Do not continue until the user confirms the project is running.
# Phone (iPhone size)
$B resize 375 812
"../lib/visual-audit.sh" screenshot "<URL>" "mobile" "375"
# Tablet (iPad size)
$B resize 768 1024
"../lib/visual-audit.sh" screenshot "<URL>" "mobile" "768"
# Desktop
$B resize 1280 900
"../lib/visual-audit.sh" screenshot "<URL>" "mobile" "1280"
Show all three screenshots to the user:
"Here's how your page looks across screen sizes:"
[show /tmp/dstack-mobile-375.png — label: "📱 Phone (375px)"] [show /tmp/dstack-mobile-768.png — label: "📟 Tablet (768px)"] [show /tmp/dstack-mobile-1280.png — label: "🖥️ Desktop (1280px)"]
Step 4 — Check for mobile issues with browser tools
While at each size, run these checks:
At 375px (phone):
$B resize 375 812
$B goto <URL>
# Check for horizontal scroll (content overflowing off screen)
$B js "document.body.scrollWidth > window.innerWidth"
# Find text that might be too small
$B js "Array.from(document.querySelectorAll('p, span, a, li')).filter(el => parseFloat(getComputedStyle(el).fontSize) < 14).map(el => el.tagName + ': ' + el.textContent.slice(0,30)).slice(0,5)"
# Find buttons that are too small to tap (under 44px — the minimum comfortable tap size)
$B js "Array.from(document.querySelectorAll('button, a, input[type=submit], [role=button]')).filter(el => { const r = el.getBoundingClientRect(); return (r.width < 44 || r.height < 44) && r.width > 0; }).map(el => el.tagName + ' ' + (el.textContent || el.value || '').slice(0,20)).slice(0,5)"
# Check for fixed widths that might cause overflow
$B js "Array.from(document.querySelectorAll('[style*=\"width\"]')).filter(el => el.style.width && !el.style.width.includes('%') && !el.style.width.includes('vw') && parseInt(el.style.width) > 375).map(el => el.tagName + ': ' + el.style.width).slice(0,5)"
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.
- 1mo ago First seen · 200 lines · 59 tokens per session scan A 284c654871b8
ds-mobile is a skill published in the GitHub repository harshii0509/designStack (13 stars, last pushed 4mo ago), licensed MIT. It adds 59 tokens to every session and 2,183 once invoked, about $0.0002 per session on Opus 5.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
mobile-native
Make a web app feel native on a phone — the small CSS and meta-tag fixes that separate "a website in a browser" from something that feels installed. Covers sticky hover states, tap highlight flashes, the 100vh bug, inputs that zoom the page, laggy taps, pull-to-refresh hijacking scroll, content under the notch…
uniwind
Uniwind — Tailwind CSS v4 styling for React Native. Use when adding, building, or debugging components in a React Native project that uses Uniwind classNames. Covers setup, Metro config, global.css, theming, className props, accent- color props, platform/data/state/responsive variants, CSS variables, custom utilities…
weapp-tailwindcss-react-native
Guidance for configuring weapp-tailwindcss with Expo and React Native, a framework for building mobile apps for Android and iOS with React. It covers compiling Tailwind classes into native style lookups through Metro, React Native’s build tool.
ionic
Ionic development guidelines for building cross-platform mobile applications with Angular, Cordova, and Firebase integration.
flutter-development
Cross-platform development with Flutter and Dart for iOS, Android, Web, Desktop, and embedded. Use when building Flutter apps, implementing Material/Cupertino design, or optimizing Dart code.
expo-tailwind-setup
Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling.