Community코딩 & 개발github.com

인용 검증기

과학 문서에서 인용을 감지하고 검증하여, 환각(hallucination), 깨짐, 부적절한 참조를 식별합니다.

인용 검증기란 무엇인가요?

이 스킬은 AI 생성 콘텐츠에서 흔히 발생하는 허위 또는 부정확한 인용을 체계적으로 탐지하고 검증하는 도구입니다. 문서에서 DOI, URL, arXiv ID, PubMed ID, ISBN, 저자-연도 인용 등 다양한 인용 식별자를 추출한 후, CrossRef API, arXiv API, PubMed 등 권위 있는 출처를 통해 각 식별자를 확인합니다. 검증 결과는 '유효(valid)', '무효(invalid)', '의심스러움(suspicious)', '미확인(unverified)'의 4가지 상태로 분류되어 상세 보고서로 제공됩니다. Markdown, LaTeX/BibTeX, Org-mode, 일반 텍스트 등 여러 문서 형식을 지원하며, 유효하지 않은 인용에 대한 구체적인 수정 제안도 함께 제공하여 연구자와 개발자 모두가 인용 품질을 확보하는 데 도움을 줍니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jkitchin/skillz/tree/main/skills/citation-verifier

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

인용 검증기은(는) 무엇을 하나요?

과학 문서의 인용을 감지하고 검증하여, 환각(hallucination), 깨짐, 부적절한 참조를 식별합니다.

목적

AI 생성 콘텐츠는 때때로 그럴듯해 보이지만 실제로는 가짜인 인용을 포함할 수 있습니다. 이 스킬은 문서에서 모든 인용 식별자를 체계적으로 추출하고 각각을 권위 있는 출처에 대해 검증하여, 검증 상태와 잘못된 인용에 대한 수정 제안을 포함한 상세 보고서를 생성합니다.

사용 시기

이 스킬은 다음과 같은 경우에 호출되어야 합니다:

  • 사용자가 문서의 "인용 검증" 또는 "참조 확인"을 요청할 때
  • 사용자가 AI 생성 콘텐츠에 허위 인용이 있다고 의심할 때
  • 사용자가 논문의 DOI, URL, 또는 기타 식별자를 검증하고자 할 때
  • 사용자가 문서의 깨진 링크나 가짜 참조를 감사(audit)해 달라고 요청할 때
  • 사용자가 "인용 검증", "참조 확인", "DOI 검증"을 언급할 때

지원 문서 형식

  1. Markdown (.md): 인라인 링크 [text](url), 참조 링크 [text][ref], 베어 URL, DOI
  2. LaTeX/BibTeX (.tex, .bib): \cite{}, @article{}, DOI 필드, URL 필드
  3. Org-mode (.org): [[url][text]] 링크, #+BIBLIOGRAPHY, cite 링크
  4. 일반 텍스트 (.txt): 베어 URL, DOI, arXiv ID, 저자-연도 패턴

감지되는 인용 식별자

DOI (디지털 객체 식별자)

  • 패턴: 10.\d{4,}/[^\s]+ 또는 doi.org/10.\d{4,}/[^\s]+
  • 예시: 10.1038/nature12373, https://doi.org/10.1126/science.abc1234
  • 검증: https://api.crossref.org/works/{doi} 의 CrossRef API

논문 URL

  • 패턴: 주요 출판사 및 저장소에 대한 링크
  • 도메인: nature.com, science.org, sciencedirect.com, springer.com, wiley.com, acs.org, rsc.org, pnas.org, cell.com, plos.org, mdpi.com, frontiersin.org, academic.oup.com, tandfonline.com
  • 검증: HTTP HEAD/GET 요청, 200 상태 및 논문 메타데이터 확인

arXiv ID

  • 패턴: arXiv:\d{4}\.\d{4,5}(v\d+)? 또는 arxiv.org/abs/\d{4}\.\d{4,5}
  • 예시: arXiv:2301.07041, https://arxiv.org/abs/2301.07041v2
  • 검증: arXiv API 또는 직접 URL 확인

PubMed ID (PMID)

  • 패턴: PMID:\s*\d+ 또는 pubmed.ncbi.nlm.nih.gov/\d+
  • 예시: PMID: 12345678
  • 검증: PubMed URL https://pubmed.ncbi.nlm.nih.gov/{pmid}/

