S

Knowledge Pack Files

SideButton Marketing Website Knowledge Pack Files

Browse the source files that power the SideButton Marketing Website MCP server knowledge pack.

Available free v1.0.3 Browser
$ sidebutton install sidebutton.com
Download ZIP
24.1 KB

Prerequisites

  • Authenticated session
  • At least one online agent (owned); ideally one shared agent too
  • Cookie consent dismissed
  • NOTE: Settings changes are persistent — test carefully, restore original values after testing

Phase 1: Page Load & Structure

#TestMethodPass Criteria
1.1Settings page loadsnavigate to /portal/settingsH1 "Settings" visible
1.2Tab barsnapshot7 tabs visible: General, Agents, Assistant, Issue Tracking, Slack, Knowledge Packs, Logs
1.3General tab activesnapshot"General" tab has dark background by default
1.4Sidebar activesnapshot"Settings" nav link highlighted

Phase 2: General Tab

#TestMethodPass Criteria
2.1LLM Provider dropdownsnapshotselect with current value (e.g. "openai")
2.2Provider optionsclick dropdown → snapshot3 options: OpenAI, Anthropic, OpenRouter
2.3Model inputsnapshotText input with current model value
2.4API Key fieldsnapshotPassword input with placeholder "(configured -- enter new to change)"
2.5API key statussnapshotGreen "API key is configured" text when key exists, or "Platform key active..." fallback
2.6Effort Level togglessnapshot3 buttons: Max, High, Medium — one has active styling
2.7Effort hint textsnapshot"Max / High = Opus, Medium = Sonnet..." explanatory text
2.8Save buttonsnapshotOrange button "Save"
2.9Change effort levelclick different effort button → snapshotButton styling changes to show new selection
2.10Save General settingsclick Save → snapshotStatus text shows "Saving..." then "Saved" in green
2.11Save persistsreload page → snapshotChanged values still present after page reload
2.12Restore original effortclick original effort button → SaveRestore to avoid side effects

Phase 3: Agents Tab — Card Header

#TestMethodPass Criteria
3.1Switch to Agents tabclick "Agents" → snapshotTab active, URL shows ?tab=agents, description text visible
3.2Description textsnapshot"Manage agent roles, entry paths, environment config, and download RDP shortcuts."
3.3Agent card basicssnapshotAgent avatar ("Set avatar" button), display name, hostname, status badge
3.4Status badgesnapshotOne of: ONLINE (green) / BUSY (amber) / ERROR (red) / OFFLINE (gray)
3.5Shared with textsnapshot"Shared with N account(s)" span visible on owned agents
3.6Role checkboxes (owned)snapshotSE, QA, SD, PM checkboxes visible on owned agent
3.7Toggle role checkboxclick one role checkbox → snapshotOutline flash confirms save; checkbox state toggles
3.8Effort dropdown (owned)snapshotSelect with Default/Max/High/Medium options
3.9Change effort dropdownselect different value → snapshotBorder flash green confirms save
3.10Shared agent cardsnapshot (if shared agent exists)Sky-blue accents, "shared" badge, role tags (read-only)

Phase 4: Agents Tab — Rename Agent

#TestMethodPass Criteria
4.1Rename button hidden by defaultsnapshotNo "Rename agent" button visible (opacity-0)
4.2Rename button on hoverhover over agent card → snapshotPencil icon "Rename agent" button appears
4.3Click renameclick "Rename agent" → snapshotName becomes editable inline text field; save (emerald) and cancel (slate) buttons appear
4.4Cancel renameclick cancel button → snapshotName reverts to original; inline edit closes
4.5Save renametype new name → click save button → snapshotDisplay name updates on card; hostname unchanged
4.6Rename persistsreload page → snapshotNew display name still shown after reload
4.7Restore original namerename back to original → saveAvoid side effects

Phase 5: Agents Tab — Avatar Picker

#TestMethodPass Criteria
5.1Open avatar modalclick "Set avatar" button on agent card → snapshotModal opens with heading "Set Agent Avatar" and preset grid (10 avatars)
5.2Preset avatars visiblesnapshot10 preset images in grid layout
5.3Select presetclick a preset avatar → snapshot"Saved" status, avatar updates on card
5.4Upload input visiblesnapshotFile input for avatar upload
5.5Remove Avatar buttonsnapshot"Remove avatar (use default)" button visible
5.6Remove avatarclick "Remove avatar (use default)" → snapshotAvatar reverts to default SVG
5.7Cancel buttonsnapshot"Cancel" button visible in modal
5.8Close modalclick "Cancel" or press Escape → snapshotModal closes, page returns to normal

