Agent Skills: moai-domain-adb: ADB Automation Domain Specialist

|

UncategorizedID: rdmptv/adbautoplayer/moai-domain-adb

Install this agent skill to your local

pnpm dlx add-skill https://github.com/rdmptv/AdbAutoPlayer/tree/HEAD/.claude/skills/moai-domain-adb

Skill Files

Browse the full folder contents for moai-domain-adb.

Download Skill

Loading file tree…

.claude/skills/moai-domain-adb/SKILL.md

Skill Metadata

Name
moai-domain-adb
Description
|

moai-domain-adb: ADB Automation Domain Specialist

Tier 3 Modularized Skill for intelligent Android automation, game bot development, and real-time device orchestration.


🎯 Quick Reference

Core Competencies

| Domain | Capability | Module | |--------|-----------|--------| | Device Control | ADB connection, shell execution, property inspection | adb-fundamentals | | Device Management | Multi-device orchestration, state tracking, lifecycle | device-management | | Game Automation | Bot scripting, action sequences, timing control | game-automation | | Vision & Detection | Template matching, OCR, region-based detection | computer-vision | | Tauri Integration | UI-Python bridge, real-time communication, deployment | tauri-integration |

Key Functions (Quick Access)

Device Operations

# Check device status
adb devices --list-long

# Execute shell command
adb shell input tap 540 960

# Get device property
adb shell getprop ro.build.version.sdk

# Install APK
adb install -r game.apk

Bot Control

# Start bot
adb shell am start -n com.game/.MainActivity

# Send input sequence
adb shell input tap x y && sleep 1 && adb shell input tap x2 y2

# Capture screenshot
adb shell screencap -p /sdcard/screen.png

Module Selection Guide

Use when you need to...

  • Understand ADB fundamentals: Load adb-fundamentals module

    • Connection protocols, authentication, basic shell operations
    • Device discovery, property reading, system interaction
  • Manage multiple devices: Load device-management module

    • Device state tracking, connection pooling, failover strategies
    • Batch operations, monitoring, lifecycle management
  • Develop game bots: Load game-automation module

    • Click sequences, timing, OCR parsing, state detection
    • Custom routines, action templates, bot patterns
  • Use vision for detection: Load computer-vision module

    • Template matching (OpenCV), OCR (Tesseract)
    • Region-based detection, image analysis, pattern recognition
  • Integrate with Tauri UI: Load tauri-integration module

    • Real-time bot status updates, command queueing
    • UI ↔ Python communication, resource management

πŸ“š Implementation Guide

Architecture Overview

moai-domain-adb follows a 5-module progressive disclosure pattern:

moai-domain-adb/
β”œβ”€β”€ SKILL.md                    # This file (documentation hub)
β”œβ”€β”€ modules/
β”‚   β”œβ”€β”€ adb-fundamentals.md     # Level 1: Core ADB operations
β”‚   β”œβ”€β”€ device-management.md    # Level 2: Multi-device orchestration
β”‚   β”œβ”€β”€ game-automation.md      # Level 3: Bot development patterns
β”‚   β”œβ”€β”€ computer-vision.md      # Level 4: Vision-based detection
β”‚   └── tauri-integration.md    # Level 5: UI orchestration
└── scripts/                    # IndieDevDan UV scripts
    β”œβ”€β”€ adb_device_analyzer.py  # Analyze device capabilities
    β”œβ”€β”€ adb_bot_generator.py    # Generate bot skeletons
    β”œβ”€β”€ adb_template_creator.py # Create action templates
    β”œβ”€β”€ adb_performance_profiler.py  # Profile bot performance
    β”œβ”€β”€ adb_config_validator.py # Validate configurations
    β”œβ”€β”€ adb_game_tester.py      # Test bot on devices
    └── adb_deployment_helper.py # Deploy to production

Tier 3 Characteristics

