pandoc
Automatically assist with Pandoc document conversions when user mentions converting markdown to PDF/DOCX/HTML or other formats. Validate YAML frontmatter, check dependencies (bibliography, images), and provide format-specific conversion guidance. Use when user asks about citations, academic papers, presentations, or document generation from markdown.
What this skill does
# Pandoc Document Conversion
## Quick Example
```bash
# User: "Convert my thesis to PDF with citations"
# Skill assists by:
# 1. Validating YAML frontmatter (spaces, required fields)
# 2. Checking bibliography.bib and harvard.csl exist
# 3. Running: pandoc thesis.md -o thesis.pdf --citeproc --number-sections
# 4. ✅ Output: thesis.pdf created successfully
```
## Overview
Provide expert assistance for converting markdown documents to PDF, DOCX, HTML, and presentations using Pandoc. Handle YAML frontmatter validation, bibliography setup, template generation, and format-specific conversion guidance.
## When to Use This Skill
Automatically invoke this skill when the user:
- Mentions "convert to PDF", "generate PDF", "export to Word/DOCX"
- Asks about "pandoc", "markdown to PDF", "document conversion"
- Shows markdown with YAML frontmatter
- Asks about citations, bibliographies, academic papers
- Requests help with presentations (Beamer, reveal.js)
- Mentions LaTeX, XeLaTeX, or PDF engines
- Has errors converting documents
**Do not use** for:
- Simple markdown rendering/preview
- Other converters (not Pandoc)
- Markdown syntax questions (unless conversion-related)
## Plugin Resources
### Scripts
- `scripts/validate.py` - Python validation script for YAML frontmatter and dependencies
### Templates (in assets/templates/)
- `academic-paper.yaml` - Academic paper with citations
- `thesis-report.yaml` - Thesis/report with custom title page
- `presentation-beamer.yaml` - LaTeX Beamer slides
- `presentation-revealjs.yaml` - reveal.js web slides
- `article-simple.yaml` - Simple article format
- `defaults-pdf.yaml` - Reusable PDF defaults file
- `references.bib` - BibTeX bibliography template
- `Makefile` - Project automation template
### Citation Styles (in assets/csl/)
- `harvard.csl` - Harvard Cite Them Right style
- `apa.csl` - APA 7th edition style
- `ieee.csl` - IEEE style
Users can copy these to their project without downloading separately.
### References
- `references/conversion_guide.md` - Format-specific instructions
- `references/yaml_reference.md` - Complete YAML variables
- `references/templates_guide.md` - Template usage guide
- `references/troubleshooting.md` - Common errors and solutions
## Core Workflows
### 1. Validate Document
**User asks:** "Check if my document is ready to convert"
**Workflow using tools directly:**
```bash
# Path to validation script
PLUGIN_DIR="${CLAUDE_SKILL_DIR}"
VALIDATE_SCRIPT="$PLUGIN_DIR/skills/pandoc/scripts/validate.py"
# Run validation
python3 "$VALIDATE_SCRIPT" document.md
```
**Suggest to user:** "You can also validate with: `/pandoc:validate document.md`"
### 2. Create from Template
**User asks:** "Help me create an academic paper"
**Workflow using tools directly:**
```bash
# Path to templates
PLUGIN_DIR="${CLAUDE_SKILL_DIR}"
TEMPLATE="$PLUGIN_DIR/skills/pandoc/assets/templates/academic-paper.yaml"
# Copy template to user's file
cp "$TEMPLATE" paper.md
# Show what to edit
echo "Created paper.md from template"
echo ""
echo "Edit the following fields:"
echo " - title: Your paper title"
echo " - author: Your name"
echo " - bibliography: Path to your .bib file"
```
**Suggest to user:** "Or use the template command: `/pandoc:template academic-paper paper.md`"
### 3. Convert Document
**User asks:** "Convert this to PDF"
**Workflow using tools directly:**
```bash
# Validate first
PLUGIN_DIR="${CLAUDE_SKILL_DIR}"
python3 "$PLUGIN_DIR/skills/pandoc/scripts/validate.py" document.md
if [[ $? -eq 0 ]]; then
# Check for bibliography
if grep -q "^bibliography:" document.md; then
CITEPROC="--citeproc"
echo "Bibliography detected - enabling citations"
fi
# Convert with smart defaults
pandoc document.md -o document.pdf \
--pdf-engine=pdflatex \
--number-sections \
$CITEPROC
if [[ $? -eq 0 ]]; then
echo "✅ Conversion successful: document.pdf"
else
echo "❌ Conversion failed - check errors above"
fi
else
echo "❌ Validation failed - fix errors before converting"
fi
```
**Suggest to user:** "Or use the convert command with smart defaults: `/pandoc:convert document.md document.pdf`"
### 4. Add Frontmatter to Existing File
**User asks:** "This markdown file needs frontmatter"
**Workflow using tools directly:**
```bash
FILE="document.md"
PLUGIN_DIR="${CLAUDE_SKILL_DIR}"
TEMPLATE="$PLUGIN_DIR/skills/pandoc/assets/templates/academic-paper.yaml"
# Check if already has frontmatter
if head -n 1 "$FILE" | grep -q "^---$"; then
echo "File already has frontmatter"
echo "Use Read tool to view and Edit tool to modify"
else
# Read existing content
CONTENT=$(cat "$FILE")
# Create temp file with template + content
{
cat "$TEMPLATE"
echo ""
echo "$CONTENT"
} > "${FILE}.tmp"
# Replace original
mv "${FILE}.tmp" "$FILE"
echo "✅ Added frontmatter to $FILE"
echo "Edit the YAML fields at the top of the file"
fi
```
**Suggest to user:** "Or use: `/pandoc:frontmatter document.md`"
### 5. Setup Bibliography
**User asks:** "How do I add citations?"
**Workflow:**
1. **Create bibliography file:**
```bash
PLUGIN_DIR="${CLAUDE_SKILL_DIR}"
BIB_TEMPLATE="$PLUGIN_DIR/skills/pandoc/assets/templates/references.bib"
cp "$BIB_TEMPLATE" references.bib
echo "Created references.bib - edit to add your sources"
```
2. **Copy CSL file (bundled with plugin):**
```bash
PLUGIN_DIR="${CLAUDE_SKILL_DIR}"
# Choose one:
cp "$PLUGIN_DIR/skills/pandoc/assets/csl/harvard.csl" .
cp "$PLUGIN_DIR/skills/pandoc/assets/csl/apa.csl" .
cp "$PLUGIN_DIR/skills/pandoc/assets/csl/ieee.csl" .
```
3. **Update frontmatter:**
Use Edit tool to add to document:
```yaml
bibliography: references.bib
csl: harvard.csl
link-citations: true
```
4. **Explain citation syntax:**
```markdown
Use [@citekey] for citations
Use @citekey for in-text citations
```
**Note:** Plugin includes Harvard, APA, and IEEE styles. For other styles, download from https://github.com/citation-style-language/styles
### 6. Restyle Document to Match Template
**User asks:** "Transform this document to match academic paper format"
**Workflow using tools directly:**
```bash
PLUGIN_DIR="${CLAUDE_SKILL_DIR}"
INPUT_FILE="document.md"
TARGET_STYLE="academic-paper" # or thesis, article, etc.
# 1. Backup original
cp "$INPUT_FILE" "${INPUT_FILE}.bak"
echo "Backed up to ${INPUT_FILE}.bak"
# 2. Read current frontmatter
echo "Current frontmatter:"
sed -n '/^---$/,/^---$/p' "$INPUT_FILE"
# 3. Get target template
TEMPLATE="$PLUGIN_DIR/skills/pandoc/assets/templates/${TARGET_STYLE}.yaml"
if [[ -f "$TEMPLATE" ]]; then
# 4. Extract content (everything after second ---)
CONTENT=$(sed -n '/^---$/,/^---$/{/^---$/d;p};/^---$/,$p' "$INPUT_FILE" | tail -n +2)
# 5. Combine template frontmatter + content
{
cat "$TEMPLATE"
echo ""
echo "$CONTENT"
} > "${INPUT_FILE}.tmp"
# 6. Replace original
mv "${INPUT_FILE}.tmp" "$INPUT_FILE"
echo "✅ Restyled to $TARGET_STYLE format"
echo ""
echo "Next steps:"
echo " 1. Edit frontmatter fields (author, title, etc.)"
echo " 2. Validate: Check document is ready"
echo " 3. Convert: Generate output"
else
echo "❌ Template not found: $TARGET_STYLE"
echo "Available: academic-paper, thesis, article, presentation-beamer, presentation-reveal"
fi
```
**Common use cases:**
1. **OCR/PDF → Academic:**
- Remove: `processed_date`, `ocr_model`, `source_type`
- Add: `author`, `bibliography`, `documentclass`
2. **Draft → Thesis:**
- Add: `supervisor`, `institution`, `department`
- Add: `toc`, `lof`, `lot`
3. **Blog → Paper:**
- Add: `bibliography`, `csl`, `numbersections`
- Update: `documentclass` to `report`
**Suggest to user:** "Or use: `/pandoc:restyle document.md academic-paper`"
## Error Diagnosis
### Common Errors and Fixes
**Missing bRelated in Ads & Marketing
ads
IncludedMulti-platform paid advertising audit and optimization skill. Analyzes Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads. 250+ checks with scoring, parallel agents, industry templates, and AI creative generation.
banana
IncludedAI image generation Creative Director powered by Google Gemini Nano Banana models. Use this skill for ANY request involving image creation, editing, visual asset production, or creative direction. Triggers on: generate an image, create a photo, edit this picture, design a logo, make a banner, visual for my anything, and all /banana commands. Handles text-to-image, image editing, multi-turn creative sessions, batch workflows, and brand presets.
rpg-migration-analyzer
IncludedAnalyzes legacy RPG (Report Program Generator) programs from AS/400 and IBM i systems for migration to modern Java applications. Extracts business logic from RPG III/IV/ILE source code, identifies data structures (D-specs), file operations (F-specs), program dependencies (CALLB/CALLP), and converts RPG constructs to Java equivalents. Generates migration reports, complexity estimates, and Java implementation strategies with POJO classes, JPA entities, and service methods. Use when modernizing AS/400 or IBM i legacy systems, analyzing RPG source files (.rpg, .rpgle, .RPGLE), converting RPG to Java, mapping data specifications to Java classes, planning legacy system migration, or when user mentions RPG analysis, Report Program Generator, RPG III/IV/ILE, AS/400 modernization, IBM i migration, packed decimal conversion, or mainframe application rewrite.
brand-library-architect
IncludedBuild a complete brand library for a product — visual asset render pipeline, brand documentation set (BRAND, COPY, MANIFESTO, BIOS, FAQ, GLOSSARY, TONE, PRICING), open-source convention files (README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), and a self-contained press kit. This skill should be used when the user asks to "build a brand library / brand kit / press kit / brand assets" for a product, "set up a brand library workflow," "create a positioning manifesto plus visual identity," or any combination of brand documentation + visual asset pipeline. Apply phase-by-phase or run end-to-end. Templates are product-agnostic and use {{TOKEN}} placeholders the skill prompts the user to fill.
writing-tech-post
IncludedAuthors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
blog-google
IncludedGoogle API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".