{"id":50718391,"url":"https://github.com/jeongph/pdf-scan-audit","last_synced_at":"2026-06-09T21:03:09.338Z","repository":{"id":353924865,"uuid":"1221417025","full_name":"jeongph/pdf-scan-audit","owner":"jeongph","description":"스캔 PDF 품질 정밀 진단 - 페이지 누락·순서·회전·잘림·해상도 결함 검출 (Claude Code plugin)","archived":false,"fork":false,"pushed_at":"2026-04-26T08:15:08.000Z","size":20,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-26T10:08:35.386Z","etag":null,"topics":["book-scan","claude-code","claude-code-plugin","claude-plugin","ocr","pdf","pdf-audit","pdf-quality","pymupdf","scan"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeongph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-26T07:11:04.000Z","updated_at":"2026-04-26T08:15:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jeongph/pdf-scan-audit","commit_stats":null,"previous_names":["jeongph/pdf-scan-audit"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/jeongph/pdf-scan-audit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeongph%2Fpdf-scan-audit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeongph%2Fpdf-scan-audit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeongph%2Fpdf-scan-audit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeongph%2Fpdf-scan-audit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeongph","download_url":"https://codeload.github.com/jeongph/pdf-scan-audit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeongph%2Fpdf-scan-audit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34125332,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["book-scan","claude-code","claude-code-plugin","claude-plugin","ocr","pdf","pdf-audit","pdf-quality","pymupdf","scan"],"created_at":"2026-06-09T21:03:08.414Z","updated_at":"2026-06-09T21:03:09.322Z","avatar_url":"https://github.com/jeongph.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pdf-scan-audit\n\n\u003e 스캔 PDF 품질 정밀 진단 — 페이지 누락·순서·회전·잘림·해상도 결함을 자동 검출하고 표로 보고합니다.\n\n스캐너로 읽은 책이 한 권 들어왔을 때, 메타데이터만 훑지 말고 회전 의심·페이지번호 연속성·이미지 잘림까지 정밀하게 검사하는 Claude Code 플러그인입니다. 612페이지짜리 책도 5분 안에 진단하고, 의심 페이지만 골라 시각 검증한 뒤 가독성 좋은 표로 보고합니다.\n\n## 설치\n\n마켓플레이스 등록(최초 1회):\n\n```\n/plugin marketplace add jeongph/claude-plugins\n```\n\n플러그인 설치:\n\n```\n/plugin install pdf-scan-audit@jeongph-claude-plugins\n```\n\n## 사용 예\n\n자연어로 호출:\n\n```\n이 PDF 스캔 검사해줘\n스캐너로 읽은 책 한 권 점검해줘\nPDF 페이지 누락이나 회전 잘못된 거 있나 봐줘\n```\n\n슬래시 명령:\n\n```\n/audit-pdf book1.pdf\n/audit-pdf book1.pdf book2.pdf\n```\n\n## 검사 항목\n\n| 항목 | 설명 |\n|---|---|\n| 페이지 메타 | 페이지 크기 분포·회전 메타·portrait/landscape 방향 |\n| 해상도(DPI) | 페이지별 임베디드 이미지 기준 DPI 추정·일관성 |\n| 빈 페이지 | 이미지·텍스트 모두 거의 없는 페이지 검출 |\n| 회전 의심 | 텍스트 줄 종횡비로 추정. 의심 페이지는 시각 검증 |\n| 이미지 커버리지 | 이미지가 페이지 경계 밖으로 잘리거나 큰 여백이 한쪽으로 쏠림 |\n| 페이지번호 연속성 | 헤더/푸터에서 추출한 페이지번호 시퀀스의 갭 분석 |\n| OCR 오인식 vs 진짜 누락 | 갭 크기로 자동 분류 후 의심 구간만 시각 재검증 |\n\n## 작동 방식\n\n1. **의존성 확인** — `python3 -c \"import fitz\"` 체크. 없으면 `pip install pymupdf` 안내\n2. **임시 디렉토리** — `mktemp -d -t pdf-scan-audit-XXXXXX`. 작업 디렉토리는 손대지 않음\n3. **메타 검사** — 612페이지 한 번 순회로 크기·회전·DPI·빈페이지·이미지 통계 수집\n4. **콘텐츠 검사** — 텍스트 줄 bbox로 회전 의심, 이미지 bbox로 잘림 검출\n5. **페이지번호 분석** — 헤더/푸터 영역(상하단 10%)에서 숫자만 있는 줄 추출. 동적 추적으로 가장 그럴듯한 시퀀스 선택. PDF↔책 페이지 오프셋 자동 추정\n6. **의심 페이지 시각 검증** — 회전 의심·페이지번호 갭 양옆을 PNG로 추출해 Claude가 직접 보고 판정\n7. **표로 보고** — 검사 대상·핵심 결론·메타 검사·책 구조 매핑·시각 재검증·종합 진단·권장 사항 순\n8. **정리** — 임시 디렉토리 자동 삭제. `--keep` 옵션으로 보존 가능\n\n## 적용 대상\n\n- **메인 타겟**: 종이책을 스캐너로 읽은 PDF (Epson ScanSmart, ScanSnap, FineReader 등 출력)\n- **부분 적용**: 디지털 PDF — 회전·페이지 크기·페이지번호 연속성은 의미 있음. 빈 페이지·이미지 커버리지 등은 자동 스킵\n\n## 의존성\n\n- Python 3.8+\n- [PyMuPDF](https://pymupdf.readthedocs.io/) (`pip install pymupdf`)\n\n## 디렉토리 구조\n\n```\npdf-scan-audit/\n├── .claude-plugin/\n│   └── plugin.json\n├── skills/\n│   └── pdf-scan-audit/\n│       ├── SKILL.md\n│       ├── scripts/\n│       │   ├── inspect_meta.py\n│       │   ├── inspect_content.py\n│       │   ├── pagenum_check.py\n│       │   └── extract_pages.py\n│       └── references/\n│           ├── interpretation.md\n│           └── output-format.md\n├── commands/\n│   └── audit-pdf.md\n├── requirements.txt\n└── README.md\n```\n\n## 라이선스\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeongph%2Fpdf-scan-audit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeongph%2Fpdf-scan-audit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeongph%2Fpdf-scan-audit/lists"}