# 620. 주요 스킬 및 로그 예시

## 스킬 정의 포맷

### 기본 스킬 구조
```yaml
skill_name: "email_sender"
display_name: "이메일 발송"
version: "1.0.0"
category: "communication"
description: "이메일을 작성하고 발송하는 스킬"

requirements:
  min_level: 3
  required_stats:
    - empathy: 15  # 공감 능력
    - compute: 10  # 연산 능력

parameters:
  - name: "recipient"
    type: "string"
    required: true
    description: "수신자 이메일 주소"
  
  - name: "subject"
    type: "string"
    required: true
    description: "이메일 제목"
  
  - name: "content"
    type: "string"
    required: true
    description: "이메일 본문"
  
  - name: "tone"
    type: "enum"
    options: ["formal", "casual", "friendly", "professional"]
    default: "professional"
    description: "이메일 톤 설정"

outputs:
  - name: "send_result"
    type: "object"
    properties:
      - success: boolean
      - message_id: string
      - timestamp: datetime
      - recipient_response: optional[string]

experience_rewards:
  success: 50
  partial_success: 25
  failure: 10
```

## 주요 스킬 예시

### 1. PDF 요약 스킬
```yaml
skill_name: "pdf_summarizer"
display_name: "PDF 문서 요약"
category: "document_processing"

# 스킬 실행 로그 예시
[2025-01-15 14:32:15] [INFO] Skill activated: pdf_summarizer
[2025-01-15 14:32:15] [DEBUG] User: @happybell80, Robeing: rb10508 (Lv.7)
[2025-01-15 14:32:16] [INFO] Processing PDF: quarterly_report_2024.pdf (127 pages)
[2025-01-15 14:32:18] [DEBUG] Text extraction completed: 45,892 tokens
[2025-01-15 14:32:19] [INFO] Applying summarization with leadership style: analytical
[2025-01-15 14:32:25] [INFO] Summary generated: 3 key points, 5 insights
[2025-01-15 14:32:26] [SUCCESS] Skill completed. Experience gained: 75 XP
[2025-01-15 14:32:26] [INFO] User feedback: "정확하고 통찰력 있는 요약이네요!"
```

### 2. 뉴스 큐레이션 스킬
```yaml
skill_name: "news_curator"
display_name: "맞춤형 뉴스 큐레이션"
category: "information"

# 실행 예시
@rb10508 오늘의 AI 관련 뉴스 정리해줘

# 로그
[2025-01-15 09:15:00] [INFO] Morning news curation triggered
[2025-01-15 09:15:01] [DEBUG] Fetching from 5 news sources
[2025-01-15 09:15:03] [INFO] Found 47 AI-related articles
[2025-01-15 09:15:04] [DEBUG] Applying personalization based on user history
[2025-01-15 09:15:05] [INFO] Ethics filter applied: 2 articles excluded
[2025-01-15 09:15:06] [INFO] Final selection: 8 articles with summaries
[2025-01-15 09:15:07] [SUCCESS] News digest delivered to Slack
```

### 3. 회의록 작성 스킬
```yaml
skill_name: "meeting_minutes"
display_name: "회의록 자동 작성"
category: "productivity"

# 실행 로그 (실시간 처리)
[2025-01-15 15:00:00] [INFO] Meeting started: "주간 개발 회의"
[2025-01-15 15:00:01] [DEBUG] Participants: 5, Expected duration: 60min
[2025-01-15 15:05:32] [INFO] Key point detected: "ChromaDB 성능 이슈"
[2025-01-15 15:05:33] [DEBUG] Tagging: #performance #database
[2025-01-15 15:12:45] [INFO] Action item recorded: "벡터 임베딩 최적화 검토"
[2025-01-15 15:12:46] [DEBUG] Assigned to: @developer1, Due: 2025-01-22
[2025-01-15 15:45:00] [INFO] Decision point: "베이스 이미지 전환 승인"
[2025-01-15 16:00:15] [SUCCESS] Meeting ended. Minutes generated
[2025-01-15 16:00:16] [INFO] Summary: 3 decisions, 7 action items, 2 follow-ups
[2025-01-15 16:00:17] [INFO] Distributed to all participants via email
```

## 스킬 호출 패턴

### 1. 단순 호출
```
@rb10508 이메일 보내줘
```

### 2. 파라미터 포함 호출
```
@rb10508 skill:pdf_summarizer file:"report.pdf" style:"executive"
```

### 3. 체인 호출
```
@rb10508 뉴스 정리하고 → 중요한 것만 이메일로 보내줘
```

## 로그 레벨별 예시

### INFO 레벨 (일반 사용자용)
```
[15:32] PDF 요약을 시작합니다
[15:33] 요약 완성! 3개의 핵심 포인트를 찾았습니다
```

### DEBUG 레벨 (개발자용)
```
[15:32:15.234] [DEBUG] ChromaDB query: embedding_size=768, top_k=10
[15:32:15.456] [DEBUG] Memory recall: 3 relevant experiences found
[15:32:15.789] [DEBUG] LLM call: model=gpt-4, tokens_used=2341
```

### ERROR 레벨
```
[15:32:45.123] [ERROR] PDF parsing failed: Unsupported encryption
[15:32:45.124] [ERROR] Fallback to OCR mode
[15:32:46.000] [WARN] OCR quality low: confidence=0.72
```

## 스킬 통계 대시보드 예시

```
=== rb10508 스킬 사용 통계 (2025년 1월) ===

가장 많이 사용한 스킬:
1. email_sender      : 342회 (성공률 98.2%)
2. pdf_summarizer    : 156회 (성공률 94.9%)
3. news_curator      : 124회 (성공률 100%)
4. meeting_minutes   : 89회  (성공률 96.6%)
5. code_reviewer     : 67회  (성공률 91.0%)

사용자별 선호 스킬:
- @happybell80: pdf_summarizer (45%), email_sender (30%)
- @developer1: code_reviewer (60%), meeting_minutes (25%)
- @manager1: news_curator (50%), email_sender (35%)

시간대별 스킬 사용:
- 09:00-10:00: news_curator (피크)
- 14:00-16:00: meeting_minutes (피크)
- 17:00-18:00: email_sender (피크)

평균 처리 시간:
- email_sender: 2.3초
- pdf_summarizer: 8.7초 (페이지당 0.07초)
- news_curator: 5.1초
- meeting_minutes: 실시간 처리
```

## 스킬 개발 가이드라인

### 1. 네이밍 컨벤션
- 스킬명: snake_case (예: email_sender)
- 디스플레이명: 한글 가능 (예: "이메일 발송")
- 카테고리: 소문자 (예: communication)

### 2. 로깅 규칙
- 시작/종료는 반드시 INFO 레벨
- 중간 과정은 DEBUG 레벨
- 에러는 ERROR, 경고는 WARN
- 사용자 피드백은 별도 태그

### 3. 경험치 설계
- 기본 성공: 50 XP
- 복잡도에 따라 추가 보너스
- 실패해도 최소 10 XP (학습 경험)
- 사용자 피드백 긍정 시 +25% 보너스

### 4. 메모리 연동
- 모든 스킬 실행은 ChromaDB에 저장
- 성공/실패 패턴을 학습
- 유사 작업 시 이전 경험 참조
- 개인화된 실행 전략 수립