agentleFS
juandelossantosjuandelossantos/another-agent-skills/skills/frontend-mobile/SKILL.md

frontend-mobile

Skill1 starsChanged 11 days agoMITView on GitHub

Build production-grade mobile apps with native design tokens and platform compliance. Triggers: mobile app, React Native, Flutter, iOS, Android. Do NOT use for web-only projects.

We split this skill into the rules it gives an agent

19 rules. About 0 are common, 6 are distinctive, and 13 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 13

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Built on engineering-fundamentals: Read that skill first. This document adds mobile-specific implementation.

    line 18
  2. Distinctive:

    If context exists → Resume from detected phase.

    line 47
  3. Very specific:

    Read guides/DISCOVERY-GUIDE.md for complete mobile checklist.

    line 80
  4. Distinctive:

    No system default fonts as display (San Francisco, Roboto).

    line 125
  5. Very specific:

    Use expo-font with useFonts hook.

    line 127
  6. Very specific:

    No system default colors (systemBlue, systemGray).

    line 130
  7. Very specific:

    Use theme tokens from DESIGN.md or theme provider.

    line 131
  8. Distinctive:

    No web patterns in mobile (hover states, tooltips on touch).

    line 134
  9. Distinctive:

    Use platform conventions: iOS HIG, Android Material Design 3.

    line 135
  10. Very specific:

    No animation of width, height, top, left, margin, padding.

    line 140
  11. Very specific:

    Only transform and opacity for 60fps.

    line 141
  12. Distinctive:

    No default flat solid colors.

    line 144
  13. Very specific:

    Accessibility: Every animation MUST respect AccessibilityInfo reduced motion.

    line 157
  14. Very specific:

    Performance: Only transform and opacity may be animated.

    line 158
  15. Very specific:

    Use expo-font for fonts in the root component.

    line 173
  16. Very specific:

    Use Reanimated useAnimatedStyle for entrance animations.

    line 181
  17. Very specific:

    Use <Image> from expo-image with contentFit and accessibilityLabel.

    line 182
  18. Very specific:

    Ensure SafeAreaView wraps every screen.

    line 183
  19. Distinctive:

    No generic system color utilities.

    line 249

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Frontend Mobile

Built on engineering-fundamentals. Read that skill first. This document adds mobile-specific implementation.

When to Use

Build, design, or redesign any mobile app interface.

When NOT to Use

  • Web-only tasks (use frontend-web)
  • Installable web apps (use frontend-pwa)
  • Backend-only tasks

Output Contract

ArtifactFormatLocationQuality Criteria
Mobile interfaceSource codeProject source directoryPlatform-compliant, accessible, token-compliant, build passes

Context Persistence Check

Before starting work:

  1. Check design/DESIGN-LOCK.md:
    • Exists and < 7 days → Read it. Extract direction, palette, typography, key decisions.
    • 7 days → Read it, ask: "Still valid?"

    • Missing → Proceed with Phase 1.
  2. Check SPEC.md:
    • Exists → Read it. Respect locked stack and boundaries.
    • Missing → If non-trivial, invoke spec-driven-development.
  3. If context exists → Resume from detected phase. Do NOT re-run discovery unless user requests changes.

Stack Detection

Check for STACK_CONFIG.md:

  • Exists → Adapt examples to chosen stack.
  • Missing → Default to React Native 0.76+ + Expo SDK 52+.

Adaptation examples:

  • React Native → Flutter: Widgets instead of components. StyleSheet → ThemeData. JSX → Dart.
  • React Native → SwiftUI: .swift files. @State instead of useState.
  • React Native → Jetpack Compose: @Composable functions. Kotlin syntax.

Core Process

Phase 0 — Language Detection

→ See engineering-fundamentals Phase 0.


Phase 1 — Discovery Gate

→ See engineering-fundamentals Phase 1 for universal discovery.

Mobile-specific questions:

  1. Platforms: iOS only, Android only, or both?
  2. Navigation: Tabs, stack, drawer, or custom?
  3. Offline: Does the app work without internet?
  4. Push notifications: Needed?
  5. Native features: Camera, GPS, biometric auth, contacts?
  6. App Store: Public store, enterprise, or internal distribution?

Read guides/DISCOVERY-GUIDE.md for complete mobile checklist.


Phase 2 — Write Contracts

→ See engineering-fundamentals Phase 2.

Mobile-specific additions:

  • SPEC.md must include: Platform targets (iOS min version, Android min SDK), App Store requirements.

Phase 3 — Three Dials System

→ See engineering-fundamentals/guides/DESIGN-CORE.md for the universal Three Dials System (VARIANCE, MOTION, DENSITY), vibe→dial inference, color principles, and dark mode protocol.

Apply dials to mobile constraints: Reanimated for MOTION > 4, SafeArea-aware layouts for VARIANCE > 4, platform-native touch targets for DENSITY.


Phase 4 — Stack Lock-in

ToolMinimumNotes
React Native0.76+New Architecture (Fabric) enabled
Expo SDK52+EAS Build, Expo Router
TypeScript5.7+
React Navigation7+If not using Expo Router
Reanimated3.16+Primary animation engine
React Native Gesture Handler2.20+Gestures
lucide-react-nativelatestIcons

