# Doc Format Converter

> Use this skill whenever the user asks to convert a document or file from one format to another — Markdown, HTML, PDF, Word (.docx), PowerPoint (.pptx), Excel (.xlsx), CSV, or plain text (e.g. "turn this Word doc into a PDF", "make slides from this markdown", "save this page as markdown"). Only for producing a converted file as a deliverable. Do NOT use this skill to answer questions about a document's content — the analyzing-* skills handle that. Run the bundled scripts/convert.py instead of writing ad-hoc conversion code, BEFORE attempting any conversion yourself.

- Skill: `kody-w/doc-format-converter` (Agent Skill, multi-file: 12 files)
- Install (CLI): `npx skillmds@latest add kody-w/doc-format-converter`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kody-w/doc-format-converter/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: kody-w (https://skillmd.com/u/kody-w)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kody-w/doc-format-converter

---


Convert documents between formats using the bundled `scripts/convert.py`. It
works fully offline with libraries already present in the sandbox
(markitdown, mammoth, markdownify, reportlab, python-docx, python-pptx,
pdfplumber, beautifulsoup4, magika) and routes each conversion through the
highest-fidelity pipeline available.

## Division of labor with the analyzing-* skills

This skill **produces files**; the built-in `analyzing-*` skills **answer
questions**. Route accordingly:

- "What does this PDF say?", "find X in this workbook", "summarize this
  deck" → use `analyzing-pdf` / `analyzing-xlsx` / `analyzing-pptx` etc.,
  not this skill. In particular, never use `convert.py` as a substitute
  extraction path for PDF question-answering — `analyzing-pdf` owns that.
- "Give me this as a PDF/Word doc/slides/markdown file" → this skill.
- If the user asks content questions *after* a conversion, hand off to the
  matching `analyzing-*` skill on the original file rather than answering
  from this skill's intermediate output.
- **Reuse their artifacts when present.** If an `analyzing-*` preprocessor
  has already produced a `converted.md` for the source file, feed that to
  `convert.py` as Markdown input (`convert.py converted.md --to pptx`)
  instead of re-extracting the original — it is a high-quality extraction
  with page markers and pipe tables.

## Instructions

1. Identify the input file and the target format the user wants. Targets:
   `md`, `html`, `pdf`, `docx`, `pptx`, `txt`. Inputs additionally include
   `xlsx` and `csv`.
2. Run the converter by the script's path inside this skill's folder —
   typically `/app/skills/doc-format-converter/` — so it works regardless of
   the current working directory:

   ```bash
   python /app/skills/doc-format-converter/scripts/convert.py INPUT --to FORMAT [-o OUTPUT]
   ```

   It prints the output path on success. If `-o` is omitted, the output lands
   next to the input with the new extension.
3. For a folder of files, use batch mode and share the printed summary table
   with the user:

   ```bash
   python /app/skills/doc-format-converter/scripts/convert.py --batch DIR --to FORMAT [--out-dir DIR]
   ```

4. If the script reports an unsupported conversion, relay its message — it
   prints the full support matrix. Offer the nearest supported route (e.g.
   PDF → slides is unsupported; offer PDF → Markdown, let the user edit, then
   Markdown → PPTX).
5. If the script warns that a file's extension doesn't match its content
   (content sniffing via magika), tell the user; the converter proceeds using
   the detected content type.
6. Return the converted file to the user and briefly state which pipeline was
   used (e.g. "docx → HTML via mammoth").

## Conversion notes

- Markdown is the universal intermediate: Office/PDF inputs are extracted with
  markitdown, then re-rendered. Some layout (columns, images, footnotes) is
  simplified — say so when converting layout-heavy documents.
- For **scanned/image PDFs**, this skill's pdf → md route extracts little or
  nothing. Run the `analyzing-pdf` preprocessor instead (its OCR pipeline is
  the better extractor) and feed its text artifact into this skill's
  renderers.
- PDF output registers a CJK-capable font automatically (bundled Noto CJK
  fonts, falling back to reportlab's built-in CID fonts), so Chinese,
  Japanese, and Korean text renders correctly.
- PPTX output builds one slide per `#`/`##` heading with body content as
  bullets, overflowing onto continuation slides — it is an outline deck, not
  finished design.
- `pdf → pptx` and `pptx → pdf/docx` are deliberately unsupported: the
  extraction is too lossy to present as a finished conversion.

## Guardrails

- Never fabricate or "fill in" content the source file does not contain; if
  extraction returns nothing, report that instead of inventing text.
- Do not hand-write conversion code when `convert.py` supports the pair; only
  fall back to custom code if the script fails, and say that you did.
- Never claim a conversion succeeded without the script's success output.
- Verification test cases live in `references/test-cases.md` with fixtures in
  `assets/samples/` — use them when the user asks to validate the skill.

<!-- toaster:generated:begin -->

## Run this — do not improvise

This capability's deterministic implementation is a RAPP single-file agent, linked beside this file as `doc_format_converter_agent.py` and embedded as the fenced Python below (sha256 89c224c39e622d0f…; a byte-exact copy is also vaulted in the capsule comment at the end of this file). On a host with sandbox execution, run the linked file directly — if it is missing, write the fence contents verbatim to `doc_format_converter_agent.py` first:

```bash
python3 doc_format_converter_agent.py '{"key": "value"}'      # arguments as one JSON object
echo '{"key": "value"}' | python3 doc_format_converter_agent.py   # or on stdin
python3 doc_format_converter_agent.py --tool                      # emit the JSON tool contract
```

Treat stdout as a tool result. If it reports missing or unresolved inputs, stop and collect them. If it returns `steps`, execute those steps in order exactly as returned; if it returns `instructions`, follow them with the supplied inputs. Otherwise use the result verbatim. Do not invent behavior beyond that output. On a host without code execution, treat the Parameters schema and the code below as the exact specification and never paraphrase a step. Never edit inside the generated markers; a converter-equipped host can instead restore the original file checksum-verified with the installed `rapp-agent-converter/scripts/toast.py convert SKILL.md --to agent`.

````python  # rapp:deterministic
"""DocFormatConverter -- Use this skill whenever the user asks to convert a document or file from one format to another — Markdown, HTML, PDF, Word (.docx), PowerPoint (.pptx), Excel (.xlsx), CSV, or plain text (e.g. "turn this Word doc into a PDF", "make slides from this markdown", "save this page as markdown"). Only for producing a converted file as a deliverable. Do NOT use this skill to answer questions about a document's content — the analyzing-* skills handle that. Run the bundled scripts/convert.py instead of writing ad-hoc conversion code, BEFORE attempting any conversion yourself.

Generated by the rapp skill from doc-format-converter. The RCI capsule at the bottom of this file carries the full original; `toast.py convert` restores it byte-exact."""

import json
import re
import sys

try:
    from agents.basic_agent import BasicAgent
except ImportError:  # running OUTSIDE a brainstem -- stay executable anyway.
    class BasicAgent:  # noqa: D101 - minimal stand-in, same contract
        def __init__(self, name=None, metadata=None):
            if name:
                self.name = name
            if metadata:
                self.metadata = metadata

        def perform(self, **kwargs):
            return "Not implemented."

        def system_context(self):
            return None

        def to_tool(self):
            return {"type": "function", "function": {
                "name": self.name,
                "description": self.metadata.get("description", ""),
                "parameters": self.metadata.get("parameters", {})}}

# The procedural layer, verbatim from the source capability.
INSTRUCTIONS = 'Convert documents between formats using the bundled `scripts/convert.py`. It\nworks fully offline with libraries already present in the sandbox\n(markitdown, mammoth, markdownify, reportlab, python-docx, python-pptx,\npdfplumber, beautifulsoup4, magika) and routes each conversion through the\nhighest-fidelity pipeline available.\n\n## Division of labor with the analyzing-* skills\n\nThis skill **produces files**; the built-in `analyzing-*` skills **answer\nquestions**. Route accordingly:\n\n- "What does this PDF say?", "find X in this workbook", "summarize this\n  deck" → use `analyzing-pdf` / `analyzing-xlsx` / `analyzing-pptx` etc.,\n  not this skill. In particular, never use `convert.py` as a substitute\n  extraction path for PDF question-answering — `analyzing-pdf` owns that.\n- "Give me this as a PDF/Word doc/slides/markdown file" → this skill.\n- If the user asks content questions *after* a conversion, hand off to the\n  matching `analyzing-*` skill on the original file rather than answering\n  from this skill's intermediate output.\n- **Reuse their artifacts when present.** If an `analyzing-*` preprocessor\n  has already produced a `converted.md` for the source file, feed that to\n  `convert.py` as Markdown input (`convert.py converted.md --to pptx`)\n  instead of re-extracting the original — it is a high-quality extraction\n  with page markers and pipe tables.\n\n## Instructions\n\n1. Identify the input file and the target format the user wants. Targets:\n   `md`, `html`, `pdf`, `docx`, `pptx`, `txt`. Inputs additionally include\n   `xlsx` and `csv`.\n2. Run the converter by the script's path inside this skill's folder —\n   typically `/app/skills/doc-format-converter/` — so it works regardless of\n   the current working directory:\n\n   ```bash\n   python /app/skills/doc-format-converter/scripts/convert.py INPUT --to FORMAT [-o OUTPUT]\n   ```\n\n   It prints the output path on success. If `-o` is omitted, the output lands\n   next to the input with the new extension.\n3. For a folder of files, use batch mode and share the printed summary table\n   with the user:\n\n   ```bash\n   python /app/skills/doc-format-converter/scripts/convert.py --batch DIR --to FORMAT [--out-dir DIR]\n   ```\n\n4. If the script reports an unsupported conversion, relay its message — it\n   prints the full support matrix. Offer the nearest supported route (e.g.\n   PDF → slides is unsupported; offer PDF → Markdown, let the user edit, then\n   Markdown → PPTX).\n5. If the script warns that a file's extension doesn't match its content\n   (content sniffing via magika), tell the user; the converter proceeds using\n   the detected content type.\n6. Return the converted file to the user and briefly state which pipeline was\n   used (e.g. "docx → HTML via mammoth").\n\n## Conversion notes\n\n- Markdown is the universal intermediate: Office/PDF inputs are extracted with\n  markitdown, then re-rendered. Some layout (columns, images, footnotes) is\n  simplified — say so when converting layout-heavy documents.\n- For **scanned/image PDFs**, this skill's pdf → md route extracts little or\n  nothing. Run the `analyzing-pdf` preprocessor instead (its OCR pipeline is\n  the better extractor) and feed its text artifact into this skill's\n  renderers.\n- PDF output registers a CJK-capable font automatically (bundled Noto CJK\n  fonts, falling back to reportlab's built-in CID fonts), so Chinese,\n  Japanese, and Korean text renders correctly.\n- PPTX output builds one slide per `#`/`##` heading with body content as\n  bullets, overflowing onto continuation slides — it is an outline deck, not\n  finished design.\n- `pdf → pptx` and `pptx → pdf/docx` are deliberately unsupported: the\n  extraction is too lossy to present as a finished conversion.\n\n## Guardrails\n\n- Never fabricate or "fill in" content the source file does not contain; if\n  extraction returns nothing, report that instead of inventing text.\n- Do not hand-write conversion code when `convert.py` supports the pair; only\n  fall back to custom code if the script fails, and say that you did.\n- Never claim a conversion succeeded without the script's success output.\n- Verification test cases live in `references/test-cases.md` with fixtures in\n  `assets/samples/` — use them when the user asks to validate the skill.'

# Ordered commands lifted verbatim from the capability's own documentation.
STEPS = []


class DocFormatConverterAgent(BasicAgent):
    def __init__(self):
        self.name = 'DocFormatConverter'
        self.metadata = {
          "name": "DocFormatConverter",
          "description": "Use this skill whenever the user asks to convert a document or file from one format to another \u2014 Markdown, HTML, PDF, Word (.docx), PowerPoint (.pptx), Excel (.xlsx), CSV, or plain text (e.g. \"turn this Word doc into a PDF\", \"make slides from this markdown\", \"save this page as markdown\"). Only for producing a converted file as a deliverable. Do NOT use this skill to answer questions about a document's content \u2014 the analyzing-* skills handle that. Run the bundled scripts/convert.py instead of writing ad-hoc conversion code, BEFORE attempting any conversion yourself.",
          "parameters": {
            "type": "object",
            "properties": {},
            "required": []
          }
        }
        super().__init__(name=self.name, metadata=self.metadata)

    def perform(self, **kwargs):  # toaster:generated-perform
        return json.dumps({"status": "ok", "instructions": INSTRUCTIONS,
                           "inputs": kwargs,
                           "note": "Prose-only capability: follow INSTRUCTIONS "
                                   "with the given inputs."}, indent=2)

if __name__ == "__main__":
    #     echo '{"arg": "value"}' | python3 doc_format_converter_agent.py
    #     python3 doc_format_converter_agent.py '{"arg": "value"}'
    #     python3 doc_format_converter_agent.py --tool          # emit the JSON tool contract
    _a = sys.argv[1:]
    if _a and _a[0] == "--tool":
        print(json.dumps(DocFormatConverterAgent().to_tool(), indent=2))
    else:
        _raw = _a[0] if _a else (sys.stdin.read().strip() or "{}")
        print(DocFormatConverterAgent().perform(**json.loads(_raw)))

# rci-capsule:v1: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
````

<!-- toaster:generated:end -->

<!-- rci-capsule:v1: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 -->

