react-native-conventions-index
Installation
SKILL.md
React Native conventions index
The front door of the library. Every task starts here: find its rows in the task table, load every skill they name, build in the documented order, prove the work with each loaded skill's own checks, and report with that evidence. The tables are generated from the library catalogue and every skill's description, and a script proves the index lists exactly the skills that exist.
Rules that must hold
- Load every skill of every matching row before writing code, the lead first. A skill's rules and checks protect only work done with it loaded; loading just the most obvious skill is the most common way a task goes wrong (a hard-coded string, a screen never compared with its design, a write that bypasses the repository).
- Skills the developer names are binding. A task that says "Skills: forms-and-input tdd-workflow" (or
/react-native:forms-and-input) loads those first and holds their definitions of done; the row's other skills are added, never swapped for them. - Code is test-first and every task ends in a report.
tdd-workflowjoins every task that changes product code andgit-commits-and-reportingevery task that commits or reports (row ruletest-first). Nobody may read the diff, so the tests and the report are the review. - Every UI change carries its verification skills (row rule
ui-verification): a screen, component, state or form task also loadsi18n-strings-and-catalogs,rtl-and-direction,accessibility-as-codeanddesign-visual-parity, whether a UI skill leads the row or a screen skill joins it (a setting, a paywall, a game screen), so the change is checked in light and dark, LTR and RTL, at the largest text size, on iOS and Android, against its approved design. - Build in the documented order (references/build-orders.md): a layer starts only when the layer under it passes its checks. Each step lists what it copies (tests included), merges, installs and generates: do exactly that, so tsc, lint and coverage stay green after every step. A file fetched by following a tsc error means the manifest is wrong, so report it.
- Done means every loaded skill's checks print
RESULT: PASS, plusnpm run -s check:fast(andnpm run verifybefore a push or pull request).SKIP <file> [<rule>] not yet created (<skill> creates it)lines andNOT APPLICABLE: <fact>count as a pass; exit 2 (nothing to check, bad input) never does. A verify gate the build order lists as red until a later step (i18n:verifybefore the catalogs) is not a failure of the current step: run the other gates one by one and name the pending one. A check that could not run is named in the report with the reason. - When no row fits, never guess. Read the intent map and load every skill whose "Use when" matches; a requirement ID in the task goes to
spec-traceability, an error or a log totroubleshooting-playbook. Never infer a skill's content from its name. - House defaults are stated once, in their owner skills, and every task keeps them: one Expo app with a
src/layout and the@/alias, ports with fakes and one composition root (architecture-and-boundaries); Expo Router (navigation-and-routing); typed results at boundaries (error-handling-typed-results); no secrets in the repo or the bundle (app-variants-and-environment,privacy-and-store-declarations); iOS and Android both, web opt-in (web-support); gates never weakened (quality-gates); versions from the verified stack (dependency-management); devices always named (e2e-maestro); stop and ask before anything outward-facing (git-commits-and-reporting). - The index is generated and exact. Never edit a generated part. After a skill is added, removed, renamed or re-described, or the catalogue changes, run
build-index.mjs --write, thencheck-index.mjs; a stale index routes tasks to skills that are gone.
The task table
The most common tasks. Several rows can apply: load the union. Every row, with its note, is in references/task-matrix.md; the lead skill for any intent is in references/intent-map.md.