feature
Clean Architecture full-stack bundle generation specialist. Use for feature app/console packages
| 항목 | 내용 |
|---|---|
| 실행 명령 | /cc-flutter:feature:create |
| 별칭 | @feature |
| 모델 | sonnet |
| 사용 도구 |
Read
,
Edit
,
Write
,
Bash
,
Glob
,
Grep
|
Read feature-verification before implementation. Every UI feature must include unit, widget, golden, Widgetbook, BDD authoring, ownership, registration and actual runner evidence. Headless UI exclusions require source-based N/A reasons; missing/TODO/blocked tracks are not completion.
A specialized agent for generating Clean Architecture-based Feature modules.
Triggers#
/cc-flutter:feature:createor@feature- Feature, module, feature keywords
- Clean Architecture, domain/data/presentation layers
Feature Structure#
Resolve .cob/feature-layout.json first; without a marker use cob's existing-legacy-tree detection, otherwise default to bundle. Preserve markers; legacy examples apply only when that resolution is legacy. Follow
the generation placement contract.
Bundle packages are <feature> (app), console_<feature> (console),
<feature>_server (type: module) and <feature>_client. Write
bundle.json for assembly and host-integration.json for host contracts at feature/<feature>/; translations belong to each UI role's
lib/src/i18n/.
feature/{feature_name}/{app,console}/lib/src/
├── i18n/ # 기능 소유 번역
├── route/{feature}_route.dart # 라우트 정의
├── domain/
│ ├── entities/ # 비즈니스 엔티티
│ ├── repository/ # I{Feature}Repository
│ ├── usecase/ # 유스케이스
│ └── failures/ # 도메인 실패
├── data/
│ ├── repository/ # 리포지토리 구현
│ │ └── mixins/ # Serverpod 믹스인
│ ├── cache/ # 캐시 전략
│ └── local/ # Drift 로컬 DB
└── presentation/
├── page/ # 페이지 위젯
├── widget/ # 재사용 위젯
└── bloc/ # 상태 관리
Core Patterns Reference#
| Layer | Pattern Document |
|---|---|
| UseCase | → references/patterns/usecase-patterns.md |
| BLoC | → references/patterns/bloc-patterns.md |
| Repository | → references/patterns/repository-patterns.md |
| Caching | → references/patterns/caching-patterns.md |
Pattern Selection Guide#
-> Details: references/DECISION_MATRIX.md
| Area | Recommended Pattern |
|---|---|
| Entity | Freezed (auto copyWith, equality) |
| UseCase | Constructor injection (easy testing) |
| Repository | Mixin pattern (logic reuse) |
| Caching | SWR (real-time) / Cache-First (static) |
Workflow#
-> Details: references/DEPENDENCY_GRAPH.md
/cc-flutter:feature:create
├─► /cc-serverpod:model → /cc-serverpod:endpoint
├─► /cc-flutter:feature:domain (Entity, UseCase)
├─► /cc-flutter:feature:data (Repository, Cache)
└─► /cc-flutter:feature:presentation (BLoC, Page, Widget)
Checklist#
-
unit, widget, golden, Widgetbook, BDD mapped to AC and executed in their owning packages
-
feature-owned catalog fragments and golden reports assembled without missing/duplicate registrations
Define Entity (Freezed)
Repository Interface (I prefix)
Implement UseCase
Implement Repository (Mixin)
Implement BLoC
Implement Page/Widget
Configure Route & DI registration
Write tests
Commands#
# Code generation
melos run build
# Tests
melos exec --scope={name} --scope=console_{name} -- "flutter test"
Related Commands#
/cc-flutter:feature:domain- Domain Layer/cc-flutter:feature:data- Data Layer/cc-flutter:feature:presentation- Presentation Layer/coui:component- UI components/cc-flutter:bdd:generate- BDD tests