Converters pack reference
Every skill in the Converters pack — what it makes, when to use it, what it needs, its quality bar, and what it hands off to.
Turn Markdown into Word, Excel, PowerPoint and Confluence files that people outside engineering can open, and turn their files back into Markdown. Standard-library Python scripts, with nothing to install.
| Install | npx skilldrop-cli install --pack converters |
| Skills | 5 plus 5 from core |
| Loops | none |
| How-to | Use the Converters pack |
Skills
file-to-markdown
Convert a Word document, PowerPoint deck, Excel workbook, web page, CSV, JSON, text file, email (.eml or Outlook .msg) or PDF into clean Markdown. It keeps headings, lists, tables, links, bold and italic, slide titles and speaker notes. It saves embedded images beside the Markdown and links them, shows tracked changes as pending rather than accepted, and reports everything else it dropped (charts, comments, formulas), so the content can be read, reviewed or fed to another skill.
Tier light · v0.4.0 · SKILL.md · skill page
Use it when the user hands over a .docx, .pptx, .xlsx, .html, .csv, .json, .eml, .msg or .pdf and says "read this", "turn this into markdown", "extract the text", or wants it critiqued or briefed.
Needs: Python 3 for its scripts (standard library only).
A good result:
- Structure survives. A heading in the source is a heading in the Markdown, a list is a list, a table is a table. Not a wall of paragraphs.
- Losses are stated, with counts. "2 charts, 1 comment and 14 formulas are not in this", never silence.
- Nothing is added. The Markdown holds only what the file holds: no summaries, no invented headings, no filled-in empty cells.
- Speaker notes stay attached to their slide, because that is often where the real argument is.
- Numbers are copied as stored. No rounding, no currency symbols added; dates converted only when the cell is formatted as a date.
- Images come through as files. An embedded image is saved and linked where it sat, with its alt text, not reduced to a caption.
- Tracked changes stay pending. They are marked, counted and said to be unaccepted; only one the user or a comment settles is applied, and the reply says so.
- A contradiction isn't pasted silently. Both figures are named, and a deliverable meant for pasting leaves it out or marks it.
- Inferred structure is flagged. When headings come from font size instead of styles, the reply says to check the levels.
Hands off to: doc-critique when the user wants the converted document reviewed; brief-intake when the converted document is source material for another skill.
Not for:
- Going the other way, Markdown to Word; use
md-to-docx - Markdown tables into a workbook; use
md-to-xlsx - Messy notes, a Slack thread or a transcript that are already text; use
brief-intakedirectly - A document that is already Markdown and needs reviewing; use
doc-critiquedirectly
md-to-confluence
Turn a Markdown runbook, design note or guide into a Confluence page: storage-format XHTML with real code blocks, tables, tasks, info and warning panels, images as attachments and an optional contents macro, a warning for everything dropped, and an optional publish that first shows which page it will create or overwrite and at what version, refuses stale or wrong-space overwrites, and takes credentials only from the environment.
Tier light · v0.1.2 · SKILL.md · skill page
Use it when the user says "put this in Confluence", "publish this markdown to the wiki", "update the Confluence page with this", "convert to Confluence storage format", or names a Confluence space for a Markdown file.
Needs: Python 3 for its scripts (standard library only).
A good result:
- The right page, said out loud. Every publish is preceded by the page id, title, space, current version and last editor from a live check, and a yes.
- No silent overwrite. Updates carry
--expected-version; a newer version stops the run. - Nothing lost silently. Each
WARNis fixed in the source or named in the reply; rollback steps in HTML are rewritten, not dropped. - Images are listed by attachment name, with any missing file or name clash called out before publishing.
- Code survives byte for byte, including a
]]>inside it; the script checks the page is well-formed. - Tokens never appear in a command, a file or the reply.
- Facts untouched. Restructuring Markdown never changes a command, threshold, name or date.
Not for:
- A Word file to edit with tracked changes; use
md-to-docx - Jira epics and issues from a PRD; use
tracker-brief-sync - Writing the runbook itself; use
runbook-generator, then convert
md-to-docx
Turn a Markdown draft into a Word document (.docx) that someone outside engineering can open, edit and track changes in, with real Heading styles so the navigation pane and table of contents work, live hyperlinks, numbered and bulleted lists, tables, code blocks, embedded images and optional brand fonts and colours, and a warning for everything that could not be carried over.
Tier standard · v0.1.3 · SKILL.md · skill page
Use it when the user wants a Markdown file as a Word doc, says "send this as a .docx", "convert to Word", "legal needs it in Word", or "make this editable for the client".
Needs: Python 3 for its scripts (standard library only).
A good result:
- Headings are real Word headings. The navigation pane shows the outline, and Insert Table of Contents works without restyling.
- Every link is clickable and every in-document
#anchorlink jumps to its heading. - Nothing is lost silently. Each
WARNline is either fixed in the source and gone on rerun, or reported to the user with what it means. - Facts are untouched. You restructure Markdown (heading levels, footnotes into text) but never change a number, a name or a date in it.
- Images are embedded, not linked, so the file still works when it's emailed.
- The file opens. You checked it with textutil, Quick Look, LibreOffice or Word, not just that the script exited 0.
Hands off to: output-hygiene when the Markdown was written by an agent and is going to someone outside the team.
Not for:
- Slides; use
md-to-pptx - The other direction, a Word file or PDF back to Markdown; use
file-to-markdown - Tables that need to be sorted, filtered or summed; use
md-to-xlsx - Writing the document itself; draft it first with
guide-builderor the skill for that document, then convert
md-to-pptx
Turn an existing Markdown document (a status report, runbook, review or notes) into a PowerPoint deck (.pptx) that opens without a repair prompt, with nothing to install. Each heading becomes a slide, lists keep their nesting, tables become real PowerPoint tables, images are embedded, and comments become speaker notes. A section too long for one slide is split onto "continued" slides instead of shrinking the text, and the reply names every split, everything dropped, and any speaker note that would go out with the file.
Tier light · v0.1.3 · SKILL.md · skill page
Use it when the user says "turn this markdown into slides", "make this report a PowerPoint", "convert the .md to pptx", "I need this as a deck for Thursday", or "export these notes to PowerPoint".
Needs: Python 3 for its scripts (standard library only).
A good result:
- The slides follow the headings. The printed outline matches the document's
##headings one for one, plus "(continued)" slides. - No text below its set size. Overflow is split onto continued slides, and every split is named in the reply.
- Tables are tables. A pipe table becomes a PowerPoint table the user can edit, not a picture or tab-separated text, and a split table repeats its header row.
- Nothing is lost silently. Every
WARNis fixed and gone on rerun, or reported in plain words. - Notes were read. Any note that would embarrass the sender if forwarded is named by slide, and taken out when the deck is going outside the team. Its contents are never repeated in the reply.
- Every image arrived. Each image the document names is on a slide at a readable size, or the reply names it as missing or a placeholder.
- Splits fall between items. A list item and its sub-bullets stay on one slide, and continued slides are evenly filled.
- Facts are untouched. No number, name, date or list order changed, and no slide added that the document lacks.
- Mismatches are named, not fixed. A count or total the document contradicts is quoted back with both figures.
- The file checks out. The
checked:line is in the run, and no check is claimed that wasn't run.
Not for:
- Planning what each slide should say before any document exists; use
slide-outliner - A Word document to edit and track changes in; use
md-to-docx - A
.pptxback to Markdown; usefile-to-markdown
md-to-xlsx
Turn the tables in a Markdown file, a CSV or a JSON array into an Excel workbook (.xlsx) that finance, ops or a client can sort, filter and sum, with one sheet per table named from its heading, real numbers, percentages, currency and dates instead of text, a bold frozen header row with filters, sensible column widths, and formulas left inert unless asked for.
Tier standard · v0.1.1 · SKILL.md · skill page
Use it when the user wants a spreadsheet from Markdown tables or data, says "put this in Excel", "convert the CSV to xlsx", "give finance a spreadsheet", or "turn this JSON into a sheet".
Needs: Python 3 for its scripts (standard library only).
A good result:
- Numbers are numbers. Amounts, counts and percentages sum and sort in Excel. The per-sheet counts in the summary back this up.
- Identifiers keep their zeros. Vendor IDs, ZIP codes and account numbers come out exactly as written.
- Every sheet name means something. Named from the table's heading, not "Table 3", and no name cut down by the script without you saying so.
- Formulas are off unless the user chose them, and the reason is given when a cell starting with
=is kept as text. - No data changes. You fix headings, units and number formats, but never a value: no rounding, no filled-in blanks, no invented rows.
- The header row is bold, frozen and filtered on every sheet, and the file was reopened to check.
Not for:
- A document with a few tables in it, to be read rather than calculated; use
md-to-docx - An Excel file back to Markdown or CSV; use
file-to-markdown - A slide of numbers for a meeting; put the table in the Markdown and use
md-to-pptx - Building a financial model with formulas, scenarios and linked sheets. This converts data; it doesn't design models.
Included from core
Installed with this pack. Details: Core pack reference.
brief-intake: Turn raw mess — a Slack thread, meeting transcript, Jira ticket, half-written Notion page, email chain, or paragraph of free-form context — into a structured brief that the downstream skill (adr-generator, design-doc, runbook-generator, exec-summary, slide-outliner) can consume without further intake.context-graph: Map the decisions behind a codebase from its ADRs, RFCs and design records — each record's status and date, what supersedes or amends what, which records cite which, the files and folders each decision governs, and with git the commits that implemented it and the commits that changed each decision's code since it was made, and who made them — then answer "why is it like this?" from the record and check the record is still true. Finds supersessions only one side records, current decisions pointing at code that is gone, code that has drifted from its decision, two current decisions governing the same path, and references to records that don't exist.council-review: Convene a council of distinct senior-engineer personas (Architect, Security, Operator/SRE, Pragmatist, User-Advocate, plus optional bench seats) to deliberate a decision, design, or code change — each takes an independent stance, the genuine disagreements are surfaced as named cruxes, and a Chair issues a reconciled verdict that records dissents and states what would change the decision. The "Claude Council."doc-critique: Review an existing document — ADR, design doc, runbook, exec summary, tech-comparison matrix, deck outline, decision log — and produce a structured critique against the same quality bars the skilldrop generators enforce. Categorizes findings by severity (blocker / major / minor / nit), points to the exact section/line, and suggests a concrete fix for each.output-hygiene: Review agent-written text before it ships and strip the machine artifacts it carries — invisible Unicode, non-breaking spaces, homoglyphs, harness-added provenance trailers, trailing chat closers — then flag the prose tells a script cannot catch, each quoted with a rewrite.