mobile-readiness
Skill2 starsChanged 25 days agoApache-2.0View on GitHub
Use when a site must work on phones and tablets, and you need real evidence from rendered layouts at small viewports: viewport meta, horizontal overflow, navigation, reading width, forms, tables, dialogs, touch targets, sticky bars, and whether the main task can be completed. Do not use it to treat \"no horizontal scrollbar\" as mobile readiness, to claim device coverage from one emulated size, or to redesign the site.
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 20
Not for native app testing or device-lab coverage.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
mobile-readiness
Mobile CSS existing is not the same as the site working at mobile sizes. The question is: can a person on a phone complete the main task, read the content, and reach the actions?
Activate when
- Any public web UI before launch, after a redesign, or when users report phone problems.
launch-all/quality-allroute here (checks 33, 34).- Not for native app testing or device-lab coverage.
Working alone
This skill is self-contained. Its companions (declared in its metadata) are skills whose method it may need to do its own promised work. Use of a companion can be conditional: declaring one does not mean running it. When a companion's lane applies, use the skill if it is installed; if not, follow its short entry in references/companion-methods.md and say in your report which lanes ran inline at reduced depth. Never skip an applicable lane silently. Skills mentioned here only for escalation, referral, documentation, or optional deeper follow-up are not dependencies: report the hand-off and finish honestly.
Companions: design-system-reconnaissance.
Inspect
1. Sweep (paths relative to this skill's folder; serve a build locally if needed):
node scripts/audit-markup.mjs --url <site> --render # VIEWPORT_MISSING, VIEWPORT_ZOOM_DISABLED, FIXED_WIDTH_ELEMENT
node scripts/observe-runtime.mjs --url <site> --block-third-party --viewport 375x812 # HORIZONTAL_OVERFLOW, SMALL_TOUCH_TARGETS, STICKY_UI_COVERS_VIEWPORT, VIEWPORT_LAYOUT_MISMATCH
node scripts/observe-runtime.mjs --url <site> --block-third-party --viewport 768x1024The helper measures against the device width, so a desktop-width layout scaled down on a phone (missing viewport meta) and overflowing content are reported separately. Use --screenshots dir with {"do":"screenshot","name":"home-375"} steps to look at the result.
2. Walk the key flows at 375×812 and 768×1024 by steps file (navigate, click, fill), on the pages that matter: home, primary task, pricing/table, a form, a long article, a dialog or menu. Look at, not just measure:
- Viewport:
width=device-width, initial-scale=1; zoom not disabled. - Overflow: any horizontal scroll (the offender list names elements); images and iframes constrained; long words/URLs wrapped;
100vwmisuse; fixed pixel widths. - Navigation: menu opens, closes, is reachable, and links work; no hover-only menus; current-page indication; the primary action stays reachable.
- Task continuity: the whole main flow (signup, checkout, booking) completes without dead ends, hidden buttons, or off-screen controls.
- Reading: line length, font size (body text at least ~16px), line height, contrast in sunlight-ish conditions, no text clipped or overlapping.
- Forms: correct input types trigger the right keyboard; labels visible; the focused field is not hidden behind the keyboard or a sticky bar; validation messages visible.
- Tables and data: wide tables scroll inside a container or reflow; charts resize; code blocks scroll.
- Dialogs/drawers/cookie banners: fit the viewport, can be closed, do not trap the user, and do not cover the primary action permanently.
- Touch targets: interactive elements at least about 24×24 CSS px (WCAG 2.2 minimum), ideally 44×44, with spacing; the helper lists small ones.
- Sticky/fixed UI: headers, chat bubbles, bottom bars do not eat a quarter of the screen or hide content.
- Content priority: the important thing appears without endless scrolling; nothing critical lives only in a hover state.
- Orientation: landscape phone does not break layout (
--viewport 812x375). - Performance on mobile: heavy images and third parties (
performance-readiness).
Evidence that counts
Label each claim OBSERVED, SOURCE-INDICATED, DECLARED, INFERRED, UNKNOWN, or REVIEW REQUIRED. UNKNOWN is never a pass and never a failure.
- Emulated 375px Chromium is OBSERVED for that engine and size. iOS Safari quirks (100vh, safe areas, input zoom below 16px) and real touch behavior are UNKNOWN unless tested on a device.
- "No overflow at 375" says nothing about 320px or landscape; list the sizes you tested.
- CSS media queries in source are SOURCE-INDICATED only.
May change
Add/fix the viewport meta; constrain media and containers (max-width: 100%); wrap long text; make tables scroll in containers; fix menu behavior; enlarge touch targets and spacing; reduce sticky-element height; ensure dialogs fit (max-height, scroll); set input types; fix 100vh with dvh where appropriate. Use the project's tokens and components (design-system-reconnaissance). Do not restructure the design or remove content to hide overflow.
Must not claim
"Mobile-friendly", "responsive", or "works on all devices". Say "no overflow and main flow completes at 375×812 and 768×1024 in Chromium emulation; not tested on physical devices".
Verify
Re-run the sweep and the flow walk at the same sizes after changes; confirm HORIZONTAL_OVERFLOW/VIEWPORT_LAYOUT_MISMATCH cleared, the main task completes at 375px, and desktop did not regress (1280×800).
Escalate
Complex apps (dashboards, editors, maps) whose mobile support is a product decision; features that cannot work on touch (hover-only tools); real-device-only bugs (Safari) the owner must test.
No change is valid when
The site works at the tested sizes and the main task completes. Do not add mobile-only elements or hamburger menus to sites that already fit.
In this repository54 other files it gives its agents.
- wcag-readinessSkill
- admin-audit-logSkill
- admin-authorizationSkill
- admin-dashboardSkill
- payments-readinessSkill
- subscription-readinessSkill
- ai-features-readinessSkill
- analytics-privacySkill
- consent-managementSkill
- consumer-protection-readinessSkill
- cookie-and-storage-auditSkill
- data-flow-mappingSkill
- data-rightsSkill
- email-complianceSkill
- jurisdiction-applicabilitySkill
- legal-identity-noticesSkill
- minors-readinessSkill
- policy-consistencySkill
- privacy-policySkill
- privacy-readinessSkill
- regulated-domain-triggersSkill
- terms-of-serviceSkill
- third-party-privacySkill
- user-content-safetySkill
- compliance-allSkill
- compliance-diffSkill
- design-system-reconnaissanceSkill
- discoverability-allSkill
- launch-allSkill
- launch-verificationSkill
- production-allSkill
- quality-allSkill
- site-reconnaissanceSkill
- trust-allSkill
- search-console-readinessSkill
- seo-readinessSkill
- social-sharingSkill
- structured-dataSkill
- multilingual-readinessSkill
- rtl-readinessSkill
- content-trustSkill
- error-pagesSkill
- failure-resilienceSkill
- faq-readinessSkill
- forms-readinessSkill
- launch-identitySkill
- legal-navigationSkill
- link-integritySkill
- performance-readinessSkill
- public-supportSkill
- dependency-securitySkill
- deployment-cleanupSkill
- security-headersSkill
- web-securitySkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

