Agent skill

Jugg Android Dev Loop

by niki914 in niki914/zafiro

A skill your agent uses when editing source files (Java/Kotlin/XML/layout/AndroidManifest/Gradle) in a Android project, or when user asks to build/deploy/verify an Android app.

MITAuto-check passedMobile

Install Jugg Android Dev Loop

skills CLI
$ npx skills add niki914/zafiro --skill jugg-android-dev-loop -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install niki914/zafiro jugg-android-dev-loop --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/niki914/zafiro.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/jugg-android-dev-loop .claude/skills/jugg-android-dev-loop && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
jugg-android-dev-loop
GitHub stars
235
Token cost
~2k tokens
SKILL.md length
688 words
Files
37 (incl. scripts, references)
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when editing source files (Java/Kotlin/XML/layout/AndroidManifest/Gradle) in a Android project, or when user asks to build/deploy/verify an Android app.

  • Works in 2 steps: Context Interview → Scenario Route & Load
  • Editing source files (Java/Kotlin/XML/layout/AndroidManifest/Gradle) in a Android project
  • SKILL.md covers Definition - Auto-Run Entry, Phase 0 — Context Interview, Phase 1 — Scenario Route & Load and Mandatory Rules, plus 2 more sections
  • Runs Python and Batch scripts from its folder; calls python3

What it does

Jugg Android Dev Loop is an agent skill from niki914/zafiro. Use when editing source files (Java/Kotlin/XML/layout/AndroidManifest/Gradle) in a Android project, or when user asks to build/deploy/verify an Android app. Don't trigger on a non-Android project e.g. IntelliJ plugin project or common java/kotlin project.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 40 other files, including scripts and reference files (for example `references/cli_manual.md`, `references/error_patterns.md` and `references/flow_android_test.md`).

