MarkItDown Intake
Use the repo wrapper so conversion stays local, repeatable, and bounded:
python3 system/scripts/markdown_intake.py "<input-file>" --output "<output-file>.md"
Workflow
- Preserve the source file. Accept local files only; never pass an untrusted
URL or enable remote fetching.
- Run
python3 system/scripts/markdown_intake.py --check. If MarkItDown is
unavailable, explain that Python 3.10+ is required and ask before installing
system/requirements-markitdown.txt.
- Convert supported staged files to a sibling
.md file unless the user names
another local destination. Never overwrite an existing file without the
user's explicit instruction.
- Verify that the Markdown file exists and is non-empty, then use that file as
the primary extraction and reasoning input. Keep the original as evidence.
- Report scanned PDFs, image-only pages, complex tables, or unsupported media
as conversion limitations. Do not enable plugins, LLM vision, Azure services,
or other billable/networked processing without explicit approval.
Intake Defaults
- Automatically convert
.pdf, .docx, .pptx, .xlsx, .xls, .msg,
.html, .htm, .csv, .json, .xml, and .epub files during file intake.
- Keep screenshots and pasted images on the existing visual-extraction path
unless the user explicitly requests Markdown conversion.
- Convert ZIP, image, or audio files only when explicitly requested because
expansion, OCR, or transcription may be expensive or incomplete.
- Treat existing
.md files as ready. Convert .txt only when normalization is
requested.
- Reject inputs larger than the wrapper's safety limit instead of silently
consuming them.
MarkItDown output is optimized for LLM analysis and structure preservation, not
pixel-perfect reproduction. Prefer the original file for visual or formatting
QA.
1---2name: markitdown3description: Convert local files into token-efficient Markdown with Microsoft MarkItDown. Use when the user asks to convert, extract, normalize, read, or ingest PDF, Word, PowerPoint, Excel, Outlook, HTML, CSV, JSON, XML, EPUB, ZIP, image, or audio content as Markdown, and by default when supported non-Markdown files enter the Beats PM intake staging lane.4---56# MarkItDown Intake78Use the repo wrapper so conversion stays local, repeatable, and bounded:910```bash11python3 system/scripts/markdown_intake.py "<input-file>" --output "<output-file>.md"12```1314## Workflow15161. Preserve the source file. Accept local files only; never pass an untrusted17 URL or enable remote fetching.182. Run `python3 system/scripts/markdown_intake.py --check`. If MarkItDown is19 unavailable, explain that Python 3.10+ is required and ask before installing20 `system/requirements-markitdown.txt`.213. Convert supported staged files to a sibling `.md` file unless the user names22 another local destination. Never overwrite an existing file without the23 user's explicit instruction.244. Verify that the Markdown file exists and is non-empty, then use that file as25 the primary extraction and reasoning input. Keep the original as evidence.265. Report scanned PDFs, image-only pages, complex tables, or unsupported media27 as conversion limitations. Do not enable plugins, LLM vision, Azure services,28 or other billable/networked processing without explicit approval.2930## Intake Defaults3132- Automatically convert `.pdf`, `.docx`, `.pptx`, `.xlsx`, `.xls`, `.msg`,33 `.html`, `.htm`, `.csv`, `.json`, `.xml`, and `.epub` files during file intake.34- Keep screenshots and pasted images on the existing visual-extraction path35 unless the user explicitly requests Markdown conversion.36- Convert ZIP, image, or audio files only when explicitly requested because37 expansion, OCR, or transcription may be expensive or incomplete.38- Treat existing `.md` files as ready. Convert `.txt` only when normalization is39 requested.40- Reject inputs larger than the wrapper's safety limit instead of silently41 consuming them.4243MarkItDown output is optimized for LLM analysis and structure preservation, not44pixel-perfect reproduction. Prefer the original file for visual or formatting45QA.