React Native Code One Task

This documentation was generated with the assistance of AI. Please report any inaccuracies.

Carry out one task’s implementation, tests, and checkbox update in a React Native app — nothing else. It detects the app’s toolchain (expo or metro) and the rest of its profile at runtime, loads only the matching guidance from its own reference/ directory, and never runs Jest, tsc, ESLint, Gradle, CocoaPods, xcodebuild, Metro, expo prebuild, or any e2e flow.

Purpose

iru-react-native-code-one-task is the narrowest execution unit for a react-native-tagged task in the iru-code pipeline and the React Native counterpart to iru-typescript-code-one-task. It differs in three ways that make Step 1 longer: the two toolchains own native code differently (in an Expo app android/ and ios/ are generated by npx expo prebuild, so native changes go through app config, config plugins, or a local Expo module; in a bare Metro app they are committed source), React Native Testing Library 14 made render/fireEvent/renderHook async so the installed major must be pinned, and native changes cannot ship over the air so the report states what must be rebuilt.

Step 1 detects toolchain, React Native/Expo SDK/React versions, routing, Jest preset, RNTL major, e2e framework, state/native libraries, native layout, package manager, and any project AGENTS.md/CLAUDE.md, then reads reference/README.md and only what it routes to: always mandatory-rules.md and code-style.md, exactly one of expo.md/metro.md, and as needed native-modules.md, state-and-data.md, ui-and-platform.md, testing.md, security.md, tsdoc.md, and ui-contract.md plus ui-implementation.md for UI work. Steps 2-4 re-check current code, implement exactly what the task says, and write tests. Step 6 checks off the task’s own checkbox with a "group validation pending" note, and Step 7 reports the detected profile, files touched, native impact, blockers, and deviations from reference/. For a task that adds or changes a screen, component or list it also applies the catalog’s UI contract and its React Native mapping (see Building user interfaces): it writes the Screen › Region › Component tree first, builds presentational components with typed state props and on… callbacks, uses FlatList/SectionList with a memoized item component for collections, and writes RNTL tests, UI gallery registry entries and Maestro capture flows (.maestro/ui/) for each state × left-to-right/right-to-left × light/dark, plus code that passes eslint-plugin-react-native-a11y at the .ui-quality.yml level.

It runs on a medium model on purpose, since the plan carries the hard reasoning.

Plugin

Shipped by the iru-react-native plugin of the ai-catalog marketplace (install with /plugin install iru-react-native@ai-catalog; see Plugins).

Invocation

/iru-react-native-code-one-task <task description>

Inputs

Argument Required Description Default

Task description

Yes

The task’s own text, including its exact implementation_plan.md checkbox line(s) for itself and its sub-tasks, and any relevant "Current code state" context.

None — invoked with a specific task’s text by iru-react-native-code-one-task-group or iru-typescript-code-one-task.

Outputs

  • Source (JS/TS), native (android/, ios/, modules/<name>/), and config (app.json, package.json codegenConfig, plugins) changes implementing exactly what the task specifies — with full TSDoc on exported symbols.

  • Tests for the new/changed behaviour (Jest with the detected preset and RNTL API shape, JS facade tests for native code, native JUnit/XCTest where the project has such targets, and Maestro/Detox flows only when the project already uses that framework) — written, never run.

  • For UI work: RNTL component/screen tests over every fixture state, UI gallery registry entries (src/dev/ui-gallery/registry.tsx), .maestro/ui/<Id>.yaml capture flows using the ui-capture subflow (or e2e/support/ui-screenshots.ts for Detox) and takeScreenshot steps in new flows — written, never run; missing capture infrastructure is reported, not invented.

  • implementation_plan.md with this task’s checkbox (and its completed sub-tasks') checked and a "group validation pending" note, unless the task stopped on a blocker.

  • A report: detected profile and reference files read, files touched and tests added, for UI work the decomposition tree and the screenshot names the tests will produce, native impact (which platform changed and what it needs — pod install, Gradle build, development build, prebuild check — and whether it is OTA-compatible), any blocker, and any deliberate deviation from reference/.

  • No baseline capture, no quality gates, no commits.

Execution flow

flowchart TD A["Start /iru-react-native-code-one-task\n&lt;task description&gt;"] --> B["Step 1: detect profile\n(toolchain, versions, routing, Jest preset,\nRNTL major, e2e, package manager)"] B --> C{expo or react-native\nin package.json?} C -- no --> D["Stop: task was mis-routed\nto another key"] C -- yes --> E["Read reference/README.md,\nmandatory-rules, code-style,\none toolchain file, plus task-relevant files"] E --> F["Step 2: re-check current code state\nof files the task touches"] F --> G["Step 3: implement exactly what\nthe task specifies;\nUI work: decompose first"] G --> H["Step 4: write/update tests\n(nothing is run)"] H --> I{Blocker or ambiguity\nthat needs the user?} I -- yes --> J["Step 5: ask the user\nor report task blocked"] I -- no --> K["Step 6: check off this task's\ncheckbox with pending note"] J --> L K --> L["Step 7: report profile, files, tests,\nnative impact, blockers, deviations"]

Dependencies

Invokes

None — iru-react-native-code-one-task is a leaf skill; it reads and edits files and reads its own reference/ directory, but it calls no other skill or agent. It deliberately runs no gates, which the group skill runs once for the whole bucket.

Invoked by

None — this skill runs inline; it is not invoked from inside a custom agent of its own (its group skill spawns iru-isolated-skill-executor to run it).

Source

SKILL.md on GitHub — the file this page was generated from.