スキル一覧に戻る

adb-skill-generator

rdmptv / AdbAutoPlayer

0🍴 0📅 2025年12月3日

Meta-tool for rapid adb-* skill creation from templates

SKILL.md

---
name: adb-skill-generator
description: Meta-tool for rapid adb-* skill creation from templates
version: 1.0.0
modularized: true
scripts_enabled: true
tier: 3
category: adb-meta-automation
last_updated: 2025-12-02
compliance_score: 100

dependencies: []

auto_trigger_keywords:
  - skill-generator
  - scaffold
  - template
  - create-skill
  - rapid-development

scripts:
  - name: adb-skill-generator.py
    purpose: Generate new adb-* skill from templates
    type: python
    command: uv run .claude/skills/adb-skill-generator/adb-skill-generator.py
    zero_context: false
    version: 1.0.0
    last_updated: 2025-12-02

color: magenta
---

---

## Quick Reference (30 seconds)

**Rapid adb-* skill creation from production-tested templates**

**What It Does**: Automates creation of new adb-* skills by generating skill directory structure, SKILL.md metadata, script templates, and example workflows. Speeds up new skill development from hours to minutes.

**Core Capabilities**:
- 🚀 **Scaffold Skills**: Generate complete skill directory structure
- 📝 **Template Scripts**: Create launcher, checker, automator, tester scripts
- 📋 **SKILL.md Generation**: Auto-generate metadata with proper frontmatter
- 📊 **Workflow Examples**: Optional TOON workflow templates
- ✅ **Best Practices**: Built-in ecosystem patterns and conventions

**When to Use**:
- Creating new app automation skills
- Rapid prototyping of automation workflows
- Onboarding new skill developers
- Standardizing skill structure across ecosystem

---

## Scripts

### adb-skill-generator.py

Generate new adb-* skill from templates.

```bash
# Minimal skill (1 launcher script)
uv run .claude/skills/adb-skill-generator/adb-skill-generator.py \
    --skill-name banking \
    --description "Banking app automation via Play Integrity bypass"

# Full skill (3 scripts + workflow)
uv run .claude/skills/adb-skill-generator/adb-skill-generator.py \
    --skill-name fitness \
    --description "Fitness app testing" \
    --script-count 3 \
    --with-workflow

# With category specification
uv run .claude/skills/adb-skill-generator/adb-skill-generator.py \
    --skill-name streaming \
    --description "Streaming app automation" \
    --category adb-app-automation

# List available templates
uv run .claude/skills/adb-skill-generator/adb-skill-generator.py \
    --list-templates

# JSON output
uv run .claude/skills/adb-skill-generator/adb-skill-generator.py \
    --skill-name myapp \
    --description "My app automation" \
    --json
```

**Parameters**:
- `--skill-name` (required): Name of skill (with or without adb- prefix)
- `--description` (required): Brief description of skill purpose
- `--script-count` (optional, default: 1): Number of scripts (1-4)
- `--with-workflow` (optional): Generate example TOON workflow
- `--category` (optional): Skill category (default: adb-app-automation)
- `--list-templates`: Show available templates
- `--json`: JSON output instead of human-readable
- `--verbose`: Detailed operation logging

**Exit Codes**:
- `0`: Success (skill created)
- `1`: Warning (partial creation)
- `2`: Error (skill creation failed)
- `3`: Critical (invalid parameters)

**Generated Structure**:

```
.claude/skills/adb-{skillname}/
├── SKILL.md                           # Metadata + documentation
├── scripts/
│   ├── adb-{skillname}-launch.py      # Launcher script
│   ├── adb-{skillname}-check.py       # Checker script (if count >= 2)
│   ├── adb-{skillname}-test.py        # Tester script (if count >= 3)
│   └── adb-{skillname}-validate.py    # Validator script (if count >= 4)
├── workflows/
│   ├── {skillname}-basic.toon         # Basic workflow example
│   └── {skillname}-advanced.toon      # Advanced workflow example (if requested)
├── templates/                          # (Empty - for user templates)
└── analysis/                          # (Empty - for analysis results)
```

