--- 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 | ### 현황 (260320) - 슬랙 리스트: 57건 (고유 53개 회사), 전건 평가 완료 - DB(`coldmail_memory_email`): 60건 (테스트 3건 포함), 59건 평가+문서 연결 - 중복 기업: 에듀온(3), 누리광장(2), 담을거야(2), NAVER(2) - OCR fallback 적용: 이미지 기반 PDF도 Gemini 2.0 Flash로 평가 가능 ### 확인 방법 ```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 리스트 접근 불가)