mcpField
M
moai-domain-adb

moai-domain-adb

github.com/rdmptv開発144 回インストール47 週間前に更新
リポジトリ

moai-domain-adb について

moai-domain-adb は、ADB による Android 自動化向けのモジュール型スキルで、デバイスのオーケストレーションやゲームボット開発を支援します。デバイス操作、画像認識、Tauri 連携を扱います。

主な機能

  1. 01ADB 接続とシェル操作
  2. 02複数デバイスの状態・ライフサイクル管理
  3. 03ゲームボットのスクリプトと操作タイミング
  4. 04テンプレートマッチングと OCR 検出
  5. 05Tauri-Python 通信パターン
  6. 06デバイス・ボット用スクリプト

活用シーン

  1. 01Android デバイスの確認と操作
  2. 02複数デバイスの操作調整
  3. 03OCR や画像マッチングを使ったゲームボット開発
  4. 04ボットの状態やコマンドを Tauri UI に接続

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rdmptv/adbautoplayer --skill moai-domain-adb

インストール後、Claude Code で/moai-domain-adbを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

COMMON-UTILS-QUICKREF.md
DELIVERABLES-INDEX.md
DELIVERABLES.md
FILE-LOCATIONS.txt
FILES-REFERENCE.md
MULTIRESOLUTION-FILE-INDEX.md
MULTIRESOLUTION-MATCHING-SUMMARY.md
MULTIRESOLUTION-QUICKREF.md
PHASE_9B_WORKSTREAM_C_COMPLETION.md
PHASE-11-RESILIENCE-SUMMARY.md
PHASE-5-FOUNDATION-REPORT.md
PHASE-5-INDEX.md
PHASE-5-SUMMARY.txt
PHASE-9B-COMPLETION-REPORT.md
PHASE-9B-WORKSTREAM-B-SUMMARY.md
RESILIENCE-QUICKREF.md
examples/
afk-journey-fsm.py
modules/
adb-fundamentals.md
computer-vision.md
device-management.md
game-automation.md
resilience-patterns.md
tauri-integration.md
scripts/
adb_action_recorder.py
adb_bot_generator.py
adb_checkpoint_manager.py
adb_config_validator.py
adb_cv_preprocess.py
adb_deployment_helper.py
adb_device_analyzer.py

詳細

moai-domain-adb:ADB 自動化ドメインスペシャリスト

インテリジェントな Android 自動化、ゲームボット開発、リアルタイムのデバイスオーケストレーション向けのTier 3 モジュール化スキルです。


🎯 クイックリファレンス

中核となる能力
ドメイン能力モジュール
デバイス制御ADB 接続、シェル実行、プロパティの検査adb-fundamentals
デバイス管理複数デバイスのオーケストレーション、状態追跡、ライフサイクルdevice-management
ゲーム自動化ボットのスクリプト作成、アクションシーケンス、タイミング制御game-automation
ビジョンと検出テンプレートマッチング、OCR、領域ベースの検出computer-vision
Tauri 統合UI と Python のブリッジ、リアルタイム通信、デプロイtauri-integration
主な関数(クイックアクセス)

デバイス操作

# 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

ボット制御

# 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

モジュール選択ガイド

次のような場合に使用します……

  • ADB の基礎を理解する:adb-fundamentals モジュールを読み込みます

    • 接続プロトコル、認証、基本的なシェル操作
    • デバイスの検出、プロパティの読み取り、システムとの対話
  • 複数のデバイスを管理する:device-management モジュールを読み込みます

    • デバイス状態の追跡、接続プーリング、フェイルオーバー戦略
    • 一括操作、監視、ライフサイクル管理
  • ゲームボットを開発する:game-automation モジュールを読み込みます

    • クリックシーケンス、タイミング、OCR の解析、状態検出
    • カスタムルーチン、アクションテンプレート、ボットのパターン
  • 検出にビジョンを使用する:computer-vision モジュールを読み込みます

    • テンプレートマッチング(OpenCV)、OCR(Tesseract)
    • 領域ベースの検出、画像分析、パターン認識
  • Tauri UI と統合する:tauri-integration モジュールを読み込みます

    • ボットのステータスをリアルタイムで更新、コマンドのキューイング
    • UI ↔ Python 通信、リソース管理

📚 実装ガイド

アーキテクチャ概要

moai-domain-adb は、5 モジュールの段階的開示パターンに従います。

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 の特徴

✅ モジュール化:独立した 5 つのモジュール(モジュール間のインポートなし) ✅ 本番環境対応:包括的なドキュメントを含む 500 行以上の SKILL.md ✅ スクリプト化:IndieDevDan の 13 のルールに従う 7 つの UV スクリプト ✅ 委任可能:expert-* および manager-* エージェントと連携 ✅ 再利用可能:あらゆる Android 自動化プロジェクトに適用可能

