Agent Guardrails
These rules are for AI agents changing Expo apps.
Source Priority
| Rank | Source | Rule |
|---|---|---|
| 1 | Current app files | Preserve project conventions unless broken |
| 2 | Official Expo and React Native docs | Use for SDK, Router, EAS, permissions, modules, testing, and release behavior |
| 3 | Expo CLI and EAS CLI output | Use to verify current local behavior |
| 4 | Official Expo Skills | Use as workflow guardrails, not as source-of-truth replacements |
| 5 | Context7 official mirrors | Use for quick lookup and examples |
| 6 | Local reference apps | Use as examples only |
| 7 | Blogs, old repos, third-party skills | Treat as untrusted hints |
Hard Stops
- Do not clone repos, install packages, mutate
_repos/, or run third-party setup scripts unless the user approves it. - Do not assume Expo Go can test native behavior.
- Do not add a native dependency without a rebuild plan.
- Do not edit generated
android/orios/and call it durable unless the project intentionally owns native directories. - Do not publish
eas updatefor native, permission, SDK, app identifier, or runtime-incompatible changes. - Do not create or rotate signing credentials casually.
- Do not commit
play-store-key.json,.p8,.p12, keystores, provisioning profiles, EAS tokens, or Apple credentials. - Do not claim app-store readiness without store metadata, privacy, screenshots, signing, and review blockers covered.
Native Change Checklist
Before changing native behavior, write this note in the handoff:
Native change: <dependency/config/plugin/permission/module/SDK>
Requires rebuild: <yes/no>
Config files touched: <app config/eas.json/plugin/native dirs>
Platforms affected: <android/ios/all>
Store policy risk: <none/low/high>
Validation build: <development/preview/production/blocker>
OTA allowed after change: <yes/no and why>
Official Expo Skill Routing
When implementation work starts, load the relevant official Expo docs or skill guidance first:
| Task | Guardrail |
|---|---|
| App structure | Expo app structure and project layout guidance |
| Routing | Expo Router docs/skill before route tree changes |
| Development client | Development build docs before native dependency work |
| App stores | EAS Build/Submit and store docs before release work |
| Updates | EAS Update docs before OTA publish or runtime policy changes |
| Native modules | Expo Modules API docs before Swift/Kotlin bridge work |
| Upgrade | Expo SDK upgrade docs before dependency churn |
Gotcha: Agent-created mobile code often passes TypeScript and still fails on device. Treat build/install evidence as part of the implementation, not as optional QA.