내가 예전에 봇이랑 만든 스킬 중에 pubmed-to-zotero-curated라는 게 있었다.
Pubmed, consensus에서 검색해서 좋은 걸 골라 Zotero에 등록하는 전체 흐름용으로 만든 스킬이다. 그런데 이 스킬을 명시적으로 지목해서 깨우려고 프롬프트를 짰는데도, AI는 따로 있던 단순 검색 스킬(pubmed-quick-search)만 불러오고 끝났다. 원인은 두 스킬 description이 모두 "PubMed 검색" 키워드 를 강하게 가졌고, "이 스킬은 큐레이션·등록까지 한다"는 차별 키워드가 한국어 트리거에 약해서였다. AI 입장에서는 "검색"만 보였다.
두 스킬을 따로 두지 말고 스킬을 합치기로 했다. 실제 내 워크플로 자체가 "찾아서 → 좋은 거 등록"인데 굳이 두 스킬로 갈라 둘 이유가 없었다. pubmed-literature-curation 한 스킬로 2-phase 구조를 명시하였다.
★ AI가 단정한 결론을 의심한 순간
오늘 작업에서 가장 중요한 장면. 따로 빼둔다. PubMed 논문의 고유번호 PMID를 Zotero 어디에 박을지에서 Claude가 단정했다.
Zotero 데이터 구조에 PMID 표준 필드는 없다. extra(보조 메모) 칸 안에 PMID: ***** 로 박는 게 표준이다.
phd phd phd phd phd ph라는 단어가 적힌 백서
위의 사진이 그 결과물. PMID field가 없다고 생각해서 PMID랑 같이 큐레이션 노트를 같이 Extra field에 넣어버림.
나는 의심했다. "정말 안 돼요? 아까 같이 보낸 공식 홈페이지에서는 뭐라고 했어요? 두 링크 한 번 더 보세요."
Claude는 잘못 인정하고 표준 필드로 매핑을 바꿨다. PMID는 PMID 칸으로, PubMed 링크는 url 칸으로, extra의 중복 줄은 제거. 중복 탐지도 "표준 PMID 우선, 없으면 옛 표기 확인"으로 보강.
여기서 배운 한 줄.
AI가 처음 들춘 도구가 보여주는 세계 ≠ 진짜 데이터 구조. 도구의 시야가 어디까지인지를 사용자가 의심해야 한다. AI가 제대로 코딩하게 하려면 최신, 공식 지식을 먹여줘야 한다.
Zotero 필드 매핑 디버깅
핵심 장면 외에도 다듬을 곳이 더 있었다.
필드 누락: 밑의 예시 사진을 보면, 빈칸이 많은 걸 볼 수 있다. (스크립트 수정 전에 만들어진 결과물임).
나머지 칸도 채우기 위해, PubMed 응답에서 6개 필드만 뽑던 것을 11개 필드까지 허용으로 확장하였다.
도서관의 인용 페이지 스크린샷
최종 구현 후 헤르메스 에이전트에게 물어봄
PMID 41273266 논문 이거도 혹시 pubmed에서 찾은담에 zotero field update 해줄수있어?
아이폰의 중국 앱 스크린샷
스킬 잘 쓰는 것 확인!
다음 단어가 포함된 한국어 문자 메시지
실제 조테로 데스크탑 프로그램에서도 위에보다 필드가 채워진 것 확인하였다. PMID도 잘 들어감.
작업 요약 및 향후 계획
오늘 작업 전에는 내가 Zotero에 등록한 항목 카드를 열면 제목·저널·연도·DOI 정도만 차 있고, 정작 내가 큐레이션할 때 보고 싶은 정보 — 저자, 권/호/페이지, 초록, PMID, 그리고 내가 왜 이 논문을 담았는지 적어둔 Curation note(Extra 칸) — 가 다 비어 있었다. Zotero를 열 때마다 "이거 누구 논문이지, 왜 담았더라" 한 번 더 찾아봐야 했다.
한번 정리하고 났더니, 한 번의 자연어 요청으로 그 칸들이 다 채워진 상태로 들어간다. PMID는 Zotero가 인정하는 표준 칸에, PubMed 링크는 url 칸에, 내 메모는 Extra(Curation note)에 깔끔히 분리되어 박힌다.
→ (card.md / body.md / references.yaml 한 세트) (파일 구성은 좀더 고민중. 메타데이터 파일, 풀텍스트, 서지 정보 정도로 고민중. pdf에서 직접 서지 정보 뽑았을때의 퀄리티가 맘에 안들어서, 이건 그냥 cross ref나 pubmed 등에서 뽑아오라고 할 예정).