Skills software-mansion argent Argent
argent-react-native-optimization
- Use it when:
- A React Native app feels slow, janky or slow to start, and you want it measurably faster.
- It does:
- Sweeps the code with an ESLint performance ruleset and a judgment checklist, has subagents fix the findings, then profiles key flows and fixes the worst offenders.
- You get:
- Code fixes checked against a target metric, re-profiled after each architectural change, then a pass over every screen for errors the fixes introduced.
- Needs:
- The Argent MCP server, subagents, argent-react-native-profiler, which it loads for profiling, and argent-device-interact for navigating screens.
- Installs:
- Any ESLint plugins the ruleset needs that your project lacks; the extra rules apply for that one run.
- Skips:
- Memoization fixes when the project uses React Compiler, except for components the compiler leaves out.
Skill 9 of 12 in the Argent bundle, after argent-metro-debugger and before argent-react-native-profiler.
Only works inside its bundle: Loads argent-react-native-profiler as its profiling phase, and navigates every screen with argent-device-interact to check that the fixes broke nothing. Install Argent instead.
Loads argent-react-native-profiler and follows its workflow for the profiling phase, so it needs that skill and Argent's MCP server.
TL;DR
Software Mansion's entry point for performance work on a React Native app, run through Argent, their MCP server that lets the agent control simulators, emulators and devices. Its rule is to measure first: set a target metric and threshold, fix the top offender, re-measure honestly, and check a fix with debugger-evaluate before committing it. It works through a four-phase checklist. Phase 1 runs ESLint over the source with React Native performance rules, such as no inline styles or index keys, and sends subagents to fix the results, one per file. Phase 2 reviews areas that need judgment, such as memoization, lists, animations, fetch waterfalls, effect cleanup and state, with one subagent per item; a monolithic context is only reported, not fixed. Phase 3 loads argent-react-native-profiler to profile the key user flows, cross-references what it finds with the sweeps and fixes the biggest issues first: mechanical fixes in batches, architectural ones one per cycle. Only the main agent touches the device. Phase 4 visits every screen in scope and checks the console log for errors the fixes introduced, then lint runs once more. A measured interaction is first recorded as a replayable e2e test, with argent-create-e2e.
Summarizes the skill at b965c94.
npx skills add https://github.com/software-mansion/argent --skill argent-react-native-optimization skills.sh pageSource on GitHubAll skills from software-mansion/argent
- Total Downloads
- 29,900 on skills.sh, Nov 9, 2026
- Repo stars
- 3,175 software-mansion/argent
- First seen
- Apr 28, 2026 on skills.sh
Weekly values
| Week to | Installs |
|---|---|
| Sep 21 | 1,415 |
| Sep 28 | 1,536 |
| Oct 5 | 1,543 |
| Oct 12 | 1,599 |
| Oct 19 | 1,652 |
| Oct 26 | 1,708 |
| Nov 2 | 1,637 |
| Nov 9 | 1,759 |
| Category |
Find root causes, review code and test what you built. Everything for building software: planning, coding, debugging, design, frameworks, cloud, agents and skills. |
|---|---|
| Type |
A multi-step process the agent follows: interview, debug, run a TDD loop, review. |
| Effect |
Its own steps create or change files, git state or local tools. |
| Needs |
Needs an MCP server connected. Relies on the agent being able to spawn subagents. |
| Publisher |
A verified publisher on skills.sh, or the company or maintainer behind the product the skill operates. |
| Topics | |
| Stack |
SKILL.md
From software-mansion/argent at b965c94. Checked daily, last changed Nov 6, 2026.
Frontmatter
name: argent-react-native-optimization
description: Optimizes a React Native app by profiling first to find real bottlenecks, then sweeping for mechanical issues. Entry-point for all performance work. Use when the app feels slow, user asks to optimize, fix re-renders, reduce jank, or improve startup. Delegates to argent-react-native-profiler for measurement.Rules
- Do not apply shotgun optimizations. Measure first, define what "good enough" looks like (target metric + threshold), fix the top offender, re-measure honestly.
- Profile for discovery, not only verification. Use the profiler to find issues static analysis missed, not only to confirm fixes.
- Verify before fixing: recollect the evidence and conclude whether the fix is worth undertaking. Validate a fix with
debugger-evaluatebefore committing it. - One fix per cycle for architectural changes. Mechanical batch fixes (inline styles, index keys) can be grouped; re-profile once after the batch. When the measurement involves device interaction, record it as an e2e test (
argent-create-e2eskill) before the first run so every cycle replays identical steps. - React Compiler: if the project uses it (
babel-plugin-react-compilerin the Babel config, orexperiments.reactCompiler: truein the Expo config), skip memoization fixes (React.memo,useMemo,useCallback, hoisting inline objects and functions) in every phase; the compiler does them. Keep them for components the compiler skips (compilationMode: "annotation","use no memo", asourcesfilter). Where the profiler report marks a component ⚠️ (bailout suspected), fix what stops the compiler. - Sub-agents: Phases 1–2 dispatch sub-agents: one per file for lint results, one per checklist item for semantic. Sub-agents CANNOT touch the device - all profiling and E2E verification must happen in the main agent.
Pipeline
Lint and semantic sweeps catch deterministic issues cheaply. Profiling finds runtime bottlenecks that static analysis misses. Do both.
Copy this checklist into your TODO list:
Optimization Progress:
- [ ] Phase 1: Lint sweep (deterministic: catch mechanical issues without a running app)
- [ ] Phase 2: Semantic sweep (judgment: memoization, lists, animations, etc.)
- [ ] Phase 3: Baseline profile (find real bottlenecks, fix top offenders)
- [ ] Phase 4: Verify no regressions (crashes, errors, red screens)
- [ ] Re-run lint to confirm the fixes added no new issues and none were missed
Phase 1: Lint sweep
Run ESLint once at the project root with a comprehensive RN performance ruleset. Dispatch sub-agents to fix results: one per file, in parallel. See references/lint-rules.md for ruleset and procedure.
Phase 2: Semantic sweep
Review each area requiring judgment: memoization, list rendering, animations, async patterns, effect cleanup, state hygiene, context architecture. Dispatch one sub-agent per checklist item. See references/semantic-checklist.md for full checklist.
Phase 3: Profiling
- For a quick look without a session,
react-profiler-renderslists how many instances of each component are mounted (not how often they re-render). - Load the
argent-react-native-profilerskill and follow its workflow (React and native profiling together) on the key user flows: the screens the user named, or all major flows. It covers analysis, drill-down, and re-profiling after each fix. - Cross-reference the profiling results with the Phase 1–2 findings, and fix the highest-impact issues top-down. Re-profile after architectural changes; batch mechanical fixes.
Phase 4: Verify no regressions
Navigate every screen and UI flow within scope (the entire app if no scope was given, via argent-device-interact) and confirm each renders without errors. Check debugger-log-registry for warnings and errors (Grep its log file). Argent hides LogBox toasts once a debugger-* tool connects, so screenshots catch only full-screen red errors. Look for regressions the fixes introduced (e.g. fewer re-renders but higher CPU, or new jank on a different screen). Main agent only.