Agent skill

UI Kitten Showcase QA

by akveo in akveo/react-native-ui-kitten

Drives the Expo showcase app in an iOS simulator with agent-device to sweep every UI Kitten component in all theme and mapping combinations, reporting regressions with evidence.

MITAuto-check passedMobile

Install UI Kitten Showcase QA

skills CLI
$ npx skills add akveo/react-native-ui-kitten --skill showcase-qa -a claude-code

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

GitHub CLI
$ gh skill install akveo/react-native-ui-kitten showcase-qa --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/akveo/react-native-ui-kitten.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/showcase-qa .claude/skills/showcase-qa && 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
showcase-qa
GitHub stars
11k
Token cost
~2.3k tokens
SKILL.md length
1,039 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Drives the Expo showcase app in an iOS simulator with agent-device to sweep every UI Kitten component in all theme and mapping combinations, reporting regressions with evidence.

  • Works in 7 steps: Preconditions (do once) → Open → Sweep loop → …
  • Testing UI Kitten on an iOS simulator after a library change
  • SKILL.md covers 0. Preconditions (do once), 1. Open, 2. Sweep loop and 3. Theme / mapping matrix, plus 4 more sections
  • Calls yarn, expo and xcrun

What it does

The goal is an on-device regression sweep of the UI Kitten library through its Expo showcase app. After preconditions, the agent checks that agent-device is installed, starts Metro with yarn showcases:start, and builds and installs the app with yarn showcases:ios, picking an installed simulator runtime by UDID if the boot fails. The app's facts, such as bundle id and test IDs, live in the repo's AGENTS.md, which is read first.

It opens the showcase bundle on iOS with a relaunch and a QA session, treating any LogBox or RedBox overlay as the first finding. The app is one scroll view whose sections run from Layout and Button through Input, Card, List, Select, Modal and navigation components to Calendar, Datepicker and ViewPager. For each section the agent scrolls into view, saves a screenshot under .agent-device/qa named by mapping and theme, then interacts with settle and verifies from the diff, such as pressing buttons, filling inputs and checking that checkboxes, toggles and radios flip selected.

The skill also covers recording and replaying .ad scripts and verifying a component fix on device. It says to run agent-device doctor only when open fails and never to fetch the latest agent-device through npx.

When your agent uses it

  • Testing UI Kitten on an iOS simulator after a library change
  • Hunting visual or interaction regressions across all components
  • Verifying a component fix on device
  • Recording or replaying .ad scripts for the showcase app

Example prompts

  • “Run the full showcase QA sweep on the iOS simulator and report regressions.”
  • “Check that the Toggle and Radio components still flip selected after my fix.”
  • “Record an .ad script for the Datepicker section so we can replay it.”

Requirements

  • The agent-device CLI
  • Yarn and the UI Kitten repository with its Expo showcase app
  • An iOS simulator with its runtime installed

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Preconditions (do once)
  2. Open
  3. Sweep loop
  4. Theme / mapping matrix
  5. Render health (optional, per suspect component)
  6. Save replays for the regression suite
  7. Close and report

What it can do on your machine

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

    • yarn
    • expo
    • xcrun
    • curl
    • adb

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

  • Network

    No URLs in SKILL.md. Its commands use yarn and curl, 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 no API keys, tokens, secrets or passwords.

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

Context cost

UI Kitten Showcase QA loads about 2.3k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 1,039 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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 akveo/react-native-ui-kitten at commit e73dce6, republished under its MIT licence (© akveo). 1,039 words, ~2,286 tokens.

