The Board Home
Slop Β· Main Interface

The Board

The Board is the primary view for a watched repo. It combines a planning surface for the operator with an execution surface driven by the daemon - live, drag-and-drop, and updated in real time via Server-Sent Events.

4 columns Live SSE updates Drag to prioritize Per-card controls Batch & filter

Two Layers, One Board

The board is divided into two clear domains. Everything left of In Progress belongs to the operator; everything right belongs to the daemon.

πŸ§‘β€πŸ’»
Planning Surface
Backlog + Ready - operator's domain

You decide which issues are worth doing and in what order. Drag issues from Backlog to Ready to queue them. Drag within Ready to reprioritize.

  • Refine issues before queuing
  • Set story points and model overrides
  • Close or re-queue failed work
πŸ€–
Execution Surface
In Progress + Merged - daemon's domain

Workers run automatically. The board shows what they're doing, for how long, and lets you pause, resume, or stop them.

  • Pause/resume in-flight workers
  • Stop a runaway worker
  • View elapsed time and status
Backlog
reviewed
Add pagination to issues list
refined
Fix SSE reconnection on timeout
Improve error messages
Ready
queued
Implement dark-mode toggle
failed
Migrate config to new schema
In Progress
implementing
Add retry logic for GitHub API
waiting_ci
Refactor daemon poll interval
Merged
merged
Fix worktree cleanup on cancel
merged
Add internal issue creation API

Backlog

Contains every issue not yet promoted to the work queue. Issues are grouped by decision and sorted by issue number within each group. The sort order is most actionable first: reviewed β†’ refined β†’ reviewing β†’ refining β†’ unrefined.

DecisionMeaning
unrefinedIssue exists on GitHub but has not been touched by Slop.
refiningA refine skill run is in flight.
reviewingA review skill run is in flight.
reviewedReview completed; the issue needs a human check before being refined.
refinedIssue is well-scoped and ready to move to Ready.
Click the sort toggle in the column header to flip the sort direction between ascending and descending by issue number within each decision group.

Ready

The ordered work queue. The daemon claims issues top-down: the card at position 1 is the next to be picked up. Drag cards vertically within the column to reprioritize.

DecisionMeaning
queuedWaiting for the daemon's next poll cycle.
claimedThe daemon has claimed it and is spawning the worker.
failedThe worker encountered an unrecoverable error. Inspect and retry or close.
cancelledThe operator cancelled the worker. Can be re-started directly from the board.
Failed and cancelled issues stay visible in Ready so you can inspect them and decide to work on them again or close them. Use Retry (prior worker exists) or Work on it (no prior worker) to restart.

In Progress

Populated by the daemon. Shows every worker that is actively implementing, verifying, waiting for CI, resolving conflicts, or otherwise not yet merged. Workers paused by the operator also appear here, classified by their pre-pause status.

What each card shows

Worker card anatomy
Issue # #42 links to the GitHub or internal issue
Status badge implementing current worker phase
Title links to the worker's run page (not the issue)
Elapsed time since last update - continuously ticking
Pause/Resume available while worker is in a pausable state
Stop cancels the worker immediately

Merged

Shows workers that have successfully merged or are in the final reporting step. Also includes recently merged workers loaded from the database on page load. Cards here are read-only - no actions available.

Display overrides: When issueState === "closed", a card shows issue_closed regardless of internal status. When prState === "merged", it shows merged regardless of internal status.

Issue Cards - Backlog & Ready

Backlog and Ready cards show a richer set of controls than In Progress cards. Every control is conditionally shown based on the current decision state.

Always shown

Issue number

Links to GitHub for GitHub issues. Links to the internal issue page for internal issues. Internal issues also show a small Slop mark icon.

Decision badge

Rendered for every decision except unrefined. A refined card that was also reviewed shows an additional reviewed badge.

Title

Links to the worker's run page when a worker exists for the issue; otherwise links to the issue itself.

Shown for pre-claim decisions

(unrefined, refining, reviewing, reviewed, refined, queued)

Refine button

Starts a /refine skill run. Hidden once the issue has refined, reviewed, refining, or reviewing labels.

Review button

Starts a /review skill run. Hidden once reviewed or a review/refine is already in flight.

Work on it

For queued, cancelled, or failed without a prior worker. Immediately starts a worker, optimistically removing the card.

Retry button

For failed when a prior worker exists. Re-runs the failed worker from the beginning.

Story points field

Numeric input. Valid values: 1, 2, 3, 5, 8, 13, 21. Each point maps to a fixed agent model + effort tier.

