Skills¶
TouchPilot skills are local Markdown files that package reusable Android task knowledge. Bundled skills live under:
text
app/src/main/assets/skills/<skill-id>/SKILL.md
Skills are advisory context for the local agent. They can narrow tool visibility and describe successful task behavior, but they do not bypass tool validation, skill allowlists, approval prompts, or safety policy.
Skills v2 Format¶
Each SKILL.md should start with a front matter block followed by normal
Markdown instructions:
```markdown¶
id: settings title: Settings description: Navigate and inspect Android Settings screens safely. risk: medium aliases: - settings - android settings - wi-fi settings allowed_tools: - observe_screen_context - open_app - open_settings_panel - tap - scroll - press_back - wait_for_idle - wait_for_app success_criteria: - The requested Settings screen is foreground. - The agent stops after the requested state is visible. examples: - open Wi-Fi settings - show Bluetooth settings - go to this app's notification settings
Settings¶
Prefer direct settings panels when available. Observe the screen before tapping ambiguous targets, and stop when the requested settings screen is visible. ```
The front matter block is the machine-readable contract. The Markdown body is human-readable guidance that may also be included in agent context.
Required Fields¶
id- Stable lower-case identifier for the skill. Use
a-z,0-9, and-. Theidmust match the bundled directory name. title- Short user-facing skill name.
description- One-sentence summary shown in UI and passed to the agent.
risk- Skill-level risk hint. Allowed values are
low,medium, andhigh. Risk can make approval copy more cautious, but it must never reduce the risk of an individual tool call. allowed_tools- List of tool names the skill may request. Every value must match a tool in the Android tool catalog. Tool execution still goes through normal argument validation, approval, and policy checks.
Optional Fields¶
aliases- Natural-language names or phrases that can match this skill. Keep aliases
specific enough that exact commands such as
back,home, andscrollare not captured by skill matching. success_criteria- Observable outcomes that tell the agent when to stop. Criteria should be concrete and screen-checkable, not broad goals.
examples- Example user requests that should match the skill. Examples are matching and prompt context, not tests by themselves.
Authoring Rules¶
- Keep the front matter at the top of the file.
- Use lower_snake_case metadata keys.
- Keep metadata values as strings or lists of strings.
- Prefer the smallest useful
allowed_toolslist. - Use
observe_screen_contextfor agent decisions and reserveobserve_screenfor raw debugging skills. - Mark messaging, purchases, account changes, deletion, permissions, and
security-sensitive workflows as
highrisk. - Do not include secrets, tokens, personal data, or device-specific state in bundled skills.
Runtime Expectations¶
The Skills v2 runtime should use this contract as follows:
SkillStoreparses metadata and Markdown body from bundled assets.SkillRegistryexposes enabled skills and lookup by ID, title, and alias.IntentGatecan match enabled skills from aliases and examples while exact deterministic commands keep priority.- Agent prompts can include description, allowed tools, examples, risk, and success criteria.
- Tool execution enforces the active skill allowlist outside the model.
- Approval and policy layers may use skill risk as additional context, never as a reason to lower caution.