
Tackles the classic React problem of components drowning in boolean props by teaching composition patterns that actually scale. Covers compound components, context providers, state lifting, and render prop alternatives with specific rules like avoiding boolean customization props and using explicit variant components instead. Includes React 19 API updates like dropping forwardRef for the new use() hook. The skill provides both quick reference rules and detailed examples for refactoring messy component APIs. Honestly, these patterns should be standard practice but most teams discover them the hard way after their component props become unmanageable.
$ npx -y skills add vercel-labs/agent-skills --skill vercel-composition-patterns --agent claude-codeInstalls into .claude/skills of the current project.
Composition patterns for building flexible, maintainable React components. Avoid boolean prop proliferation by using compound components, lifting state, and composing internals. These patterns make codebases easier for both humans and AI agents to work with as they scale.
Reference these guidelines when:
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Component Architecture | HIGH | architecture- |
| 2 | State Management | MEDIUM | state- |
| 3 | Implementation Patterns | MEDIUM | patterns- |
| 4 | React 19 APIs | MEDIUM | react19- |
architecture-avoid-boolean-props - Don't add boolean props to customize
behavior; use compositionarchitecture-compound-components - Structure complex components with shared
contextstate-decouple-implementation - Provider is the only place that knows how
state is managedstate-context-interface - Define generic interface with state, actions, meta
for dependency injectionstate-lift-state - Move state into provider components for sibling accesspatterns-explicit-variants - Create explicit variant components instead of
boolean modespatterns-children-over-render-props - Use children for composition instead
of renderX props⚠️ React 19+ only. Skip this section if using React 18 or earlier.
react19-no-forwardref - Don't use forwardRef; use use() instead of useContext()Read individual rule files for detailed explanations and code examples:
rules/architecture-avoid-boolean-props.md
rules/state-context-interface.md
Each rule file contains:
For the complete guide with all rules expanded: AGENTS.md
Sponsors