design-broadcast — playbook¶
Distribute a design-ai artifact (palette, spec, audit report) to the team via Slack and/or Notion. When MCPs are connected, posts directly. Without MCP, generates pasteable formatted content.
When to use¶
- "Share this palette with the design team"
- "Post the audit findings to #design-system"
- "Add this spec to our Notion design library"
- After running other skills — broadcast their output.
Inputs (ask if missing)¶
- Artifact: the file or content to share.
- Channel(s): Slack channel name, Notion page/database, or both.
- Audience: who should be tagged / notified?
Steps¶
1. Detect available MCPs¶
slack_available = mcp__plugin_design_slack is connected
notion_available = mcp__864aac7f-...__notion-* is connected
If neither: output formatted content the user can paste manually.
2. Determine artifact type¶
From the file name / content, identify:
| Artifact | Pattern |
|---|---|
| Palette | examples/palette-*.md or content has token tables |
| Component spec | examples/component-*.md or content has anatomy + API sections |
| UX audit / design review | content has 🔴/🟠/🟡/🟢 severity sections |
| Design system bootstrap | examples/dogfood-*.md or content has foundations sections |
| Coverage report | knowledge/COVERAGE.md |
| Token diff / changelog | content has CHANGELOG-style format |
3. Compose audience-appropriate summary¶
Different audiences need different framings:
For #design Slack (designers)¶
- Visual focus.
- For palettes: include the preview image + key colors.
- For specs: link to source, summarize "what this is + key API decisions".
- For audits: "what we found + top recommendation".
For #frontend / #engineering Slack (developers)¶
- Code focus.
- For palettes: include the Tailwind config / CSS vars snippet.
- For specs: link to component reference + Code Connect manifest.
- For audits: severity + count + impact estimate.
For #design-system / #design-leadership¶
- Higher-level focus.
- Coverage stats, trend over time, what's blocking.
4. Format for the channel¶
Slack format (use Block Kit)¶
[
{ type: "header", text: { type: "plain_text", text: "🎨 New palette: B2C SaaS — violet" }},
{ type: "section", text: { type: "mrkdwn", text: "*Generated by design-ai* · Cited 4 knowledge files\n\nLight + dark, WCAG AA validated, Tailwind v4 + shadcn-ui formats." }},
{ type: "divider" },
{ type: "section", text: { type: "mrkdwn", text: "*Key tokens:*\n• Primary: `#7C3AED`\n• Accent: `#D97706`\n• Bg: `#FFFFFF`" }},
{ type: "actions", elements: [
{ type: "button", text: { type: "plain_text", text: "View full palette" }, url: "..." },
{ type: "button", text: { type: "plain_text", text: "Open Storybook" }, url: "..." },
]}
]
Cite docs/integrations/slack-mcp.md for Slack formatting rules (mrkdwn vs markdown).
Notion format¶
For "add to design library" pattern: - Create a page in the Notion database. - Convert markdown → Notion blocks (headings, lists, code blocks, tables). - Add metadata properties: status, area (color/typography/component), date.
Cite docs/integrations/notion-mcp.md for the conversion rules.
5. Post (with confirmation)¶
Show the user the formatted content before posting:
Agent: I'll post this to #design and create a Notion page in the Design System
database. Confirm? [yes/no/edit]
User approves → execute via MCP.
6. Without MCP — output for manual paste¶
=== Slack message (paste into #design) ===
[formatted text or copy-pasteable JSON for Block Kit Builder]
=== Notion page content (paste into Notion editor) ===
[markdown that Notion will partially-convert]
=== Confirmation that you posted? [user replies] ===
7. Confirm + log¶
After posting (if MCP available): - Echo the URL of the Slack message and/or Notion page. - Optionally: react to the Slack message with 🤖 to mark "posted by agent" (transparency).
Verification phase (run before declaring done)¶
- Did I detect MCP availability before composing?
- Did I tailor the message to the audience (designer vs eng vs leadership)?
- For Slack: did I use Block Kit (not plain text) for richer formatting?
- For Notion: did I convert markdown to blocks correctly?
- Did I show the user the message before posting?
- Did I include source links (knowledge files, examples) for credibility?
- Did I avoid leaking sensitive content (Figma file URLs, internal customer data) to public channels?
Source files this skill reads¶
docs/integrations/slack-mcp.md— Slack format rulesdocs/integrations/notion-mcp.md— Notion conversiondocs/MCP-INTEGRATION.md— MCP overviewknowledge/i18n/korean-product-conventions.md— Korean tone for KR-team channels
Done when¶
- Artifact posted (or formatted output ready for paste).
- Audience-appropriate summary composed.
- User explicitly confirmed before posting.
- URL of posted content output for the user's reference.
- Sensitive content checked + not leaked.
- Verification phase passes.