Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add sparesparrow/mcp-project-orchestrator --skill adbgit clone --depth 1 https://github.com/sparesparrow/mcp-project-orchestratorWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/sparesparrow/mcp-project-orchestrator/adb)<a href="https://agentmods.dev/skills/sparesparrow/mcp-project-orchestrator/adb"><img src="https://agentmods.dev/badge/skills/sparesparrow/mcp-project-orchestrator/adb/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/sparesparrow/mcp-project-orchestrator/adb"><img src="https://agentmods.dev/badge/skills/sparesparrow/mcp-project-orchestrator/adb.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00069 | $0.02553 |
| Opus 5.5 | $0.00028 | $0.01021 |
| Sonnet 5.5 | $0.00014 | $0.00511 |
| Haiku 4.5 | $0.00007 | $0.00255 |
Grade A, and why
adb scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 80 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ADB / Fastboot Android Control
Never assume the device is connected, unlocked or rooted. Establish facts, then act. $ARGUMENTS is a free-form intent ("screenshot", "connect 192.168.1.5", "root my moto g54 5G"); if empty, run triage and summarize options.
For multi-step or state-changing work (rooting, unlocking, flashing), behave as the adb agent (agents/adb.md, user or project .claude/agents/) and follow the phased plan in references/example-root-plan.md.
Interaction protocol (state-changing tasks): plan first, then ask
- Enter plan mode first (EnterPlanMode, the
/planequivalent) before anything that could change the device. In plan mode do only read-only work:doctor.sh,triage.py, research (XDA first), reading the playbooks. - Ask the user questions with AskUserQuestion using the catalogue in
references/questions.md(backup method, firmware source, root method, restore, carrier). Ask only what triage/the request doesn't already answer. Put your recommendation first. - Write the plan (phases, exact commands, expected result per step, gates), then ExitPlanMode for approval. Plan approval is not approval of later state-changing commands.
- Execute phase by phase, confirming each state-changing command (rules below) and logging expected vs actual.
- Headless / subagent (no interactive user, cannot enter plan mode): do steps 1–3 on paper only: list the questions with recommended answers in the plan and stop; never answer them yourself.
Read-only/everyday requests (screenshot, list packages, logcat) skip plan mode.
Toolbox (paths relative to this skill directory: ~/.claude/skills/adb/ or .claude/skills/adb/ in a project)
| Tool | Use |
|---|---|
adb MCP server (mcp__adb__*, ~90 tools, a local venv install) |
Everyday device work: apps, files, input, UI dump, logs, screenshots, port forwards. Structured JSON, injection-safe args. Shell escape hatch is OFF (ADB_MCP_ALLOW_SHELL unset). No fastboot support. |
scripts/doctor.sh |
Read-only preflight: adb/fastboot/python/aapt/udev. |
python3 -I scripts/triage.py [serial] |
Read-only JSON: adb/fastboot/USB state, device props, verdict. Decide from this. |
scripts/fastboot_facts.sh [serial] |
Read-only JSON of fastboot getvar all (slot, unlocked, partitions, init_boot/vbmeta). |
scripts/fetch_magisk.sh [--dry-run] |
Latest official Magisk APK from github.com/topjohnwu/Magisk, prints sha256. Does not install. |
scripts/flash_guarded.sh <part>_<slot> <img> --serial S --product CODENAME [--yes-i-confirmed] |
Allowlisted flash (boot, init_boot, vendor_boot, recovery, vbmeta*). Checks image header, size, and via fastboot getvar: product, unlocked, current-slot = requested slot, partition size. Dry-run unless --yes-i-confirmed, which you pass only after the user approved that exact command. Derive <slot> from fastboot getvar current-slot right before flashing. |
scripts/magisk_host_patch.sh --apk A --boot stock.img --out patched.img [--preinit metadata] |
Patch a stock boot image with Magisk on the Linux host (static magiskboot from the APK; mirrors Magisk's boot_patch.sh). No phone UI. Never flashes. |
scripts/remote_zip_extract.py URL OUTDIR member... |
Pull single members (e.g. boot.img) out of a remote firmware zip with HTTP Range requests; --list lists members. |
references/field-notes-moto-g54-cancunf.md |
Verified end-to-end run on a moto g54 5G without a Windows PC: what worked, dead ends, verification checklist. |
references/questions.md |
AskUserQuestion catalogue (backup method, firmware source, root method, restore, carrier). |
references/safety.md |
Gates and never-touch list. Read before any fastboot step. |
references/browser-steps.md |
Website steps (OEM unlock portal, Motorola/Lenovo account, password reset, verification email, firmware sites): browser MCP / Playwright / manual routes, plus who does what. |
references/firmware-sources.md |
Where to get stock firmware per OEM (Motorola researched; others TODO) and how to match builds. |
references/bootloader-root.md |
Generic unlock → Magisk → verify → rollback flow. |
references/playbooks/motorola.md, other-oems.md |
OEM-specific unlock and root details. |
references/recipes.md |
Everyday CLI recipes and APK sourcing rules. |
What ships with it
19 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/bootloader-root.md 4.5 KB
- references/browser-steps.md 4.6 KB
- references/CHANGELOG.md 6.5 KB
- references/example-root-plan.md 7.9 KB
- references/field-notes-moto-g54-cancunf.md 8.4 KB
- references/firmware-sources.md 7.8 KB
- references/playbooks/motorola.md 5.3 KB
- references/playbooks/other-oems.md 1.8 KB
- references/questions.md 3.9 KB
- references/recipes.md 3.3 KB
- references/safety.md 2.1 KB
- scripts/doctor.sh 2.7 KB runs code
- scripts/fastboot_facts.sh 1.5 KB runs code
- scripts/fetch_magisk.sh 1.5 KB runs code
- scripts/flash_guarded.sh 4.5 KB runs code
- scripts/magisk_host_patch.sh 4.1 KB runs code
- scripts/remote_zip_extract.py 2.3 KB runs code
- scripts/triage.py 4.9 KB runs code
- scripts/watch_and_verify.sh 1.6 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 80 lines · 69 tokens per session scan A d6b99fd15910
adb is a skill published in the GitHub repository sparesparrow/mcp-project-orchestrator (17 stars, last pushed 5d ago), licensed MIT. It adds 69 tokens to every session and 2,553 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-08.
Other skills, from other repositories
developer-device-platform-basics
Provides guidance and instructions on managing remote devices on Developer Device Platform (DDP). Use when reserving remote Android devices, establishing connection tunnels, checking session status, or extending/cancelling leases. Don't use for iOS or local device/hardware inquiries.
camerax
Provide technical guidance for Android camera development with CameraX. Use when implementing camera features, handling asynchronous recording lifecycles, wiring low-level hardware interop using CameraX, or integrating ML Kit or Media3 effects.
mobile-platform-native-capabilities-integrate
Build a Salesforce LWC that uses native mobile device capabilities — barcode scanner, biometrics, location, NFC, calendar, contacts, document scanner, geofencing, AR space capture, app review, and payments. Use this skill when the user asks for an LWC that scans a barcode, captures a photo of a document, reads…
audio-skill
Control Android audio - get/set volume, mute/unmute for media, ringtone, notification, and call volumes.
motion-skill
Get Android motion sensor data - accelerometer, gyroscope, detect motion, shake gestures, and device orientation.
wifi-skill
Control Android WiFi - enable, disable, get status, scan for networks, and get current connection info.