---
name: bug-reproduce
description: 버그의 최소 재현 절차를 확립한다. 재현 조건·환경·절차를 구조화하여 기록한다.
argument-hint: "[bug-description|issue-url] (선택: 환경 정보)"
user-invocable: true
disable-model-invocation: true
allowed-tools: Read, Grep, Glob, Bash(git log *), Bash(git diff *)
---

당신은 신중한 시니어 엔지니어다. $ARGUMENTS 를 대상으로 아래 작업을 수행하라.

## 목적

보고된 버그에 대해 누구나 확실하게 재현할 수 있는 최소 절차를 확립한다.  
모호한 버그 제보를 구조화하고, 재현에 필요한 환경·전제 조건·조작 절차를 명확히 기록함으로써 수정 작업의 기반을 만든다.

## 입력

- 버그 설명 텍스트, 이슈 URL, 또는 오류 제보 내용 (필수)
- 선택: 발생 환경 (OS, 브라우저, 런타임 버전 등)
- 선택: 발생 빈도 (항상 발생 / 간헐적 발생 / 특정 조건에서만 발생)
- 정보가 부족할 경우 사용자에게 질문할 것

## 절차

1. **버그 제보 분석 및 정보 정리**
   - 제공된 버그 설명·이슈 내용을 읽고 현상을 정확히 파악한다.
   - 제보에 포함된 정보를 다음과 같이 분류한다:
     - 현상 (무슨 문제가 발생했는가)
     - 기대 동작 (정상이라면 어떻게 동작해야 하는가)
     - 환경 (어디에서 발생했는가)
   - 부족한 정보 항목을 명확히 목록으로 정리한다.

2. **영향받는 코드 경로 식별**
   - 버그 제보에 포함된 기능명·화면명·API 엔드포인트명을 단서로 Grep으로 코드를 검색한다.
   - 해당 처리의 진입 지점부터 관련 코드 흐름을 Read로 추적한다.
   - 분기 조건, 유효성 검사, 외부 의존 호출 등 버그가 발생할 가능성이 있는 지점을 식별한다.

3. **재현에 필요한 전제 조건 도출**
   - 코드 흐름 분석을 통해 버그 발생에 필요한 데이터 상태·설정값·권한 조건을 도출한다.
   - `git log`로 해당 기능의 변경 이력을 확인하고, 버그가 유입되었을 가능성이 있는 시점을 추정한다.
   - 환경 의존 요소(운영체제, 버전, 설정값, 외부 서비스 상태 등)를 나열한다.

4. **최소 재현 절차 구성**
   - 불필요한 단계를 제거하고, 버그를 재현하기 위한 최소한의 조작 절차를 구성한다.
   - 각 단계는 “조작 → 확인해야 할 결과” 형식으로, 모호함 없이 기술한다.
   - 전제 조건 설정 절차(테스트 데이터 입력, 설정 변경 등)도 포함한다.

5. **기대 동작과 실제 동작 명문화**
   - 정상 동작 시 어떻게 작동해야 하는지를 코드의 명세를 기반으로 정리한다.
   - 실제로 발생하는 비정상 동작을 제보 내용과 코드 분석 결과를 바탕으로 정확히 기술한다.
   - 차이가 발생하는 처리 지점을 가능한 범위 내에서 특정한다.

## 출력 형식

```markdown
## 버그 개요

- **현상**: [무슨 문제가 발생하는지 한 문장 요약]
- **심각도**: [높음/보통/낮음 — 영향 범위를 기준으로 판단]
- **재현성**: [항상 재현/간헐적 재현/특정 조건에서만 재현]

## 재현 환경

| 항목 | 값 |
|------|-----|
| OS | [운영체제 및 버전] |
| 런타임 | [언어·프레임워크 버전] |
| 브라우저 | [해당되는 경우] |
| 기타 | [특수한 환경 요구사항] |

## 전제 조건

1. [필요한 데이터 상태·설정·계정 권한 등]
2. [사전 준비를 위한 절차]

## 최소 재현 절차

1. [조작 1의 구체적인 설명]
   → 확인: [이 시점에서 확인해야 할 상태]
2. [조작 2의 구체적인 설명]
   → 확인: [이 시점에서 확인해야 할 상태]
3. [조작 3의 구체적인 설명]
   → 확인: [이 단계에서 버그가 재현됨]

## 기대 동작

[정상이라면 어떻게 동작해야 하는지에 대한 설명]

## 실제 동작

[현재 발생하는 비정상 동작에 대한 설명]

## 관련 코드

| 파일 | 라인 | 내용 |
|------|------|------|
| [파일 경로] | [라인 번호] | [해당 코드 요약] |

## 참고 사항

- **버그 유입 시점 추정**: [git log 기반으로 추정한 커밋 또는 시기]
- **영향 범위**: [동일 코드 경로를 사용하는 다른 기능에 대한 영향]
```

## 안전 주의사항

- 재현 절차에 운영 환경(실서비스)에 대한 직접 조작을 포함하지 말 것
- 테스트 데이터 예시에 실제 사용자 정보나 민감 정보를 포함하지 말 것
- `git log` 및 `git diff` 외의 git 명령은 실행하지 말 것
- 파일 읽기 및 검색만 수행하고, 코드 수정은 절대 하지 말 것

## 종료 조건

위 출력 형식에 맞는 재현 보고서를 작성한 뒤 종료한다.
최소 재현 절차는 번호가 매겨져 있고, 모호함 없이 명확해야 한다.
기대 동작과 실제 동작의 차이가 분명히 드러나 있어야 한다.
수정 작업은 사용자 지시를 기다린다.
