React Native and Expo rules for lists, animation, navigation, images, and native modules.

How it works

Foe: Bug Slime, a defect in your code.

Foes

  • Bug Slime

Party · Context

  • RangerYour agent100/100
  1. Bug Slime

    The Bug Slime blocks the way.

    What really happensIt stands for a defect in your code.

    Ranger: Context 100/100.

  2. Regress

    The Bug Slime uses Regress.

    What really happensA fix in one place breaks something that used to work.

    Ranger takes 8. Ranger: Context 92/100.

  3. Vercel React Native Skills

    The React Native scroll opens while the app is being built.

    What really happensThe skill loads for React Native or Expo work: components, list performance, animations, or native platform APIs.

    Bug Slime takes 18.

  4. Vercel React Native Skills

    The worst slime is named first: long lists that rebuild every row.

    What really happensList performance is the top category. Rules say use FlashList, memoize items, and keep inline objects and heavy work out of rows.

    Bug Slime takes 15.

  5. Regress

    The Bug Slime uses Regress.

    Ranger takes 8. Ranger: Context 84/100.

  6. Vercel React Native Skills

    Motion is limited to transform and opacity, on the GPU.

    What really happensAnimation rules: animate only transform and opacity, use useDerivedValue for computed motion, and Gesture.Tap instead of Pressable.

    Bug Slime takes 36.

  7. Vercel React Native Skills

    Lists, images, and navigators are left in the native pattern.

    What really happensAlso prefer native stack and tabs, expo-image, Pressable over TouchableOpacity, and native dependencies kept in the app package.

    Bug Slime takes 31. Bug Slime falls.

  8. Victory

    The Bug Slime falls.

Learn this spell

Claude Code and Codex

npx skills add vercel-labs/agent-skills

Notes

Rules for React Native and Expo, highest priority first: FlashList and list item cost, then Reanimated (transform and opacity only), native stack and tabs, expo-image, and monorepo native deps. The installer adds every skill in vercel-labs/agent-skills. Frontmatter name is vercel-react-native-skills; the folder is react-native-skills. MIT is declared in SKILL.md; the repo has no LICENSE file.

Proving Grounds record

Controlled quest results, separate from recorded usage. Each setup pools runs across its quests. The per-quest table below has casts, cast time, mana, incantation and runes; medians are not pooled.

Hero: Claude Code 2.1.305; weapon (model): claude-haiku-5-5; charge (effort): low; arena: sealed; invoked cast (the prompt named the skill). macOS 27.0.1, arm64. Curator.

Clear rate100%3 of 3 runs passed every check; Unarmed: 3 of 3 (matched quests)
Steadiness44%reliability: Wilson 95% lower bound
Buff+0 ppvs Unarmed, only matched quests (3 equipped runs; 3 control runs)
Instant casts2 of 3runs cleared on the first prompt; Unarmed: 1 of 3 (matched quests)
Attunement100%3 of 3 runs opened an equipped skill
Upkeep-4% manaextra mana per run vs Unarmed, median of 1 quest
IncantationNot measuredoutput tokens per run vs Unarmed
Runes+15%lines added per run vs Unarmed, median of 1 quest

Hero: Claude Code 2.1.305; weapon (model): claude-opus-5-5; charge (effort): high; arena: sealed; invoked cast (the prompt named the skill). macOS 27.0.1, arm64. Curator.

Clear rate100%2 of 2 runs passed every check; Unarmed: 2 of 2 (matched quests)
Steadiness34%reliability: Wilson 95% lower bound
Buff+0 ppvs Unarmed, only matched quests (2 equipped runs; 2 control runs)
Instant casts2 of 2runs cleared on the first prompt; Unarmed: 2 of 2 (matched quests)
Attunement100%2 of 2 runs opened an equipped skill
Upkeep+39% manaextra mana per run vs Unarmed, median of 1 quest
IncantationNot measuredoutput tokens per run vs Unarmed
Runes+49%lines added per run vs Unarmed, median of 1 quest

Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; invoked cast (the prompt named the skill). macOS 27.0.1, arm64. Curator.

Clear rate100%8 of 8 runs passed every check; Unarmed: 24 of 24 (matched quests)
Steadiness68%reliability: Wilson 95% lower bound
Buff+0 ppvs Unarmed, only matched quests (8 equipped runs; 24 control runs)
Instant casts8 of 8runs cleared on the first prompt; Unarmed: 24 of 24 (matched quests)
Attunement100%8 of 8 runs opened an equipped skill
Upkeep+12% manaextra mana per run vs Unarmed, median of 2 quests
IncantationNot measuredoutput tokens per run vs Unarmed
Runes+0%lines added per run vs Unarmed, median of 2 quests

Hero: OMP 18.8.3; weapon (model): anthropic/claude-sonnet-5-5; charge (effort): medium; arena: warded; invoked cast (the prompt named the skill). macOS 27.0.1, arm64. Curator.

Clear rate100%3 of 3 runs passed every check; Unarmed: 3 of 3 (matched quests)
Steadiness44%reliability: Wilson 95% lower bound
Buff+0 ppvs Unarmed, only matched quests (3 equipped runs; 3 control runs)
Instant casts3 of 3runs cleared on the first prompt; Unarmed: 3 of 3 (matched quests)
Attunement100%3 of 3 runs opened an equipped skill
Upkeep-22% manaextra mana per run vs Unarmed, median of 1 quest
IncantationNot measuredoutput tokens per run vs Unarmed
Runes+11%lines added per run vs Unarmed, median of 1 quest

Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; ambient cast (the agent chose). macOS 27.0.1, arm64. Curator.

