Generate professional documents in multiple formats (PDF, DOCX, HTML, ODT, EPUB, RTF). Use when the user says "make a PDF", "generate a report", "create a document", "export to Word", "make a Word doc", "convert to PDF", "export findings", "create documentation", or wants to save analysis results as a formatted document.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add Uniswap/ai-toolkit --skill generate-document --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Generate Document?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/uniswap-generate-document)More formats (shields.io, HTML) on the badges page.
---
name: generate-document
description: Generate professional documents in multiple formats (PDF, DOCX, HTML, ODT, EPUB, RTF). Use when the user says "make a PDF", "generate a report", "create a document", "export to Word", "make a Word doc", "convert to PDF", "export findings", "create documentation", or wants to save analysis results as a formatted document.
allowed-tools: Read, Write, Bash(pandoc:*), Bash(which:*), Bash(rm:/tmp/document_*:*), Bash(mkdir:*), Bash(open:*), Bash(xdg-open:*), Glob, Grep
---
# Document Generator
Generate professional documents in multiple formats from markdown content using pandoc.
## Prerequisites
Requires [pandoc](https://pandoc.org/). For PDF output, also requires a LaTeX distribution (e.g., `basictex` on macOS, `texlive-xetex` on Ubuntu/Debian).
## Instructions
1. **Check pandoc availability**: Run `which pandoc`. If not found, inform the user of installation requirements.
2. **Collect content**: Gather content from the conversation (security findings, code reviews, research summaries, meeting notes, etc.) or from files the user points to.
3. **Determine format**: Infer from context or ask the user:
- "PDF" or "report" -> PDF
- "Word" or "doc" or "docx" -> DOCX
- "HTML" or "web" -> HTML
- Default to PDF if unspecified
4. **Structure the document**: Organize content into well-formatted markdown with YAML frontmatter, sections, and appropriate formatting. See [references/templates.md](references/templates.md) for content-type-specific templates (security reports, code reviews, research summaries).
5. **Write markdown to temp file**: Save content to `/tmp/document_<timestamp>.md`
6. **Convert with pandoc**: Run the appropriate command from the format reference below.
7. **Clean up**: Delete the temporary markdown file after successful conversion.
8. **Report output**: Tell the user the output path and suggest how to open it.
## Pandoc Commands by Format
### PDF (via LaTeX)
```bash
pandoc /tmp/document.md -o ./report.pdf \
--pdf-engine=xelatex \
-V geometry:margin=1in \
-V fontsize=11pt \
--toc \
--highlight-style=tango
```
### PDF (via wkhtmltopdf - fallback if no LaTeX)
```bash
pandoc /tmp/document.md -o ./report.pdf \
--pdf-engine=wkhtmltopdf \
--css=/tmp/style.css
```
### Word (DOCX)
```bash
pandoc /tmp/document.md -o ./report.docx \
--toc \
--highlight-style=tango
```
### HTML (standalone)
```bash
pandoc /tmp/document.md -o ./report.html \
--standalone \
--toc \
--highlight-style=tango \
--metadata title="Report Title"
```
### OpenDocument (ODT)
```bash
pandoc /tmp/document.md -o ./report.odt \
--toc
```
### EPUB
```bash
pandoc /tmp/document.md -o ./report.epub \
--toc \
--epub-chapter-level=2
```
### RTF
```bash
pandoc /tmp/document.md -o ./report.rtf
```
### Plain Text
```bash
pandoc /tmp/document.md -o ./report.txt \
--wrap=auto
```
## Markdown Document Template
Structure markdown content following this template. Adapt sections based on content type.
```markdown
---
title: 'Document Title'
subtitle: 'Optional Subtitle'
author: 'Author Name'
date: '2024-01-15'
abstract: |
Brief summary of the document contents.
Can span multiple lines.
---
# Executive Summary
High-level overview of findings or content.
# Section 1: Category Name
## Subsection 1.1
Content with **bold**, _italic_, and `inline code`.
### Finding ID-001: Finding Title
**Severity:** Critical | High | Medium | Low | Info
**Location:** `path/to/file.ts:42`
**Description:**
Detailed description of the finding or item.
**Recommendation:**
Actionable steps to address the finding.
---
# Section 2: Data Tables
| Column A | Column B | Column C |
| -------- | -------- | -------- |
| Value 1 | Value 2 | Value 3 |
# Appendix A: References
1. Reference One - <https://example.com>
```
For content-type-specific templates, see [references/templates.md](references/templates.md).
## Output Path Convention
Default output location: `./<descriptive-name>.<ext>` (current working directory).
If the user specifies a custom output directory, run `mkdir -p <directory>` before invoking pandoc.
Use descriptive names derived from content:
- `security-review-myapp-2024-01-15.pdf`
- `code-review-pr-123.docx`
- `research-caching-strategies.html`
## Key Guidelines
- **Format Selection:** Default to PDF for reports; use DOCX for documents requiring edits
- **Page Breaks:** Insert `\newpage` for PDF or use horizontal rules `---` as section breaks
- **Temp Files:** Always clean up `/tmp/document_*.md` files after conversion
- **Sensitive Data:** Never include API keys, passwords, or credentials in documents
- **Error Handling:** If pandoc fails, see [references/troubleshooting.md](references/troubleshooting.md)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!