Feature-Based Architecture Best Practices
SkillProductivityReact feature-based architecture guidelines for scalable applications (formerly feature-architecture). This skill should be used when writing, reviewing, or refactoring React code to ensure proper feature organization. Triggers on tasks involving project structure, feature organization, module boundaries, cross-feature imports, data fetching patterns, or component composition.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Feature-Based Architecture Best Practices skill
What this skill tells your AI
The instructions your AI receives, as published by pymodel/react-frontend-skills in skills/feature-arch/SKILL.md and read by ahel’s review.
Comprehensive architecture guide for organizing React applications by features, enabling scalable development with independent teams. Contains 42 rules across 8 categories, prioritized by impact from critical (directory structure, imports) to incremental (naming conventions).
When to Apply
Reference these guidelines when:
- Creating new features or modules
- Organizing project directory structure
- Setting up import rules and boundaries
- Implementing data fetching patterns
- Composing components from multiple features
- Reviewing code for architecture violations
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Directory Structure | CRITICAL | struct- |
| 2 | Import & Dependencies | CRITICAL | import- |
| 3 | Module Boundaries | HIGH | bound- |
| 4 | Data Fetching | HIGH | fquery- |
| 5 | Component Organization | MEDIUM-HIGH | fcomp- |
| 6 | State Management | MEDIUM | fstate- |
| 7 | Testing Strategy | MEDIUM | test- |
| 8 | Naming Conventions | LOW | name- |
Quick Reference
1. Directory Structure (CRITICAL)
struct-feature-folders- Organize by feature, not technical typestruct-feature-self-contained- Make features self-containedstruct-shared-layer- Use shared layer for truly generic code onlystruct-flat-hierarchy- Keep directory hierarchy flatstruct-optional-segments- Include only necessary segmentsstruct-app-layer- Separate app layer from features
2. Import & Dependencies (CRITICAL)
import-unidirectional-flow- Enforce unidirectional import flowimport-no-cross-feature- Prohibit cross-feature importsimport-public-api- Export through public API onlyimport-avoid-barrel-files- Avoid deep barrel file re-exportsimport-path-aliases- Use consistent path aliasesimport-type-only- Use type-only imports for types
3. Module Boundaries (HIGH)
bound-feature-isolation- Enforce feature isolationbound-interface-contracts- Define explicit interface contractsbound-feature-scoped-routing- Scope routing to feature concernsbound-minimize-shared-state- Minimize shared state between featuresbound-event-based-communication- Use events for cross-feature communicationbound-feature-size- Keep features appropriately sized
4. Data Fetching (HIGH)
fquery-single-responsibility- Keep query functions single-purposefquery-colocate-with-feature- Colocate data fetching with featuresfquery-parallel-fetching- Fetch independent data in parallelfquery-avoid-n-plus-one- Avoid N+1 query patternsfquery-feature-scoped-keys- Use feature-scoped query keysfquery-server-component-fetching- Fetch at server component level
5. Component Organization (MEDIUM-HIGH)
fcomp-single-responsibility- Apply single responsibility to componentsfcomp-composition-over-props- Prefer composition over prop drillingfcomp-container-presentational- Separate container and presentational concernsfcomp-props-as-data-boundary- Use props as feature boundariesfcomp-colocate-styles- Colocate styles with componentsfcomp-error-boundaries- Use feature-level error boundaries
6. State Management (MEDIUM)
fstate-feature-scoped-stores- Scope state stores to featuresfstate-server-state-separation- Separate server state from client statefstate-lift-minimally- Lift state only as high as necessaryfstate-context-sparingly- Use context sparingly for feature statefstate-reset-on-unmount- Reset feature state on unmount
7. Testing Strategy (MEDIUM)
test-colocate-with-feature- Colocate tests with featurestest-feature-isolation- Test features in isolationtest-shared-utilities- Create feature-specific test utilitiestest-integration-at-app-layer- Write integration tests at app layer
8. Naming Conventions (LOW)
name-feature-naming- Use domain-driven feature namesname-file-conventions- Use consistent file naming conventionsname-descriptive-exports- Use descriptive export names
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions - Category structure and impact levels
- Individual rules:
references/{prefix}-{slug}.md
The layering and boundary rules align with Feature-Sliced Design (FSD), the most widely adopted React architecture standard; see feature-sliced.design for the full methodology.
Related Skills
- For data fetching, see
tanstack-queryskill - For React component patterns, see
reactskill
Full Compiled Document
For the complete guide with all rules expanded: AGENTS.md
Signals
- GitHub stars
- 22
- Forks
- 2
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
feature-arch- Source
- github.com/pymodel/react-frontend-skills