From adb-ops
First-run onboarding for the adb-ops plugin. Interview the user about the Android device connected via ADB — model, Android version, rooted status — then collect folder mappings (phone path to local path, with labels and use cases). Writes profile and mappings to the adb-ops workspace at <workspace>/. Use this before any other adb-ops skill, or whenever the user wants to add a new phone folder mapping.
How this skill is triggered — by the user, by Claude, or both
Slash command
/adb-ops:onboardThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Establish the persistent profile for a phone the user manages via ADB.
Establish the persistent profile for a phone the user manages via ADB.
Before resolving the workspace, check for legacy data at ~/.claude/adb-ops/. If the legacy directory exists AND the new workspace is empty, move every file (profile.yaml, mappings.yaml, bloatware-log.jsonl, devices/) to the new location and delete the legacy directory. Tell the user: "Migrated adb-ops workspace from ~/.claude/adb-ops/ to ."
Resolve the workspace directory as $CLAUDE_USER_DATA/adb-ops/ if CLAUDE_USER_DATA is set; otherwise $XDG_DATA_HOME/claude-plugins/adb-ops/ if XDG_DATA_HOME is set; otherwise ~/.local/share/claude-plugins/adb-ops/. Create the directory if it doesn't exist. See the canonical convention in the claude-rudder:plugin-data-storage skill. Referred to as <workspace>/ throughout this plugin.
<workspace>/profile.yaml — ask the user whether to run onboarding first.adb installed on the host (which adb). If missing, tell the user how to install it (sudo apt install adb on Debian/Ubuntu) and stop.adb devices — if the device shows unauthorized, prompt the user to accept the dialog.Create workspace at <workspace>/ if it does not exist.
Detect device and pre-fill what ADB already knows:
adb devices -l
adb shell getprop ro.product.manufacturer
adb shell getprop ro.product.model
adb shell getprop ro.build.version.release
adb shell su -c id 2>/dev/null # rooted check — if exit 0 and uid=0, rooted
Interview the user for anything ADB can't auto-detect:
Collect folder mappings — loop until the user says they're done. For each:
camera-photos)./sdcard/DCIM/Camera). Verify it exists: adb shell ls -d <path>.~/Pictures/Phone/Camera). Create it if missing and the user agrees.pull (default), push, or bidirectional.Suggest common starter mappings if the user asks: camera photos (/sdcard/DCIM/Camera), screenshots (/sdcard/Pictures/Screenshots), downloads (/sdcard/Download), voice recorder (/sdcard/Recordings).
Write profile.yaml and mappings.yaml following the schema in skills/_shared/workspace.md. Use captured_at with ISO-8601 local time.
Summary: print the profile and mappings back to the user, show the workspace path, and list the sibling skills they can now invoke (device-status, take-screenshot, import-media, remove-bloatware, bloatware-log, pull-folder, push-folder).
If profile.yaml already exists, offer three paths:
mappings.yaml)..bak suffix first).Never silently overwrite existing mappings.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin adb-opsGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.