Phase 6: Agents Tab — RDP Download Modal

#TestMethodPass Criteria
6.1Open RDP modalclick "RDP" button → snapshotModal with heading "Download RDP Shortcut", Display Mode, Resolution, Platform options
6.2Display Mode optionssnapshotFullscreen and Windowed radio buttons
6.3Resolution optionssnapshot1280x800, 1440x900 (default), 1920x1080 radio buttons
6.4Fullscreen disables resolutionselect Fullscreen → snapshotResolution options become disabled
6.5Platform optionssnapshotWindows (default), macOS, Linux radio buttons
6.6macOS hintselect macOS → snapshot"Requires Microsoft Remote Desktop from App Store" shown
6.7Linux hintselect Linux → snapshot"Open with Remmina, xfreerdp..." shown
6.8Save Credentials checkboxsnapshotCheckbox #rdp-save-password with "Save credentials Embed password in RDP file"
6.9Copy password buttonsnapshot"Copy password" button visible
6.10Copy passwordclick "Copy password" → verifyPassword copied to clipboard
6.11Cancel buttonclick "Cancel" → snapshotModal closes without downloading
6.12Download RDPclick "Download" → verifyBrowser initiates .rdp file download with agent name

Phase 7: Agents Tab — Config Panel (Owned)

#TestMethodPass Criteria
7.1Expand config panelclick chevron → snapshotEntry Paths, Environment Variables, Save buttons, Danger Zone visible
7.2Entry paths listsnapshotAt least one entry path with active checkbox, path input, label input
7.3MCP JSON textareasnapshot per pathTextarea for JSON config (may be empty)
7.4Add entry pathclick "+ Add Entry Path" → snapshotNew empty entry path row appears
7.5Remove entry pathclick Remove on added path → snapshotPath row disappears
7.6Environment variablessnapshotTextarea with current env content
7.7Save button (DB only)snapshotSlate "Save" button visible
7.8Save & Apply buttonsnapshotOrange "Save & Apply" button visible
7.9Save configclick Save → snapshotStatus text shows success
7.10Save & Applyclick Save & Apply → snapshotStatus shows success + "Applied at: {timestamp}"
7.11Collapse configclick chevron → snapshotConfig panel hides

Phase 8: Agents Tab — Danger Zone

#TestMethodPass Criteria
8.1Reboot button visiblesnapshot (expanded panel)Amber "Reboot" button in Danger Zone section
8.2Delete button visiblesnapshotRed "Delete" button in Danger Zone section
8.3Reboot confirmationclick Reboot → snapshotBrowser confirmation dialog appears (do NOT confirm unless safe)
8.4Delete confirmationclick Delete → snapshotBrowser confirmation dialog appears (do NOT confirm)

Phase 9: Agents Tab — Shared Agent Preferences

#TestMethodPass Criteria
9.1Expand shared agentclick chevron on shared agent → snapshotPreferences panel: Enabled Roles, Effort Level, Entry Paths
9.2Enabled Roles checkboxessnapshotCheckboxes per agent capability
9.3Effort Level dropdownsnapshotDefault / Max / High / Medium; shows agent's default
9.4Enabled Entry PathssnapshotCheckboxes per active entry path
9.5Save Preferencesclick "Save Preferences" → snapshotSky-blue button, success feedback
9.6Remove Shared Agent buttonsnapshotRed remove button visible (do NOT click unless safe)

Phase 10: Assistant Tab

#TestMethodPass Criteria
10.1Switch to Assistant tabclick "Assistant" → snapshotTab active, Name/Persona/Avatar/Active Role fields visible
10.2Name fieldsnapshotText input with current name value
10.3Name hintsnapshot"The name your team sees in Slack messages"
10.4Persona textareasnapshotMulti-line text with system prompt content
10.5Persona hintsnapshot"System prompt that shapes the assistant's voice and behavior"
10.6Avatar URL fieldsnapshotText input with URL value
10.7Active Role dropdownsnapshotselect#active-role-select with current value
10.8Active Role optionsclick dropdown → snapshotOptions: No role, QA Engineer, Skill Discovery, Software Engineer, Product Manager, Social Media Manager, etc.
10.9Active Role hintsnapshot"Skill pack role that shapes the assistant's domain expertise"
10.10Change Active Roleselect different role → snapshotDropdown value updates
10.11Save buttonsnapshotOrange button "Save"
10.12Save feedbackclick Save → snapshot"Saving..." then "Saved" in green
10.13Active Role persistsreload page → snapshotSelected role still shown after reload
10.14Edit and Save round-tripchange Name → Save → reload → snapshotNew name persisted across page reload
10.15Restore original valuesReset Name and Active Role to original → SaveAvoid side effects

