Overview
Extends one complete Expo core app into product variants through declared slots. Variants fill those slots; they keep the app rather than forking it. A host that prebuilds wraps the core’s toolchain factories so the filled variant can run. That wrap is host duty, not a slot.
Two unrelated apps that share a UI kit are a library plus managing-monorepo, not this skill.
Dependencies
Resolve every required row before composing. Skill discovery and missing-skill stop text: composition-contract.md → Require managing-monorepo.
| Item | Required | When | How |
|---|---|---|---|
managing-monorepo e0e993e7-a5f9-4bea-9923-166b503df045 |
required | Always | npx skills add cedmandocdoc/awesome-skills --skill managing-monorepo |
building-react-native-application ddfed93c-f419-4c5f-8832-85acc8f85f00 |
optional | Screens, src/ui, navigation, forms |
npx skills add cedmandocdoc/awesome-skills --skill building-react-native-application |
Install both: npx skills add cedmandocdoc/awesome-skills --skill composing-react-native-application --skill managing-monorepo
Setup
| Item | Required | When | How |
|---|---|---|---|
| Standing rule | required | Fill slots / new variant | Add - Variants of `<core>` follow composing-react-native-application; load it before adding a variant or slot. to root AGENTS.md (create when missing) and to root CLAUDE.md when it exists without importing AGENTS.md; skip a file that has it |
Agent workflow
Follow this skill when one Expo core app is extended into product variants through slots. Resolve every required Dependencies and Setup row, then match Entry points. When the variant package prebuilds, creating-variant.md points at host wrap. Core screens and src/ui use building-react-native-application when that optional skill is installed.
Entry points
Use the first matching row; combine when the task spans types.
| Entry | When | Go to |
|---|---|---|
| Fill slots / new variant | Identity, home tab, theme, extra routes | creating-variant.md |
| New slot on the core | Product behavior every variant should be able to pass in | creating-slot.md |
| Lookup | Known doc name or single reference | Reference index |
Task types
Match every row that applies. Open every local link in Docs before coding.
| Task type | Docs |
|---|---|
| Identity-only product | creating-variant.md |
Swap Main for an existing screen |
creating-variant.md |
| New home screen or shell-only feature | creating-variant.md; also building-react-native-application when installed |
| Declare a new slot | creating-slot.md |
Reference index
Contract
composition-contract.md — naming, structure, slots, host toolchain, skill dependencies.
| Doc | When to use |
|---|---|
| composition-contract.md | Naming, structure, product slots, kinds, dependency invoke |
| creating-variant.md | Fill declared slots |
| creating-slot.md | Add an extension point on the core |
| managing-shared-config.md | Host wrap after filling slots (prebuild package) |