Optional: expo-camera, expo-location, @shopify/flash-list.

Forbidden: Animated API (use Reanimated), inline styles, any type.


Phase 5 — Anti-Slop Rules (Mobile)

→ See engineering-fundamentals/guides/ANTI-SLOP-CORE.md for universal AI tells, content density, copy protocol, and UI state requirements.

Mobile-specific rules:

Typography

  • No system default fonts as display (San Francisco, Roboto).
  • Pair distinctive display + refined body font.
  • Use expo-font with useFonts hook.

Color

  • No system default colors (systemBlue, systemGray).
  • Use theme tokens from DESIGN.md or theme provider.

Layout

  • No web patterns in mobile (hover states, tooltips on touch).
  • Use platform conventions: iOS HIG, Android Material Design 3.
  • Think in screens, not pages. Mobile-first: verify 375pt (iPhone SE).
  • Respect SafeAreaView and avoid the notch/status bar.

Motion

  • No animation of width, height, top, left, margin, padding.
  • Only transform and opacity for 60fps.

Native Feel

  • No default flat solid colors.
  • Touch targets minimum 44pt (iOS) or 48dp (Android).

Phase 6 — Animation System

Read guides/ANIMATION-GUIDE.md.

Summary:

  • Primary: Reanimated useAnimatedStyle + withSpring.
  • Fallback: React Native Animated API for simple cases.
  • Gestures: React Native Gesture Handler for swipe, pinch, long-press.
  • Accessibility: Every animation MUST respect AccessibilityInfo reduced motion.
  • Performance: Only transform and opacity may be animated.

Phase 7 — Build with Tokens

BEFORE WRITING CODE:

  1. Read design/DESIGN-LOCK.md — Verify approved direction, palette, typography.
  2. Check design/approved/ — Screenshots, previews, moodboards.
  3. Cross-check with DESIGN.md — Tokens must match locked system.

Then build:

  1. Apply tokens to a theme provider (e.g., ThemeProvider or StyleSheet.create constants).
  2. Use expo-font for fonts in the root component.
  3. Build screens with canonical order:
    • Splash / Onboarding
    • Authentication (if needed)
    • Main App Shell (tabs, drawer, or stack)
    • Home / Dashboard
    • Feature Screens
    • Profile / Settings
  4. Use Reanimated useAnimatedStyle for entrance animations.
  5. Use <Image> from expo-image with contentFit and accessibilityLabel.
  6. Ensure SafeAreaView wraps every screen.

Phase 8 — QA Gates

→ See engineering-fundamentals Phase 5 for universal gates. Read engineering-fundamentals/guides/PRE-FLIGHT-CORE.md for universal checks first.

After QA gates, log metrics:

LOG METRIC: gate
- project: [detect from git remote or directory]
- gate_name: frontend-mobile-qa
- result: pass/fail
- checks_passed: [N]/12

Mobile-specific checks:

  1. TypeScript — npx tsc --noEmit passes.
  2. Build — eas build --local or npx expo prebuild succeeds.
  3. No template residue — Remove default Expo text and assets.
  4. No hardcoded colors — Search color: '#, replace with tokens.
  5. Responsive — Check 375pt, 428pt, tablet sizes.
  6. Accessibility — Contrast 4.5:1, accessibilityLabel, AccessibilityInfo.
  7. Images — Every <Image> has accessibilityLabel. Cache policy configured.
  8. Reduced motion — Respect AccessibilityInfo.isReduceMotionEnabled().
  9. Animation performance — Only transform and opacity. No layout thrashing.
  10. Design Lock present — design/DESIGN-LOCK.md exists and was read.
  11. Visual consistency — No color, font, or spacing deviates without approval.
  12. Platform compliance — Follows iOS HIG and Android Material 3.

Examples & Troubleshooting

Read guides/EXAMPLES.md:

  • New mobile app walkthrough (15 steps)
  • Adding animation to existing component
  • Troubleshooting (Expo prebuild, fonts, SafeArea, gesture conflicts)

DESIGN.md Output

Fills sections 13-17 for mobile. React Native + Expo SDK 52. StyleSheet tokens, Appearance API, device sizes (375pt/428pt/tablet). expo-font, expo-image. Reanimated animations.

Red Flags (Mobile-Specific)

  • System default colors or generic palettes used.
  • Display font is San Francisco, Roboto, or system default.
  • Generic centered card grid with no native consideration.
  • Animations use width, height, or margin transitions.
  • No AccessibilityInfo reduced-motion check.
  • Web patterns (hover, tooltips) suggested in a mobile app.
  • Code generated before DESIGN.md confirmed or PLAN created.

Verification

  • DESIGN.md exists in project root.
  • design/DESIGN-LOCK.md exists with approved decisions.
  • Theme provider or StyleSheet.create contains tokens.
  • accessibilityLabel on every element. Reduced-motion check exists.
  • Build passes (eas build or expo prebuild).
  • No generic system color utilities.
  • Animation code only touches transform and opacity.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.