QA & 코드리뷰
qa-devops-collab + code-review 카테고리의 14개 스킬 완전 가이드.
코드리뷰, 테스트 생성, 배포 준비 확인, PR 관리, 유지보수까지.

QA 워크플로우 전체 그림

코드 작성TDD 진행
are-we-done독립 리뷰
deploy readiness배포 게이트
generate-pr-summaryPR 작성
pr-review리뷰 반영
address-pr-feedback피드백 처리

코드리뷰 스킬

코드리뷰 are-we-done

PR 열기 전 최후 관문. 작성자가 자신의 코드를 가장 못 보기 때문에 신선한 컨텍스트의 독립 서브에이전트를 생성해 리뷰합니다.

실행 순서:

  1. 요구사항 수집 (계획/티켓/원래 요청)
  2. git diff 변경사항 캡처
  3. 테스트/typecheck/lint/빌드 실행 후 출력 캡처 (실제 실행, 주장 금지)
  4. 독립 리뷰어 서브에이전트 생성 (완전히 새로운 컨텍스트)

리뷰 헌장 (Review Charter):

  • A. 완성도 vs 의도: 모든 요구사항이 충족됐는가? TODO/FIXME/미구현 있는가? 범위 이탈 없는가?
  • B. 정확성: 주요 경로가 실제로 동작하는가? 엣지 케이스/에러 경로 처리? 회귀 없음?
  • C. 테스트: 변경 없으면 실패하는 테스트 있는가? 실제 실행했고 green인가?
  • D. 구조적 품질: 파일 1000줄 초과 여부, 불필요한 복잡도, 타입/경계 문제
  • E. 배포 위생: debug 잔재, 비밀/PII, diff 의도하지 않은 항목

✅ SHIP

  • 모든 요구사항 충족
  • 코드가 같거나 더 나아짐
  • 새 로직에 실패하는 테스트 있음
  • 모든 hunk 검토됨

⛔ FIX-FIRST

  • 그 외 모든 경우
  • BLOCKER 먼저 해결
  • 수정 후 재리뷰 필수
⚡ 트리거: "다 됐어?", "이거 머지해도 돼?", "리뷰해줘", PR 열기 전
코드리뷰 (FE) pr-review

Bitbucket PR에 FE 품질 기준으로 인라인 코멘트를 게시합니다. 고무도장 찍기를 거부하는 엄격한 리뷰.

체크 항목: 단순화 기회, 파일 크기, 타입/경계 청결도, 정규 재사용, 동작 증명하는 테스트, 접근성, 디자인 시스템 충실도, 하이드레이션 안전성

모든 코멘트는 한국어로 게시 (기술 용어는 영어). Bitbucket Server skill과 함께 사용.

⚡ 트리거: "PR 리뷰해줘", 오픈된 PR에 코드리뷰 요청
코드리뷰 (BE) pr-review-be

Bitbucket PR에 BE 품질 기준으로 인라인 코멘트 게시. BE 전용 품질 기준 적용.

추가 체크: repository seam 분리, no Scan/N+1, auth/BOLA, 비밀/IAM 최소권한, type hints, 생성 트리(OpenAPI generated) 미수정 여부, 동작 증명하는 테스트

⚡ 트리거: BE PR에 코드리뷰 요청
보안리뷰 security-review

diff/PR에서 보안 취약점을 검토. 신뢰 경계 식별 후 OWASP Top 10 기반 체크.

체크 항목: injection, 인증/접근제어, 비밀, SSRF, 역직렬화, path traversal, 암호화, 의존성, 설정 오류, 데이터 노출

⚡ 트리거: 머지 전 보안 검토, 보안 감사

테스트 생성 스킬

테스트 생성 (FE) generate-unit-tests

함수, 훅, 컴포넌트에 대한 Vitest/Jest 단위 테스트 스캐폴드를 엣지 케이스 중심으로 생성합니다.

생성 절차:

  1. 프로젝트 테스트 러너 감지 (Vitest/Jest)
  2. 케이스 목록화: 해피 경로, 경계값 (empty/null/zero/max), 유효하지 않은 입력, 에러/throw 경로, async resolve/reject
  3. describe/it 블록 생성, 실제 픽스처가 필요한 곳은 TODO 마커

컨벤션: 테스트 이름은 동작 설명 ("빈 목록이면 null 반환"). 네트워크 없음 — MSW 핸들러나 fetch mock 사용.

⚡ 트리거: 새 함수/컴포넌트 작성 후 테스트 추가 요청
테스트 생성 (BE) generate-pytest-tests

Flask/Python 모듈을 위한 pytest 커버리지 생성. 서비스 유닛, 기능(test_client), repository(moto) 테스트 세 종류.

생성 내용:

  • 서비스 유닛: FakeRepository, HTTP 없음, 비즈니스 로직 집중
  • 기능 테스트: app.test_client()로 전체 스택 테스트
  • repository 테스트: moto로 DynamoDB 로컬 에뮬레이션

