/flutter-init
Use when user wants to create a new Flutter project (Todo/Habit/Note/Expense/Custom domain) with Clean Architecture, Riverpod 3.0, Drift, and modern Flutter stack
$ npx -y skills add bear2u/my-skills --skill flutter-init --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/flutter-init
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when user wants to create a new Flutter project (Todo/Habit/Note/Expense/Custom domain) with Clean Architecture, Riverpod 3.0, Drift, and modern Flutter stack
SKILL.md
flutter-init.SKILL.mdname: flutter-init
description: Use when user wants to create a new Flutter project (Todo/Habit/Note/Expense/Custom domain) with Clean Architecture, Riverpod 3.0, Drift, and modern Flutter stack
Flutter Init Skill
도메인 기반 Flutter 프로젝트를 생성하고 현대적인 아키텍처로 자동 설정합니다. Todo, Habit, Note, Expense 또는 Custom 도메인을 선택하여 Clean Architecture 기반의 완전한 CRUD 앱을 즉시 생성할 수 있습니다.
Quick Start
스킬 실행 시 다음 정보를 입력받습니다:
- 폴더명 (예: my_habit_app)
- 프로젝트명/패키지명 (예: habit_app)
- 도메인 선택 (Todo/Habit/Note/Expense/Custom)
- 스택 프리셋 (Minimal/Essential/Full Stack/Custom)
그 후 자동으로 다음 단계가 실행됩니다:
# 1. 프로젝트 생성 (Android/Kotlin, iOS/Swift)
flutter create --platforms android,ios --android-language kotlin --org com.example [폴더명]
# 2. 패키지 설치
flutter pub get
# 3. 도메인별 Clean Architecture 코드 자동 생성
# - domain/entities/[domain].dart (Freezed 엔티티)
# - data/datasources/local/app_database.dart (Drift 테이블)
# - data/repositories/[domain]_repository_impl.dart (Repository 구현)
# - presentation/providers/[domain]_providers.dart (Riverpod 3.0)
# - presentation/screens/* (List/Detail/Form 화면)
# 4. 코드 생성 (Freezed, Drift, JSON Serializable)
dart run build_runner build --delete-conflicting-outputs
# 5. 코드 검증 및 오류 자동 수정 (필수)
flutter analyze
# 6. 앱 실행
flutter run
Task Instructions
**IMPORTANT**: 이 스킬은 대화형으로 진행됩니다.
Step 1: 도메인 및 프로젝트 설정 질문
**먼저 사용자에게 이렇게 물어보세요:**
"Flutter 앱을 생성합니다. 다음 정보를 알려주세요:
**1. 도메인(엔티티) 선택**
어떤 도메인의 앱을 만드시겠습니까?
**A) Todo (할 일 관리)**
- 필드: title, description, isCompleted, createdAt, completedAt
- 기능: CRUD, 필터링(전체/진행중/완료), 체크박스 토글
**B) Habit (습관 트래커)**
- 필드: name, description, frequency(daily/weekly/monthly), streak, lastCompletedAt, goal, isActive
- 기능: CRUD, 연속 기록 추적, 목표 달성률, 완료 체크
**C) Note (메모)**
- 필드: title, content, tags, isPinned, createdAt, updatedAt
- 기능: CRUD, 태그 필터링, 고정 메모, 검색
**D) Expense (지출 관리)**
- 필드: amount, category, description, date, paymentMethod
- 기능: CRUD, 카테고리별 집계, 월별 통계, 필터링
**E) Custom (직접 정의)**
- 엔티티명과 필드를 직접 입력
**2. 프로젝트 정보**
- **폴더명**: 프로젝트를 생성할 폴더 이름 (기본값: [도메인]_app, 예: habit_app)
- 이 폴더에 Flutter 프로젝트가 생성됩니다
- **프로젝트명 (패키지명)**: Flutter 패키지 이름 (기본값: 폴더명과 동일)
- pubspec.yaml의 name 필드에 사용됩니다
- import 문에 사용됩니다 (예: package:habit_app/...)
- **조직명**: (기본값: com.example)
- Android/iOS 패키지 식별자에 사용됩니다 (예: com.example.habit_app)
**3. 스택 프리셋 선택**
다음 중 하나를 선택해주세요:
**A) Essential (권장)**
- ✅ GoRouter (타입 안전한 라우팅)
- ✅ SharedPreferences (로컬 설정 저장)
- ✅ FPDart (함수형 에러 핸들링)
- ✅ Google Fonts
- ✅ FluentUI Icons
- ❌ Auth 시스템 제외
- ❌ Responsive Utils 제외
**B) Minimal (가장 단순)**
- ❌ GoRouter (기본 Navigator 사용)
- ✅ SharedPreferences
- ❌ FPDart 제외
- ❌ Google Fonts 제외
- ✅ 기본 FluentUI Icons
- ❌ Auth 시스템 제외
- ❌ Responsive Utils 제외
**C) Full Stack (모든 기능)**
- ✅ GoRouter
- ✅ SharedPreferences
- ✅ FPDart (함수형 에러 핸들링)
- ✅ Google Fonts
- ✅ Responsive Utils
- ✅ FluentUI Icons
- ✅ Auth 시스템 (Login/Register) - 선택 도메인에 따라
**D) Custom (직접 선택)**
- 각 기능을 개별적으로 선택
어떤 도메인과 프리셋을 선택하시겠습니까? (도메인: A/B/C/D/E, 프리셋: A/B/C/D)"
Step 2: Custom 선택 시 추가 질문
2-1. Custom 도메인 (E) 선택 시:
1. **엔티티명**: 엔티티 이름을 입력하세요 (예: Task, Event, Book) 2. **필드 정의**: 각 필드를 입력하세요 (형식: 필드명:타입, 예: title:String, amount:double, isActive:bool)
- 지원 타입: String, int, double, bool, DateTime
- createdAt, updatedAt은 자동 추가됨
3. **주요 기능**: 필터링/정렬 기준이 될 필드를 선택하세요
2-2. Custom 스택 프리셋 (D) 선택 시:
다음 질문들을 순차적으로 하세요:
1. **네비게이션**: GoRouter를 사용하시겠습니까? (예/아니오) 2. **에러 핸들링**: FPDart를 사용하시겠습니까? (예/아니오) 3. **UI**: Google Fonts를 사용하시겠습니까? (예/아니오) 4. **반응형**: Responsive Utils를 포함하시겠습니까? (예/아니오) 5. **인증 시스템**: Auth 시스템을 포함하시겠습니까? (예/아니오)
Step 3: 선택된 도메인과 스택에 따라 프로젝트 생성
1. **Flutter 프로젝트 생성**:
- 사용자가 지정한 **폴더명**으로 프로젝트 생성
- 명령어: `flutter create --platforms android,ios --android-language kotlin --org [조직명] [폴더명]`
- 예: `flutter create --platforms android,ios --android-language kotlin --org com.example my_habit_app`
- 폴더명과 프로젝트명(패키지명)이 다른 경우, 생성 후 pubspec.yaml의 `name` 필드를 수정
2. **Kotlin DSL 확인** (최신 Flutter는 자동으로 Kotlin DSL 사용) 3. **선택된 패키지 설치**: `pubspec.yaml` 업데이트 후 `flutter pub get` 4. **폴더 구조 생성**: Clean Architecture (core, data, domain, presentation) 5. **도메인별 보일러플레이트 생성**:
**A) Todo**: title, description, isCompleted, createdAt, completedAt
- Repository: getTodos, createTodo, updateTodo, toggleCompletion, deleteTodo
- Providers: filteredTodosProvider (all/pending/completed)
- UI: TodoListScreen (필터링), TodoDetailScreen, TodoFormDialog
**B) Habit**: name, description, frequency, streak, lastCompletedAt, goal, isActive
- Repository: getHabits, createHabit, updateHabit, completeHabit, deleteHabit
- Providers: filteredHabitsProvider (active/inactive), habitStatsProvider
- UI: HabitListScreen (통계), HabitDetailScreen, HabitFormDialog
**C) Note**: title, content, tags, isPinned, createdAt, updatedAt
- Repository: getNotes, createNote, updateNote, togglePin, deleteNote
- Providers: filteredNotesProvider (pinned/all/byTag), searchProvider
- UI: NoteListScreen (검색/태그), NoteDetailScreen, NoteFormDialog
**D) Expense**: amount, category, description, date, paymentMethod
- Repository: getExpenses, createExpense, updateExpense, deleteExpense
- Providers: expensesByCategory, monthlyStats, filteredExpenses
- UI: ExpenseListScreen (통계), ExpenseDetailScreen, ExpenseFormDialog
**E) Custom**: 사용자 정의 필드
- Repository: 기본 CRUD 메서드
- Providers: 기본 list provider
- UI: 기본 List/Detail/Form 화면
6. **설정 파일 생성** (라우팅, 스토리지, 다국어 등) 7. **Android 설정 업데이트** (CRITICAL for flutter_local_notifications):
- `android/app/build.gradle.kts`에 core library desugaring 활성화:
android {
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
isCoreLibraryDesugaringEnabled = true // 추가
}
}
dependencies {
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") // 추가
}8. **코드 생성**: `dart run build_runner build --delete-conflict
Read more
name: flutter-init description: Use when user wants to create a new Flutter project (Todo/Habit/Note/Expense/Custom domain) with Clean Architecture, Riverpod 3.0, Drift, and modern Flutter stack
Flutter Init Skill
도메인 기반 Flutter 프로젝트를 생성하고 현대적인 아키텍처로 자동 설정합니다. Todo, Habit, Note, Expense 또는 Custom 도메인을 선택하여 Clean Architecture 기반의 완전한 CRUD 앱을 즉시 생성할 수 있습니다.
Quick Start
스킬 실행 시 다음 정보를 입력받습니다:
- 폴더명 (예: my_habit_app)
- 프로젝트명/패키지명 (예: habit_app)
- 도메인 선택 (Todo/Habit/Note/Expense/Custom)
- 스택 프리셋 (Minimal/Essential/Full Stack/Custom)
그 후 자동으로 다음 단계가 실행됩니다:
# 1. 프로젝트 생성 (Android/Kotlin, iOS/Swift) flutter create --platforms android,ios --android-language kotlin --org com.example [폴더명] # 2. 패키지 설치 flutter pub get # 3. 도메인별 Clean Architecture 코드 자동 생성 # - domain/entities/[domain].dart (Freezed 엔티티) # - data/datasources/local/app_database.dart (Drift 테이블) # - data/repositories/[domain]_repository_impl.dart (Repository 구현) # - presentation/providers/[domain]_providers.dart (Riverpod 3.0) # - presentation/screens/* (List/Detail/Form 화면) # 4. 코드 생성 (Freezed, Drift, JSON Serializable) dart run build_runner build --delete-conflicting-outputs # 5. 코드 검증 및 오류 자동 수정 (필수) flutter analyze # 6. 앱 실행 flutter run
Task Instructions
**IMPORTANT**: 이 스킬은 대화형으로 진행됩니다.
Step 1: 도메인 및 프로젝트 설정 질문
**먼저 사용자에게 이렇게 물어보세요:**
"Flutter 앱을 생성합니다. 다음 정보를 알려주세요:
**1. 도메인(엔티티) 선택**
어떤 도메인의 앱을 만드시겠습니까?
**A) Todo (할 일 관리)**
- 필드: title, description, isCompleted, createdAt, completedAt
- 기능: CRUD, 필터링(전체/진행중/완료), 체크박스 토글
**B) Habit (습관 트래커)**
- 필드: name, description, frequency(daily/weekly/monthly), streak, lastCompletedAt, goal, isActive
- 기능: CRUD, 연속 기록 추적, 목표 달성률, 완료 체크
**C) Note (메모)**
- 필드: title, content, tags, isPinned, createdAt, updatedAt
- 기능: CRUD, 태그 필터링, 고정 메모, 검색
**D) Expense (지출 관리)**
- 필드: amount, category, description, date, paymentMethod
- 기능: CRUD, 카테고리별 집계, 월별 통계, 필터링
**E) Custom (직접 정의)**
- 엔티티명과 필드를 직접 입력
**2. 프로젝트 정보**
- **폴더명**: 프로젝트를 생성할 폴더 이름 (기본값: [도메인]_app, 예: habit_app)
- 이 폴더에 Flutter 프로젝트가 생성됩니다
- **프로젝트명 (패키지명)**: Flutter 패키지 이름 (기본값: 폴더명과 동일)
- pubspec.yaml의 name 필드에 사용됩니다
- import 문에 사용됩니다 (예: package:habit_app/...)
- **조직명**: (기본값: com.example)
- Android/iOS 패키지 식별자에 사용됩니다 (예: com.example.habit_app)
**3. 스택 프리셋 선택**
다음 중 하나를 선택해주세요:
**A) Essential (권장)**
- ✅ GoRouter (타입 안전한 라우팅)
- ✅ SharedPreferences (로컬 설정 저장)
- ✅ FPDart (함수형 에러 핸들링)
- ✅ Google Fonts
- ✅ FluentUI Icons
- ❌ Auth 시스템 제외
- ❌ Responsive Utils 제외
**B) Minimal (가장 단순)**
- ❌ GoRouter (기본 Navigator 사용)
- ✅ SharedPreferences
- ❌ FPDart 제외
- ❌ Google Fonts 제외
- ✅ 기본 FluentUI Icons
- ❌ Auth 시스템 제외
- ❌ Responsive Utils 제외
**C) Full Stack (모든 기능)**
- ✅ GoRouter
- ✅ SharedPreferences
- ✅ FPDart (함수형 에러 핸들링)
- ✅ Google Fonts
- ✅ Responsive Utils
- ✅ FluentUI Icons
- ✅ Auth 시스템 (Login/Register) - 선택 도메인에 따라
**D) Custom (직접 선택)**
- 각 기능을 개별적으로 선택
어떤 도메인과 프리셋을 선택하시겠습니까? (도메인: A/B/C/D/E, 프리셋: A/B/C/D)"
Step 2: Custom 선택 시 추가 질문
2-1. Custom 도메인 (E) 선택 시:
1. **엔티티명**: 엔티티 이름을 입력하세요 (예: Task, Event, Book) 2. **필드 정의**: 각 필드를 입력하세요 (형식: 필드명:타입, 예: title:String, amount:double, isActive:bool)
- 지원 타입: String, int, double, bool, DateTime
- createdAt, updatedAt은 자동 추가됨
3. **주요 기능**: 필터링/정렬 기준이 될 필드를 선택하세요
2-2. Custom 스택 프리셋 (D) 선택 시:
다음 질문들을 순차적으로 하세요:
1. **네비게이션**: GoRouter를 사용하시겠습니까? (예/아니오) 2. **에러 핸들링**: FPDart를 사용하시겠습니까? (예/아니오) 3. **UI**: Google Fonts를 사용하시겠습니까? (예/아니오) 4. **반응형**: Responsive Utils를 포함하시겠습니까? (예/아니오) 5. **인증 시스템**: Auth 시스템을 포함하시겠습니까? (예/아니오)
Step 3: 선택된 도메인과 스택에 따라 프로젝트 생성
1. **Flutter 프로젝트 생성**:
- 사용자가 지정한 **폴더명**으로 프로젝트 생성
- 명령어: `flutter create --platforms android,ios --android-language kotlin --org [조직명] [폴더명]`
- 예: `flutter create --platforms android,ios --android-language kotlin --org com.example my_habit_app`
- 폴더명과 프로젝트명(패키지명)이 다른 경우, 생성 후 pubspec.yaml의 `name` 필드를 수정
2. **Kotlin DSL 확인** (최신 Flutter는 자동으로 Kotlin DSL 사용) 3. **선택된 패키지 설치**: `pubspec.yaml` 업데이트 후 `flutter pub get` 4. **폴더 구조 생성**: Clean Architecture (core, data, domain, presentation) 5. **도메인별 보일러플레이트 생성**:
**A) Todo**: title, description, isCompleted, createdAt, completedAt
- Repository: getTodos, createTodo, updateTodo, toggleCompletion, deleteTodo
- Providers: filteredTodosProvider (all/pending/completed)
- UI: TodoListScreen (필터링), TodoDetailScreen, TodoFormDialog
**B) Habit**: name, description, frequency, streak, lastCompletedAt, goal, isActive
- Repository: getHabits, createHabit, updateHabit, completeHabit, deleteHabit
- Providers: filteredHabitsProvider (active/inactive), habitStatsProvider
- UI: HabitListScreen (통계), HabitDetailScreen, HabitFormDialog
**C) Note**: title, content, tags, isPinned, createdAt, updatedAt
- Repository: getNotes, createNote, updateNote, togglePin, deleteNote
- Providers: filteredNotesProvider (pinned/all/byTag), searchProvider
- UI: NoteListScreen (검색/태그), NoteDetailScreen, NoteFormDialog
**D) Expense**: amount, category, description, date, paymentMethod
- Repository: getExpenses, createExpense, updateExpense, deleteExpense
- Providers: expensesByCategory, monthlyStats, filteredExpenses
- UI: ExpenseListScreen (통계), ExpenseDetailScreen, ExpenseFormDialog
**E) Custom**: 사용자 정의 필드
- Repository: 기본 CRUD 메서드
- Providers: 기본 list provider
- UI: 기본 List/Detail/Form 화면
6. **설정 파일 생성** (라우팅, 스토리지, 다국어 등) 7. **Android 설정 업데이트** (CRITICAL for flutter_local_notifications):
- `android/app/build.gradle.kts`에 core library desugaring 활성화:
android {
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
isCoreLibraryDesugaringEnabled = true // 추가
}
}
dependencies {
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") // 추가
}8. **코드 생성**: `dart run build_runner build --delete-conflict
Claude Code를 위한 커스텀 스킬 모음입니다. 개발 생산성을 높이기 위한 다양한 자동화 스킬들을 제공합니다.
Repo: bear2u/my-skills
Other skills on my-skills.
- /card-news-generator-v2
Create 600x600 Instagram-style card news series automatically with optional background images. User provides topic, colors, and optional images - Claude generates content and creates multiple cards with proper text wrapping.
Open skill - /codex-claude-cursor-loop
Orchestrates a triple-AI engineering loop where Claude plans, Codex validates logic and reviews code, and Cursor implements, with continuous feedback for optimal code quality
Open skill - /codex-claude-loop
Orchestrates a dual-AI engineering loop where Claude Code plans and implements, while Codex validates and reviews, with continuous feedback for optimal code quality
Open skill - /gemini-logo-remover
Remove Gemini logos, watermarks, or AI-generated image markers using OpenCV inpainting. Use this skill when the user asks to remove Gemini logo, AI watermark, or any logo/watermark from images.
Open skill - /landing-page-guide-v2
Create distinctive, high-converting landing pages that combine proven conversion elements with exceptional design quality. Build beautiful, memorable landing pages using Next.js 14+ and ShadCN UI that avoid generic AI aesthetics while following the 11 essential elements
Open skill - /nextjs15-init
Use when user wants to create a new Next.js 15 project (Todo/Blog/Dashboard/E-commerce/Custom domain) with App Router, ShadCN, Zustand, Tanstack Query, and modern Next.js stack
Open skill

