Skip to content

feat: add slackbot.skills.create method - #2831

Draft
zimeg wants to merge 2 commits into
mainfrom
zimeg-feat-slackbot-skills-create
Draft

zimeg wants to merge 2 commits into
mainfrom
zimeg-feat-slackbot-skills-create

Conversation

@zimeg

@zimeg zimeg commented Nov 12, 2026 •

Copy link
Copy Markdown
Member

Summary

This pull request adds the slackbot.skills.create method to @slack/web-api.

  • client.slackbot.skills.create() takes a required display_name and exactly one of instructions or canvas_id, modeled as a union like admin.apps.approve. The optional arguments are description, category, example_prompt, and mcp_servers.
  • mcp_servers items are { service_type, app_id?, server_id? } objects. The reference only says array, so this shape comes from the live API, which rejects strings and unknown keys. An app's MCP server needs service_type: 'app', app_id, and server_id.
  • SlackbotSkillsCreateResponse includes the created skill, and invalid_mcp_servers for mcp_server_not_found.
  • SlackbotSkillsCreateResponse is generated with scripts/code_generator.rb from the json-logs/samples/api/slackbot.skills.create.json sample recorded live in feat: add slackbot.skills.create method java-slack-sdk#1685.
  • Adds type tests and a minor changeset.

This is part 1 of 11 in a stack that adds the Slackbot skills methods one at a time, following a skill from creation to deletion. Each pull request builds on the one before it and merges on its own, bottom to top. It replaces #2830.

  1. feat: add slackbot.skills.create method #2831 slackbot.skills.create 👈 this pull request
  2. feat: add slackbot.skills.info method #2832 slackbot.skills.info
  3. feat: add slackbot.skills.update method #2833 slackbot.skills.update
  4. feat: add slackbot.skills.list method #2834 slackbot.skills.list
  5. feat: add slackbot.skills.library.add method #2835 slackbot.skills.library.add
  6. feat: add slackbot.skills.library.remove method #2836 slackbot.skills.library.remove
  7. feat: add admin.slackbot.skills.list method #2837 admin.slackbot.skills.list
  8. feat: add admin.slackbot.skills.publish method #2838 admin.slackbot.skills.publish
  9. feat: add admin.slackbot.skills.setAutoEnabled method #2839 admin.slackbot.skills.setAutoEnabled
  10. feat: add admin.slackbot.skills.unpublish method #2840 admin.slackbot.skills.unpublish
  11. feat: add slackbot.skills.delete method #2841 slackbot.skills.delete

Testing

  1. Call client.slackbot.skills.create({ display_name: 'Daily priorities', instructions: '# Purpose' }) with a skills:write token and confirm skill.id comes back.
  2. Passing both instructions and canvas_id is a type error.

Each layer of this stack was checked against an Enterprise developer sandbox by running every method added so far, in order, with that layer's WebClient.

Requirements

🤖 Generated with Claude Code

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
@zimeg zimeg added this to the web-api@next milestone Nov 12, 2026
@zimeg zimeg added semver:minor enhancement M-T: A feature request for new functionality area:typescript issues that specifically impact using the package from typescript projects pkg:web-api applies to `@slack/web-api` labels Nov 12, 2026
@zimeg zimeg self-assigned this Nov 12, 2026
@changeset-bot

changeset-bot Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d6940d8

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@slack/web-api Minor

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

@codecov

codecov Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.25%. Comparing base (5e8d3f0) to head (d6940d8).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2831      +/-   ##
==========================================
- Coverage   94.30%   94.25%   -0.05%     
==========================================
  Files          67       67              
  Lines       10671    10683      +12     
  Branches      673      676       +3     
==========================================
+ Hits        10063    10069       +6     
- Misses        580      585       +5     
- Partials       28       29       +1     
Flag Coverage Δ
cli-hooks 94.16% <100.00%> (+<0.01%) ⬆️
cli-test 94.16% <100.00%> (+<0.01%) ⬆️
logger 94.16% <100.00%> (+<0.01%) ⬆️
oauth 94.16% <100.00%> (+<0.01%) ⬆️
socket-mode 94.16% <100.00%> (+<0.01%) ⬆️
web-api 94.16% <100.00%> (+<0.01%) ⬆️
webhook 94.16% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

…rded java-slack-sdk sample

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:typescript issues that specifically impact using the package from typescript projects enhancement M-T: A feature request for new functionality pkg:web-api applies to `@slack/web-api` semver:minor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant