agentsclimarketplace

Feature init

Skill launch52-ai/flutter-template/.claude/skills/feature-init

Initialize new feature with Clean Architecture folder structure and skeleton files. Creates scaffold for domain, data, and presentation layers with TODOs. Use AFTER /plan to create the initial structure, then run /domain and /data to fill in details.From its SKILL.md

Install
npx -y skills add launch52-ai/flutter-template --skill feature-init

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 4 commands, including `dart run .claude/skills/feature-init/scripts/check.dart` and 3 more.

SKILL.md

4.7 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

Feature Init - Initialize Feature Structure

Initialize a new feature with Clean Architecture folder structure and skeleton files. Creates the scaffold, then /domain and /data fill in the details.

When to Use This Skill

  • Creating a new feature from scratch (after /plan)
  • User asks to "create feature", "init feature", "scaffold feature", or "add new feature"
  • Starting a new feature module

Dependency Rules

┌─────────────┐
│   Domain    │  ← No dependencies (pure Dart, no Flutter)
└──────┬──────┘
       │
   ┌───┴───┐
   ▼       ▼
┌──────┐ ┌──────────────┐
│ Data │ │ Presentation │  ← Both depend on Domain only
└──────┘ └──────────────┘

Data and Presentation must NEVER depend on each other.

Naming Conventions

ComponentPatternExample
Feature foldersnake_caseuser_profile
Entity{Feature}UserProfile
Repository interface{Feature}RepositoryUserProfileRepository
Repository impl{Feature}RepositoryImplUserProfileRepositoryImpl
Model (DTO){Feature}ModelUserProfileModel
State{Feature}StateUserProfileState
Notifier{Feature}NotifierUserProfileNotifier
Screen{Feature}ScreenUserProfileScreen

Commands

# Check all features and completeness
dart run .claude/skills/feature-init/scripts/check.dart

# Generate new feature (recommended)
dart run .claude/skills/feature-init/scripts/check.dart --generate feature_name

# Validate dependencies
dart run .claude/skills/feature-init/scripts/check.dart --validate feature_name

Workflow

1. Gather Requirements

Ask: Feature name (snake_case)? What does it do? What screens? Needs API?

2. Generate Scaffold

Use the script or templates.md to create skeleton files:

  • domain/entities/ - Pure domain model (skeleton)
  • domain/repositories/ - Interface (skeleton)
  • data/models/ - DTO skeleton with toEntity()/fromEntity()
  • data/repositories/ - Implementation skeleton
  • presentation/providers/ - State + Notifier skeleton
  • presentation/screens/ - Consumer widget skeleton
  • i18n/ - Localization template

3. Hand Off to Specialized Skills

After scaffolding, direct user to fill in details:

  1. /domain {feature} - Fill in domain layer details (entities, enums, interfaces)
  2. /data {feature} - Fill in data layer details (DTOs, repository impl, API calls)
  3. /i18n {feature} - Add localized strings
  4. /testing {feature} - Create test files
  5. /design - Polish the UI
  6. /a11y - Add Semantics widgets
  7. Add route to app_router.dart
  8. Add repository provider to core/providers.dart
  9. Run dart run build_runner build

Feature Types

Standard (Default): Full domain + data + presentation. Use for most features - even "simple" ones like onboarding need data persistence.

Data-Only: Domain + data without screens. Use for shared services (analytics, notifications).

Guides

GuideUse For
templates.mdSkeleton templates, naming conventions, checklist
examples.mdComplete "bookmarks" feature example
scripts/check.dartAutomated scaffold generation and validation

Checklist

  • Feature folder created with snake_case name
  • Domain layer: entity, repository interface created
  • Data layer: model with toEntity()/fromEntity(), repository impl
  • Presentation layer: state, notifier, screen
  • i18n template created at i18n/{feature}.i18n.yaml
  • Route added to app_router.dart
  • Repository provider added to core/providers.dart
  • build_runner executed successfully
  • No circular dependencies between layers

Related Skills

  • /plan - Run BEFORE this skill to plan feature requirements
  • /domain - Run AFTER to fill in domain layer details
  • /data - Run AFTER to fill in data layer implementation
  • /presentation - Run AFTER to fill in presentation layer (states, notifiers, screens)
  • /i18n - Add localized strings
  • /testing - Create test files
  • /design - Polish UI components
  • /a11y - Add accessibility support

What ships with it: 3 files

46.5 KB alongside SKILL.md

scripts/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.