기본 필수 에이전트
프로젝트에 내장된 3개의 핵심 AI 에이전트 — UIA, PDA, TMA
HanSpec에 기본 내장된 필수 에이전트입니다. 프로젝트 생성 시 자동으로 포함되며, 스펙 정의 파이프라인의 핵심을 담당합니다.
분석
UIA
User Input Analysis — 자연어를 MFR 구조로 변환
설계
PDA
Page Definition Analyzer — MFR을 UI 페이지로 매핑
분해
TMA
Task Manager Agent — 요구사항을 역할별 태스크로 분해
UIA (User Input Analysis)
사용자의 자연어 입력을 분석하여 Module / Feature / Requirement 계층 구조로 변환하는 에이전트입니다.
주요 기능
- 자연어 파싱 — 비정형 텍스트에서 도메인 영역, 기능, 구체적 요구사항을 추출
- 수평 관심사 분리 — 인증, 로깅 등 공통 정책을 자동으로 분리
- 상태 자동 분류 — 요구사항의 확정 수준(confirmed/undecided/draft)을 판별
- What/How 필터링 — "어떻게"가 아닌 "무엇을" 관점의 요구사항만 추출
입력과 출력
| 구분 | 내용 |
|---|---|
| 입력 | 자연어 요구사항 텍스트 |
| 출력 | MFR 계층 구조 (YAML/JSON) |
| 모드 | single (단건) / full_scan (전체 스캔) |
분석 예시
# 입력
"쇼핑몰에서 회원이 상품을 장바구니에 담고 주문할 수 있어야 해.
결제는 카드와 계좌이체를 지원하고, 주문 후 배송 추적이 가능해야 해."
# UIA 출력 (MFR)
Module: 회원
Feature: 회원 관리
[entity] 회원은 이메일, 비밀번호, 이름을 가진다
Module: 상품
Feature: 상품 조회
[happy_path] 상품 목록을 조회할 수 있다
Module: 주문
Feature: 장바구니
[happy_path] 상품을 장바구니에 담을 수 있다
Feature: 결제
[happy_path] 카드로 결제할 수 있다
[happy_path] 계좌이체로 결제할 수 있다
Feature: 배송
[happy_path] 주문 후 배송 상태를 추적할 수 있다
PDA (Page Definition Analyzer)
MFR 구조를 기반으로 UI 페이지 정의서를 생성하는 에이전트입니다. 각 Feature가 어떤 화면으로 표현되는지를 정의합니다.
주요 기능
- 페이지 매핑 — Feature를 실제 UI 페이지/화면에 매핑
- 와이어프레임 생성 — ASCII 아트 기반 레이아웃 정의
- 컴포넌트 정의 — UI 요소와 React/Vue 컴포넌트 매핑
- 데이터 흐름 명세 — 사용자 액션 → API 호출 → 응답 흐름
- 네비게이션 규칙 — 페이지 간 이동 경로 정의
입력과 출력
| 구분 | 내용 |
|---|---|
| 입력 | MFR 구조 |
| 출력 | 페이지 정의서 (와이어프레임, 컴포넌트, 상태, 데이터 흐름) |
출력 예시
Page 05: 로그인
─────────────────────────
┌─────────────────────┐
│ Logo │
│ │
│ ┌───────────────┐ │
│ │ Email │ │
│ └───────────────┘ │
│ ┌───────────────┐ │
│ │ Password 👁 │ │
│ └───────────────┘ │
│ │
│ [ 로그인 버튼 ] │
│ │
│ 회원가입 | 비번찾기 │
└─────────────────────┘
Components:
- LoginForm → src/components/auth/LoginForm.tsx
- EmailInput → src/components/common/Input.tsx
- PasswordInput → src/components/common/PasswordInput.tsx
Data Flow:
1. 사용자: 이메일/비밀번호 입력
2. 액션: POST /api/auth/login
3. 성공: 메인 페이지로 이동
4. 실패: 에러 메시지 표시
TMA (Task Manager Agent)
확정된(confirmed) Requirement를 역할별 구현 태스크로 분해하는 에이전트입니다. 각 태스크는 하나의 커밋 또는 PR 단위로 실행 가능합니다.
주요 기능
- 역할별 분해 — 서버, 프론트엔드, 디자인 등 역할에 맞는 태스크 산출
- 의존성 관리 — 태스크 간 선후 관계 정의
- 인수 기준 — 각 태스크의 완료 조건을 구체적으로 명시
- 유형별 매핑 — Requirement 유형에 따른 태스크 카테고리 자동 결정
Requirement 유형 → 태스크 매핑
| Requirement 유형 | 서버 태스크 | 프론트 태스크 |
|---|---|---|
entity | DB 스키마, 모델 정의 | — |
happy_path | API 엔드포인트 | UI 화면 구현 |
edge_case | 밸리데이션 로직 | 에러 UI 처리 |
ux | — | 컴포넌트, 인터랙션 |
data | 캐싱, 동기화 | 상태 관리 |
출력 예시
Requirement: "이메일과 비밀번호로 로그인할 수 있다"
Type: happy_path
[서버]
Task: POST /api/auth/login 엔드포인트 구현
Acceptance Criteria:
- 이메일/비밀번호 검증 후 토큰 반환
- 잘못된 자격 증명 시 401 응답
- 단위 테스트 작성
[프론트엔드]
Task: 로그인 폼 UI 구현
Depends on: 서버 로그인 API
Acceptance Criteria:
- 이메일, 비밀번호 입력 필드
- 로그인 버튼 클릭 시 API 호출
- 성공 시 메인 페이지 리다이렉트
- 실패 시 에러 메시지 표시