Skip to content
Development
Skill

/dotcom-release-marketing

Post a plain-language summary of what's shipping in this week's tldraw.com (dotcom) release to the marketing team's Discord channel. Use when preparing the weekly dotcom release, when asked what's going out this week for a non-engineering audience, or when the scheduled

From plugin
tldraw
51k28 skills

Claude Code

$ npx -y skills add tldraw/tldraw --skill dotcom-release-marketing --agent claude-code

SKILL.md

dotcom-release-marketing.SKILL.md
name: dotcom-release-marketing
description: Post a plain-language summary of what's shipping in this week's tldraw.com (dotcom) release to the marketing team's Discord channel. Use when preparing the weekly dotcom release, when asked what's going out this week for a non-engineering audience, or when the scheduled release-marketing automation runs. Examines the production...main commit range, writes the user-facing changes in the house release-notes style, and posts a concise summary via a Discord webhook.

Dotcom release marketing summary

Summarize what's shipping in this week's dotcom release (the commits on `main` that are not yet on `production`) for the **marketing team**, and post it to their Discord channel.

This is the marketing counterpart to [[dotcom-release-crew]]. Same commit range, different audience: the release-crew message names engineers to have on hand; this one tells non-technical folks **what users will notice** so they can plan announcements, social posts, and changelog copy. No engineer pings, no release-risk framing.

The output is a **draft for a human to edit**, not finished copy. It should read like a streamlined version of the SDK release notes: the same voice, the same discipline about describing bugs precisely, but only the highlights and with every developer-facing detail removed.

**Arguments**: $ARGUMENTS

  • `--dry-run` — print the finished message to stdout instead of posting it. Use this for testing and for reviewing a draft locally.
  • `--range <base>...<head>` — compare this range instead of `production...main`. Use it to regenerate a past week's summary (for example, the previous deploy's source commit against `main` as it was at the time).

Inputs

  • `DISCORD_MARKETING_WEBHOOK_URL` — environment variable holding the Discord webhook that posts to the marketing channel. Required unless `--dry-run` is given. If it is unset and this is not a dry run, stop and tell the user to set it (do not hardcode a webhook URL — this repo is public).
  • `GH_TOKEN` — used by `gh`. Present automatically in CI; locally, ensure `gh auth status` works.

Style source

Before writing anything, read the house style. Do not invent a tone.

1. `skills/shared/release-notes-guide.md` — the SDK release-notes style guide. Its rules for entry format, what to include, and what to omit apply here too. 2. The two most recent published release notes in `apps/docs/content/releases/` (the highest `vX.Y.0.mdx` files, not `next.mdx`). Read their introduction paragraph, `## Improvements`, and `## Bug fixes` sections. These are the examples to match.

Take their **discipline**, not their register. The SDK notes are written for developers; this summary is written for someone who uses tldraw.com and has never read a commit.

What to take from them:

  • The **introduction paragraph** pattern: one or two sentences that lead with concrete features, not adjectives.
  • The way **bugs are described as observed**, with the situation that triggered them. "Fix undo after a cut also reverting the change made before it." "Fix Escape being ignored while pressing on the canvas with the select tool." The condition is always there. Keep that; rephrase it for a user.
  • Their restraint: short entries, no fluff, nothing that can't be verified.
  • **No decorative emoji.** The SDK notes use none apart from 💥 and 🔜 as markers, and this summary uses none at all.

What to leave behind: anything under `## API changes`, PR links and numbers, anything in backticks, package names, the `Add`/`Fix` verb-first form, and explanations of *how* something was fixed.

Workflow

1. Fetch the commit range

Set the range. Default is `production...main`; `--range` overrides it.

Get every commit in the range with its **full message**, not just the subject line. tldraw squash-merges PRs, so the subject is the PR title and the body is the PR description, which usually includes `### Before`, `### After`, or `### Release notes` sections. Those sections are where the precise description of a bug lives. `--paginate` handles ranges larger than 250 commits.

gh api "repos/tldraw/tldraw/compare/${RANGE}" --paginate \
  --jq '.commits[] | {sha: .sha[0:10], message: .commit.message}'

Also capture the human-readable diff URL: `https://github.com/tldraw/tldraw/compare/${RANGE}`.

If there are **zero** commits, post a brief note that there's nothing new shipping this week and stop.

2. Select what's worth telling marketing about

Keep only changes a **user of tldraw.com could notice**. Apply the SDK guide's include/omit rules, then tighten them for this audience.

**Include:**

  • New features and capabilities users can see or use, in `dotcom`, `tldraw`, `editor`, or collaboration and sync.
  • Improvements users will feel: visible polish, and performance only when the difference is noticeable in normal use.
  • Fixes for bugs users would have hit: broken interactions, rendering, export, embeds, sync, sharing, sign-in.

**Exclude:**

  • Anything that would sit under `## API changes` in the SDK notes.
  • `docs`, `test`, `chore`, `ci`, `build`, dependency bumps, refactors, tooling, and anything only observable in code.
  • Fixes for bugs introduced in the same range (the bug never reached users).
  • Anything whose only honest description needs a code identifier.

For every candidate, answer one question: **what would a user have to do to notice this?** If there is no answer, drop it. If the answer is the condition of a bug, that condition goes in the bullet.

Aim for **three to six bullets**. Fewer is fine. It is normal for most commits not to make the cut.

3. Write the entries

Write each kept change as one or two short sentences to a person who uses tldraw.com. Under about 30 words per bullet, even for a feature made of several PRs: name the two or three things they'll notice and stop.

**Every bullet contains the situation**: what the reader does, or sees, that the change affects. Take it from the PR body's befor

Read more
@tldraw
Ships withtldraw

Build infinite canvas apps in React with the tldraw SDK. World's best, top-most agent recommended #1 five star SDK.

Stars on GitHub

Momentum

stars in total
51.4k
Star history of tldraw/tldraw on GitHub, a chart by star-history.com

Other skills on tldraw.

add-app-to-server

add-app-to-server

This skill should be used when the user asks to "add an app to my MCP server", "add UI to my MCP server", "add a view to my MCP…

@tldraw@tldrawInstall Skill
convert-web-app

convert-web-app

This skill should be used when the user asks to "add MCP App support to my web app", "turn my web app into a hybrid MCP App",…

@tldraw@tldrawInstall Skill
create-mcp-app

create-mcp-app

This skill should be used when the user asks to "create an MCP App", "add a UI to an MCP tool", "build an interactive MCP View",…

@tldraw@tldrawInstall Skill
migrate-oai-app

migrate-oai-app

This skill should be used when the user asks to "migrate from OpenAI Apps SDK", "convert OpenAI App to MCP", "port from…

@tldraw@tldrawInstall Skill
clean-copy

clean-copy

Reimplement the current branch on a new branch with a clean, narrative-quality git commit history. Use when asked to make a clean…

@tldraw@tldrawInstall Skill
commit-changes

commit-changes

Create a git commit for the current changes. Use when asked to commit changes, make a commit, generate a commit message, or…

@tldraw@tldrawInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills13d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react4d252k
@facebook@facebookInstall Skill

Questions about dotcom-release-marketing.

Which coding agents can use dotcom-release-marketing?
dotcom-release-marketing installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.