feat(experiment): prompt create shows more example templates and agents#402
feat(experiment): prompt create shows more example templates and agents#402zimeg wants to merge 2 commits intozimeg-revert-multistep-createfrom
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## zimeg-revert-multistep-create #402 +/- ##
=================================================================
+ Coverage 67.82% 68.01% +0.18%
=================================================================
Files 217 217
Lines 17997 18185 +188
=================================================================
+ Hits 12206 12368 +162
- Misses 4637 4657 +20
- Partials 1154 1160 +6 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
zimeg
left a comment
There was a problem hiding this comment.
💌 Leaving a few comments and questions ahead for future reviewers!
| languageOptions := []string{ | ||
| fmt.Sprintf("Bolt for JavaScript %s", style.Secondary("Node.js")), | ||
| fmt.Sprintf("Bolt for Python %s", style.Secondary("Python")), | ||
| fmt.Sprintf("Deno Slack SDK %s", style.Secondary("Deno")), | ||
| } | ||
| if clients.Config.WithExperimentOn(experiment.Templates) { | ||
| languageOptions = []string{ | ||
| "Bolt for JavaScript", | ||
| "Bolt for Python", | ||
| "Deno Slack SDK", | ||
| } | ||
| } |
There was a problem hiding this comment.
🔭 note: Toward confusion of #325 we focused on on a "framework" selection here - @srtaalej!
🐣 ramble: The samples command has the following flag option too but IMHO the prompt it supports feels unexpected. Perhaps it's changed to "framework" soon?
--language string runtime for the app framework
ex: "deno", "node", "python"
| categoryID = "slack-cli#getting-started" | ||
| } | ||
|
|
||
| // App categories and templates |
There was a problem hiding this comment.
🪓 note: This comment is removed in favor of godoc above.
| "github.com/spf13/cobra" | ||
| ) | ||
|
|
||
| // getSelectionOptions returns the app template options for a given category. |
There was a problem hiding this comment.
🪬 thought: The changes of this PR make me think of the create selections now as:
- Category: Choice of template, agent, or sample
- Scaffold: Feature focused examples
- Framework: Code implementation details
| { | ||
| Title: "Custom agent", | ||
| Description: "Minimal setup with the Slack MCP server", | ||
| Repository: "slack-cli#ai-apps/mcp-server", | ||
| }, |
There was a problem hiding this comment.
🔍 note: We can perhaps make effort to feature this as the agent starter template with a minimal event listener, action listener, and agentic loop to be compliment to the quickstart:
📚 https://docs.slack.dev/tools/bolt-js/getting-started
👾 question: Does this seem like the right separation with the assistant template below? I understand that "Casey" might be more useful to known cases and demonstrates adjacent frameworks also?
| return create.Template{}, slackerror.New(slackerror.ErrInvalidArgs). | ||
| WithMessage("The %s category was not found", categoryShortcut) |
There was a problem hiding this comment.
| categories = []categoryInfo{ | ||
| {id: "slack-cli#starter-templates/getting-started", name: "Starter templates"}, | ||
| {id: "slack-cli#starter-templates/automation-apps", name: "Automation templates"}, | ||
| {id: "slack-cli#starter-templates/search-template", name: "Search templates"}, | ||
| {id: "slack-cli#starter-templates/blank-template", name: "Blank templates"}, | ||
| {id: "slack-cli#ai-apps/support-agent", name: "Support agent"}, | ||
| {id: "slack-cli#ai-apps/mcp-server", name: "Custom agent"}, | ||
| {id: "slack-cli#ai-apps/assistant-template", name: "Assistant templates"}, | ||
| } |
There was a problem hiding this comment.
🪵 note: This file is updated in #400 and included here for demo purposes.
There was a problem hiding this comment.
🍰 note: The emoji related changes are also toward #400 changes!
| selectOptions := make([]string, len(sortedRepos)) | ||
| for i, r := range sortedRepos { | ||
| if !clients.Config.WithExperimentOn(experiment.Charm) { | ||
| selectOptions[i] = fmt.Sprint(i+1, ". ", r.Name) | ||
| } else { | ||
| selectOptions[i] = r.Name | ||
| } | ||
| } |
There was a problem hiding this comment.
👁️🗨️ note: The remaining changes of this file exist in #400!

Changelog
Summary
This PR prompts
createto show more starter templates, list "typescript" projects, and show agentic examples. This includes:We include this behind a new "templates" experiment until templates have matching framework support and examples are made public.
Preview
📸 Starter templates:
🤖 Agent examples:
Requirements