S

SideButton Knowledge Module

SideButton Portal — Workflows — Knowledge Module

SideButton knowledge module — UI selectors, data model, and page states documenting Portal — Workflows.

Available free v1.1.0 Browser
$ sidebutton install sidebutton
Download ZIP

PRIVACY CONVENTION: This skill file must describe the PAGE — elements, selectors, layouts, states, and public UI copy (placeholder text, button labels, default headings). It must NOT record tenant-specific data visible to a logged-in user: real ticket keys (use PROJ-123), real agent hostnames (use agent-host or {hostname}), real IP addresses (use 203.0.113.10), real workflow/automation IDs (use {id}), real user names or emails, real Jira host (use {tenant}.atlassian.net), real registry names (use {registry-name}), or real automation display names. When re-verifying, generalize observed values before writing them into this file.

VERIFIED 2026-04-26: H1 "Workflows". Now 16 workflows (was 12). New csm role added (3 workflows: csm-daily-pulse, csm-discovery, csm-health-monitor). New SE workflow se-review-merge. All workflows now expose entry_path input — every terminal.run-style workflow accepts entry_path template variable. pm-sprint inputs expanded: previously hint-only, now exposes project_key, capacity, hint, entry_path. Pack header now reads "SideButton Default Pack · {registry-name} (4)" with a non-default pack count. CSM badge has dark-grey/charcoal styling (distinct from PM purple). Read-only list — no "+ New Workflow" button (workflows are defined in knowledge-pack YAML files). Rows link to /portal/workflows/{id}. Auth0 login required.

Portal — Workflows

What This Is

Workflow management page for Fleet Control -- lists all registered workflows grouped by source pack, with enable/disable toggles, role badges, descriptions, slugs, step counts, source badges, and last-updated timestamps. Each workflow links to a detail page showing the full step definition including step types (terminal.open, terminal.run, poll), agent prompts, input parameters, and configuration. Workflows are YAML-defined automation templates that get dispatched to agents as jobs.

URL Patterns

PatternDescription
/portal/workflowsWorkflow list
/portal/workflows/{id}Workflow detail (by numeric ID)

Browser tab title: List = "Workflows - SideButton Fleet", Detail = "{slug} - SideButton Fleet"

Page Structure

Workflow List (/portal/workflows)

+--[Sidebar]--+--[Main Content]------------------------------------------+
|             |  H1: "Workflows"                                          |
|  Workflows  |  "N workflows"                                            |
|  (active)   |  "SideButton Default Pack"  (pack group header)           |
|             |                                                           |
|             |  WORKFLOW              SOURCE    UPDATED   (column headers)|
|             |                                                           |
|             |  [Toggle] [Badge] Title           [default]  Nm ago       |
|             |           Description (truncated)                         |
|             |           slug  N step                                    |
|             |  ...                                                      |
+-------------+-----------------------------------------------------------+

Workflow Detail (/portal/workflows/{id})

+--[Sidebar]--+--[Main Content]------------------------------------------+
|             |  < Back to workflows                                      |
|  Workflows  |                                                           |
|  (active)   |  H1: Workflow Description     [Toggle] Enabled            |
|             |  slug  N step  Created date  Updated date                 |
|             |                                                           |
|             |  STEPS                                                    |
|             |    [dot] Step Name  [Role Badge]                          |
|             |    Description text                                       |
|             |                                                           |
|             |    input params: key: {{input.key}}                       |
|             |                                                           |
|             |    [terminal.open badge] Agent: Name  {{entry_path}}      |
|             |    [terminal.run badge]                                   |
|             |    Agent prompt text (full instructions)                  |
|             |                                                           |
|             |    [dot] Monitor task reports  [poll badge]                |
|             |    Poll description                                       |
|             |                                                           |
|             |  RECENT JOBS                                              |
|             |    [dot] slug — {ticket_key or 'queued'} #ID   time ago   |
|             |    ...                                                    |
+-------------+-----------------------------------------------------------+

Key Elements

Workflow List