Clear rate100%2 of 2 runs passed every check; Unarmed: 12 of 12 (matched quests)
Steadiness34%reliability: Wilson 95% lower bound
Buff+0 ppvs Unarmed, only matched quests (2 equipped runs; 12 control runs)
Instant casts2 of 2runs cleared on the first prompt; Unarmed: 12 of 12 (matched quests)
Attunement0%0 of 2 runs opened an equipped skill
Upkeep+10% manaextra mana per run vs Unarmed, median of 1 quest
IncantationNot measuredoutput tokens per run vs Unarmed
Runes-5%lines added per run vs Unarmed, median of 1 quest
Per-quest Proving Grounds record
QuestFixed taskClear ratePassed runsSteadinessReliability lower boundBuffClear-rate points vs UnarmedInstant castsFirst-prompt clearsCastsPrompts to clearCast timeAgent runtimeManaCost at API list pricesIncantationOutput tokensRunesLines added / removedAttunementSkills openedSetupApp, model, effort and sandbox
Ranger: orders screen performance passQuest v4100%3 of 3Unarmed: 100% (3 of 3)44%+0 ppvs Unarmed2 of 367%Unarmed: 1 of 3136sUnarmed: 43s94 Unarmed: 98Not reportedUnarmed: Not reported+77 / -39Unarmed: +67 / -37100%Hero: Claude Code 2.1.305; weapon (model): claude-haiku-5-5; charge (effort): low; arena: sealed; invoked cast (the prompt named the skill).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell vercel-react-native-skills --quest ranger-orders-list --hero claude-code --weapon 'claude-haiku-5-5' --charge low --cast invoked --control

Recorded with quest v4 and spell commits vercel-react-native-skills@063bee94c3f4df8453406c830b0a7df0f2860278. How to run it

Ranger: orders screen performance passQuest v4100%2 of 2Unarmed: 100% (2 of 2)34%+0 ppvs Unarmed2 of 2100%Unarmed: 2 of 211m 1sUnarmed: 57s3,705 Unarmed: 2,672Not reportedUnarmed: Not reported+124 / -45Unarmed: +83 / -40100%Hero: Claude Code 2.1.305; weapon (model): claude-opus-5-5; charge (effort): high; arena: sealed; invoked cast (the prompt named the skill).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell vercel-react-native-skills --quest ranger-orders-list --hero claude-code --weapon 'claude-opus-5-5' --charge high --cast invoked --control

Recorded with quest v4 and spell commits vercel-react-native-skills@063bee94c3f4df8453406c830b0a7df0f2860278. How to run it

Ranger: orders screen performance passQuest v4100%5 of 5Unarmed: 100% (12 of 12)57%+0 ppvs Unarmed5 of 5100%Unarmed: 12 of 12138sUnarmed: 31s1,142 Unarmed: 978Not reportedUnarmed: 3.3k+74 / -37Unarmed: +74 / -39100%Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; invoked cast (the prompt named the skill).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell vercel-react-native-skills --quest ranger-orders-list --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast invoked --control

Recorded with quest v4 and spell commits vercel-react-native-skills@063bee94c3f4df8453406c830b0a7df0f2860278. How to run it

Ranger: orders screen performance passQuest v4100%2 of 2Unarmed: 100% (12 of 12)34%+0 ppvs Unarmed2 of 2100%Unarmed: 12 of 12140sUnarmed: 31s1,080 Unarmed: 978Not reportedUnarmed: 3.3k+70 / -38Unarmed: +74 / -390%Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; ambient cast (the agent chose).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell vercel-react-native-skills --quest ranger-orders-list --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast ambient --control

Recorded with quest v4 and spell commits vercel-react-native-skills@063bee94c3f4df8453406c830b0a7df0f2860278. How to run it

Ranger: orders screen performance passQuest v4100%3 of 3Unarmed: 100% (3 of 3)44%+0 ppvs Unarmed3 of 3100%Unarmed: 3 of 3124sUnarmed: 35s815 Unarmed: 1,048Not reportedUnarmed: Not reported+73 / -39Unarmed: +66 / -38100%Hero: OMP 18.8.3; weapon (model): anthropic/claude-sonnet-5-5; charge (effort): medium; arena: warded; invoked cast (the prompt named the skill).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell vercel-react-native-skills --quest ranger-orders-list --hero omp --weapon 'anthropic/claude-sonnet-5-5' --charge medium --cast invoked --control

Recorded with quest v4 and spell commits vercel-react-native-skills@063bee94c3f4df8453406c830b0a7df0f2860278. How to run it

Ranger: Pantry navigation migrationQuest v5100%3 of 3Unarmed: 100% (12 of 12)44%+0 ppvs Unarmed3 of 3100%Unarmed: 12 of 1211m 5sUnarmed: 1m 2s2,286 Unarmed: 2,116Not reportedUnarmed: 8.4k+202 / -198Unarmed: +202 / -198100%Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; invoked cast (the prompt named the skill).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell vercel-react-native-skills --quest ranger-recipe-router --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast invoked --control

Recorded with quest v5 and spell commits vercel-react-native-skills@063bee94c3f4df8453406c830b0a7df0f2860278. How to run it

Scrying (screenshots of runs)

The latest run of each setup. Local paths, names and ids are blurred; credentials are removed.

Scrying (screenshot) of a cleared run of Ranger: orders screen performance pass with Vercel React Native Skills, Claude CodeScrying (screenshot) of a cleared run of Ranger: orders screen performance pass with Vercel React Native Skills, Claude CodeScrying (screenshot) of a cleared run of Ranger: orders screen performance pass with Vercel React Native Skills, Claude CodeScrying (screenshot) of a cleared run of Ranger: orders screen performance pass with Vercel React Native Skills, Claude Code
Explore the quests, full results and trial method

This spell has no recorded sessions in the curator's logs. Tried it? Send a spell report.