---

## Quick Examples

### Example 1: Minimal Skill Generation

```bash
uv run adb-skill-generator.py \
    --skill-name twitter \
    --description "Twitter app automation for testing"
```

**Creates**:
- `adb-twitter/SKILL.md`
- `adb-twitter/scripts/adb-twitter-launch.py` (launcher)
- `adb-twitter/workflows/twitter-basic.toon` (basic example)
- Directory structure ready for customization

### Example 2: Complete Skill with Workflow

```bash
uv run adb-skill-generator.py \
    --skill-name instagram \
    --description "Instagram app automation and testing" \
    --script-count 3 \
    --with-workflow
```

**Creates**:
- `adb-instagram/SKILL.md`
- `adb-instagram/scripts/adb-instagram-launch.py` (launcher)
- `adb-instagram/scripts/adb-instagram-check.py` (checker)
- `adb-instagram/scripts/adb-instagram-test.py` (tester)
- `adb-instagram/workflows/instagram-basic.toon`
- `adb-instagram/workflows/instagram-advanced.toon`

### Example 3: JSON Output for CI/CD Integration

```bash
uv run adb-skill-generator.py \
    --skill-name facebook \
    --description "Facebook app automation" \
    --json
```

**Output**:
```json
{
  "skill_name": "adb-facebook",
  "success": true,
  "skill_path": "/path/to/.claude/skills/adb-facebook",
  "scripts_created": 1,
  "skill_md_created": true,
  "workflow_created": false,
  "duration": 0.45,
  "messages": [
    "✅ Created skill directory: ...",
    "✅ Created scripts/ subdirectory",
    "✅ Created SKILL.md ...",
    "✅ Created script: adb-facebook-launch.py"
  ],
  "exit_code": 0
}
```

---

## Script Template Structure

All generated scripts follow the proven 9-section IndieDevDan template:

```
1. Docstring          - Comprehensive description with examples
2. Imports            - Required libraries
3. Constants          - Configuration values
4. Project root       - Auto-detection logic
5. Data models        - Result dataclasses
6. Helpers            - Utility functions (device selection, etc.)
7. Core logic         - Primary automation implementation
8. Formatters         - Human + JSON output formatting
9. CLI interface      - Click command-line interface
10. Entry point       - Main execution guard
```

**Benefits**:
- Consistent structure across all skills
- Easy to understand and maintain
- Proven patterns from production skills
- Familiar to all developers

---

## Workflow Template Structure

Generated workflows follow TOON format:

```yaml
name: {skillname}-basic
description: Basic automation for {skillname}

parameters:
  device: "127.0.0.1:5555"
  timeout: 30

phases:
  - id: phase-1
    name: "Launch app"
    steps:
      - id: launch
        action: {skillname}-launch
        params:
          device: "{{ device }}"

recovery:
  - on_error: launch
    action: retry
    then: continue
```

**Features**:
- Parameter templating with {{ variable }}
- Phase-based organization
- Error recovery rules
- Executable with adb-run-workflow

---

## Integration with Ecosystem

### Step 1: Generate Skill
```bash
uv run adb-skill-generator.py \
    --skill-name myapp \
    --description "My app automation"
```

### Step 2: Implement Core Scripts
Edit generated scripts to add actual automation logic:
- `scripts/adb-myapp-launch.py` - App launch logic
- `scripts/adb-myapp-check.py` - State checking logic
- `scripts/adb-myapp-test.py` - Functional testing

### Step 3: Create Advanced Workflows
Build TOON workflows using generated scripts:
```bash
uv run adb-run-workflow.py \
    --workflow .claude/skills/adb-myapp/workflows/myapp-advanced.toon \
    --verbose
```

### Step 4: Share or Distribute
Generated skill is immediately usable by others:
```bash
uv run .claude/skills/adb-myapp/scripts/adb-myapp-launch.py --device 127.0.0.1:5555
```

