Canvas Design System
Main Site Tokens

Agent Steps

The visible history of an AI run: each step it took and what it found, down to the check that failed and the revision that fixed it, with an optional summary row under the list.

When to Use

Use when: A multi-step AI run has produced something and the person should be able to see how it got there: Prepare my workshop's working pane, a generated agenda's "how this was made" panel. Say what each step found, in numbers where you have them ("5 open commitments become the candidate priorities").
Don't use when: The person is waiting on live progress with nothing else to look at; that is Agent Status in stages mode. Verdicts against a list of rules are Agent Check.

Variants

A run with a summary row

Each step is done, fail, now or todo, with a detail line. fail is a step whose own check failed and that the run went on to fix, so it is amber, not an error. A step can swap its state's glyph with icon, as the revision does here. The summary row closes the list.

  1. Done: Read the brief and Q3 Roadmap Offsite

    5 open commitments become the candidate priorities.

  2. Done: Built a first agenda from 7 library activities

  3. Needs another pass: Round 1: 2 of 7 checks failed

    The decision had 8 minutes. Choosing 3 of 12 with 12 people needs about 24.

  4. Done: Revised

    Swapped Crazy 8s for 1-2-4-All and gave the decision 30 minutes.

  5. In progress: Checking again

  6. Not started: Write the pre-read and your notes

Rounds2 of 3

<?= ws_agent_steps([
    ['label' => 'Read the brief and Q3 Roadmap Offsite', 'state' => 'done',
     'detail' => '5 open commitments become the candidate priorities.'],
    ['label' => 'Round 1: 2 of 7 checks failed', 'state' => 'fail', 'detail' => '...'],
    ['label' => 'Revised', 'state' => 'done', 'icon' => 'auto_fix_high', 'detail' => '...'],
    ['label' => 'Checking again', 'state' => 'now'],
    ['label' => 'Write the pre-read and your notes', 'state' => 'todo'],
], ['summary' => ['label' => 'Rounds', 'value' => '2 of 3']]) ?>

States

StepLooksSays
doneA tick in a stone circle"Done:"
failAn exclamation in an amber circle"Needs another pass:"
nowA turning ring in a filled red circle; still under reduced motion"In progress:", and aria-current="step"
todoAn empty circle, the title muted"Not started:"

Options

OptionTypeDefaultPurpose
$stepsarrayEach: label, state (done | fail | now | todo), detail, icon
labelstring'What Workshopr did'The list's accessible name
summaryarraynullA row under the list: label and value
id / class / attrsstring / string / arrayElement id, classes and attributes

Accessibility

ConcernBehavior
StructureAn ordered list named by label, so the run reads in order and a screen reader says how many steps there are.
State in wordsEach step starts with visually hidden words for its state ("Done:", "Needs another pass:", "In progress:", "Not started:"), and each state has its own glyph shape, so nothing rests on colour. The step in progress carries aria-current="step".
Glyphsaria-hidden; the words carry the meaning. The turning ring stops under reduced motion.
Not liveThis is a record, not a live region. For progress a screen reader should hear as it happens, use Agent Status.

Tokens

TokenUsed for
--brandThe step in progress
--color-warning / --color-warning-surface / --color-warning-surface-inkA step that needs another pass
--gray-100 / --gray-200 / --gray-300Done circles, the connecting line, still-to-come circles
--card-bg / --radius-lgThe summary row

CSS Classes

ClassPurpose
.ws-agent-stepsRoot
.ws-agent-steps__listThe ordered list
.ws-agent-steps__stepOne step, --done / --fail / --now / --todo; draws the line to the next
.ws-agent-steps__icon / __glyphThe state circle and its glyph
.ws-agent-steps__title / __detailA step's title and detail
.ws-agent-steps__summary / __summary-valueThe summary row

Files

FilePurpose
includes/components/helpers.phpws_agent_steps() helper
includes/components/agent-steps.phpTemplate
includes/components/components.cssStyles, in the agent components section