GeezerVison is showing github.com — feat: add slackbot.skills.create method by zimeg · Pull Request #2017 · slackapi/python-slack-sdk
Conversation
zimeg
commented
Nov 12, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
Summary
This pull request adds the slackbot.skills.create method to the Web API clients.
slackbot_skills_create takes a required display_name and optional canvas_id, category, description, example_prompt, instructions, and mcp_servers. mcp_servers is a list of objects, sent JSON-encoded. An app's MCP server is declared with service_type, app_id, and server_id.
- The async and legacy clients are regenerated with
scripts/codegen.py, and the method is added to the Web API coverage test.
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. Related to #2014.
- feat: add slackbot.skills.create method #2017
slackbot.skills.create 👈 this pull request
- feat: add slackbot.skills.info method #2018
slackbot.skills.info
- feat: add slackbot.skills.update method #2019
slackbot.skills.update
- feat: add slackbot.skills.list method #2020
slackbot.skills.list
- feat: add slackbot.skills.library.add method #2021
slackbot.skills.library.add
- feat: add slackbot.skills.library.remove method #2022
slackbot.skills.library.remove
- feat: add admin.slackbot.skills.list method #2023
admin.slackbot.skills.list
- feat: add admin.slackbot.skills.publish method #2024
admin.slackbot.skills.publish
- feat: add admin.slackbot.skills.setAutoEnabled method #2025
admin.slackbot.skills.setAutoEnabled
- feat: add admin.slackbot.skills.unpublish method #2026
admin.slackbot.skills.unpublish
- feat: add slackbot.skills.delete method #2027
slackbot.skills.delete
Testing
With a token that has the skills:write scope:
- Call
client.slackbot_skills_create(display_name="Daily priorities", instructions="# Purpose\nSuggest the three most important things to work on today.") and confirm skill.id comes back.
- Pass
mcp_servers=[{"service_type": "app", "app_id": ..., "server_id": ...}] for an app's MCP server and confirm skill.mcp_servers returns it with display_name and is_available. Leaving out server_id returns mcp_server_not_found.
- Repeat with
AsyncWebClient to check the generated async method.
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.
Category
- slack_sdk.web.WebClient (sync/async) (Web API client)
- slack_sdk.webhook.WebhookClient (sync/async) (Incoming Webhook, response_url sender)
- slack_sdk.socket_mode (Socket Mode client)
- slack_sdk.signature (Request Signature Verifier)
- slack_sdk.oauth (OAuth Flow Utilities)
- slack_sdk.models (UI component builders)
- slack_sdk.scim (SCIM API client)
- slack_sdk.audit_logs (Audit Logs API client)
- slack_sdk.rtm_v2 (RTM client)
-
/docs (Documents)
-
/tutorial (PythOnBoardingBot tutorial)
-
tests/integration_tests (Automated tests for this library)
Requirements
- I've read and understood the Contributing Guidelines and have done my best effort to follow them.
- I've read and agree to the Code of Conduct.
- I've run
python3 -m venv .venv && source .venv/bin/activate && ./scripts/run_validation.sh after making the changes.
🤖 Generated with Claude Code
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Nov 12, 2026
codecov
Bot
commented
Nov 12, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
|
❌ Patch coverage is 83.33333% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 84.38%. Comparing base (2953dd6) to head (cd192b4).
✅ All tests successful. No failed tests found.
Additional details and impacted files
@@ Coverage Diff @@
## main #2017 +/- ##
==========================================
- Coverage 84.38% 84.38% -0.01%
==========================================
Files 118 118
Lines 13830 13848 +18
==========================================
+ Hits 11670 11685 +15
- Misses 2160 2163 +3
☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
…kills-create
# Conflicts:
# tests/slack_sdk_async/web/test_web_client_coverage.py
zimeg
commented
Nov 12, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
|
A note on placement: the slackbot_skills_* methods come before slackLists_* in client.py, and slackbot.skills.* comes before slackLists.* in the coverage test, because method names are sorted case-insensitively. slackbot (b) sorts before slackLists (l). This matches the order the Node SDK's linter (Biome) enforces for imports, and the Node and Java SDKs use the same order for these methods.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
|