코드리뷰, 테스트 생성, 배포 준비 확인, PR 관리, 유지보수까지.
QA 워크플로우 전체 그림
코드리뷰 스킬
PR 열기 전 최후 관문. 작성자가 자신의 코드를 가장 못 보기 때문에 신선한 컨텍스트의 독립 서브에이전트를 생성해 리뷰합니다.
실행 순서:
- 요구사항 수집 (계획/티켓/원래 요청)
git diff변경사항 캡처- 테스트/typecheck/lint/빌드 실행 후 출력 캡처 (실제 실행, 주장 금지)
- 독립 리뷰어 서브에이전트 생성 (완전히 새로운 컨텍스트)
리뷰 헌장 (Review Charter):
- A. 완성도 vs 의도: 모든 요구사항이 충족됐는가? TODO/FIXME/미구현 있는가? 범위 이탈 없는가?
- B. 정확성: 주요 경로가 실제로 동작하는가? 엣지 케이스/에러 경로 처리? 회귀 없음?
- C. 테스트: 변경 없으면 실패하는 테스트 있는가? 실제 실행했고 green인가?
- D. 구조적 품질: 파일 1000줄 초과 여부, 불필요한 복잡도, 타입/경계 문제
- E. 배포 위생: debug 잔재, 비밀/PII, diff 의도하지 않은 항목
✅ SHIP
- 모든 요구사항 충족
- 코드가 같거나 더 나아짐
- 새 로직에 실패하는 테스트 있음
- 모든 hunk 검토됨
⛔ FIX-FIRST
- 그 외 모든 경우
- BLOCKER 먼저 해결
- 수정 후 재리뷰 필수
Bitbucket PR에 FE 품질 기준으로 인라인 코멘트를 게시합니다. 고무도장 찍기를 거부하는 엄격한 리뷰.
체크 항목: 단순화 기회, 파일 크기, 타입/경계 청결도, 정규 재사용, 동작 증명하는 테스트, 접근성, 디자인 시스템 충실도, 하이드레이션 안전성
모든 코멘트는 한국어로 게시 (기술 용어는 영어). Bitbucket Server skill과 함께 사용.
Bitbucket PR에 BE 품질 기준으로 인라인 코멘트 게시. BE 전용 품질 기준 적용.
추가 체크: repository seam 분리, no Scan/N+1, auth/BOLA, 비밀/IAM 최소권한, type hints, 생성 트리(OpenAPI generated) 미수정 여부, 동작 증명하는 테스트
diff/PR에서 보안 취약점을 검토. 신뢰 경계 식별 후 OWASP Top 10 기반 체크.
체크 항목: injection, 인증/접근제어, 비밀, SSRF, 역직렬화, path traversal, 암호화, 의존성, 설정 오류, 데이터 노출
테스트 생성 스킬
함수, 훅, 컴포넌트에 대한 Vitest/Jest 단위 테스트 스캐폴드를 엣지 케이스 중심으로 생성합니다.
생성 절차:
- 프로젝트 테스트 러너 감지 (Vitest/Jest)
- 케이스 목록화: 해피 경로, 경계값 (empty/null/zero/max), 유효하지 않은 입력, 에러/throw 경로, async resolve/reject
- describe/it 블록 생성, 실제 픽스처가 필요한 곳은 TODO 마커
컨벤션: 테스트 이름은 동작 설명 ("빈 목록이면 null 반환"). 네트워크 없음 — MSW 핸들러나 fetch mock 사용.
Flask/Python 모듈을 위한 pytest 커버리지 생성. 서비스 유닛, 기능(test_client), repository(moto) 테스트 세 종류.
생성 내용:
- 서비스 유닛: FakeRepository, HTTP 없음, 비즈니스 로직 집중
- 기능 테스트: app.test_client()로 전체 스택 테스트
- repository 테스트: moto로 DynamoDB 로컬 에뮬레이션
엣지 케이스와 에러 경로 중심. 기본 경로만 체크하는 "vibes" 테스트는 거부.
사용자 스토리에 대한 Playwright/Cypress E2E 테스트 스켈레톤 생성. mock 데이터 인터셉션 포함.
배포 준비 확인 스킬
FE 품질 게이트 확인 — 배포 전 마지막 체크포인트.
실행 순서:
pnpm tsc --noEmit— TypeScript 타입 체크nx run-many -t lint— ESLintnx run-many -t test— 단위/통합 테스트nx build <app>— Next.js 프로덕션 빌드
모두 통과 시 GO, 하나라도 실패 시 NO-GO + 원인 보고.
BE 품질 게이트 — 배포 전 체크포인트.
실행 순서:
uv run ruff check+uv run ruff format --checkuv run mypy .— 타입 체크uv run pytest— 모든 테스트uv run openapi-spec-validator openapi.yaml— spec 검증- 개발 서버 / DEBUG=True footgun 스캔
PR 관리 스킬
diff를 비즈니스 요구사항에 매핑해 한국어 PR 설명을 생성합니다.
포함 내용:
- 변경 요약 (비즈니스 맥락)
- 주요 기술 결정 사항
- 테스트 방법 체크리스트
기술 용어는 영어 유지, 설명문은 한국어.
Bitbucket PR 리뷰 피드백을 체계적으로 처리합니다. 기여자가 자신이 연 PR의 피드백을 처리할 때 사용.
처리 흐름:
- PR activities에서 미해결 blocker task와 인라인 코멘트 목록화
- 각 항목 처리 — 코드 수정 후 커밋, Bitbucket에 한국어로 답글, task 해결 표시
- 동의하지 않는 경우 근거 제시 (반론)
- 모든 blocker 해결 후 리뷰어에게 재알림
Bitbucket Server skill과 함께 사용. 모든 답글은 한국어.
유지보수 스킬
테스트 실행 중 브라우저 console 로그와 React Error Boundary 출력을 캡처해 런타임 크래시를 진단합니다.
커밋 전 보안 기준 스캔. 모든 stage 대상 파일에 적용.
스캔 대상: 하드코딩된 비밀, .env 미사용, 마스킹되지 않은 PII, injection 취약점 표면
기능이 랜딩된 후 기술 부채 정리. 중복 UI 컴포넌트 병합, 주석 처리된 코드 삭제, 미사용/분산된 CSS 토큰 제거.
QA 스킬 빠른 참조표
| 스킬 | 언제 사용 | 출력 |
|---|---|---|
are-we-done | PR 열기 전 최종 확인 | SHIP / FIX-FIRST 판정 |
pr-review | FE PR 오픈 후 리뷰 | Bitbucket 인라인 코멘트 (한국어) |
pr-review-be | BE PR 오픈 후 리뷰 | Bitbucket 인라인 코멘트 (한국어) |
security-review | 보안 민감 변경 검토 | OWASP 기반 취약점 보고 |
generate-unit-tests | FE 함수/컴포넌트 테스트 추가 | Vitest/Jest 테스트 파일 |
generate-pytest-tests | BE 모듈 테스트 추가 | pytest 파일 (3가지 타입) |
scaffold-e2e-flow | E2E 테스트 스캐폴딩 | Playwright/Cypress 스켈레톤 |
check-deployment-readiness | FE 배포 전 게이트 | GO / NO-GO |
check-flask-deploy-readiness | BE 배포 전 게이트 | GO / NO-GO |
generate-pr-summary | PR 설명 자동 생성 | 한국어 PR description |
address-pr-feedback | PR 리뷰 피드백 처리 | 코드 수정 + Bitbucket 답글 |
scrape-runtime-errors | 브라우저 런타임 오류 진단 | console 로그 분석 |
audit-security-baseline | pre-commit 보안 스캔 | 취약점 목록 |
consolidate-tech-debt | 기능 완성 후 cleanup | 정리된 코드베이스 |