token-inspector 수동 점검 체크리스트

백필(/reconcile, 과거 토큰 일괄 기록) 전후로 token-inspector.html 화면을 사람이 직접 눈으로 훑어, 숫자로는 안 잡히는 이상 신호를 찾는 절차. 개발 지식이 없어도 이 문서만 보고 진행할 수 있도록 작성했다.

2026-08-19 · 대상: 팀 전원(비개발자 포함) · 기준: 표본 개수를 정하지 않고, C-1~C-6 × 플랫폼 8종 조합이 한 번씩은 확인됐는지로 커버리지를 잡는다

이 문서가 하는 일 — production-recording-audit(자동 감사 API)가 숫자로 세지 못하는 것, 즉 "화면에 뜬 게시물·계정·채널이 실제로 말이 되는가"를 사람이 확인한다.
이 문서가 하지 않는 일 — 참조 무결성(끊어진 링크), 상태값(ok/error) 비율, 인덱스 존재 여부, link_depth·subtype 어휘 유효성은 이미 자동으로 집계된다. 그건 여기서 또 세지 않는다 — 필요하면 production-recording-audit 페이지(개발자에게 URL 문의)를 연다.
  1. 시작하기 전에 — 준비물
  2. 화면 첫걸음 — 어디를 누르면 뭐가 나오는지
  3. C-1. URL과 실제 게시물이 맞는지
  4. C-2. 인용·답글 사슬이 실제 관계와 맞는지
  5. C-3. 같은 사람·채널이 여러 장으로 쪼개져 있는지 (가장 중요)
  6. C-4. 채널/커뮤니티 정보가 말이 되는지
  7. C-5. 플랫폼별 "정상 형태" 참고표 — 오탐 방지
  8. C-6. 필드가 정확히 매핑됐는지 (Metrics · data) — 플랫폼별 근거 문서
  9. 이상을 발견했다면

§0 시작하기 전에

필요한 건 브라우저와 접속 주소뿐이다. 로그인·설치·개발 도구 전부 필요 없다 (화면 맨 위 ⚙ Ops 탭만 예외 — 그 탭은 실제로 재시도를 실행하는 쓰기 기능이라 이 체크리스트에서는 누르지 않는다).

§1 화면 첫걸음

  1. 화면 맨 위에 탭이 여러 개 있다. 아래 6개 중 Tokens부터 시작한다.
  2. 왼쪽 목록에서 토큰(코인) 하나를 클릭하면 오른쪽에 그 토큰의 상세 정보가 펼쳐진다.
  3. 아래 카테고리(C-1~C-6)는 전부 이 상세 화면, 또는 Contents/Venues/Accounts 탭에서 확인한다.
화면 예시 — 상단 탭바
TokensContentsVenuesAccountsImages⚙ Ops (건드리지 않음)
화면 예시 — 왼쪽 토큰 목록의 항목 하나
7xKX...gAsU · PEPE2
link 6url 3/4· 2일 전
🐦 x ✈️ tg 🌐 web 📷 ig

이 예시에서 url 3/4는 "URL 4개 중 3개가 정상 수집됐다"는 뜻이고, 아래 아이콘 배지 줄은 어떤 소셜이 걸려 있고 각각 어떻게 끝났는지를 보여준다. 배지가 회색이거나 빨간색이라고 무조건 버그는 아니다 — §5(C-5)에서 플랫폼별로 정상 형태를 미리 확인하고 진행한다.

초록 정상 수집됨(ok) 빨강 실패(error/blocked 등) — 재시도 대상, 이 문서 범위 밖 회색 애초에 부르지 않았거나(unsupported) 부를 게 없었음(not_found) — 정상적인 결말일 수 있다

C-1 URL과 실제 게시물이 맞는지

확인하는 것: 상태가 "정상 수집"으로 표시된 URL을 열어보면, 그 URL이 가리키는 진짜 게시물·채널과 화면에 뜬 카드 내용이 실제로 일치하는가.

왜 사람이 봐야 하나: 자동 감사는 "행이 있다/없다"만 센다. 그 행의 텍스트·사진이 그 URL과 진짜 관련 있는 내용인지는 못 본다.

어디서 보는가

  1. 토큰 상세 화면에서 Social URLs 표를 찾는다.
  2. Status 칸이 초록 배지인 행을 하나 고른다. URL 칸의 링크를 눌러 원본 게시물을 새 탭에서 연다.
  3. 아래로 스크롤해 Linked Contents 섹션에서 같은 URL의 카드를 찾아 두 화면을 나란히 비교한다.