βœ… Modularized: 5 independent modules (no cross-module imports) βœ… Production-Ready: 500+ line SKILL.md with comprehensive docs βœ… Scripted: 7 UV scripts following IndieDevDan 13 rules βœ… Delegatable: Works with expert-* and manager-* agents βœ… Reusable: Applicable to any Android automation project

Usage Pattern

# Pattern 1: Load skill for general ADB knowledge
Skill("moai-domain-adb")

# Pattern 2: Load specific module for targeted expertise
# In agent prompt: "Use moai-domain-adb:adb-fundamentals for device operations"

# Pattern 3: Reference UV script for automated tasks
# Command: uv run .claude/skills/moai-domain-adb/scripts/adb_device_analyzer.py --device emulator-5554

Integration Points

With Agents:

  • adb-bot-runner: Executes bots using game-automation patterns
  • adb-device-manager: Manages devices using device-management expertise
  • adb-game-tester: Tests bots using computer-vision and game-automation
  • adb-config-manager: Validates configs using config-validator script
  • adb-workflow-orchestrator: Coordinates all agents using tauri-integration patterns

With Commands:

  • /adb:init β†’ Uses adb-fundamentals + adb_device_analyzer
  • /adb:bot β†’ Uses game-automation + adb_bot_generator
  • /adb:test β†’ Uses computer-vision + adb_game_tester
  • /adb:deploy β†’ Uses tauri-integration + adb_deployment_helper

With UV Scripts: All 7 scripts are self-contained (zero dependencies on each other), follow PEP 723, and implement dual output (human-readable + JSON).

Progressive Disclosure Strategy

Level 1: Getting Started

  • Read: adb-fundamentals module
  • Run: adb_device_analyzer.py to list devices
  • Understand: Basic device connection and property reading

Level 2: Multi-Device Workflows

  • Read: device-management module
  • Understand: Connection pooling, state tracking, failover
  • Build: Scripts that manage 5+ devices simultaneously

Level 3: Game Bot Development

  • Read: game-automation module
  • Understand: Click sequences, timing control, OCR integration
  • Build: Custom routines for game-specific tasks

Level 4: Vision-Based Automation

  • Read: computer-vision module
  • Understand: Template matching, OCR parsing, region detection
  • Build: Bots that adapt to UI changes dynamically

Level 5: Production Orchestration

  • Read: tauri-integration module
  • Understand: Real-time UI updates, command queuing, resource management
  • Build: Enterprise workflows with Tauri UI control

πŸš€ Advanced Topics

Skill Composition Strategy

moai-domain-adb is designed for modular composition:

# Example 1: Simple device check
# Required: adb-fundamentals
agent = Task(
    subagent_type="expert-backend",
    prompt="Use moai-domain-adb:adb-fundamentals to list ADB devices"
)

# Example 2: Multi-device bot deployment
# Required: device-management + game-automation + tauri-integration
agent = Task(
    subagent_type="adb-workflow-orchestrator",
    prompt="Deploy game bot to 3 devices"
)

# Example 3: Vision-based testing
# Required: computer-vision + game-automation
agent = Task(
    subagent_type="adb-game-tester",
    prompt="Test bot with computer vision verification"
)

Performance Optimization

Device Batching:

  • Group commands by device to reduce round-trip latency
  • Use adb_performance_profiler.py to identify bottlenecks
  • Target: Execute 100 actions in <5 seconds

Caching Strategies:

  • Cache device properties (refreshed every 60s)
  • Cache template images (refreshed on detection failure)
  • Cache bot configurations (invalidated on user edit)

Concurrency:

  • Run multi-device operations with ThreadPoolExecutor
  • Limit to 5 concurrent ADB operations per host
  • Use queuing for >5 devices

Security Considerations

Authentication:

  • ADB uses RSA key exchange; validate device certificates
  • Never store unencrypted device pairing keys
  • Rotate pairing keys quarterly for production devices

Permissions:

  • Request minimal shell commands (avoid su unless necessary)
  • Use app-specific commands instead of root access
  • Audit bot actions for unintended side effects

