DOCS/skills/260325_new_skills_implementation_plan.md
happybell80 886bd42ae3 docs: 신규 스킬 7개 SKILL.md + 원칙 문서 중복 제거 + 구현 결과 문서
- session-logs, blogwatcher, summarize, whisper, gitea, himalaya, skill-creator SKILL.md
- SKILL.md 인덱스 업데이트 (16개 스킬)
- 311/314/315 상위 SSOT 중복 제거 + 링크 수정
- Phase 1-3 결과 + 테스트 결과 + evaluation 트러블슈팅

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 01:23:15 +09:00

134 lines
5.7 KiB
Markdown

---
date: 2026-03-25
subject: 로빙 신규 스킬 7개 적용 계획
writer: 24-claude (총괄)
sources: 24-Cursor(스킬 구조), 24-Codex(rb8001 호출), 23-Cursor(SKILL.md 체계), 24-Gemini(외부 도구 조사)
---
# 로빙 신규 스킬 7개 적용 계획
## 1. 현재 스킬 아키텍처 요약
### 스킬 서비스 2가지 패턴
| 패턴 | 대표 | 네트워크 | rb8001 연동 | 적합한 경우 |
|------|------|----------|------------|------------|
| **email형** | skill-email | host 네트워크 | 양방향 콜백 (process + llm_callback) | 대화형, 내부 인증 필요 |
| **news형** | skill-news | 브리지 + robeing-network | 단방향 REST (LLM 게이트웨이 호출) | 수집형, 단순 REST |
### rb8001 스킬 호출 구조
```
사용자 메시지
→ IntentClassifier (SKILL.md name 기반 LLM 분류)
→ DecisionEngine (규칙/시맨틱/LLM fallback)
→ tool_registry (SKILL.md → OpenAI tool schema 동적 생성)
→ message_service (실행 + 결과 요약)
```
### 새 스킬 추가 시 필수 작업
| 작업 | 파일 |
|------|------|
| SKILL.md 작성 | `DOCS/skills/{name}/SKILL.md` |
| 인덱스 추가 | `DOCS/skills/SKILL.md` (목록 + 의도→스킬 매핑) |
| tool_registry 등록 | `rb8001/app/services/brain/tool_registry.py` (SKILL_DIR_ALLOWLIST) |
| 의도 타입 추가 | `rb8001/app/services/brain/decision_engine.py` (IntentType) |
| 실행 매핑 | `rb8001/app/services/message_service.py` |
| 환경변수 (외부 서비스) | `rb8001/app/core/config.py` (SKILL_*_URL) |
## 2. 신규 7개 스킬 적용 계획
### Phase 1 — 기존 인프라 활용 (빠름, 1-2일)
#### 1-1. session-logs (내장)
- **패턴**: rb8001 내장 (신규 서비스 불필요)
- **구현**: 기존 `conversation_repository`에 세션 검색·토큰 집계 API 추가
- **외부 의존**: 없음
- **수정 범위**: rb8001 router + repository 쿼리
- **SKILL.md 트리거**: `session_search`, `cost_check`, "저번에 뭐라 했지", "토큰 얼마 썼어"
#### 1-2. blogwatcher → skill-news 확장
- **패턴**: 기존 skill-news에 RSS 피드 기능 추가
- **구현**: `feedparser` (Python 네이티브, BSD, 6.0.12) 사용
- **외부 의존**: `pip install feedparser`
- **수정 범위**: skill-news에 RSS 엔드포인트 + DB에 구독 피드 테이블
- **SKILL.md 트리거**: `rss_subscribe`, `blog_watch`, "블로그 구독", "RSS 추가"
### Phase 2 — 신규 경량 서비스 (3-5일)
#### 2-1. summarize
- **패턴**: news형 (단방향 REST)
- **구현**: FastAPI + 크롤링(httpx/BeautifulSoup) + LLM 게이트웨이 요약
- **유튜브**: `youtube-transcript-api` (Python 네이티브, MIT, 6.5k★) 자막 추출 → LLM 요약
- **포트**: 8516 (제안)
- **SKILL.md 트리거**: `summarize_url`, `youtube_summary`, "이 링크 요약", "유튜브 요약"
#### 2-2. whisper (skill-whisper)
- **패턴**: news형 (단방향 REST)
- **구현**: OpenAI Whisper API 호출 (로컬 GPU 없으므로 API 우선)
- **외부 의존**: `OPENAI_API_KEY` (이미 있음)
- **포트**: 8517 (제안)
- **SKILL.md 트리거**: `transcribe`, `voice_to_text`, "음성 파일 텍스트로", "회의록"
### Phase 3 — Gitea 연동 (5-7일)
#### 3-1. github → skill-gitea
- **패턴**: news형 (Gitea REST API 호출)
- **구현**: Gitea API v1 (Swagger, MIT, 54.5k★) + `python-gitea` SDK
- **기능**: PR/이슈 조회·생성, CI 상태, 코드 검색
- **포트**: 8518 (제안)
- **SKILL.md 트리거**: `git_issue`, `git_pr`, "PR 목록", "이슈 만들어"
### Phase 4 — 기존 확장 (7-10일)
#### 4-1. himalaya → skill-email 확장
- **패턴**: 기존 skill-email에 IMAP/SMTP 프로바이더 추가
- **구현**: `himalaya` CLI (Rust, MIT, 4.5k★) 래핑 또는 Python `imaplib`/`smtplib` 직접
- **수정 범위**: skill-email에 프로바이더 추상화 레이어 (Gmail + IMAP)
- **SKILL.md 트리거**: 기존 email 트리거 유지, 프로바이더 자동 선택
#### 4-2. skill-creator (메타 스킬)
- **패턴**: rb8001 내장 또는 스크립트
- **구현**: 템플릿 스캐폴딩 (SKILL.md + Dockerfile + docker-compose + main.py + config.py)
- **외부 의존**: 없음
- **트리거**: 개발자 전용, CLI 스크립트로 제공
- **OpenClaw 패턴 채택**: requires 선언, 설치 가이드 포함
## 3. 외부 도구 상태
| 도구 | ★ | 최근 업데이트 | Python | 라이선스 |
|------|---|-------------|--------|---------|
| whisper | 96.6k | 2026.03 | 네이티브 | MIT |
| Gitea API | 54.5k | 2026.03.12 | SDK 있음 | MIT |
| youtube-transcript-api | 6.5k | 2026.02 | 네이티브 | MIT |
| himalaya | 4.5k | 2026.02 | CLI 래핑 | MIT |
| feedparser | 2.3k | 2025.09 | 네이티브 | BSD |
| summarize CLI | ~100 | 2026.03 | CLI | MIT |
| blogwatcher | ~50 | 2026.01 | CLI (Go) | MIT |
## 4. 포트 할당 계획
| 스킬 | 포트 | 비고 |
|------|------|------|
| 기존 skill-email | 8501 | |
| 기존 skill-slack | 8502 | |
| 기존 skill-news | 8505 | + blogwatcher(RSS) 통합 |
| 기존 skill-rag-file | 8508 | |
| 기존 skill-calendar | 8512 | |
| 기존 skill-embedding | 8515 | |
| **신규 summarize** | 8516 | |
| **신규 skill-whisper** | 8517 | |
| **신규 skill-gitea** | 8518 | |
| session-logs | 내장 (8001) | rb8001 엔드포인트 |
| skill-creator | 스크립트 | 포트 불필요 |
## 5. 우선순위 요약
| 순위 | 스킬 | Phase | 이유 |
|------|------|-------|------|
| 1 | session-logs | 1 | 신규 서비스 불필요, 쿼리만 추가 |
| 2 | blogwatcher (RSS) | 1 | 기존 skill-news 확장, feedparser만 추가 |
| 3 | summarize | 2 | 즉시 가치 가장 높음, 경량 |
| 4 | whisper | 2 | API 키 이미 있음 |
| 5 | skill-gitea | 3 | Gitea 이미 운영 중 |
| 6 | himalaya | 4 | 기존 서비스 구조 변경 필요 |
| 7 | skill-creator | 4 | 메타 도구, 급하지 않음 |