It sits in Mobile, covering Android development. It works with Android, Kotlin, Gradle and Java. The repository describes itself as: Open-source BYOK AI agent for Android. Full phone control, native Shell & Python 3, with Skills and MCP support. Built with Material 3 Expressive. Works via Shizuku (root… The licence is MIT.

When your agent uses it

  • Editing source files (Java/Kotlin/XML/layout/AndroidManifest/Gradle) in a Android project
  • User asks to build/deploy/verify an Android app
  • A non-Android project e.g

Example prompts

  • “/jugg-android-dev-loop”

Requirements

  • Python 3

Workflow steps

2 steps, taken from the step headings in SKILL.md.

  1. Context Interview
  2. Scenario Route & Load

What it can do on your machine

Read from SKILL.md and the folder at commit 6c7f775. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 8 files in scripts/ (Python and Batch, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Jugg Android Dev Loop loads about 2k tokens when it runs, and up to ~14k if it reads all its reference files. Until then it costs about 69 tokens; SKILL.md has 688 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~69
When it runs · the whole SKILL.md, loaded when a task matches
~2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~14k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from niki914/zafiro at commit 6c7f775, republished under its MIT licence (© niki914). 688 words, ~2,047 tokens.

Download SKILL.mdSave it as .claude/skills/jugg-android-dev-loop/SKILL.md (or your agent's skills folder). This skill also uses 36 other files; get the full folder from GitHub.
name
jugg-android-dev-loop
description
Use when editing source files (Java/Kotlin/XML/layout/AndroidManifest/Gradle) in a Android project, or when user asks to build/deploy/verify an Android app. Don't trigger on a non-Android project e.g. IntelliJ plugin project or common java/kotlin project.
version
1.0.31
date
2026-09-24

Jugg Android Dev Loop

What is Jugg? Jugg is an Android tools that bypasses full Gradle builds via incremental compilation and deployment, reducing build frequency while preserving Gradle artifacts.

This skill use Jugg CLI to drive development loop for Android: modify → build → deploy → verify → iterate.


Definition - Auto-Run Entry

An auto-run entry is a user-designated method (e.g. com.myapp.Test.run) that runs automatically after app launch. Agent writes verification code into it and inspects logs/UI to confirm behavior. It is the primary verification mechanism in the Jugg dev loop.

⚠️ Entry location is NOT auto-discoverable. The user must declare the fully-qualified method name in the prompt (中文或 English 均可). If not declared and not visible in context, stop and ask — do not guess or search the codebase. To author the entry body, see references/guide_write_auto_run_entry_code.md.


Phase 0 — Context Interview

Collect mandatory variables before any action. For install-only requests, skip Jugg project status collection.

VariableSourceFallback
projectDirCLI auto-resolved from $PWD, or explicit --project-dir <path> when providedAsk user only if neither current directory nor provided path identifies the target project
hasAutoRunEntrytrue only when the user has explicitly declared the entry's fully-qualified method (e.g. com.myapp.Test.run) in the prompt or current context. See § Auto-Run Entry.Default false. Never infer from code search.
enabledAndroidTestProject status context. Reuse existing credible context first, e.g. a hook block's Jugg status plain key-value output. If absent, run python3 {SKILL_DIR}/scripts/jugg.py --console=json status and read data.enabledAndroidTest.Default unknown. Do not assume.

Phase 1 — Scenario Route & Load

Route based on context, then load primary reference:

if user asks to install jugg CLI (e.g. "install jugg cli", "add jugg cli to PATH"):
  → references/guide_install_cli.md
elif user asks to run androidTest / instrumented unit tests, or the task is anchored in src/androidTest:
  → references/flow_android_test.md
elif hasAutoRunEntry == true:
  → references/flow_with_auto_run.md
else:
  → references/flow_compile_deploy.md
ScenarioPrimary ReferenceSupplementary (on-demand)
install jugg CLIreferences/guide_install_cli.md—
androidTest / instrumented unit testsreferences/flow_android_test.mdreferences/error_patterns.md, references/cli_manual.md
compile/deployreferences/flow_compile_deploy.mdreferences/error_patterns.md, references/policy_incremental_compile_limits.md
verify with auto-run entryreferences/flow_with_auto_run.mdreferences/guide_write_auto_run_entry_code.md, references/error_patterns.md

Supplementary references load on-demand at the step that needs them.


Mandatory Rules

#Rule
1Route by scenario first; do not mix flows
2Complete all source file edits first, then trigger compile/deploy once. Never compile after each individual file edit.
3Any source modification must pass compilation before task is done

CLI Quick Reference

Entry
python3 {SKILL_DIR}/scripts/jugg.py [--project-dir <path>] <subcommand> [options]
python3 {SKILL_DIR}/scripts/jugg.py help <subcommand>
Output Format
Show full SKILL.md (351 more words)Show less
Build & Deploy Commands

All build commands block until completion. Run compile-class commands (compile, deploy, gradle-build, and instrument) as a single foreground CLI call, wait for that process to exit, then parse its output once. These commands may trigger Gradle internally; do not start them in the background or poll status, processes, logs, files, or Git state to infer progress. Process exit is the only completion signal. Completion means the compile/deploy job reached a terminal state; CLI does not add an extra app-ready wait.

Block the agent loop as well as the CLI. A terminal tool may return a running session before the foreground command exits. Keep waiting for that same session inside one long-running tool invocation until the process exits; do not return control to the agent after short waits. In Codex, use one functions.exec call with an outer yield_time_ms long enough for the expected build, and await exec_command plus any required write_stdin session waits inside that call. Do not set a short outer yield (such as 1–30 seconds), repeatedly call wait tools from the agent loop, send progress messages, or inspect status/logs while the command is running. If the tool forces an early yield, use its longest supported blocking wait on the same session until exit. Parse the final output once.

CommandPurposeWhen to Use
compileCompile modified sources, skip deployDefault after ordinary source edits, including generic "verify/check modification"
deployCompile + deploy to deviceNeed to launch/run app to inspect runtime/UI state, or perform device-side verification
gradle-buildFull Gradle compile fallbackAfter deploy/compile retries exhausted and still failed
clean-reinstallClear app data(compat with apply changes) + launch deviceOnly for clean APP data
instrumentRun androidTestVerify android test result
python3 {SKILL_DIR}/scripts/jugg.py compile
python3 {SKILL_DIR}/scripts/jugg.py deploy
python3 {SKILL_DIR}/scripts/jugg.py gradle-build
python3 {SKILL_DIR}/scripts/jugg.py clean-reinstall
python3 {SKILL_DIR}/scripts/jugg.py instrument --source-path library1/src/androidTest/kotlin/com/example/FooTest.kt
python3 {SKILL_DIR}/scripts/jugg.py instrument --source-path library1/src/androidTest/kotlin/com/example/FooTest.kt --class com.example.FooTest
python3 {SKILL_DIR}/scripts/jugg.py instrument --source-path library1/src/androidTest/kotlin/com/example/FooTest.kt --class com.example.FooTest --method testSomething
python3 {SKILL_DIR}/scripts/jugg.py instrument --source-path library1/src/androidTest/kotlin/com/example/FooTest.kt --extras 'size=large;clearPackageData=true'
Runtime Basic Commands
python3 {SKILL_DIR}/scripts/jugg.py restart              # restart app
python3 {SKILL_DIR}/scripts/jugg.py status               # refresh changed files and show status summary
python3 {SKILL_DIR}/scripts/jugg.py status --refresh-changes false  # skip changed-file refresh
python3 {SKILL_DIR}/scripts/jugg.py status --full-info true  # return full status information and all file paths
python3 {SKILL_DIR}/scripts/jugg.py activity-stack       # show current Activity stack
python3 {SKILL_DIR}/scripts/jugg.py devices              # list connected devices
python3 {SKILL_DIR}/scripts/jugg.py wait-logs --marker '\[JUGG_AR\] DONE'  # --marker: Java Pattern regex matched against log message; block until marker/crash/timeout
python3 {SKILL_DIR}/scripts/jugg.py wait-logs --marker '<regex>' [--tags t1,t2] [--timeout-ms ms]
# stopReason: marker → parse logs; crash → FAIL; timeout → INCONCLUSIVE → see references/cli_manual.md §wait-logs for flags
UI Commands (low-frequency)

For UI interaction/inspection (tap, view-locate, view-inspect, layout-dump) → load references/cli_manual.md.

Build Fallback Chain

On compile/deploy failure, follow this order:

  1. Read error detail.
  2. Modify source and retry the selected command (compile or deploy) up to 3 times.
  3. If still failing → gradle-build.
  4. Call ssh-info (requires explicit user consent) when gradle-build is remote compile and still failing.
  5. Still unclear → stop, ask user.

© niki914, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 36 other files (scripts, references) in .agents/skills/jugg-android-dev-loop of niki914/zafiro.

  • SKILL.md
  • references/cli_manual.md
  • references/error_patterns.md
  • references/flow_android_test.md
  • references/flow_compile_deploy.md
  • references/flow_with_auto_run.md
  • references/guide_install_cli.md
  • references/guide_write_auto_run_entry_code.md
  • references/policy_incremental_compile_limits.md
  • scripts/jugg
  • scripts/jugg.cmd
  • scripts/jugg.py
  • scripts/py/cmd/__init__.py
  • scripts/py/cmd/cmd_activity_stack.py
  • scripts/py/cmd/cmd_clean_reinstall.py
  • scripts/py/cmd/cmd_compile.py
  • scripts/py/cmd/cmd_deploy.py
  • … and 20 more

Open the folder on GitHubat commit 6c7f775

Compare with similar skills

Jugg Android Dev Loop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Jugg Android Dev Loop compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Jugg Android Dev Loop this skillniki914/zafiro235—~2kAutomated safety check: PassMIT
Android Audio E2Ehyochan/react-native-nitro-sound961—~814Automated safety check: PassMIT
Kotlin Tooling Kotlin ToolchainKotlin/kotlin-agent-skills1.1k—~2.4kAutomated safety check: PassApache-2.0
Apc BuildJoker-x-dev/AndroidProject-Compose102—~553Automated safety check: PassNone
Kotlin Tooling Agp9 MigrationJetBrains/skills3662 repos~5.6kAutomated safety check: PassApache-2.0
Sentry Android SDKgetsentry/sentry-for-ai268—~7.7kAutomated safety check: PassApache-2.0

Similar skills

  • Android Audio E2E

    hyochan/react-native-nitro-sound

    Build and run device-backed Android end-to-end checks for react-native-nitro-sound permissions, recording, playback, listeners, pause/resume, seek, speed, audio focus, lifecycle behavior, and rapid…

    961 GitHub stars~814 tokensUpdated 10 days ago
    MobileAuto-check passed
  • Kotlin Tooling Kotlin Toolchain

    Kotlin/kotlin-agent-skills

    Load when building, running, testing, packaging, linting, or configuring a Kotlin/Java project with the Kotlin Toolchain (JetBrains' unified CLI, formerly Amper), when scaffolding a new or…

    1.1k GitHub stars~2.4k tokensUpdated 2 days ago
    MobileAuto-check passed
  • Apc Build

    Joker-x-dev/AndroidProject-Compose

    管理 AndroidProject-Compose 的 Gradle、版本目录、SDK、BuildConfig、构建类型、ABI、签名、混淆、应用资源和 APK/AAB 发布流程。用户要求升级依赖、修改构建配置、替换图标或启动页、配置签名、排查构建失败、缩减包体或生成发布包时使用。

    102 GitHub stars~553 tokensUpdated 24 days ago
    MobileAuto-check passed
  • Official

    Migrates Kotlin Multiplatform (KMP) projects to Android Gradle Plugin 9.0+.

    366 GitHub starsUsed in 2 repos~5.6k tokens
    MobileAuto-check passed
  • Sentry Android SDK

    getsentry/sentry-for-ai

    Official

    Full Sentry SDK setup for Android. An agent skill from getsentry/sentry-for-ai.

    268 GitHub stars~7.7k tokensUpdated today
    MobileAuto-check passed
  • Dt Setup Android

    Dynatrace/dynatrace-for-ai

    Instruments an existing Android project (Kotlin or Java) with the Dynatrace Mobile Agent for basic monitoring.

    163 GitHub stars~3.5k tokensUpdated 9 days ago
    MobileAuto-check passed

More from niki914/zafiro

All 8 skills in this repo
  • Release New Version

    niki914/zafiro

    A skill your agent uses when the user wants to release a new Zafiro version — drafting bilingual release notes, deciding the next version number, bumping app/build.gradle.kts, tagging, and…

    235 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Add Worktree

    niki914/zafiro

    A skill your agent uses when the user wants to start work in a new git worktree — "new worktree", "spin up a worktree/branch for this", "work on X in another worktree", "branch this off".

    235 GitHub stars~669 tokensUpdated today
    Auto-check passed
  • Install a skill from a public GitHub repository onto this device.

    235 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Skill Creator

    niki914/zafiro

    Create new skills, modify and improve existing skills, and measure skill performance.

    235 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Termux

    niki914/zafiro

    Load this skill for anything involving Termux (com.termux) — first-time SSH setup, connecting to Termux, or a Termux connection that stopped working.

    235 GitHub stars~688 tokensUpdated today
    Auto-check passed
  • Test Triage

    niki914/zafiro

    Use before writing, adding, or modifying any unit test in this repo — before creating a Test.kt file or a @Test function, and before touching an existing test after a refactor.

    235 GitHub stars~935 tokensUpdated today
    Auto-check passed

Categories

Questions about Jugg Android Dev Loop

What does Jugg Android Dev Loop do?

A skill your agent uses when editing source files (Java/Kotlin/XML/layout/AndroidManifest/Gradle) in a Android project, or when user asks to build/deploy/verify an Android app. Jugg Android Dev Loop is an agent skill from niki914/zafiro. Use when editing source files (Java/Kotlin/XML/layout/AndroidManifest/Gradle) in a Android project, or when user asks to build/deploy/verify an Android app.

When should I use Jugg Android Dev Loop?

Jugg Android Dev Loop fits situations like: editing source files (Java/Kotlin/XML/layout/AndroidManifest/Gradle) in a Android project; user asks to build/deploy/verify an Android app; A non-Android project e.g.

How do I install Jugg Android Dev Loop in Claude Code?

Run `npx skills add niki914/zafiro --skill jugg-android-dev-loop -a claude-code`. Or copy the skill folder (.agents/skills/jugg-android-dev-loop in niki914/zafiro) into .claude/skills/jugg-android-dev-loop in your project. Claude Code loads it when a task matches its description.

How do I install Jugg Android Dev Loop in Codex?

Run `npx skills add niki914/zafiro --skill jugg-android-dev-loop -a codex`. Or copy the skill folder (.agents/skills/jugg-android-dev-loop in niki914/zafiro) into .agents/skills/jugg-android-dev-loop in your project. Codex loads it when a task matches its description.

Can I use Jugg Android Dev Loop in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add niki914/zafiro --skill jugg-android-dev-loop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/jugg-android-dev-loop, .gemini/skills/jugg-android-dev-loop, .github/skills/jugg-android-dev-loop and .opencode/skills/jugg-android-dev-loop in your project.

What does Jugg Android Dev Loop need to run?

Going by SKILL.md and its folder, Jugg Android Dev Loop needs Python and Windows cmd for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Jugg Android Dev Loop access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Jugg Android Dev Loop safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Jugg Android Dev Loop use?

Jugg Android Dev Loop is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Jugg Android Dev Loop use?

About 2k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 12k tokens, read only when the agent opens those files.

What are the alternatives to Jugg Android Dev Loop?

Skills that share tags, products or a category with Jugg Android Dev Loop: Android Audio E2E (hyochan/react-native-nitro-sound, 961 stars), Kotlin Tooling Kotlin Toolchain (Kotlin/kotlin-agent-skills, 1.1k stars), Apc Build (Joker-x-dev/AndroidProject-Compose, 102 stars) and Kotlin Tooling Agp9 Migration (JetBrains/skills, 366 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Jugg Android Dev Loop?

niki914 (a GitHub user) maintains it in niki914/zafiro, which has 235 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 9, 2026.

Source: niki914/zafiro on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.