# Event Finder

> Orchestrate destination-event discovery: route the traveler's taste tags to the right vertical scouts among seven — gallery, music, tech, social (meetups/community), fashion (pop-ups/drops/store openings), food (gourmet festivals/pop-up dining), sports (pro league/esports spectating) — run them over destination × travel-window × taste, then merge, dedupe, and rank by travel-worthiness with border…

- **Type:** Skill
- **Install:** `agentstack add skill-metalaihq-trip-event-curator-event-finder`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [metalaihq](https://agentstack.voostack.com/s/metalaihq)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [metalaihq](https://github.com/metalaihq)
- **Source:** https://github.com/metalaihq/trip-event-curator/tree/main/skills/event-finder
- **Website:** https://metalai.co.kr

## Install

```sh
agentstack add skill-metalaihq-trip-event-curator-event-finder
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Event Finder (발굴 오케스트레이터 — 7버티컬 라우팅·병합·여행가치 랭킹)

여행지×기간×취향의 교집합을 버티컬별 스카우트로 발굴해 **하나의 랭킹된 이벤트 목록**으로 만든다. v0.2의 실패("서울 이벤트 추천" → 초등생 광대 워크숍)는 소스 미스매치+게이트 부재였다 — 이 스킬은 버티컬 소스맵을 가진 스카우트에게 위임하고, 여행가치 게이트(경계 사례는 `$local-insider-gate` 전담 판정)를 통과한 것만 병합한다.

## Workflow

1. **프로필·컨텍스트 로드 (0단계)** — `context/curator-context.md` + TravelerProfile(여행지·날짜·태그) 확인 — 없으면 `$traveler-profile` 먼저. `date` 확인.
2. **버티컬 라우팅 (7종)** — 취향 태그→스카우트 매핑:
   | 태그 계열 | 스카우트 |
   |---|---|
   | 전시·미술·디자인·비엔날레 | `$gallery-scout` (GA) |
   | 콘서트·페스티벌·공연·클럽 | `$music-scout` (MU) |
   | 해커톤·학회·컨퍼런스·개발 | `$tech-scout` (TE) |
   | 밋업·커뮤니티·언어교환·사람 만나기 | `$social-scout` (SO) |
   | 팝업·드롭·패션·매장 오픈·패션위크 | `$fashion-scout` (FA) |
   | 미식·와인·커피·다이닝 | `$food-scout` (FO) |
   | 직관·프로리그·이스포츠·경기 | `$sports-scout` (SP) |
   복수 태그면 복수 실행. 넓은 취향은 넓게: "예술 애호가"→gallery+music+fashion+social, "먹고 노는 거 다"→food+music+fashion. 라우팅 결정(어느 버티컬을 왜)을 기록한다.
   **커버리지 밖 폴백 (감사 패치 2026-07-08)**: 7버티컬로 매핑되지 않는 취미(등산·요리 클래스·서핑·독서 모임 등)가 오면 — ① 가장 인접한 버티컬로 발굴을 시도하되(예: 등산→sports의 참가형 아웃도어 행사 각도, 독서 모임→social의 커뮤니티 각도), 산출물에 **"이 취미는 현재 7버티컬로 완전히 커버되지 않음"을 정직 갭으로 명시**한다 ② 어떤 버티컬로도 의미 있는 발굴 각도가 없으면 **억지 매핑 금지** — "현재 미지원 취미"로 보고하고, 어느 버티컬 신설이 필요한지 남긴다. 무관한 결과로 채워 커버리지가 있는 척하는 것은 v0.2 실패의 반복이다.
3. **스카우트 실행·수집** — 각 스카우트가 여행지×윈도우×취향 교집합에서 신호를 낸다 (각자 references/sources.md의 소스맵·ToS 판정 준수). 스카우트별 기여 건수·시도 검색어를 취합한다.
4. **병합·중복 제거** — 같은 이벤트가 다중 소스·다중 버티컬로 들어오면 카드 1장으로 병합(출처 합집합, 주 분류+부 분류 — 예: 아트페어 연계 브랜드 팝업은 FA 주·GA 부). 시리즈·개별 회차 혼동 주의(에디션 라벨).
5. **여행가치 랭킹 + 인사이더 게이트** — 4축(기간 한정·인사이더·취향 적합·접근성) 점수화(가중·산식 estimate 라벨), keep/drop 사유 기록. **경계 사례(관광객용인지 애매한 것·관공서 소싱 교차 건)는 `$local-insider-gate`에 위임**해 LI 판정을 받는다 — borderline 판정은 조건과 함께 반영(관광 슬롯 이관 등). **윈도우 교집합 필수** — 안 겹치면 "인접 기간 참고" 버킷 분리. drop 대표 사례를 로그로 남긴다.
6. **하한 게이트 + 산출** — 병합 후 실명 6+ 검사. 산출: 랭킹 표 + 버티컬별 기여 + 다음 액션(`$entry-tracker` 추적 대상, `$trip-weaver` 배치).

## 산출물 스키마

| 순위 | ID(들) | 이벤트 실명 | 버티컬 (주/부) | 기간 (윈도우 교집합 일수) | freshness (기준일) | entry_status (캡처일) | 여행가치 판정 (4축·LI 판정) | 출처 2+ |
|---|---|---|---|---|---|---|---|---|

+ 인접 기간 참고 버킷 + drop 로그(LI 판정 포함) + 버티컬별 기여 건수·검색어 + 인용 밀도 자가 점검.

## 하한

- **병합 후 실명 이벤트 6개 이상, 전 항목 `[출처|날짜]` + 여행 윈도우 교집합 + 이중 시간축 + 여행가치 판정 기록.** 미달 시 진행하지 말고 버티컬별 부족 건수·시도 검색어를 보고한다. 특정 버티컬 0건은 0건으로 정직하게 — 다른 버티컬로 부풀리지 않는다. 커버리지 밖 취미는 인접 버티컬 시도+"완전히 커버되지 않음" 갭 명시가 하한이며, 억지 매핑 항목이 하나라도 있으면 하한 위반이다.

## 증거 규칙

상세 기준·하한표: [evidence-rules.md](../traveler-profile/references/evidence-rules.md)

1. 모든 신호·주장에 `[출처명 | 날짜 | 수치 또는 원문 인용]` 태그. 출처 없는 신호 기재 금지. 학습 기억 문장은 `(기억 기반—재검증 필요)` 라벨 — 하한 카운트 제외.
2. 웹서치가 1차, `assets/snapshot/`은 2차 — 모든 상태는 "캡처 시점 기준" 명시. 검색어에 연도·도시 명시.
3. 여행 윈도우 교집합 의무 — 여행 날짜와 겹치는 이벤트만 채택(안 겹치면 "인접 기간 참고" 분리). 이중 시간축·종료 회기 오인 금지.
4. 여행가치 게이트 — 상시 상설·관광객 뻔한 것 배제, 로컬 애호가가 실제 가는 것 우선 (경계 판정: `$local-insider-gate`). 가격·재고 날조 금지(미확보=null+정직 갭).
5. 소스 ToS/robots 실측 준수 — 불가 소스는 공식으로 대체+명기. 하한 미달 시 진행 금지 — 부족 항목 보고가 유일한 대안.

## 원칙

- 라우팅이 절반이다 — "개발자·해커톤"에게 갤러리부터 들이밀면 취향 매칭이 아니라 소음이다. 단, 넓은 취향은 넓게 돌린다.
- drop 로그는 산출물이다 — "초등생 워크숍을 걸렀다"는 기록이 이 플러그인의 존재 증명이다.
- 중복 제거는 정보 손실이 아니다 — 다중 소스 등장은 오히려 인사이더 신호 가점이다.
- 6개를 못 채우면 못 채웠다고 말하라 — 동네 프로그램으로 채우는 순간 v0.2로 돌아간다.
- 판정이 애매하면 전담 게이트에 물어라 — 오케스트레이터의 감이 아니라 local-insider-gate의 4테스트가 결정한다.
- 커버리지의 경계를 아는 것이 커버리지다 — 7버티컬 밖 취미에 무관한 결과를 들이미는 것보다 "인접 시도 + 미커버 명시"가 여행자를 더 멀리 데려간다.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [metalaihq](https://github.com/metalaihq)
- **Source:** [metalaihq/trip-event-curator](https://github.com/metalaihq/trip-event-curator)
- **License:** MIT
- **Homepage:** https://metalai.co.kr

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-metalaihq-trip-event-curator-event-finder
- Seller: https://agentstack.voostack.com/s/metalaihq
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
