GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feat: add slackbot.skills.create method by zimeg · Pull Request #2017 · slackapi/python-slack-sdk

Conversation

@zimeg

@zimeg zimeg commented Nov 12, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

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.

  1. feat: add slackbot.skills.create method #2017 slackbot.skills.create 👈 this pull request
  2. feat: add slackbot.skills.info method #2018 slackbot.skills.info
  3. feat: add slackbot.skills.update method #2019 slackbot.skills.update
  4. feat: add slackbot.skills.list method #2020 slackbot.skills.list
  5. feat: add slackbot.skills.library.add method #2021 slackbot.skills.library.add
  6. feat: add slackbot.skills.library.remove method #2022 slackbot.skills.library.remove
  7. feat: add admin.slackbot.skills.list method #2023 admin.slackbot.skills.list
  8. feat: add admin.slackbot.skills.publish method #2024 admin.slackbot.skills.publish
  9. feat: add admin.slackbot.skills.setAutoEnabled method #2025 admin.slackbot.skills.setAutoEnabled
  10. feat: add admin.slackbot.skills.unpublish method #2026 admin.slackbot.skills.unpublish
  11. feat: add slackbot.skills.delete method #2027 slackbot.skills.delete

Testing

With a token that has the skills:write scope:

  1. 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.
  2. 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.
  3. 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.

All reactions
@zimeg Claude
feat: add slackbot.skills.create method
446f5b4
Co-Authored-By: Claude <[email protected]>
@zimeg zimeg added this to the 3.47.0 milestone Nov 12, 2026
@zimeg zimeg added enhancement M-T: A feature request for new functionality semver:minor web-client labels Nov 12, 2026
@zimeg zimeg self-assigned this Nov 12, 2026
This was referenced Nov 12, 2026
feat: add slackbot.skills.info method #2018
Merged
feat: add slackbot.skills.update method #2019
Merged
feat: add slackbot.skills.list method #2020
Merged
feat: add slackbot.skills.library.add method #2021
Merged
feat: add slackbot.skills.library.remove method #2022
Merged
feat: add admin.slackbot.skills.list method #2023
Merged
feat: add admin.slackbot.skills.publish method #2024
Open
feat: add admin.slackbot.skills.setAutoEnabled method #2025
Open
feat: add admin.slackbot.skills.unpublish method #2026
Open
feat: add slackbot.skills.delete method #2027
Open
@codecov

codecov Bot commented Nov 12, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

Codecov Report

❌ 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.

Files with missing lines Patch % Lines
slack_sdk/web/async_client.py 83.33% 1 Missing ⚠️
slack_sdk/web/client.py 83.33% 1 Missing ⚠️
slack_sdk/web/legacy_client.py 83.33% 1 Missing ⚠️
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.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@zimeg zimeg mentioned this pull request Nov 12, 2026
feat: add slackbot.skills and admin.slackbot.skills methods #2016
Closed
5 of 15 tasks
zimeg and others added 3 commits November 11, 2026 20:18
@zimeg Claude
chore: order slackbot.skills.create arguments as the reference page does
d84fa4a
Co-Authored-By: Claude <[email protected]>
@zimeg
Merge remote-tracking branch 'origin/main' into zimeg-feat-slackbot-s…
2b55bb2
…kills-create

# Conflicts:
#	tests/slack_sdk_async/web/test_web_client_coverage.py
@zimeg Claude
test: include server_id in the mcp_servers coverage example
584c97f
Co-Authored-By: Claude <[email protected]>
@zimeg zimeg mentioned this pull request Nov 12, 2026
feat: add slackbot.skills.create method example slack-samples/bolt-python-examples#369
Draft
@zimeg

zimeg commented Nov 12, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member Author

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.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

zimeg and others added 2 commits November 11, 2026 21:24
@zimeg Claude
chore: sort slackbot methods before slackLists to match biome
7fc7707
Co-Authored-By: Claude <[email protected]>
@zimeg
Merge branch 'main' into zimeg-feat-slackbot-skills-create
68140d6
@zimeg
zimeg marked this pull request as ready for review November 12, 2026 23:42
@zimeg
zimeg requested a review from a team as a code owner November 12, 2026 23:42
@zimeg Claude
test: date the coverage endpoint count November 12, 2026
cd192b4
Co-Authored-By: Claude <[email protected]>
@zimeg
zimeg merged commit 74a7e27 into main Nov 13, 2026
19 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@zimeg
zimeg deleted the zimeg-feat-slackbot-skills-create branch November 13, 2026 00:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

@zimeg zimeg

Labels

enhancement M-T: A feature request for new functionality semver:minor web-client

Projects

None yet

Milestone

3.47.0

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@zimeg
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.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.