Agent skill

QA Find Bugs Mobile

by bex-co in bex-co/beancount-io

Hunt bugs in the running Beancount mobile app using local Expo MCP on the iPhone 17e simulator, sign in with QAEMAIL and QAPASSWORD, reproduce failures, trace root causes, and deduplicate findings.

MITAuto-check: notesMobile

Install QA Find Bugs Mobile

skills CLI
$ npx skills add bex-co/beancount-io --skill qa-find-bugs-mobile -a claude-code

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

GitHub CLI
$ gh skill install bex-co/beancount-io qa-find-bugs-mobile --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/bex-co/beancount-io.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/qa-find-bugs-mobile .claude/skills/qa-find-bugs-mobile && 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
qa-find-bugs-mobile
GitHub stars
296
Token cost
~2.2k tokens
SKILL.md length
947 words
Files
2
Skills in repo
27
Repo updated
First seen
Licence
MIT

At a glance

Hunt bugs in the running Beancount mobile app using local Expo MCP on the iPhone 17e simulator, sign in with QAEMAIL and QAPASSWORD, reproduce failures, trace root causes, and deduplicate findings.

  • Works in 5 steps: Record xcrun simctl list devices… → Work inside mobile/. Install existing… → Use the native development build… → …
  • Native mobile QA
  • SKILL.md covers Boot the exact device and client, Drive and authenticate and Sweep whole journeys
  • Calls xcrun, npx and node; needs QA_PASSWORD

What it does

QA Find Bugs Mobile is an agent skill from bex-co/beancount-io. Hunt bugs in the running Beancount mobile app using local Expo MCP on the iPhone 17e simulator, sign in with QAEMAIL and QAPASSWORD, reproduce failures, trace root causes, and deduplicate findings. Use for native mobile QA. Skip browser-only dashboard QA, ordinary code review, and store releases.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `evals/evals.json`).

It sits in Mobile, covering Cross-platform mobile apps, Debugging and Root cause analysis. It works with Model Context Protocol, Expo and iOS. The repository describes itself as: 💰 Double-entry bookkeeping made easy — plain-text accounting for humans and AI agents. Polished iOS & Android app built with React Native + Expo. The licence is MIT.

When your agent uses it

  • Native mobile QA
  • Tasks that involve Cross-platform mobile apps
  • Tasks that involve Debugging

Example prompts

  • “/qa-find-bugs-mobile”

Requirements

  • Node.js

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Record xcrun simctl list devices available -j, identify the iPhone 17e
  2. Work inside mobile/. Install existing deps with
  3. Use the native development build io.beancount.ios. Check it is installed on
  4. Start the local MCP server
  5. The currently pinned Expo MCP chooses the sole booted iOS simulator and

What it can do on your machine

Read from SKILL.md and the folder at commit 5614bc7. 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

    Shell commands in SKILL.md call:

    • xcrun
    • npx
    • node
    • yarn

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

  • Network

    No URLs in SKILL.md. Its commands use npx and yarn, which can reach the network depending on how they are called.

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

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • QA_PASSWORD

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

Context cost

