Community코딩 & 개발github.com

ccanunez/verificar-bib

검증 도구: .bib 파일, 논문/학위논문 참고문헌 목록 또는 이를 인용하는 LaTeX 프로젝트를 OpenAlex, Crossref, arXiv, OpenLibrary, NASA ADS와 대조하여 확인합니다. 가짜 또는 허위(환각) 인용, 철회된 논문, 오류(연도, 권, 페이지, DOI, 저자 순서), 중복, 누락된 \cite 키, 이미 출판된 프리프린트를 탐지합니다. 각 논문이 본문에서 주장하는 내용을 실제로 뒷받침하는지 확인하고, 누락된 참고문헌을 제안하며, 수정된 .bib 파일(DOI, eprint 추가)을 생성합니다.

verificar-bib란 무엇인가요?

이 스킬은 학술 참고문헌의 정확성과 신뢰성을 종합적으로 검증합니다. 사용자가 제공한 .bib 파일, 일반 텍스트 참고문헌 목록, 또는 LaTeX 프로젝트를 분석하여 각 인용이 실제로 존재하는 논문인지, 메타데이터(연도, 권, 페이지, DOI, 저자 순서)가 올바른지, 논문이 철회(Retracted)되었는지 확인합니다. 또한, 본문에서 각 인용이 주장하는 내용을 논문의 초록 및 전체 텍스트와 비교하여 인용의 타당성을 평가하는 '심층(profundo)' 모드를 지원합니다. 중복 인용, 누락된 \cite 키, 이미 출판된 프리프린트 탐지, 그리고 관련성 높은 누락 참고문헌 제안 기능도 포함됩니다. Cursor, Claude Code, Codex 등 다양한 AI 코딩 도구에서 실행 가능하며, Python 3 스크립트 기반으로 동작하고 30일 캐시를 지원하여 반복 실행 시 효율적입니다. 최종 결과는 상세한 Markdown 보고서로 제공되며, 사용자 승인 하에 수정된 .bib 파일을 생성할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ccanunez/verificar-bib/tree/HEAD

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

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

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

문서

참고문헌 검증 및 논문 찾기

목표: 각 참고문헌에 대해 (1) 실제 존재하는지, (2) 데이터가 정확한지, (3) 여전히 유효한지(철회되지 않음), (4) 본문의 주장을 뒷받침하는지 판단하고, 어디에서 읽을 수 있는지 안내합니다. 사용자 언어(기본값: 스페인어)로 작성합니다.

인자

/verificar-bib <refs.bib | refs.txt | manuscript-folder> [profundo] [huecos] [parche]

  • profundo: 추가로 주장 검증(4단계)을 수행합니다. 가장 많은 비용이 들기 때문에, 사용자가 요청하지 않으면 실행하지 않고 제안만 합니다.
  • huecos: 누락된 참고문헌을 제안합니다 (--huecos 20).
  • parche: 원본을 건드리지 않고 수정된 .bib 파일을 작성합니다.

1. 참고문헌 확보

  • .bib: 그대로 사용.
  • 텍스트 목록 (채팅에 붙여넣기, PDF에서 추출, 또는 논문의 References 섹션): 스크래치패드에 .txt 파일로 저장합니다. 각 줄 또는 단락당 하나의 참고문헌. PDF에서 가져온 경우 참고문헌 섹션만 추출합니다.
  • LaTeX 프로젝트: .bib 파일을 찾습니다 (\bibliography{…} 또는 \addbibresource{…}). --tex와 함께 폴더를 전달합니다. 스크립트는 \cite 키(natbib 및 biblatex)를 .bib과 교차 참조하고 각 인용의 문장을 추출합니다.

2. 검증기 실행

python3 -I ~/.claude/skills/verificar-bib/scripts/verificar_bib.py <refs> --out <scratchpad>/informe_bib.md --json <scratchpad>/informe_bib.json [--tex <carpeta>] [--contextos <scratchpad>/contextos.md] [--huecos 20] [--parche <scratchpad>/refs.corregido.bib] [--macros-aas]

