[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71V2F4T61ERQ8KSJX7XWMSZ":3,"skill-same:01M71V2F4T61ERQ8KSJX7XWMSZ":76},{"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":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":58,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M71V2F4T61ERQ8KSJX7XWMSZ","slack-cli",null,"Use when the user asks an agent to operate Slack through the matcra587\u002Fslack-cli binary, including messages, scheduled messages, DMs, threads, reactions, history, search, cleanup, users, channels, status, cache, auth, config, or app manifests.","matcra587\u002Fslack-cli","matcra587","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F28843561?v=4","01M71SS4S4KW72PN480WW4C60D","Matt Craven","01M71V2CZWAHTTQMV2RH1TS8A7",1,"MIT","https:\u002F\u002Fgithub.com\u002Fmatcra587\u002Fslack-cli\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fslack-cli\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,43,44,45,46],"slack","cli","slack cli","when","send","manifests","scheduled","threads","operate","app","get","Bash","SET","messages","search","delete","cleanup","init","auth","react","2026-11-10 13:02:02",false,"---\nname: slack-cli\ndescription: Use when the user asks an agent to operate Slack through the matcra587\u002Fslack-cli binary, including messages, scheduled messages, DMs, threads, reactions, history, search, cleanup, users, channels, status, cache, auth, config, or app manifests.\nallowed-tools: Bash(slick agent:*) Bash(slick auth login:*) Bash(slick auth status:*) Bash(slick auth switch:*) Bash(slick cache:*) Bash(slick config get:*) Bash(slick config init:*) Bash(slick config list:*) Bash(slick config path:*) Bash(slick config set:*) Bash(slick file upload:*) Bash(slick history list:*) Bash(slick lookup:*) Bash(slick manifest template:*) Bash(slick message edit:*) Bash(slick message scheduled list:*) Bash(slick message scheduled delete:*) Bash(slick message send:*) Bash(slick react:*) Bash(slick reply:*) Bash(slick status:*) Bash(slick workspace list:*)\n---\n\n# slack-cli\n\nUse this skill as a thin router. The Slack CLI binary contains the operational\nrunbooks. Load the matching runbook before acting. Do not copy CLI runbooks into\nthis skill; update the embedded `slick agent guide` source when details change.\n\nThe repository is `matcra587\u002Fslack-cli` but the installed binary is `slick`.\n\n## First Step\n\nRun the matching guide command:\n\n```sh\nslick agent guide \u003Cworkflow>\n```\n\nUse the schema only when you need command inventory or flag details:\n\n```sh\nslick agent schema --compact\n```\n\n## Workflow Map\n\n| User task | Load this runbook |\n| --- | --- |\n| Send a channel message or DM | `slick agent guide send_msg` |\n| Schedule, list, or cancel future messages | `slick agent guide schedule_msg` |\n| Post a realistic PR review, incident update, release note, reactions, and thread | `slick agent guide developer_review` |\n| Reply in a thread | `slick agent guide reply` |\n| Add, remove, or list reactions (single or ordered multi-emoji) | `slick agent guide react` |\n| Read channel history or thread replies | `slick agent guide read_history` |\n| Search messages, especially by run ID | `slick agent guide search_msgs` |\n| Clean up live-test messages | `slick agent guide cleanup_msgs` |\n| Edit a message | `slick agent guide edit_msg` |\n| Delete a message | Requires explicit user approval; then load `slick agent guide delete_msg` |\n| Find channels, private channels, or DMs | `slick agent guide discover_destination` |\n| Find users or presence | `slick agent guide lookup_user` |\n| Send direct messages | `slick agent guide send_dm` |\n| Set or clear the authenticated user's Slack status | `slick agent guide set_status` |\n| Prime, refresh, or clear local Slack metadata caches | `slick agent guide cache_metadata` |\n| Auth, manifests, token setup | `slick agent guide auth_setup` |\n| Config preferences | `slick agent guide config_prefs` |\n| Output modes, exit codes, parsing | `slick agent guide core_contract` |\n| Diagnose whether Slack itself is degraded before blaming auth | `slick agent guide check_health` |\n| High-impact or destructive operations | `slick agent guide safe_mutation` |\n| File upload testing | `slick agent guide upload_file` |\n| Command inventory | `slick agent guide inspect_schema` |\n\n## Non-Negotiables\n\n*   Run `slick agent guide \u003Cworkflow>` before taking action. The guide is the\n  runbook; the schema is only command inventory.\n*   Keep automation on JSON output. Do not parse `--plain`.\n*   Treat stdout as command data and stderr as diagnostics or structured errors.\n*   Parse failures from stderr JSON: `errors[0].type`, `errors[0].message`, and\n  `errors[0].exit_code`.\n*   Keep Slack timestamps as strings. They are scoped to a channel.\n*   Use exact `channel` + `ts` for replies, reactions, edits, and deletes.\n*   Never pass Slack tokens in argv. Use stdin, file, env-name, keychain, or a\n  configured secret reference.\n*   Use real multiline stdin for multiline Slack messages. Do not type literal\n  `\\n` into `--message` when the UI should show a new line.\n*   Use `--dry-run` before high-visibility or destructive mutations.\n*   `--schedule` accepts `--channel` or `--user`. For scheduled DMs, pass the\n  user ID, alias, or Slack-profile email with `--user`; real sends return the\n  raw DM\u002FMPIM channel ID in `data.channel`.\n*   This skill does not preapprove deletes. Treat `slick message delete` as an\n  explicit-user-approval operation outside `allowed-tools`.\n*   Status set\u002Fclear mutates the authenticated user's Slack profile and requires\n  a user token with `users.profile:write`. Bot-token profiles cannot use it.\n*   Do not duplicate attribution text in the message body. Attribution renders as\n  a context block when enabled.\n*   For live tests, use realistic content and unique run IDs. Clean up with the\n  paginated `cleanup_msgs` runbook.\n*   For search cleanup, follow `meta.pagination.next_cursor` until\n  `meta.pagination.has_more` is false, then repeat the search after deletes\n  until there are no matches.\n\n## Command Name Guardrails\n\n*   There is no `slick dm` command. Use `slick message send --user`.\n*   Immediate DM email targeting uses the user's Slack profile email. If Slack\n  returns `users_not_found`, resolve the Slack-side address or use the user ID.\n*   There is no `slick thread` command. Use `slick reply`.\n*   There is no `slick reaction` command. Use `slick react`.\n*   `--raw` is an output mode. Use `--blocks` only when the input is raw Block Kit\n  JSON.\n*   `slick react add` accepts one or more emoji: comma-separate (`--emoji a,b,c`)\n  or repeat the flag to apply multiple in input order. Halts on first failure.\n*   File upload remains probationary. Use `slick agent guide upload_file` before\n  testing it and prefer dry-run first.\n\n## Rate-Limit Guardrail\n\nThe CLI returns structured `rate_limit` errors with exit code `3`. Respect\n`retry_after_seconds`.\n\nSeparate CLI processes do not share proactive throttle state. Keep shell fanout\nmodest unless the user explicitly asks for a rate-limit test.\n","# slack-cli\n\nUse this skill as a thin router. The Slack CLI binary contains the operational\nrunbooks. Load the matching runbook before acting. Do not copy CLI runbooks into\nthis skill; update the embedded `slick agent guide` source when details change.\n\nThe repository is `matcra587\u002Fslack-cli` but the installed binary is `slick`.\n\n## First Step\n\nRun the matching guide command:\n\n```sh\nslick agent guide \u003Cworkflow>\n```\n\nUse the schema only when you need command inventory or flag details:\n\n```sh\nslick agent schema --compact\n```\n\n## Workflow Map\n\n| User task | Load this runbook |\n| --- | --- |\n| Send a channel message or DM | `slick agent guide send_msg` |\n| Schedule, list, or cancel future messages | `slick agent guide schedule_msg` |\n| Post a realistic PR review, incident update, release note, reactions, and thread | `slick agent guide developer_review` |\n| Reply in a thread | `slick agent guide reply` |\n| Add, remove, or list reactions (single or ordered multi-emoji) | `slick agent guide react` |\n| Read channel history or thread replies | `slick agent guide read_history` |\n| Search messages, especially by run ID | `slick agent guide search_msgs` |\n| Clean up live-test messages | `slick agent guide cleanup_msgs` |\n| Edit a message | `slick agent guide edit_msg` |\n| Delete a message | Requires explicit user approval; then load `slick agent guide delete_msg` |\n| Find channels, private channels, or DMs | `slick agent guide discover_destination` |\n| Find users or presence | `slick agent guide lookup_user` |\n| Send direct messages | `slick agent guide send_dm` |\n| Set or clear the authenticated user's Slack status | `slick agent guide set_status` |\n| Prime, refresh, or clear local Slack metadata caches | `slick agent guide cache_metadata` |\n| Auth, manifests, token setup | `slick agent guide auth_setup` |\n| Config preferences | `slick agent guide config_prefs` |\n| Output modes, exit codes, parsing | `slick agent guide core_contract` |\n| Diagnose whether Slack itself is degraded before blaming auth | `slick agent guide check_health` |\n| High-impact or destructive operations | `slick agent guide safe_mutation` |\n| File upload testing | `slick agent guide upload_file` |\n| Command inventory | `slick agent guide inspect_schema` |\n\n## Non-Negotiables\n\n*   Run `slick agent guide \u003Cworkflow>` before taking action. The guide is the\n  runbook; the schema is only command inventory.\n*   Keep automation on JSON output. Do not parse `--plain`.\n*   Treat stdout as command data and stderr as diagnostics or structured errors.\n*   Parse failures from stderr JSON: `errors[0].type`, `errors[0].message`, and\n  `errors[0].exit_code`.\n*   Keep Slack timestamps as strings. They are scoped to a channel.\n*   Use exact `channel` + `ts` for replies, reactions, edits, and deletes.\n*   Never pass Slack tokens in argv. Use stdin, file, env-name, keychain, or a\n  configured secret reference.\n*   Use real multiline stdin for multiline Slack messages. Do not type literal\n  `\\n` into `--message` when the UI should show a new line.\n*   Use `--dry-run` before high-visibility or destructive mutations.\n*   `--schedule` accepts `--channel` or `--user`. For scheduled DMs, pass the\n  user ID, alias, or Slack-profile email with `--user`; real sends return the\n  raw DM\u002FMPIM channel ID in `data.channel`.\n*   This skill does not preapprove deletes. Treat `slick message delete` as an\n  explicit-user-approval operation outside `allowed-tools`.\n*   Status set\u002Fclear mutates the authenticated user's Slack profile and requires\n  a user token with `users.profile:write`. Bot-token profiles cannot use it.\n*   Do not duplicate attribution text in the message body. Attribution renders as\n  a context block when enabled.\n*   For live tests, use realistic content and unique run IDs. Clean up with the\n  paginated `cleanup_msgs` runbook.\n*   For search cleanup, follow `meta.pagination.next_cursor` until\n  `meta.pagination.has_more` is false, then repeat the search after deletes\n  until there are no matches.\n\n## Command Name Guardrails\n\n*   There is no `slick dm` command. Use `slick message send --user`.\n*   Immediate DM email targeting uses the user's Slack profile email. If Slack\n  returns `users_not_found`, resolve the Slack-side address or use the user ID.\n*   There is no `slick thread` command. Use `slick reply`.\n*   There is no `slick reaction` command. Use `slick react`.\n*   `--raw` is an output mode. Use `--blocks` only when the input is raw Block Kit\n  JSON.\n*   `slick react add` accepts one or more emoji: comma-separate (`--emoji a,b,c`)\n  or repeat the flag to apply multiple in input order. Halts on first failure.\n*   File upload remains probationary. Use `slick agent guide upload_file` before\n  testing it and prefer dry-run first.\n\n## Rate-Limit Guardrail\n\nThe CLI returns structured `rate_limit` errors with exit code `3`. Respect\n`retry_after_seconds`.\n\nSeparate CLI processes do not share proactive throttle state. Keep shell fanout\nmodest unless the user explicitly asks for a rate-limit test.\n",{"name":5,"description":7,"allowed-tools":52},"Bash(slick agent:*) Bash(slick auth login:*) Bash(slick auth status:*) Bash(slick auth switch:*) Bash(slick cache:*) Bash(slick config get:*) Bash(slick config init:*) Bash(slick config list:*) Bash(slick config path:*) Bash(slick config set:*) Bash(slick file upload:*) Bash(slick history list:*) Bash(slick lookup:*) Bash(slick manifest template:*) Bash(slick message edit:*) Bash(slick message scheduled list:*) Bash(slick message scheduled delete:*) Bash(slick message send:*) Bash(slick react:*) Bash(slick reply:*) Bash(slick status:*) Bash(slick workspace list:*)","main","ce3b2a2b680fdf27bb48796940512478ce881034",".claude\u002Fskills\u002Fslack-cli",0,"https:\u002F\u002Fgithub.com\u002Fmatcra587\u002Fslack-cli","https:\u002F\u002Fmatcra587.github.io\u002Fslack-cli\u002F","https:\u002F\u002Fgithub.com\u002Fmatcra587","Lead DevOps Engineer","2026-11-06 22:05:32",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add matcra587\u002Fslack-cli --skill slack-cli",{"tool":68,"command":69},"bunx","bunx skills add matcra587\u002Fslack-cli --skill slack-cli",{"tool":71,"command":72},"pnpm","pnpm dlx skills add matcra587\u002Fslack-cli --skill slack-cli","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmatcra587\u002Fslack-cli\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fslack-cli\u002FSKILL.md",true,[],[77],{"skillNo":78,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":82,"publishedAt":47},"01M71V2EC0KCTVBFYR01ZYTV71","https:\u002F\u002Fgithub.com\u002Fmatcra587\u002Fslack-cli\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fslack-cli\u002FSKILL.md",[81],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[28,27,29]]