Data Protection:

  • Never capture sensitive data in screenshots
  • Encrypt stored configurations containing API keys
  • Use secure storage for game credentials

Debugging & Troubleshooting

Common Issues:

| Issue | Diagnosis | Solution | |-------|-----------|----------| | Device not found | adb_device_analyzer.py --check-connection | Verify USB connection, check ADB daemon | | Slow bot execution | adb_performance_profiler.py --device <id> | Reduce click delays, batch operations | | Template matching fails | Check image DPI/resolution | Run adb_template_creator.py --device <id> | | OCR accuracy poor | Preprocess image (contrast, threshold) | See computer-vision module for tips | | Tauri communication lag | Check Python process CPU | Reduce log verbosity, optimize render loop |

Debug Mode:

# Enable verbose logging
export ADB_DEBUG=1
uv run .claude/skills/moai-domain-adb/scripts/adb_device_analyzer.py --verbose

# Trace ADB commands
adb logcat | grep "adb_bot_runner"

Testing Strategy (TRUST 5 Framework)

Test Coverage Target: β‰₯85%

  • Unit Tests: Individual module functions (py.test)
  • Integration Tests: Module interactions (device mock)
  • E2E Tests: Full workflow with real devices (optional)
  • Performance Tests: Execution time benchmarks
  • Security Tests: Input validation, permission checks

Test Execution:

# Run all tests
pytest tests/ -v --cov=.claude/skills/moai-domain-adb

# Run specific module tests
pytest tests/test_device_management.py -v

# Profile performance
pytest tests/ --benchmark-only

πŸ“– Module Navigation

Each module builds upon previous knowledge but is independently usable:

  • adb-fundamentals (250 lines)

    • ADB architecture, connection protocols, device discovery
    • Shell execution, property reading, device interaction
  • device-management (280 lines)

    • Multi-device orchestration, state tracking, connection pooling
    • Lifecycle management, monitoring, failover strategies
  • game-automation (300 lines)

    • Bot scripting patterns, click sequences, timing control
    • OCR integration, state detection, action templates
  • computer-vision (270 lines)

    • Template matching (OpenCV), OCR (Tesseract)
    • Region detection, image preprocessing, pattern recognition
  • tauri-integration (240 lines)

    • Tauri-Python IPC, real-time updates, command queueing
    • Resource management, deployment strategies, monitoring

πŸ› οΈ Scripts & Tools

All scripts follow IndieDevDan 13 Rules (PEP 723, 9-section structure, dual output):

# Analyze device capabilities
uv run scripts/adb_device_analyzer.py --device emulator-5554 --json

# Generate bot skeleton
uv run scripts/adb_bot_generator.py --game "My Game" --output my_bot.py

# Create action template
uv run scripts/adb_template_creator.py --screenshot screen.png --region "0,0,1080,1920"

# Profile bot performance
uv run scripts/adb_performance_profiler.py --bot bot.py --iterations 100

# Validate configuration
uv run scripts/adb_config_validator.py --config config.yaml --strict

# Test bot on device
uv run scripts/adb_game_tester.py --bot bot.py --device emulator-5554

# Prepare deployment
uv run scripts/adb_deployment_helper.py --bot bot.py --target production

Complete Scripts Reference (36 scripts)

All scripts are located in scripts/ directory and organized by category. Each script supports:

  • --device/-d - Specify device ID (defaults to first connected)
  • --toon - Output in TOON/YAML format for automation
  • --verbose/-v - Enable verbose logging
  • --help - Show detailed help and usage examples

See scripts/README.md for comprehensive documentation with 150+ usage examples.

πŸ”Œ Connection (4 scripts)

Location: scripts/connection/