QA Find Bugs Mobile loads about 2.2k tokens when it runs. Until then it costs about 80 tokens; SKILL.md has 947 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~80
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:66
    QA_EMAIL` / `QA_PASSWORD` from **`mobile/.env`**, unless the user supplies
  • NoteMentions a .env fileSKILL.md:67
    another path. Pass `--env-file mobile/.env` to the shared helper from the repo
  • NoteMentions a .env fileSKILL.md:68
    root (or `--env-file .env` when working inside `mobile/`). Do not reuse the

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from bex-co/beancount-io at commit 5614bc7, republished under its MIT licence (© bex-co). 947 words, ~2,161 tokens.

Download SKILL.mdSave it as .claude/skills/qa-find-bugs-mobile/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
qa-find-bugs-mobile
description
Hunt bugs in the running Beancount mobile app using local Expo MCP on the iPhone 17e simulator, sign in with QA_EMAIL and QA_PASSWORD, reproduce failures, trace root causes, and deduplicate findings. Use for native mobile QA. Skip browser-only dashboard QA, ordinary code review, and store releases.

Mobile QA bug hunt

Read the shared QA contract first, then mobile/AGENTS.md, especially its production-write and simulator instructions. Use Expo MCP on iPhone 17e unless the user names another device. A mobile viewport in Playwright is not a substitute for exercising the native app.

Arguments: optional server URL, journey names, device name, wN, SHIP=1, DRY_RUN=1. Default to the app's selected server and report mode; inspect the selected server before signing in or writing anything.

Boot the exact device and client

  1. Record xcrun simctl list devices available -j, identify the iPhone 17e UDID, and record its runtime, appearance, and initial boot state. Do not use the first booted device as a proxy for the requested one.

  2. Work inside mobile/. Install existing deps with yarn install --frozen-lockfile if needed. Reuse a matching Metro server or start plain npx expo start --localhost. Do not set EXPO_UNSTABLE_MCP_SERVER=1; the local binary needs no remote MCP tunnel.

  3. Use the native development build io.beancount.ios. Check it is installed on the target UDID and launch it with xcrun simctl launch <udid> io.beancount.ios. If necessary, build for that device with SENTRY_DISABLE_AUTO_UPLOAD=true npx expo run:ios --device <udid>. Do not count Expo Go or an old native binary's missing module/permission as a product regression. Reusing a compatible build does not authorize copying credentials or another simulator's data container.

  4. Start the local MCP server:

    sh
    node node_modules/expo-mcp/bin/expo-mcp.mjs \
      --dev-server-url http://localhost:8081 --root /absolute/path/to/mobile

    Connect through an MCP client or JSON-RPC stdio: initialize, notifications/initialized, tools/list, then tools/call. If the tools are absent from the agent's tool list, use this installed local server; no new dependency or hosted Expo authentication is needed. Discover its actual schemas rather than inventing a device argument.

  5. The currently pinned Expo MCP chooses the sole booted iOS simulator and rejects multiple devices. Record other booted simulators, temporarily shut them down when appropriate for this QA session, and restore them afterward. If another session needs one running, report the conflict instead of silently tapping it. Verify the screenshot is from iPhone 17e before the first action.

Drive and authenticate

  • Use automation_tap with {projectRoot, platform:"ios", testID} or {x,y}, automation_find_view, automation_take_screenshot, and collect_app_logs. Keep screenshots under the gitignored repo-root .tmp/qa-<date>/; decode image content to a file, not a base64 dump in the transcript. Bound individual log captures to 10s.
  • Prefer testID and inspected view bounds. Taps use logical points. Expo MCP resizes screenshots, so do not blindly divide its image coordinates by 3. Determine the native dimensions and capture scale, or use view bounds.
  • Load QA_EMAIL / QA_PASSWORD from mobile/.env, unless the user supplies another path. Pass --env-file mobile/.env to the shared helper from the repo root (or --env-file .env when working inside mobile/). Do not reuse the dashboard file implicitly; the two packages may use different QA accounts. Keep the values inside the credential helper. Tap the native Sign In action, complete its browser OAuth/PKCE authorization, and verify that control returns to the app and survives a relaunch. Never inject a fabricated token/session into reactive variables to bypass the flow.
  • The pinned MCP has no typing or scrolling tool. For ordinary text, the local Simulator hardware keyboard can be driven through osascript when macOS Accessibility access is available. Credential typing must stay in a helper and target a verified field. Do not assume an automation text tool exists.
  • Reach otherwise inaccessible screens with inspected Expo Router deep links: xcrun simctl openurl <udid> 'beancount:///(app)/<route>?param=value'. Record that this proves the destination, not the navigation/scroll journey. Do not use malformed or fabricated ledger/transaction IDs as a valid control.
  • A development warning banner is not shipped UI. Inspect its underlying log, dismiss it if needed, and recheck. Keep genuine runtime errors distinct from instrumentation limits. Simulator haptics, camera hardware and Android remain unverified unless separately exercised.
Show full SKILL.md (331 more words)Show less

Sweep whole journeys

JourneyObservable promise
auth/serverServer validation and connection test, sign-in/cancel/retry, browser callback, relaunch persistence, and explicit expired-session recovery work. Restore any local server setting changed during the run.
discoveryOwned/starred/discover lists, search and ledger selection land on the chosen ledger; switching clears prior ledger data. Star/unstar only when authorized and restore the initial state.
homePeriod and account controls change summaries; recent activity opens the correct transaction; empty/loading states do not flash misleading values.
transactionsSearch/date/type/payee/account filters compose, clear restores results, paging/refresh does not duplicate rows, detail/postings agree.
entryOn authorized disposable data: add/edit balanced postings, date, payee and narration; cancel preserves data; saving persists once after relaunch. Check keyboard and validation on iPhone 17e.
accountsAccount hierarchy/search, picker, detail entries and balance charts agree; account creation requires authorized synthetic data.
reports/budgetDate/interval changes affect displayed reports, chart selections and budget progress. Multi-currency and no-budget states remain honest. Budget writes require the scoped permission.
merchantsGrouped payees, exact-payee drill-down, search and totals match their transaction sets; shared chart tooltips clear on period changes.
filesBrowse text files, branches, commits and diffs; navigate back; edit/save/cancel only disposable files when authorized.
settingsTheme, locale, local server settings and supported screens work; restore initial preferences. Inspect billing, referral, notifications and account deletion without submitting external or destructive actions.
accessibilityPrimary controls have meaningful labels; safe areas, keyboard, dialogs and tab navigation remain usable in light/dark at this device size.

Wait for each journey to settle, capture evidence and relevant logs, and relaunch before retaining a failure. Do not flip config.features.agentChat; its disabled state is deliberate. Investigate source under mobile/app/ (thin routes), mobile/src/screens/ (behavior), src/common/ (Apollo, OAuth, vars, selectors), and src/components/. Generated GraphQL code is evidence, not an edit target. Trace server failures under the relevant backend package's guidance.

Apply the shared triage, root-cause, dedupe and handoff contract. State which native journeys actually ran on iPhone 17e, which were only deep-linked, and which need credentials, write authorization, physical hardware, or another OS.

© bex-co, 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 1 other file in .agents/skills/qa-find-bugs-mobile of bex-co/beancount-io.

  • SKILL.md
  • evals/evals.json

Open the folder on GitHubat commit 5614bc7

Compare with similar skills

QA Find Bugs Mobile 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.

QA Find Bugs Mobile compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
QA Find Bugs Mobile this skillbex-co/beancount-io296—~2.2kAutomated safety check: NotesMIT
Radon MCPsoftware-mansion-labs/skills291—~665Automated safety check: PassNone
Appllama UsageAppllama/appllama-skills2.5k1 repos~1.6kAutomated safety check: PassMIT
Mobile Devcallstackincubator/codex-mobile-dev-plugin150—~5.5kAutomated safety check: PassNone
Debugagentic-community/mcp-gateway-registry967—~1.8kAutomated safety check: NotesApache-2.0
Flowstudio Power Automate Debuggithub/awesome-copilot40k2 repos~5kAutomated safety check: PassMIT

Similar skills

  • Radon MCP

    software-mansion-labs/skills

    Best practices for using Radon IDE's MCP tools when developing, debugging, and inspecting React Native and Expo apps.

    291 GitHub stars~665 tokensUpdated 11 days ago
    MobileAuto-check passed
  • Appllama Usage

    Appllama/appllama-skills

    Use the Appllama MCP (mcp.appllama.io) well — research real top-grossing mobile apps, their screens, flows, and UI elements, then build from what you learn.

    2.5k GitHub starsUsed in 1 repo~1.6k tokens
    MobileAuto-check passed
  • Mobile Dev

    callstackincubator/codex-mobile-dev-plugin

    Official

    A skill your agent uses when building, running, changing, or debugging local iOS, Android, Expo, React Native, or SwiftUI apps.

    150 GitHub stars~5.5k tokensUpdated yesterday
    MobileAuto-check passed
  • Debug

    agentic-community/mcp-gateway-registry

    Debug issues in the MCP Gateway Registry using first-principles thinking.

    967 GitHub stars~1.8k tokensUpdated 3 days ago
    DevelopmentAuto-check: notes
  • Flowstudio Power Automate Debug

    github/awesome-copilot

    Official

    Debug failing Power Automate cloud flows using the FlowStudio MCP server.

    40k GitHub starsUsed in 2 repos~5k tokens
    DevelopmentAuto-check passed
  • Official

    Pro+ subscription required. An agent skill from github/awesome-copilot.

    40k GitHub starsUsed in 2 repos~3.3k tokens
    DevelopmentAuto-check passed

More from bex-co/beancount-io

All 27 skills in this repo
  • Beancount Close

    bex-co/beancount-io

    Close an accounting period in a Beancount ledger by reconciling each active account through beancount-reconcile, checking assertions and recurring gaps, reviewing flags, then proposing a commit with…

    296 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Beancount Import

    bex-co/beancount-io

    Import a bank or card CSV, OFX/QFX, or QIF export into an existing Beancount ledger.

    296 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Beancount Importer Author

    bex-co/beancount-io

    Write or repair a reusable Beangulp importer from a sample bank export, with reviewed golden files and a passing test harness.

    296 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Beancount Init

    bex-co/beancount-io

    Scaffold a new Beancount ledger with bea init and validation, with optional Fava browser setup when requested.

    296 GitHub stars~1.2k tokensUpdated today
    Auto-check: notes
  • Beancount Options

    bex-co/beancount-io

    Record a described options trade or lifecycle event as validated Beancount transactions through bea, after review and confirmation.

    296 GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Beancount Reconcile

    bex-co/beancount-io

    Reconcile one Beancount account against a CSV statement or pasted PDF text.

    296 GitHub stars~4.1k tokensUpdated today
    Auto-check passed

Questions about QA Find Bugs Mobile

What does QA Find Bugs Mobile do?

Hunt bugs in the running Beancount mobile app using local Expo MCP on the iPhone 17e simulator, sign in with QAEMAIL and QAPASSWORD, reproduce failures, trace root causes, and deduplicate findings. QA Find Bugs Mobile is an agent skill from bex-co/beancount-io. Hunt bugs in the running Beancount mobile app using local Expo MCP on the iPhone 17e simulator, sign in with QAEMAIL and QAPASSWORD, reproduce failures, trace root causes, and deduplicate findings.

When should I use QA Find Bugs Mobile?

QA Find Bugs Mobile fits situations like: native mobile QA; tasks that involve Cross-platform mobile apps; tasks that involve Debugging.

How do I install QA Find Bugs Mobile in Claude Code?

Run `npx skills add bex-co/beancount-io --skill qa-find-bugs-mobile -a claude-code`. Or copy the skill folder (.agents/skills/qa-find-bugs-mobile in bex-co/beancount-io) into .claude/skills/qa-find-bugs-mobile in your project. Claude Code loads it when a task matches its description.

How do I install QA Find Bugs Mobile in Codex?

Run `npx skills add bex-co/beancount-io --skill qa-find-bugs-mobile -a codex`. Or copy the skill folder (.agents/skills/qa-find-bugs-mobile in bex-co/beancount-io) into .agents/skills/qa-find-bugs-mobile in your project. Codex loads it when a task matches its description.

Can I use QA Find Bugs Mobile 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 bex-co/beancount-io --skill qa-find-bugs-mobile -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qa-find-bugs-mobile, .gemini/skills/qa-find-bugs-mobile, .github/skills/qa-find-bugs-mobile and .opencode/skills/qa-find-bugs-mobile in your project.

What does QA Find Bugs Mobile need to run?

Going by SKILL.md and its folder, QA Find Bugs Mobile needs the command-line tools its instructions call (xcrun, npx, node and yarn) and credentials named QA_PASSWORD. Our summary lists: Node.js.

Does QA Find Bugs Mobile access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is QA Find Bugs Mobile safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does QA Find Bugs Mobile use?

QA Find Bugs Mobile 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 QA Find Bugs Mobile use?

About 2.2k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to QA Find Bugs Mobile?

Skills that share tags, products or a category with QA Find Bugs Mobile: Radon MCP (software-mansion-labs/skills, 291 stars), Appllama Usage (Appllama/appllama-skills, 2.5k stars), Mobile Dev (callstackincubator/codex-mobile-dev-plugin, 150 stars) and Debug (agentic-community/mcp-gateway-registry, 967 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains QA Find Bugs Mobile?

bex-co (a GitHub organization) maintains it in bex-co/beancount-io, which has 296 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 9, 2026.

Source: bex-co/beancount-io on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.