Quality Check Skill
프로젝트의 품질을 종합 검증하는 워크플로우 스킬입니다.
사용법
code
/sc:quality-check /sc:quality-check lib/features/fortune/ /sc:quality-check --fix
검사 항목
1. Flutter Analyze
bash
flutter analyze
- •정적 분석
- •잠재적 버그 탐지
- •코드 품질 경고
2. Dart Format
bash
dart format --set-exit-if-changed .
- •코드 포맷팅 검사
- •일관된 스타일 유지
3. 아키텍처 규칙
| 규칙 | 검사 내용 |
|---|---|
| 레이어 의존성 | Presentation → Data 직접 참조 금지 |
| Feature 분리 | Feature 간 직접 참조 금지 |
| 상태 관리 | @riverpod 사용 금지, StateNotifier 필수 |
| 모델 | @freezed 필수 |
4. 디자인 시스템
| 규칙 | 검사 내용 |
|---|---|
| 색상 | 하드코딩 Color() 금지 |
| 폰트 | 하드코딩 fontSize 금지 |
| 타이포 | 하드코딩 TextStyle 금지 → context.heading1 사용 |
| 아이콘 | Icons.arrow_back 금지 |
5. 앱스토어 규정
| 규칙 | 검사 내용 |
|---|---|
| 금지어 | '운세', '점술', 'fortune', 'horoscope' |
| 면책조항 | EntertainmentDisclaimer 존재 확인 |
검사 명령어
bash
# 아키텍처 - Presentation → Data 직접 참조 grep -rn "import.*data/services" lib/features/*/presentation/ # 아키텍처 - @riverpod 사용 grep -rn "@riverpod" lib/ # 디자인 - 하드코딩 색상 grep -rn "Color(0x" lib/ --include="*.dart" # 디자인 - 하드코딩 fontSize grep -rn "fontSize:" lib/ --include="*.dart" # 앱스토어 - 금지어 grep -rn "'운세'" lib/ --include="*.dart"
리포트 형식
code
============================================
🛡️ Quality Check 결과
============================================
📊 Summary
총 검사 항목: 5개
통과: 4개
실패: 1개
✅ Flutter Analyze
issues: 0
warnings: 0
✅ Dart Format
changes needed: 0
✅ 아키텍처 규칙
- 레이어 의존성: ✅
- Feature 분리: ✅
- 상태 관리: ✅
- 모델 패턴: ✅
❌ 디자인 시스템
- 하드코딩 색상: ✅
- 하드코딩 fontSize: ❌ 2개 발견
• lib/features/fortune/widgets/card.dart:42
• lib/features/chat/widgets/message.dart:15
- 아이콘: ✅
✅ 앱스토어 규정
- 금지어: ✅
- 면책조항: ✅
============================================
1개 카테고리에서 이슈 발견
============================================
자동 수정할까요? (Y/n)
자동 수정 (--fix)
--fix 옵션 사용 시 자동 수정 가능한 이슈 처리:
자동 수정 가능
- •Dart format 문제
- •일부 하드코딩 색상 (명확한 매핑이 있는 경우)
- •Icons.arrow_back → Icons.arrow_back_ios
수동 수정 필요
- •아키텍처 위반
- •복잡한 하드코딩 값
- •비즈니스 로직 변경
범위 지정
특정 경로만 검사:
code
/sc:quality-check lib/features/fortune/ /sc:quality-check lib/features/chat/ /sc:quality-check supabase/functions/
CI/CD 통합
yaml
# .github/workflows/quality.yml
- name: Quality Check
run: |
flutter analyze
dart format --set-exit-if-changed .
# 추가 검사 스크립트
완료 메시지
모두 통과
code
✅ 모든 품질 검사를 통과했습니다! 📊 검사 완료: 5개 항목 ⏱️ 소요 시간: 12초
이슈 발견
code
⚠️ 품질 이슈가 발견되었습니다. 📊 검사 완료: 5개 항목 ❌ 실패: 1개 항목 수정이 필요합니다. 자동 수정할까요? (Y/n)