[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6R4S6SFBQ7HQZVST0R4HTXG":3,"skill-same:01M6R4S6SFBQ7HQZVST0R4HTXG":70},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":55,"install":56,"resources":69},"01M6R4S6SFBQ7HQZVST0R4HTXG","slack-automation",null,"Automate Slack workspace operations including messaging, search, channel management, and reaction workflows through Composio's Slack toolkit.","Mishit18\u002Fclaude-code-templates","Mishit18","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F244127857?v=4","01M6QXBYKWM76HSKYDNWSKKE41","Mishit Sharma","01M6QXBYRJ0CAVM51S1RTEKTZZ",1,"MIT","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fworkflow-automation\u002Fslack-automation\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"slack","automation","slack automation","workflows","toolkit","search","messaging","automate","workspace","management","operations","channel","community","composio","critical","2026","2026-11-10 10:12:30",false,"---\nname: slack-automation\ndescription: \"Automate Slack workspace operations including messaging, search, channel management, and reaction workflows through Composio's Slack toolkit.\"\nrisk: critical\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Slack Automation via Rube MCP\n\nAutomate Slack workspace operations including messaging, search, channel management, and reaction workflows through Composio's Slack toolkit.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Slack connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `slack`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `slack`\n3. If connection is not ACTIVE, follow the returned auth link to complete Slack OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Send Messages to Channels\n\n**When to use**: User wants to post a message to a Slack channel or DM\n\n**Tool sequence**:\n1. `SLACK_FIND_CHANNELS` - Resolve channel name to channel ID [Prerequisite]\n2. `SLACK_LIST_ALL_CHANNELS` - Fallback if FIND_CHANNELS returns empty\u002Fambiguous results [Fallback]\n3. `SLACK_FIND_USERS` - Resolve user for DMs or @mentions [Optional]\n4. `SLACK_OPEN_DM` - Open\u002Freuse a DM channel if messaging a user directly [Optional]\n5. `SLACK_SEND_MESSAGE` - Post the message with resolved channel ID [Required]\n6. `SLACK_UPDATES_A_SLACK_MESSAGE` - Edit the posted message if corrections needed [Optional]\n\n**Key parameters**:\n- `channel`: Channel ID or name (without '#' prefix)\n- `markdown_text`: Preferred field for formatted messages (supports headers, bold, italic, code blocks)\n- `text`: Raw text fallback (deprecated in favor of markdown_text)\n- `thread_ts`: Timestamp of parent message to reply in a thread\n- `blocks`: Block Kit layout blocks (deprecated, use markdown_text)\n\n**Pitfalls**:\n- `SLACK_FIND_CHANNELS` requires `query` param; missing it errors with \"Invalid request data provided\"\n- `SLACK_SEND_MESSAGE` requires valid channel plus one of markdown_text\u002Ftext\u002Fblocks\u002Fattachments\n- Invalid block payloads return error=invalid_blocks (max 50 blocks)\n- Replies become top-level posts if `thread_ts` is omitted\n- Persist `response.data.channel` and `response.data.message.ts` from SEND_MESSAGE for edit\u002Fthread operations\n\n### 2. Search Messages and Conversations\n\n**When to use**: User wants to find specific messages across the workspace\n\n**Tool sequence**:\n1. `SLACK_FIND_CHANNELS` - Resolve channel for scoped search with `in:#channel` [Optional]\n2. `SLACK_FIND_USERS` - Resolve user for author filter with `from:@user` [Optional]\n3. `SLACK_SEARCH_MESSAGES` - Run keyword search across accessible conversations [Required]\n4. `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` - Expand threads for relevant hits [Required]\n\n**Key parameters**:\n- `query`: Search string supporting modifiers (`in:#channel`, `from:@user`, `before:YYYY-MM-DD`, `after:YYYY-MM-DD`, `has:link`, `has:file`)\n- `count`: Results per page (max 100), or total with auto_paginate=true\n- `sort`: 'score' (relevance) or 'timestamp' (chronological)\n- `sort_dir`: 'asc' or 'desc'\n\n**Pitfalls**:\n- Validation fails if `query` is missing\u002Fempty\n- `ok=true` can still mean no hits (`response.data.messages.total=0`)\n- Matches are under `response.data.messages.matches` (sometimes also `response.data_preview.messages.matches`)\n- `match.text` may be empty\u002Ftruncated; key info can appear in `matches[].attachments[]`\n- Thread expansion via FETCH_MESSAGE_THREAD can truncate when `response.data.has_more=true`; paginate via `response_metadata.next_cursor`\n\n### 3. Manage Channels and Users\n\n**When to use**: User wants to list channels, users, or workspace info\n\n**Tool sequence**:\n1. `SLACK_FETCH_TEAM_INFO` - Validate connectivity and get workspace identity [Required]\n2. `SLACK_LIST_ALL_CHANNELS` - Enumerate public channels [Required]\n3. `SLACK_LIST_CONVERSATIONS` - Include private channels and DMs [Optional]\n4. `SLACK_LIST_ALL_USERS` - List workspace members [Required]\n5. `SLACK_RETRIEVE_CONVERSATION_INFORMATION` - Get detailed channel metadata [Optional]\n6. `SLACK_LIST_USER_GROUPS_FOR_TEAM_WITH_OPTIONS` - List user groups [Optional]\n\n**Key parameters**:\n- `cursor`: Pagination cursor from `response_metadata.next_cursor`\n- `limit`: Results per page (default varies; set explicitly for large workspaces)\n- `types`: Channel types filter ('public_channel', 'private_channel', 'im', 'mpim')\n\n**Pitfalls**:\n- Workspace metadata is nested under `response.data.team`, not top-level\n- `SLACK_LIST_ALL_CHANNELS` returns public channels only; use `SLACK_LIST_CONVERSATIONS` for private\u002FIM coverage\n- `SLACK_LIST_ALL_USERS` can hit HTTP 429 rate limits; honor Retry-After header\n- Always paginate via `response_metadata.next_cursor` until empty; de-duplicate by `id`\n\n### 4. React to and Thread Messages\n\n**When to use**: User wants to add reactions or manage threaded conversations\n\n**Tool sequence**:\n1. `SLACK_SEARCH_MESSAGES` or `SLACK_FETCH_CONVERSATION_HISTORY` - Find the target message [Prerequisite]\n2. `SLACK_ADD_REACTION_TO_AN_ITEM` - Add an emoji reaction [Required]\n3. `SLACK_FETCH_ITEM_REACTIONS` - List reactions on a message [Optional]\n4. `SLACK_REMOVE_REACTION_FROM_ITEM` - Remove a reaction [Optional]\n5. `SLACK_SEND_MESSAGE` - Reply in thread using `thread_ts` [Optional]\n6. `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` - Read full thread [Optional]\n\n**Key parameters**:\n- `channel`: Channel ID where the message lives\n- `timestamp` \u002F `ts`: Message timestamp (unique identifier like '1234567890.123456')\n- `name`: Emoji name without colons (e.g., 'thumbsup', 'wave::skin-tone-3')\n- `thread_ts`: Parent message timestamp for threaded replies\n\n**Pitfalls**:\n- Reactions require exact channel ID + message timestamp pair\n- Emoji names use Slack's naming convention without colons\n- `SLACK_FETCH_CONVERSATION_HISTORY` only returns main channel timeline, NOT threaded replies\n- Use `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` with parent's `thread_ts` to get thread replies\n\n### 5. Schedule Messages\n\n**When to use**: User wants to schedule a message for future delivery\n\n**Tool sequence**:\n1. `SLACK_FIND_CHANNELS` - Resolve channel ID [Prerequisite]\n2. `SLACK_SCHEDULE_MESSAGE` - Schedule the message with `post_at` timestamp [Required]\n\n**Key parameters**:\n- `channel`: Resolved channel ID\n- `post_at`: Unix timestamp for delivery (up to 120 days in advance)\n- `text` \u002F `blocks`: Message content\n\n**Pitfalls**:\n- Scheduling is limited to 120 days in advance\n- `post_at` must be a Unix timestamp, not ISO 8601\n\n## Common Patterns\n\n### ID Resolution\nAlways resolve display names to IDs before operations:\n- **Channel name -> Channel ID**: `SLACK_FIND_CHANNELS` with `query` param\n- **User name -> User ID**: `SLACK_FIND_USERS` with `search_query` or `email`\n- **DM channel**: `SLACK_OPEN_DM` with resolved user IDs\n\n### Pagination\nMost list endpoints use cursor-based pagination:\n- Follow `response_metadata.next_cursor` until empty\n- Set explicit `limit` values (e.g., 100-200) for reliable paging\n- De-duplicate results by `id` across pages\n\n### Message Formatting\n- Prefer `markdown_text` over `text` or `blocks` for formatted messages\n- Use `\u003C@USER_ID>` format to mention users (not @username)\n- Use `\\n` for line breaks in markdown_text\n\n## Known Pitfalls\n\n- **Channel resolution**: `SLACK_FIND_CHANNELS` can return empty results if channel is private and bot hasn't been invited\n- **Rate limits**: `SLACK_LIST_ALL_USERS` and other list endpoints can hit HTTP 429; honor Retry-After header\n- **Nested responses**: Results may be nested under `response.data.results[0].response.data` in wrapped executions\n- **Thread vs channel**: `SLACK_FETCH_CONVERSATION_HISTORY` returns main timeline only; use `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` for thread replies\n- **Message editing**: Requires both `channel` and original message `ts`; persist these from SEND_MESSAGE response\n- **Search delays**: Recently posted messages may not appear in search results immediately\n- **Scope limitations**: Missing OAuth scopes can cause 403 errors; check with `SLACK_GET_APP_PERMISSION_SCOPES`\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| Find channels | `SLACK_FIND_CHANNELS` | `query` |\n| List all channels | `SLACK_LIST_ALL_CHANNELS` | `limit`, `cursor`, `types` |\n| Send message | `SLACK_SEND_MESSAGE` | `channel`, `markdown_text` |\n| Edit message | `SLACK_UPDATES_A_SLACK_MESSAGE` | `channel`, `ts`, `markdown_text` |\n| Search messages | `SLACK_SEARCH_MESSAGES` | `query`, `count`, `sort` |\n| Get thread | `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` | `channel`, `ts` |\n| Add reaction | `SLACK_ADD_REACTION_TO_AN_ITEM` | `channel`, `name`, `timestamp` |\n| Find users | `SLACK_FIND_USERS` | `search_query` or `email` |\n| List users | `SLACK_LIST_ALL_USERS` | `limit`, `cursor` |\n| Open DM | `SLACK_OPEN_DM` | user IDs |\n| Schedule message | `SLACK_SCHEDULE_MESSAGE` | `channel`, `post_at`, `text` |\n| Get channel info | `SLACK_RETRIEVE_CONVERSATION_INFORMATION` | channel ID |\n| Channel history | `SLACK_FETCH_CONVERSATION_HISTORY` | `channel`, `oldest`, `latest` |\n| Workspace info | `SLACK_FETCH_TEAM_INFO` | (none) |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n","# Slack Automation via Rube MCP\n\nAutomate Slack workspace operations including messaging, search, channel management, and reaction workflows through Composio's Slack toolkit.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Slack connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `slack`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `slack`\n3. If connection is not ACTIVE, follow the returned auth link to complete Slack OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Send Messages to Channels\n\n**When to use**: User wants to post a message to a Slack channel or DM\n\n**Tool sequence**:\n1. `SLACK_FIND_CHANNELS` - Resolve channel name to channel ID [Prerequisite]\n2. `SLACK_LIST_ALL_CHANNELS` - Fallback if FIND_CHANNELS returns empty\u002Fambiguous results [Fallback]\n3. `SLACK_FIND_USERS` - Resolve user for DMs or @mentions [Optional]\n4. `SLACK_OPEN_DM` - Open\u002Freuse a DM channel if messaging a user directly [Optional]\n5. `SLACK_SEND_MESSAGE` - Post the message with resolved channel ID [Required]\n6. `SLACK_UPDATES_A_SLACK_MESSAGE` - Edit the posted message if corrections needed [Optional]\n\n**Key parameters**:\n- `channel`: Channel ID or name (without '#' prefix)\n- `markdown_text`: Preferred field for formatted messages (supports headers, bold, italic, code blocks)\n- `text`: Raw text fallback (deprecated in favor of markdown_text)\n- `thread_ts`: Timestamp of parent message to reply in a thread\n- `blocks`: Block Kit layout blocks (deprecated, use markdown_text)\n\n**Pitfalls**:\n- `SLACK_FIND_CHANNELS` requires `query` param; missing it errors with \"Invalid request data provided\"\n- `SLACK_SEND_MESSAGE` requires valid channel plus one of markdown_text\u002Ftext\u002Fblocks\u002Fattachments\n- Invalid block payloads return error=invalid_blocks (max 50 blocks)\n- Replies become top-level posts if `thread_ts` is omitted\n- Persist `response.data.channel` and `response.data.message.ts` from SEND_MESSAGE for edit\u002Fthread operations\n\n### 2. Search Messages and Conversations\n\n**When to use**: User wants to find specific messages across the workspace\n\n**Tool sequence**:\n1. `SLACK_FIND_CHANNELS` - Resolve channel for scoped search with `in:#channel` [Optional]\n2. `SLACK_FIND_USERS` - Resolve user for author filter with `from:@user` [Optional]\n3. `SLACK_SEARCH_MESSAGES` - Run keyword search across accessible conversations [Required]\n4. `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` - Expand threads for relevant hits [Required]\n\n**Key parameters**:\n- `query`: Search string supporting modifiers (`in:#channel`, `from:@user`, `before:YYYY-MM-DD`, `after:YYYY-MM-DD`, `has:link`, `has:file`)\n- `count`: Results per page (max 100), or total with auto_paginate=true\n- `sort`: 'score' (relevance) or 'timestamp' (chronological)\n- `sort_dir`: 'asc' or 'desc'\n\n**Pitfalls**:\n- Validation fails if `query` is missing\u002Fempty\n- `ok=true` can still mean no hits (`response.data.messages.total=0`)\n- Matches are under `response.data.messages.matches` (sometimes also `response.data_preview.messages.matches`)\n- `match.text` may be empty\u002Ftruncated; key info can appear in `matches[].attachments[]`\n- Thread expansion via FETCH_MESSAGE_THREAD can truncate when `response.data.has_more=true`; paginate via `response_metadata.next_cursor`\n\n### 3. Manage Channels and Users\n\n**When to use**: User wants to list channels, users, or workspace info\n\n**Tool sequence**:\n1. `SLACK_FETCH_TEAM_INFO` - Validate connectivity and get workspace identity [Required]\n2. `SLACK_LIST_ALL_CHANNELS` - Enumerate public channels [Required]\n3. `SLACK_LIST_CONVERSATIONS` - Include private channels and DMs [Optional]\n4. `SLACK_LIST_ALL_USERS` - List workspace members [Required]\n5. `SLACK_RETRIEVE_CONVERSATION_INFORMATION` - Get detailed channel metadata [Optional]\n6. `SLACK_LIST_USER_GROUPS_FOR_TEAM_WITH_OPTIONS` - List user groups [Optional]\n\n**Key parameters**:\n- `cursor`: Pagination cursor from `response_metadata.next_cursor`\n- `limit`: Results per page (default varies; set explicitly for large workspaces)\n- `types`: Channel types filter ('public_channel', 'private_channel', 'im', 'mpim')\n\n**Pitfalls**:\n- Workspace metadata is nested under `response.data.team`, not top-level\n- `SLACK_LIST_ALL_CHANNELS` returns public channels only; use `SLACK_LIST_CONVERSATIONS` for private\u002FIM coverage\n- `SLACK_LIST_ALL_USERS` can hit HTTP 429 rate limits; honor Retry-After header\n- Always paginate via `response_metadata.next_cursor` until empty; de-duplicate by `id`\n\n### 4. React to and Thread Messages\n\n**When to use**: User wants to add reactions or manage threaded conversations\n\n**Tool sequence**:\n1. `SLACK_SEARCH_MESSAGES` or `SLACK_FETCH_CONVERSATION_HISTORY` - Find the target message [Prerequisite]\n2. `SLACK_ADD_REACTION_TO_AN_ITEM` - Add an emoji reaction [Required]\n3. `SLACK_FETCH_ITEM_REACTIONS` - List reactions on a message [Optional]\n4. `SLACK_REMOVE_REACTION_FROM_ITEM` - Remove a reaction [Optional]\n5. `SLACK_SEND_MESSAGE` - Reply in thread using `thread_ts` [Optional]\n6. `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` - Read full thread [Optional]\n\n**Key parameters**:\n- `channel`: Channel ID where the message lives\n- `timestamp` \u002F `ts`: Message timestamp (unique identifier like '1234567890.123456')\n- `name`: Emoji name without colons (e.g., 'thumbsup', 'wave::skin-tone-3')\n- `thread_ts`: Parent message timestamp for threaded replies\n\n**Pitfalls**:\n- Reactions require exact channel ID + message timestamp pair\n- Emoji names use Slack's naming convention without colons\n- `SLACK_FETCH_CONVERSATION_HISTORY` only returns main channel timeline, NOT threaded replies\n- Use `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` with parent's `thread_ts` to get thread replies\n\n### 5. Schedule Messages\n\n**When to use**: User wants to schedule a message for future delivery\n\n**Tool sequence**:\n1. `SLACK_FIND_CHANNELS` - Resolve channel ID [Prerequisite]\n2. `SLACK_SCHEDULE_MESSAGE` - Schedule the message with `post_at` timestamp [Required]\n\n**Key parameters**:\n- `channel`: Resolved channel ID\n- `post_at`: Unix timestamp for delivery (up to 120 days in advance)\n- `text` \u002F `blocks`: Message content\n\n**Pitfalls**:\n- Scheduling is limited to 120 days in advance\n- `post_at` must be a Unix timestamp, not ISO 8601\n\n## Common Patterns\n\n### ID Resolution\nAlways resolve display names to IDs before operations:\n- **Channel name -> Channel ID**: `SLACK_FIND_CHANNELS` with `query` param\n- **User name -> User ID**: `SLACK_FIND_USERS` with `search_query` or `email`\n- **DM channel**: `SLACK_OPEN_DM` with resolved user IDs\n\n### Pagination\nMost list endpoints use cursor-based pagination:\n- Follow `response_metadata.next_cursor` until empty\n- Set explicit `limit` values (e.g., 100-200) for reliable paging\n- De-duplicate results by `id` across pages\n\n### Message Formatting\n- Prefer `markdown_text` over `text` or `blocks` for formatted messages\n- Use `\u003C@USER_ID>` format to mention users (not @username)\n- Use `\\n` for line breaks in markdown_text\n\n## Known Pitfalls\n\n- **Channel resolution**: `SLACK_FIND_CHANNELS` can return empty results if channel is private and bot hasn't been invited\n- **Rate limits**: `SLACK_LIST_ALL_USERS` and other list endpoints can hit HTTP 429; honor Retry-After header\n- **Nested responses**: Results may be nested under `response.data.results[0].response.data` in wrapped executions\n- **Thread vs channel**: `SLACK_FETCH_CONVERSATION_HISTORY` returns main timeline only; use `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` for thread replies\n- **Message editing**: Requires both `channel` and original message `ts`; persist these from SEND_MESSAGE response\n- **Search delays**: Recently posted messages may not appear in search results immediately\n- **Scope limitations**: Missing OAuth scopes can cause 403 errors; check with `SLACK_GET_APP_PERMISSION_SCOPES`\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| Find channels | `SLACK_FIND_CHANNELS` | `query` |\n| List all channels | `SLACK_LIST_ALL_CHANNELS` | `limit`, `cursor`, `types` |\n| Send message | `SLACK_SEND_MESSAGE` | `channel`, `markdown_text` |\n| Edit message | `SLACK_UPDATES_A_SLACK_MESSAGE` | `channel`, `ts`, `markdown_text` |\n| Search messages | `SLACK_SEARCH_MESSAGES` | `query`, `count`, `sort` |\n| Get thread | `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` | `channel`, `ts` |\n| Add reaction | `SLACK_ADD_REACTION_TO_AN_ITEM` | `channel`, `name`, `timestamp` |\n| Find users | `SLACK_FIND_USERS` | `search_query` or `email` |\n| List users | `SLACK_LIST_ALL_USERS` | `limit`, `cursor` |\n| Open DM | `SLACK_OPEN_DM` | user IDs |\n| Schedule message | `SLACK_SCHEDULE_MESSAGE` | `channel`, `post_at`, `text` |\n| Get channel info | `SLACK_RETRIEVE_CONVERSATION_INFORMATION` | channel ID |\n| Channel history | `SLACK_FETCH_CONVERSATION_HISTORY` | `channel`, `oldest`, `latest` |\n| Workspace info | `SLACK_FETCH_TEAM_INFO` | (none) |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n",{"name":5,"risk":41,"source":39,"date_added":48,"description":7},"2026-02-27","main","015422534a7457348a313b6381f0255d3364eb8c","cli-tool\u002Fcomponents\u002Fskills\u002Fworkflow-automation\u002Fslack-automation",0,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates","https:\u002F\u002Fgithub.com\u002FMishit18","2026-11-11 17:58:24",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add Mishit18\u002Fclaude-code-templates --skill slack-automation",{"tool":62,"command":63},"bunx","bunx skills add Mishit18\u002Fclaude-code-templates --skill slack-automation",{"tool":65,"command":66},"pnpm","pnpm dlx skills add Mishit18\u002Fclaude-code-templates --skill slack-automation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fworkflow-automation\u002Fslack-automation\u002FSKILL.md",true,[],[71,103,128,156,180,205],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":76,"sourceHtmlUrl":77,"categories":78,"keywords":82,"publishedAt":43},"01M6R4ARN4W2VZRDERDTMN1KP0","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FSKILL.md",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102],"web artifacts builder","web","artifacts","artifacts builder","builder","frontend","css","components","react","routing","state management","state","file","Tailwind","use","single-file","ui components","multi","for","single",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":107,"sourceHtmlUrl":108,"categories":109,"keywords":114,"publishedAt":43},"01M6R45GXREM5DP8T08MAC788H","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FSKILL.md",[110,113],{"categoryNo":111,"categoryName":112,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":80,"categoryName":81,"taxonomyType":21,"taxonomyTypeDesc":22},[115,116,117,88,118,119,84,120,31,121,122,123,124,125,126,127,101],"testing","webapp testing","webapp","screenshots","playwright","debugging","browser","ui","logs","applications","behavior","local","with",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":132,"sourceHtmlUrl":133,"categories":134,"keywords":135,"publishedAt":43},"01M6R2GYJ470X8EB7R58V0B68K","think-tank","Run a Virtual Think Tank — a structured multi-persona debate — before planning or making architectural\u002Fdesign\u002Fstrategic decisions. Use this skill whenever the user is about to plan a system, make a technology choice, evaluate trade-offs, decide on an approach, or faces any decision where multiple perspectives would sharpen the outcome. Also trigger when the user says \"think tank\", \"debate this\", \"perspectives on\", \"trade-offs\", \"should I use X or Y\", \"help me decide\", \"before we plan\", or asks for pros\u002Fcons of competing approaches. This skill should run BEFORE any implementation planning begins — it produces a structured analysis that feeds into better plans.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fthink-tank\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fthink-tank\u002FSKILL.md",[],[136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155],"think tank","think","design","run","feeds","analysis","persona","plan","sharpen","virtual","decision","choice","decide","perspectives","outcome","me","debate","make","trade-offs","when",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":160,"sourceHtmlUrl":161,"categories":162,"keywords":164,"publishedAt":43},"01M6R2FSR55AVRFA9YZ8SC2GZG","skill-creator","Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fskill-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fskill-creator\u002FSKILL.md",[163],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[165,166,30,167,168,169,170,171,172,173,174,175,176,177,127,101,178,155,179],"skill creator","creator","create","update","capabilities","knowledge","tool","integrations","specialized","guide","new skill","existing skill","users","Existing","new",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":186,"publishedAt":43},"01M6R2FK42ZZ4HJTJVVK9WJBBP","ship-learn-next","Transform learning content (like YouTube transcripts, articles, tutorials) into actionable implementation plans using the Ship-Learn-Next framework. Use when user wants to turn advice, lessons, or educational content into concrete action steps, reps, or a learning quest.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fship-learn-next\u002FSKILL.md",[],[187,188,189,190,191,192,193,194,97,195,196,197,198,199,200,201,202,203,204,155],"learn","ship learn next","ship","next","framework","learning","read","write","advice","implementation","youtube","plans","quest","transform","actionable","action","lessons","youtube transcripts",{"skillNo":206,"name":207,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":209,"sourceHtmlUrl":210,"categories":211,"keywords":216,"publishedAt":43},"01M6R2088G1RHDA5MDX16HASRB","slack-gif-creator","Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like \"make me a GIF of X doing Y for Slack.\"","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fenterprise-communication\u002Fslack-gif-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fenterprise-communication\u002Fslack-gif-creator\u002FSKILL.md",[212,213],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":214,"categoryName":215,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[217,27,218,166,219,220,221,222,170,97,151,177,153,223,224,101,225,155],"slack gif creator","gif","validation","Tools","constraints","Animation","Utilities","concepts","request"]