ElementSelector / RefNotes
Page headingheading "Workflows"H1
Workflow countBelow heading"N workflows"
Pack group headerBelow countPack source names joined by " · " — e.g. "SideButton Default Pack · {registry-name} (4)". Shows all registered packs with workflow counts for non-default packs. Non-default pack name is styled in orange/accent color (not a link in accessibility tree)
Column headersAbove first row"WORKFLOW", "SOURCE", "UPDATED"
Enable/disable togglebutton "Disable workflow {slug}"Green toggle switch per row; toggles workflow enabled/disabled state. Button label always says "Disable workflow {slug}" regardless of current state (enabled or disabled) — cannot determine toggle state from accessibility tree
Workflow rowlink (each workflow)Clickable, navigates to /portal/workflows/{id}
Role badge: CSMDark-grey/charcoal pill with "CSM"NEW 2026-04-06 — Customer Success Management workflows
Role badge: PMPurple circle with "PM"Project Management workflows
Role badge: QAPurple circle with "QA"Quality Assurance workflows
Role badge: SEGreen circle with "SE"Software Engineering workflows
Role badge: SDOrange circle with "SD"Skill Discovery workflows
Role badge: OPSGreen circle with "OPS"Operations workflows
Workflow titleBold texte.g. "PM Agent: Drive Ticket"
Workflow descriptionGrey text below titleTruncated with "..." if long
Workflow slugGrey monospace texte.g. "pm-drive"
Step countGrey text"N step"
Source badgeGrey pill"default" for built-in workflows
Relative timeRight column"Nm ago" or "Nh ago"

Workflow Detail

ElementSelector / RefNotes
Back linklink "Back to workflows"Chevron left + text, returns to list
Workflow description (H1)headingH1 with full workflow description (NOT the short title)
Enable/disable togglebutton "Disable workflow"Green toggle next to H1, shows "Enabled" or "Disabled" text. Button label always says "Disable workflow" regardless of current state — use visible "Enabled"/"Disabled" text to determine state, not button label
SlugMonospace textWorkflow slug identifier
Step countText"N step"
Created dateText"Created M/D/YYYY, H:MM:SS AM/PM"
Updated dateText"Updated M/D/YYYY, H:MM:SS AM/PM"
STEPS section"STEPS" label (uppercase)Contains all step definitions
Step indicatorBlue dotLeft of step name
Step nameBold in step areae.g. "PM Agent: Drive Ticket", "SE Agent: Implement Fix + PR", "CSM Agent: Daily Pulse"
Step role badge[CSM] / [PM] / [QA] / [SE] / [SD] / [OPS]Small role pill next to step name
Step descriptionText below nameWorkflow description repeated
Input paramskey: {{input.key}} formatTemplate variables for job dispatch (e.g. ticket_url, hint)
Step type: terminal.openGreen/teal terminal.open badgeOpens terminal on agent, shows "Agent: {Name}" + {{entry_path}}
Step type: terminal.runRed/coral terminal.run badgeContains full agent prompt/instructions in dark code block
Step type: pollpoll badge"Monitor task reports" with polling description
RECENT JOBS section"RECENT JOBS" label (uppercase) below stepsList of recent job executions for this workflow (up to 10 shown)
Recent job rowlink per jobColor-coded status dot + "slug — {ticket_key or 'queued'}" (bold) + #ID + relative time; links to /portal/jobs/{id}
Job status dot: runningRed/orange dotCurrently executing job
Job status dot: completedGreen dotSuccessfully completed job
Job status dot: failed/cancelledGrey dotFailed, timed-out, or cancelled job

Data Model

Workflow

FieldTypeDescription
idnumberWorkflow ID (auto-increment, changes when workflows are re-registered; e.g. 259-270 for default pack and 3127-3144 for non-default pack as of 2026-04-26). Non-contiguous ranges occur after re-registration
titlestringShort title (e.g. "PM Agent: Drive Ticket") — shown on list
descriptionstringFull description — shown as H1 on detail page and as subtext on list
slugstringURL-safe identifier (e.g. "pm-drive")
rolestring"csm" / "pm" / "qa" / "se" / "sd" / "ops"
enabledbooleanWhether workflow is active (toggle state)
sourcestringSource pack name (e.g. "default", "{registry-name}")
step_countnumberNumber of steps (always shows "1 step")
created_atstring (datetime)Creation timestamp
updated_atstring (datetime)Last update timestamp

Workflow Step

FieldTypeDescription
namestringStep display name (e.g. "SE Agent: Implement Fix + PR")
rolestringStep role identifier
descriptionstringStep description
typestring"terminal.open" / "terminal.run" / "poll"
agent_namestringAgent label for terminal steps (e.g. "Agent: SE Work")
pathstringWorking directory — usually {{entry_path}} template variable; pull-repos uses fixed ~/workspace
promptstringFull agent prompt/instructions for terminal.run steps
inputobjectTemplate input parameters ({{input.key}} syntax)

Known Workflows (as of 2026-04-26)

entry_path is now a standard input on every workflow except pull-repos (which uses fixed ~/workspace). The "Inputs" column below lists the workflow-specific params; entry_path is always also present unless noted otherwise.