Phase 11: Slack Tab

#TestMethodPass Criteria
11.1Switch to Slack tabclick "Slack" → snapshotTab active, Connected Channels + Add Channel sections
11.2Connected ChannelssnapshotH2 heading + "No channels connected yet." or channel list with status dots
11.3Channel status dotssnapshot (if channels exist)Emerald dot (active) or gray dot (inactive) per channel
11.4Channel remove buttonsnapshot (if channels exist)Remove button per channel
11.5Add Channel formsnapshotAll 6 fields: Team ID, Channel ID, Channel Name, Bot Token, Signing Secret, Bot User ID
11.6Field placeholderssnapshotCorrect placeholders: T0123ABC, C0123ABC, #engineering-agents, xoxb-..., etc.
11.7Bot Token is passwordsnapshotBot Token input type is password (masked)
11.8Signing Secret is passwordsnapshotSigning Secret input type is password (masked)
11.9Add Channel buttonsnapshotOrange button "Add Channel"
11.10Test Connection buttonsnapshotOutlined button "Test Connection"
11.11Test Connection flowclick "Test Connection" (with valid token) → snapshot"Testing..." then "Connected: {team} ({user})" + Bot User ID auto-fills
11.12Test Connection errorclick "Test Connection" (with invalid token) → snapshot"Slack error: {message}"
11.13Setup Guide collapsedsnapshotdetails > summary "Slack App Setup Guide" visible, collapsed
11.14Expand Setup Guideclick "Slack App Setup Guide" → snapshot7-step guide with scopes, events URL
11.15Guide contentsnapshot(includeContent=true)Steps include: chat:write, reactions:write, users:read scopes
11.16Events URLsnapshotURL https://sidebutton.com/api/slack/events mentioned

Phase 12: Issue Tracking Tab

#TestMethodPass Criteria
12.1Switch to Issue Tracking tabclick "Issue Tracking" → snapshotTab active, URL shows ?tab=integrations
12.2Page headingsnapshotH2 "Issue Tracking" + description about automated dispatching
12.3Jira cardsnapshotJira icon, "Jira" heading, "Atlassian Jira Cloud" subtitle
12.4Credentials sectionsnapshotCREDENTIALS label, Jira URL, Email, API Token fields
12.5Jira URL fieldsnapshotPlaceholder "https://yourcompany.atlassian.net"
12.6Email fieldsnapshotPlaceholder "[email protected]"
12.7API Token fieldsnapshotPassword field; placeholder varies by state
12.8API token configured statussnapshot (if token set)Green "API token is configured" text
12.9Test Connection buttonsnapshotOutlined button for testing Jira API
12.10Save buttonsnapshotOrange button "Save"
12.11Webhook sectionsnapshotWEBHOOK label, URL, Copy, Test Webhook, Deploy Webhook
12.12Webhook URL valuesnapshotReadonly input with https://sidebutton.com/api/webhooks/jira
12.13Copy webhook URLclick "Copy" → verifyURL copied to clipboard
12.14Deploy Webhook buttonsnapshotOrange button "Deploy Webhook"
12.15View webhook logs linksnapshotLink to Webhook Logs tab

Phase 13: Knowledge Packs Tab

#TestMethodPass Criteria
13.1Switch to Knowledge Packs tabclick "Knowledge Packs" → snapshotTab active, URL shows ?tab=knowledge-packs
13.2Default pack status cardsnapshot"Using SideButton Default Pack" with description
13.3Sync Now buttonsnapshotbutton "Sync Now" visible in pack card
13.4Remove buttonsnapshotbutton "Remove" visible in pack card
13.5Upload Knowledge Pack headingsnapshotH3 "Upload Knowledge Pack"
13.6ZIP drop zonesnapshotDrag-drop area with "Drop a .zip file here or click to browse"
13.7ZIP size limitsnapshot"Max 10MB. Must contain index.json at root." text
13.8Display Name inputsnapshotPlaceholder "My Knowledge Pack"
13.9Upload & Sync disabledsnapshot (no file)Button disabled when no file selected
13.10Loaded Workflows headingsnapshotH3 "Loaded Workflows"
13.11Default workflows linksnapshot"Default workflows are available on the Workflows page." with link

