S

Knowledge Pack Files

SideButton Dashboard Knowledge Pack Files

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

Available free v0.4.0 Browser
$ sidebutton install sidebutton.local
Download ZIP
agents/_roles/qa.md
7.1 KB

Agents — QA Test Playbook

Prerequisites

  • SideButton server running on localhost:9876
  • At least one role enabled in Settings
  • Navigate to SPA root first (localhost:9876), then use in-app navigation (direct URL returns 404)

Phase 1: Page Load & Structure

#TestMethodPass Criteria
1.1Agents page loadsNavigate via sidebar button:has-text("Agents")"Agents" heading visible, no loading spinner
1.2Header actionssnapshot banner"Refresh agents" icon button + "+ Start Agent" button visible
1.3Empty stateNo agents running or completed.empty-card with "No Agents Running" heading + description + "+ Start Agent" CTA
1.4Sidebar active statesnapshot sidebarAgents nav item highlighted
1.5Refresh buttonClick "Refresh agents" iconSVG gains .spinning class while refreshing, disabled during fetch

Phase 2: Start Agent Modal

#TestMethodPass Criteria
2.1Open modal (header)Click "+ Start Agent" in header[role="dialog"] visible with "Start Agent" heading
2.2Open modal (empty card)Click "+ Start Agent" in empty cardSame modal opens
2.3Role dropdown populatedsnapshot modalNative <select> with all enabled roles listed
2.4Role dropdown defaultsnapshot role <select> selected valueMay show blank if no role has slug 'se' — verify first option is not pre-selected
2.5Prompt textareasnapshot modalTextarea with placeholder "e.g., Pick issue SCRUM-142..." visible
2.6Cancel modalClick "Cancel"Modal closes, page returns to agent list
2.7Close via ESC keyPress Escape while modal openModal closes
2.8Close via backdropClick .modal-overlay area outside the modal boxModal closes
2.9Empty prompt validationClick "Start Agent" with blank promptToast warning "Please enter a prompt for the agent"; modal stays open
2.10Start agentSelect role → enter prompt → click "Start Agent"Modal closes, "Running" section appears with new agent card
2.11Starting stateClick "Start Agent" while submittingButton changes to "Starting..." and is disabled (prevents double-submit)

Phase 3: Running Agent States

#TestMethodPass Criteria
3.1Waiting stateAgent queued but not yet started.agent-card.waiting — amber left border, amber dot, "Queued {time}" text
3.2Running stateAgent actively executing.agent-card.running — green left border, animated green pulse dot, "Started {time} · {duration}"
3.3Role badge formatsnapshot running cardBadge shows uppercased role slug (e.g., SOFTWARE-ENGINEER, QA-AGENT-—-UNIVERSAL-WEB-APP-TESTING)
3.4Prompt displaysnapshot running cardinitial_prompt field text shown in .agent-prompt block (only if present)
3.5Metrics visible (running only)snapshot running cardActions count, Tokens (formatted e.g. "12.5K"), Cost ($0.00) in .agent-metrics
3.6Metrics absent on waitingsnapshot waiting cardNo metrics block visible for waiting status agents
3.7Current task outputsnapshot running card.agent-output block with monospace terminal output (dark background #1e1e2e)
3.8Auto-poll always activeWait 10 seconds with no running agentsPage data still refreshes every 5s regardless of running count
3.9View Log (running)Click "View Log" on running agentNavigates to run log detail view for that run_id
3.10Stop agentClick "Stop" on running agentNative confirm() dialog: "Stop this agent?" — on confirm: toast "Agent stopped", agent moves to Completed
3.11Stop cancelClick "Stop" → click Cancel in confirm dialogAgent remains running, no state change

Phase 4: Completed Agents

#TestMethodPass Criteria
4.1Completed section appearsAgent finishes"Completed Today ({count})" section visible below Running section
4.2Success statusAgent status completed.status-dot.success (solid green), duration + "Completed {time}"
4.3Failed statusAgent status failed.agent-card.failed (red left border), .status-dot.failed (solid red), "Error: ..." in result block
4.4Result summarysnapshot completed cardresult_summary shown as "Result: {text}" (success) or "Error: {text}" (failure)
4.5No result summaryAgent completed with no resultNo .agent-result block rendered (conditional render)
4.6View Log (completed)Click "View Log" on completed agentNavigates to run log detail view
4.7Resend agentClick "Resend" on completed cardButton shows "Resending..." while in progress; on success toast "Job re-queued"; agent re-appears in Running section
4.8Resend errorResend fails (API error)Toast "Failed to resend: {error}"; button returns to "Resend"
4.9Today-only scopeHistorical agents (prior day)Not shown — Completed section only includes today's agents

Phase 5: Edge Cases

#TestMethodPass Criteria
5.1Role badge for skill rolesStart agent with skill-based role (e.g. "SideButton Skills QA")Badge shows full uppercased slug e.g. SIDEBUTTON-SKILLS-QA
5.2Section count updatesRunning section headingShows "Running ({n})" with live count; updates on each poll
5.3Refresh error toastSimulate API failure during refreshToast "Refresh failed: {error}" in red
5.4Stop error toastStop fails (API error)Toast "Failed to stop: {error}" in red

Automation Tips

  • Role dropdown is native <select>: Use select_option() — values are lowercased, hyphenated role names (em-dashes preserved, e.g. pm-—-portal-chat)
  • Role dropdown may show blank by default: selectedRole initializes to 'se' but if no enabled role has that slug, the select renders blank — explicitly select a value before submitting
  • ESC closes modal: press_key('Escape') is the most reliable way to close the modal without clicking Cancel
  • Backdrop click works: Click .modal-overlay (anywhere outside the white modal box) to dismiss — clicking inside the modal stops propagation
  • Polling is always active: Page polls every 5s on mount regardless of running count — do NOT assume metrics are static when no agents are running
  • Metrics only visible on running status: waiting agents show no metrics block — only "Queued" time
  • waiting is a distinct state: Agents may sit in waiting before running — test for amber dot, not just green

Known Blockers

  • Stop uses native confirm(): confirm("Stop this agent?") is a browser-native dialog — cannot be intercepted via snapshot/click. Requires browser dialog event handling or manual test step
  • "Starting..." state is transient: The button disabled state during submission is brief — difficult to capture in automation without coordination