From gerdsenai
This skill should be used when the user asks to create a PDF, write a report, build a professional document, generate formatted documentation, author a technical spec for PDF output, or mentions GerdsenAI Document Builder. Covers trigger phrases like 'make me a PDF', 'write a report', 'create a document', 'format this for PDF', 'build a PDF from markdown', and 'generate a formatted report'. Provides rules for YAML front matter, heading hierarchy, code blocks, Mermaid diagrams, tables, and page layout.
How this skill is triggered — by the user, by Claude, or both
Slash command
/gerdsenai:pdf-document-authoringThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Follow these rules when writing markdown intended for the GerdsenAI Document Builder.
references/config-options.mdreferences/formatting-guide.mdreferences/frontmatter-reference.mdreferences/local-infrastructure-reference.mdreferences/mermaid-diagrams.mdreferences/red-team-reference.mdreferences/research-report-reference.mdreferences/software-architecture-reference.mdreferences/vector-db-reference.mdFollow these rules when writing markdown intended for the GerdsenAI Document Builder.
Every document MUST begin with YAML front matter enclosed in --- delimiters. The first # heading becomes the document title if title is not set in front matter.
Use heading hierarchy strictly:
# H1 - Document title only (one per document, on the cover page)## H2 - Major sections (appear in Table of Contents)### H3 - Subsections (appear in Table of Contents)#### H4 - Minor subsectionsDo NOT skip heading levels (e.g., jumping from H2 to H4).
Required fields:
---
title: "Document Title"
subtitle: "Optional Subtitle"
author: "Author Name"
date: "January 15, 2026" # Always use the current date
version: "1.0.0"
---
Optional fields:
confidential: true - Marks document as confidentialwatermark: true - Adds watermark overlaycompany: "Company Name" - Company attributionsubject: "Subject line" - PDF metadata subject fieldIf title is omitted, the builder extracts it from the first # H1 heading. If date is omitted, the current date is used. If author is omitted, the default from config.yaml is used.
See references/frontmatter-reference.md for complete field documentation.
When writing assessment or maturity ratings for components, technologies, or features, use proper headings for scannability and TOC inclusion.
WRONG (hard to scan, no TOC entry):
**Maturity: Solid.** The math is correct. DAS is production-ready.
RIGHT (scannable, appears in TOC):
#### Beamforming: Solid (Production-Ready)
The math is correct. DAS is production-ready; MVDR and MUSIC are research-grade.
Rules for assessment sections:
#### H4 or ##### H5 headings for each assessed item### H3 parent sectionUse fenced code blocks with language identifiers for styled output. The builder applies distinct styling per language:
diff - Dark background with green (added), red (removed), blue (hunk headers)tree - Dark background with blue tree characters, yellow directories, gray filesshell / bash - Black terminal background with green prompt/commandspython, yaml, json, javascript - Light background with syntax highlighting (GitHub theme by default)Always specify the language. A bare ``` block gets generic styling with no highlighting.
Mermaid diagrams are rendered locally via Playwright + Chromium. Wrap diagrams in ```mermaid fences. Standalone .mermaid and .mmd files can also be built directly to PDF.
Include diagrams without being asked when the content benefits from visual representation. If you are describing a process, architecture, data model, timeline, comparison, or flow, create the appropriate diagram. Do NOT ask the user if they want a diagram — just include it where it adds clarity.
When conducting research or writing reports, proactively create diagrams for:
| Type | Keyword | Best For |
|---|---|---|
| Flowchart | flowchart TD | Processes, decisions, workflows |
| Sequence | sequenceDiagram | API flows, system interactions |
| State | stateDiagram-v2 | Lifecycles, status transitions |
| Class | classDiagram | OOP design, type hierarchies |
| ER | erDiagram | Database schemas, data models |
| Gantt | gantt | Project schedules, sprint plans |
| Pie | pie | Proportional breakdowns |
| Git Graph | gitGraph | Branching strategies |
| Mindmap | mindmap | Brainstorming, concept maps |
| Timeline | timeline | Roadmaps, milestones |
| Journey | journey | UX flows, satisfaction mapping |
| Quadrant | quadrantChart | Prioritization, 2-axis comparison |
| C4 Context | C4Context | High-level system architecture |
| XY Chart | xychart | Line/bar charts, metrics |
| Requirement | requirementDiagram | Requirements traceability |
| Sankey | sankey | Resource/data flow volumes |
| Block | block-beta | Component layouts, hardware |
max_label_length in config.yaml)", <, >, {, } - use parentheses or brackets instead<br> for line breaks within nodes%%{init:...}%% theme directives — theming is handled by config.yamlSee references/mermaid-diagrams.md for complete syntax templates and choosing the right diagram type.
See references/formatting-guide.md for examples of each diagram type.
Use standard markdown tables. Keep columns reasonable in width - the builder flows text within cells.
| Column A | Column B | Column C |
|----------|----------|----------|
| Value 1 | Value 2 | Value 3 |
#f6f8fa by default)#e1e4e8 by default)Both ordered and unordered lists are supported with nesting:
- Item one
- Nested item
- Deeply nested
1. First step
2. Second step
1. Sub-step
Include images with standard markdown syntax. Images should be placed in the Document Builder's Assets/ directory or referenced by absolute path.

The builder scales images to fit within page margins while preserving aspect ratio.
Force a page break with an HTML comment:
<!-- pagebreak -->
Or use a horizontal rule as a visual section separator (does not force a page break):
---
Use these commands to build PDFs:
/gerdsenai:build <file> - Build a single file into a PDF/gerdsenai:build --recursive [dir] - Build all .md files in a directory tree (PDFs placed alongside source files)PDFs can be saved to different locations based on your settings:
Override for a single build: /gerdsenai:build file.md --output-dir /path/to/dir
Override the output filename: /gerdsenai:build file.md --output-name MyReport
Cover and footer logos are configured via /gerdsenai:setup (choose "Configure settings"). The setup command lets you browse available logos in the Assets/ directory and add new ones.
Before building, verify:
title, author, and date# H1 heading (used as cover page title)---)See references/config-options.md for all config.yaml options.
npx claudepluginhub gerdsenai/gerdsenai-markdown-to-pdf-suite-claude-plugin --plugin gerdsenaiConverts Markdown documents to professionally typeset PDFs using reportlab (primary) or pandoc+XeLaTeX (fallback). Handles CJK/Latin mixed text, code blocks, tables, Obsidian callouts, math formulas, and 14 color themes. Triggered by "markdown to PDF", "md2pdf", "any2pdf", or export requests.
Creates scientific documents and diagrams using markdown with embedded Mermaid. Default format for version-controlled documentation, enabling clean diffs and no build steps.
Writes Markdown documents and text-based Mermaid diagrams with style guides, 24 diagram-type references, and 9 document templates. Use for scientific documents, reports, READMEs, or version-controllable diagrams.