| Script | Purpose | Key Options | Example | |--------|---------|-------------|---------| | adb_connect.py | Connect to device via IP:port | --device (default: 127.0.0.1:5555) | uv run scripts/connection/adb_connect.py | | adb_disconnect.py | Disconnect device gracefully | --device | uv run scripts/connection/adb_disconnect.py | | adb_restart_server.py | Restart ADB server | --verbose | uv run scripts/connection/adb_restart_server.py | | adb_device_status.py | List all devices and status | --toon | uv run scripts/connection/adb_device_status.py |

πŸ“± Screen (6 scripts)

Location: scripts/screen/

| Script | Purpose | Key Options | Example | |--------|---------|-------------|---------| | adb_screenshot.py | Capture screenshot | --output FILE | uv run scripts/screen/adb_screenshot.py --output capture.png | | adb_tap.py | Tap at coordinates | --x X --y Y --count N | uv run scripts/screen/adb_tap.py --x 500 --y 1000 | | adb_swipe.py | Swipe gesture | --preset {up,down,left,right} or --start X,Y --end X,Y | uv run scripts/screen/adb_swipe.py --preset up | | adb_keyevent.py | Send key event | --key {back,home,menu,power,volume_up} | uv run scripts/screen/adb_keyevent.py --key back | | adb_text_input.py | Type text | --text TEXT | uv run scripts/screen/adb_text_input.py --text "Hello" | | adb_screenrecord.py | Record screen video | --output FILE --duration SECONDS | uv run scripts/screen/adb_screenrecord.py --duration 60 |

πŸ“¦ App (5 scripts)

Location: scripts/app/

| Script | Purpose | Key Options | Example | |--------|---------|-------------|---------| | adb_app_list.py | List installed apps | --filter TEXT, --system, --all | uv run scripts/app/adb_app_list.py --filter afk | | adb_app_start.py | Start app by package | -p PACKAGE, --wait | uv run scripts/app/adb_app_start.py -p com.afk.journey | | adb_app_stop.py | Force stop app | -p PACKAGE | uv run scripts/app/adb_app_stop.py -p com.afk.journey | | adb_app_install.py | Install APK | --apk FILE | uv run scripts/app/adb_app_install.py --apk game.apk | | adb_app_uninstall.py | Uninstall app | -p PACKAGE, --keep-data | uv run scripts/app/adb_app_uninstall.py -p com.example |

ℹ️ Info (4 scripts)

Location: scripts/info/

| Script | Purpose | Key Options | Example | |--------|---------|-------------|---------| | adb_device_info.py | Device specifications | --toon | uv run scripts/info/adb_device_info.py | | adb_display_info.py | Display resolution/DPI | --toon | uv run scripts/info/adb_display_info.py | | adb_running_app.py | Current foreground app | --toon | uv run scripts/info/adb_running_app.py | | adb_battery_info.py | Battery status | --toon | uv run scripts/info/adb_battery_info.py |

⚑ Performance (3 scripts)

Location: scripts/performance/

| Script | Purpose | Key Options | Example | |--------|---------|-------------|---------| | adb_cpu_monitor.py | Real-time CPU monitoring | --duration SECONDS, --package PKG | uv run scripts/performance/adb_cpu_monitor.py --duration 60 | | adb_memory_monitor.py | Memory usage monitoring | --duration SECONDS, --package PKG | uv run scripts/performance/adb_memory_monitor.py --duration 60 | | adb_logcat_filter.py | Filter logcat logs | --tag TAG, --priority {V,D,I,W,E,F}, --follow | uv run scripts/performance/adb_logcat_filter.py --tag MyApp --priority E |

πŸ€– Automation (4 scripts)

Location: scripts/automation/

| Script | Purpose | Key Options | Example | |--------|---------|-------------|---------| | adb_game_loop.py | Execute repeating sequence | -s FILE, -l LOOPS, --infinite | uv run scripts/automation/adb_game_loop.py -s daily.json -l 10 | | adb_wait_for_app.py | Wait for app to start | --package PKG, --timeout SECONDS | uv run scripts/automation/adb_wait_for_app.py -p com.afk.journey | | adb_click_sequence.py | Execute sequence once | -s FILE | uv run scripts/automation/adb_click_sequence.py -s tutorial.json | | adb_screenshot_compare.py | Compare screenshots | -b BEFORE -a AFTER, --threshold FLOAT | uv run scripts/automation/adb_screenshot_compare.py -b ref.png -a test.png |

