← 작업 목록English

HyperChecker

인스타그램 릴스를 DM으로 보내면, 소개된 개발 도구를 공개 자료로 확인해 답장하는 에이전트입니다.

개인 프로젝트 · 2026-10 ~ · 공개 서비스 운영 중

레포 ↗  @hyper_checker ↗

문제

릴스에는 "이 MCP 하나면 끝", "별이 몇 만 개" 같은 소개가 많습니다. 사실인지 확인하려면 레포를 찾고, 이름이 같은 복제본을 가려내고, README와 대조하고, 설치 스크립트까지 봐야 합니다. 이 과정을 릴스 공유 한 번으로 끝내려고 만들었습니다.

원칙: 판정은 코드가 한다

LLM에게 "이 도구 좋아?"라고 묻지 않습니다. 등급과 점수는 측정값을 보고 코드가 계산합니다. LLM은 도구 추출, 화면 글자 읽기, 원문 근거 찾기 같은 일을 맡고, 그 결과도 코드가 검증한 뒤에만 판정에 씁니다. 확정할 수 없으면 추측하지 않고 판정을 보류합니다.

등급은 "게시물이 얼마나 확인됐나"이고, 추천 점수(0~10)는 "도구 자체를 얼마나 권하나"입니다. 점수는 스타·업데이트·경고 신호로만 계산하고, 계산 과정을 답장에 그대로 보여 줍니다.

등급뜻
👍 공식 설명 기준 확인됨위치·측정·활동에 문제가 없고, 게시물 설명이 공식 문서와 맞음
🤔 주의해서위치는 찾았지만 확인되지 않은 부분이나 경고가 있음
👎 권하지 않아요공식 문서와 다른 주장, 보안 자리표시 패키지, 사칭 복제
❔ 판정 보류공식 위치를 하나로 정하지 못함

실제 답장

실제 게시물을 현재 코드로 돌린 출력입니다. 확인된 도구는 점수 계산까지 보여 줍니다.

2. morphic — 추천 7/10 · 👍
🔗 github.com/miurla/morphic
⭐ 9,257 · 최근 30일 안에 업데이트
👍 좋은 점
 · 게시물의 '나만의 AI 검색엔진' 설명이 공식 문서와 맞아요
 · 공식 위치 하나를 찾았어요
📊 기본 5점 · 스타 규모 +1 · 업데이트 +1 → 7점

확정할 수 없으면 확정이 아니라고 밝힌 후보만 보여 줍니다.

1. puck — 추천 판단 보류 · ❔
🔎 이 도구일 수 있어요(확정 아님): github.com/puckeditor/puck ⭐ 13,606
⚠️ 살펴볼 점
 · 공식 위치를 하나로 정하지 못했어요
 · 측정한 코드 정보가 없어요

구조

Instagram DM
  → serve   서명 검증 웹훅, 파일 큐
  → work    한 건씩 처리
  → 영상 읽기   전사 · 화면 글자
  → 도구 추출   Claude
  → 식별       캡션 링크 → 레지스트리 → 이름 검색
  → 읽기 전용 측정   GitHub · npm · PyPI · MCP registry
  → 주장 대조   원문 인용 검증
  → 등급 · 점수   코드 규칙
  → DM 답장
영역사용 기술
런타임Python 3.14 표준 라이브러리 중심, Docker Compose, Oracle Cloud
LLMClaude Haiku 5.5 (추출, 화면 글자, 주장 대조, 같은 도구 확인)
영상yt-dlp, ffmpeg, Groq Whisper
측정GitHub API, npm, PyPI, MCP registry, deps.dev
저장파일 큐, SQLite 캐시(같은 게시물 7일, 같은 도구 3일)
입구Meta Instagram API, Cloudflare Tunnel + WAF

가드레일

LLM 출력과 게시물 입력을 신뢰하지 않는다는 전제에서 시작했습니다.

평가