각 참고문헌에 대해 다음 순서로 조회합니다: DOI (그리고 아무도 가지고 있지 않으면 doi.org 리졸버), arXiv ID, OpenAlex의 제목, OpenLibrary (서적), ADS (ADS_API_TOKEN이 존재하는 경우), 연도+권+페이지, Crossref 서지 정보, arXiv. 발견된 논문에 철회 및 정정 정보(Retraction Watch, OpenAlex 및 Crossref 경유), bib이 프리프린트를 인용한 경우 출판된 버전, 오픈 액세스 링크를 추가합니다. 판정:

  • 🚩 철회됨: 존재하지만 철회 또는 회수되었습니다. 증거로 인용되어서는 안 됩니다.
  • ✅ 확인됨: 제목, 첫 번째 저자, 연도(±1, arXiv vs. 출판 버전), 권, 페이지가 일치합니다. 서적의 경우 연도는 필수가 아닙니다(데이터베이스가 다른 판을 색인할 수 있으므로).
  • ⚠️ 불일치: 존재하지만 일부가 일치하지 않습니다: 연도, 권, 페이지, 저자 순서, 존재하지 않거나 다른 논문을 가리키는 DOI, 또는 해당 권/페이지에 다른 제목의 논문이 있는 경우 (실제 저널을 재사용하는 가짜 인용의 전형적인 패턴).
  • ❌ 찾을 수 없음: 어떤 데이터베이스도 가지고 있지 않으므로 가짜 인용 가능성이 있습니다. 가장 유사한 후보를 힌트로 함께 제시합니다.

보고서에는 중복(동일한 논문이 두 개의 키로 있거나 키가 반복됨), .tex과의 교차 참조(인용되었지만 항목이 없는 키는 [?]로 표시, 한 번도 인용되지 않은 항목), 누락된 참고문헌, 참고 사항(출판된 정정, 이미 출판된 프리프린트, 서적 판)이 포함됩니다.

실행 참고 사항:

  • ~/.cache/verificar-bib에 캐시가 있습니다 (30일): .bib 편집 후 다시 실행하면 거의 즉시 처리됩니다. --sin-cache로 캐시를 무시합니다.
  • arXiv는 최대 3초에 한 번씩만 조회합니다. 약 50개 이상의 참고문헌이 있으면 백그라운드에서 실행하십시오.
  • 보고서에 "일부 조회 실패" 경고가 있으면 ❌는 위음성(false negative)일 수 있습니다: 나중에 다시 실행하십시오.
  • OPENALEX_API_KEY가 없으면 OpenAlex는 IP 기반 일일 할당량이 적습니다. ADS_API_TOKEN은 ADS를 활성화하며, 천문학 분야의 서적, 프로시딩, 오래된 논문을 다른 데이터베이스가 가지고 있지 않더라도 포함합니다. 사용자가 키를 가지고 있다면 직접 내보내도록 하십시오. 절대 사용자를 대신하여 키를 생성하거나 키 값을 읽지 마십시오.
  • --strict는 ❌, 🚩 또는 누락된 키가 있으면 종료 코드 1을 반환합니다 (최종 제출 전에 유용).

3. 의심스러운 사례 수동 검토 (이 단계를 건너뛰지 마십시오)

스크립트는 필터일 뿐입니다. 스크립트가 찾지 못했다고 해서 인용을 거짓으로 선언하지 마십시오. 각 ❌, 🚩, ⚠️ (사소하지 않은 경우)에 대해:

  1. WebSearch로 정확한 제목을 따옴표로 묶어 검색하고, "첫 번째 저자 + 연도 + 저널"도 검색합니다.
  2. 일반적인 위음성(거짓 인용이 아닌 경우)을 고려하십시오:
    • 서적, 장(chapter), 학위논문, 오래된 프로시딩 (@book, @phdthesis, @inproceedings): 색인이 잘못되었거나 재판 날짜로 색인될 수 있습니다. 짧은 제목(Fluid Mechanics)은 같은 이름의 다른 저작과 매칭될 수 있습니다.
    • 소프트웨어 및 데이터 (@misc, @software: FARGO3D, RADMC-3D, astropy…): ASCL, Zenodo 또는 GitHub에서 확인하고, 소프트웨어가 인용을 요청하는 출판물을 확인하십시오.
    • DOI가 없는 1990년 이전 논문: OpenAlex가 없더라도 ADS가 가지고 있을 수 있습니다.
    • 동일한 제목의 논문과 회의 버전 (예: Shakura & Sunyaev 1973, A&A 및 IAU Symp. 55): 데이터베이스가 다른 버전을 반환할 수 있습니다.
    • 아직 저널에 게재되지 않은 최근 프리프린트.
    • 단체 저자 또는 비라틴 문자 이름.
  3. "저자 순서" ⚠️의 경우, 키 (Casassus2025)와 본문의 \citet{}가 저작물을 첫 번째 저자가 아닌 사람에게 귀속시키는지 확인하십시오. 그렇다면 수정해야 합니다.
  4. 🚩의 경우, 공식 통지를 통해 철회를 확인하고 사용자에게 인용 위치를 알리십시오.
  5. 참고문헌별 최종 판정:
    • 실제 및 정확함;
    • 실제이나 데이터 수정 필요: 수정된 BibTeX 필드 제공;
    • 철회됨: 인용 위치를 알리고 대체 또는 맥락 제안;
    • 확인 불가: 검색했으나 나타나지 않음; 사용자에게 출처 요청;
    • 거짓: 증거가 있는 경우에만, 예: DOI 또는 권/페이지가 다른 논문에 속하고 해당 제목의 것이 존재하지 않음.