使用パターン
# 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
統合ポイント

エージェントとの連携:

  • adb-bot-runner:game-automation のパターンを使用してボットを実行します
  • adb-device-manager:device-management の専門知識を活用してデバイスを管理します
  • adb-game-tester:computer-vision と game-automation を使用してボットをテストします
  • adb-config-manager:config-validator スクリプトを使用して設定を検証します
  • adb-workflow-orchestrator:tauri-integration のパターンを使用してすべてのエージェントを調整します

コマンドとの連携:

  • /adb:init → adb-fundamentals + adb_device_analyzer を使用します
  • /adb:bot → game-automation + adb_bot_generator を使用します
  • /adb:test → computer-vision + adb_game_tester を使用します
  • /adb:deploy → tauri-integration + adb_deployment_helper を使用します

UV スクリプトとの連携: 7 つのスクリプトはすべて自己完結型(相互依存なし)で、PEP 723 に準拠し、二重出力(人間が読める形式と JSON)を実装しています。

段階的な情報開示戦略

レベル 1:はじめに

  • 読む:adb-fundamentals モジュール
  • 実行する:adb_device_analyzer.py を実行してデバイスを一覧表示します
  • 理解する:基本的なデバイス接続とプロパティの読み取り

レベル 2:複数デバイスのワークフロー

  • 読む:device-management モジュール
  • 理解する:接続プーリング、状態追跡、フェイルオーバー
  • 作成する:5 台以上のデバイスを同時に管理するスクリプト

レベル 3:ゲームボットの開発

  • 読む:game-automation モジュール
  • 理解する:クリックシーケンス、タイミング制御、OCR の統合
  • 作成する:ゲーム固有のタスクに対応するカスタムルーチン

レベル 4:ビジョンベースの自動化

  • 読む:computer-vision モジュール
  • 理解する:テンプレートマッチング、OCR の解析、領域検出
  • 作成する:UI の変更に動的に適応するボット

レベル 5:本番環境のオーケストレーション

  • 読む:tauri-integration モジュール
  • 理解する:リアルタイム UI 更新、コマンドキューイング、リソース管理
  • 作成する:Tauri UI 制御を使ったエンタープライズワークフロー

🚀 高度なトピック

スキルの構成戦略

moai-domain-adb はモジュール式に構成できるよう設計されています。

# 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"
)
パフォーマンスの最適化

デバイスのバッチ処理:

  • デバイスごとにコマンドをまとめて、往復レイテンシーを削減します
  • adb_performance_profiler.py を使用してボトルネックを特定します
  • 目標:5 秒未満で 100 件のアクションを実行します

キャッシュ戦略:

  • デバイスのプロパティをキャッシュします(60 秒ごとに更新)
  • テンプレート画像をキャッシュします(検出に失敗した場合に更新)
  • ボットの設定をキャッシュします(ユーザーが編集したときに無効化)

並行処理:

  • ThreadPoolExecutor を使用して複数デバイスの操作を実行します
  • ホストごとの同時 ADB 操作を 5 件に制限します
  • デバイスが 5 台を超える場合はキューイングを使用します
セキュリティに関する考慮事項

認証:

  • ADB は RSA キー交換を使用します。デバイス証明書を検証してください
  • 暗号化されていないデバイスのペアリングキーは決して保存しないでください
  • 本番デバイスのペアリングキーは四半期ごとにローテーションしてください

権限:

  • 必要最小限のシェルコマンドを要求します(必要がない限り su は避けてください)
  • root アクセスの代わりに、アプリ固有のコマンドを使用します
  • 意図しない副作用がないか、ボットのアクションを監査します

データ保護:

  • スクリーンショットに機密データを決して含めないでください
  • API キーを含む保存済みの設定を暗号化します
  • ゲームの認証情報には安全なストレージを使用します
デバッグとトラブルシューティング

よくある問題:

問題診断解決方法
デバイスが見つからないadb_device_analyzer.py --check-connectionUSB 接続を確認し、ADB デーモンを確認します
ボットの実行が遅いadb_performance_profiler.py --device <id>クリック間隔を短縮し、操作をまとめます
テンプレートマッチングに失敗する画像の DPI/解像度を確認しますadb_template_creator.py --device <id> を実行します
OCR の精度が低い画像を前処理します(コントラスト、しきい値)ヒントについては computer-vision モジュールを参照してください
Tauri との通信が遅延するPython プロセスの CPU 使用率を確認しますログの詳細度を下げ、レンダーループを最適化します

デバッグモード:

# 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"
テスト戦略(TRUST 5 フレームワーク)

テストカバレッジの目標:≥85%

  • ユニットテスト:個々のモジュール関数(py.test)
  • 統合テスト:モジュール間の連携(デバイスのモック)
  • E2E テスト:実デバイスを使ったワークフロー全体(任意)
  • パフォーマンステスト:実行時間のベンチマーク
  • セキュリティテスト:入力検証、権限チェック

