agentleFS
FoneClaw-AIFoneClaw-AI/foneclaw-android/skills/openApp/SKILL.md

OpenAppSkill

Skill21 starsChanged 4 months agoMITView on GitHub

Guide the Android agent to open an app, and use Google Play lookup and install tools when the app is missing.

The file

Show its rules and text

We split this skill into the rules it gives an agent

38 rules. About 0 are common, 27 are distinctive, and 11 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈27

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 11

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    When the user says "open," "launch," "enter," "use," "open," "launch," or "go to," treat it as an open intent.

    line 28
  2. Distinctive:

    When the user says "download," "install," "get," "install," or "download," treat it as an install intent.

    line 29
  3. Very specific:

    When the user asks to "install then open," after a successful install you must call launch_app.

    line 30
  4. Distinctive:

    When the user explicitly says "install only," "download only," or "do not open," stop after installation.

    line 31
  5. Distinctive:

    When the user provides neither an app name nor a package name, first ask which app to open.

    line 32
  6. Very specific:

    If launch_app completes normally, the task is complete.

    line 39
  7. Distinctive:

    If the Tool failure says the app was not found, proceed to package-name resolution and the Google Play lookup flow.

    line 40
  8. Distinctive:

    If the Tool failure says the match is ambiguous, let the user choose one of the returned candidate package names.

    line 41
  9. Distinctive:

    If the Tool failure reports no launcher entry, a system denial, or another launch failure, stop and report the reason.

    line 42
  10. Distinctive:

    Only skip this step when the user explicitly asks to "download only / install only."

    line 43
  11. Distinctive:

    If the user provided a valid Android package name, use it directly.

    line 47
  12. Very specific:

    If only an app name is available, use web_search to find the exact package name, preferring official or Google Play results.

    line 48
  13. Distinctive:

    Prefer recognizing Google Play URLs in this form:

    line 49
  14. Distinctive:

    When recording candidates, keep at least:

    line 61
  15. Distinctive:

    If multiple candidates are reasonable, ask the user to choose.

    line 68
  16. Distinctive:

    If the exact package name cannot be reliably determined, stop and state that the package name could not be confirmed.

    line 69
  17. Distinctive:

    If the normal query result says the Google Play listing is available, proceed to install.

    line 75
  18. Distinctive:

    If the normal query result says the listing was not found, stop and state that this exact package name is not listed on Google Play.

    line 76
  19. Distinctive:

    If another regional-variant candidate exists, you must first ask the user whether to switch.

    line 77
  20. Distinctive:

    If the Tool fails because of HTTP, network, or package-name validation, stop and report that the Google Play lookup could not be completed.

    line 78
  21. Very specific:

    Call play_store_install only after the normal play_store_check_app result confirms that the listing is available.

    line 82
  22. Very specific:

    If play_store_install completes normally, the installation succeeded.

    line 84
  23. Very specific:

    If the Tool failure says the app is already installed, treat it as installed.

    line 85
  24. Very specific:

    If the user's original goal is to open, launch, enter, or use the app, after a successful install you must call launch_app, using the exact …

    line 91
  25. Very specific:

    If a subsequent task depends on the app already being in the foreground, you must also call launch_app after a successful install.

    line 92
  26. Distinctive:

    If the user only asks to download/install, or explicitly says not to open, stop after a successful install.

    line 93
  27. Very specific:

    If launch_app after install fails, stop and report the failure reason.

    line 94
  28. Distinctive:

    Stop immediately and explain the reason when any of the following occurs:

    line 98
  29. Distinctive:

    Use Google Play tools only when the app is not installed or the user explicitly asks to install.

    line 112
  30. Very specific:

    Use play_store_check_app as the gate step for Google Play lookup and installability.

    line 113
  31. Very specific:

    Use play_store_install as the Google Play download/install step.

    line 114
  32. Distinctive:

    Always use the exact package name when calling Google Play tools.

    line 115
  33. Distinctive:

    Do not fabricate package names.

    line 116
  34. Distinctive:

    Do not install third-party APKs.

    line 117
  35. Distinctive:

    Do not claim to support installation from third-party app stores in the China region.

    line 118
  36. Distinctive:

    Do not silently swap regional variants or similar products.

    line 119
  37. Distinctive:

    Do not rely on cached installed-state, historical search results, or previous tool results.

    line 120
  38. Distinctive:

    Stop and report on any failure, unless the user explicitly asks to try an alternative or retry.

    line 121

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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

Open App Skill

Skill Name

Open App

Description

Use this skill when the user asks to open, launch, enter, or use an Android app. The core goal is to bring the user-specified app to the foreground. Only when the app is not installed, or the user explicitly asks to download/install it, do you enter the Google Play lookup and install flow.

This skill must fail fast. Do not, on failure, try other apps, other regional variants, third-party app stores, or fuzzy substitutes unless the user explicitly asks.

Required Tools

  • launch_app: Open a launchable app by Android package name or installed app display name.
  • web_search: Query official Google Play links, package names, and regional variant information when needed.
  • play_store_check_app: Check whether an app exists on Google Play using an exact package name.
  • play_store_install: Open the Google Play detail page for an exact package name, tap Install, and wait for installation to finish.

