{
  "schemaVersion": "1.0",
  "item": {
    "slug": "mobile",
    "name": "Mobile",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/mobile",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/mobile",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/mobile",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=mobile",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "mobile",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-05T17:29:41.038Z",
      "expiresAt": "2026-05-12T17:29:41.038Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=mobile",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=mobile",
        "contentDisposition": "attachment; filename=\"mobile-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "mobile"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/mobile"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/mobile",
    "agentPageUrl": "https://openagent3.xyz/skills/mobile/agent",
    "manifestUrl": "https://openagent3.xyz/skills/mobile/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/mobile/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Lifecycle Awareness",
        "body": "App can be killed anytime in background—save state before backgrounding\nRestore state on return—user expects to continue where they left off\nHandle low memory warnings—release caches, non-essential resources\nBackground tasks have time limits—complete or request extension"
      },
      {
        "title": "Permissions",
        "body": "Ask in context, not at launch—explain why when requesting\nDegrade gracefully if denied—app should still work with reduced features\nDon't ask for unnecessary permissions—users notice and distrust\nRe-request after demonstrating value—not immediately after denial"
      },
      {
        "title": "Offline First",
        "body": "Assume network is unreliable—design for offline, sync when possible\nCache aggressively—previous content better than loading spinner\nQueue actions for retry—don't fail on network error\nConflict resolution strategy—last write wins or manual merge\nShow sync status—user should know if data is current"
      },
      {
        "title": "Performance",
        "body": "Target 60fps—dropped frames feel janky\nMain thread for UI only—heavy work on background threads\nMemory matters more than desktop—constrained devices, aggressive OS killing\nBattery awareness—reduce location polling, network requests when possible\nStartup time under 2 seconds—first impression matters"
      },
      {
        "title": "Navigation Patterns",
        "body": "Follow platform conventions—iOS back gesture, Android back button\nNavigation stack manageable—don't go 10 levels deep\nDeep link to any screen—shareable, notification taps work\nPreserve scroll position on return—don't jump to top"
      },
      {
        "title": "Notifications",
        "body": "Push for time-sensitive external events—new message, delivery update\nLocal for reminders, timers—user-initiated\nDon't spam—users will disable; quality over quantity\nActionable when possible—reply, mark done from notification\nGroup related notifications—less intrusive"
      },
      {
        "title": "Deep Linking",
        "body": "Universal Links (iOS) / App Links (Android) for owned domains\nHandle gracefully when app not installed—fallback to web\nParse parameters safely—malicious links exist\nTest all entry points—not just main launch"
      },
      {
        "title": "Storage",
        "body": "Secure storage for tokens, credentials—Keychain, Keystore\nUser data survives reinstall where appropriate—cloud backup\nCache is cache—can be cleared; don't store critical data\nLarge files: consider on-demand download—not bundled in app"
      },
      {
        "title": "Input Handling",
        "body": "Keyboard avoidance—content shifts to stay visible\nDismiss keyboard appropriately—tap outside, scroll, submit\nInput accessories for relevant actions—next field, done, toolbar\nPaste, autofill support—reduce typing on small keyboards"
      },
      {
        "title": "Touch and Gestures",
        "body": "44pt minimum touch target—consistent with platform guidelines\nSystem gestures reserved—don't override swipe from edge\nGesture discoverability—hint or teach, don't assume knowledge\nHaptic feedback for significant actions—confirmation, errors"
      },
      {
        "title": "Accessibility",
        "body": "VoiceOver (iOS) / TalkBack (Android) testing—navigate entire app\nDynamic type support—text scales with user preference\nSufficient contrast—check in accessibility inspector\nLabels on all interactive elements—not just visible text"
      },
      {
        "title": "Testing",
        "body": "Real devices essential—simulators miss performance, sensors, edge cases\nMultiple OS versions—support at least current minus 2\nDifferent screen sizes—small phones to tablets\nNetwork conditions—slow, intermittent, offline"
      },
      {
        "title": "App Store Survival",
        "body": "Read rejection reasons before submitting—common pitfalls documented\nPrivacy policy required—explain data collection\nLogin test account for reviewers—if auth required\nNo placeholder content—everything functional in review build\nUpdate regularly—abandoned apps get deprioritized"
      }
    ],
    "body": "Lifecycle Awareness\nApp can be killed anytime in background—save state before backgrounding\nRestore state on return—user expects to continue where they left off\nHandle low memory warnings—release caches, non-essential resources\nBackground tasks have time limits—complete or request extension\nPermissions\nAsk in context, not at launch—explain why when requesting\nDegrade gracefully if denied—app should still work with reduced features\nDon't ask for unnecessary permissions—users notice and distrust\nRe-request after demonstrating value—not immediately after denial\nOffline First\nAssume network is unreliable—design for offline, sync when possible\nCache aggressively—previous content better than loading spinner\nQueue actions for retry—don't fail on network error\nConflict resolution strategy—last write wins or manual merge\nShow sync status—user should know if data is current\nPerformance\nTarget 60fps—dropped frames feel janky\nMain thread for UI only—heavy work on background threads\nMemory matters more than desktop—constrained devices, aggressive OS killing\nBattery awareness—reduce location polling, network requests when possible\nStartup time under 2 seconds—first impression matters\nNavigation Patterns\nFollow platform conventions—iOS back gesture, Android back button\nNavigation stack manageable—don't go 10 levels deep\nDeep link to any screen—shareable, notification taps work\nPreserve scroll position on return—don't jump to top\nNotifications\nPush for time-sensitive external events—new message, delivery update\nLocal for reminders, timers—user-initiated\nDon't spam—users will disable; quality over quantity\nActionable when possible—reply, mark done from notification\nGroup related notifications—less intrusive\nDeep Linking\nUniversal Links (iOS) / App Links (Android) for owned domains\nHandle gracefully when app not installed—fallback to web\nParse parameters safely—malicious links exist\nTest all entry points—not just main launch\nStorage\nSecure storage for tokens, credentials—Keychain, Keystore\nUser data survives reinstall where appropriate—cloud backup\nCache is cache—can be cleared; don't store critical data\nLarge files: consider on-demand download—not bundled in app\nInput Handling\nKeyboard avoidance—content shifts to stay visible\nDismiss keyboard appropriately—tap outside, scroll, submit\nInput accessories for relevant actions—next field, done, toolbar\nPaste, autofill support—reduce typing on small keyboards\nTouch and Gestures\n44pt minimum touch target—consistent with platform guidelines\nSystem gestures reserved—don't override swipe from edge\nGesture discoverability—hint or teach, don't assume knowledge\nHaptic feedback for significant actions—confirmation, errors\nAccessibility\nVoiceOver (iOS) / TalkBack (Android) testing—navigate entire app\nDynamic type support—text scales with user preference\nSufficient contrast—check in accessibility inspector\nLabels on all interactive elements—not just visible text\nTesting\nReal devices essential—simulators miss performance, sensors, edge cases\nMultiple OS versions—support at least current minus 2\nDifferent screen sizes—small phones to tablets\nNetwork conditions—slow, intermittent, offline\nApp Store Survival\nRead rejection reasons before submitting—common pitfalls documented\nPrivacy policy required—explain data collection\nLogin test account for reviewers—if auth required\nNo placeholder content—everything functional in review build\nUpdate regularly—abandoned apps get deprioritized"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/mobile",
    "publisherUrl": "https://clawhub.ai/ivangdavila/mobile",
    "owner": "ivangdavila",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/mobile",
    "downloadUrl": "https://openagent3.xyz/downloads/mobile",
    "agentUrl": "https://openagent3.xyz/skills/mobile/agent",
    "manifestUrl": "https://openagent3.xyz/skills/mobile/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/mobile/agent.md"
  }
}