テストの実行:

# 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

📖 モジュールナビゲーション

各モジュールは前の知識を基にしていますが、単独でも使用できます。

  • adb-fundamentals(250 行)

    • ADB のアーキテクチャ、接続プロトコル、デバイスの検出
    • シェルの実行、プロパティの読み取り、デバイス操作
  • device-management(280 行)

    • 複数デバイスのオーケストレーション、状態の追跡、接続プーリング
    • ライフサイクル管理、監視、フェイルオーバー戦略
  • game-automation(300 行)

    • ボットスクリプトのパターン、クリックシーケンス、タイミング制御
    • OCR の統合、状態の検出、アクションテンプレート
  • computer-vision(270 行)

    • テンプレートマッチング(OpenCV)、OCR(Tesseract)
    • 領域検出、画像の前処理、パターン認識
  • tauri-integration(240 行)

    • Tauri-Python IPC、リアルタイム更新、コマンドのキューイング
    • リソース管理、デプロイ戦略、監視

🛠️ スクリプトとツール

すべてのスクリプトは IndieDevDan 13 Rules(PEP 723、9 セクション構成、デュアル出力)に準拠しています。

# 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
スクリプト一覧(全 36 件)

すべてのスクリプトは scripts/ ディレクトリにあり、カテゴリ別に整理されています。各スクリプトは次のオプションに対応しています。

  • --device/-d - デバイス ID を指定します(デフォルトは最初に接続されたデバイスです)
  • --toon - 自動化向けに TOON/YAML 形式で出力します
  • --verbose/-v - 詳細なログを有効にします
  • --help - 詳細なヘルプと使用例を表示します

150 件以上の使用例を含む詳細なドキュメントについては、scripts/README.md を参照してください。

🔌 接続(スクリプト 4 件)

場所:scripts/connection/

スクリプト目的主なオプション例
adb_connect.pyIP:ポート経由でデバイスに接続--device(デフォルト:127.0.0.1:5555)uv run scripts/connection/adb_connect.py
adb_disconnect.pyデバイスを安全に切断--deviceuv run scripts/connection/adb_disconnect.py
adb_restart_server.pyADB サーバーを再起動--verboseuv run scripts/connection/adb_restart_server.py
adb_device_status.pyすべてのデバイスと状態を一覧表示--toonuv run scripts/connection/adb_device_status.py
📱 画面(スクリプト 6 件)

場所:scripts/screen/

スクリプト目的主なオプション例
adb_screenshot.pyスクリーンショットを撮影--output FILEuv run scripts/screen/adb_screenshot.py --output capture.png
adb_tap.py指定座標をタップ--x X --y Y --count Nuv run scripts/screen/adb_tap.py --x 500 --y 1000
adb_swipe.pyスワイプ操作--preset {up,down,left,right} または --start X,Y --end X,Yuv run scripts/screen/adb_swipe.py --preset up
adb_keyevent.pyキーイベントを送信--key {back,home,menu,power,volume_up}uv run scripts/screen/adb_keyevent.py --key back
adb_text_input.pyテキストを入力--text TEXTuv run scripts/screen/adb_text_input.py --text "Hello"
adb_screenrecord.py画面の動画を録画--output FILE --duration SECONDSuv run scripts/screen/adb_screenrecord.py --duration 60
📦 アプリ(スクリプト 5 件)

場所:scripts/app/

スクリプト目的主なオプション例
adb_app_list.pyインストール済みアプリを一覧表示--filter TEXT、--system、--alluv run scripts/app/adb_app_list.py --filter afk
adb_app_start.pyパッケージを指定してアプリを起動-p PACKAGE、--waituv run scripts/app/adb_app_start.py -p com.afk.journey
adb_app_stop.pyアプリを強制停止-p PACKAGEuv run scripts/app/adb_app_stop.py -p com.afk.journey
adb_app_install.pyAPK をインストール--apk FILEuv run scripts/app/adb_app_install.py --apk game.apk
adb_app_uninstall.pyアプリをアンインストール-p PACKAGE、--keep-datauv run scripts/app/adb_app_uninstall.py -p com.example
ℹ️ 情報(4 スクリプト)

場所:scripts/info/

スクリプト目的主なオプション例
adb_device_info.pyデバイスの仕様--toonuv run scripts/info/adb_device_info.py
adb_display_info.pyディスプレイの解像度/DPI--toonuv run scripts/info/adb_display_info.py
adb_running_app.py現在フォアグラウンドにあるアプリ--toonuv run scripts/info/adb_running_app.py
adb_battery_info.pyバッテリーの状態--toonuv run scripts/info/adb_battery_info.py
⚡ パフォーマンス(3 スクリプト)

場所:scripts/performance/

