elegant-reports

$npx mdskill add jdrhyne/agent-skills/elegant-reports

Generate minimalist PDF reports with Scandinavian editorial design from markdown.

  • Creates polished executive briefings and presentation-style PDFs from markdown.
  • Uses Nutrient DWS for PDF generation and Node.js for template rendering.
  • Selects templates and themes based on user request and bundled design references.
  • Outputs HTML previews and final PDF files to approved working directories.

SKILL.md

.github/skills/elegant-reportsView on GitHub ↗
---
name: elegant-reports
description: Generate beautifully designed PDF reports with a Nordic/Scandinavian aesthetic. Use when creating polished executive briefings, analysis reports, or presentation-style PDF outputs from markdown and HTML via Nutrient DWS.
metadata: {"clawdbot":{"requires":{"bins":["node","npm"]}}}
permissions:
  - exec: "Runs the local Node generator to list templates, render preview HTML, and create PDF outputs when the user asks."
  - file_read: "Reads bundled templates, themes, examples, and design references inside the skill directory plus user-approved input markdown files."
  - file_write: "Writes generated HTML/PDF outputs and user-requested template or theme files inside approved working directories."
  - network: "Calls Nutrient DWS and any hosted font assets used by the bundled templates when the user requests report generation."
---

# elegant-reports

Generate minimalist PDF reports inspired by Scandinavian editorial design.

## When to Use

Use this skill when the user wants:
- polished executive briefings or board-style reports
- presentation-like PDFs generated from markdown
- a clean Nordic visual language instead of default developer styling
- a reusable report template system that can be extended carefully

## Quick Start

Install the pinned dependencies from `package-lock.json`, then run:

```bash
cd /path/to/elegant-reports
node ./generate.js --list
node ./generate.js examples/sample-executive.md output.pdf --template executive --theme light
```

For HTML debugging, add `--output-html` so the generator saves the rendered HTML alongside the PDF.

## Available Templates

| Template | Use Case |
|----------|----------|
| `executive` | polished briefings and compact executive summaries |
| `report` | denser narrative reports and analysis writeups |
| `presentation` | bold slide-like outputs with one idea per page |
| `report-demo` | legacy report variant for comparison/testing |
| `presentation-demo` | legacy presentation variant for comparison/testing |

Each template supports `light` and `dark` themes where available.

## Frontmatter

Add YAML frontmatter to control the rendered output:

```markdown
---
title: Q4 Competitive Analysis
subtitle: Market Intelligence Report
author: Report Author
template: report
theme: dark
---

Your content here...
```

## Workflow

1. Pick the closest existing template instead of starting from scratch.
2. Write or refine the source markdown.
3. Generate a PDF.
4. If layout tuning is needed, inspect the emitted HTML with `--output-html` and adjust the corresponding template/theme pair.
5. Re-run until the design is clean and the PDF is stable.

## Extending the Skill

When authoring a new visual variant:
- start from the nearest bundled template and theme
- keep token names and spacing scales consistent with the existing system
- make one visual change at a time and regenerate after each step
- prefer additive variants over rewriting the whole design language
- keep legacy/demo templates available until the replacement is verified

The bundled Nordic design research note is the canonical reference for the visual system. Read it only when you need deeper design rationale.

## Safety Boundaries

- Do not send sensitive source documents to third-party services unless the user explicitly requested PDF generation through Nutrient DWS and accepts that network boundary.
- Do not browse arbitrary local files. Limit reads to the skill bundle and user-approved input/output paths.
- Do not overwrite or delete files outside the user-approved working directory.
- Do not install extra packages, change dependency versions, or add new external services unless the user explicitly asks for that setup work.
- Do not claim a report was generated successfully unless the output artifact exists and the generator completed without error.
- Do not fetch external design inspiration or web references unless the user explicitly wants fresh visual research.

## Dependencies

- Node.js 18+
- pinned npm dependencies from `package-lock.json`
- `NUTRIENT_DWS_API_KEY` environment variable for PDF generation

## File Map

- main generator CLI and module entrypoint
- bundled HTML templates
- bundled visual themes
- sample markdown input
- optional deeper design rationale bundled with the skill

## Validation

Before calling the skill done:
- run `node ./generate.js --list`
- run `npm test`
- verify the expected PDF or HTML artifact exists in the requested output path

More from jdrhyne/agent-skills

SkillDescription
auto-updaterAutomatically update OpenClaw and selected skills once daily. Runs via cron, checks for updates, applies them, and messages the user with a summary of what changed.
autoresearch-loopDomain-agnostic metric-driven improvement loop, generalizing Karpathy's autoresearch. Use when you want an agent to discover what to measure for a project/goal, then run a keep-or-revert experiment loop that proposes changes, measures them against an objective, keeps wins, discards regressions, and records implemented improvements. Adapts to code perf-auditing, codegen, bug-finding, ad optimization, or any artifact + measurable objective + trial. Trigger: 'autoresearch this', 'find and implement improvements to X', 'discover metrics and optimize'.
clawdbot-release-checkCheck for new OpenClaw releases and notify once per new version.
clawddocsOpenClaw documentation expert with decision tree navigation, search scripts, doc fetching, version tracking, and config snippets for all OpenClaw features
command-creatorThis skill should be used when creating a Claude Code slash command. Use when users ask to "create a command", "make a slash command", "add a command", or want to document a workflow as a reusable command. Essential for creating optimized, agent-executable slash commands with proper structure and best practices.
context-recoveryAutomatically recover working context after session compaction or when continuation is implied but context is missing. Works across Discord, Slack, Telegram, Signal, and other supported channels.
design-auditPremium UI/UX design auditor with Jobs/Ive philosophy. Use when reviewing, evaluating, or elevating existing UI — triggers on "audit my design", "review UI", "make it feel premium", "design review", "UX audit", "elevate the design", "Jobs/Ive style", or when asked to improve visual quality of an existing interface without changing functionality.
ga4Query Google Analytics 4 (GA4) data via the Analytics Data API. Use when you need to pull website analytics like top pages, traffic sources, user counts, sessions, conversions, or any GA4 metrics/dimensions. Supports custom date ranges and filtering.
gallery-scraperBulk download images from login-protected gallery websites using an attached browser session. Use when asked to scrape, download, or save images from authenticated gallery pages, extract full-size images from thumbnails, or batch download from multi-page galleries.
gongGong API for searching calls, transcripts, and conversation intelligence. Use when working with Gong call recordings, sales conversations, transcripts, meeting data, or conversation analytics. Supports listing calls, fetching transcripts, user management, and activity stats.