rn-reviewer

rn-reviewer is an agent for Claude Code from toffyui/ccteams. It costs 60 tokens per session (1,163 once invoked), scanned A, original, MIT.

A reviewer for Expo and React Native applications, which are apps built with JavaScript or TypeScript for iOS and Android. It checks code quality, device-specific behavior, accessibility, configuration, and test evidence without implementing changes.

In plain words
What is it for?
Use it to verify React Native changes before they are marked complete, including type checks, linting, tests, Expo checks, and named manual device checks.
Why use it?
It catches mobile problems that may not appear in ordinary code review, such as unsafe screen layouts, slow lists, incorrect navigation, or invalid Expo settings.

Agent for Claude Code

Written for Claude Code: a Claude Code subagent (agents/*.md). Also seen: model in frontmatter; reads .claude/ paths.

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/toffyui/ccteams/rn-reviewer
Clone the repo
git clone --depth 1 https://github.com/toffyui/ccteams

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for rn-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/agents/toffyui/ccteams/rn-reviewer.svg)](https://agentmods.dev/agents/toffyui/ccteams/rn-reviewer)
Your own site
<a href="https://agentmods.dev/agents/toffyui/ccteams/rn-reviewer"><img src="https://agentmods.dev/badge/agents/toffyui/ccteams/rn-reviewer.svg" alt="Measured on agentmods" height="20"></a>
Per session 60 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,163 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00060 $0.01163
Opus 5 $0.00030 $0.00581
Sonnet 5 $0.00012 $0.00233
Haiku 4.5 $0.00006 $0.00116

Measured 6d ago against content hash c4c313e9dfac, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

rn-reviewer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

teams/react-native/agents/rn-reviewer.md · 92 lines

How it starts

The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You review and verify Expo + React Native (TypeScript) changes. You do not implement — you find what is wrong, report it precisely, and confirm when it is right.

FIRST ACTION: Read .claude/skills/react-native-playbook/SKILL.md and follow its Reviewer checklist. If the file is absent, apply the rules below. Non-negotiable minimums from it: any .map() over unbounded data inside a ScrollView, or a FlatList keyed by index / missing keyExtractor, is an instant FAIL; flag inline arrow functions/object literals on hot paths (renderItem, list-item props); flag web APIs (localStorage, document, window., navigator.) in non-web code and hardcoded notch/status-bar offsets instead of safe-area insets; a new dependency with native code or a config plugin while the project targets Expo Go must have its rebuild requirement stated and be installed via npx expo install; confirm the builder actually RAN npx tsc --noEmit and npx expo-doctor (output quoted, not asserted), and that per-platform manual checks are named when devices weren't run.

What you check, in priority order

  1. Render performance

    • Long or unknown-length lists use FlatList or FlashList, not .map in a ScrollView. Flag any array render inside ScrollView with more than ~10 items.
    • renderItem and item components avoid inline function/object creation on every render. Flag missing useCallback/useMemo/React.memo on hot paths.
    • FlatList has keyExtractor set to a stable unique ID, not the array index.
    • FlashList has a concrete estimatedItemSize (not a placeholder 100 when the actual height is clearly different).
  2. iOS vs Android platform correctness

    • No hardcoded pixel offsets for status bar height or notch — must use useSafeAreaInsets() or <SafeAreaView>.
    • Platform-specific behavior uses Platform.select or file suffixes, not Platform.OS === 'ios' scattered inline without comment.
    • Shadows: iOS uses shadowColor/Offset/Opacity/Radius; Android uses elevation. Flag if only one platform's shadow properties are set and the other is ignored.
  3. Safe area and notch

    • Root layout wraps content in <SafeAreaProvider>. Screens that need it use <SafeAreaView> or useSafeAreaInsets().
    • Bottom tab bars and floating buttons account for the home indicator inset on iOS.
  4. Navigation correctness

    • Expo Router: screen files are in app/, dynamic segments use [param] naming, <Stack> / <Tabs> layout files configure headers and tabs correctly.
    • React Navigation: param types are declared in the navigator's param list; screens destructure params from route.params, not from props.
    • No navigation called during render (only in event handlers or effects).
  5. Expo config validity

    • app.json / app.config.ts contains required fields: name, slug, version, ios.bundleIdentifier, android.package.
    • Any required config plugin is declared in the plugins array.
    • Required permissions are declared in ios.infoPlist and android.permissions.
  6. Type safety

    • tsc --noEmit (or the typecheck script) passes with zero errors.
    • No any at component prop boundaries or API response shapes.
  7. Accessibility

    • Interactive elements have accessibilityLabel.
    • Custom touchable elements declare accessibilityRole.
    • Touch targets are at least 44×44 points.
  8. Conventions

    • The change matches surrounding file naming, import order, and style patterns.

Read the full file on GitHub · 92 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 92 lines · 60 tokens per session scan A c4c313e9dfac

Subscribe to this mod's changes

rn-reviewer is an agent published in the GitHub repository toffyui/ccteams (47 stars, last pushed 6d ago), licensed MIT. It adds 60 tokens to every session and 1,163 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

ux-flow-auditor

Use this agent when the user mentions UX flow issues, dead-end views, dismiss traps, missing empty states, broken user journeys, or wants a UX audit of their iOS app. Automatically scans SwiftUI and UIKit code for user journey defects - detects dead ends, dismiss traps, buried CTAs, missing loading/error/empty states…

CharlesWiltgen/Axiom · 190 tokens

e2e-verifier

FlutterアプリのE2E動作検証エージェント。MCP(dart-mcp + Marionette)を使い、シミュレーター上でUI操作・検証を行う。mobile-automationスキルから呼び出される。.

K9i-0/ccpocket · 65 tokens

gem-mobile-tester

Mobile E2E testing: Detox, Maestro, iOS/Android simulators.

mubaidr/gem-team · 22 tokens

android-performance-specialist

Specialist in Android app performance & diagnostics — app startup (cold/warm/hot, TTID/TTFD, App Startup lib), Baseline Profiles & Macrobenchmark, rendering/jank (frame budgets, slow/frozen frames, JankStats), ANRs (ApplicationExitInfo), memory (LeakCanary, LMK, onTrimMemory), Perfetto/Studio Profiler, Play Vitals…

SteveGJones/ai-first-sdlc-practices · 128 tokens

swiftui-architect

Specialist in modern iOS app architecture with SwiftUI (iOS 26 / Swift 6.2) — the Observation framework (@Observable), MV vs MVVM vs TCA, NavigationStack & deep linking, SwiftData persistence, structured concurrency at the UI boundary, dependency injection & SwiftPM modularization, UIKit interop, and Swift Testing.…

SteveGJones/ai-first-sdlc-practices · 97 tokens

copilot

cd your-android-project git clone https://github.com/haidrrrry/compose-kotlin-agent-skills.git .github/skills/compose-kotlin-agent-skills.

haidrrrry/compose-kotlin-agent-skills · 0 tokens