Routes Expo and EAS tasks to the right skill and applies shared SDK and install rules.

How it works

Foe: Fog Wraith, missing facts, outdated docs or thin context.

Foes

  • Fog Wraith

Party · Context

  • RangerYour agent100/100
  1. Fog Wraith

    The Fog Wraith blocks the way.

    What really happensIt stands for missing facts, outdated docs or thin context.

    Ranger: Context 100/100.

  2. Haze

    The Fog Wraith breathes haze. Swings start to miss.

    What really happensWithout current docs, the agent guesses at APIs that may have changed.

    Ranger takes 8. Ranger: Context 92/100. Ranger: Haze.

  3. Expo Overview

    The overview scroll is read before another Expo spell is chosen.

    What really happensLoad expo-overview first when the request or package.json mentions Expo or EAS. Other React Native apps are out of scope unless they ship through EAS.

    Fog Wraith takes 25.

  4. Expo Overview

    The fog is named: what outcome is actually wanted.

    What really happensIt classifies the goal against a skill map, and asks you to confirm when the ask is ambiguous, before loading a leaf skill.

    Fog Wraith takes 21.

  5. Haze

    The Fog Wraith uses Haze.

    Ranger takes 8. Ranger: Context 84/100. Ranger: Haze.

  6. Expo Overview

    Shared wards are checked so version advice stays on this SDK.

    What really happensShared rules: read the expo version, use versioned docs, install with npx expo install, and send SDK upgrades to expo-upgrade.

    Fog Wraith takes 12. Ranger: Ward.

  7. Expo Overview

    The right leaf scroll is handed over, and this one steps back.

    What really happensThe matching expo-* or eas-* skill is loaded and followed. A named skill can be loaded directly. Fully specified tasks still pass through these rules.

    Fog Wraith takes 42. Fog Wraith falls.

  8. Victory

    The Fog Wraith falls.

Learn this spell

Claude Code

claude plugin install expo@claude-plugins-official

Codex

codex plugin add expo@openai-curated

Notes

Load this first when the request or package.json mentions Expo or EAS. It classifies the goal, confirms if the ask is ambiguous, then loads the matching skill. Shared rules: read the SDK version, use versioned docs, and install packages with `npx expo install`. Other React Native apps are out of scope unless they ship through EAS. Plugin install is the update path for Claude Code and Codex.

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-sonnet-5-5; charge (effort): medium; arena: sealed; invoked cast (the prompt named the skill). macOS 27.0.1, arm64. Curator.

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

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)
Attunement100%2 of 2 runs opened an equipped skill
Upkeep+8% manaextra mana per run vs Unarmed, median of 1 quest
IncantationNot measuredoutput tokens per run vs Unarmed
Runes+0%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% (12 of 12)44%+0 ppvs Unarmed3 of 3100%Unarmed: 12 of 12129sUnarmed: 31s1,135 Unarmed: 978Not reportedUnarmed: 3.3k+72 / -39Unarmed: +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 expo-overview --quest ranger-orders-list --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast invoked --control

Recorded with quest v4 and spell commits expo-overview@55ec65cd16499f20f14fb10fe99a2e62901b00a1. 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 7sUnarmed: 1m 2s2,390 Unarmed: 2,116Not reportedUnarmed: 8.4k+200 / -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 expo-overview --quest ranger-recipe-router --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast invoked --control

Recorded with quest v5 and spell commits expo-overview@55ec65cd16499f20f14fb10fe99a2e62901b00a1. How to run it

Ranger: Pantry navigation migrationQuest v5100%2 of 2Unarmed: 100% (12 of 12)34%+0 ppvs Unarmed2 of 2100%Unarmed: 12 of 1211m 10sUnarmed: 1m 2s2,278 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; 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 expo-overview --quest ranger-recipe-router --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast ambient --control

Recorded with quest v5 and spell commits expo-overview@55ec65cd16499f20f14fb10fe99a2e62901b00a1. 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 Expo Overview, Claude CodeScrying (screenshot) of a cleared run of Ranger: Pantry navigation migration with Expo Overview, Claude CodeScrying (screenshot) of a cleared run of Ranger: Pantry navigation migration with Expo Overview, Claude Code

Also equipped in trial loadouts: Combo: Expo Overview + Expo Router.

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.