leather-changelog

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Leather Release Communications

Leather版本发布沟通内容

Generate consistent, on-brand release communications for Leather wallet across changelog entries, X posts, and Slack announcements.
为Leather钱包生成风格统一、符合品牌调性的版本发布沟通内容,涵盖变更日志条目、X帖子以及Slack公告。

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)
  1. 收集背景信息 — 查看提供的功能描述、Linear项目或GitHub PR
  2. 明确用户价值 — 确定该版本解决的用户问题或带来的改进
  3. 阅读格式参考 — 查看
    references/voice-and-formats.md
    获取语气指南和模板
  4. 生成输出内容 — 创建所需格式的内容(变更日志、X帖子、Slack公告,或全部三种)

Output Summary

输出内容概述

FormatPurposeLength
ChangelogPermanent product record at app.leather.io/changelog50-150 words
X singleQuick announcement for smaller features280 chars max
X threadMajor releases needing context3-5 tweets
SlackCommunity announcement100-200 words
格式用途长度
变更日志存储在app.leather.io/changelog的永久产品记录50-150词
X单条推文小型功能的快速公告最多280字符
X推文线程需要详细背景的重大版本发布3-5条推文
Slack公告社区公告100-200词

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.
  • 以价值为先 — 从对用户的重要性入手,而非技术层面的变更
  • 沉稳自信 — 用产品本身说话;避免使用夸张词汇(如“激动人心”“令人兴奋”“改变游戏规则”)
  • 一句一意 — 简短、明确的陈述
  • 具象呈现 — 强调具体收益,而非抽象宣称
更多详细指南和示例请查看
references/voice-and-formats.md

Sanity CMS Integration

Sanity CMS集成

Use
scripts/sanity-changelog.js
to upload changelog entries to Sanity CMS as drafts.
使用
scripts/sanity-changelog.js
将变更日志条目作为草稿上传至Sanity CMS。

Setup

设置

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

Usage

使用方法

bash
undefined
bash
undefined

Test upload without creating (dry run)

Test upload without creating (dry run)

node scripts/sanity-changelog.js --title "Feature title" --body changelog.md --dry-run
node scripts/sanity-changelog.js --title "Feature title" --body changelog.md --dry-run

Create draft in Sanity

Create draft in Sanity

node scripts/sanity-changelog.js --title "Feature title" --body changelog.md
node scripts/sanity-changelog.js --title "Feature title" --body changelog.md

With custom slug and publication date

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"
undefined
node scripts/sanity-changelog.js
--title "Feature title"
--body changelog.md
--slug "custom-slug"
--published-at "2025-01-15T10:00:00Z"
undefined

Markdown Support

Markdown支持

The script converts markdown to Sanity Portable Text:
  • Paragraphs (separated by blank lines)
  • ## Headings
    and
    ### Headings
    → h2 blocks
  • **bold**
    ,
    *italic*
    ,
    `code`
    inline formatting
该脚本会将Markdown转换为Sanity可移植文本:
  • 段落(以空行分隔)
  • ## Headings
    ### Headings
    → h2块
  • **bold**
    ,
    *italic*
    ,
    `code`
    行内格式

Options

选项

OptionDescription
--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
选项描述
--title, -t
变更日志条目标题(必填)
--body, -b
Markdown文件路径(必填)
--slug, -s
URL别名(未提供时自动生成)
--published-at
ISO格式日期时间(默认:当前时间)
--hero-image
首图的Sanity资源ID
--dry-run
测试模式,不创建文档