Repository navigation
Conversation
Adds the Slackbot skills Web API methods to @slack/web-api:
admin.slackbot.skills.{list,publish,setAutoEnabled,unpublish} and
slackbot.skills.{create,delete,info,library.add,library.remove,list,update}.
Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
🦋 Changeset detectedLatest commit: 00ef370 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
zimeg
left a comment
There was a problem hiding this comment.
📣 fast comments of implementation but seeming solid. .please extend these to other arguments and such
…arrays Inlines the skill ID, category, MCP server, and canvas or instructions helper types into each argument, drops the SlackbotSkillCategory and SlackbotSkillMCPServer exports, and types skill_ids and usergroup_ids as string[] instead of non-empty tuples. Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2830 +/- ##
==========================================
+ Coverage 94.30% 94.31% +0.01%
==========================================
Files 67 67
Lines 10671 10780 +109
Branches 673 676 +3
==========================================
+ Hits 10063 10167 +104
- Misses 580 584 +4
- Partials 28 29 +1
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
|
A note on placement: the The generated |
Reverts 080f82d. All three SDKs follow Biome's case-insensitive order. Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
|
Closing this in favor of a stack that adds one method per pull request, in the order of a skill's life from creation to deletion: #2831 |
Summary
This pull request adds the Slackbot skills Web API methods to
@slack/web-api.client.admin.slackbot.skills.{list,publish,setAutoEnabled,unpublish}foradmin.slackbot.skills.list,admin.slackbot.skills.publish,admin.slackbot.skills.setAutoEnabled, andadmin.slackbot.skills.unpublish.client.slackbot.skills.{create,delete,info,library.add,library.remove,list,update}forslackbot.skills.create,slackbot.skills.delete,slackbot.skills.info,slackbot.skills.library.add,slackbot.skills.library.remove,slackbot.skills.list, andslackbot.skills.update.slackbot.skills.createtakes exactly one ofinstructionsorcanvas_id, modeled as a union likeadmin.apps.approve.mcp_serversitems are{ service_type, app_id?, server_id? }objects. The reference pages only sayarray, so this shape comes from the live API, which rejects strings and unknown properties.scripts/code_generator.rb). The java-slack-sdk has no recorded samples for these methods yet, so the input samples were built from the documented example responses plus live responses. The live run addedinvalid_usergroup_ids(usergroup_not_foundonsetAutoEnabled) and the object shape ofinvalid_mcp_servers.Testing
Every method was called through these bindings with an org-installed user token (
skills:read,skills:write,admin.skills:read,admin.skills:write) in an Enterprise developer sandbox. To repeat it:client.slackbot.skills.create({ display_name, instructions, category, description, example_prompt })and saveskill.id.info, thenupdate(includingcategory: ''andmcp_servers: []to clear them), thenlibrary.removeandlibrary.addwith that ID.client.slackbot.skills.list({ filter: 'owned' })and confirm the skill appears. New skills can take a few seconds to show up in lists.admin.slackbot.skills.list,publish,setAutoEnabledwitheveryoneand thenno_one, andunpublish. Passing an unknown ID topublishreturnsfailed_for_some_skillswithfailed_skills.client.paginate('admin.slackbot.skills.list', { limit: 1 })and confirm it followsnext_cursoracross empty pages.deleteon it.Not exercised live:
createfrom a realcanvas_id(only thecanvas_not_founderror), a successfulmcp_serversdeclaration (no MCP-enabled app was available, onlymcp_server_not_found),setAutoEnabledwith a real user group, and abuiltin:skill ID.Requirements
🤖 Generated with Claude Code