---
name: crypto-bot-builder
description: |
  자동매매 봇 코드 생성기. 4-에이전트 파이프라인으로 사용자의 매매 전략을 분석하고,
  검증된 봇 템플릿을 기반으로 안전한 Python 봇 코드를 자동 생성합니다.
  CCXT 라이브러리 기반으로 업비트, 바이낸스 등 주요 거래소를 지원합니다.
  트리거: 봇 만들어줘, 자동매매, DCA 봇, RSI 봇, 그리드 봇, 매매 봇,
  트레이딩 봇, 자동 거래, 봇 코드, 바이낸스 봇, 업비트 봇
---

# Crypto Bot Builder — 자동매매 봇 코드 생성기

## 1. 개요

본 스킬은 4개의 에이전트가 협업하는 파이프라인 방식으로 자동매매 봇 코드를 생성합니다. 기존 `kist-ppt`의 "원본 슬라이드 복제 + 텍스트 치환" 원칙을 차용하여, **검증된 봇 템플릿을 복제한 뒤 전략 파라미터만 치환**하는 방식으로 안전한 코드 구조를 보존합니다.

## 2. 4-에이전트 파이프라인

### Agent 1: `strategy-analyst` (전략 분석)

사용자의 매매 전략 설명을 분석하여 구조화된 전략 명세서를 생성합니다.
로컬 실행이 필요한 경우 `scripts/analyze_strategy.py`로 초안 JSON을 만들 수 있습니다.

**입력:** 사용자의 자연어 전략 설명
**출력:** `01_strategy_spec.json`

```json
{
  "strategy_type": "RSI",
  "exchange": "binance",
  "pair": "BTC/USDT",
  "timeframe": "1h",
  "indicators": {
    "rsi_period": 14,
    "rsi_oversold": 30,
    "rsi_overbought": 70
  },
  "risk_management": {
    "stop_loss_pct": 3.0,
    "take_profit_pct": 5.0,
    "max_position_size_pct": 10.0
  },
  "execution": {
    "order_type": "market",
    "amount_per_trade_usd": 100
  }
}
```

### Agent 2: `api-architect` (API 설계)

선택된 거래소의 API 규격에 맞춰 코드 구조를 설계합니다.
로컬 실행이 필요한 경우 `scripts/design_api.py`로 아키텍처 JSON을 만들 수 있습니다.

**입력:** `01_strategy_spec.json`
**출력:** `02_architecture.json`

```json
{
  "exchange_config": {
    "name": "binance",
    "ccxt_id": "binance",
    "required_permissions": ["spot_trade", "read_market_data"],
    "rate_limits": { "requests_per_minute": 1200 }
  },
  "modules": [
    "config_loader",
    "exchange_connector",
    "indicator_calculator",
    "signal_generator",
    "order_executor",
    "risk_manager",
    "logger"
  ],
  "data_flow": "fetch_ohlcv → calculate_indicators → generate_signal → check_risk → execute_order → log"
}
```

### Agent 3: `code-builder` (코드 생성)

CCXT 라이브러리 기반으로 실제 Python 봇 코드를 작성합니다.

**입력:** `01_strategy_spec.json` + `02_architecture.json` + 템플릿
**출력:** `03_bot_code.py`

**핵심 원칙:**
- 검증된 템플릿(`templates/`)을 복제하여 파라미터만 치환
- API 키는 반드시 환경변수(`os.environ`)에서 로드
- 무한 루프에는 반드시 `time.sleep()` 포함
- 모든 API 호출에 try-except 에러 처리
- 주문 전 잔고 확인 필수

### Agent 4: `security-reviewer` (보안 검수)

생성된 코드의 안전성을 검증합니다.
로컬 실행은 `scripts/security_check.py`를 사용합니다.

**입력:** `03_bot_code.py`
**출력:** `04_security_report.json`

**검수 항목:**

| 검수 항목 | 기준 | 심각도 |
|---|---|---|
| API 키 하드코딩 | 환경변수 사용 여부 | CRITICAL |
| 무한 루프 보호 | sleep() 존재 여부 | HIGH |
| 에러 처리 | try-except 커버리지 | HIGH |
| 잔고 확인 | 주문 전 잔고 체크 | HIGH |
| 주문 수량 검증 | 최소/최대 수량 확인 | MEDIUM |
| 로깅 | 거래 기록 저장 여부 | MEDIUM |
| 손절 로직 | stop-loss 구현 여부 | MEDIUM |
| 테스트넷 지원 | sandbox 모드 옵션 | LOW |

## 3. 지원 전략 유형

| 전략 | 템플릿 | 난이도 | 설명 |
|---|---|---|---|
| DCA | `dca_bot_template.py` | 초급 | 정해진 주기로 일정 금액 분할 매수 |
| RSI | `rsi_bot_template.py` | 중급 | RSI 과매도 시 매수, 과매수 시 매도 |
| Grid | `grid_bot_template.py` | 중급 | 가격 범위를 그리드로 나눠 자동 매매 |

## 4. 사용 방법

### 예시 1: DCA 봇 생성

```
사용자: "바이낸스에서 BTC를 매일 $100씩 DCA 봇 만들어줘"

→ strategy-analyst: DCA 전략 분석
→ api-architect: 바이낸스 API 설계
→ code-builder: dca_bot_template.py 기반 코드 생성
→ security-reviewer: 보안 검수 통과
→ 최종 봇 코드 출력
```

### 예시 2: RSI 봇 생성

```
사용자: "업비트에서 ETH RSI 30 이하면 매수, 70 이상이면 매도하는 봇 만들어줘"

→ strategy-analyst: RSI 전략 분석 (period=14, oversold=30, overbought=70)
→ api-architect: 업비트 API 설계
→ code-builder: rsi_bot_template.py 기반 코드 생성
→ security-reviewer: 보안 검수 통과
→ 최종 봇 코드 출력
```

## 5. 안전 수칙

본 봇 빌더는 다음 안전 수칙을 강제합니다:

1. **테스트넷 우선:** 모든 봇은 기본적으로 테스트넷(sandbox) 모드로 생성됩니다.
2. **API 키 보안:** 코드에 API 키를 절대 하드코딩하지 않습니다.
3. **손실 제한:** 기본 손절(stop-loss) 로직이 항상 포함됩니다.
4. **최대 포지션:** 전체 잔고의 일정 비율 이상 투자하지 않도록 제한합니다.
5. **로깅:** 모든 거래를 CSV/JSON으로 기록합니다.
6. **면책:** 생성된 코드는 교육 목적이며, 실제 투자 손실에 대한 책임은 사용자에게 있습니다.

## 6. 파일 구조

```
crypto-bot-builder/
├── SKILL.md                        # 본 문서
├── templates/
│   ├── dca_bot_template.py         # DCA 봇 템플릿
│   ├── rsi_bot_template.py         # RSI 봇 템플릿
│   └── grid_bot_template.py        # 그리드 봇 템플릿
├── scripts/
│   ├── build_bot.py                # 봇 코드 생성 메인 스크립트
│   ├── analyze_strategy.py         # 전략 분석 에이전트
│   ├── design_api.py               # API 설계 에이전트
│   └── security_check.py           # 보안 검수 에이전트
├── references/
│   ├── exchange-api-specs.md       # 거래소 API 규격 요약
│   ├── ccxt-cheatsheet.md          # CCXT 사용법 치트시트
│   └── risk-management.md          # 리스크 관리 가이드
└── examples/
    └── upbit_dca_example.py        # 업비트 DCA 봇 간단 예시
```