보고서 시작 부분에 "수동 검토(Revisión Manual)" 섹션을 추가하여 이러한 판정을 포함하십시오.

4. 주장 검증 (profundo 모드)

--tex 및 --contextos가 필요합니다. 컨텍스트 파일에는 인용된 각 참고문헌에 대해 논문의 초록과 .tex에서 해당 참고문헌을 인용하는 각 문장(파일:줄번호)이 포함됩니다. 각 사용에 대해:

  1. 문장이 주장하는 내용을 초록과 비교합니다. 뒷받침함, 일부 뒷받침함 (예: 논문이 다른 조건에서 또는 더 신중하게 보여줌), 뒷받침하지 않음, 또는 초록으로 확인 불가로 분류합니다.
  2. 확인 불가 및 뒷받침하지 않음의 경우, 전체 텍스트(arXiv 또는 보고서 PDF)를 열고 결론을 내리기 전에 구체적인 구절을 찾습니다. 논문의 섹션 또는 페이지를 인용합니다.
  3. 주장 자체를 판단하고 스타일은 판단하지 마십시오. 일반적인 인용(예: "...의 리뷰 참조")은 허용 가능한 것으로 표시합니다.
  4. 결과를 표 형식으로 보고서 끝에 작성합니다: 파일:줄번호 | 키 | 판정 | 논문 증거 | 제안. 뒷받침하지 않음을 먼저 정렬합니다.

많은 인용(약 60개 이상)이 있는 경우, 사용자에게 모두 검토할지 또는 우선순위를 정할지(자체 결과, 수치, 직접 비교를 뒷받침하는 인용 우선) 질문합니다.

5. 누락된 참고문헌 (huecos)

--huecos N은 사용자의 참고문헌 중 적어도 두 개가 인용한 논문 중 사용자가 인용하지 않은 것을 나열하며, 인용한 참고문헌 수로 정렬합니다. 모든 것이 적용되는 것은 아닙니다: 작업 주제와의 관련성에 따라 필터링하고(제목을 읽고, 필요하면 초록도 읽음), 고려할 가치가 있는 것만 그 이유와 함께 제시합니다.

6. 결과 전달

  • 링크(DOI · ADS · arXiv · PDF · ISBN)와 수동 검토가 포함된 Markdown 보고서. 사용자가 공유할 경우 Artifact로 게시할 것을 제안합니다.
  • 채팅에 요약: 확인된 수, 데이터 수정이 필요한 수, 철회된 수, 가짜 가능성이 있는 수와 그 이유, 심층 모드에서는 뒷받침되지 않은 주장의 수.
  • 사용자 허가 없이 .bib를 편집하지 마십시오. --parche는 별도 파일을 작성하며, ✅ 항목에 doi/eprint만 추가하고, 약어를 중괄호로 보호하며, --macros-aas와 함께 저널 약어(\apj, \aap, \mnras…; aas_macros.sty 또는 AASTeX 필요)를 사용합니다. 연도, 권, 페이지는 절대 변경하지 않습니다. 이러한 수정은 제안되고 사용자가 동의할 때만 적용됩니다. 원본을 교체하기 전에 diff를 보여줍니다.
  • 링크는 읽고 다운로드하기 위한 것입니다. 사용자가 명시적으로 요청하지 않는 한 PDF를 다운로드하지 마십시오. 그 경우 새롭고 빈 폴더에 저장하십시오.

주의사항

  • plainnat/aasjournals를 사용하면 제목이 소문자로 변환됩니다. 패치는 약어({PDS} 70, {ALMA}, {3D})를 보호하지만 고유 명사(Jupiter, Kepler)는 보호하지 않습니다: 확인하십시오.
  • BibTeX 파서는 최소 기능입니다: @string 또는 #을 사용한 연결을 해결하지 못합니다. .bib이 이를 사용하는 경우 경고하십시오.
  • ADS 링크는 자동화된 브라우저에 인간 확인을 요구합니다. Claude가 열기 위한 것이 아니라 사용자를 위한 것입니다.
  • 테스트: --selftest (네트워크 없음) 및 tests/regresion.py (네트워크 사용, 트릭 인용이 포함된 픽스처).

관련 스킬