963 markdown files reformatted with the repository's pinned prettier so pnpm format:check covers the folded tree like every other repo file. The formatter's embedded-language pass also normalized code fences (TS semicolons, closed HTML tags in examples, lowercased CSS hex colors, one renumbered list that skipped an index). Alphanumeric token deltas vs the fold commit were audited file-by-file; all are formatter-equivalent markup normalizations plus the four sanitized skills.
React Native Guidelines
A structured repository for creating and maintaining React Native Best Practices optimized for agents and LLMs.
Structure
rules/- Individual rule files (one per rule)_sections.md- Section metadata (titles, impacts, descriptions)_template.md- Template for creating new rulesarea-description.md- Individual rule files
metadata.json- Document metadata (version, organization, abstract)AGENTS.md- Compiled output (generated)
Rules
Core Rendering (CRITICAL)
rendering-text-in-text-component.md- Wrap strings in Text componentsrendering-no-falsy-and.md- Avoid falsy && operator in JSX
List Performance (HIGH)
list-performance-virtualize.md- Use virtualized lists (LegendList, FlashList)list-performance-function-references.md- Keep stable object referenceslist-performance-callbacks.md- Hoist callbacks to list rootlist-performance-inline-objects.md- Avoid inline objects in renderItemlist-performance-item-memo.md- Pass primitives for memoizationlist-performance-item-expensive.md- Keep list items lightweightlist-performance-images.md- Use compressed images in listslist-performance-item-types.md- Use item types for heterogeneous lists
Animation (HIGH)
animation-gpu-properties.md- Animate transform/opacity instead of layoutanimation-gesture-detector-press.md- Use GestureDetector for press animationsanimation-derived-value.md- Prefer useDerivedValue over useAnimatedReaction
Scroll Performance (HIGH)
scroll-position-no-state.md- Never track scroll in useState
Navigation (HIGH)
navigation-native-navigators.md- Use native stack and native tabs
React State (MEDIUM)
react-state-dispatcher.md- Use functional setState updatesreact-state-fallback.md- State should represent user intent onlyreact-state-minimize.md- Minimize state variables, derive values
State Architecture (MEDIUM)
state-ground-truth.md- State must represent ground truth
React Compiler (MEDIUM)
react-compiler-destructure-functions.md- Destructure functions earlyreact-compiler-reanimated-shared-values.md- Use .get()/.set() for shared values
User Interface (MEDIUM)
ui-expo-image.md- Use expo-image for optimized imagesui-image-gallery.md- Use Galeria for lightbox/galleriesui-menus.md- Native dropdown and context menus with Zeegoui-native-modals.md- Use native Modal with formSheetui-pressable.md- Use Pressable instead of TouchableOpacityui-measure-views.md- Measuring view dimensionsui-safe-area-scroll.md- Use contentInsetAdjustmentBehaviorui-scrollview-content-inset.md- Use contentInset for dynamic spacingui-styling.md- Modern styling patterns (gap, boxShadow, gradients)
Design System (MEDIUM)
design-system-compound-components.md- Use compound components
Monorepo (LOW)
monorepo-native-deps-in-app.md- Install native deps in app directorymonorepo-single-dependency-versions.md- Single dependency versions
Third-Party Dependencies (LOW)
imports-design-system-folder.md- Import from design system folder
JavaScript (LOW)
js-hoist-intl.md- Hoist Intl formatter creation
Fonts (LOW)
fonts-config-plugin.md- Load fonts natively at build time
Creating a New Rule
- Copy
rules/_template.mdtorules/area-description.md - Choose the appropriate area prefix:
rendering-for Core Renderinglist-performance-for List Performanceanimation-for Animationscroll-for Scroll Performancenavigation-for Navigationreact-state-for React Statestate-for State Architecturereact-compiler-for React Compilerui-for User Interfacedesign-system-for Design Systemmonorepo-for Monorepoimports-for Third-Party Dependenciesjs-for JavaScriptfonts-for Fonts
- Fill in the frontmatter and content
- Ensure you have clear examples with explanations
Rule File Structure
Each rule file should follow this structure:
---
title: Rule Title Here
impact: MEDIUM
impactDescription: Optional description
tags: tag1, tag2, tag3
---
## Rule Title Here
Brief explanation of the rule and why it matters.
**Incorrect (description of what's wrong):**
```tsx
// Bad code example
```
Correct (description of what's right):
// Good code example
Reference: Link
## File Naming Convention
- Files starting with `_` are special (excluded from build)
- Rule files: `area-description.md` (e.g., `animation-gpu-properties.md`)
- Section is automatically inferred from filename prefix
- Rules are sorted alphabetically by title within each section
## Impact Levels
- `CRITICAL` - Highest priority, causes crashes or broken UI
- `HIGH` - Significant performance improvements
- `MEDIUM` - Moderate performance improvements
- `LOW` - Incremental improvements