ISBN

  • 패턴: ISBN[:\s]*[\d-]{10,17} (ISBN-10 또는 ISBN-13)
  • 예시: ISBN: 978-0-13-468599-1
  • 검증: Open Library API https://openlibrary.org/isbn/{isbn}.json

저자-연도 인용

  • 패턴: ([A-Z][a-z]+(?:\s+(?:et\s+al\.?|and|&)\s+[A-Z][a-z]+)?,\s*\d{4})
  • 예시: (Smith et al., 2023), (Johnson and Lee, 2022)
  • 검증: WebSearch를 통해 일치하는 논문 검색 (신뢰도 낮음)

검증 절차

1단계: 문서 읽기 및 파싱

Read 도구를 사용하여 문서를 불러옵니다. 패턴 매칭을 사용하여 모든 인용 식별자를 추출합니다:

DOI 패턴:
- https?://(?:dx\.)?doi\.org/(10\.\d{4,}/[^\s\])"'\>]+)
- doi:\s*(10\.\d{4,}/[^\s\])"'\>]+)
- (10\.\d{4,9}/[-._;()/:A-Z0-9]+)  (베어 DOI)

arXiv 패턴:
- arXiv:(\d{4}\.\d{4,5}(?:v\d+)?)
- arxiv\.org/abs/(\d{4}\.\d{4,5}(?:v\d+)?)

PubMed 패턴:
- PMID:\s*(\d+)
- pubmed\.ncbi\.nlm\.nih\.gov/(\d+)

URL 패턴:
- https?://[^\s\])"'\<>]+  (학술 도메인으로 필터링)

ISBN 패턴:
- ISBN[:\s-]*((?:\d[-\s]?){9}[\dXx]|(?:\d[-\s]?){13)}

2단계: 중복 제거 및 분류

고유 식별자 목록을 유형별로 생성합니다:

  • DOI
  • arXiv ID
  • PubMed ID
  • ISBN
  • URL (학술)
  • 저자-연도 인용 (텍스트 기반)

3단계: 각 식별자 검증

각 식별자에 대해 신뢰도 순으로 검증을 수행합니다:

DOI 검증

  1. CrossRef API URL 구성: https://api.crossref.org/works/{doi}
  2. WebFetch를 사용하여 API 확인
  3. 성공적이면 제목, 저자, 저널, 연도 추출
  4. 404 오류 또는 오류 발생 시: INVALID(무효)로 표시

arXiv 검증

  1. URL 구성: https://arxiv.org/abs/{arxiv_id}
  2. WebFetch를 사용하여 페이지 존재 여부 확인
  3. 제목, 저자, 초록 일부 추출
  4. 404 오류 시: INVALID(무효)로 표시

PubMed 검증

  1. URL 구성: https://pubmed.ncbi.nlm.nih.gov/{pmid}/
  2. WebFetch를 사용하여 확인
  3. 제목, 저자, 저널 추출
  4. 404 오류 시: INVALID(무효)로 표시

ISBN 검증

  1. URL 구성: https://openlibrary.org/isbn/{isbn}.json
  2. WebFetch를 사용하여 확인
  3. 제목, 저자, 출판사 추출
  4. 404 오류 시: INVALID(무효)로 표시

URL 검증

  1. WebFetch를 사용하여 URL 접근
  2. HTTP 200 상태 및 학술 콘텐츠 표시기 확인
  3. 페이지에서 논문 제목, 저자, DOI 확인
  4. 접근 불가능 또는 비학술적일 경우: SUSPICIOUS(의심스러움)로 표시

저자-연도 검증 (신뢰도 가장 낮음)

  1. WebSearch를 사용하여 "{author}" "{year}" paper 쿼리
  2. 결과에서 일치하는 논문 검색
  3. 발견 시: LIKELY VALID(대체로 유효)로 표시하고 출처 명시
  4. 미발견 시: UNVERIFIED(미확인)로 표시

4단계: 보고서 생성

구조화된 검증 보고서를 생성합니다:

# 인용 검증 보고서

**문서:** [파일명]
**날짜:** [날짜]
**발견된 총 인용 수:** [개수]

