communication-plugin/skills/google-chat-formatting/SKILL.md
Convert Markdown to Google Chat formatting. Use when formatting messages for Google Chat or converting Markdown documents to Google Chat syntax.
npx skillsauth add laurigates/claude-plugins google-chat-formattingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Expert knowledge for converting Markdown and plain text to Google Chat's limited formatting syntax. Google Chat supports a subset of formatting that differs from standard Markdown.
| Use this skill when... | Use ticket-drafting-guidelines instead when... | |---|---| | Converting Markdown to Google Chat's single-asterisk bold and bullet syntax | Drafting a GitHub issue, PR description, or technical ticket | | Formatting status updates, meeting notes, or release notes for posting in Google Chat | Writing a structured What/Why/How bug report or feature request | | Stripping headers and tables for a chat-channel announcement | Producing prose intended for a GitHub or docs surface (keep standard Markdown) |
Format Conversion
Google Chat Limitations
Google Chat has no header support. Convert all headers to bold text:
# Header → *Header*
## Subheader → *Subheader*
### Section → *Section*
Pattern: Remove all # symbols and wrap text in single asterisks.
Google Chat uses single asterisks for bold (not double):
**bold** → *bold*
__bold__ → *bold*
*italic* → _italic_
_italic_ → _italic_
~~strikethrough~~ → ~strikethrough~
Key differences:
*text* (not **text**)_text_ (not *text*)~text~Preserve code blocks and inline code unchanged:
`inline code` → `inline code` (unchanged)
```code block``` → ```code block``` (unchanged)
Replace Markdown list markers with bullet symbols:
- item → • item
* item → • item
+ item → • item
1. numbered → 1. numbered (keep numbered lists)
Pattern: Replace -, *, + at line start with bullet symbol.
Label formatting (common in structured messages):
**Label:** → *Label:*
**Status:** text → *Status:* text
Normalize spacing for readability:
# Read file, convert, write output
cat input.md | sed -E 's/^#{1,6} (.+)$/*\1*/g' | \
sed -E 's/\*\*([^*]+)\*\*/\*\1\*/g' | \
sed -E 's/^[*+-] /• /g' > output.txt
# Quick conversion of text string
echo "## Header\n**bold** text\n- item" | \
sed -E 's/^#{1,6} (.+)$/*\1*/g' | \
sed -E 's/\*\*([^*]+)\*\*/\*\1\*/g' | \
sed -E 's/^[*+-] /• /g'
# Convert clipboard content
pbpaste | sed -E 's/^#{1,6} (.+)$/*\1*/g' | \
sed -E 's/\*\*([^*]+)\*\*/\*\1\*/g' | \
sed -E 's/^[*+-] /• /g' | pbcopy
# Convert all .md files in directory
for file in *.md; do
sed -E 's/^#{1,6} (.+)$/*\1*/g' "$file" | \
sed -E 's/\*\*([^*]+)\*\*/\*\1\*/g' | \
sed -E 's/^[*+-] /• /g' > "${file%.md}.gchat.txt"
done
For common conversion patterns (meeting notes, status updates, release notes), best practices, troubleshooting, integration examples, limitations, and advanced patterns, see REFERENCE.md.
| Markdown | Google Chat | Notes |
|----------|-------------|-------|
| # Header | *Header* | All header levels |
| **bold** | *bold* | Single asterisks |
| __bold__ | *bold* | Underscores to asterisks |
| *italic* | _italic_ | Single underscores |
| - item | • item | Bullet symbol |
| `code` | `code` | Unchanged |
# Headers
sed -E 's/^#{1,6} (.+)$/*\1*/g'
# Bold (asterisks)
sed -E 's/\*\*([^*]+)\*\*/\*\1\*/g'
# Bold (underscores)
sed -E 's/__([^_]+)__/\*\1\*/g'
# Lists
sed -E 's/^[*+-] /• /g'
# Collapse blank lines
sed -E '/^$/N;/^\n$/D'
# Strip trailing whitespace
sed -E 's/[ \t]+$//'
| Context | Command |
|---------|---------|
| Quick convert file | sed -E 's/^#{1,6} (.+)$/*\1*/g' file.md \| sed -E 's/\*\*([^*]+)\*\*/\*\1\*/g' |
| Check for unconverted | grep -E '^\#\|^\*\*' output.txt |
| Clipboard convert | pbpaste \| sed -E 's/^#{1,6} (.+)$/*\1*/g' \| pbcopy |
tools
Scaffold a new ComfyUI custom-node repo (pyproject, CI, release-please, vitest+pytest, JS extension skeleton) in the picker/gesture vein. Use when bootstrapping or init-ing a comfyui node pack.
tools
Orchestrate a ComfyUI node pack from idea to registry: scaffold, create + seed the repo, open the gitops adoption PR. Use when releasing or spinning up a new comfyui node pack.
testing
macOS EndpointSecurity/EDR high CPU & battery drain. Use when Kandji ESF / XProtect pegs a core; trace the exec storm via powermetrics + eslogger.
development
odiff pixel-by-pixel image diffing. Use when comparing screenshots, detecting visual regressions, diffing before/after PNGs, asserting golden images.