| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| Invoke | /checklist:feature-complete |
| Aliases | /check:feature, /feature:checklist |
| Category | kobic-development |
| Complexity | moderate |
| MCP Servers | serena |
/checklist:feature-complete โ ๊ธฐ๋ฅ "๋ค ๋๋์ง" ์ต์ข ์ ๊ฒํ#
ํ๋ง๋๋ก#
๊ธฐ๋ฅ ๊ฐ๋ฐ์ ๋ง์น๊ณ ์ ์ถํ๊ธฐ ์ ์ ๋น ๋จ๋ฆฐ ๊ฒ์ด ์๋์ง ํ ์ค์ฉ ์ฒดํฌํ๋ ์ ๊ฒํ์ ๋๋ค. ๋นํ๊ธฐ๊ฐ ์ด๋ฅํ๊ธฐ ์ ์กฐ์ข ์ฌ๊ฐ ํญ๋ชฉ์ ํ๋์ฉ ์ง์ผ๋ฉฐ ํ์ธํ๋ ์ฒดํฌ๋ฆฌ์คํธ์ ๊ฐ์์.
๋๊ฐยท์ธ์ ์ฐ๋์#
- ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด ๋๋๋ ์์ ์, ๊ฐ๋ฐ์๊ฐ ์ค์ค๋ก ๋ง๋ฌด๋ฆฌ ์ ๊ฒํ ๋
- PR(์ฝ๋ ์ ์ถ)์ ๋ง๋ค๊ธฐ ์ง์ ์๊ธฐ ๊ฒํ (self-review)๋ฅผ ํ ๋
- ๋๋ฃ์๊ฒ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์์ฒญํ๊ธฐ ์ ์
๋ฌด์์ ํด์ฃผ๋์#
๊ธฐ๋ฅ ํ๋๊ฐ "์ ๋ง ์์ฑ๋์๋์ง"๋ฅผ 11๊ฐ ์์ญ์ผ๋ก ๋๋ ๋น ์ง์์ด ํ์ธํ๊ฒ ํด์ค๋๋ค. ํ์ธํ๋ ํฐ ์์ญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ตฌ์กฐ ์ ๊ฒ โ ํ๋ฉด, ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ํต์ฌ ๋ก์ง์ด ์ ํด์ง ๋ฐฉ์๋๋ก ๋ง๋ค์ด์ก๋์ง
- ์ฝ๋ ์์ฑยทํ ์คํธ โ ์๋ ์์ฑ ์ฝ๋๊ฐ ์ ๋์๋์ง, ํ ์คํธ๊ฐ ๋ชจ๋ ํต๊ณผํ๊ณ ์ปค๋ฒ๋ฆฌ์ง๊ฐ 80% ์ด์์ธ์ง
- ๋ฌธ์ยท๋ค๊ตญ์ด โ ์ค๋ช ์ฃผ์์ด ๋ฌ๋ ธ๋์ง, ๋ชจ๋ ํ๋ฉด ๊ธ์๊ฐ ๋ฒ์ญ ์ฒ๋ฆฌ๋์๋์ง
- ์ฑ๋ฅยท๋ณด์ยท์ ๊ทผ์ฑ โ ๋๋ ค์ง์ง ์๊ฒ, ์์ ํ๊ฒ, ๋๊ตฌ๋ ์ธ ์ ์๊ฒ ๋ง๋ค์ด์ก๋์ง
- ์ ์ ๋ถ์ยท๋น๋ โ ์ฝ๋ ๊ฒ์ฌ ํต๊ณผ, iOS/Android ๋น๋ ์ฑ๊ณต ์ฌ๋ถ
- PR ์ค๋น โ ์ปค๋ฐ ๋ฉ์์ง, ์ด์ ์ฐ๊ฒฐ, ๋ฆฌ๋ทฐ์ด ์ง์ ๊น์ง
๋ง์ง๋ง์๋ 11๊ฐ ์์ญ์ ์๋ฃ ์ฌ๋ถ๋ฅผ ํ๋์ ๋ณด๋ ์์ฝ ํ(Completion Summary) ๋ก ์ ๋ฆฌ๋ฉ๋๋ค.
์ด๋ป๊ฒ ์ฐ๋์#
/checklist/feature-complete [๊ธฐ๋ฅ_์ด๋ฆ]
๊ธฐ๋ฅ ์ด๋ฆ์ ํจ๊ป ๋ฃ์ผ๋ฉด ํด๋น ๊ธฐ๋ฅ์ ๋์์ผ๋ก ์ ๊ฒํ๋ฅผ ์คํํฉ๋๋ค. ์ ๊ฒ ๊ณผ์ ์์ ์๋์ ๊ฐ์ ๊ฒ์ฆ ๋ช ๋ น๋ค์ด ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
melos run build # ์๋ ์์ฑ ์ฝ๋ ๋ง๋ค๊ธฐ
melos run test:with-html-coverage # ํ
์คํธ + ์ปค๋ฒ๋ฆฌ์ง ํ์ธ
melos run analyze # ์ฝ๋ ์ ์ ๋ถ์ (dart analyze + dcm)
flutter build ios --flavor development # iOS ๋น๋ ํ์ธ
flutter build apk --flavor development # Android ๋น๋ ํ์ธ
์์์ ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๋์#
์ ๊ฒํ๋ ์๋ ์์๋ก ํญ๋ชฉ์ ํ๋์ฉ ํ์ธํฉ๋๋ค.
- ๊ตฌ์กฐ ํ์ธ โ Domain / Data / Presentation ์ธ ๊ณ์ธต๊ณผ DIยท๋ผ์ฐํ ์ด ๊ท์น๋๋ก ๋ง๋ค์ด์ก๋์ง ๋ณธ๋ค.
- ์ฝ๋ ์์ฑ โ
melos run build๋ก ํ์ํ ์๋ ์์ฑ ์ฝ๋๊ฐ ๋น๋ ์ค๋ฅ ์์ด ๋์๋์ง ํ์ธํ๋ค. - ํ ์คํธ โ ๋จ์ยทBLoCยท์์ ฏ ํ ์คํธ๊ฐ ๋ชจ๋ ํต๊ณผํ๊ณ ์ปค๋ฒ๋ฆฌ์ง๊ฐ 80% ์ด์์ธ์ง ํ์ธํ๋ค.
- ๋ฌธ์ยท๋ค๊ตญ์ด โ ๊ณต๊ฐ API ์ฃผ์, ๋ณต์กํ ๋ก์ง ์ค๋ช , ๋ชจ๋ ํ๋ฉด ๊ธ์์ ๋ฒ์ญ ์ฒ๋ฆฌ๋ฅผ ํ์ธํ๋ค.
- ์ฑ๋ฅยท๋ณด์ยท์ ๊ทผ์ฑ โ ๋ถํ์ํ ๋ ๋๋ง์ด ์๋์ง, ๋ฏผ๊ฐ ์ ๋ณด๊ฐ ๋ ธ์ถ๋์ง ์๋์ง, ๋๊ตฌ๋ ์ธ ์ ์๋์ง ๋ณธ๋ค.
- ์ ์ ๋ถ์ยทํตํฉ ๊ฒ์ฆ โ lintยทํฌ๋งทยทDCM ๊ฒ์ฌ๋ฅผ ํต๊ณผํ๊ณ iOS/Android ๋น๋๊ฐ ์ฑ๊ณตํ๋์ง ํ์ธํ๋ค.
- PR ์ค๋น โ ์ปค๋ฐ ๋ฉ์์ง, ์ด์ ์ฐ๊ฒฐ, ๋ฆฌ๋ทฐ์ด ์ง์ ์ ๋ง๋ฌด๋ฆฌํ๋ค.
๋ชจ๋ ์ ๊ฒ์ด ๋๋๋ฉด ์์ญ๋ณ ์๋ฃ ์ํ๋ฅผ ํ๋ก ์์ฝํ๊ณ , ๋ ์์ธํ ์ ๊ฒํยทPR ๋ฆฌ๋ทฐ ์ ๊ฒํ ์์น๋ฅผ ์๋ดํฉ๋๋ค.
โ๏ธ ์์ธ ์ต์ ยท์คํ ๋ช ์ธ (๊ฐ๋ฐ์ / AI ์์ด์ ํธ์ฉ)
Triggers#
- At the point of feature development completion
- Self-review before PR creation
- Before requesting code review
Usage#
/checklist/feature-complete [feature_name]Verification Items#
1. Structure Verification#
Domain Layer
- Entity definition complete (
@immutable+ Equatable + copyWith) - Repository Interface defined (I prefix)
- UseCase implementation complete
- Failure class defined
- Unit tests written
Data Layer
- Repository implementation complete
- Serverpod Mixin implemented (if needed)
- Local Database implemented (if needed)
- DTO โ Entity mapper implemented
- Caching strategy applied (SWR/Cache-First)
Presentation Layer
- Page widget implemented
- Reusable Widgets extracted
- BLoC/Cubit implemented
- Event/State defined (
sealed class extends Equatable+ copyWith) - Widget tests written
DI & Routing
- Dependencies registered manually via GetIt (
ServiceLocator.instance.registerLazySingleton/registerFactory) - BLoC wired in
bootstrap.dart(not auto-registered) - Route defined with
go_router(@TypedGoRoute+extends GoRouteData) - Route redirect/guard applied (if needed)
2. Code Generation#
melos run build*.g.dartgenerated for go_router routes (@TypedGoRoute) and JSON- No build errors
No
*.freezed.dart(State/Event are hand-written). No@injectablecodegen (DI is manual GetIt).
3. Testing#
Unit Tests
- UseCase tests (Happy path, Error, Edge cases)
- Repository tests (mocked data source)
BLoC Tests
- Initial state test
- Event โ state transition tests
- Error handling tests
Widget Tests
- Rendering tests
- Interaction tests
- State-specific UI tests
flutter test feature/{type}/{feature_name}/test/
melos run test:with-html-coverage- All tests passing
- Coverage 80% or above
4. Documentation#
- dartdoc comments on public APIs
- Explanatory comments on complex logic
- TODO comments resolved or issues filed
5. Internationalization#
- All UI text uses translation keys
- Translation files updated (
melos run generate:locale) - Pluralization/parameter handling verified
6. Performance Optimization#
- const widgets utilized
- BlocBuilder buildWhen applied
- ListView.builder used (for long lists)
- Image cacheWidth/cacheHeight applied
- Resources released in dispose
7. Security Review#
- No hardcoded sensitive information
- Input validation applied
- Appropriate error messages
8. Accessibility#
- Semantics labels applied
- Touch target size verified (48x48 minimum)
- Color contrast verified
9. Static Analysis#
melos run analyze # dart analyze + dcm analyze
melos run format # kobic uses dcm format (not dart format)
melos run lint:check # combined format-check โ analyze gate- No lint warnings
- Code formatting complete
- DCM analysis passed
- Pre-push hook passed (auto-verified on push)
10. Integration Verification#
flutter build ios --flavor development
flutter build apk --flavor development- iOS build successful
- Android build successful
- Working correctly in development environment
11. PR Preparation#
- Meaningful commit messages (Conventional + Gitmoji)
- Related issues linked
- Reviewers assigned
Completion Summary#
| Item | Status |
|---|---|
| Structure Verification | โฌ |
| Code Generation | โฌ |
| Testing | โฌ |
| Documentation | โฌ |
| Internationalization | โฌ |
| Performance Optimization | โฌ |
| Security Review | โฌ |
| Accessibility | โฌ |
| Static Analysis | โฌ |
| Integration Verification | โฌ |
| PR Preparation | โฌ |
References#
- Detailed checklist:
.claude/checklists/feature-complete.md - PR review checklist:
.claude/commands/checklist/pr-review.md - Code review skill:
.claude/commands/code-review.md