Skip to content

feat(block-kit): add poll, wizard modal, and empty state templates to common patterns#85

Open
Roach wants to merge 2 commits into
slackapi:mainfrom
Roach:feat/block-kit-additional-patterns
Open

feat(block-kit): add poll, wizard modal, and empty state templates to common patterns#85
Roach wants to merge 2 commits into
slackapi:mainfrom
Roach:feat/block-kit-additional-patterns

Conversation

@Roach

@Roach Roach commented Jul 8, 2026

Copy link
Copy Markdown

Summary

Adds three ready-made templates to the block-kit skill's references/common-patterns.md, filling gaps in the existing pattern library (which covers approvals, forms, alerts, dashboards, confirmations, tables, and settings):

  • Poll Message [M] — interactive voting via section blocks with button accessories and a text-rendered tally, with a note that the app re-renders via chat.update as votes arrive.
  • Multi-Step Wizard Modal [V] — step 1 of a wizard flow with a step indicator in a context block, "Next" as the submit label, and customization notes on chaining steps (response_action: "update" / views.update) and carrying state in private_metadata.
  • Empty State Home Tab [H] — the first-run counterpart to the existing Dashboard Home Tab: explanation, one primary CTA, and a help-links footer.

One per surface, each structurally distinct from the existing templates. The Step 2 example list in SKILL.md is extended with matching entries so the skill can route requests to the new templates, and a changeset is included.

The templates stick to block types and composition objects already demonstrated in the file (header, section, divider, actions, context, input, button, static_select, plain_text_input), plus a section button accessory and the modal private_metadata field. No new/exotic block types are introduced, but a maintainer spot-check of the two new templates against docs.slack.dev would be welcome — I did not run them through blocks.validate against the live API from this environment.

Preview

New sections appended to skills/block-kit/references/common-patterns.md, following the existing format: ## Name [M/V/H] heading, one-line description, JSON scaffold, **Customization points:** line.

Testing

These are reference templates consumed by the skill's Fast Path / Step 3, not executable code, so testing focused on structure and consistency:

  • Verified all 10 JSON code blocks in the file (7 existing + 3 new) parse as valid JSON.
  • rumdl check . passes with the repo's config (no issues in 14 files).
  • make test-unit passes (12/12). make test-eval was not run locally (requires GEMINI_API_KEY/SLACK_MCP_TOKEN).
  • Did not run the new payloads through blocks.validate (no live Slack API access from this environment) — the file's own preamble already directs users to re-validate customized payloads before shipping.

Notes

  • Changeset is minor since this adds new skill content rather than fixing existing content; happy to downgrade to patch if that matches your versioning intent for reference-only changes.
  • Happy to drop or swap any of the three templates if the maintainers prefer a tighter set.

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 make test and the tests pass (unit suite; the eval suite needs API keys I don't have locally — see Testing above).

@Roach Roach requested a review from a team as a code owner July 8, 2026 22:53
@changeset-bot

changeset-bot Bot commented Jul 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 1a8514d

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

This PR includes changesets to release 1 package
Name Type
slack 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

@mwbrooks mwbrooks self-assigned this Jul 10, 2026
@mwbrooks mwbrooks added enhancement New feature or request semver:minor Changes trigger a minor version bump area:skills Skills and slash commands loaded by the plugin labels Jul 10, 2026
@mwbrooks

Copy link
Copy Markdown
Member

Hey @Roach 👋🏻 Good to hear from you, friend!

Thanks the PR. At first, I was hesitant to accept more scope to our skills without some supporting use-cases, but I think you're hitting on important gaps in this PR.

Thanks for signing the CLA - I've started the GitHub Action checks. 🔒

@WilliamBergamin and I will take your skill changes for a test drive and make sure that they're working well.

@WilliamBergamin WilliamBergamin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Roach thanks for your interest in this project 🚀 💯

Seem like there are still some kinks in our CI pipeline for forks 😅

I ran the evals locally and they passed 🟢

I used the following prompts to test out the changes and got expected behavior 🟢

Use the block-kit skill to build a poll message where teammates vote with buttons and see a live tally. It should ask which day works best for our team lunch, with options Tuesday, Wednesday, and Thursday.
Use the block-kit skill to create a multi-step setup form with a step indicator, this will be the first step of onboarding a new customer account.
Use the block-kit skill to design a first-run home tab that points a brand-new user to their first action, before they have any data yet.

@WilliamBergamin

Copy link
Copy Markdown
Contributor

@mwbrooks once you've taken this for a test drive and made sure its working well we will need to bypass the the merge rules because Evaluation tests does not support forks yet 😅

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

Labels

area:skills Skills and slash commands loaded by the plugin cla:signed enhancement New feature or request semver:minor Changes trigger a minor version bump

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants