{"id":"41fd1f32-2c31-46ac-8662-96865ce2f69d","shortId":"emLgDg","kind":"skill","title":"slack-automation","tagline":"Automate Slack workspace operations including messaging, search, channel management, and reaction workflows through Composio's Slack toolkit.","description":"# 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://rube.app/mcp` 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/ambiguous results [Fallback]\n3. `SLACK_FIND_USERS` - Resolve user for DMs or @mentions [Optional]\n4. `SLACK_OPEN_DM` - Open/reuse 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/text/blocks/attachments\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/thread 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/empty\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/truncated; 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/IM 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` / `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` / `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 `<@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## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["slack","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-slack-automation","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/slack-automation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34515 github stars · SKILL.md body (9,680 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T12:51:47.742Z","embedding":null,"createdAt":"2026-04-18T21:45:06.665Z","updatedAt":"2026-04-22T12:51:47.742Z","lastSeenAt":"2026-04-22T12:51:47.742Z","tsv":"'-200':1001 '/mcp':81 '0':487,1090 '1':101,148,170,373,541,706,877 '100':454,1000 '120':911,924 '1234567890.123456':792 '2':113,181,354,386,553,720,885 '3':121,194,399,522,562,732,804 '4':136,205,410,572,686,743 '403':1151 '429':666,1076 '5':219,581,753,860 '50':331 '6':231,591,764 '8601':937 'access':407 'across':368,406,1011 'action':1302 'activ':53,126,141 'add':78,95,698,722,727,1221,1224 'advanc':914,927 'also':493 'alway':63,674,942 'api':91 'app':1157 'appear':502,1139 'applic':1296 'asc':469 'ask':1340 'attach':505 'auth':130 'author':393 'auto':458 'autom':3,4,22,26 'avail':52,106 'base':988 'becom':334 'block':266,288,289,292,324,329,332,916,1021 'bold':263 'bot':1058 'boundari':1348 'break':1038 'call':64,114 'caus':1150 'channel':11,33,152,165,173,175,178,185,189,212,228,247,248,300,317,376,378,384,432,524,534,557,560,568,588,624,628,630,647,650,778,779,817,838,880,882,899,901,950,952,956,973,1044,1048,1054,1097,1121,1168,1171,1175,1179,1188,1198,1219,1229,1261,1266,1272,1274,1280 'check':1153 'chronolog':466 'clarif':1342 'clear':1315 'client':88 'code':265 'colon':797,830 'common':938 'complet':133 'composio':17,39 'configur':89 'confirm':108,137 'connect':48,55,59,117,123,138,547 'content':918 'convent':828 'convers':358,408,417,565,584,655,703,713,771,833,850,1100,1113,1218,1270,1278 'core':146 'correct':242 'count':449,1208 'coverag':658 'criteria':1351 'current':71 'cursor':521,606,608,611,678,987,992,1181,1248 'cursor-bas':986 'data':310 'day':912,925 'dd':439,444 'de':682,1006 'de-dupl':681,1005 'default':616 'delay':1133 'deliveri':874,908 'deprec':271,293 'desc':471 'describ':1303,1319 'detail':587 'dir':468 'direct':217 'display':944 'dm':167,208,211,972,976,1250,1253 'dms':201,570 'duplic':683,1007 'e.g':798,999 'edit':237,1118,1191 'edit/thread':352 'email':971,1240 'emoji':729,794,822 'empti':680,994,1051 'empty/ambiguous':191 'empty/truncated':498 'endpoint':97,984,1072 'enumer':558 'environ':1331 'environment-specif':1330 'error':306,327,1152 'exact':816 'execut':1094,1298 'expand':418 'expans':507 'expert':1336 'explicit':619,996 'fail':474 'fallback':186,193,270 'favor':273 'fetch':412,509,543,712,734,766,832,845,1099,1108,1213,1277,1286 'field':257 'file':448 'filter':394,626 'find':172,188,196,299,365,375,388,715,879,955,965,1047,1167,1170,1232,1235 'first':68 'follow':127,990 'format':259,1014,1023,1028 'full':773 'futur':873 'get':70,75,549,586,857,1156,1210,1265 'group':595,602 'hasn':1059 'header':262,673,1081 'histori':714,834,1101,1275,1279 'hit':422,485,664,1074 'honor':669,1077 'http':665,1075 'id':179,229,249,685,780,818,883,902,940,947,953,963,980,1010,1027,1255,1273 'ident':551 'identifi':790 'im':631 'immedi':1143 'includ':8,30,566 'info':500,538,545,1267,1284,1288 'inform':585,1271 'input':1345 'invalid':308,323,328 'invit':1062 'iso':936 'ital':264 'item':726,735,748,1228 'key':92,245,424,499,604,776,897,1165 'keyword':404 'kit':290 'known':1042 'larg':621 'latest':1282 'layout':291 'level':337,643 'like':791 'limit':612,668,922,997,1064,1145,1180,1247,1307 'line':1037 'link':131,446 'list':183,533,555,564,574,577,593,600,645,654,660,737,983,1066,1071,1173,1177,1241,1244 'live':784 'main':837,1103 'manag':12,34,58,116,523,701 'markdown':254,275,295,321,1016,1040,1189,1200 'match':488,504,1316 'match.text':495 'max':330,453 'may':496,1085,1137 'mcp':25,45,77,84,104 'mean':483 'member':579 'mention':203,1030 'messag':9,31,150,161,214,222,225,236,240,260,282,314,350,356,367,402,413,510,691,709,718,741,756,767,783,787,808,819,846,862,871,888,891,917,1013,1024,1109,1117,1124,1130,1136,1184,1187,1192,1197,1203,1206,1214,1257,1260 'metadata':589,635 'miss':304,1146,1353 'missing/empty':478 'mm':438,443 'modifi':430 'mpim':632 'must':46,930 'n':1035 'name':176,251,793,795,823,827,945,951,961,1230 'need':93,243 'nest':637,1082,1087 'none':1289 'oauth':135,1147 'ok':479 'oldest':1281 'omit':343 'one':319 'open':207,975,1249,1252 'open/reuse':209 'oper':7,29,353,949 'option':204,218,244,385,398,571,590,599,603,742,752,763,775 'origin':1123 'output':1325 'overview':1306 'page':452,615,1004,1012 'pagin':459,518,607,675,981,989 'pair':821 'param':303,959,1166 'paramet':246,425,605,777,898 'parent':281,807,852 'pattern':939 'payload':325 'per':451,614 'permiss':1158,1346 'persist':344,1126 'pitfal':297,472,633,813,919,1043 'plus':318 'post':159,223,239,338,893,903,928,1135,1262 'prefer':256,1015 'prefix':253 'prerequisit':43,180,719,884 'privat':567,629,1056 'private/im':657 'provid':311 'public':559,627,649 'queri':302,426,476,958,969,1172,1207,1238 'quick':1160 'rate':667,1063 'raw':268 'react':687 'reaction':14,36,699,723,730,736,738,746,751,814,1222,1225 'read':772 'recent':1134 'refer':1161 'relev':421,463 'reliabl':1003 'remov':745,749 'repli':284,333,757,812,842,859,1116 'request':309 'requir':230,301,315,409,423,552,561,580,731,815,896,1119,1344 'resolut':941,1045 'resolv':174,198,227,377,390,881,900,943,978 'respond':112 'respons':1083,1131 'response.data':1091 'response.data.channel':345 'response.data.has':515 'response.data.message.ts':347 'response.data.messages.matches':491 'response.data.messages.total':486 'response.data.results':1089 'response.data.team':639 'response.data_preview.messages.matches':494 'response_metadata.next':520,610,677,991 'result':192,450,613,1008,1052,1084,1142 'retri':671,1079 'retriev':583,1269 'retry-aft':670,1078 'return':129,190,326,648,836,1050,1102 'review':1337 'rube':24,44,49,57,65,76,103,109,115 'rube.app':80 'rube.app/mcp':79 'run':143,403 'safeti':1347 'schedul':861,869,887,889,920,1256,1259 'schema':73 'scope':380,1144,1148,1159,1318 'score':462 'search':10,32,50,66,110,355,381,401,405,427,708,968,1132,1141,1202,1205,1237 'send':149,221,313,349,755,1129,1183,1186 'sequenc':169,372,540,705,876 'server':85 'set':618,995 'setup':74 'show':140 'skill':1294,1310 'skill-slack-automation' 'skin':802 'skin-ton':801 'slack':2,5,19,21,27,41,54,62,120,134,164,171,182,195,206,220,232,235,298,312,374,387,400,411,542,554,563,573,582,592,644,653,659,707,711,721,733,744,754,765,825,831,844,878,886,954,964,974,1046,1065,1098,1107,1155,1169,1176,1185,1193,1196,1204,1212,1223,1234,1243,1251,1258,1268,1276,1285 'slack-autom':1 'slug':1164 'sometim':492 'sort':461,467,1209 'source-sickn33' 'specif':366,1332 'status':139 'still':482 'stop':1338 'string':428 'substitut':1328 'success':1350 'support':261,429 'target':717 'task':1162,1314 'team':544,597,1287 'test':1334 'text':255,267,269,276,296,915,1017,1019,1041,1190,1201,1264 'text/text/blocks/attachments':322 'thread':277,287,340,414,419,506,511,690,702,759,761,768,774,805,811,841,847,854,858,1095,1110,1115,1211,1215 'thumbsup':799 'timelin':839,1104 'timestamp':279,465,785,788,809,820,895,906,934,1231 'tone':803 'tool':51,67,72,111,168,371,539,704,875,1163 'toolkit':20,42,61,119 'top':336,642 'top-level':335,641 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'total':456 'treat':1323 'true':460,480,517 'truncat':513 'ts':278,341,762,786,806,855,1125,1199,1220 'type':623,625,1182 'uniqu':789 'unix':905,933 'updat':233,1194 'use':155,294,361,529,652,694,760,824,843,865,985,1025,1034,1106,1292,1308 'user':156,197,199,216,362,389,391,397,434,526,530,535,576,594,601,662,695,866,960,962,966,979,1026,1031,1068,1233,1236,1242,1246,1254 'usernam':1033 'valid':316,473,546,1333 'valu':998 'vari':617 'verifi':102 'via':23,56,508,519,676 'vs':1096 'want':157,363,531,696,867 'wave':800 'without':252,796,829 'work':100 'workflow':15,37,145,147,1300 'workspac':6,28,370,537,550,578,622,634,1283 'wrap':1093 'yyyi':437,442 'yyyy-mm-dd':436,441","prices":[{"id":"1a46e976-6eb7-448d-9234-6fee9591ad4b","listingId":"41fd1f32-2c31-46ac-8662-96865ce2f69d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:45:06.665Z"}],"sources":[{"listingId":"41fd1f32-2c31-46ac-8662-96865ce2f69d","source":"github","sourceId":"sickn33/antigravity-awesome-skills/slack-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/slack-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:45:06.665Z","lastSeenAt":"2026-04-22T12:51:47.742Z"}],"details":{"listingId":"41fd1f32-2c31-46ac-8662-96865ce2f69d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"slack-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34515,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"5ba9a1b1c67d0ea17ce2719538e94390448279ba","skill_md_path":"skills/slack-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/slack-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"slack-automation","description":"Automate Slack workspace operations including messaging, search, channel management, and reaction workflows through Composio's Slack toolkit."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/slack-automation"},"updatedAt":"2026-04-22T12:51:47.742Z"}}