Open source  ·  Agent Skills standard

Agent skills for Expo apps that prove their work.

Rules with their reasons, a workflow, templates that compile in a real Expo app, and a definition of done that ends in a checker printing RESULT: PASS. Every checker is tested against planted bugs.

/plugin marketplace add zakariaf/ReactNative-Skills
/plugin install react-native@react-native-skills
79 skills Expo SDK 57 · React Native 0.86 iOS + Android MIT

An example run: the forms-and-input checker reports onChange={field.onChange} on a TextInput at src/ui/form/code-field.tsx line 11 under rule field-on-change and prints RESULT: FAIL (1 problems); after the field binds onChangeText it prints RESULT: PASS.

79
skills
79
end in a self-tested checker
6,400+
checker cases, run in CI
12
categories, 2 plugins

Every checker is tested against planted bugs like these. One that stops catching its bug fails CI.

Why it is different

Not advice: work an agent can prove.

01

A checker ends every skill

A zero-dependency Node script reads your repo and prints RESULT: PASS, or each problem with a file, line, rule and fix.

02

Checkers tested on planted bugs

Each skill's self-test plants one bug per case that must fail for exactly its rule, and clean cases that must pass.

03

Templates that compile

Complete files proven in a reference Expo SDK 57 app: strict TypeScript, ESLint with zero warnings, Jest and Prettier.

04

One stack, both platforms

Expo Router, Zustand, TanStack Query, expo-sqlite, react-intl, Reanimated, Skia and EAS, with iOS and Android stated side by side.

05

Self-contained

A skill works installed alone, never points outside its folder, names every device it uses and stops to ask before anything outward-facing.

06

Any agent

Claude Code plugins, a Codex manifest, AGENTS.md with an intent map, and a machine-readable skills.json.

Anatomy of a skill

Every skill is a folder, with four parts.

A real one, from the catalogue below. Scroll through its parts.

SKILL.md

Numbered rules, each with its reason

A step-by-step workflow and a definition of done the agent can check, not a list of tips.

forms-and-input/SKILL.md

## Rules that must hold

9. Fields bind the React Native way: onChangeText, onBlur, ref.

Why: react-hook-form reads event.target.value, which a React Native change event lacks, so the field would hold undefined.

## Workflow

1.
2.
3.

## Definition of done

☑ check-forms.mjs prints RESULT: PASS

references/

The deeper knowledge, for both platforms

Checked against Expo SDK 57 and React Native 0.86, and loaded only when the skill points to it.

forms-and-input/references/
schemas-and-messages.md
fields-and-autofill.md
keyboard-focus-and-submit.md
async-checks-and-server-errors.md
checks-and-tests.md
iOSAndroidVoiceOverTalkBacksimctladbApp StoreGoogle Play
templates/

Real files that compile and pass their tests

Complete files, not snippets, proven inside a reference Expo app before they ship.

templates/src/ui/form/field-kinds.ts
// The input presets a text field picks by name. One kind fixes // the keyboard, autofill, capitalization and secure entry together. import type { TextInputProps } from 'react-native'; export type FieldKind = | 'sentence' | 'name' | 'email' | 'current-password' | 'new-password' | 'one-time-code' | 'phone' | 'decimal';
✓ tsc --strict✓ eslint✓ jest✓ prettier
scripts/

A checker that ends in one word

It reviews your code and prints RESULT: PASS or FAIL, each problem with a file, a line, a rule and a fix. Agents, CI and people read it the same way.

scripts/check-forms.mjs
$ node scripts/check-forms.mjs .
src/ui/form/code-field.tsx:11 [field-on-change] onChange={field.onChange} on <TextInput>
RESULT: FAIL (1 problems)
Install

Add the skills to your agent.

Start every task with react-native-conventions-index: it routes the task to the skills that apply and gives the build order.

install
# the marketplace, the core plugin, and the optional game skills
/plugin marketplace add zakariaf/ReactNative-Skills
/plugin install react-native@react-native-skills
/plugin install react-native-games@react-native-skills

Skills load on their own when a task matches; run one by name as /react-native:<skill> or /react-native-games:<skill>.

Catalogue

The skills.

Search by task, file, error or tool. Each card says what the skill does, when to load it, and how to install it on its own.