last30days는 하나의 주제에 대해 Reddit, X(트위터), YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, Digg, arXiv, Techmeme, LinkedIn 등 10개 이상의 소스를 동시에 검색해, 편집자가 아니라 업보트·좋아요·실제 돈(베팅 시장)으로 평가된 '사람들의 신호'를 근거로 요약 브리핑을 만들어주는 AI 에이전트용 스킬입니다. Claude Code, Codex, Cursor, Gemini CLI 등 50개 이상의 Agent Skills 호스트에 플러그인 또는 스킬 형태로 설치해 `/last30days <주제>` 명령으로 사용합니다.
핵심은 `skills/last30days/scripts/last30days.py`가 진입점이 되고 `lib/pipeline.py`가 오케스트레이션을 맡는 구조입니다. `lib/fanout.py`가 소스별 모듈(reddit.py, bird_x.py/grok_x.py, youtube 관련 백엔드, tiktok, polymarket.py, hackernews.py, github.py, arxiv.py 등)을 병렬로 호출해 원시 결과를 모으고, `normalize.py`로 포맷을 통일한 뒤 `dedupe.py`와 `cluster.py`로 중복·유사 항목을 묶습니다. 이후 `relevance.py`, `rerank.py`, `fusion.py`가 업보트 수·좋아요·조회수 같은 실제 참여 신호로 교차 점수화하고, `grounding.py`가 각 주장에 출처를 연결해 `render.py`/`html_render.py`로 최종 브리핑을 생성합니다. Reddit·HN·Polymarket·GitHub은 API 키 없이 바로 동작하지만, X·YouTube·TikTok·Instagram·arXiv·Techmeme 등은 `setup_wizard.py`가 브라우저 쿠키(chrome_cookies.py, safari_cookies.py)나 토큰을 추출해 30초 내 활성화하는 구조입니다. Go로 작성된 `mcp/` 서버는 동일 엔진을 stdio 기반 MCP 도구로 감싸 Claude Desktop 등에 패키징합니다. pytest 기반 테스트가 84% 커버리지 게이트로 고정되어 있고, docs/solutions 아래에 실제 버그 수정 기록(디듀프 누락, 비-데몬 스레드가 시간예산을 무력화하는 문제 등)이 남아 있어 실전에서 다듬어진 코드베이스임을 보여줍니다.
- STEP 01
Claude Code라면 `/plugin marketplace add mvanhorn/last30days-skill` 후 `/plugin install last30days`로 설치하거나, 다른 호스트라면 `npx skills add mvanhorn/last30days-skill -g`로 전역 설치합니다.
- STEP 02
설치 직후 `/last30days 어떤주제` 를 실행하면 Reddit, Hacker News, Polymarket, GitHub 결과는 키 없이 바로 수집되어 응답이 오는 것을 보게 됩니다.
- STEP 03
X, YouTube, TikTok 등 추가 소스를 쓰려면 최초 실행 시 setup_wizard.py가 뜨면서 브라우저 쿠키 추출이나 API 키 입력을 요구하는 안내를 보게 됩니다.
- STEP 04
검색이 끝나면 여러 플랫폼에서 모은 항목이 클러스터링·점수화되어 출처가 인용된 하나의 종합 브리핑(마크다운/HTML)으로 출력되는 것을 확인하게 됩니다.
- STEP 05
arXiv, Digg, Techmeme처럼 별도 CLI(`arxiv-pp-cli` 등)가 PATH에 없으면 자동 설치를 시도하는 메시지를 보게 될 수 있습니다.
- STEP 06
doctor.py/health.py 계열 점검으로 인해 일부 소스가 '인증 없음'으로 건너뛰어졌다는 안내를 받을 수 있어, 완전한 결과를 보려면 추가 설정이 필요함을 체감하게 됩니다.
한 번의 명령으로 특정 인물이나 주제에 대해 최근 30일간 Reddit 댓글, X 스레드, YouTube/TikTok 자막, HN 토론, Polymarket 배당률, GitHub 활동 등을 교차 검증한 인용 포함 요약 리포트를 얻습니다. README가 보여주는 예시처럼 LinkedIn 프로필 수준이 아니라 '이번 달 실제로 무슨 일이 있었는지'에 대한 근거 기반 브리핑이 결과물입니다.
완전한 기능(X, YouTube, TikTok, Instagram 등)을 쓰려면 브라우저 쿠키나 개인 API 키를 직접 제공해야 하므로 설정 부담과 각 플랫폼 이용약관상 리스크가 존재합니다.
Reddit 등 일부 소스는 공식 API가 아닌 HTML 스크래핑(fixtures의 reddit_search_challenge.html 등 참고)에 의존하는 정황이 있어, 플랫폼 구조 변경 시 깨질 가능성이 있습니다.
arxiv-pp-cli, techmeme-pp-cli, digg-pp-cli, bird-search(벤더링된 X 검색 클라이언트) 등 외부 보조 CLI에 의존하므로, 이 저장소 코드 자체만으로 전체 동작을 검증하기는 어렵고 일부는 첫 실행 시 자동 설치됩니다.
README의 'GitHub Trending #1' 배지 등 마케팅성 문구는 저장소 코드와 별개로 검증되지 않은 외부 평판 주장이므로 그대로 신뢰하기보다 참고용으로만 보는 것이 안전합니다.
AI 에이전트(Claude Code, Codex 등)를 일상적으로 쓰면서 '최근 한 달간 커뮤니티 반응'이 중요한 리서치(세일즈 미팅 전 조사, 경쟁사 동향, 채용 전 인물 조사 등)를 해야 하는 사람에게 적합합니다. 파이프라인 모듈 분리(fanout·fusion·dedupe·rerank·grounding), 84% 커버리지 게이트, 그리고 docs/solutions에 남은 실제 버그 수정 기록들은 이 저장소가 단순 프로토타입이 아니라 운영되며 다듬어진 코드베이스임을 뒷받침합니다. 다만 핵심 가치는 공식 API가 제한적인 소셜 플랫폼을 스크래핑/쿠키로 우회해 통합한다는 데 있으므로, 설치 전에 '내 브라우저 쿠키와 키를 넘겨도 되는지'를 스스로 판단해야 하며, 이는 코드를 보는 것만으로는 완전히 해소되지 않는 신뢰 영역입니다.