From qe-framework
Converts documents between MD, DOCX, PDF, PPTX, and HTML formats using Quick Mode (single tool) or Heavy Mode (multi-tool orchestration for best quality).
How this skill is triggered — by the user, by Claude, or both
Slash command
/qe-framework:Qdoc-converterThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This is the **single entry point** for all document format conversions. It orchestrates Qdocx, Qpdf, Qpptx, and Qxlsx behind the scenes. Use this skill when you need format conversion; use the individual skills (Qdocx, Qpdf, etc.) only for format-specific creation/editing.
This is the single entry point for all document format conversions. It orchestrates Qdocx, Qpdf, Qpptx, and Qxlsx behind the scenes. Use this skill when you need format conversion; use the individual skills (Qdocx, Qpdf, etc.) only for format-specific creation/editing.
When creating new documents, use the HTML-first + interactive collaboration approach. Instead of producing a finished document in one go, communicate with the user at each stage.
Phase 1: Structure Agreement → Present outline/structure → User feedback → Finalize
Phase 2: Section-by-Section → Write one section at a time → User confirmation → Next section
Phase 3: Visual Completion → HTML styling → Fine-tune with Agentation
Phase 4: Conversion → HTML → Final format (DOCX, PDF, PPTX)
After all sections are written:
/Qfrontend-design principles)npx agentation, click elements to adjustmmdc → insert as <img>Design reference: /Qfrontend-design reference docs (typography.md, color-and-contrast.md, spatial-design.md).
wkhtmltopdf --enable-local-file-access output.html output.pdf # HTML → PDF
pandoc output.html -o output.docx # HTML → DOCX
google-chrome --headless --print-to-pdf=output.pdf output.html # CSS-perfect PDF
| Mode | Speed | Quality | Use Case |
|---|---|---|---|
| Quick (default) | Fast | Good | Drafts, simple documents |
| Heavy | Slow | Best | Final deliverables, complex layouts |
| Input → Output | Quick Mode Tool | Heavy Mode Tool |
|---|---|---|
| PDF → MD | pymupdf4llm | pymupdf4llm + markitdown |
| DOCX → MD | pandoc | pandoc + markitdown |
| PPTX → MD | markitdown | markitdown + pandoc |
| MD → DOCX | pandoc | pandoc (--reference-doc) |
| MD → PDF | pandoc | pandoc (via LaTeX or wkhtmltopdf) |
| MD → HTML | pandoc | pandoc (--standalone) |
| DOCX → PDF | LibreOffice | LibreOffice |
| HTML → PDF | wkhtmltopdf | wkhtmltopdf |
# MD → DOCX
pandoc input.md -o output.docx
pandoc input.md --reference-doc=template.docx -o output.docx # with template
pandoc input.md --toc -o output.docx # with TOC
# MD → PDF
pandoc input.md -o output.pdf --pdf-engine=xelatex
pandoc input.md -o output.pdf --pdf-engine=xelatex \
-V mainfont="Noto Sans CJK KR" -V geometry:margin=2.5cm # CJK support
# MD → HTML
pandoc input.md -o output.html --standalone --css=style.css
# DOCX → MD
pandoc document.docx -o output.md --extract-media=./media
pandoc --track-changes=all document.docx -o output.md # with tracked changes
# PDF → MD (pymupdf4llm)
python3 -c "import pymupdf4llm; open('output.md','w').write(pymupdf4llm.to_markdown('document.pdf'))"
# PDF → MD (markitdown)
markitdown document.pdf > output.md
# DOCX → PDF
soffice --headless --convert-to pdf document.docx
# PPTX → MD
markitdown presentation.pptx > output.md
Runs multiple tools in parallel and selects the best result per segment.
1. Parallel execution → Run all tools for the format simultaneously
2. Segment analysis → Classify output by tables/headings/images/paragraphs
3. Quality scoring → Score based on completeness and structure
4. Intelligent merge → Select best version per segment
| Segment | Criteria |
|---|---|
| Tables | More rows/columns, header separator present |
| Images | Has alt text, prefers local paths |
| Headings | Correct hierarchy, appropriate length |
| Lists | More items, nested structure preserved |
| Paragraphs | Content completeness |
import pymupdf
doc = pymupdf.open("document.pdf")
for page_num, page in enumerate(doc):
for img_idx, img in enumerate(page.get_images(full=True)):
xref = img[0]
base_image = doc.extract_image(xref)
with open(f"image_p{page_num}_{img_idx}.{base_image['ext']}", "wb") as f:
f.write(base_image["image"])
pdfimages -j document.pdf ./assets/img # CLI alternative
# Create DOCX reference template
pandoc --print-default-data-file reference.docx > template.docx
# Edit styles in Word, then apply:
pandoc input.md --reference-doc=template.docx -o styled.docx
# PDF style via LaTeX
pandoc input.md -o output.pdf --pdf-engine=xelatex \
-V geometry:margin=2.5cm -V fontsize=11pt \
-V mainfont="Noto Sans CJK KR" -V colorlinks=true
| Tool | Install | Purpose |
|---|---|---|
| pandoc | brew install pandoc | General-purpose conversion engine |
| pymupdf4llm | pip install pymupdf4llm | PDF→MD (LLM-optimized) |
| markitdown | pip install markitdown | Office→MD (Microsoft) |
| LibreOffice | brew install --cask libreoffice | DOCX→PDF |
| wkhtmltopdf | brew install wkhtmltopdf | HTML→PDF |
| XeLaTeX | brew install --cask mactex | MD→PDF (high quality) |
mainfont for CJK documentsnpx claudepluginhub inho-team/qe-framework --plugin qe-frameworkCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.