Phase 14: Logs Tab — Structure & Data

#TestMethodPass Criteria
14.1Switch to Logs tabclick "Logs" → snapshotTab active, URL shows ?tab=logs
14.2Section headingsnapshotH2 "Webhooks" + description "Incoming webhook events across all automations."
14.3Matched only checkboxsnapshotUnchecked checkbox with "Matched only" label
14.4Table columnssnapshot5 column headers: Time, Status, Event, Automation, Job (Title Case)
14.5Log row — SKIPsnapshot (wait for table load)SKIP badge (grey/slate), event summary, automation name, "—" in Job column
14.6Log row — MATCHsnapshot (with matched data)MATCH badge (green/emerald), event summary, automation name, linked job #N in Job column
14.7Event summary — JirasnapshotFormat: "jira:issue_updated — ISSUE-KEY (Status)"
14.8Job linksnapshot on MATCH rowSky-blue #N link in Job column
14.9Job link navigatesclick job linkNavigates to /portal/jobs/{id}
14.10Automation namesnapshotAutomation display name in row (e.g. "JIRA>Work TODO - agent 10")
14.11Timestamp formatsnapshotLocale datetime string (e.g. "4/2/2026, 2:13:05 PM")

Phase 15: Logs Tab — Filter & Pagination

#TestMethodPass Criteria
15.1Matched only filtercheck "Matched only" → wait for reload → snapshotOnly MATCH rows shown; no SKIP rows
15.2Uncheck matched filteruncheck → wait → snapshotAll rows (MATCH + SKIP) shown again
15.3Pagination visiblesnapshot (when total > 30)Pagination bar with "N–M of Total" info + Prev/Next buttons
15.4Prev disabled on first pagesnapshotPrev button has disabled attribute / opacity-30 class
15.5Next pageclick "Next" → wait → snapshotTable shows next 30 entries; info text updates (e.g. "31–60 of 3958")
15.6Prev pageclick "Prev" → wait → snapshotReturns to first page; Prev becomes disabled
15.7Matched filter resets paginationpage forward, then check "Matched only" → snapshotResets to page 1 of filtered results

Phase 16: Logs Tab — Empty & Error States

#TestMethodPass Criteria
16.1Empty statesnapshot (account with no webhook events)"No webhook events recorded yet" centered in table
16.2Pagination hidden when emptysnapshotNo Prev/Next buttons visible
16.3Loading statesnapshot immediately on tab switch"Loading..." centered in table (before API response)

Phase 17: MCP Connections (Assistant Tab)

#TestMethodPass Criteria
17.1MCP section visibleswitch to Assistant tab → scroll down → snapshotH3 "MCP Connections" heading visible below divider line
17.2MCP descriptionsnapshot"Tool sources available to the chat assistant, Slack bot, and MCP clients..." text
17.3SideButton Cloud cardsnapshotGreen dot, "SideButton Cloud" title, "Agent dispatch, workflow execution..." description
17.4SideButton Cloud toolssnapshot"7 tools" badge text
17.5SideButton Cloud togglesnapshotOrange toggle checkbox (data-mcp-id="sidebutton") — checked by default
17.6Jira card (configured)snapshotGreen dot, "Jira / Atlassian" title, "Search, create, edit, and transition..." description
17.7Jira toolssnapshot"60 tools" badge text (when configured)
17.8Jira togglesnapshotOrange toggle checkbox (data-mcp-id="jira")
17.9Toggle SideButton Cloud offuncheck toggle → snapshotToggle turns off (slate background)
17.10Toggle SideButton Cloud oncheck toggle → snapshotToggle turns on (orange background)

Phase 18: Tab Switching & Deep Linking

#TestMethodPass Criteria
18.1Switch all 7 tabs in sequenceclick each tab → snapshot eachCorrect content renders for each tab
18.2Tab deep-linking via URLnavigate to /portal/settings?tab=slackSlack tab active on page load
18.3Tab URL updatesclick tab → check URLURL query param updates (e.g. ?tab=agents)
18.4Logs tab deep-linknavigate to /portal/settings?tab=logsLogs tab active, table loads
18.5Form state on tab switchedit General field → switch to Agents → switch backCheck if edited value persists or resets

Phase 19: Save Feedback & Error States

