skills/leather-io/mono/leather-changelog

leather-changelog

SKILL.md

Leather Release Communications

Generate consistent, on-brand release communications for Leather wallet across changelog entries, X posts, and Slack announcements.

Process

  1. Gather context — Review provided feature description, Linear project, or GitHub PRs
  2. Identify the "why" — Determine the user problem being solved or improvement being delivered
  3. Read format references — See references/voice-and-formats.md for voice guidelines and templates
  4. Generate outputs — Create requested formats (changelog, X post, Slack, or all three)

Output Summary

Format Purpose Length
Changelog Permanent product record at app.leather.io/changelog 50-150 words
X single Quick announcement for smaller features 280 chars max
X thread Major releases needing context 3-5 tweets
Slack Community announcement 100-200 words

Voice Principles

  • Lead with impact — Start with why this matters to users, not what changed technically
  • Understated confidence — Let the product speak; avoid hype words ("excited", "thrilled", "game-changing")
  • One idea per sentence — Short, declarative statements
  • Show don't tell — Concrete benefits over abstract claims

See references/voice-and-formats.md for detailed guidelines and examples.

Sanity CMS Integration

Use scripts/sanity-changelog.js to upload changelog entries to Sanity CMS as drafts.

Setup

export SANITY_PROJECT_ID="your-project-id"
export SANITY_DATASET="production"  # optional, defaults to "production"
export SANITY_API_TOKEN="your-write-token"

Usage

# Test upload without creating (dry run)
node scripts/sanity-changelog.js --title "Feature title" --body changelog.md --dry-run

# Create draft in Sanity
node scripts/sanity-changelog.js --title "Feature title" --body changelog.md

# With custom slug and publication date
node scripts/sanity-changelog.js \
  --title "Feature title" \
  --body changelog.md \
  --slug "custom-slug" \
  --published-at "2025-01-15T10:00:00Z"

Markdown Support

The script converts markdown to Sanity Portable Text:

  • Paragraphs (separated by blank lines)
  • ## Headings and ### Headings → h2 blocks
  • **bold**, *italic*, `code` inline formatting

Options

Option Description
--title, -t Changelog entry title (required)
--body, -b Path to markdown file (required)
--slug, -s URL slug (auto-generated if not provided)
--published-at ISO datetime (default: now)
--hero-image Sanity asset ID for hero image
--dry-run Test without creating document
Weekly Installs
31
Repository
leather-io/mono
GitHub Stars
27
First Seen
Feb 3, 2026
Installed on
claude-code31
mcpjam30
kilo30
junie30
windsurf30
zencoder30