Agent skill · writing content · ccheney
teams-message-formatting
Proactively apply when generating Microsoft Teams message text, Bot Framework activities, Teams SDK bot responses, Microsoft Graph chatMessage bodies, Teams Adaptive Card TextBlock or FactSet text, Workflows webhook messages, legacy connector MessageCard text, mentions, emoji, code blocks, links, date/time text, or escaping user content for Teams. Triggers on Teams markdown, Teams Markdown, Teams HTML, Teams bot textFormat, Teams message formatting, Teams mentions, at-mention tags, msteams.entities, Graph chatMessage, contentType html, Adaptive Card Markdown, TextBlock markdown, FactSet markdown, Workflows webhook, Incoming Webhook, MessageCard, connector card, tag mention, channel mention, Teams code block, Teams emoji, and Teams escaping. Use when writing or debugging any Microsoft Teams text rendering issue.
Why this skill is useful
Provides detailed formatting rules and decision trees for Microsoft Teams message systems that the AI wouldn't reliably generate on its own.
What it needs
About 5k tokens when loaded. Last updated 2026-07-07. 58 stars on the source repository.
What this skill does
Teams Message Formatting Microsoft Teams has several incompatible text systems. Pick the surface first, then write the text for that surface — most rendering bugs come from using one surface's syntax on another. CRITICAL: Four Markup Systems System Used In Bold Link Mention -------- --------- ------ ------ --------- Bot text markdown Bot Framework/Teams SDK activity text (default) bold text <at>Name</at> plus activity entities Bot text xml Bot activity textFormat: "xml" and hero/thumbnail card text <strong>bold</strong> <a href="url">text</a> <at>Name</at> plus activity entities Adaptive Card Markdown TextBlock.text, Fact.title, Fact.value bold text <at>Name</at> plus root msteams.entities Graph chatMessage HTML Microsoft Graph chatMessage.body.contentType: "html" <strong>bold</strong> <a href="url">text</a> <at id="0">Name</at> plus mentions array Do not mix them. Slack mrkdwn (bold, <url text>) is wrong everywhere in Teams. Full standard Markdown is also wrong in Adaptive Cards: headings, tables, images, preformatted text, and blockquotes are not supported in TextBlock. Quick Decision Tree Bot Activity Text Set textFormat when constructing raw Bot Framework activities (markdown is the default): Bot text Markdown support varies by client, so stay inside the safe subset: Safe on desktop, iOS, and Android: bold, italic, links, preformatted text, blockquotes. Desktop only: ordered and unordered lists. Not on Android: strikethrough. Never supported in text-only bot messages: headings, horizontal rules, tables, image links. Use an Adaptive Card for those. Bot messages have an approximate 100 KB limit (text, mentions, reactions); stay under 80 KB or the send fails with 413 MessageSizeTooBig. For mentions, include both the visible <at>...</at> text and a matching entities item: The entities[].text value must exactly match a substring of text (including any @ prefix); otherwise Teams ignores the mention. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills ccheney/teams-message-formatting