Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .claude/skills/agent-device/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
name: agent-device
description: Drive iOS and Android devices for the Expensify App - testing, debugging, performance profiling, bug reproduction, and feature verification. Use when the developer needs to interact with the mobile app on a device.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to remove testing, debugging, performance profiling for now. I worry Melvin will start triggering this on workflows before we have good instructions for it to follow.

---

# agent-device

## Pre-flight Check

Verify the `agent-device` CLI is installed and its skills are accessible:

```bash
agent-device --version
```

If missing, **STOP** and instruct the user to install it:

```bash
npm install -g agent-device
```

The `agent-device` CLI ships with built-in skills under `skills/` in the installed package. These contain the canonical reference for device automation - bootstrap, exploration, verification, debugging, and more. Use `agent-device --help` to discover available commands and skill names. Read the skill files directly from the installed package path when you need detailed guidance:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this not too vague? Use agent-device --help to discover available commands and skill names.

It's not specifically told to do this at launch so I'm not sure how well it will descide to go and ready them for guidance.


```bash
# Find the package location
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wish we could run commands automatically instead of asking the agent to do something...

Locally this fails with permission though, so not sure how we could do it. Can we update the settings and allow this commands and inject the context without a tool call?

npm root -g
# Then read: <global_root>/agent-device/skills/agent-device/SKILL.md
```

> **Do not proceed without `agent-device` installed.** All device interaction depends on it.

## How This Skill Works

This skill enhances the local development and testing workflow. The developer may provide a full test plan upfront, give step-by-step instructions interactively, or just point at a screen and ask questions. Follow their lead.
Comment on lines +32 to +34
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems redundant?


### Principles

- **Fail fast.** If something deviates from expectations - wrong screen, unexpected error, missing element - stop, explain what happened and suggest how to get past it. Do not silently work around problems.
- **Deviations are signal.** If the app behaves differently than expected, report the delta clearly so the developer can decide what needs fixing.

## Footnote

> **Early development.** This integration between agent-device and the Expensify App is still in early stages. If you run into issues, please reach out via Expensify Slack or file an issue at https://github.com/callstackincubator/agent-device/issues.
Comment on lines +41 to +43
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this more for engineers than it is to the agent?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The idea was to start with engineers being able to kick off testing via their local agent

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I mean, the footnote doesn't seem to help the agent

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -162,5 +162,8 @@ modules/*/lib/
.playwright-output/
.playwright-mcp/

# agent-device
agent-device-output/

# cspell cache
.cspellcache
Loading