Matrix announcement
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. Trigger before any matrix-send call that produces structured content. Companion to matrix-communication.From its SKILL.md
npx -y skills add netresearch/matrix-skill --skill matrix-announcementAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as (MIT AND CC-BY-SA-4.0). See LICENSE-MIT and LICENSE-CC-BY-SA-4.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.3 KB, 953 tokens by cl100k_base, as published. Nobody here has run it
Matrix Announcement
Content rules for Matrix announcements: HTML subset, type tags, glyphs, m.text/m.notice, PNG-card threshold. matrix-communication does the sending.
The five rules
- One headline, one purpose.
formatted_bodyin the HTML subset, not Markdown.bodyis the plaintext fallback — clients aren't required to parse Markdown.- Lists beat paragraphs. Enumerable items — findings, projects, failures, tickets — are a
<ul>, however long each item runs. A paragraph opening with a bold word is emphasis, not structure. - Wrap code. Commands, paths, versions, IDs, env vars in
<code>; multi-line in<pre><code class="language-…">. - Layout > words → render an HTML card to PNG. Comparisons, dashboards, multi-row tables die in
formatted_body.
Type tags (pick one — never stack)
New skill— first public releaseRelease— feature versionPatch— bugfix-onlyDigest— weekly / multi-skill roundupHeads-up— breaking change, deprecationPostmortem— incident summaryFindings— result of an investigation or auditRFC— proposal seeking feedback
Findings reports group by category of finding (Errors found, No error, expected behavior), never by who was wrong (Real errors, Corrections).
Glyphs
One leading glyph at most. Never trailing decoration, multi-emoji ladders, 🚀, or 🎉. Approved: 🤖 bot · 📦 release · 🔧 tooling · 🛡 security · ⚠️ heads-up · 📋 digest · 🔬 RFC · 🚑 hotfix · 🔥 postmortem · 🔎 findings · ✨ new capability (sparingly).
Pre-send checklist
- One-line title, Element at 1280px.
- Opens with the change, not "we're excited to".
- URLs wrapped in
<a>, destination as text. - Every entity is a link: issue keys (even mid-sentence), versions → release page, MRs/PRs (
project/path!N/org/repo#N), pipelines, commits. Status updates: one item per line, linked key first, blank lines between. - Enumerable items in a
<ul>, not bold-led paragraphs (rule 3). - Findings headings name the category, not the person.
- Code wrapped (rule 4).
- Glyph OK (rules above).
-
bodyreads standalone, not stripped HTML. -
msgtype=m.noticefor unattended automation,m.textotherwise. - No
@roomunless it is an outage. - Image card if layout-heavy (rule 5).
- Length under 3000 chars or split into a thread.
References
- html-subset.md — allowed/banned tags,
data-mx-*attributes - structure.md — skeleton, type-tag examples, length budget,
m.textvsm.notice - glyphs.md — glyph table, banned set
- image-cards.md — chromium → upload →
m.imagerecipe - threading.md — threads, mentions, edits, redactions
- anti-patterns.md — wall-of-text, emoji ladder, mention storm
- text-templates.md — drop-in skeletons per type tag
- templates/ — three HTML card templates
- gallery.html — visual preview of rules and templates
Sending: matrix-communication ships it (${CLAUDE_SKILL_DIR}/../matrix-communication/scripts/matrix-send-e2ee.py "$ROOM" "$MARKDOWN" [--notice]), converting markdown to HTML per html-subset.md. --notice marks automation, exclusive of --emote. Hand-crafted formatted_body/m.image: call the homeserver API — recipe in image-cards.md.
What ships with it: 14 files
100.9 KB alongside SKILL.md
evals/
- evals.json8.2 KB
references/
- anti-patterns.md6.5 KB
- gallery.html45.5 KB
- glyphs.md1.9 KB
- html-subset.md3.0 KB
- image-cards.md4.9 KB
- structure.md6.7 KB
- templates/comparison.html3.7 KB
- templates/release-card.html4.4 KB
- templates/weekly-digest.html5.1 KB
- text-templates.md4.1 KB
- threading.md2.9 KB