{"id":"a95f1fa1-0808-4ac8-8ec4-2ae40660d85e","shortId":"VWWY9r","kind":"skill","title":"elegant-reports","tagline":"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.","description":"# elegant-reports\n\nGenerate minimalist PDF reports inspired by Scandinavian editorial design.\n\n## When to Use\n\nUse this skill when the user wants:\n- polished executive briefings or board-style reports\n- presentation-like PDFs generated from markdown\n- a clean Nordic visual language instead of default developer styling\n- a reusable report template system that can be extended carefully\n\n## Quick Start\n\nInstall the pinned dependencies from `package-lock.json`, then run:\n\n```bash\ncd /path/to/elegant-reports\nnode ./generate.js --list\nnode ./generate.js examples/sample-executive.md output.pdf --template executive --theme light\n```\n\nFor HTML debugging, add `--output-html` so the generator saves the rendered HTML alongside the PDF.\n\n## Available Templates\n\n| Template | Use Case |\n|----------|----------|\n| `executive` | polished briefings and compact executive summaries |\n| `report` | denser narrative reports and analysis writeups |\n| `presentation` | bold slide-like outputs with one idea per page |\n| `report-demo` | legacy report variant for comparison/testing |\n| `presentation-demo` | legacy presentation variant for comparison/testing |\n\nEach template supports `light` and `dark` themes where available.\n\n## Frontmatter\n\nAdd YAML frontmatter to control the rendered output:\n\n```markdown\n---\ntitle: Q4 Competitive Analysis\nsubtitle: Market Intelligence Report\nauthor: Report Author\ntemplate: report\ntheme: dark\n---\n\nYour content here...\n```\n\n## Workflow\n\n1. Pick the closest existing template instead of starting from scratch.\n2. Write or refine the source markdown.\n3. Generate a PDF.\n4. If layout tuning is needed, inspect the emitted HTML with `--output-html` and adjust the corresponding template/theme pair.\n5. Re-run until the design is clean and the PDF is stable.\n\n## Extending the Skill\n\nWhen authoring a new visual variant:\n- start from the nearest bundled template and theme\n- keep token names and spacing scales consistent with the existing system\n- make one visual change at a time and regenerate after each step\n- prefer additive variants over rewriting the whole design language\n- keep legacy/demo templates available until the replacement is verified\n\nThe bundled Nordic design research note is the canonical reference for the visual system. Read it only when you need deeper design rationale.\n\n## Safety Boundaries\n\n- 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.\n- Do not browse arbitrary local files. Limit reads to the skill bundle and user-approved input/output paths.\n- Do not overwrite or delete files outside the user-approved working directory.\n- Do not install extra packages, change dependency versions, or add new external services unless the user explicitly asks for that setup work.\n- Do not claim a report was generated successfully unless the output artifact exists and the generator completed without error.\n- Do not fetch external design inspiration or web references unless the user explicitly wants fresh visual research.\n\n## Dependencies\n\n- Node.js 18+\n- pinned npm dependencies from `package-lock.json`\n- `NUTRIENT_DWS_API_KEY` environment variable for PDF generation\n\n## File Map\n\n- main generator CLI and module entrypoint\n- bundled HTML templates\n- bundled visual themes\n- sample markdown input\n- optional deeper design rationale bundled with the skill\n\n## Validation\n\nBefore calling the skill done:\n- run `node ./generate.js --list`\n- run `npm test`\n- verify the expected PDF or HTML artifact exists in the requested output path","tags":["elegant","reports","agent","skills","jdrhyne","agent-skills","agentic-ai","ai-agents","automation","claude-code","clawdbot","codex"],"capabilities":["skill","source-jdrhyne","skill-elegant-reports","topic-agent-skills","topic-agentic-ai","topic-ai-agents","topic-automation","topic-claude-code","topic-clawdbot","topic-codex","topic-cursor","topic-developer-tools","topic-gemini-cli","topic-github-copilot","topic-llm-agents"],"categories":["agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/jdrhyne/agent-skills/elegant-reports","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add jdrhyne/agent-skills","source_repo":"https://github.com/jdrhyne/agent-skills","install_from":"skills.sh"}},"qualityScore":"0.565","qualityRationale":"deterministic score 0.56 from registry signals: · indexed on github topic:agent-skills · 230 github stars · SKILL.md body (3,605 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:54:18.811Z","embedding":null,"createdAt":"2026-04-18T22:04:55.281Z","updatedAt":"2026-04-22T00:54:18.811Z","lastSeenAt":"2026-04-22T00:54:18.811Z","tsv":"'/generate.js':105,108,520 '/path/to/elegant-reports':103 '1':216 '18':472 '2':227 '3':234 '4':238 '5':258 'accept':377 'add':118,188,421 'addit':313 'adjust':253 'aesthet':12 'alongsid':129 'analysi':19,149,200 'api':480 'approv':396,409 'arbitrari':384 'artifact':445,531 'ask':429 'author':205,207,276 'avail':132,186,324 'bash':101 'beauti':5 'board':61 'board-styl':60 'bold':152 'boundari':354,380 'brief':18,58,139 'brows':383 'bundl':285,331,392,495,498,508 'call':514 'canon':338 'care':90 'case':136 'cd':102 'chang':303,417 'claim':436 'clean':72,266 'cli':491 'closest':219 'compact':141 'comparison/testing':169,177 'competit':199 'complet':450 'consist':295 'content':213 'control':192 'correspond':255 'creat':15 'dark':183,211 'debug':117 'deeper':350,505 'default':78 'delet':403 'demo':164,172 'denser':145 'depend':96,418,470,475 'design':6,45,264,319,333,351,457,506 'develop':79 'directori':411 'document':360 'done':517 'dws':33,375,479 'editori':44 'eleg':2,35 'elegant-report':1,34 'emit':246 'entrypoint':494 'environ':482 'error':452 'examples/sample-executive.md':109 'execut':17,57,112,137,142 'exist':220,298,446,532 'expect':527 'explicit':369,428,465 'extend':89,272 'extern':423,456 'extra':415 'fetch':455 'file':386,404,487 'fresh':467 'frontmatt':187,190 'generat':4,37,68,124,235,372,440,449,486,490 'html':30,116,121,128,247,251,496,530 'idea':159 'input':503 'input/output':397 'inspect':244 'inspir':41,458 'instal':93,414 'instead':76,222 'intellig':203 'keep':289,321 'key':481 'languag':75,320 'layout':240 'legaci':165,173 'legacy/demo':322 'light':114,181 'like':66,155 'limit':387 'list':106,521 'local':385 'main':489 'make':300 'map':488 'markdown':28,70,196,233,502 'market':202 'minimalist':38 'modul':493 'name':291 'narrat':146 'nearest':284 'need':243,349 'network':379 'new':278,422 'node':104,107,519 'node.js':471 'nordic':73,332 'nordic/scandinavian':11 'note':335 'npm':474,523 'nutrient':32,374,478 'one':158,301 'option':504 'output':26,120,156,195,250,444,536 'output-html':119,249 'output.pdf':110 'outsid':405 'overwrit':401 'packag':416 'package-lock.json':98,477 'page':161 'pair':257 'parti':364 'path':398,537 'pdf':7,25,39,131,237,269,371,485,528 'pdfs':67 'per':160 'pick':217 'pin':95,473 'polish':16,56,138 'prefer':312 'present':23,65,151,171,174 'presentation-demo':170 'presentation-lik':64 'presentation-styl':22 'q4':198 'quick':91 'rational':352,507 're':260 're-run':259 'read':344,388 'refer':339,461 'refin':230 'regener':308 'render':127,194 'replac':327 'report':3,8,20,36,40,63,83,144,147,163,166,204,206,209,438 'report-demo':162 'request':370,535 'research':334,469 'reusabl':82 'rewrit':316 'run':100,261,518,522 'safeti':353 'sampl':501 'save':125 'scale':294 'scandinavian':43 'scratch':226 'send':357 'sensit':358 'servic':365,424 'setup':432 'skill':51,274,391,511,516 'skill-elegant-reports' 'slide':154 'slide-lik':153 'sourc':232,359 'source-jdrhyne' 'space':293 'stabl':271 'start':92,224,281 'step':311 'style':24,62,80 'subtitl':201 'success':441 'summari':143 'support':180 'system':85,299,343 'templat':84,111,133,134,179,208,221,286,323,497 'template/theme':256 'test':524 'theme':113,184,210,288,500 'third':363 'third-parti':362 'time':306 'titl':197 'token':290 'topic-agent-skills' 'topic-agentic-ai' 'topic-ai-agents' 'topic-automation' 'topic-claude-code' 'topic-clawdbot' 'topic-codex' 'topic-cursor' 'topic-developer-tools' 'topic-gemini-cli' 'topic-github-copilot' 'topic-llm-agents' 'tune':241 'unless':366,425,442,462 'use':13,48,49,135 'user':54,368,395,408,427,464 'user-approv':394,407 'valid':512 'variabl':483 'variant':167,175,280,314 'verifi':329,525 'version':419 'via':31 'visual':74,279,302,342,468,499 'want':55,466 'web':460 'whole':318 'without':451 'work':410,433 'workflow':215 'write':228 'writeup':150 'yaml':189","prices":[{"id":"7ef711ee-2643-43a3-85a8-f768b87f51e6","listingId":"a95f1fa1-0808-4ac8-8ec4-2ae40660d85e","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"jdrhyne","category":"agent-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:04:55.281Z"}],"sources":[{"listingId":"a95f1fa1-0808-4ac8-8ec4-2ae40660d85e","source":"github","sourceId":"jdrhyne/agent-skills/elegant-reports","sourceUrl":"https://github.com/jdrhyne/agent-skills/tree/main/skills/elegant-reports","isPrimary":false,"firstSeenAt":"2026-04-18T22:04:55.281Z","lastSeenAt":"2026-04-22T00:54:18.811Z"}],"details":{"listingId":"a95f1fa1-0808-4ac8-8ec4-2ae40660d85e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"jdrhyne","slug":"elegant-reports","github":{"repo":"jdrhyne/agent-skills","stars":230,"topics":["agent-skills","agentic-ai","ai-agents","automation","claude-code","clawdbot","codex","cursor","developer-tools","gemini-cli","github-copilot","llm-agents","mcp","openclaw","prompt-engineering","prompts"],"license":null,"html_url":"https://github.com/jdrhyne/agent-skills","pushed_at":"2026-03-27T14:29:53Z","description":"A collection of AI agent skills for Clawdbot, Claude Code, Codex","skill_md_sha":"c89bf04828149bd9eec94f6e03683a3106bd4ad6","skill_md_path":"skills/elegant-reports/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/jdrhyne/agent-skills/tree/main/skills/elegant-reports"},"layout":"multi","source":"github","category":"agent-skills","frontmatter":{"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."},"skills_sh_url":"https://skills.sh/jdrhyne/agent-skills/elegant-reports"},"updatedAt":"2026-04-22T00:54:18.811Z"}}