moonshotnote-ocr
Extract and verify OCR text from images, screenshots, scanned pages, PDFs, Korean or mixed Korean-English UI captures, receipts, signs, ebook captures…
Skill by munlucky
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/munlucky-moonshotnote-ocr
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, design, productivity, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/moonshotnote-ocr
What's inside
- Skill name
moonshotnote-ocr- Description
- Extract and verify OCR text from images, screenshots, scanned pages, PDFs, Korean or mixed Korean-English UI captures, receipts, signs, ebook captures, document images, tables, and layout-heavy captures. Use Firecrawl pdf-inspector first for PDF inputs to rapidly classify document types (text_based, scanned, image_based, mixed) and extract native Markdown text in milliseconds without running expensive OCR engines; use PaddleOCR first for normal screenshots and Korean image OCR; use page-mode auto for ebook pages; use optional PP-StructureV3 when available for table pages; use Surya when document layout, reading order, formulas, or complex markdown reconstruction matter. Use the low-confidence review workflow when OCR output contains [unclear], suspicious lines, or low confidence scores, so Codex checks image evidence before closing.
- License
- MIT
- Instructions
- 179 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (31)
- SKILL.md
- openai.yaml · agents/
- doctor.py · scripts/
- ocr_image.py · scripts/
- __init__.py · scripts/ocr_pipeline/
- __init__.py · scripts/ocr_pipeline/classifiers/
- page_type.py · scripts/ocr_pipeline/classifiers/
- __init__.py · scripts/ocr_pipeline/engines/
- paddle.py · scripts/ocr_pipeline/engines/
- pdf_inspector.py · scripts/ocr_pipeline/engines/
- pp_structure.py · scripts/ocr_pipeline/engines/
- surya.py · scripts/ocr_pipeline/engines/
- models.py · scripts/ocr_pipeline/
- output.py · scripts/ocr_pipeline/
- __init__.py · scripts/ocr_pipeline/postprocess/
- columns.py · scripts/ocr_pipeline/postprocess/
- paragraphs.py · scripts/ocr_pipeline/postprocess/
- tables.py · scripts/ocr_pipeline/postprocess/
- router.py · scripts/ocr_pipeline/
- utils.py · scripts/ocr_pipeline/
- requirements-pdf.txt · scripts/
- requirements-structure.txt · scripts/
- requirements-surya.txt · scripts/
- requirements.txt · scripts/
- review_low_confidence.py · scripts/
- setup.ps1 · scripts/
- setup.sh · scripts/
- test_canonical_schema.py · tests/
- test_page_type.py · tests/
- test_pdf_inspector.py · tests/
- test_review_compatibility.py · tests/
SKILL.md (first lines)
# moonshotnote-ocr
Use this skill to extract reliable OCR and text content from PDF documents, image files, and scanned page images.
## Engine Choice
- Use `pdf-inspector` (Firecrawl) first for PDF document inputs. It rapidly classifies PDFs (`text_based`, `scanned`, `image_based`, `mixed`) and directly extracts structured Markdown for native text PDFs in milliseconds (0ms OCR compute cost).
- When a PDF is `scanned` or `image_based` (or for scanned pages in `mixed` PDFs), selective routing automatically directs scanned pages to PaddleOCR, PP-StructureV3, or Surya.
- Use PaddleOCR first for normal screenshots, UI captures, receipts, signs, mobile captures, Korean text, and mixed Korean-English text.
- Use `--page-mode auto` for ebook captures so PaddleOCR boxes can classify `plain-text`, `table`, `multi-column`, `layout`, or `unknown`.
- Use optional PP-StructureV3 only when `doctor.py` reports `optional_capabilities.pp_structure.available=true`; it is intended for table/layout parsing and may be unavailable on a local runtime.
- Use Surya when the input is a document page where layout, reading order, section headers, formulas, or markdown reconstruction matter.
- Use `--engine paddle` when the task must avoid Surya runtime use.
## Output Policy
Default output is intentionally minimal:
- plain text: `<stem>.<engine>.txt`
When `--out` is not provided, save under the source location: `<input-dir>/ocr-output/<requested-engine>/`.
Use optional evidence outputs only when needed:
- `--json`: write `<stem>.<engine>.json` with boxes, confidence, warnings, and low-confidence lines
- `--md`: write `<stem>.<engine>.md` for human review
- `--summary`: write `batch_summary.json` for batch audit
- `--all`: write txt, json, md, and batch summary
Preserve original text. Do not translate Korean unless the user asks for translation. Mark unreadable or suspicious text as `[unclear]` rather than inventing content.
Structured JSON fields are additive. Existing consumers can keep reading `engine`, `input`, `text`, `items`, `warnings`, and `low_confidence`. New outputs may also include `requested_engine`, `fallback_used`, `fallback_reason`, `page_type`, `page_type_confidence`, `runtime_metadata`, and `structured`.
## Low-confidence Review
Do not treat a low-confidence count as a final result by itself.
When OCR output has `[unclear]`, low-confidence lines, suspicious mixed Korean/English text, table noise, code noise, or visible OCR artifacts:
1. Generate evidence outputs with `--json` or `--all`.
2. Build a review pack:
```powershell
$ocrPython = "$HOME\.moonshot-relay\runtimes\moonshotnote-ocr-py312\Scripts\python.exe"
& $ocrPython scripts/review_low_confidence.py C:\path\to\ocr-output\paddle --threshold 0.75
```
3. Inspect the generated crop images/contact sheets against the original page images.
4. Update `low_confidence_manifest.json` item statuses:
- `accepted`: OCR text is good enough
- `corrected`: `review_text` contains the corrected text
- `unreadable`: source image is not legible enough to recover
- `ignored`: non-content chrome, page number, watermark, decoration, or irrelevant table artifact
5. Do not close the task while any item remains `needs_review` unless the user explicitly accepts that risk.
If there are many low-confidence items, prioritize content-bearing body text, headings, code, table labels, and commands first. Page numbers, viewer chrome, watermarks, tiny benchmark internals, and decorative glyphs can be marked `ignored` after visual confirmation.
## Commands
Run setup once on Windows:
```powershell
powershell -ExecutionPolicy Bypass -File scripts/setup.ps1
```
Default setup installs the PaddleOCR core runtime only. Install optional dependencies only when needed:
```powershell
powershell -ExecutionPolicy Bypass -File scripts/setup.ps1 -InstallPdf
powershell -ExecutionPolicy Bypass -File scripts/setup.ps1 -InstallStructure
powershell -ExecutionPolicy Bypass -File scripts/setup.ps1 -InstallSurya
powershell -ExecutionPolicy Bypass -File scripts/setup.ps1 -InstallAll
```
By default, setup creates a shared runtime at `%MOONSHOT_RELAY_HOME%\runtimes\moonshotnote-ocr-py312`, or `%USERPROFILE%\.moonshot-relay\runtimes\moonshotnote-ocr-py312` when `MOONSHOT_RELAY_HOME` is unset. Set `MOONSHOTNOTE_OCR_RUNTIME` or pass `-RuntimePath` only when a custom shared runtime location is required.
Run setup once on macOS Apple Silicon or Linux:
```bash
bash scripts/setup.sh
```
On macOS Apple Silicon, keep the default setup path for PaddleOCR first. Optional dependencies can be requested explicitly:
```bash
bash scripts/setup.sh --with-pdf
bash scripts/setup.sh --with-structure
bash scripts/setup.sh --with-surya
bash scripts/setup.sh --with-all
```
macOS Intel x86_64 is not supported by the pinned PaddlePaddle runtime.
Check the local runtime:
```powershell
$ocrPython = "$HOME\.moonshot-relay\runtimes\moonshotnote-ocr-py312\Scripts\python.exe"
& $ocrPython scripts/doctor.py
```
On macOS/Linux:
```bash
OCR_PYTHON="${MOONSHOT_RELAY_HOME:-$HOME/.moonshot-relay}/runtimes/moonshotnote-ocr-py312/bin/python"
"$OCR_PYTHON" scripts/doctor.py
```
Inspect and extract text from a PDF file using Firecrawl `pdf-inspector`:
```powershell
$ocrPython = "$HOME\.moonshot-relay\runtimes\moonshotnote-ocr-py312\Scripts\python.exe"
& $ocrPython scripts/ocr_image.py C:\path\to\document.pdf --engine pdf-inspector --json --md
```
OCR an image with PaddleOCR Korean mode:
```powershell
$ocrPython = "$HOME\.moonshot-relay\runtimes\moonshotnote-ocr-py312\Scripts\python.exe"
& $ocrPython scripts/ocr_image.py C:\path\to\screenshot.png --engine paddle --lang koreanFrom munlucky/moonshotnote-skills, MIT.
More from munlucky/moonshotnote-skills
- 0.525score
text-knowledge-skill-builder
munlucky
Convert long source text, notes, transcripts, exported documents, manuals, or verified text files into public-safe Codex skills backed by structured…
SkillBFreshness: BClaude Code +9 - 0.479score
modern-java-in-action
munlucky
Modern Java study assistant backed by a public-safe graph extracted from private OCR-derived notes.
SkillCFreshness: CClaude Code +9 - 0.479score
backend-architecture
munlucky
Registry-driven backend architecture meta-skill backed by a public-safe ontology distilled from FastAPI clean architecture, Spring modern API, Python…
SkillCFreshness: CClaude Code +9 - 0.479score
codebase-understanding
munlucky
Build and use a lightweight, queryable codebase knowledge graph for unfamiliar repositories.
SkillCFreshness: CClaude Code +9 - 0.479score
fastapi-clean-architecture
munlucky
FastAPI and clean architecture study assistant backed by a public-safe ontology and knowledge graph extracted from verified OCR notes.
SkillCFreshness: CClaude Code +9 - 0.479score
moonshot-research
munlucky
Maximum-saturation public-web research workflow for Codex.
SkillCFreshness: CClaude Code +9 - 0.479score
python-architecture-patterns
munlucky
Use when Codex needs to explain or connect Python-oriented software architecture patterns from a public-safe knowledge graph covering API design, data…
SkillCFreshness: CClaude Code +9 - 0.479score
spring-modern-api
munlucky
Spring 6 and Spring Boot 3 modern API development study assistant backed by a public-safe ontology and knowledge graph extracted from private OCR-derived notes.
SkillCFreshness: CClaude Code +9 - 0.479score
tidy-first
munlucky
Tidy First study and engineering-decision assistant backed by a public-safe ontology and knowledge graph extracted from private OCR-derived notes.
SkillCFreshness: CClaude Code +9 - 0.476score
domain-driven-design-first-steps
munlucky
Use this public-safe Korean study skill for Domain-Driven Design first-step questions about subdomains, ubiquitous language, bounded contexts, context maps…
SkillCFreshness: CClaude Code +9 - 0.474score
teddynote-langchain-rag
munlucky
Use this skill for public-safe reasoning about RAG and LangChain pipelines, document loading, splitting, embedding, vector stores, retrievers, prompts…
SkillCFreshness: CClaude Code +9 - 0.470score
daily-webnovel-writing-knowledge
munlucky
Use this skill for Korean webnovel writing planning, serialization strategy, genre-market fit, character design, episode structure, readability, cliffhangers…
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 7, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/munlucky/moonshotnote-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from munlucky
- 0.556score
moon-relay-kernel
munlucky
Default provider-neutral command-skill entrypoint for Moon Relay Kernel task routing and adaptive workflow execution.
SkillAFreshness: AClaude Code +9 - 0.525score
text-knowledge-skill-builder
munlucky
Convert long source text, notes, transcripts, exported documents, manuals, or verified text files into public-safe Codex skills backed by structured…
SkillBFreshness: BClaude Code +9 - 0.521score
codebase-master-guide
munlucky
코드베이스 전수 분석 및 인터랙티브 개발자 가이드(슬라이드북) 제작 스킬.
SkillBFreshness: BClaude Code +9 - 0.513score
architecture-artifacts
munlucky
Produce architecture artifacts and a provenance-bound Task Contract Seed before Kernel execution.
SkillBFreshness: BClaude Code +9 - 0.513score
codebase-understanding
munlucky
Build and query the regenerable account-root Code Index for the current Kernel project.
SkillBFreshness: BClaude Code +9 - 0.479score
modern-java-in-action
munlucky
Modern Java study assistant backed by a public-safe graph extracted from private OCR-derived notes.
SkillCFreshness: CClaude Code +9
Cite this page
moonshotnote-ocr skill. Agent Mart. https://agentmart.dev/skills/munlucky-moonshotnote-ocr (last updated 2026-10-24)