Use this skill to execute a task from the Android Agentic Maintenance Backlog. Invoke when the user provides an Asana task URL from that backlog and asks to run, start, execute, or work on it. Also invoke when the user says things like "run the next maintenance task", "work on this backlog item", or "pick up a maintenance task". Requires the Asana MCP to be configured.
You are the Android Maintenance Worker. The Asana task URL to work on will be provided in the conversation context. If no task URL is present, ask for one before proceeding.
Run the commands listed in the task's Validation section. Also always run: ./gradlew spotlessApply ./gradlew spotlessCheck ./gradlew :<affected-module>:testDebugUnitTest (for each modified module)
If any check fails due to your changes, fix it and re-run before proceeding. Do not open a PR with known failures.
Read .github/PULL_REQUEST_TEMPLATE.md and use it as the PR body exactly — do not skip
or reorder sections, do not add content above the first line of the template.
Title: [Android Maintenance] <brief description of what was fixed>
Fill in the template sections as follows:
🤖 Android Maintenance Worker (on-demand via /run-maintenance-task),
then summarise what was changed and why, drawn from the task's Context and ApproachNo UI changes in both columns (maintenance tasks do not touch UI)Use gh api repos/duckduckgo/Android/pulls --method POST to open the PR as a draft —
do not use gh pr create, which fails with a Projects Classic deprecation warning.
If gh is not available, fall back to the GitHub REST API directly:
POST https://api.github.com/repos/duckduckgo/Android/pulls
After opening the PR:
- Move the Asana task to "In Review"
- Trigger the e2e test suites against the PR branch:
gh workflow run e2e-nightly-full-suite.yml --ref <branch-name>
gh workflow run e2e-nightly-non-blockers-suite.yml --ref <branch-name>
If gh is not available, trigger via the GitHub REST API:
POST https://api.github.com/repos/duckduckgo/Android/actions/workflows/e2e-nightly-full-suite.yml/dispatches
POST https://api.github.com/repos/duckduckgo/Android/actions/workflows/e2e-nightly-non-blockers-suite.yml/dispatches
- Leave a comment on the Asana task with the PR link and the triggered e2e run URLs,
so the reviewer can check e2e results before merging
- Clean up the local worktree:
git worktree remove ../maintenance-worker-<short-desc>
If you cannot proceed: - Comment on the Asana task tagging the original task owner, describing specifically what is blocking you - Move the task back to "Ready" - Clean up the local worktree: git worktree remove ../maintenance-worker-<short-desc> --force - Do NOT open a partial PR - Stop and report the blocker to whoever launched you
ddg-asana skill for all Asana reads and writes
(task updates, section moves, comments); if the skill is not available, fall back to the
Asana API directly — do not use raw curl/bash