화면 예시 — Social URLs 표
PlatformURLStatusAttemptsAttempted
🐦 xx.com/pepe2coin/status/19...ok12일 전
🌐 webpepe2coin.iook12일 전
📷 iginstagram.com/pepe2coinerror21일 전
✓ 정상 예시
🐦
Pepe2 Official
@pepe2coin
"PEPE2 방금 CEX 상장 발표 🚀 자세한 내용은 공지 확인"
[실제 상장 발표 이미지]

→ 원본 트윗을 열어보니 같은 계정, 같은 문구, 같은 이미지.

✗ 이상 신호
🐦
랜덤 밈 계정
@unrelated_meme
"이 코인과 전혀 관계없어 보이는 글"
⚠ 이미지 깨짐 / 표시 안 됨

→ 원본 URL을 눌러보니 카드 내용과 다른 계정·글이 뜬다. 또는 사진 자리가 회색 빗금(깨짐)으로만 나온다.

C-2 인용·답글 사슬이 실제 관계와 맞는지

확인하는 것: 어떤 글이 다른 글을 인용/리트윗/답글했다고 표시돼 있을 때, 실제로 그 관계가 맞는가.

어디서 보는가

  1. Linked Contents 섹션에서 "인용 N" 배지가 붙은 행을 찾는다.
  2. 그 행을 클릭하면(▸ 화살표) 안쪽에 인용된 글 카드가 중첩되어 펼쳐진다.
  3. 바깥 카드(원글)와 안쪽 카드(인용/답글)를 읽고 실제로 서로 관련된 대화인지 확인한다.
화면 예시 — 펼치기 전 / 펼친 후
▸ x.com/pepe2coin/status/19... 인용 1
▸ x.com/pepe2coin/status/19... 인용 1
🐦
Pepe2 Official
depth 0
"우리 커뮤니티가 이 밈을 만들어줬다 👇 인용"
🐦
밈 제작자
depth 1인용
"PEPE2 밈 만들어봄 ㅋㅋ"
답글 · 부모 미관측배지(점선 테두리)는 정상이다 — 답글인데 원글이 아직 우리 시스템에 수집되지 않았을 뿐이라는 뜻이다. 결함이 아니다.

C-3 같은 사람·채널이 여러 장으로 쪼개져 있는지

가장 중요한 항목이다. 이건 자동 감사가 원리적으로 잡을 수 없는 유일한 영역이다 — 시스템은 "글자가 다르면 다른 사람"으로 처리하기 때문에, 같은 사람이 오타·URL 형식 차이 등으로 두 개의 별개 프로필로 쪼개져도 자동으로는 절대 걸리지 않는다. 사람이 직접 눈으로 비교해야만 발견된다.

어디서 보는가

  1. 상단 탭에서 Accounts(계정) 또는 Venues(채널·커뮤니티) 탭을 누른다.
  2. 플랫폼 아이콘 칩(🐦 x, 📷 ig 등) 중 하나를 눌러 그 플랫폼만 걸러 본다.
  3. 목록을 위에서 아래로 훑으며, 프로필 사진·이름·핸들이 서로 비슷한 두 줄이 있는지 찾는다.
화면 예시 — Accounts 탭 목록
🐦
Pepe2 Official
@pepe2coin
x
🐦
Pepe2 Official
@pepe2coin_
x

→ 위 예시처럼 이름·프로필 사진이 똑같은데 핸들만 미세하게(_ 하나) 다른 두 줄이 보이면 정규화가 같은 사람을 서로 다른 계정으로 쪼갰을 가능성이 있다. (그림의 빨간 테두리는 실제 화면에 없다 — 이 문서에서 의심 사례를 표시하려고 넣은 것이다.)

C-4 채널/커뮤니티(Venue) 정보가 말이 되는지

확인하는 것: 텔레그램 채널, X 커뮤니티 같은 "장소" 정보가 이름·설명 없이 껍데기로만 남아있지 않은지, 종류(subtype) 분류가 실제 성격과 맞는지.

어디서 보는가

  1. 토큰 상세 화면의 Venues 섹션, 또는 상단 Venues 탭.
  2. 행을 클릭해 펼치면 이름·설명·인원 수가 보인다.
화면 예시
✈️
PEPE2 Official Channel
1,204 members
tgchannel
✈️
(이름 없음, 원본 링크 값만 표시됨)
0 members
tgchannel

C-5 플랫폼별 "정상 형태" 참고표

플랫폼마다 원래부터 만들지 않는 게 있다. 아래 표에 없다고 표시된 칸은 결함이 아니라 설계다 — 이걸 모르고 보면 정상을 결함으로 오인하기 쉽다.

