글 목록으로

서브 에이전트로 작업을 오케스트레이션 하기

목차

이 문서는 메인 에이전트가 직접 구현하지 않고 전문 서브 에이전트들을 단계별로 위임·통제하여 기획부터 개발, 리뷰, QA까지 수행하는 에이전트 오케스트레이션 워크플로우를 정리한 내용입니다.

오케스트레이션 규칙

핵심 원칙

  1. 메인 에이전트는 직접 코드를 작성하거나 파일을 수정하지 않는다.
  2. 모든 작업은 반드시 전문 서브 에이전트에게 위임한다.
  3. 에이전트 간 정보 전달은 파일(마크다운)을 통해서만 이루어진다.
  4. 사용자 승인이 필요한 단계에서는 반드시 승인을 받은 후 진행한다.

산출물 경로 컨벤션

산출물경로작성 에이전트
기획 명세서docs/specs/{기능명}-spec.mdplanner
유저 테스트 케이스docs/test-cases/{기능명}-tc.mdplanner
코드 리뷰 결과docs/reviews/{기능명}-review.mdcode-reviewer
QA 결과docs/qa/{기능명}-qa-result.mdqa-tester

실제 파일 구조

Code
📦docs
 ┣ 📂qa
 ┃ ┣ 📂screenshots
 ┃ ┃ ┗ 📂control-cooldown
 ┃ ┃ ┃ ┣ 📜tc-001-initial.png
 ┃ ┃ ┃ ┣ 📜tc-002-initial.png
 ┃ ┃ ┃ ┣ 📜tc-003-initial.png
 ┃ ┃ ┃ ┣ 📜tc-004-initial.png
 ┃ ┃ ┃ ┣ 📜tc-control-leaf-noauth.png
 ┃ ┃ ┃ ┗ 📜tc-initial.png
 ┃ ┗ 📜control-cooldown-qa-result.md
 ┣ 📂reviews
 ┃ ┗ 📜control-cooldown-review.md
 ┣ 📂specs
 ┃ ┗ 📜control-cooldown-spec.md
 ┣ 📂test-cases
 ┃ ┗ 📜control-cooldown-tc.md

워크플로우

Phase 0: 요구사항 정제 (메인 에이전트가 직접 수행)

  • 아래 항목 중 2개 이상 불명확하면 사용자에게 질문한다.
    1. 어떤 화면/페이지에 적용되는 기능인지
    2. 사용자가 기대하는 동작 흐름 (인터랙션)
    3. 기존 기능과의 관계 (신규/수정/확장)
  • 모두 명확하면 바로 Phase 1로 진행한다.
  • 질문은 최대 3개까지만 한다.

Phase 0.5: 프로젝트 구조 확인 (메인 에이전트가 직접 수행)

  • CLAUDE.md의 "프로젝트 구조" 섹션이 존재하고 내용이 채워져 있는지 확인한다.
  • 비어있으면 사용자에게 "프로젝트 탐색을 먼저 진행해주세요"라고 안내하고 워크플로우를 중단한다.
  • 채워져 있으면 Phase 1로 진행한다.

Phase 1: 기획 (planner 에이전트)

  • 입력: 정제된 사용자 요구사항 + CLAUDE.md의 프로젝트 구조 정보
  • 산출물: docs/specs/{기능명}-spec.md, docs/test-cases/{기능명}-tc.md
  • 사용자 승인 필수: 명세서 작성 후 메인 에이전트가 사용자에게 검토를 요청한다.
  • 피드백 반영 시 planner를 재호출한다. 재호출 시 반드시 아래 정보를 전달한다.
    1. 현재 명세서 파일 경로
    2. 현재 테스트 케이스 파일 경로
    3. 사용자 피드백 원문
    4. "기존 문서를 수정하라"는 명시적 지시
  • 사용자가 승인할 때까지 Phase 2로 진행하지 않는다.

Phase 2: 개발 (frontend-developer 에이전트)

  • 입력: 승인된 기획 명세서 파일 경로 (docs/specs/{기능명}-spec.md)
  • 산출물: 구현된 코드
  • CLAUDE.md의 프로젝트 구조를 참고하여 기존 코드 컨벤션을 따른다.

Phase 3: 코드 리뷰 (code-reviewer 에이전트)

  • 입력: git diff (Phase 2에서 변경된 파일들)
  • 산출물: docs/reviews/{기능명}-review.md

Phase 4: 리뷰 반영 (frontend-developer 에이전트)

  • 입력: 코드 리뷰 결과 파일 경로 (docs/reviews/{기능명}-review.md)
  • 개발자가 리뷰 항목을 검토하여 수정하거나 근거와 함께 유지한다.
  • 리뷰 사이클은 최대 2회로 제한한다.
    • 1차: code-reviewer 리뷰 → frontend-developer 반영
    • 2차: code-reviewer 재리뷰 → Critical 이슈만 반영
    • 2차 이후에도 Critical 이슈가 남아있으면 사용자에게 판단을 요청한다.

Phase 5: QA (qa-tester 에이전트)

  • 입력: 유저 테스트 케이스 파일 경로 (docs/test-cases/{기능명}-tc.md)
  • 산출물: docs/qa/{기능명}-qa-result.md
  • QA 실패 시:
    1. qa-tester가 실패 리포트를 작성한다.
    2. frontend-developer가 실패 항목을 수정한다.
    3. qa-tester가 실패했던 항목만 재검증한다.
    4. QA 사이클은 최대 3회로 제한한다.
    5. 3회 초과 시 사용자에게 판단을 요청한다.

Phase 6: 완료 보고 (메인 에이전트가 직접 수행)

  • 전체 워크플로우 결과를 요약하여 사용자에게 보고한다.
  • 보고 내용: 구현된 기능 요약, 코드 리뷰 반영 사항, QA 결과

실무에서 사용해보기

Phase 0: 요구사항 정제 (메인 에이전트가 직접 수행) / Phase 0.5: 프로젝트 구조 확인 (메인 에이전트가 직접 수행)

구현하려는 기능 설명하기

Phase 1: 기획 (planner 에이전트)

기획 명세서 작성에이전트가 기획 명세서와 테스트 케이스를 작성해줍니다.

a-2.png

만약 기획 명세서에서 마음에 들지 않는 부분이 있다면 직접 지적해줍니다.

a-3.png a-4.png

Phase 2: 개발 (frontend-developer 에이전트)

a-5.png a-6.png

Phase 3: 코드 리뷰 (code-reviewer 에이전트)

a-7.png a-8.png

Phase 4: 리뷰 반영 (frontend-developer 에이전트)

a-9.png

Phase 5: QA (qa-tester 에이전트)

기획 명세서의 테스트 케이스대로 playwright 로 테스트를 작성해서 에이전트가 QA를 진행합니다.

a-10.png

만약 fail 되면 스크린샷으로 알려줍니다.

docs/test-cases/{기능명}/tc-{tc번호}.png

a-11.png

한 번 더 QA를 시도하고 싶을 때 QA 에이전트를 불러서 다시 수행하게 할 수 있습니다.

a-12.png

Phase 6: 완료 보고 (메인 에이전트가 직접 수행)

a-14.png

후기

a-15.png

토큰 짱 많이 씀