Use when creating or editing documents (DOCX, PDF, XLSX, PPTX) that need professional output. Adds visual verification, typography hygiene, and formula patterns.
Patterns that complement the official document-skills plugin. Apply these alongside xlsx, pdf, docx, and pptx skills.
Core principle: Text extraction misses critical details. Always verify visually.
"Only do python printing as a last resort because you will miss important details with text extraction (e.g. figures, tables, diagrams)."
For ANY document operation (create, edit, convert):
1. Generate/modify document
2. Convert to PNG:
pdftoppm -png -r 150 document.pdf output
3. Visually inspect the PNG at 100% zoom
4. Fix any issues found
5. REPEAT until clean
Never deliver a document without PNG verification. This catches:
# DOCX β PDF β PNG
soffice --headless --convert-to pdf document.docx
pdftoppm -png -r 150 document.pdf page
# PDF β PNG directly
pdftoppm -png -r 150 document.pdf page
# PPTX β PDF β PNG
soffice --headless --convert-to pdf presentation.pptx
pdftoppm -png -r 150 presentation.pdf slide
Never use non-breaking hyphens (U+2011). They cause rendering failures in many viewers.
# WRONG - may render as boxes or break layouts
text = "coβauthor" # U+2011 non-breaking hyphen
# CORRECT - always use ASCII hyphen
text = "co-author" # U+002D standard hyphen-minus
Detection and fix:
# Find problematic hyphens
import re
if '\u2011' in text:
text = text.replace('\u2011', '-')
# Also watch for other non-ASCII dashes
text = text.replace('\u2013', '-') # en-dash
text = text.replace('\u2014', '-') # em-dash (if hyphen intended)
All citations must be human-readable in standard scholarly format:
γ4:2β sourceγ)# WRONG
See source γ4:2β sourceγ for details.
# CORRECT
See Smith (2024), "Document Standards," Journal of Tech, p. 45.
Complements the xlsx skill's color conventions with additional patterns.
Beyond the standard 5 colors (blue inputs, black formulas, green cross-sheet, red external, yellow assumptions):
| Color | Meaning | Use Case |
|---|---|---|
| Gray text | Static constants | Values that never change (tax rates, conversion factors) |
| Orange background | Review/caution | Cells needing verification or approval |
| Light red background | Errors/issues | Known problems to fix |
Use helper cells instead of complex nested formulas.
# WRONG - hard to debug, audit, or modify
=IF(AND(B5>100,C5<50),B5*1.1*IF(D5="A",1.2,1),B5*0.9)
# CORRECT - use helper columns
E5: =B5>100 (Threshold check)
F5: =C5<50 (Secondary check)
G5: =IF(D5="A",1.2,1) (Category multiplier)
H5: =IF(AND(E5,F5),B5*1.1*G5,B5*0.9) (Final calculation)
Benefits:
For maximum compatibility, avoid:
FILTER() - not supported in older ExcelXLOOKUP() - Excel 365+ onlySORT() - dynamic array functionSEQUENCE() - dynamic array functionUNIQUE() - dynamic array functionUse classic equivalents:
FILTER() β INDEX/MATCH with helper columnsXLOOKUP() β INDEX/MATCHSORT() β manual sorting or helper columnsSEQUENCE() β manually entered row numbersAdditional to xlsx skill standards:
# Hide gridlines for cleaner appearance
sheet.sheet_view.showGridLines = False
# Add borders above totals (not around every cell)
from openpyxl.styles import Border, Side
thin_top = Border(top=Side(style='thin'))
total_cell.border = thin_top
# Cite sources in cell comments, not adjacent cells
from openpyxl.comments import Comment
cell.comment = Comment("Source: 10-K FY2024, p.45", "Analyst")
Before delivering any document:
This skill adds patterns on top of the document-skills plugin:
| Official Skill | This Skill Adds |
|---|---|
xlsx |
Helper cells, extended colors, dynamic array warnings |
pdf |
Visual-first philosophy, render-inspect-fix loop |
docx |
Typography hygiene, PNG verification emphasis |
pptx |
Same verification workflow |
Always read both this skill AND the relevant official skill when working with documents.