Skip to content

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

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

This pull request adds the slackbot.skills.create method to the sync and async clients.

  • slackbotSkillsCreate takes displayName (required), instructions or canvasId (exactly one), description, category, examplePrompt, and mcpServers.
  • Adds the com.slack.api.model.slackbot.Skill model, which the create, info, list and update responses share, and SkillMcpServer for the mcp_servers argument.
  • mcp_servers is sent as a JSON array of {service_type, app_id, server_id} objects. The API rejects strings and any other keys. The response includes invalid_mcp_servers when a declared app can't be found.
  • JsonDataRecorder writes a typed sample for empty mcp_servers arrays instead of "".
  • SlackbotSkillsTest parses a response captured from the live API with unknown properties failing the test, so every returned field is typed.

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 #1683.

  1. feat: add slackbot.skills.create method #1685 slackbot.skills.create 👈 this pull request
  2. feat: add slackbot.skills.info method #1686 slackbot.skills.info
  3. feat: add slackbot.skills.update method #1687 slackbot.skills.update
  4. feat: add slackbot.skills.list method #1688 slackbot.skills.list
  5. feat: add slackbot.skills.library.add method #1689 slackbot.skills.library.add
  6. feat: add slackbot.skills.library.remove method #1690 slackbot.skills.library.remove
  7. feat: add admin.slackbot.skills.list method #1691 admin.slackbot.skills.list
  8. feat: add admin.slackbot.skills.publish method #1692 admin.slackbot.skills.publish
  9. feat: add admin.slackbot.skills.setAutoEnabled method #1693 admin.slackbot.skills.setAutoEnabled
  10. feat: add admin.slackbot.skills.unpublish method #1694 admin.slackbot.skills.unpublish
  11. feat: add slackbot.skills.delete method #1695 slackbot.skills.delete

Testing

Run the remote tests for this layer:

  • test_with_remote_apis.methods.slackbot_skills_Test with SLACK_SDK_TEST_BOT_TOKEN (canvases:write, skills:read, skills:write)

Each layer of this stack was checked against an Enterprise Grid developer sandbox by running every method added so far, in order. Test skills are deleted at the end.

Category (place an x in each of the [ ])

  • bolt (Bolt for Java)
  • bolt-{sub modules} (Bolt for Java - optional modules)
  • slack-api-client (Slack API Clients)
  • slack-api-model (Slack API Data Models)
  • slack-api-*-kotlin-extension (Kotlin Extensions for Slack API Clients)
  • slack-app-backend (The primitive layer of Bolt for Java)

Requirements

Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you agree to those rules.

🤖 Generated with Claude Code

Adds the slackbot.skills.create Web API method to the sync and async clients, with its
request and response types, mock fixture, rate limit tier, and tests.

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
@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 73.76%. Comparing base (c847d97) to head (811c521).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff            @@
##               main    #1685   +/-   ##
=========================================
  Coverage     73.75%   73.76%           
- Complexity     4679     4684    +5     
=========================================
  Files           487      487           
  Lines         14669    14684   +15     
  Branches       1528     1529    +1     
=========================================
+ Hits          10819    10831   +12     
- Misses         2939     2944    +5     
+ Partials        911      909    -2     
Flag Coverage Δ
jdk-14 73.76% <100.00%> (+<0.01%) ⬆️

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

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

Parses a live slackbot.skills.create response with unknown properties failing the test.

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

enhancement M-T: A feature request for new functionality project:slack-api-client project:slack-api-client project:slack-api-model project:slack-api-model semver:minor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant