audit_rn
Audits React Native components for iOS and Android design convention compliance including accessibility attributes, font scaling, safe areas, and dark mode handling using StyleSheet analysis.
Instructions
Audit React Native / Expo source (JSX/TSX + StyleSheet) against the iOS HIG + Android Material conventions RN must satisfy. Flags touchables missing accessibilityLabel/accessibilityRole, touchables below 44pt without hitSlop, allowFontScaling={false}, fontSize below ~13, screens without SafeAreaView, and (for multi-mode apps) hardcoded colors with no useColorScheme/Appearance dark-mode handling. Rewards SafeAreaView, hitSlop, Platform-aware code, and a theme. RN-native checks only — no web/CSS or SwiftUI rules. Same return shape as audit_page. (RN renders to native widgets, so audit_ios_screen scores the rendered screen.)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | React Native source — a single screen/component as a string, or an array of file contents. Concatenated before analysis. | |
| strict | No | Strict mode — also count warnings as failures for grading. Default: false | |
| profile | No | Taste profile owning the binding. Omit to search all stored profiles for one bound to the project. | |
| project | No | Project identifier — resolves a saved taste surface binding (see bind_taste_surface). When the binding carries design_notes, each note is verified against the source (Animated/Reanimated, BlurView, haptics, fonts) and returned in note_assessments; missing notes count toward the grade. | |
| color_scheme | No | The app's declared appearance (Expo app.json userInterfaceStyle). 'light' or 'dark' means single-mode by design — the dark-mode adaptation check is then suppressed. Default: automatic. |