πŸ› οΈ Utils (3 scripts)

Location: scripts/utils/

| Script | Purpose | Key Options | Example | |--------|---------|-------------|---------| | adb_shell.py | Execute shell commands | -c COMMAND, --timeout SECONDS | uv run scripts/utils/adb_shell.py -c "ls /sdcard" | | adb_push.py | Push file to device | -l LOCAL -r REMOTE | uv run scripts/utils/adb_push.py -l file.txt -r /sdcard/ | | adb_pull.py | Pull file from device | -r REMOTE -l LOCAL | uv run scripts/utils/adb_pull.py -r /sdcard/screenshot.png -l . |

πŸ”§ Monitoring (7 scripts)

Location: scripts/ (root level)

| Script | Purpose | Key Options | Example | |--------|---------|-------------|---------| | adb_bot_generator.py | Generate bot scripts | --template NAME, --output FILE | uv run scripts/adb_bot_generator.py --template daily_quests | | adb_config_validator.py | Validate configs | --config FILE, --strict | uv run scripts/adb_config_validator.py --config config.json | | adb_deployment_helper.py | Deploy to devices | --apk FILE, --all, --devices IDS | uv run scripts/adb_deployment_helper.py --apk game.apk --all | | adb_device_analyzer.py | Analyze capabilities | --aspects LIST, --output FILE | uv run scripts/adb_device_analyzer.py --aspects performance,battery | | adb_game_tester.py | Test game automation | --test-suite FILE, --screenshots | uv run scripts/adb_game_tester.py --test-suite tests.json | | adb_performance_profiler.py | Profile performance | --package PKG, --duration SECONDS | uv run scripts/adb_performance_profiler.py -p com.afk.journey | | adb_template_creator.py | Create templates | --name NAME, --category CAT | uv run scripts/adb_template_creator.py --name my_automation |

JSON Sequence Format (Automation Scripts)

For adb_game_loop.py and adb_click_sequence.py, use JSON format:

{
  "name": "Daily Quest Automation",
  "steps": [
    {"action": "tap", "x": 500, "y": 1000, "delay": 2},
    {"action": "swipe", "start": [500, 1500], "end": [500, 500], "duration": 300},
    {"action": "wait", "duration": 3},
    {"action": "screenshot", "output": "/tmp/check.png"},
    {"action": "keyevent", "key": "back"},
    {"action": "text_input", "text": "Hello World"}
  ]
}

Supported Actions: tap, swipe, wait, screenshot, keyevent, text_input

Common Utilities

All scripts use shared utilities from scripts/common/:

  • adb_utils.py - ADB device operations and connection management
  • cli_utils.py - Click decorators, Rich formatters, output helpers
  • error_handlers.py - Standardized error handling and exit codes (0, 2, 3, 4)
  • path_utils.py - Project root detection and path resolution

Exit Codes

All scripts use standardized exit codes:

  • 0 - Success
  • 2 - Device offline or not found
  • 3 - ADB command failed or execution error
  • 4 - Invalid argument or configuration

Output Formats

Text Output (default): Rich-formatted console output with colors and tables TOON Output (--toon): YAML/structured format for automation and parsing


πŸ“ž Support & References

Quick Links:

  • Modules: See individual module files in modules/
  • Scripts: See individual scripts in scripts/ with --help
  • Examples: See integration patterns in adb-* agents
  • Tests: See test suite in tests/

Context7 References:


Version: 1.0.0 Status: βœ… Production Ready (Phase 1 Foundation) Last Updated: 2025-12-01 Next Phase: Create 5 core modules + 7 UV scripts