Generates branded DOCX (Word) documents using the MetodologIA Neo-Swiss Design System v6. Uses python-docx to create professional documents with navy headers, gold accents, Poppins headings, and Trebuchet MS body text. Use when the user requests a Word document, DOCX output, or when the ghost menu routes to DOCX.
Generates production-ready Word documents following the MetodologIA Neo-Swiss Clean & Soft Explainer design system (v6). Every document uses navy-themed headers, gold accents, Poppins headings, Trebuchet MS body text, and branded cover pages.
ALWAYS read the brand config first:
Read ${CLAUDE_SKILL_DIR}/../../references/brand-config-neoswiss.json
Extract the docx section for all heading styles, table specs, and cover page design.
All values sourced from brand-config-neoswiss.json:
| Element | Font | Size | Color |
|---|
| Bold |
|---|
| Heading 1 | Poppins | 24pt | #122562 (Navy) | Yes |
| Heading 2 | Poppins | 18pt | #137DC5 (Blue) | Yes |
| Heading 3 | Poppins | 14pt | #122562 (Navy) | Yes |
| Body | Trebuchet MS | 11pt | #1F2833 (Dark) | No |
| Note / Caption | Century Gothic | 9pt | #808080 (Gray) | No |
| Table Header | Poppins | 10pt | #FFFFFF on #122562 | Yes |
| Table Accent | — | — | #122562 on #FFD700 | — |
| Footer | Century Gothic | 8pt | #808080 | No |
from docx import Document
from docx.shared import Pt, Inches, RGBColor, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn
import json
# Load brand config
with open('references/brand-config-neoswiss.json') as f:
config = json.load(f)
docx_config = config['docx']
doc = Document()
# Set default font
style = doc.styles['Normal']
font = style.font
font.name = 'Trebuchet MS'
font.size = Pt(11)
font.color.rgb = RGBColor(0x1F, 0x28, 0x33)
# Configure Heading 1
h1_style = doc.styles['Heading 1']
h1_font = h1_style.font
h1_font.name = 'Poppins'
h1_font.size = Pt(24)
h1_font.color.rgb = RGBColor(0x12, 0x25, 0x62)
h1_font.bold = True
# Configure Heading 2
h2_style = doc.styles['Heading 2']
h2_font = h2_style.font
h2_font.name = 'Poppins'
h2_font.size = Pt(18)
h2_font.color.rgb = RGBColor(0x13, 0x7D, 0xC5)
h2_font.bold = True
# Configure Heading 3
h3_style = doc.styles['Heading 3']
h3_font = h3_style.font
h3_font.name = 'Poppins'
h3_font.size = Pt(14)
h3_font.color.rgb = RGBColor(0x12, 0x25, 0x62)
h3_font.bold = True
# Table with branded header
table = doc.add_table(rows=1, cols=3)
hdr = table.rows[0]
for cell in hdr.cells:
# Navy background
shading = cell._element.get_or_add_tcPr()
shading_elm = shading.makeelement(qn('w:shd'), {
qn('w:fill'): '122562',
qn('w:val'): 'clear'
})
shading.append(shading_elm)
# White text
for paragraph in cell.paragraphs:
for run in paragraph.runs:
run.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF)
run.font.name = 'Poppins'
run.font.bold = True
run.font.size = Pt(10)
doc.save('output.docx')
| Row Type | Background | Font Color | Font |
|---|---|---|---|
| Header | #122562 (Navy) | #FFFFFF (White) | Poppins 10pt Bold |
| Accent | #FFD700 (Gold) | #122562 (Navy) | Poppins 10pt Bold |
| Body odd | #FFFFFF (White) | #1F2833 (Dark) | Trebuchet MS 10pt |
| Body even | #F8F9FC (Off-white) | #1F2833 (Dark) | Trebuchet MS 10pt |
| Positive | — | #137DC5 (Blue) | Bold |
| Warning | — | #D97706 (Amber) | Bold |
| Critical | — | #DC2626 (Red) | Bold |
Preserve evidence tags as inline formatted text:
[DOC] — Blue (#137DC5) bold[STAKEHOLDER] — Navy (#122562) bold[INFERENCIA] — Lavender (#BBA0CC) bold[SUPUESTO] — Amber (#D97706) bold[CODIGO] — Gray (#808080) boldbrand-config-neoswiss.json read before generationAutor: Javier Montano · Comunidad MetodologIA | Version: 1.0.0 Neo-Swiss