---

## Design Philosophy

The generator embodies ADB ecosystem design principles:

**1. Convention over Configuration**
- Default settings work for 90% of use cases
- Simple naming patterns (adb-{skillname})
- Consistent file organization

**2. Rapid Development**
- Scaffold complex structure in seconds
- Focus on implementation, not boilerplate
- Templates from production-tested code

**3. Quality by Default**
- Generated code follows best practices
- Includes error handling, timeouts, retries
- Proper exit codes and logging

**4. Extensibility**
- Generated code is production-ready but customizable
- Clear sections for user implementation
- Supports skill composition and integration

---

## Related Skills

This generator uses and integrates with:
- **adb-screen-detection**: For OCR-based element finding
- **adb-navigation-base**: For gesture automation (tap, swipe, wait)
- **adb-workflow-orchestrator**: For complex multi-step orchestration

All generated skills can depend on these foundation skills automatically.

---

## Common Customization Patterns

### Pattern 1: Custom Package Name
```python
# In generated script, change:
APP_PACKAGE = "kr.co.flo.karrot"  # Replace with your app package
```

### Pattern 2: Custom UI Elements
```python
# In launcher script, change:
result = launch_app_with_verification(
    device_id,
    wait_text="Custom Login Screen"  # Your app's specific screen
)
```

### Pattern 3: Custom Timeout
```python
# In any script, change:
VERIFICATION_TIMEOUT = 45  # Slower apps need more time
```

---

## Troubleshooting

**Q: Script generation failed**
```bash
# Ensure valid skill name (alphanumeric + hyphens)
uv run adb-skill-generator.py --skill-name valid-name --description "..."
```

**Q: How to see what will be generated?**
```bash
# Use --verbose flag
uv run adb-skill-generator.py \
    --skill-name myapp \
    --description "..." \
    --verbose
```

**Q: Can I use generated scripts immediately?**
```bash
# Yes, scripts are immediately usable but may need customization
uv run .claude/skills/adb-myapp/scripts/adb-myapp-launch.py --device 127.0.0.1:5555
```

---

## Workflows

This skill includes TOON-based workflow definitions for automation.

### What is TOON?
TOON (Task-Oriented Orchestration Notation) is a structured workflow definition language that pairs with Markdown documentation. Each workflow consists of:
- **[name].toon** - Orchestration logic and execution steps
- **[name].md** - Complete documentation and usage guide

This TOON+MD pairing approach is inspired by the BMAD METHOD pattern, adapted to use TOON instead of YAML for better orchestration support.

### Available Workflows

Workflow files are located in `workflow/` directory:

**Example Workflows (adb-skill-generator):**
- `workflow/skill-generation.toon` - Complete skill generation workflow
- `workflow/template-validation.toon` - Validate and test generated skill templates

### Running a Workflow

Execute any workflow using the ADB workflow orchestrator:

```bash
uv run .claude/skills/adb-workflow-orchestrator/scripts/adb-run-workflow.py \
  --workflow .claude/skills/adb-skill-generator/workflow/skill-generation.toon \
  --param skill_name="myapp"
```

### Workflow Documentation

Each workflow includes comprehensive documentation in the corresponding `.md` file:
- Purpose and use case
- Prerequisites and requirements
- Available parameters
- Execution phases and steps
- Success criteria
- Error handling and recovery
- Example commands

See the `workflow/` directory for complete TOON file definitions and documentation.

### Creating New Workflows

To create custom workflows for this skill:
1. Create a new `.toon` file in the `workflow/` directory
2. Define phases, steps, and parameters using TOON v4.0 syntax
3. Create corresponding `.md` file with comprehensive documentation
4. Test with the workflow orchestrator

For more information, refer to the TOON specification and the workflow orchestrator documentation.

---

**Version**: 1.0.0 (Production Ready)
**Last Updated**: 2025-12-02
**Category**: Meta-Automation (Tier 3)