---
name: build-fix
description: 최소한의 안전한 변경으로 build 및 타입 오류를 점진적으로 수정합니다.
---

# Build 오류 수정

최소한의 안전한 변경으로 build 및 타입 오류를 점진적으로 수정합니다.

## 1단계: Build 시스템 감지

프로젝트의 build 도구를 식별하고 build를 실행합니다:

| 식별 기준 | Build 명령어 |
|-----------|---------------|
| `package.json`에 `build` 스크립트 포함 | `npm run build` 또는 `pnpm build` |
| `tsconfig.json` (TypeScript 전용) | `npx tsc --noEmit` |
| `Cargo.toml` | `cargo build 2>&1` |
| `pom.xml` | `mvn compile` |
| `build.gradle` | `./gradlew compileJava` |
| `go.mod` | `go build ./...` |
| `pyproject.toml` | `python -m compileall .` 또는 `mypy .` |

## 2단계: 오류 파싱 및 그룹화

1. Build 명령어를 실행하고 stderr를 캡처합니다
2. 파일 경로별로 오류를 그룹화합니다
3. 의존성 순서에 따라 정렬합니다 (import/타입 오류를 로직 오류보다 먼저 수정)
4. 진행 상황 추적을 위해 전체 오류 수를 셉니다

## 3단계: 수정 루프 (한 번에 하나의 오류씩)

각 오류에 대해:

1. **파일 읽기** — Read 도구를 사용하여 오류 전후 10줄의 컨텍스트를 확인합니다
2. **진단** — 근본 원인을 식별합니다 (누락된 import, 잘못된 타입, 구문 오류)
3. **최소한으로 수정** — Edit 도구를 사용하여 오류를 해결하는 최소한의 변경을 적용합니다
4. **Build 재실행** — 오류가 해결되었고 새로운 오류가 발생하지 않았는지 확인합니다
5. **다음으로 이동** — 남은 오류를 계속 처리합니다

## 4단계: 안전장치

다음 경우 사용자에게 확인을 요청합니다:

- 수정이 **해결하는 것보다 더 많은 오류를 발생**시키는 경우
- **동일한 오류가 3번 시도 후에도 지속**되는 경우 (더 깊은 문제일 가능성)
- 수정에 **아키텍처 변경이 필요**한 경우 (단순 build 수정이 아님)
- Build 오류가 **누락된 의존성**에서 비롯된 경우 (`npm install`, `cargo add` 등이 필요)

## 5단계: 요약

결과를 표시합니다:
- 수정된 오류 (파일 경로 포함)
- 남아있는 오류 (있는 경우)
- 새로 발생한 오류 (0이어야 함)
- 미해결 문제에 대한 다음 단계 제안

## 복구 전략

| 상황 | 조치 |
|-----------|--------|
| 모듈/import 누락 | 패키지가 설치되어 있는지 확인하고 설치 명령어를 제안합니다 |
| 타입 불일치 | 양쪽 타입 정의를 확인하고 더 좁은 타입을 수정합니다 |
| 순환 의존성 | import 그래프로 순환을 식별하고 분리를 제안합니다 |
| 버전 충돌 | `package.json` / `Cargo.toml`의 버전 제약 조건을 확인합니다 |
| Build 도구 설정 오류 | 설정 파일을 확인하고 정상 동작하는 기본값과 비교합니다 |

안전을 위해 한 번에 하나의 오류씩 수정하세요. 리팩토링보다 최소한의 diff를 선호합니다.
