← ClaudeAtlas

create-featurelisted

Scaffold a new feature module in lib/features/ with the correct directory shape, store, state, page, use-case placement, DI registration, route, localization and tests. Use when adding any new screen-owning feature or promoting a sub-module to a peer feature.
NarekManukyan/flutter-mobx-kit · ★ 0 · AI & Automation · score 70
Install: claude install-skill NarekManukyan/flutter-mobx-kit
# Create a feature module Governed by [ADR-0001](../../../docs/adr/0001-layered-architecture.md) (layers), [ADR-0005](../../../docs/adr/0005-flat-feature-tree.md) (flat tree), [ADR-0006](../../../docs/adr/0006-feature-owned-singletons.md) (feature-owned stores). ## Decide the location first Features are **peers** under a domain grouping. A feature must never contain a `features/` subdirectory. ``` ❌ lib/features/meetings/meeting_details/features/ai_chat/ ✅ lib/features/meetings/ai_chat/ ✅ lib/features/meetings/meeting_details/ ``` A pure view-layer sub-page with no store of its own may stay under the parent's `view/` (e.g. `meeting_details/view/share_meeting/`). The moment it gains its own store or state, promote it to a sibling. Never create anything under `lib/shared/` — it is deprecated. ## Directory shape Create only the directories the feature actually needs. A feature with no modals does not get a `modals/` folder. ``` lib/features/{feature}/ view/ {feature}_page.dart @RoutePage widget — Provider root {feature}_page_state.dart @injectable, MobX, no API access {feature}_keys.dart widget keys used by Maestro flows widgets/ private widgets for this page use_cases/ UCs consumed only by view/state mobx/ {feature}_store.dart @injectable or @singleton, owns DioService use_cases/ UCs consumed only by the store core/use_cases/ UCs consume