플랫폼게시물(Content)계정(Account)채널/커뮤니티(Venue)참고
🐦 X있음있음있을 수 있음3종류를 전부 갖는 유일한 플랫폼. 인용·리트윗 사슬 있음(C-2 대상)
▶️ YouTube있음있음없음채널=계정, 영상=게시물 둘뿐. "장소" 개념 자체가 없다
🎵 TikTok있음있음없음프로필=계정, 게시물=콘텐츠 둘뿐
📷 Instagram있음있음없음동일. 스토리 링크는 계정만 만들고 게시물은 안 만드는 게 정상
🐙 GitHub있음(repo)있음(owner)없음"커뮤니티/채널" 개념이 없는 플랫폼
👽 Reddit있음없음(의도적)없음(의도적)서브레딧은 "남의 방"이라 계정·채널 모두 일부러 안 만든다. Content만 있으면 정상
✈️ Telegram없음(의도적)없음(의도적)있음채널/그룹(Venue) 하나만 만든다. 게시물·계정이 없어도 정상
🌐 Website있을 수 있음(0~1건)없음없음사이트 종류에 따라 게시물이 아예 없을 수도 있다(정상)

C-6 필드가 정확히 매핑됐는지 (Metrics · data)

확인하는 것: C-1이 "카드 전체가 맞는 게시물을 가리키는가"를 봤다면, 이건 한 단계 더 들어가 카드 안 개별 숫자·값 하나하나가 원본과 맞는지, 그리고 그 필드가 애초에 왜 그 이름으로 저장되는지 확인하는 항목이다. C-1보다 시간이 더 걸리므로 의심스러운 카드를 발견했을 때만 추가로 연다 — 모든 카드에 매번 적용하는 항목이 아니다.

어디서 보는가

  1. 콘텐츠/계정/채널 카드 안의 메트릭 숫자 그리드(조회수·팔로워·멤버 수 등)를 원본 게시물·프로필과 대조한다.
  2. 카드 맨 아래 ▸ 데이터 data{} · N개 필드 를 클릭해 펼치면, 그 플랫폼 고유 필드가 키-값 표로 그대로 나온다.
  3. 아래 표에서 해당 플랫폼의 문서 두 개를 연다 — ①원본 필드 근거(그 플랫폼 API/응답이 실제로 뭘 주는지)와 ②매핑 결정(그중 무엇을 왜 그 이름으로 저장하기로 했는지)이다. 펼친 표의 키 이름과 문서에 적힌 필드명을 대조한다.
화면 예시 — 데이터 펼치기 전 / 펼친 후
▸ 데이터 data{} · 6개 필드
▸ 데이터 data{} · 6개 필드
retweetCount1,204
quoteCount38
isBlueVerified✓
langen
✓ 정상 예시

원본 게시물의 조회수·좋아요 수가 카드의 메트릭 숫자와 근사하게 맞는다(실시간이라 완전히 같을 필요는 없다). data{}에 나온 필드 이름이 근거 문서에 있는 이름과 같다.

✗ 이상 신호

메트릭 숫자가 원본과 자릿수 자체가 다르다(예: 원본은 1.2만인데 카드는 12). data{}에 근거 문서에 없는 낯선 키가 있거나, 있어야 할 필드가 통째로 비어 있다.

플랫폼별 근거 문서

플랫폼①원본 필드 근거 (그 플랫폼이 실제로 뭘 주는지)②매핑 결정 (뭘 왜 저장하는지)
🐦 Xaudit-sources/x.htmlgenerators/x.md
▶️ YouTubeaudit-sources/youtube.htmlgenerators/youtube.md
🎵 TikTokaudit-sources/tiktok.htmlgenerators/tiktok.md
📷 Instagramaudit-sources/instagram.htmlgenerators/instagram.md
🐙 GitHubaudit-sources/github.htmlgenerators/github.md
👽 Redditaudit-sources/reddit.htmlgenerators/reddit.md
✈️ Telegram별도 감사 문서가 없다 — generators/telegram.md §5 "필드 매핑" 하나가 근거와 결정을 함께 담고 있다
🌐 Websitewebsite-kinds.html · website-content-mapping.htmlgenerators/website.md

§2 이상을 발견했다면

  1. 해당 화면을 스크린샷으로 캡처한다.
  2. 토큰 주소(또는 문제가 된 계정/채널의 platform_key)를 함께 적는다.
  3. 어떤 카테고리(C-1~C-6)에서 발견했는지 한 줄 적는다.
  4. 담당 개발자에게 위 세 가지와 함께 공유한다. 직접 고치거나 재시도 버튼을 누르지 않는다 — 원인 파악 전에 데이터를 건드리면 재현이 어려워진다.

근거: public/token-inspector.html(2026-08-19 기준 렌더링 로직) 직접 검토. 자동 감사 범위는 docs/features/production-recording-audit/design.md §3 기준으로 구분. 배지 색상·아이콘은 실제 화면 CSS 값을 그대로 사용했다(스크린샷은 아니다).