Suggest button (sparkle)

Asks the AI to score the issue from its description. Opens a harness picker (Claude / Codex / Copilot). A checkmark icon replaces the sparkle after auto-scoring.

Close button

Closes the issue. Shown for unrefined, refining, reviewing, reviewed, refined, and queued decisions.

Gear icon

Opens the per-issue config popover. Set model, effort, implement mode, auto-merge/review/address modes, and accepted review level before the daemon claims the issue.

Drag and Drop

Dragging is optimistic: cards move instantly in the UI. The snapshot from the next daemon poll confirms or reverts the position.

Move between columns

Drag a Backlog card to Ready to promote it to the work queue. Drag a Ready card back to Backlog to demote it. The target column highlights with an accent ring while a card is dragged over it.

Reorder within Ready

Drag a Ready card on top of another Ready card to insert it before that position. A drop slot highlights with an accent border and ring. The daemon always claims the topmost card first.

Ordering is priority. The daemon always claims the card at position 1 first. Drag to control which issue gets picked up next.

Filters

Filter controls appear on the left side of the toolbar. They apply to Backlog and Ready only (except Batch, which also scopes In Progress and Merged).

ControlWhat it filters
Search boxIssue number, title, or decision - substring match, case-insensitive.
StageAll stages / Unrefined / Refined / Reviewed / In Progress (issues labeled refining or reviewing).
PointsSpecific story-point values, or Unpointed to find issues that still need scoring.
HarnessClaude Code / Codex / Copilot - filters by the effective agent harness for each issue.
BatchScopes the board to only the issues belonging to a saved batch. Also scopes In Progress and Merged to the batch's issue set.

Status & Actions

Controls on the right side of the toolbar manage repo-level state and automation settings.

Automation button

An "Automation" pill, highlighted when any automation is active. Opens a popover with four toggles: Autopilot, Auto-merge, Auto-review, Remote.

Base CI badge

Shows whether base-branch CI is passing, failing, pending, or absent (links to GitHub Actions). When failing and no fix is in flight, a Fix CI button appears.

Sync branch

Shows ↑ahead ↓behind commit counts relative to origin. A sync button appears when out of sync.

Pause polling

Suspends the daemon's poll-and-claim loop. In-flight workers continue. A "polling paused" badge appears inline next to the button while paused.

GitHub link

Opens the watched repo on GitHub in a new tab.

Pull Requests & Worktrees

Below the columns, two collapsible panels surface additional operational context.

Open Pull Requests

Lists every open PR in the watched repo, whether or not Slop created it.

  • CI status badge (passing / failing / pending / none)
  • PR number linking to GitHub
  • Draft indicator when applicable
  • Linked issue number (if Slop can infer the link)
  • Merge button - active only when CI is passing and PR is not a draft
  • Β·Β·Β· menu: Review PR, Address comments, Close PR
Slop hides a PR row after you merge or close it, until the next snapshot poll confirms.

Worktrees

Lists local git worktrees parked at waiting_merge in local mode (no GitHub PR).

  • Issue link and title
  • Branch name
  • Worktree path on disk
  • Merge button - fast-forwards the worktree into the base branch
The Merge button is disabled when base-branch CI is failing.

Base CI Alert

When the base branch CI is failing, a red alert banner is rendered above the board:

β›”
Base branch CI is red. Auto-merge and new issue claiming are paused until CI recovers. In-flight workers continue and will park at waiting merge.
Fix CI button: While the banner is shown and no fix worker is in flight, a Fix CI button appears in the toolbar's Base CI badge area. While fixing, a "Fixing... β†’" link to the worker appears instead.

Issue Flow Summary

Issues follow a forward path from GitHub through Backlog, Ready, and In Progress to Merged. They can move backwards by dragging from Ready back to Backlog, or be retried from failed/cancelled states.

# Forward path GitHub issue created └─ Backlog: unrefined β”‚ β”œβ”€ Refine skill run β†’ Backlog: refined β”‚ └─ drag to Ready β†’ Ready: queued β”‚ daemon poll claims β†’ Ready: claimed β”‚ worker spawns β†’ In Progress: implementing β”‚ ... verify / CI / review ... β”‚ └─ Merged: merged # Backwards / recovery paths Ready: queued ← drag back ← Ready: queued Backlog ← drag to Backlog ← Ready: * In Progress ← Retry/Work on it ← Ready: failed/cancelled
Live updates: The board receives changes from the daemon via Server-Sent Events (SSE). Card positions and status badges update without a page reload. A small "Reconnecting..." message appears if the SSE stream drops.