SlugRoleTitleInputs (excl. entry_path)Agent Name
csm-daily-pulseCSMCSM Agent: Daily PulsehintAgent: CSM Daily Pulse
csm-discoveryCSMCSM Agent: Customer DiscoveryhintAgent: CSM Discovery
csm-health-monitorCSMCSM Agent: Health MonitorhintAgent: CSM Health Monitor
pm-drivePMPM Agent: Drive Ticketticket_url, hintAgent: PM Drive Ticket
pm-sprintPMPM Agent: Sprint Lifecycleproject_key, capacity, hintAgent: PM Sprint Lifecycle
pull-reposOPSOps: Pull All Repos(none — uses fixed ~/workspace path, no entry_path)Agent: Pull All Repos
qa-followupQAQA: Re-review PR After Fixesticket_url, hintAgent: QA Re-review PR
qa-new-ticketQAQA: Test Live Site (New Ticket)ticket_url, hintAgent: QA Test Live
qa-regressionQAQA: Regression Test (Live Site)ticket_url, depth, hintAgent: QA Regression (Live)
qa-validateQAQA: Review PR Fixticket_url, hintAgent: QA Review PR Fix
sd-coverageSDSD Agent: Fill Skill ModulehintAgent: SD Coverage
se-followupSESE Agent: Apply Review Feedbackticket_url, hintAgent: SE Followup
se-rcaSESE Agent: Root Cause Analysisticket_url, hintAgent: SE RCA
se-rca-fixSESE Agent: RCA + Fix + PRticket_url, hintAgent: SE RCA+Fix
se-review-mergeSESE Agent: Review + Merge PRticket_url, hintAgent: SE Review + Merge
se-workSESE Agent: Implement Fix + PRticket_url, hintAgent: SE Work

States & Variations

StateTriggerVisual Indicator
List view/portal/workflowsAll workflows listed with toggles, role badges, source badges
Detail view/portal/workflows/{id}Full step definition with prompts
Workflow enabledDefault stateGreen toggle, "Enabled" text on detail
Workflow disabledToggle clickedToggle off state, "Disabled" text on detail
With recent jobsWorkflow has been executed"RECENT JOBS" section at bottom with job links
Without recent jobsNo executions yetNo recent jobs section shown
Workflow with standard SE/QA inputsHas ticket_url + hint + entry_path paramsThree input param lines below step description (all SE/QA workflows + pm-drive)
Workflow with hint-only styleHas hint + entry_path paramsTwo input param lines (csm-*, sd-coverage)
Workflow with extra inputsHas additional params beyond standardqa-regression shows depth; pm-sprint shows project_key + capacity
Workflow without inputsNo input params (pull-repos only)No input params section; uses fixed ~/workspace path instead of {{entry_path}}
Recent jobs: runningJob currently executingRed/orange status dot
Recent jobs: completedOlder finished jobsGreen status dot
Recent jobs: failed/cancelledTimed-out, errored, or cancelled jobsGrey status dot
Invalid workflow IDNavigate to /portal/workflows/99999Redirects to workflow list (no error page)
Long descriptionWorkflow with long descriptionTruncated with "..." on list, full text as H1 on detail
Long H1 in accessibility treeDetail page with long descriptionH1 text truncated in accessibility snapshot (e.g. "Find the lowest-coverage module, explore it in the browser, improve its skill fi") — full text in page content
Multi-pack headerMultiple pack sources registeredPack group header shows all pack names joined by " · " with counts for non-default packs
Toggle updates timestampToggle enabled/disabled on any workflowUPDATED column refreshes to "Just now" on list page

Common Tasks

1. Browse workflows

  1. Navigate to /portal/workflows
  2. See all workflows grouped by pack ("SideButton Default Pack")
  3. Column headers: WORKFLOW, SOURCE, UPDATED

2. View workflow detail

  1. Click any workflow row (the link element, not the toggle)
  2. See full step definitions, input parameters, agent prompts
  3. Back link at top returns to list

3. Enable/disable a workflow

  1. On list page: click the toggle switch (left of role badge) for the target workflow
  2. On detail page: click the toggle next to the H1 heading
  3. Toggle text changes between "Enabled" / "Disabled"

4. Understand workflow steps

  1. On detail page, read the STEPS section
  2. terminal.open = opens a terminal session on the agent at {{entry_path}}
  3. terminal.run = executes the agent prompt (main work instructions)
  4. poll = monitors for task completion (15s interval, 2h timeout)

5. View recent job history for a workflow

  1. On detail page, scroll to "RECENT JOBS" section
  2. Each row shows: color-coded status dot + "slug — {ticket_key or 'queued'}" + job ID + relative time
  3. Click any job row to navigate to /portal/jobs/{id}

