Resources
1Install
npx skillscat add cdeistopened/content-os/skills-productivity-vellum-prep Install via the SkillsCat registry.
This skill converts markdown manuscripts into Vellum-ready Word documents by performing programmatic cleanup of OCR artifacts, metadata headers, duplicate running headers, and publisher boilerplate. It solves the problem of preparing unrefined manuscripts from OCR or writing tools for direct import into Vellum book formatting software. Use it when a markdown manuscript requires Vellum-compatible formatting and .docx output via pandoc.
Vellum Prep
Convert markdown manuscripts to Vellum-ready Word documents.
When to Use
Use this skill when you have a markdown manuscript (from OCR, writing, or conversion) that needs to be formatted for import into Vellum book formatting software.
What It Does
Programmatic cleanup (no AI tokens):
- Removes OCR metadata headers
- Converts
---to***(Vellum ornamental breaks) - Removes duplicate running headers (e.g., repeated book title)
- Removes
[Image: ...]placeholder descriptions - Strips publisher front matter (catalogs, copyright boilerplate)
- Normalizes chapter headings to
# Chapter X: Titleformat - Cleans common artifacts (page numbers, ellipses, broken hyphenation)
- Converts to .docx via pandoc
Usage
# From the manuscript directory:
python3 /path/to/vellum_prep.py manuscript.md
# Output: manuscript_vellum.md + manuscript.docx (if pandoc available)Or invoke via Claude:
/vellum-prep manuscript.mdVellum Formatting Rules
| Markdown | Word Style | Vellum Element |
|---|---|---|
# Chapter 1: Title |
Heading 1 | Chapter |
# Dedication |
Heading 1 | Dedication |
# Prologue |
Heading 1 | Prologue |
## Section |
Heading 2 | Level 1 Subhead |
*** |
Centered asterisks | Ornamental Break |
| Single blank line | Blank paragraph | Scene Break |
Configuration
Edit the script to customize:
header_patterns: List of regex patterns for headers to removeremove_images: Whether to strip[Image: ...]tagsclean_for_vellum: Apply Vellum-specific formatting
Requirements
- Python 3.x
- pandoc (for .docx conversion)
Handling Complex Manuscripts
For manuscripts with special requirements (Notion exports, external images, nested chapters), create a book-specific preprocessing script. See Personal/Guide Abrege/prep_guide_abrege.py for an example that handles:
Notion Export Issues
- Missing image folders: Notion exports reference
FolderName/image.pngbut don't always include the folder - Substack CDN images: Can be downloaded with curl and remapped to local paths
- Image mapping pattern:
IMAGE_MAP = { "substack-uuid_dimensions.png": "images/01-descriptive-name.png", }
Nested Chapter Headings
When a document has nested "CHAPTER I/II/III" within sections (e.g., each movement family has its own Chapter I, II, III):
- Keep top-level sections as
#(Vellum chapters) - Demote internal "CHAPTER X:" labels to
##subheadings - Strip the "CHAPTER X:" prefix, keep just the descriptive title
Tables
- Multi-line cells in markdown tables don't convert well via pandoc - convert to numbered lists instead
- See
prep_guide_abrege.pyfor regex pattern to match and replace specific tables
Bold Labels as Headings
Instructional books often use **FIRST TYPE:** or **Method A:** as implicit subheadings. Convert these to actual headings (####) for proper Vellum hierarchy.
Workflow for Complex Books
- Run exploratory agent to analyze structure
- Create book-specific prep script
- Download/remap external images
- Run prep script → intermediate
.md - Run
pandocdirectly (not vellum_prep.py) to preserve images - Review in Vellum, fix Parts/special elements manually
Files
SKILL.md- This filevellum_prep.py- Main conversion script (OCR cleanup focus)