엣지 케이스와 에러 경로 중심. 기본 경로만 체크하는 "vibes" 테스트는 거부.

⚡ 트리거: Flask 모듈 작성 후 pytest 추가 요청
E2E 테스트 scaffold-e2e-flow

사용자 스토리에 대한 Playwright/Cypress E2E 테스트 스켈레톤 생성. mock 데이터 인터셉션 포함.

⚡ 트리거: 사용자 플로우 E2E 테스트 작성 요청

배포 준비 확인 스킬

배포 준비 (FE) check-deployment-readiness

FE 품질 게이트 확인 — 배포 전 마지막 체크포인트.

실행 순서:

  1. pnpm tsc --noEmit — TypeScript 타입 체크
  2. nx run-many -t lint — ESLint
  3. nx run-many -t test — 단위/통합 테스트
  4. nx build <app> — Next.js 프로덕션 빌드

모두 통과 시 GO, 하나라도 실패 시 NO-GO + 원인 보고.

⚡ 트리거: "배포해도 돼?", "빌드 확인해줘", PR 머지 전
배포 준비 (BE) check-flask-deploy-readiness

BE 품질 게이트 — 배포 전 체크포인트.

실행 순서:

  1. uv run ruff check + uv run ruff format --check
  2. uv run mypy . — 타입 체크
  3. uv run pytest — 모든 테스트
  4. uv run openapi-spec-validator openapi.yaml — spec 검증
  5. 개발 서버 / DEBUG=True footgun 스캔
⚡ 트리거: Flask 배포 전 품질 게이트 확인

PR 관리 스킬

PR 관리 generate-pr-summary

diff를 비즈니스 요구사항에 매핑해 한국어 PR 설명을 생성합니다.

포함 내용:

  • 변경 요약 (비즈니스 맥락)
  • 주요 기술 결정 사항
  • 테스트 방법 체크리스트

기술 용어는 영어 유지, 설명문은 한국어.

⚡ 트리거: PR 열기 직전 (are-we-done SHIP 판정 후)
PR 관리 address-pr-feedback

Bitbucket PR 리뷰 피드백을 체계적으로 처리합니다. 기여자가 자신이 연 PR의 피드백을 처리할 때 사용.

처리 흐름:

  1. PR activities에서 미해결 blocker task와 인라인 코멘트 목록화
  2. 각 항목 처리 — 코드 수정 후 커밋, Bitbucket에 한국어로 답글, task 해결 표시
  3. 동의하지 않는 경우 근거 제시 (반론)
  4. 모든 blocker 해결 후 리뷰어에게 재알림

Bitbucket Server skill과 함께 사용. 모든 답글은 한국어.

⚡ 트리거: PR 리뷰 코멘트가 달린 후

유지보수 스킬

유지보수 scrape-runtime-errors

테스트 실행 중 브라우저 console 로그와 React Error Boundary 출력을 캡처해 런타임 크래시를 진단합니다.

⚡ 트리거: 브라우저에서 오류 발생하지만 터미널에는 안 보일 때
보안 audit-security-baseline

커밋 전 보안 기준 스캔. 모든 stage 대상 파일에 적용.

스캔 대상: 하드코딩된 비밀, .env 미사용, 마스킹되지 않은 PII, injection 취약점 표면

⚡ 트리거: pre-commit hook으로 자동 실행, 또는 커밋 전 수동 호출
유지보수 consolidate-tech-debt

기능이 랜딩된 후 기술 부채 정리. 중복 UI 컴포넌트 병합, 주석 처리된 코드 삭제, 미사용/분산된 CSS 토큰 제거.

⚡ 트리거: 기능 완성 후 cleanup 단계

QA 스킬 빠른 참조표

스킬언제 사용출력
are-we-donePR 열기 전 최종 확인SHIP / FIX-FIRST 판정
pr-reviewFE PR 오픈 후 리뷰Bitbucket 인라인 코멘트 (한국어)
pr-review-beBE PR 오픈 후 리뷰Bitbucket 인라인 코멘트 (한국어)
security-review보안 민감 변경 검토OWASP 기반 취약점 보고
generate-unit-testsFE 함수/컴포넌트 테스트 추가Vitest/Jest 테스트 파일
generate-pytest-testsBE 모듈 테스트 추가pytest 파일 (3가지 타입)
scaffold-e2e-flowE2E 테스트 스캐폴딩Playwright/Cypress 스켈레톤
check-deployment-readinessFE 배포 전 게이트GO / NO-GO
check-flask-deploy-readinessBE 배포 전 게이트GO / NO-GO
generate-pr-summaryPR 설명 자동 생성한국어 PR description
address-pr-feedbackPR 리뷰 피드백 처리코드 수정 + Bitbucket 답글
scrape-runtime-errors브라우저 런타임 오류 진단console 로그 분석
audit-security-baselinepre-commit 보안 스캔취약점 목록
consolidate-tech-debt기능 완성 후 cleanup정리된 코드베이스