Download SKILL.mdSave it as .claude/skills/showcase-qa/SKILL.md (or your agent's skills folder).
name
showcase-qa
description
On-device regression sweep of every UI Kitten component using agent-device against the Expo showcase app (src/showcases). Use when asked to test the library on a simulator/emulator, hunt visual or interaction regressions, verify a component fix on device, or record/replay .ad scripts.

Showcase QA with agent-device

Goal: drive the showcase app on a simulator, exercise every component section in all four theme/mapping combinations, and report regressions with evidence. Facts about the app (bundle id, test IDs, scripts) are in the repo AGENTS.md; read it first.

0. Preconditions (do once)

bash
agent-device --version                       # must exist; never npx -y agent-device@latest
yarn showcases:start                         # Metro on :8081, background it (debug builds only)
yarn showcases:ios                           # prebuild + pod install + build + install

If expo run:ios fails with Unable to boot device because we cannot determine the runtime bundle, pick a simulator whose runtime is installed: xcrun simctl list devices available, boot it by UDID with xcrun simctl boot <udid>, then pass --device <udid>.

Do not run agent-device doctor as routine prep. Run it only when open fails.

1. Open

bash
agent-device open com.uikitten.showcases --platform ios --relaunch --session qa

open returns the initial interactive snapshot. If it shows a LogBox/RedBox overlay, that is finding #1: screenshot --overlay-refs, react-devtools errors, then agent-device react-native dismiss-overlay and continue.

2. Sweep loop

The app is one ScrollView (id="showcase-scroll"). Sections in order:

Layout, Button, ButtonGroup, Input, CheckBox, Toggle, Radio, RadioGroup, Card, Avatar, Spinner, ProgressBar, CircularProgressBar, Divider, Icon, List, ListItem, Menu, MenuItem, Select, SelectItem, Popover, Tooltip, OverflowMenu, Modal, TopNavigation, TopNavigationAction, BottomNavigation, BottomNavigationTab, Tab, TabBar, TabView, Drawer, DrawerItem, Calendar, RangeCalendar, Datepicker, RangeDatepicker, Autocomplete, ViewPager.

For each section:

  1. agent-device scroll down --settle until id="section-<Name>-title" is in the diff (or agent-device wait 'id="section-<Name>-title"' after a scroll).
  2. agent-device screenshot .agent-device/qa/<mapping>-<theme>/<Name>.png.
  3. Interact with what the section exposes, always with --settle, and verify from the diff:
    • Button/ButtonGroup: press each visible button; nothing should throw.
    • Input/Autocomplete: fill text, check the value echoes; keyboard dismiss.
    • CheckBox/Toggle/Radio/RadioGroup: press, verify selected flips (is selected <selector>).
    • Select/Datepicker/RangeDatepicker/Popover/Tooltip/OverflowMenu/Modal: press the trigger, verify the overlay content appears in the diff, pick an item, verify the overlay closes and the trigger reflects the choice. Overlay not appearing, appearing at 0,0, or not closing is a regression.
    • Calendar/RangeCalendar: press a day, verify selection; page next/prev month.
    • Tab/TabBar/TabView/BottomNavigation/ViewPager: press each tab, verify the selected indicator moves; swipe the ViewPager.
    • Menu/Drawer/List: press items, verify selection changes.
  4. If a section looks wrong in the screenshot but the snapshot is fine, keep the screenshot as evidence and note it as "visual".

3. Theme / mapping matrix

Repeat the sweep for each of: Eva/Light (default), Eva/Dark, Material/Light, Material/Dark. Switch with press 'id="toggle-theme"' --settle and press 'id="toggle-mapping"' --settle; confirm via get text 'id="theme-label"'. Compare the screenshot of each section across the four combinations; a section that renders identically in light and dark, or that loses borders/contrast, is a theming regression.

4. Render health (optional, per suspect component)

bash
agent-device react-devtools status
agent-device react-devtools wait --connected
agent-device react-devtools profile start
# interact with the suspect section a few times
agent-device react-devtools profile stop
agent-device react-devtools profile rerenders --limit 10
agent-device react-devtools profile slow --limit 5

Report render offenders separately from visual/interaction findings.

5. Save replays for the regression suite

For a flow worth guarding, re-run it with recording armed and durable selectors (ids/labels, not @refs), then commit the script under src/showcases/e2e/:

bash
agent-device open com.uikitten.showcases --platform ios --relaunch --session rec \
  --save-script src/showcases/e2e/<name>.ad
# ... steps using id="..." selectors and --settle ...
agent-device close --session rec

Every script must start with context platform=ios (add context timeout= if needed) so agent-device test can discover it. Run the suite: yarn e2e:ios.

Selector gotchas (verified on iOS simulator)

  • Nodes exposed as [other] (CheckBox, Radio, MenuItem, SelectItem, calendar days, Datepicker input) do not match label="..." or text="..." selectors. Use the @eN ref from the latest snapshot -i, or find "<text>" press --first|--last.

  • press has no --first/--last; find and gesture have no --settle. After find ... press, run wait stable.

  • A text field's placeholder is not its label. Focus it by ref, then type "<text>".

  • scroll <dir> <fraction> lands by scroll physics, not exact offset. Loop is visible 'id="section-<Name>-title"' / scroll down 0.5 --settle instead of counting.

  • keyboard dismiss fails on iOS (no dismiss key). Tap a neutral area, never the header buttons (toggle-theme / toggle-mapping sit at the top right and are easy to hit by accident).

  • Never start Metro with CI=1: Expo disables watch mode ("reloads are disabled") and every edit after startup is silently ignored. Verify an edit landed by fetching the bundle: curl -s 'http://127.0.0.1:8081/src/showcases/index.ts.bundle?platform=ios&dev=true' | grep -c <marker>.

  • Set AGENT_DEVICE_SESSION=qa in the shell rather than passing --session from a zsh variable; unquoted $VAR is not word-split in zsh.

  • The iOS backend never exposes the selected trait: is selected errors on every element, even the active BottomNavigation tab, and get attrs lists only type/label/value/rect. Verify selection through visible state (label, value, diff) instead. Do not report "selected state missing" from agent-device output alone.

  • Roles without a native iOS trait (checkbox, radio, menuitem) show as [other]. Check snapshot --raw: React Native folds role + state into value, e.g. "value":"checkbox, checked", which is what VoiceOver announces. That is RN's design, not a library bug. Switch/button/text-field have native traits and show their own type.

  • A Card exposes its children as one grouped [other] node ("Welcome…, SHOW TOOLTIP, DISMISS"). find "DISMISS" press --first then taps the group's centre, not the button. Read the button's position from a screenshot and press <x> <y> --settle.

  • Overlay content covers the header, so press 'id="toggle-theme"' while a Popover is open only closes the Popover. Flip the theme first, then open the overlay and inspect its colours.

  • When two calendars are on screen (Calendar showcase + an open Datepicker), label="16" is ambiguous; the error lists candidates with @eN~sM refs, and the later one is the picker's. A bare @eN from an older snapshot may silently do nothing: prefer the ~s form it printed.

  • Closing a Tooltip by tapping "outside" must avoid the bubble itself; tap well below the anchor.

  • A TextInput focused inside a Modal makes the first tap on a nested Select option only blur the input (Select's own list has no keyboardShouldPersistTaps). Tap twice or blur first.

  • Android emulator: if the app shows "Unable to load script" and logcat says Failed to connect to /10.0.2.2:8081, the emulator's host NAT is down (no default route). Cold-boot it (emulator -avd Pixel_7_API_34 -no-snapshot-load), run adb reverse tcp:8081 tcp:8081 again (a fresh boot drops it), then agent-device open com.uikitten.showcases --platform android --relaunch --metro-host localhost --metro-port 8081; that flag is what sets debug_http_host (editing the pref by hand gets overwritten). Reloading from the RedBox can leave a blank surface: force-stop and open again instead. A Release build is no way out: agent-device refuses non-debuggable Android apps (run-as: package not debuggable).

  • expo run:android --device wants an AVD name (Pixel_7_API_34), not emulator-5554; with a single running emulator, omit it.

Show full SKILL.md (43 more words)Show less

6. Close and report

agent-device close --session qa.

Report format (one bullet per finding, no praise):

  • <Component> · <mapping>/<theme> · <regression|visual|render|crash>: what was expected, what happened, evidence path(s). Include the RN overlay text verbatim if one appeared.
  • End with a table: component × combination, ✓ / ✗ / not exercised.

© akveo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/showcase-qa of akveo/react-native-ui-kitten.

Open the folder on GitHubat commit e73dce6

Compare with similar skills

UI Kitten Showcase QA 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.

UI Kitten Showcase QA compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
UI Kitten Showcase QA this skillakveo/react-native-ui-kitten11k—~2.3kAutomated safety check: PassMIT
Screenmapaleqsio/screenmap243—~7.2kAutomated safety check: PassMIT
Expo Development on Limrunsuperset-sh/superset15k—~3.6kAutomated safety check: PassCustom licence
Live-Device iOS QAgarrytan/gstack136k—~11kAutomated safety check: NotesMIT
Iapkit E2E Martiehyodotdev/openiap155—~5.4kAutomated safety check: NotesMIT
Mobile Demo Recordingsuperset-sh/superset15k—~2.2kAutomated safety check: NotesCustom licence

Similar skills

  • Screenmap

    aleqsio/screenmap

    Generate a visual navigation map of an Expo / React Native or NativeScript app.

    243 GitHub stars~7.2k tokensUpdated 5 days ago
    MobileAuto-check passed
  • Expo Development on Limrun

    superset-sh/superset

    Sets up and runs Expo and React Native apps on Limrun remote iOS simulators and Android emulators, using dev-client builds for fast JS and TS iteration.

    15k GitHub stars~3.6k tokensUpdated today
    MobileAuto-check passed
  • Live-Device iOS QA

    garrytan/gstack

    Tests a SwiftUI app on a real iPhone connected by USB, reading the Swift source and then looping through screenshot, analysis and action to find bugs.

    136k GitHub stars~11k tokensUpdated today
    MobileAuto-check: notes
  • Iapkit E2E Martie

    hyodotdev/openiap

    Run IAPKit local receipt-validation E2E with the dev.hyo.martie React Native or Expo examples, the compiled packages/kit server, real Convex, and Apple or Google sandbox purchases.

    155 GitHub stars~5.4k tokensUpdated today
    MobileAuto-check: notes
  • Mobile Demo Recording

    superset-sh/superset

    Runs the Superset mobile app on a headless iOS simulator against the local stack, drives it with Maestro and captures clean screen recordings and screenshots.

    15k GitHub stars~2.2k tokensUpdated today
    MobileAuto-check: notes
  • Xcode Simulator Test

    EveryInc/compound-engineering-plugin

    Builds an iOS app, exercises it on a simulator with XcodeBuildMCP and reports PASS, FAIL or PARTIAL with screenshots, logs and per-screen evidence.

    25k GitHub stars~519 tokensUpdated yesterday
    MobileAuto-check passed

Questions about UI Kitten Showcase QA

What does UI Kitten Showcase QA do?

Drives the Expo showcase app in an iOS simulator with agent-device to sweep every UI Kitten component in all theme and mapping combinations, reporting regressions with evidence. The goal is an on-device regression sweep of the UI Kitten library through its Expo showcase app. After preconditions, the agent checks that agent-device is installed, starts Metro with yarn showcases:start, and builds and installs the app with yarn showcases:ios, picking an installed simulator runtime by UDID if the boot fails.

When should I use UI Kitten Showcase QA?

UI Kitten Showcase QA fits situations like: testing UI Kitten on an iOS simulator after a library change; hunting visual or interaction regressions across all components; verifying a component fix on device; recording or replaying .ad scripts for the showcase app.

How do I install UI Kitten Showcase QA in Claude Code?

Run `npx skills add akveo/react-native-ui-kitten --skill showcase-qa -a claude-code`. Or copy the skill folder (.claude/skills/showcase-qa in akveo/react-native-ui-kitten) into .claude/skills/showcase-qa in your project. Claude Code loads it when a task matches its description.

How do I install UI Kitten Showcase QA in Codex?

Run `npx skills add akveo/react-native-ui-kitten --skill showcase-qa -a codex`. Or copy the skill folder (.claude/skills/showcase-qa in akveo/react-native-ui-kitten) into .agents/skills/showcase-qa in your project. Codex loads it when a task matches its description.

Can I use UI Kitten Showcase QA 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 akveo/react-native-ui-kitten --skill showcase-qa -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/showcase-qa, .gemini/skills/showcase-qa, .github/skills/showcase-qa and .opencode/skills/showcase-qa in your project.

What does UI Kitten Showcase QA need to run?

Going by SKILL.md and its folder, UI Kitten Showcase QA needs the command-line tools its instructions call (yarn, expo, xcrun, curl and adb). Our summary lists: The agent-device CLI; Yarn and the UI Kitten repository with its Expo showcase app; An iOS simulator with its runtime installed.

Does UI Kitten Showcase QA access the network?

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

Is UI Kitten Showcase QA safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does UI Kitten Showcase QA use?

UI Kitten Showcase QA 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 UI Kitten Showcase QA use?

About 2.3k tokens (SKILL.md is roughly 9.1k 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 UI Kitten Showcase QA?

Skills that share tags, products or a category with UI Kitten Showcase QA: Screenmap (aleqsio/screenmap, 243 stars), Expo Development on Limrun (superset-sh/superset, 15k stars), Live-Device iOS QA (garrytan/gstack, 136k stars) and Iapkit E2E Martie (hyodotdev/openiap, 155 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains UI Kitten Showcase QA?

akveo (a GitHub organization) maintains it in akveo/react-native-ui-kitten, which has 10,664 GitHub stars. The repository was last updated on October 6, 2026.

Source: akveo/react-native-ui-kitten on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.