ForgeFX SimulationsSLACK / SKILL INTERFACES
LESS PROMPTING. MORE DOING.

Three Ways Into A Skill

Ask a simple question, collect the missing details, then let someone review the result. Block Kit provides the controls; the skill supplies the procedure.

What works now: Hermes supports native multiple-choice clarification buttons. Custom forms and approval workflows need handlers connected to the chosen skill. These browser mockups simulate the experience; they do not run skills or send data.
01 / MESSAGE BUTTONS
ForgeBot   APP · Demo

What would you like to make?

Choose a starting point. I’ll ask for only what’s missing.

Pick any option to try the mockup.

Best for starting a procedure. A live clarification can already offer choices; a permanent launch menu needs routing.

Block Kit JSON / open in Slack Builder

Open native Block Kit Builder ↗

{
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*What would you like to make?*\nChoose a starting point. No prompt-writing needed."
      }
    },
    {
      "type": "actions",
      "elements": [
        {
          "type": "button",
          "text": {
            "type": "plain_text",
            "text": "Creative brief"
          },
          "action_id": "brief",
          "value": "brief"
        },
        {
          "type": "button",
          "text": {
            "type": "plain_text",
            "text": "Proposal"
          },
          "action_id": "proposal",
          "value": "proposal"
        },
        {
          "type": "button",
          "text": {
            "type": "plain_text",
            "text": "Training outline"
          },
          "action_id": "training",
          "value": "training"
        }
      ]
    }
  ]
}
02 / SLACK MODAL FORM

Create a brief

A message button opens this form inside Slack. Free-text input belongs in a modal or App Home, not an ordinary message.

Block Kit JSON / open in Slack Builder

Open native Block Kit Builder ↗

{
  "type": "modal",
  "callback_id": "skill_intake_demo",
  "title": {
    "type": "plain_text",
    "text": "Create a brief"
  },
  "submit": {
    "type": "plain_text",
    "text": "Create draft"
  },
  "close": {
    "type": "plain_text",
    "text": "Cancel"
  },
  "blocks": [
    {
      "type": "input",
      "block_id": "topic",
      "label": {
        "type": "plain_text",
        "text": "What are we training?"
      },
      "element": {
        "type": "plain_text_input",
        "action_id": "topic",
        "multiline": true
      }
    },
    {
      "type": "input",
      "block_id": "audience",
      "label": {
        "type": "plain_text",
        "text": "Audience"
      },
      "element": {
        "type": "static_select",
        "action_id": "audience",
        "options": [
          {
            "text": {
              "type": "plain_text",
              "text": "New operators"
            },
            "value": "New operators"
          },
          {
            "text": {
              "type": "plain_text",
              "text": "Experienced operators"
            },
            "value": "Experienced operators"
          },
          {
            "text": {
              "type": "plain_text",
              "text": "Service technicians"
            },
            "value": "Service technicians"
          }
        ]
      }
    },
    {
      "type": "input",
      "block_id": "due",
      "optional": true,
      "label": {
        "type": "plain_text",
        "text": "Needed by"
      },
      "element": {
        "type": "datepicker",
        "action_id": "due"
      }
    }
  ]
}
03 / REVIEW & NEXT STEP
ForgeBot   APP · Demo

Draft ready for review

Equipment inspection outline
Audience: new operators
Output: editable training outline

Demo only. Nothing will be approved or published.

Best for human review. An approval advances the agreed procedure—not blanket permission to send or publish.

Block Kit JSON / open in Slack Builder

Open native Block Kit Builder ↗

{
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*Draft ready for review*\nTraining outline · demonstration only"
      }
    },
    {
      "type": "actions",
      "elements": [
        {
          "type": "button",
          "text": {
            "type": "plain_text",
            "text": "Approve draft"
          },
          "action_id": "approve_demo",
          "value": "approve_demo"
        },
        {
          "type": "button",
          "text": {
            "type": "plain_text",
            "text": "Request changes"
          },
          "action_id": "revise_demo",
          "value": "revise_demo"
        },
        {
          "type": "button",
          "text": {
            "type": "plain_text",
            "text": "Cancel"
          },
          "action_id": "cancel_demo",
          "value": "cancel_demo"
        }
      ]
    }
  ]
}
THE COMPONENT TOOLBOX

Native Slack Controls, Sensible Limits

Slack owns the styling and layout. No arbitrary HTML, CSS, JavaScript, embedded web app, or native slider inside a Block Kit message.

Buttons & links

Start, choose, cancel, approve, open a URL. Confirmation dialogs can protect consequential actions.

Select menus

Single or multi-select. Static choices, searched choices, users, channels, and conversations.

Checkboxes & radio buttons

Select several requirements or one option.

Text & structured inputs

Plain or rich text; number, email, and URL inputs. Use modal forms for a clean, validated submission.

Date & time pickers

Date, time, and date-time controls. Useful for deadlines; the backend still needs a timezone policy.

File input

Modal upload control for source documents. Requires file access and backend validation. This demo does not upload.

Content & layout

Headers, sections, dividers, context, images, rich text, video and table blocks. Availability and limits vary by surface.

App Home & shortcuts

A persistent skill catalog in the app’s Home tab, or a shortcut on a message to summarize, review, or turn it into a task. Requires app setup.

Need a slider?

This slider works here in the browser, not in Block Kit. In Slack use a number field or Low / Medium / High.

How The Wrapper Runs A Skill

1. Choose
A button identifies an approved skill and procedure.

2. Collect
A modal gathers named inputs and validates required fields.

3. Run
The handler checks the user, acknowledges promptly, and starts the skill with those inputs.

4. Return
Update the same thread with progress, a draft, and the next permitted action.

Implementation needs: action / view-submission handlers, user authorization, duplicate-click protection, stored workflow state, cancellation and expiry. Opening a modal requires a fresh interaction trigger. A JSON layout alone does not supply this behavior.

Recommended first wrapper: a three-choice launcher followed by a short modal, then an editable draft returned to the thread. Keep sliders and richer previews on a linked web page.