#TestMethodPass Criteria
19.1General Save status cycleclick Save → watch"Saving..." (slate) → "Saved" (green)
19.2Assistant Save status cycleclick Save → watch"Saving..." (slate) → "Saved" (green)
19.3Agent effort border flashchange effort dropdown → watchGreen border flash on success
19.4Agent role outline flashtoggle role checkbox → watchOutline flash confirms save
19.5Slack duplicate channeltry adding already-connected channelError: "This Slack channel is already connected"
19.6Knowledge pack sync errortrigger sync with invalid pack → watchBadge → "error" (red), error text shown

Phase 20: Edge Cases

#TestMethodPass Criteria
20.1Empty model fieldclear Model input → SaveVerify behavior (should save or show error)
20.2Invalid Jira URLenter "not-a-url" → SaveVerify behavior
20.3API key overwriteenter new text in API Key → Save → refreshPlaceholder still shows "(configured...)"
20.4Long persona textenter very long persona (near 5000 chars) → SavePersisted without truncation
20.5Avatar file too largeupload >1MB file in avatar modalError: "File too large (XXXkB). Maximum is 1MB." — input clears
20.6Avatar invalid typeupload non-image fileRejection (only JPEG/PNG/GIF/WebP/SVG allowed)
20.7Entry path missing labeladd entry path with path but no label → SaveVerify validation behavior
20.8Knowledge pack invalid ZIPupload invalid ZIP → Upload & SyncError feedback
20.9Rename agent empty nameclear name → click saveVerify validation (should reject or use hostname)
20.10Active Role change persistschange Active Role → Save → reloadSelected role value persists

Automation Tips

  • Tab switching uses link elements (not buttons) — use click by ref; URL updates with ?tab= param
  • The LLM Provider dropdown is a native <select> — use select_option tool
  • The effort level buttons on General tab are toggle buttons (not <select>) — use click by ref
  • The Agents tab effort dropdown is a native <select> — use select_option tool
  • Agent role checkboxes save immediately on click — no explicit Save needed; watch for border/outline flash as confirmation
  • The Slack Setup Guide is a <details> element — click the <summary> to expand
  • Bot Token and Signing Secret are type="password" — values are masked in the UI
  • Test Connection calls Slack API directly from browser — requires a real valid bot token to test the success path
  • Rename agent button (agent-rename-btn) is hidden by default — only visible on hover (opacity-0 group-hover/card:opacity-100); use hover tool before clicking
  • Avatar picker modal heading is "Set Agent Avatar"; remove button text is "Remove avatar (use default)"; modal has a "Cancel" button
  • Avatar picker modal: preset clicks save immediately; file upload has size/type validation client-side
  • RDP modal heading is "Download RDP Shortcut"; button on card shows as "RDP" (not "Download RDP")
  • RDP modal has "Copy password", "Cancel", and "Download" buttons; Save Credentials is a checkbox (#rdp-save-password)
  • RDP modal generates the file client-side — no network request; check browser download event
  • Danger Zone actions (Reboot/Delete) use browser confirm() — cannot be confirmed via snapshot; use evaluate to test
  • Config panel expand/collapse is a chevron toggle — take fresh snapshot after expanding
  • Knowledge pack uses ZIP upload now — "Upload & Sync" button disabled until file selected; "Sync Now" replaces old "Pull Updates"
  • Knowledge pack has a "Remove" button for removing the pack
  • Issue Tracking tab URL param is ?tab=integrations (not ?tab=issue-tracking)
  • Active Role dropdown (select#active-role-select) is a native <select> — use select_option tool
  • Tabs are deep-linkable: navigate to ?tab=slack to land directly on Slack tab
  • Logs tab URL param is ?tab=logs (was ?tab=webhook-logs — label also changed from "Webhook Logs" to "Logs")
  • Settings changes PERSIST — always note original values before testing and restore after
  • The API Key field masks existing values — you can't read the current key, only overwrite
  • Save status text transitions: slate-400 ("Saving...") → emerald-400 ("Saved") → clears; red-400 for errors
  • Shared agents cannot be configured, only preferences can be set — skip config panel tests for shared agents
  • Logs tab table is client-side rendered — data loads via fetch after tab opens; use evaluate or wait for table rows to appear before asserting content
  • Logs pagination loads 30 items per page; "Matched only" checkbox resets to page 1 when toggled
  • MCP Connections section is on the Assistant tab, below the persona form, under an H3 heading — scroll down to see it
  • MCP toggles are checkbox elements with data-mcp-id attributes (e.g. data-mcp-id="sidebutton", data-mcp-id="jira")