---
name: skill-slack
description: Slack 대화 요약, 스레드 다이제스트, 액션 아이템 추출. 사용자가 "스레드 요약해줘", "대화 정리해줘", "할 일만 뽑아줘" 등 Slack 관련 요청을 할 때 사용.
---

# skill-slack

Slack 통합 스킬. 포트 8502.

## Trigger

- `slack_thread`: 스레드 요약, 대화 정리
- `action_extractor`: 할 일 추출, TODO 리스트, 액션 아이템

## Do

- Slack 채널/스레드 요약
- 액션 아이템 자동 추출
- LLM Gateway 연동 (Gemini)

## Do Not

- Slack API 토큰 없이 호출 금지
- 비공개 채널은 권한 확인 후 처리

## API

- `POST /api/v1/summarize` - 스레드 요약
- `POST /api/v1/actions` - 액션 아이템 추출
- `GET /api/v1/lists/{list_id}/items` - 리스트 아이템 조회 (헤더: `X-Team-Id`)
- `POST /api/v1/lists/items` - 리스트 아이템 생성
- `POST /api/v1/lists/items/update` - 리스트 아이템 수정

## 슬랙 리스트 (컴퍼니엑스 콜드메일)

- 워크스페이스: `T09C98KB933` (companyx)
- 콜드메일 리스트 ID: `F09L4S2C6BG`
- 채널: `C09LA0D6M1C`
- 봇 토큰은 DB(`slack_workspace` 테이블)로 관리. 기본 토큰은 컴퍼니엑스.
- 현재 상태: ✅ 정상 동작 (260320 기본 토큰을 컴퍼니엑스로 전환)

### 컬럼 매핑 (DB: `coldmail_list_config`)

| 순서 | 컬럼명 | column_id | 타입 | DB 필드 |
|------|--------|-----------|------|---------|
| 1 | 회사명 | `Col09L0GMH1DZ` | rich_text | `name_col_id` |
| 2 | 날짜 | `Col09LAF4ETC4` | date | `date_col_id` |
| 3 | 로빙평가 | `Col0AMTB4N8AJ` | rich_text | `eval_col_id` |
| 4 | 대표 | `Col09L6V3U4CA` | rich_text | `contact_col_id` |
| 5 | 이메일 | `Col09L4SH6YK0` | email | `email_col_id` |
| 6 | IR deck | `Col09L0GUSEBV` | attachment | `attach_col_id` |
| 7 | 확인 | `Col09L3F6PBFF` | checkbox | `check_col_id` |

### 로빙평가 흐름

1. 콜드메일 수신 → IR덱 첨부 → `ir_deck_evaluations` 평가 실행
2. 평가 결과: `grade` (A/B/C/D) + `total_score`
3. 슬랙 리스트 "로빙평가" 컬럼에 등급 링크 기록 (rich_text + link)
   - 표시: `B(75)` 형태
   - 클릭 → `https://ro-being.com/ir-valuation/?evaluation_id={eval_id}`
   - 링크 형식: `{"type":"link","url":"https://ro-being.com/ir-valuation/?evaluation_id={eval_id}","text":"B(75)"}`
4. DB `coldmail_memory_email`에 `evaluation_id`, `document_id`, `ir_deck_path`, `robeing_evaluation` 저장

### 평가 결과 페이지 (`ro-being.com/ir-valuation`)

- 레포: `frontend-ir-valuation` (Vite + React + TypeScript, 23서버 배포)
- 직접 접근: `https://ro-being.com/ir-valuation/?evaluation_id={eval_id}`
- 표시 순서: 1.점수/등급 → 2.종합결론(summary) → 3.장표별 평가(page_evaluations)
- 백엔드 API: `GET /api/ir-deck/evaluation/{id}` (rb8001)

### 평가 결과 DB 구조

| 테이블 | 내용 |
|--------|------|
| `ir_deck_evaluations` | grade, total_score, summary, story_scores(Sequoia 10가지), investment_opinion |
| `ir_deck_page_evaluations` | 장표별 page_number, score, strengths[], weaknesses[], page_topic |
| `coldmail_memory_email` | evaluation_id, document_id, ir_deck_path, robeing_evaluation |

### 확인 방법

```bash
# 리스트 조회
curl -s -H "X-API-Key: skill-slack-api-key-2025" \
  "http://localhost:8502/api/v1/lists/F09L4S2C6BG/items?limit=100"

# DB 컬럼 매핑 확인
psql main_db -c "SELECT * FROM coldmail_list_config WHERE list_id='F09L4S2C6BG';"

# DB 콜드메일 데이터 확인
psql main_db -c "SELECT subject, sender, robeing_evaluation FROM coldmail_memory_email ORDER BY received_at DESC LIMIT 10;"
```

## 환경변수

- `GEMINI_API_KEY`, `SKILL_SLACK_API_KEY` (rb8001→skill 호출 시)
- `SLACK_BOT_TOKEN` — 기본 워크스페이스 토큰
- `SLACK_TEAM_ID` — 기본 워크스페이스 ID (미설정 시 companyx 리스트 접근 불가)