Intent Rules

  1. When the user says "open," "launch," "enter," "use," "open," "launch," or "go to," treat it as an open intent.
  2. When the user says "download," "install," "get," "install," or "download," treat it as an install intent.
  3. When the user asks to "install then open," after a successful install you must call launch_app.
  4. When the user explicitly says "install only," "download only," or "do not open," stop after installation; do not open the app.
  5. When the user provides neither an app name nor a package name, first ask which app to open.

Main Workflow

1. Open First For Open Intent

  1. For an open intent, call launch_app first, using the app name or package name from the user's current request.
  2. If launch_app completes normally, the task is complete. Do not infer success from a text prefix.
  3. If the Tool failure says the app was not found, proceed to package-name resolution and the Google Play lookup flow.
  4. If the Tool failure says the match is ambiguous, let the user choose one of the returned candidate package names. Do not install any app before the user confirms.
  5. If the Tool failure reports no launcher entry, a system denial, or another launch failure, stop and report the reason. Do not treat Google Play as a universal fix.
  6. Only skip this step when the user explicitly asks to "download only / install only."

2. Resolve Exact Package Name

  1. If the user provided a valid Android package name, use it directly.
  2. If only an app name is available, use web_search to find the exact package name, preferring official or Google Play results.
  3. Prefer recognizing Google Play URLs in this form:

    https://play.google.com/store/apps/details?id=<packageName>

  4. Recommended queries:
    • <app name> Android Google Play package name
    • site:play.google.com/store/apps/details <app name> Android
    • <app name> official Android app packageName
  5. For apps with regional variants, also query regional package names, but do not treat regional variants as interchangeable apps:
    • <app name> global Android package name
    • <app name> China region Android package name
    • <app name> domestic version Android packageName
  6. When recording candidates, keep at least:
    • app_name
    • publisher
    • region
    • packageName
    • source_url
  7. Accept a candidate package name only when the app name, publisher, region, and product identity all strongly match.
  8. If multiple candidates are reasonable, ask the user to choose. Do not default to installing the first search result.
  9. If the exact package name cannot be reliably determined, stop and state that the package name could not be confirmed.

3. Check App In Google Play

  1. For an install intent, or after launch_app reports that the app was not found, you must call play_store_check_app.
  2. play_store_check_app accepts only a single exact package name. Do not pass app names, search terms, or fuzzy candidates.
  3. If the normal query result says the Google Play listing is available, proceed to install.
  4. If the normal query result says the listing was not found, stop and state that this exact package name is not listed on Google Play.
  5. If another regional-variant candidate exists, you must first ask the user whether to switch. Do not automatically replace Douyin with TikTok, or treat another regional version as the same app.
  6. If the Tool fails because of HTTP, network, or package-name validation, stop and report that the Google Play lookup could not be completed.

4. Install From Google Play

  1. Call play_store_install only after the normal play_store_check_app result confirms that the listing is available.
  2. play_store_install accepts only an exact package name. Do not pass app names, search terms, or URLs.
  3. If play_store_install completes normally, the installation succeeded.
  4. If the Tool failure says the app is already installed, treat it as installed; if the original intent requires opening, continue with launch_app.
  5. For any other Tool failure, stop and report the reason. When the outcome is unknown, ask the user to check Google Play or installed apps before any retry.

5. Open After Install When Needed

  1. Remember that play_store_install is only responsible for downloading/installing; it does not open the app.
  2. If the user's original goal is to open, launch, enter, or use the app, after a successful install you must call launch_app, using the exact package name just installed.
  3. If a subsequent task depends on the app already being in the foreground, you must also call launch_app after a successful install.
  4. If the user only asks to download/install, or explicitly says not to open, stop after a successful install.
  5. If launch_app after install fails, stop and report the failure reason. Do not switch apps or stores.

Stop Conditions

Stop immediately and explain the reason when any of the following occurs:

  1. The user has not provided a target app.
  2. The exact package name cannot be reliably determined.
  3. Multiple candidate apps or regional variants are all reasonable and require user selection.
  4. launch_app fails for a reason other than not-installed or ambiguous candidates.
  5. play_store_check_app shows the exact package name is not listed on Google Play.
  6. The Google Play lookup fails, the network fails, or the package name is invalid.
  7. Google Play installation fails, times out, is interrupted, or shows a paid/purchase/subscription/pre-registration/update-only entry.
  8. The user denies the open or install approval.

Behavior Requirements

  • For open-type requests, always try launch_app first.
  • Use Google Play tools only when the app is not installed or the user explicitly asks to install.
  • Use play_store_check_app as the gate step for Google Play lookup and installability.
  • Use play_store_install as the Google Play download/install step.
  • Always use the exact package name when calling Google Play tools.
  • Do not fabricate package names.
  • Do not install third-party APKs.
  • Do not claim to support installation from third-party app stores in the China region.
  • Do not silently swap regional variants or similar products; a regional-variant switch must be confirmed by the user.
  • Do not rely on cached installed-state, historical search results, or previous tool results; treat each task according to the current tool's return value.
  • Stop and report on any failure, unless the user explicitly asks to try an alternative or retry.

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.