---
name: "Letter Publisher"
description: "User wants to publish text content as a beautiful web page. Use this skill for:
letters to stakeholders, personal essays, public notices, thesis summaries,
announcements, or any text that deserves great typography.
Triggers: \"publish a letter\", \"post this essay\", \"make this a web page\",
\"I want to publish\", \"create a notice\", \"publish my writing\"
"
requiredApps: [github]
---
Turn your words into beautiful, shareable web pages.
Write a letter to investors, publish an essay, post a public notice, or share
a thesis summary—all rendered with professional typography optimized for reading.
Choose from three distinct styles: Modern (clean and contemporary), Classic
(warm and traditional with drop caps), or Serif (refined and bookish).
Every published letter gets a permanent URL on GitHub Pages. Mobile-responsive,
dark mode ready, and lightning fast. Optionally add a header image—attach your
own or generate one with AI.
Need help writing? The drafting mode guides you through crafting your message
with back-and-forth conversation before publishing.
**Limitations:** Static pages only—no comments or analytics.
GitHub Pages URLs (no custom domains).
Single header image per letter.
## Skills
This skill depends on the following skills. Use these if needed.
**Web App Publisher**
When: Publishing the rendered HTML to GitHub Pages
Follow the instructions in: `skills/sauna/publish.letter.writer/references/skills/web.github.publisher/SKILL.md`
**AI Image Studio**
When: User wants to generate a header image
Follow the instructions in: `skills/sauna/publish.letter.writer/references/skills/media.image.generator/SKILL.md`
**Image Hosting**
When: User has an existing image to use as header
Follow the instructions in: `skills/sauna/publish.letter.writer/references/skills/media.github.host/SKILL.md`
## Tasks
These are tasks you can execute. Read the task file to get your instructions:
**Publish Letter**
When: User has content ready to publish
Follow the instructions in: `skills/sauna/publish.letter.writer/references/recipes/publish.letter.publish.md`
**Draft Letter**
When: User wants help writing their letter through conversation
Follow the instructions in: `skills/sauna/publish.letter.writer/references/recipes/publish.letter.draft.md`
**Edit Published Letter**
When: User wants to modify an existing published letter
Follow the instructions in: `skills/sauna/publish.letter.writer/references/recipes/publish.letter.edit.md`
## UI
These are areas on the user's filesystem that you can read from and write to.
**Published Letters Index**
When: Check previously published letters
Use this file: `documents/published-letters.json`
Usage Guide: Track published letters with their URLs, styles, and publication dates. JSON array where each entry contains: title, url, style (modern/classic/elegant), author (optional), publishedAt (ISO date), and slug (URL-safe project name). Append new entries on publish; update existing entries by matching slug on re-publish.
## Knowledge
This is knowledge you have access to. Read these files if you need additional context:
**Letter Typography System**
When: Reference for style options and typography system
Read the documentation in: `skills/sauna/publish.letter.writer/references/publish.letter.typography.md`
**Letter Writing Guide**
When: Guidance for drafting letters conversationally
Read the documentation in: `skills/sauna/publish.letter.writer/references/publish.letter.writing.md`
## Code
These are scripts that you can run directly. Read these files to access the code:
**Render Letter HTML**
Run the script at: `skills/sauna/publish.letter.writer/scripts/publish.letter.render.js`
**Fetch Published Letter**
Run the script at: `skills/sauna/publish.letter.writer/scripts/publish.letter.fetch.js`