Tips

  • Workflows are organized by role: CSM (customer success), PM (planning), QA (testing), SE (engineering), SD (skill discovery), OPS (operations)
  • The terminal.run step contains the full agent prompt -- this is the main instruction set
  • Input parameters use {{input.key}} template syntax and are filled at dispatch time
  • {{entry_path}} in terminal.open is resolved at dispatch time based on agent configuration
  • Workflow IDs are numeric (not slugs) in the URL pattern
  • Role badges are color-coded: PM/QA use purple circles, SE/OPS use green circles, SD uses orange, CSM uses dark-grey/charcoal
  • The H1 on the detail page is the workflow description, not the short title
  • Source badges show "default" for built-in workflows from SideButton Default Pack
  • Browser tab title on detail pages uses the workflow slug (e.g. "pm-drive - SideButton Fleet")

Gotchas

  • H1 is the description, not the title: The detail page H1 shows the full description text (e.g. "Drive a ticket to completion — plan, dispatch SE/QA, track PRs, merge, validate, close. Idempotent."), not the short title ("PM Agent: Drive Ticket"). The short title appears as the step name instead.
  • "Enabled" not "Active": Status is shown as a toggle switch with "Enabled"/"Disabled" text, not a green "Active" badge as in older versions
  • Toggle vs row click: The enable/disable toggle and the workflow row link are separate clickable elements — clicking the toggle does not navigate to the detail page
  • URL uses numeric ID: Workflow detail URL uses numeric IDs (/portal/workflows/{id}, not a slug like /portal/workflows/pm-drive)
  • Invalid ID redirects: Navigating to a non-existent workflow ID (e.g. /portal/workflows/99999) silently redirects to the workflow list — no error page or toast
  • No create/edit UI: The workflow list page has no "New Workflow" button -- workflows are managed via YAML files and the SideButton CLI, not through the portal UI
  • Step type badges are color-coded: terminal.open = green/teal, terminal.run = red/coral, poll = grey — all monospace font
  • Full prompts visible: The detail page shows the complete agent prompt text for terminal.run steps in a dark code block — these can be very long
  • No filter/search: Unlike Jobs and Queue, the workflow list has no status filter tabs, search box, or dropdown filters
  • All workflows show "1 step": The step count shows "1 step" even though workflows have multiple sub-steps (terminal.open, terminal.run, poll) — this represents one logical agent task
  • Recent Jobs format: Only appears on detail page for workflows that have been executed; shows up to 10 jobs. Format is "slug — {ticket_key or 'queued'}" with color-coded dots (red/orange=running, green=completed, grey=failed/cancelled). The text after "—" shows the job source label, NOT the execution status — status is indicated only by dot color. Each row links to /portal/jobs/{id}
  • Descriptions truncated on list: Long workflow descriptions are truncated with "..." on the list page; full text shown on detail page as H1
  • entry_path is a template variable: The terminal.open path shows {{entry_path}} which is resolved at dispatch time — except pull-repos which uses the fixed path ~/workspace
  • entry_path is now a universal input: As of 2026-04-06 every workflow except pull-repos exposes an entry_path template parameter (resolved at dispatch time). pull-repos still has zero inputs and uses a hard-coded ~/workspace path
  • Input params vary by workflow: SE/QA workflows + pm-drive use ticket_url + hint + entry_path; CSM workflows + sd-coverage use hint + entry_path; pm-sprint uses project_key + capacity + hint + entry_path; qa-regression adds depth between ticket_url and hint; pull-repos has no inputs at all
  • Agent names are unique per workflow: Each workflow shows a distinct agent name in terminal.open (e.g. "Agent: SE Work", "Agent: QA Regression (Live)") — these correspond to agent configurations in Fleet Control
  • Toggle button label never changes: On the list page, the button always reads "Disable workflow {slug}" and on the detail page "Disable workflow" — regardless of whether the workflow is currently enabled or disabled. You cannot determine the toggle state from the accessibility tree; use the visible "Enabled"/"Disabled" text or screenshot instead
  • Toggle updates updated_at: Toggling enabled/disabled immediately updates the workflow's updated_at timestamp, which shows as "Just now" in the UPDATED column
  • Multi-pack header: The pack group header now shows all registered pack sources joined by " · " (e.g. "SideButton Default Pack · {registry-name} (2)") with counts for non-default packs. Previously documented as only "SideButton Default Pack"
  • Workflow IDs are dynamic: IDs change when workflows are re-registered (e.g. after reinstall). Don't hardcode IDs in tests — navigate via list page click instead
  • Long H1 truncation in accessibility tree: Detail page H1 for workflows with long descriptions gets truncated in the accessibility snapshot. Use snapshot(includeContent=true) to get the full text from page content
  • Recent jobs ordered by time, not ID: Recent jobs are sorted by most recent execution time, not by job ID. IDs may appear out of sequence within the same time period