사람이 판정한 카드와 적대적 사례로 만든 정답셋 32건을 씁니다. 통과 기준은 👍 정밀도 90% 이상(자동 👍 중 사람이 👍 또는 🤔로 본 비율), 치명 오류(사람 👎 → 자동 👍) 0건, 👎 오탐 1건 이하, ❔ 비율 40% 이하(정답이 ❔인 도구는 분모에서 제외)입니다. 결과가 실행마다 달라져서 여러 번 돌려 비교했습니다(2026-11-03).

개선 전 코드현재 코드
개발셋(도구 19개) 통과2회 중 2회2회 중 2회
홀드아웃(도구 9개) 통과3회 중 1회3회 중 2회
치명 오류가 나온 홀드아웃3회 중 2회3회 중 1회

현재 코드는 5회 모두 프롬프트 인젝션 같은 적대적 사례에서 등급 상한을 지켰습니다.

이 수치의 한계도 함께 적습니다. 표본이 작고, 홀드아웃은 규칙을 고치는 동안 여러 번 봐서 독립 검증이 아닙니다. 초기 CLI 단계에서는 첫 실행 전에 보류 검증셋을 커밋해 고정했는데, 첫 실행 식별은 9/36으로 낮았습니다. 대신 확정한 9건은 모두 정답이었습니다. 틀린 27건 중 24건은 정답이 상위 3위 안에 있었지만 이름이 같은 복제·사칭 레포 때문에 하나로 정하지 못한 경우였습니다.

초기 CLI 단계에서는 추출·식별 과제를 나눠 따로 채점하고, 식별은 분모를 고정했습니다. 그때 정답셋을 열 수 없는 별도 세션이 화면을 보고 후보를 고르게 해, 정답셋 노출로 점수가 부풀지 않았는지도 확인했습니다. 지금 DM 판정의 수치는 위 표가 전부입니다. 자세한 기록:eval-history ↗

공개 뒤 실제 로그로 고친 것

공개 후 실제 답장을 읽어 보니, 정답셋이 잡지 못한 문제가 나왔습니다.

발견원인조치
👍가 한 번도 안 나옴. 주장 42개 중 일치 3개Claude가 맞다고 답한 20건 중 9건을 코드가 탈락시킴([3] 표기, 마크다운 차이)표기를 정규화하되, 인용이 문단에 있어야 한다는 규칙은 유지
캡션에 GitHub 링크가 있는데 ❔이름으로만 검색게시물의 링크를 검색보다 먼저 사용
TOP 10 게시물에서 찾은 도구 4개 누락못 찾은 도구가 판정 자리를 차지찾은 도구부터 판정하고, 빠진 도구는 이름을 표시
스타 0개와 7천 개가 똑같이 5점소유자의 커밋만으로 받는 활동 가산점사용자가 적으면 가산하지 않고 감점 강화
NSA ghidra에도 스타 급증 경고한 번 화제가 돼도 조작처럼 표시안내만 남기고 감점과 👍 차단 제거

설계 판단: 포크하지 않고 기준만 가져오기

스타 조작 탐지에는 공개 도구 Starguard(★500, Apache-2.0)를 쓸 수 있는지 먼저 코드를 읽었습니다. 설치·실행은 하지 않았습니다. 수집 계층은 오류가 나도 그때까지 받은 데이터만 성공처럼 반환했고, 핵심 신호 두 개(lock-step·clone 사칭)에 판정 근거가 성립하지 않는 버그가 있었습니다. 자동 테스트도 없었습니다.

그래서 포크하지 않고 판정 기준만 출처를 밝혀 다시 구현했습니다. 계정 기반 신호는 남의 레포에 대해 계산할 수 없어서, 스타 개수 시계열 신호와 fork/star 비만 가져왔습니다. 포크해서 얻는 것은 상수 몇십 줄인데, 고치고 혼자 유지하는 비용이 더 컸기 때문입니다.정독 기록 ↗

알려진 한계

더 읽기