Communitygithub.com

jtepe/slopclub

PDF 파일을 읽고 검색, 텍스트 추출, 이미지 렌더링 등을 수행하는 에이전트 도구입니다.

slopclub란 무엇인가요?

이 스킬은 PDF 문서 작업을 위한 경량 CLI 도구 모음으로, 특히 대규모 PDF에서 정보를 효율적으로 추출하고 검색해야 하는 AI 에이전트(예: Claude Code, Cursor, Codex)를 위해 설계되었습니다. `pdfread.py` 도구를 통해 페이지 요약, 키워드 검색, 이미지 추출, 페이지 렌더링 등의 기능을 제공합니다. 주요 특징으로는 FTS5 기반의 빠른 검색 기능과 안정적인 이미지 ID(에이전트 간 공유 가능)가 있습니다. uv 또는 Python 3.10+에서 실행 가능하며, 대용량 PDF 처리 시 하위 에이전트(subagent)를 활용한 컨텍스트 분할 전략을 권장합니다. OCR은 제공하지 않으므로 텍스트 레이어가 없는 페이지는 이미지로 처리해야 합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add jtepe/slopclub

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

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

문서

이 파일과 같은 디렉토리에 있는 pdfread.py 도구를 사용하여 PDF를 읽으세요. 다음 두 가지 방법 중 하나로 실행할 수 있습니다.

  • uv 0.11+ 사용 (권장): pdfread.py를 직접 호출하세요. 셔뱅이 uv run을 통해 실행하며, 첫 번째 호출 시 종속성을 다운로드하므로 시간이 걸릴 수 있습니다.
  • uv 없음: python3 pdfread.py …는 pymupdf4llm>=0.0.17이 설치된 Python 3.10+에서 작동합니다 (pip install pymupdf4llm).

search 명령은 FTS5가 포함된 SQLite가 필요합니다. uv 관리 및 거의 모든 최신 시스템 Python에 포함되어 있으며, 그렇지 않은 경우 스크립트가 명확하게 오류를 표시합니다.

전체 사용법은 pdfread.py --help를 실행하세요. 간략히 설명하면 다음과 같습니다.

  • pdfread.py info FILE - 페이지 수, 메타데이터, 개요/TOC. 여기서 시작하세요.
  • pdfread.py search FILE "용어" - 키워드가 언급된 페이지를 BM25 순위로 표시하며, 히트당 스니펫을 제공합니다. 첫 번째 검색은 캐시된 인덱스를 구축하는 데 몇 초가 걸리며, 이후 검색은 즉시 수행됩니다. 용어는 AND로 결합되며, term*는 접두사 일치, --raw는 전체 FTS5 문법("정확한 구", OR, NEAR)을 사용할 수 있습니다. 텍스트 레이어만 검색되며, 스캔된 페이지는 검색되지 않습니다.
  • pdfread.py text FILE --pages 10-25 - 1부터 시작하는 페이지 범위에 대한 마크다운 텍스트입니다. 그림은 [image: p12-img2 640x480px] 자리 표시자로 나타납니다.
  • pdfread.py image FILE p12-img2 - 해당 그림을 PNG로 저장하고 경로를 출력합니다. 파일 읽기 도구로 확인하세요.
  • pdfread.py images FILE --pages 12 - 페이지의 그림 ID를 나열합니다.
  • pdfread.py render FILE 7 - 전체 페이지(또는 --rect x0,y0,x1,y1로 자른 영역)를 PNG로 렌더링합니다. 스캔된 페이지나 텍스트 레이어가 없는 모든 항목에 대한 대체 방법입니다.

대용량 PDF의 컨텍스트 유지

정밀한 질문("계약서에서 해지 수수료는 어디에 언급되어 있나요?")의 경우 먼저 search를 실행하고 text --pages로 히트 페이지만 읽으세요. 하위 에이전트 팬아웃이 필요하지 않습니다. 인덱스 캐시는 공유되므로 하위 에이전트도 인덱스를 다시 구축하지 않고 search를 사용할 수 있습니다.

광범위한 종합 작업의 경우 전체 문서를 메인 대화에 덤프하지 마세요. 대신:

  1. info를 실행하여 페이지 수와 개요를 얻고 문서를 적절한 범위(장별 또는 약 15~25페이지)로 분할합니다.
  2. 범위별로 하위 에이전트를 생성하고 다음과 같은 지침을 제공합니다: "<경로>/pdfread.py text <파일> --pages 10-25를 실행하고 <사용자의 질문>에 답변 / 최대 N단어로 요약합니다. [image: ...] 자리 표시자가 관련 있어 보이면 image 명령으로 추출하여 확인합니다."
  3. 메인 대화에는 요약/답변만 유지하고 이를 바탕으로 종합합니다. 요약에 답변이 있다고 표시되는 경우에만 특정 페이지를 직접 다시 타겟팅하세요.

참고 사항

  • OCR은 없습니다. 텍스트 레이어가 없는 페이지는 전체 페이지 [image: ...] 자리 표시자(또는 "추출 가능한 텍스트 없음" 메모)로 반환됩니다. 추출하거나 render한 후 시각적으로 읽으세요.
  • 추출은 결정적입니다. 이미지 ID는 실행 간에 안정적이므로 하위 에이전트가 보고한 ID를 메인 대화에서 나중에 추출할 수 있습니다.

관련 스킬