Skip to content

[Bug] android-cli skill should ask the user to install rather than auto-installing #61

@blundell

Description

@blundell

Affected Skill

devtools/android-cli

Description

The android-cli skill instructs the agent to install the Android CLI onto the user's machine via curl | bash if it's not found in PATH. This is a system-wide install, not a project-scoped dependency. The skill is written as an imperative instruction to the agent ("install it") rather than informing the user and letting them decide.

This is inconsistent with how other skills in this repo handle external dependencies. Skills like device-ai/appfunctions, system/edge-to-edge, jetpack-compose/adaptive, and xr/display-glasses-with-jetpack-compose-glimmer all use a Prerequisites section that declares what's needed without instructing the agent to install it. For example, appfunctions states:

▎ The app must targetSdk 36 or newer and use compileSdk 37 or newer

The android-cli skill could follow the same pattern.

Expected Behavior

The skill should check whether android is in PATH and, if missing, inform the user with installation instructions for their platform — letting them choose to install. This matches the Prerequisites pattern used by other skills in the repo.

Actual Behavior

The skill tells the agent to run the install directly:

If the android tool is not in the path, install it. To install run the following command: Linux: curl -fsSL https://dl.google.com/android/cli/latest/linux_x86_64/install.sh | bash

The agent treats this as an instruction to execute, not a suggestion to present. While agent runtimes may gate shell execution behind a permission prompt, the skill's intent is "do this" not "ask the user about this."

Steps to Reproduce

  1. Use any supported model (tested with Claude Opus via Claude Code)
  2. Invoke the android-cli skill in a project where the android CLI is not installed
  3. The agent attempts to run curl -fsSL .../install.sh | bash as part of its workflow

Suggested Fix

Change the Installation section from an imperative "install it" to a prerequisite check with user notification:

  ## Prerequisites

  This skill requires the `android` CLI tool to be in PATH. If it is not installed,
  inform the user and provide the installation instructions for their platform:
  - Linux: `curl -fsSL https://dl.google.com/android/cli/latest/linux_x86_64/install.sh | bash`
  - Mac Arm: `curl -fsSL https://dl.google.com/android/cli/latest/darwin_arm64/install.sh | bash`
  - Mac Intel: `curl -fsSL https://dl.google.com/android/cli/latest/darwin_x86_64/install.sh | bash`
  - Windows: `curl -fsSL https://dl.google.com/android/cli/latest/windows_x86_64/install.cmd -o "%TEMP%\i.cmd" && "%TEMP%\i.cmd"`

Additionally, consider adding a metadata field to the skill frontmatter (e.g. external-tools: [android-cli]) to let agents and users distinguish skills with system-level dependencies from pure guidance skills. 5 of 18 skills already use a Prerequisites section — standardising this pattern across all skills would improve consistency.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions