oma-mobile
Skill1 starsChanged 51 days agoMITView on GitHub
Mobile specialist for Flutter, React Native, and Swift native iOS
We split this skill into the rules it gives an agent
13 rules. 10 are common, 0 are distinctive, and 3 are very specific to this project.
10
Common
Most of the 4 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Common: line 32
Test expectations for unit, widget, integration, or Maestro E2E coverage
- Common: line 58
ACQUIRE: Read existing widgets/screens, providers/blocs, API clients, and tests.
- Very specific: line 60
VERIFY: Run relevant unit/widget/integration/E2E checks.
- Common: line 64
If business logic is complex, keep it in domain/data layers before presentation.
- Common: line 65
If network calls are needed, use Dio with interceptors and offline handling.
- Common: line 66
If a critical user flow changes, add or update Maestro E2E coverage.
- Common: line 67
If backend contracts are missing, coordinate with backend/API work.
- Common: line 70
If platform SDK or emulator is unavailable, report verification limits.
- Common: line 71
If a permission or native capability is missing, add explicit platform configuration or document blocker.
- Common: line 72
If tests fail, fix before handoff or report the failing check.
- Very specific: line 123
All controllers disposed in dispose() method
- Very specific: line 124
Use the platform transport with auth/retry/logging interception and offline handling: Flutter uses Dio, React Native uses axios behind …
- Common: line 126
Use Maestro for E2E testing of critical user flows
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Mobile Agent - Cross-Platform Mobile Specialist
Scheduling
Goal
Build, modify, and verify cross-platform mobile application features with clean architecture, platform-appropriate UI, state management, performance, and E2E coverage.
Intent signature
- User asks for mobile app, Flutter, Dart, React Native, iOS, Android, Riverpod, widgets, camera, GPS, push notifications, or offline-first work.
- User needs native or cross-platform mobile behavior rather than web frontend work.
When to use
- Building native mobile applications (iOS + Android)
- Mobile-specific UI patterns
- Platform features (camera, GPS, push notifications)
- Offline-first architecture
When NOT to use
- Web frontend -> use Frontend Agent
- Backend APIs -> use Backend Agent
Expected inputs
- Target screen, widget, feature, platform capability, or mobile flow
- Existing app architecture, state management pattern, API contract, and platform constraints
- Test expectations for unit, widget, integration, or Maestro E2E coverage
Expected outputs
- Mobile code changes in domain, data, presentation, platform, or test files
- UI aligned with Material Design 3 and iOS HIG as applicable
- Verification results from mobile checks and critical-flow tests
Dependencies
- Flutter/Dart or React Native toolchain as detected from the project
- Riverpod/Bloc, Dio, platform SDKs, and Maestro where applicable
resources/execution-protocol.md, examples, snippets, checklist, and screen template
Control-flow features
- Branches by platform, state management pattern, offline requirement, native permission, and test level
- Reads and writes mobile codebase files
- May call build, test, simulator, emulator, or E2E commands
Structural Flow
Entry
- Identify target platform(s), screen/feature, architecture layer, and state boundary.
- Inspect existing mobile patterns and dependencies.
- Determine test level and verification environment.
Scenes
- PREPARE: Load app architecture, platform constraints, and acceptance criteria.
- ACQUIRE: Read existing widgets/screens, providers/blocs, API clients, and tests.
- ACT: Implement mobile UI, state, platform integration, offline handling, and tests.
- VERIFY: Run relevant unit/widget/integration/E2E checks.
- FINALIZE: Report behavior, platforms covered, and verification results.
Transitions
- If business logic is complex, keep it in domain/data layers before presentation.
- If network calls are needed, use Dio with interceptors and offline handling.
- If a critical user flow changes, add or update Maestro E2E coverage.
- If backend contracts are missing, coordinate with backend/API work.
Failure and recovery
- If platform SDK or emulator is unavailable, report verification limits.
- If a permission or native capability is missing, add explicit platform configuration or document blocker.
- If tests fail, fix before handoff or report the failing check.
Exit
- Success: mobile feature works for target platforms and passes relevant checks.
- Partial success: platform, simulator, dependency, or verification gaps are explicit.
Logical Operations
Actions
| Action | SSL primitive | Evidence |
| Inspect mobile architecture | READ | Domain/data/presentation files |
| Select state and platform strategy | SELECT | Riverpod/Bloc and platform constraints |
| Implement mobile code | WRITE | Widgets, screens, providers, clients |
| Validate lifecycle and permissions | VALIDATE | Dispose, permissions, offline behavior |
| Call verification tools | CALL_TOOL | Tests, builds, Maestro |
| Report result | NOTIFY | Final summary |
Tools and instruments
- Flutter/Dart or React Native stack
- Riverpod/Bloc, Dio, platform SDKs, Maestro
- Unit, widget, integration, and E2E test commands
Canonical workflow path
rg --files
rg "Riverpod|Bloc|Dio|Widget|Maestro|dispose\\(|permission" .Then run the project's mobile verification commands, typically unit/widget tests and Maestro E2E for critical flows.
Resource scope
| Scope | Resource target |
CODEBASE | Mobile source, tests, platform config |
LOCAL_FS | Templates, snippets, resources |
PROCESS | Build, test, emulator, simulator, E2E commands |
NETWORK | Backend APIs when the feature integrates remotely |
Preconditions
- Target mobile feature and platform scope are identifiable.
- Required SDKs, permissions, and API contracts are available or assumptions are stated.
Effects and side effects
- Mutates mobile source, tests, and platform configuration.
- May affect permissions, app lifecycle, offline data, or performance.
Guardrails
- Clean Architecture: domain -> data -> presentation
- Riverpod/Bloc for state management (no raw setState for complex logic)
- Material Design 3 (Android) + iOS HIG (iOS)
- All controllers disposed in
dispose()method - Use the platform transport with auth/retry/logging interception and offline handling: Flutter uses Dio, React Native uses axios behind TanStack Query, and Swift uses generated
Clientmiddleware. - 60fps target; test on both platforms
- Use Maestro for E2E testing of critical user flows
- Swift native: SwiftUI +
@MainActor @Observableview models (Observation framework, iOS 17+) — non-isolated VMs mutating observed state from aTaskare a Swift 6 strict-concurrency error - Swift native: use the generated
Clientfromswift-openapi-generator— never hand-rollURLRequest/JSONDecoderfor API calls - Swift native: cache API responses at the Repository layer via a
ResponseCacheactor overhyperoslo/Cache— cache DECODED models (neverHTTPBody), serve stale-while-revalidate on reads, invalidate keys on writes; view models depend on a protocol seam, not the concrete service (seevariants/swift-ios/snippets.md§10) - Swift native: follow
App/Core/Features/Sharedproject layout - Swift native: iOS Human Interface Guidelines for all UI decisions
- Swift native: XCTest or Swift Testing for units, XCUITest for critical flows; cancel work via structured
.task {}(auto-cancels on disappear) — never indeinit, which is nonisolated and cannot touch@MainActorstate under Swift 6 (isolated deinit requires Swift 6.2+) - Swift native: restore edge swipe-back at the route layer — nav-bar-hidden screens (
.toolbar(.hidden, for: .navigationBar)) lose it, so register push routes via aswipeBackDestinationwrapper, not per-screen (seevariants/swift-ios/snippets.md§9) - Flutter: mandate a repository-layer offline-first cache (Drift) — read cached entities then revalidate (stale-while-revalidate), invalidate/refresh affected rows on every write; cache decoded entities at the data layer, never at the Dio transport (see
variants/flutter/snippets.md§3, §10) - React Native: server state goes through TanStack Query (the repository-layer cache) with explicit
staleTime/gcTime— invalidate affected query keys on every mutation, persist the cache to MMKV for offline; screens consume query/mutation hooks, never call axios directly (seevariants/react-native/snippets.md)
References
- Execution steps (follow for the selected task):
resources/execution-protocol.md - Code snippets (Swift):
variants/swift-ios/snippets.md - Code snippets (Flutter):
variants/flutter/snippets.md - Code snippets (React Native):
variants/react-native/snippets.md - Checklist (run before handoff):
resources/checklist.md - Error recovery:
resources/error-playbook.md - Tech stack index (all platforms):
resources/tech-stack.md - Tech stack (Swift):
variants/swift-ios/tech-stack.md - Tech stack (Flutter):
variants/flutter/tech-stack.md - Tech stack (React Native):
variants/react-native/tech-stack.md - Screen template (Flutter):
resources/screen-template.dart - Screen template (Swift):
resources/screen-template.swift - Screen template (React Native):
resources/screen-template.tsx - API service template (Swift):
variants/swift-ios/api-template.swift - API service template (Flutter):
variants/flutter/api-template.dart - API service template (React Native):
variants/react-native/api-template.ts - Variant registry:
variants/README.md - Context loading:
../_shared/core/context-loading.md - Clarification:
../_shared/core/clarification-protocol.md - Context budget:
../_shared/core/context-budget.md - Lessons learned:
../_shared/core/lessons-learned.md - Observability handoff:
../oma-observability/SKILL.md§Integrations — offline queuing, crash analytics, battery-aware sampling
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 4
- first-fluke/oh-my-ag★ 1.3k82% same
- first-fluke/oh-my-agent★ 1.3k82% same
- first-fluke/fullstack-starter★ 22382% same
- deathrashed/agents★ 194% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository115 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .cursor/rules/backend.mdcCursor rule
- .cursor/rules/commit.mdcCursor rule
- .cursor/rules/database.mdcCursor rule
- .cursor/rules/debug.mdcCursor rule
- .cursor/rules/design.mdcCursor rule
- .cursor/rules/dev-workflow.mdcCursor rule
- .cursor/rules/frontend.mdcCursor rule
- .cursor/rules/i18n-arb.mdcCursor rule
- .cursor/rules/i18n-guide.mdcCursor rule
- .cursor/rules/infrastructure.mdcCursor rule
- .cursor/rules/market.mdcCursor rule
- .cursor/rules/mobile.mdcCursor rule
- .cursor/rules/quality.mdcCursor rule
- beadsSkill
- gitnexus-area-adaptersSkill
- gitnexus-area-cliSkill
- gitnexus-area-contextSkill
- gitnexus-area-dashboardSkill
- gitnexus-area-detectorsSkill
- gitnexus-area-engineSkill
- gitnexus-area-enrichmentSkill
- gitnexus-area-hooksSkill
- gitnexus-area-installerSkill
- gitnexus-area-integrationSkill
- gitnexus-area-lintSkill
- gitnexus-area-payloadsSkill
- gitnexus-area-project-indexSkill
- gitnexus-area-resourcesSkill
- gitnexus-area-rules-2Skill
- gitnexus-area-rulesSkill
- gitnexus-area-scriptsSkill
- gitnexus-area-test-smellsSkill
- gitnexus-area-testsSkill
- gitnexus-area-uiSkill
- gitnexus-cliSkill
- gitnexus-debuggingSkill
- gitnexus-exploringSkill
- gitnexus-guideSkill
- gitnexus-impact-analysisSkill
- gitnexus-refactoringSkill
- impeccableSkill
- oma-academic-writingSkill
- oma-architectureSkill
- oma-backendSkill
- oma-brainstormSkill
- oma-coordinationSkill
- oma-dbSkill
- oma-debugSkill
- oma-deepsecSkill
- oma-designSkill
- oma-dev-workflowSkill
- oma-docsSkill
- oma-explanationSkill
- oma-frontendSkill
- oma-hwpSkill
- oma-imageSkill
- oma-marketSkill
- oma-observabilitySkill
- The first 60 shown.
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.

