
Flags
Inspect React feature flag states across www, OSS, and React Native channels to explain why behavior differs between releases.
Overview
flags is an agent skill most often used in Build (also Ship, Launch) that runs `yarn flags` to map React feature flags across Meta and OSS release channels.
Install
npx skills add https://github.com/facebook/react --skill flagsWhat is this skill?
- Run `yarn flags` with optional `$ARGUMENTS`: default all channels, `--diff ch1 ch2`, `--cleanup`, `--csv`
- Channels: www, www-modern, canary, next, experimental, rn, rn-fb, rn-next
- Legend: enabled, disabled, `__VARIANT__` test doubles, profiling-only
- Agent must explain output and highlight meaningful `--diff` deltas
- Common mistakes: ignoring `__VARIANT__` dual testing and comparing unrelated channels
- 7 named release channel families in the skill (www, OSS, React Native groupings)
- 4 CLI options besides default: --diff, --cleanup, --csv, and channel-specific args
Adoption & trust: 852 installs on skills.sh; 246k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
A React feature works in one channel but not another and you cannot see which flags differ without trawling source by hand.
Who is it for?
Developers working in the facebook/react tree or diagnosing cross-channel React behavior with official `yarn flags` output.
Skip if: Apps using LaunchDarkly or custom remote config without the React repo toolchain, or non-React feature flag dashboards.
When should I use this skill?
You need to check feature flag states, compare channels, or debug cross-channel React behavior; optional `$ARGUMENTS` for diff, cleanup, or CSV.
What do I get? / Deliverables
You get an explained flag matrix or CSV diff so you know whether behavior is expected gating, a variant test, or profiling-only configuration.
- Interpreted feature flag report across channels
- Channel diff summary when using `--diff`
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Flag inspection is anchored in Build frontend because it answers how React code paths are gated while you integrate or upgrade React—but it also supports Ship and Launch debugging. Frontend subphase covers React surface area; `yarn flags` is the canonical introspection tool for Meta's flag matrix before you blame app logic.
Where it fits
Before bumping React packages, list flags on `next` versus `canary` to see what ships enabled by default.
A PR only touches app code but CI uses experimental; `--diff experimental canary` explains failing behavior.
OSS users report missing APIs; compare `www-modern` and `canary` to see profiling-only or disabled gates.
How it compares
Use instead of guessing from source greps when channel-specific React gating is the hypothesis.
Common Questions / FAQ
Who is flags for?
Contributors and advanced integrators who need React monorepo feature flag truth across www, canary, next, experimental, and React Native channels.
When should I use flags?
During Build frontend when upgrading React; during Ship review when release behavior diverges; during Launch distribution when canary vs stable user reports conflict—always run `yarn flags` before deep code dives.
Is flags safe to install?
It only documents running local `yarn flags` in the React repo; review the Security Audits panel on this page and treat output as internal configuration detail.
SKILL.md
READMESKILL.md - Flags
# Feature Flags Arguments: - $ARGUMENTS: Optional flags ## Options | Option | Purpose | |--------|---------| | (none) | Show all flags across all channels | | `--diff <ch1> <ch2>` | Compare flags between channels | | `--cleanup` | Show flags grouped by cleanup status | | `--csv` | Output in CSV format | ## Channels - `www`, `www-modern` - Meta internal - `canary`, `next`, `experimental` - OSS channels - `rn`, `rn-fb`, `rn-next` - React Native ## Legend ✅ enabled, ❌ disabled, 🧪 `__VARIANT__`, 📊 profiling-only ## Instructions 1. Run `yarn flags $ARGUMENTS` 2. Explain the output to the user 3. For --diff, highlight meaningful differences ## Common Mistakes - **Forgetting `__VARIANT__` flags** - These are tested both ways in www; check both variants - **Comparing wrong channels** - Use `--diff` to see exact differences