Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
6f273b5
Install agent-device skill and add App-specific mobile testing wrapper
kacper-mikolajczak Apr 10, 2026
4bfce77
Address PR review findings for agent-device skills
kacper-mikolajczak Apr 14, 2026
c0d5618
Trim wrapper skill to user-directed context layer
kacper-mikolajczak Apr 14, 2026
a63542b
Update build instructions to Rock workflow, HybridApp only
kacper-mikolajczak Apr 14, 2026
7af0dc5
Drop dogfood skill, macos-desktop and remote-tenancy references
kacper-mikolajczak Apr 14, 2026
e756806
Sync agent-device skill with v0.12.x and improve app-testing startup …
kacper-mikolajczak Apr 14, 2026
9b21ec1
Trim app-testing skill: defer device bootstrap to base agent-device
kacper-mikolajczak Apr 14, 2026
18a1a81
Lean glue-code skill: drop inlined base skill, keep only pre-flight gate
kacper-mikolajczak Apr 14, 2026
3537d95
Broaden agent-device skill scope and add project config
kacper-mikolajczak Apr 14, 2026
d4abc1b
Remove agent-device.json from PR
kacper-mikolajczak Apr 14, 2026
4477236
Drop footnote and how-this-works section from agent-device SKILL.md
kacper-mikolajczak Apr 20, 2026
1307ae5
Inject agent-device pre-flight context automatically
kacper-mikolajczak Apr 20, 2026
a9934fb
Surface agent-device skill in CLAUDE.md and README
kacper-mikolajczak Apr 20, 2026
3fc5701
Allow agent-device skill path echo in permissions allowlist
kacper-mikolajczak Apr 21, 2026
2939ad1
Merge remote-tracking branch 'upstream/main' into agent-device-local-…
kacper-mikolajczak Apr 22, 2026
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
4 changes: 3 additions & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,9 @@
"mcp__sentry__search_events",
"mcp__sentry__search_issue_events",
"mcp__sentry__search_issues",
"mcp__sentry__whoami"
"mcp__sentry__whoami",
"Bash(agent-device *)",
"Bash(echo \"$(npm root -g)/agent-device/skills/agent-device\")"
]
},
"enabledPlugins": {
Expand Down
15 changes: 15 additions & 0 deletions .claude/skills/agent-device/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
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.

Copy link
Copy Markdown
Contributor Author

@kacper-mikolajczak kacper-mikolajczak Apr 20, 2026

Choose a reason for hiding this comment

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

Skill for now is only relevant for local development. Idea to broaden the use-cases, was to devs explore the agent-device more. We can remove it, but it should not be an issue until Melvin actually picks up on it, wdyt?

allowed-tools: Bash(agent-device *) Bash(npm root *)
---

# agent-device

## Pre-flight

`agent-device` CLI version: !`agent-device --version 2>&1 || echo "NOT_INSTALLED"`

Canonical skill reference path (read these files directly for device automation guidance - bootstrap, exploration, verification, debugging): !`echo "$(npm root -g)/agent-device/skills/agent-device"`

> If the version line above shows `NOT_INSTALLED` or a command-not-found error, **STOP** and instruct the developer to install it: `npm install -g agent-device`. All device interaction depends on it.
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
3 changes: 3 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,9 @@ npm run web
### Browser Testing
Use the `/playwright-app-testing` skill to test and debug the App in a browser. Use this skill after making frontend changes to verify your work, or when the user requests testing.

### Mobile Device Testing
Use the `/agent-device` skill to drive the App on iOS and Android (simulators or real devices) for interactive testing, performance profiling, bug reproduction, and device-specific debugging. Requires `npm install -g agent-device` - the skill's pre-flight check will surface the install instruction if missing.

## Architecture Decisions

### React Native New Architecture
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ For detailed setup instructions for each platform, see the following guides:
* **📱 iOS Development**: [iOS Setup Instructions](contributingGuides/SETUP_IOS.md)
* **🤖 Android Development**: [Android Setup Instructions](contributingGuides/SETUP_ANDROID.md)

**Optional AI-assisted mobile testing:** If you use Claude Code, the [`/agent-device` skill](.claude/skills/agent-device/SKILL.md) drives iOS and Android simulators or devices for interactive testing, debugging, and performance profiling. Requires `npm install -g agent-device`.

Comment on lines +51 to +52
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.

NAB: We should start documenting our skills better -- outside scope here of course

## General Troubleshooting
1. If you are having issues with **_Getting Started_**, please reference [React Native's Documentation](https://reactnative.dev/docs/environment-setup)
2. If you are running into CORS errors like (in the browser dev console)
Expand Down
Loading