verification-loop
SKILL.md
Verification Loop Skill
코드 작성 후 빌드, 테스트, 린트를 순차적으로 실행하여 코드 품질을 검증하는 skill입니다.
검증 루프 다이어그램
┌─────────────────────────────────────────────────────────┐
│ Verification Loop │
├─────────────────────────────────────────────────────────┤
│ │
│ [빌드] ────► [테스트] ────► [린트] ────► [완료] │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ 실패 시 실패 시 실패 시 │
│ 수정 후 수정 후 수정 후 │
│ 재실행 재실행 재실행 │
│ │
└─────────────────────────────────────────────────────────┘
워크플로우
Step 1: 빌드 검증
# TypeScript 타입 체크
pnpm tsc --noEmit
# 또는 전체 빌드
pnpm build
실패 시:
- 에러 메시지 분석
- 한 번에 하나씩 수정
- 빌드 재실행
- 모든 에러 해결까지 반복
일반적인 빌드 에러:
| 에러 | 해결 방법 |
|---|---|
| TS2304 (Cannot find name) | import 추가 |
| TS2339 (Property not exist) | 타입 확장/가드 |
| TS2345 (Argument mismatch) | 타입 변환 |
| Module not found | 패키지 설치/경로 확인 |
Step 2: 테스트 실행
# 테스트 실행
pnpm test
# 변경된 파일 관련 테스트만
pnpm test --changed
# 특정 파일 테스트
pnpm test -- path/to/file.test.ts
실패 시:
- 실패한 테스트 분석
- 코드 버그인지 테스트 오류인지 판단
- 적절한 수정 진행
- 테스트 재실행
테스트 디버깅 팁:
# 단일 테스트만 실행
pnpm test -- -t "테스트 이름"
# 디버그 모드
pnpm test -- --verbose
Step 3: 린트 검사
# 린트 검사
pnpm lint
# 자동 수정
pnpm lint --fix
실패 시:
- 자동 수정 가능한 에러 먼저 처리 (
--fix) - 수동 수정 필요한 에러 해결
- 린트 재실행
일반적인 린트 에러:
| 에러 | 해결 방법 |
|---|---|
| unused-imports | import 제거 |
| no-unused-vars | 변수 사용 또는 제거 |
| react-hooks/exhaustive-deps | deps 배열 수정 |
| @typescript-eslint/no-explicit-any | 타입 명시 |
Step 4: 커버리지 확인 (선택)
pnpm test --coverage
커버리지 기준:
| 영역 | 최소 커버리지 |
|---|---|
| 일반 코드 | 80% |
| 핵심 로직 | 100% |
검증 결과 보고
성공 시
✅ 검증 완료
├── 빌드: ✅ 성공
├── 테스트: ✅ 통과 (24개 테스트)
├── 린트: ✅ 에러 없음
└── 커버리지: 87%
실패 시
❌ 검증 실패
├── 빌드: ✅ 성공
├── 테스트: ❌ 실패 (2개 실패)
│ ├── src/utils/cart.test.ts - calculateTotal
│ └── src/hooks/useCart.test.ts - addItem
├── 린트: ⏸ (테스트 실패로 미실행)
└── 다음 단계: 실패한 테스트 수정
검증 루프 원칙
순차 실행
검증은 반드시 순서대로 진행합니다:
- 빌드 → 실패하면 테스트 실행 불가
- 테스트 → 실패하면 코드 품질 미검증
- 린트 → 코드 스타일 최종 확인
실패 시 중단
이전 단계가 실패하면 다음 단계로 진행하지 않습니다.
빌드 실패 → 테스트 스킵 → 린트 스킵
점진적 수정
여러 에러가 있어도 한 번에 하나씩 수정합니다.
에러 1 수정 → 재실행 → 에러 2 수정 → 재실행 → ...
자동화 스크립트
프로젝트에 검증 스크립트 추가 (선택):
// package.json
{
"scripts": {
"verify": "pnpm tsc --noEmit && pnpm test && pnpm lint"
}
}
실행:
pnpm verify
Weekly Installs
1
Repository
doyoonear/skill…d-agentsFirst Seen
12 days ago
Security Audits
Installed on
amp1
cline1
openclaw1
opencode1
cursor1
kimi-cli1