pdf (Anthropic)
PDF를 읽고 편집하고 병합·분할하고 워터마크와 OCR을 처리하며, PDF 양식을 작성하거나 만듭니다.
pdf 스킬 리뷰: 우리 과제에서는 향상이 없었고 비용은 두 배였습니다
Codex CLI · gpt-6-astra
20.6 / 30
스킬 없이 대비 향상폭: +0.00 · 상황에 따라 · 18회 실행
상황에 따라: 총점 20.6/30이 22점 미만, 향상폭 +0.00가 +1.0 미만. 추천이 되려면 총점 22/30, 출력 품질 3.5, 향상폭 +1.0이 필요합니다.
SOTA
통과Codex로 테스트
커버 대상 Codex, Claude Code
Codex CLI 0.166 (SOTA 티어): 채점된 실행 18회. 여기서 통과하면 티어 규칙에 따라 Claude Code도 커버되지만, 두 번째 티어에 대해서는 아무것도 말해주지 않습니다.
점수
각 차원은 0~5점이며 여섯 차원을 더하면 30점 만점의 총점이 됩니다. 모든 차원에서 5가 가장 좋습니다. 비용 5는 저렴하고 빠름, 설치 5는 쉬움을 뜻합니다.
- 트리거 신뢰도
- 5.0
- 스킬 없이 대비 향상폭
- 2.0
- 출력 품질
- 4.6
- 토큰 및 시간 비용
- 2.0
- 설치 및 이식성
- 3.0
- 안전성
- 4.0
보안 리뷰
안전정적 스캔: CRITICAL 0 / HIGH 0 / MEDIUM 0. 수동 검토: 네트워크가 차단된 샌드박스에서 실행 안전(발견 사항 없음). 스캔이 깨끗하다고 해서 스킬이 안전하다는 증거는 아닙니다.
설치
npx skills@latest add anthropics/skills --skill pdf
고정 커밋: ca45fc496a3436251f191354091d557da31c15b5
테스트일: 2026-11-02
테스트한 과제
- 표 추출 — 두 페이지에 걸친 12행 표(2페이지에 헤더 반복)를 sales.csv로 뽑아내고 총매출을 보고하세요.
- 병합, 회전, 분할 — PDF 두 개를 합치고 마지막 페이지만 90도 회전한 뒤, 첫 페이지를 cover.pdf로 저장하세요. 원본은 그대로 두세요.
- 양식 작성 — 채울 수 있는 PDF에서 필드 세 개를 설정하고 체크박스 하나를 선택하세요. 필드는 편집 가능한 상태로 유지하세요.
장점
- 스킬 이름을 언급하지 않았는데도 적용되었습니다. 스킬 사용군 실행 6/6회에서 스킬 파일을 읽었습니다(모든 PDF 과제에서 자동 트리거가 동작).
- 스킬 사용 시 높은 절대 품질: 4.58/5.
단점
- 스킬 없이보다 측정 가능한 향상 없음(+0.00, 노이즈 범위 안).
- 한 문장 프롬프트는 5.0점, 스킬 사용은 4.58점(-0.42).
- 스킬 없이보다 토큰을 1.98배 사용합니다.
- 테스트 참고: 한 문장 프롬프트군은 pypdf를 벤더링한 Windows 머신에서 나중에 실행했기 때문에, 대조군·스킬 사용군과의 비교는 환경 변수의 영향을 받습니다.
- 과제·그룹당 n=2이며, 약 1점 미만의 차이는 노이즈입니다.
리뷰
Codex CLI 0.166 (gpt-6-astra, low reasoning)을 사용했고, 실행마다 새 임시 프로젝트를 만들었습니다. 스킬 설치/미설치 두 그룹으로 나눠 그룹당 2회 실행했고 네트워크는 껐습니다. 입력은 우리가 직접 생성한 PDF였기 때문에 결과를 코드로 검증할 수 있었습니다. 프롬프트에는 스킬 이름을 언급하지 않았습니다.
3개 그룹 비교
| 그룹 | 평균 점수 (0-5) | 실행당 토큰 |
|---|---|---|
| 스킬 없음 | 4.58 | 116k |
| 한 문장 프롬프트 | 5.0 | 69k |
| 스킬 사용 | 4.58 | 228k |
Codex CLI에서 18회 실행해 측정했고, LLM 심사 없이 규칙 기반 검사로 채점했습니다. 총점 20.6 / 30, 판정 상황에 따라.
참고: 한 문장 프롬프트군은 pypdf가 벤더링된 Windows 머신에서 나중에 실행되어, 대조군·스킬 사용군과의 비교가 환경 변수의 영향을 받습니다.
판정: 상황에 따라 다름 (20.3 / 30). 출처: anthropics/skills, skills/pdf, 커밋 ca45fc4에 고정. 설치: npx skills@latest add anthropics/skills --skill pdf. 라이선스: 독점(사용은 Anthropic과 맺은 계약의 적용을 받습니다. 오픈 소스가 아닙니다).
어떤 스킬인가
PDF 작업을 위한 안내서입니다. 텍스트와 표 읽기 및 추출, 병합, 분할, 회전, 워터마크, 새 PDF 만들기, 양식 채우기, 암호화, 이미지 추출, 스캔 페이지 OCR을 다룹니다. SKILL.md는 Python 스니펫(pypdf, pdfplumber, reportlab)과 명령줄 도구(pdftotext, qpdf)로 기본을 설명합니다. 나머지 파일 두 개(forms.md, reference.md)와 도우미 스크립트 여덟 개가 양식과 경계 상자를 처리합니다.
테스트 방법
Codex CLI 0.166(gpt-6-astra, 낮은 추론)을 사용했고, 실행마다 새 임시 프로젝트를 만들었으며, 스킬을 설치한 경우와 설치하지 않은 경우로 나눠 각 군 2회씩 실행했습니다. 네트워크는 껐습니다. 입력은 우리가 생성한 PDF라서 결과를 코드로 확인할 수 있었습니다.
- 표 추출. 두 페이지에 걸친 12행 표(2페이지에 머리글 반복)를
sales.csv로 뽑고 총매출을 보고합니다. - 병합, 회전, 분할. PDF 두 개를 합치고, 마지막 페이지만 90도 회전하고, 첫 페이지를
cover.pdf로 저장하며, 원본은 그대로 둡니다. - 양식 채우기. 채울 수 있는 PDF에서 필드 세 개를 설정하고 체크박스 하나를 선택하며, 필드는 편집 가능하게 유지합니다.
프롬프트에는 스킬을 전혀 언급하지 않았습니다.
실제로 있었던 일
안정적으로 발동합니다. 에이전트는 프롬프트 없이 스킬 사용군 6회 실행 모두에서 SKILL.md를 읽었습니다.
결과에는 아무 차이가 없었습니다. 작업 1(검사 2개 중 2개)과 작업 2(6개 중 6개)는 스킬 사용 여부와 관계없이 각 작업의 네 실행 모두에서 통과했습니다. 작업 3은 각 군에서 한 번씩 실패해, 두 군 모두 전체 6회 중 5회를 통과했습니다.
두 실패는 같았고, 두 에이전트 모두 성공했다고 말했습니다. 체크박스는 시각적 상태가 /Off인 채로 텍스트 값 Yes로 저장됐습니다. PDF 뷰어에서는 선택되지 않은 것으로 보이는데도, 해당 두 실행의 마지막 메시지는 박스가 선택됐다고 했습니다. 한 실패는 대조군, 다른 하나는 스킬 사용군이었습니다. 스킬 사용 에이전트는 필드 유형을 살피고 각 체크박스의 checked_value를 쓰라고 알려 주는 FORMS.md를 읽었지만 거기까지 가지 못했으므로(다음 문단), 스킬이 오류를 막지 못했습니다.
스크립트는 문서대로 실행되지 않았습니다. FORMS.md는 python scripts/check_fillable_fields ...를 실행하라고 합니다. macOS에는 python이 없고 python3만 있으며, 기본 환경에는 pypdf도 없습니다. 그러자 스킬 사용군 두 실행이 갈라졌습니다. 하나는 디스크를 뒤져 사용자의 uv 캐시에서 pypdf를 찾아 PYTHONPATH로 스킬 자체 스크립트를 실행해 양식을 올바르게 채웠습니다. 다른 하나는 pip install을 시도했지만 오프라인이라 실패하자 Swift/PDFKit 프로그램을 작성해 체크박스를 틀렸습니다. 대조군도 같은 방식으로 임기응변했습니다(하나는 Swift, 다른 하나는 pypdf). 따라서 스킬의 도구는 프로젝트 디렉터리 밖에서 라이브러리를 빌려온 그 한 실행에서만 도움이 됐습니다.
비용이 두 배가 됩니다. 스킬 사용군은 평균 228,000토큰으로 스킬 없는 116,000토큰보다 많았고(1.98배), 72초 대 46초가 걸렸습니다. 에이전트는 스킬을 읽고, forms.md를 읽고, 스크립트를 먼저 시도합니다. 양식 작업에서 성공한 스킬 사용군 실행은 명령 35개와 434,000토큰이 필요했고, 대조군은 명령 16개와 약 185,000토큰이 필요했습니다.
이식성 관련 참고
SKILL.md는FORMS.md와REFERENCE.md를 가리키지만 실제 파일은forms.md와reference.md입니다. macOS 파일 시스템은 대소문자를 구분하지 않아 우리 실행에서는 동작했지만, Linux에서는 그 링크가 깨집니다.python과 여러 Python 라이브러리가 설치되어 있다고 가정합니다. 깨끗한 머신에는 보통 둘 다 없습니다.- 안내서는 OCR을 위해
pip install pytesseract pdf2image를 언급하는데, 이는 네트워크 접근이 필요합니다.
안전성 검토
스캐너를 실행한 뒤 SKILL.md, forms.md, reference.md와 스크립트 여덟 개를 모두 읽었습니다. 스크립트는 표준 라이브러리 모듈과 pypdf, pdfplumber, pdf2image, PIL만 가져오며, 입력 파일을 읽고 로컬 파일을 씁니다. 서브프로세스 호출, 소켓, 환경 변수 읽기, eval, 다운로드는 없습니다. 무언가를 숨기거나 자격 증명을 건드리라는 지시도 없습니다. 짚고 넘어갈 점은 라이선스입니다. 독점 소프트웨어이므로 사이트에서 오픈 소스라고 표기해서는 안 됩니다. security.md를 참조하세요.
점수
| 항목 | 점수 | 이유 |
|---|---|---|
| 출력 품질 | 4.33 | 두 군 모두 6회 중 5회 완전히 정확 |
| 스킬 없음 대비 향상 | 2.0 | 차이 0.0 |
| 발동 | 5.0 | 프롬프트 없이 6회 중 6회 읽힘 |
| 지시와 이식성 | 3 |
|
| 효율 | 2 | 토큰 1.98배, 시간 약 1.6배 |
| 안전과 위생 | 4 | 스크립트는 깨끗함. 독점 라이선스 |
누가 쓰면 좋을까
우리 대조군이 보여 주었듯 최신 에이전트는 깨끗한 PDF에서 병합, 회전, 분할, 표 추출을 도움 없이 이미 해냅니다. 따라서 이런 작업에서는 스킬이 대개 토큰만 더합니다. 우리가 테스트하지 않은 더 어려운 경우에는 값어치를 할 수 있습니다. 스캔 문서와 OCR, 암호로 보호된 파일, 채울 수 있는 필드가 없는 양식(경계 상자 워크플로), 또는 도우미 라이브러리가 설치되어 스크립트가 동작하는 환경. 설치한다면 python과 pypdf가 먼저 있는지 확인하세요. 그렇지 않으면 안내서가 적힌 대로 실행되지 않습니다.
이 테스트의 한계
군당 2회 실행, 작업 세 개, 낮은 추론 강도의 모델 하나, 기본 환경에 Python PDF 라이브러리가 없는 오프라인 샌드박스. 실행들이 시스템 임시 폴더를 공유했고, 스킬 사용군 한 실행이 다른 실행이 그곳에 만든 가상 환경을 재사용해 실행 간 격리가 완벽하지 않았습니다. 완비된 머신이라면 결과가 스킬에 유리하게 바뀔 수 있습니다. 사이트 규칙에 따라 Codex 티어는 Codex와 Claude Code에 적용됩니다.
업데이트(2026년 11월 2일): 한 문장 프롬프트군 추가
세 번째 군: 스킬 없이 한 문장만 추가("적절한 PDF 도구를 사용하세요. 표는 페이지별로 머리글 행을 유지한 채 추출하고, 페이지를 병합/회전/분할할 때 내용을 잃지 말고, 실제 양식 필드는 이름으로 채우되 원본 파일은 그대로 두고, 출력을 다시 열어 확인하세요."). 6회 실행, 규칙 기반 검사, 오프라인에서 사용 가능한 pypdf/pdfplumber 세트를 준비한 Windows 머신에서 실행했습니다.
| 군 | 평균 점수(0-5) | 실행당 토큰 |
|---|---|---|
| 스킬 없음 | 4.58 | 116k |
| 한 문장 | 5.00 | 69k |
| 스킬 설치 | 4.58 | 228k |
한 문장 프롬프트 6회 실행은 모두 모든 검사를 통과했고, 대조군과 스킬 군에서 각각 한 번씩 실패했던 체크박스 양식 채우기도 통과했습니다. 스킬은 한 문장 프롬프트 토큰의 3.3배를 썼습니다. 주의: 한 문장 프롬프트 실행은 처음 두 군(macOS)과 다른 머신(Windows)에서 돌았고 PDF 라이브러리가 있었는데 Mac 실행에는 없었으므로, 이 비교는 환경에 의해 교란되어 있습니다. 그래도 이 세 작업에서 스킬의 2배 토큰 오버헤드가 아무것도 사지 못한다는 점은 시사합니다.
트랜스크립트
실행 로그: pdf (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) 열: 작업, 그룹-회차, 점수(0-5), 토큰, 초, 통과한 검사, 에이전트가 연 스킬 파일. t1-table-extract control-1: 점수 5.0, 토큰 60651, 초 25.2, 검사 2/2, 연 파일 없음 t1-table-extract control-2: 점수 5.0, 토큰 60785, 초 24.8, 검사 2/2, 연 파일 없음 t1-table-extract oneliner-1: 점수 5.0, 토큰 90438, 초 33.9, 검사 2/2, 연 파일 없음 t1-table-extract oneliner-2: 점수 5.0, 토큰 91726, 초 41.4, 검사 2/2, 연 파일 없음 t1-table-extract treatment-1: 점수 5.0, 토큰 123259, 초 43.4, 검사 2/2, 연 파일 pdf t1-table-extract treatment-2: 점수 5.0, 토큰 128381, 초 38.7, 검사 2/2, 연 파일 pdf t2-merge-rotate control-1: 점수 5.0, 토큰 91967, 초 56.9, 검사 6/6, 연 파일 없음 t2-merge-rotate control-2: 점수 5.0, 토큰 108232, 초 45.9, 검사 6/6, 연 파일 없음 t2-merge-rotate oneliner-1: 점수 5.0, 토큰 49185, 초 27.4, 검사 6/6, 연 파일 없음
18회 실행, 아티팩트 3개
샘플 출력
SOTA · With the skill: sales.csv (t1-table-extract, run 1, Codex)
Product,Region,Units,Revenue Aurora Lamp,EMEA,1240,48360 Basalt Desk,NA,310,93000 Cedar Shelf,NA,875,52500 Delta Chair,APAC,642,70620 Ember Kettle,EMEA,2210,66300 Fjord Rug,NA,198,39600 Grove Planter,APAC,1534,30680 Harbor Clock,EMEA,420,25200 Iris Vase,NA,905,27150 Juniper Stool,APAC,377,20735 Kestrel Mirror,EMEA,260,41600 Lumen Sconce,NA,733,43980