--- name: qa description: "테스트 계획과 실제 구현 코드를 대조해 통합 정합성을 검증하는 feature-pipeline 4단계. '구현 다 했어 QA 해줘', '품질 검증해줘' 요청이나 QA 실패 후 재검증 요청에 사용." --- # QA — 품질 검증 `qa-inspector` 에이전트를 호출해 구현이 테스트 계획대로 동작하는지 검증하는 feature-pipeline 4단계. ## 실행 모드: 서브 에이전트 ## 워크플로우 ### 1. feature-slug 확인 + 선행 조건 확인 - `_workspace/{slug}/03_test_plan.md`가 없으면 진행하지 않고 `plan-eng-review` 먼저 완료할 것을 안내한다. - 사용자에게 구현이 완료되었는지 확인한다(구현 중인데 QA를 호출하면 결과가 무의미하므로). ### 2. 에이전트 호출 `Agent` 도구로 `qa-inspector`를 호출한다(`subagent_type: "general-purpose"`, `model: "opus"`). 입력: `03_test_plan.md` 경로 + 변경된 코드(git diff 또는 사용자가 지정한 경로). 출력: `_workspace/{slug}/04_qa_report.md`. ### 3. 상태 갱신 - `pipeline_state.json`의 `stages.qa.status`를 `completed`로, `result`를 결론(통과/조건부 통과/실패)으로, `completed_at`을 갱신한다. - `plan/{slug}/progress.md` 액션 로그에 행 추가. **결론이 통과/조건부 통과일 때만** 체크리스트 4번 항목을 체크한다. ### 4. 안내 - 결론이 **통과/조건부 통과**이면 다음 단계 `review` 안내. - 결론이 **실패**이면 발견된 결함 목록을 요약해 전달하고, 수정 후 다시 `/qa`를 호출할 것을 안내한다. ## 에러 핸들링 - 빌드 도구가 없는 환경이면 에이전트가 정적 검토로 대체하고 보고서에 한계를 명시하도록 지시한다. - 실물 자원(하드웨어, 외부 서비스 등)이 필요한 테스트 케이스는 "미검증"으로 남기고 임의로 통과 처리하지 않는다. ## 테스트 시나리오 ### 정상 흐름 1. 사용자: "구현 다 했어, QA 해줘" 2. `03_test_plan.md` 존재 확인, 구현 완료 여부 확인 3. `qa-inspector` 호출 → 결론 "통과" 4. 상태/진행 로그 갱신, 체크박스 체크 5. `review` 안내 ### 에러 흐름 1. QA 결론이 "실패", 결함 2건 발견 2. 결함 목록 전달, 사용자가 수정 3. 사용자가 다시 `/qa` 호출 → 재검증