document-polisher
Document Polisher
Transform any document into a polished, professionally-styled masterpiece using world-class brand aesthetics.
Overview
This skill applies premium brand styling from 10 carefully curated brands to DOCX documents. Each brand has been analyzed for its typography, color palette, and design principles to create authentic-looking documents.
Brand Selection Menu
When a user wants to polish a document, ALWAYS present this selection menu:
╔══════════════════════════════════════════════════════════════════════════╗
║ DOCUMENT POLISHER ║
║ Select Your Brand Style ║
╠══════════════════════════════════════════════════════════════════════════╣
║ ║
║ EDITORIAL ║
║ ───────── ║
║ 1. The Economist │ Deep navy + serif typography ║
║ │ Best for: Reports, analysis, thought leadership ║
║ ║
║ CONSULTING ║
║ ────────── ║
║ 2. McKinsey │ Sharp corners + bold blue accents ║
║ │ Best for: Strategy decks, executive summaries ║
║ ║
║ 3. Deloitte │ Teal-blue + pill-shaped elements ║
║ │ Best for: Audits, assessments, formal reports ║
║ ║
║ 4. KPMG │ Two-tone blue + condensed headings ║
║ │ Best for: Financial reports, compliance docs ║
║ ║
║ TECH ║
║ ──── ║
║ 5. Stripe │ Dark blue + purple gradients ║
║ │ Best for: API docs, developer guides, specs ║
║ ║
║ 6. Apple │ Minimalist + generous whitespace ║
║ │ Best for: Product docs, user guides ║
║ ║
║ 7. IBM │ Plex typography + Carbon design ║
║ │ Best for: Technical docs, enterprise reports ║
║ ║
║ 8. Linear │ Modern purple + precise typography ║
║ │ Best for: Product specs, changelogs, dev docs ║
║ ║
║ PRODUCTIVITY ║
║ ──────────── ║
║ 9. Notion │ Clean blue + subtle accents ║
║ │ Best for: Wikis, project plans, documentation ║
║ ║
║ DESIGN ║
║ ────────── ║
║ 10. Figma │ Vibrant multi-color palette ║
║ │ Best for: Creative briefs, design docs, brands ║
║ ║
╚══════════════════════════════════════════════════════════════════════════╝
Workflow
Step 1: Ask the User
When a user wants to polish a document:
- Display the brand selection menu above
- Ask: "Which brand style would you like to apply? You can also tell me the purpose of your document and I'll recommend a style."
Step 2: Apply the Styling
IMPORTANT: Always use the Python script with python-docx. Never use direct XML/OOXML manipulation as it can corrupt documents.
Primary Method: Python Script (REQUIRED)
The script uses python-docx to safely recreate documents with brand styling. It:
- Reads the source document
- Creates a new document with brand styles applied
- Copies all content with proper formatting
- Preserves bold, italic, lists, and structure
# Ensure python-docx is installed in the environment
pip install python-docx
# Apply brand styling
python scripts/apply_brand.py <input.docx> <brand_name> <output.docx>
# Examples:
python scripts/apply_brand.py report.docx economist polished_report.docx
python scripts/apply_brand.py proposal.docx mckinsey styled_proposal.docx
python scripts/apply_brand.py guide.docx stripe tech_guide.docx
Available Brand Names:
economist- The Economist (editorial, serif)mckinsey- McKinsey & Company (consulting, sharp)deloitte- Deloitte (consulting, teal)kpmg- KPMG (consulting, bold blue)stripe- Stripe (tech, dark blue/purple)apple- Apple (tech, minimalist)ibm- IBM (tech, enterprise)notion- Notion (productivity, clean)linear- Linear (tech, modern purple)figma- Figma (design, colorful)
What the Script Does
- Loads brand configuration from
templates/brand-mapping.json - Creates a fresh document (avoids corruption from XML editing)
- Applies document-level styles:
- Normal text style (font, size, color)
- Heading 1, 2, 3 styles (font, size, color, spacing)
- Title style
- Page margins
- Copies content with formatting:
- Preserves headings at correct levels
- Maintains bullet and numbered lists
- Keeps bold, italic, underline formatting
- Preserves paragraph alignment
- Copies tables with styling
- Saves as new file (never overwrites original)
Brand Reference Files
Detailed brand guidelines are stored in the brands/ directory:
| Brand | Reference File | Key Elements |
|---|---|---|
| The Economist | brands/economist.md |
Georgia serif, #1F2E7A navy, minimal borders |
| McKinsey | brands/mckinsey.md |
Helvetica Neue, #051C2C dark, sharp corners |
| Deloitte | brands/deloitte.md |
Open Sans, #007CB0 teal, rounded elements |
| KPMG | brands/kpmg.md |
Open Sans, #1E49E2 blue |
| Stripe | brands/stripe.md |
Helvetica Neue, #0A2540 + #9966FF purple |
| Apple | brands/apple.md |
Helvetica Neue, #0071E3 blue, minimal |
| IBM | brands/ibm.md |
Arial, #0F62FE blue, sharp corners |
| Notion | brands/notion.md |
Arial, #0075DE blue, block-based |
| Linear | brands/linear.md |
Arial, #5E6AD2 purple, modern |
| Figma | brands/figma.md |
Arial, multi-color palette |
Style Mapping
The templates/brand-mapping.json file contains structured data for programmatic styling:
{
"brands": {
"economist": {
"name": "The Economist",
"colors": {
"primary": "#1F2E7A",
"accent": "#E3120B",
"textPrimary": "#0D0D0D"
},
"typography": {
"headingFont": "Georgia",
"bodyFont": "Georgia"
},
"styles": {
"h1": { "size": 28, "color": "#1F2E7A", "bold": true },
"h2": { "size": 22, "color": "#1F2E7A", "bold": true },
"body": { "size": 11, "color": "#0D0D0D" }
}
}
}
}
Examples
Example 1: Polish a Report with McKinsey Style
User: "Make my quarterly report look more professional"
- Show brand menu
- User selects "McKinsey"
- Apply styling:
cd /path/to/project
source venv/bin/activate # if using virtual environment
python .claude/skills/document-polisher/scripts/apply_brand.py quarterly_report.docx mckinsey polished_quarterly_report.docx
Example 2: Apply Economist Style to a Guide
User: "Style this guide like The Economist"
python .claude/skills/document-polisher/scripts/apply_brand.py guide.docx economist guide_economist.docx
Example 3: Tech Documentation with Stripe Style
User: "Make this API doc look like Stripe's documentation"
python .claude/skills/document-polisher/scripts/apply_brand.py api_doc.docx stripe api_doc_stripe.docx
Dependencies
- Python 3.x
- python-docx:
pip install python-docx
The script will check for python-docx and provide installation instructions if missing.
Tips for Best Results
- Match brand to content: Use consulting brands for business docs, tech brands for technical content
- Consider your audience: Economist for academics, Stripe for developers, Apple for consumers
- Don't over-brand: The goal is professional polish, not exact brand copying
- Test with PDF export: Some styling looks different in PDF vs Word
- Use virtual environment: Keeps dependencies isolated
Troubleshooting
"Module not found: docx"
pip install python-docx
Document looks wrong
- Ensure the source document uses standard Word styles (Heading 1, 2, 3, Normal)
- Check that lists use built-in List Bullet/List Number styles
Script path issues
Always run from the project root or use absolute paths:
python /full/path/to/.claude/skills/document-polisher/scripts/apply_brand.py input.docx brand output.docx
Adding New Brands
To add a new brand:
- Use FireCrawl to extract branding:
mcp__firecrawl__firecrawl_extract_branding - Create a new file in
brands/<brand_name>.md - Add entry to
templates/brand-mapping.jsonwith:name,description,categorycolors: primary, accent, background, textPrimary, textSecondarytypography: headingFont, bodyFontstyles: h1, h2, h3, body with size, color, bold
- Test with sample documents