Help us improve
Share bugs, ideas, or general feedback.
From matrix-communication
Use when composing a Matrix announcement — skill release, version bump, weekly digest, breaking-change heads-up, postmortem, RFC, multi-skill pipeline summary, or any agent-authored room post longer than a single line. Defines the HTML subset clients render, the type-tag system, glyph rules (no rockets, no party emoji), the m.text vs m.notice choice, and when to render an HTML card to PNG instead of cramming layout into formatted_body. Trigger before any matrix-send call that produces structured content. Companion to matrix-communication.
npx claudepluginhub netresearch/claude-code-marketplace --plugin matrix-communicationHow this skill is triggered — by the user, by Claude, or both
Slash command
/matrix-communication:matrix-announcementThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Content guidance for Matrix announcements; `matrix-communication` does the sending.
LICENSEREADME.mdevals/evals.jsonreferences/anti-patterns.mdreferences/gallery.htmlreferences/glyphs.mdreferences/html-subset.mdreferences/image-cards.mdreferences/structure.mdreferences/templates/comparison.htmlreferences/templates/release-card.htmlreferences/templates/weekly-digest.htmlreferences/text-templates.mdreferences/threading.mdGuides using Bun as JavaScript runtime, package manager, bundler, and test runner. Covers choosing Bun vs Node, Node migration, and Vercel deployment support.
Share bugs, ideas, or general feedback.
Content guidance for Matrix announcements; matrix-communication does the sending.
formatted_body with the HTML subset. body stays as plaintext fallback. Never send only Markdown — clients are not required to parse it.<ul>.<code> for commands, paths, version strings, IDs, env vars — every one of them. Multi-line snippets in <pre><code class="language-…">.formatted_body.| Tag | Meaning | Title example |
|---|---|---|
New skill | first public release | New skill: github-release-skill v0.2.0 |
Release | feature version | Release: jira-skill v3.12.0 |
Patch | bugfix-only | Patch: docker-development-skill v1.7.0 |
Digest | weekly / multi-skill roundup | Digest: skill ecosystem — week of 2026-04-22 |
Heads-up | breaking change, deprecation | Heads-up: matrix-skill v2 drops Python 3.8 |
Postmortem | incident summary | Postmortem: CI cache wipe 2026-04-25 |
RFC | proposal seeking feedback | RFC: unified checkpoint schema |
One leading glyph at most. Never trailing decoration, multi-emoji ladders, 🚀, or 🎉. Approved: 🤖 bot · 📦 release · 🔧 tooling · 🛡 security · ⚠️ heads-up · 📋 digest · 🔬 RFC · 🚑 hotfix · 🔥 postmortem · ✨ new capability (sparingly).
<a> with destination-as-text.<code>.<pre><code class="language-…">.body is a real readable plaintext fallback, not stripped HTML.msgtype = m.notice for unattended automation, m.text otherwise.@room unless it is an outage.<table> in formatted_body.data-mx-* attributesm.text vs m.noticem.image recipe; image-pairing rulesformatted_body skeletons per type tagrelease-card.html (1200×630), weekly-digest.html (1200×1500), comparison.html (1200×900)Sending: pass the composed message to matrix-communication (matrix-send-e2ee.py "$ROOM" "$MARKDOWN" [--notice]). The transport converts markdown to HTML using the rules in html-subset.md; pass --notice for unattended automation so other bots can't auto-reply (mutually exclusive with --emote). For hand-crafted formatted_body or m.image cards, call the homeserver API directly — recipe in image-cards.md.