## 요약
- 유효: [개수]
- 무효: [개수]
- 의심스러움: [개수]
- 미확인: [개수]

## 상세 결과

### 유효 인용
| ID | 유형 | 제목 | 출처 |
|----|------|-------|--------|
| 10.1038/xxx | DOI | 논문 제목 | CrossRef |

### 무효 인용 (환각)
| ID | 유형 | 오류 | 제안 |
|----|------|-------|------------|
| 10.9999/fake | DOI | 404 Not Found | 제거하거나 올바른 DOI 찾기 |

### 의심스러운 인용
| ID | 유형 | 문제 | 권장 사항 |
|----|------|-------|----------------|
| https://... | URL | 시간 초과 | 수동으로 확인 |

### 미확인 인용
| 인용 | 유형 | 참고 사항 |
|----------|------|-------|
| (Smith, 2023) | 저자-연도 | 검색에서 일치하는 논문을 찾을 수 없음 |

검증 상태 정의

  • VALID(유효): 식별자가 실제 논문으로 확인되며 메타데이터가 일치함
  • INVALID(무효): 식별자가 존재하지 않거나 404를 반환함 (환각일 가능성이 높음)
  • SUSPICIOUS(의심스러움): 완전히 검증할 수 없음; 속도 제한, 유료화, 또는 일시적 접근 불가일 수 있음
  • UNVERIFIED(미확인): 텍스트 기반 인용으로 확인할 수 없음 (보수적 접근)

모범 사례

  1. 유사한 요청 배치 처리: DOI 확인을 그룹화하여 API 호출 최소화
  2. 속도 제한 준수: 속도 제한에 도달할 경우 요청 사이에 지연 추가
  3. 상호 참조: URL에 DOI가 포함된 경우 DOI를 직접 검증
  4. 맥락 고려: 인용이 나타나는 위치 기록 (방법론 vs. 주장)
  5. 불확실성 보고: "확인된 무효"와 "확인할 수 없음"을 항상 구분

무효 인용에 대한 출력 제안

각 무효 인용에 대해 실행 가능한 제안을 제공합니다:

  • DOI 형식 오류: "DOI 형식이 잘못되었습니다. 오타나 추가 문자를 확인하세요."
  • 존재하지 않는 DOI: "논문을 찾을 수 없습니다. 이는 환각일 수 있습니다. 실제 논문 제목을 검색하세요."
  • 죽은 URL: "URL이 404를 반환합니다. Google Scholar에서 논문 제목을 검색해 보세요."
  • 의심스러운 저널: "출판사가 인식되지 않습니다. 합법적인 출처인지 확인하세요."
  • 저자-연도 미발견: "확인할 수 없습니다. 확인을 위해 DOI 또는 URL을 추가하세요."

예시 검증 세션

사용자 요청: "my-paper.md 파일의 인용을 검증해 주세요."

예상 동작:

  1. my-paper.md 파일 읽기
  2. 모든 DOI, URL, arXiv ID 등 추출
  3. 보고: "15개의 인용 발견: 8개의 DOI, 5개의 URL, 2개의 arXiv ID"
  4. 적절한 API/페치를 사용하여 각 식별자 검증
  5. 다음을 표시하는 보고서 생성:
    • 메타데이터가 포함된 10개의 유효 인용
    • 3개의 무효 인용 (404 오류) - 환각으로 표시됨
    • 2개의 의심스러운 인용 (시간 초과) - 수동 확인 필요
  6. 무효 인용에 대한 수정 제안 제공

한계

  • 속도 제한: CrossRef 및 기타 API는 요청 속도를 제한할 수 있음
  • 유료화된 콘텐츠: 유료화된 전체 콘텐츠는 확인할 수 없음
  • 새로운 논문: 최신 논문은 아직 색인되지 않을 수 있음
  • 저자-연도 인용: 추가 식별자 없이는 신뢰도가 낮음
  • 비영어 출처: 비영어권 인용 형식에 대한 지원이 제한적임
  • 개인/기관 URL: 인증이 필요한 콘텐츠에는 접근할 수 없음

관련 스킬

  • literature-review: 체계적인 문헌 검색 수행용
  • scientific-reviewer: 과학 문서 품질 검토용
  • scientific-writing: 올바른 인용과 함께 작성용

관련 스킬