スクリプト目的主なオプション例
adb_cpu_monitor.pyCPU をリアルタイムで監視--duration SECONDS、--package PKGuv run scripts/performance/adb_cpu_monitor.py --duration 60
adb_memory_monitor.pyメモリ使用量を監視--duration SECONDS、--package PKGuv run scripts/performance/adb_memory_monitor.py --duration 60
adb_logcat_filter.pylogcat ログをフィルタリング--tag TAG、--priority {V,D,I,W,E,F}、--followuv run scripts/performance/adb_logcat_filter.py --tag MyApp --priority E
🤖 自動化(4 スクリプト)

場所:scripts/automation/

スクリプト目的主なオプション例
adb_game_loop.py繰り返しシーケンスを実行-s FILE、-l LOOPS、--infiniteuv run scripts/automation/adb_game_loop.py -s daily.json -l 10
adb_wait_for_app.pyアプリの起動を待機--package PKG、--timeout SECONDSuv run scripts/automation/adb_wait_for_app.py -p com.afk.journey
adb_click_sequence.pyシーケンスを 1 回実行-s FILEuv run scripts/automation/adb_click_sequence.py -s tutorial.json
adb_screenshot_compare.pyスクリーンショットを比較-b BEFORE -a AFTER、--threshold FLOATuv run scripts/automation/adb_screenshot_compare.py -b ref.png -a test.png
🛠️ ユーティリティ(3 スクリプト)

場所:scripts/utils/

スクリプト目的主なオプション例
adb_shell.pyシェルコマンドを実行-c COMMAND、--timeout SECONDSuv run scripts/utils/adb_shell.py -c "ls /sdcard"
adb_push.pyファイルをデバイスにプッシュ-l LOCAL -r REMOTEuv run scripts/utils/adb_push.py -l file.txt -r /sdcard/
adb_pull.pyファイルをデバイスから取得-r REMOTE -l LOCALuv run scripts/utils/adb_pull.py -r /sdcard/screenshot.png -l .
🔧 監視(7 スクリプト)

場所:scripts/(ルートレベル)

スクリプト目的主なオプション例
adb_bot_generator.pyボットスクリプトを生成--template NAME、--output FILEuv run scripts/adb_bot_generator.py --template daily_quests
adb_config_validator.py設定を検証--config FILE、--strictuv run scripts/adb_config_validator.py --config config.json
adb_deployment_helper.pyデバイスにデプロイ--apk FILE、--all、--devices IDSuv run scripts/adb_deployment_helper.py --apk game.apk --all
adb_device_analyzer.py機能を分析--aspects LIST、--output FILEuv run scripts/adb_device_analyzer.py --aspects performance,battery
adb_game_tester.pyゲームの自動化をテスト--test-suite FILE、--screenshotsuv run scripts/adb_game_tester.py --test-suite tests.json
adb_performance_profiler.pyパフォーマンスをプロファイリング--package PKG、--duration SECONDSuv run scripts/adb_performance_profiler.py -p com.afk.journey
adb_template_creator.pyテンプレートを作成--name NAME、--category CATuv run scripts/adb_template_creator.py --name my_automation
JSON シーケンス形式(自動化スクリプト)

adb_game_loop.py と adb_click_sequence.py では、JSON 形式を使用します:

{
  "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"}
  ]
}

対応アクション:tap、swipe、wait、screenshot、keyevent、text_input

共通ユーティリティ

すべてのスクリプトは、scripts/common/ の共有ユーティリティを使用します。

  • adb_utils.py - ADB デバイスの操作と接続管理
  • cli_utils.py - Click デコレーター、Rich フォーマッター、出力ヘルパー
  • error_handlers.py - 標準化されたエラー処理と終了コード(0、2、3、4)
  • path_utils.py - プロジェクトルートの検出とパスの解決
終了コード

すべてのスクリプトで、標準化された終了コードを使用します。

  • 0 - 成功
  • 2 - デバイスがオフライン、または見つかりません
  • 3 - ADB コマンドの失敗、または実行エラー
  • 4 - 引数または設定が無効です
出力形式

テキスト出力(デフォルト):色とテーブルを使用した Rich 形式のコンソール出力 TOON 出力(--toon):自動化と解析に使用する YAML/構造化形式


📞 サポートと参考資料

クイックリンク:

  • モジュール:modules/ 内の各モジュールファイルを参照してください
  • スクリプト:scripts/ 内の各スクリプトで --help を実行してください
  • 例:adb-* エージェントの統合パターンを参照してください
  • テスト:tests/ 内のテストスイートを参照してください

Context7 の参考資料:


バージョン:1.0.0 ステータス:✅ 本番環境対応(フェーズ 1 の基盤) 最終更新日:2025-12-01 次のフェーズ:5 つのコアモジュールと 7 つの UV スクリプトを作成

コメント