SDODS
Getting started

View results

Where a run writes its artifacts and how to read screenshots, API snapshots and reports.

What you'll learn

The layout of a run directory, how before/after screenshots and API snapshots are named, and which reports SDODS produces.

The run directory

Every run gets a UUID v7 runId and a directory:

.sdods/runs/<runId>/
  run.json                       # manifest: project, env, tags, browsers, git, command
  summary.json                   # totals and status
  messages.ndjson                # cucumber messages (canonical ingest format)
  html-report/                   # HTML report
  dashboard/                     # SDODS dashboard (index.html + metrics.json)
  demo-shop/<fingerprint>/r0/    # one directory per scenario attempt
    meta.json
    scenario-start.png  scenario-end.png  failure.png
    03-before.png  03-after.png  ...
    api/03-1-request.json  api/03-1-response.json
    heal.jsonl

The fingerprint is stable across runs and browsers, so you can compare the same scenario over time.

Screenshot narratives

The suite tag chooses the policy:

PolicyDefault forCaptures
on-failureeverything elseone screenshot on failure
scenario@smoke, @sanityscenario start and end
step@regressionbefore and after every UI step
visual@visualstep captures plus a pixel comparison against a baseline

API steps attach request.json and response.json instead of images.

The images below are the real output of the scenario "Add a product to the cart" from a @regression run on chromium (policy step); they are refreshed from the latest run on every docs build.

Before the login step: the SauceDemo login form
02-before.png — before `When I login with 'standard_user'`
After the login step: the inventory page
02-after.png — the same step, after
Before adding the product: inventory with an empty cart
03-before.png — before `When I add 'Sauce Labs Backpack' to the cart`
After adding the product: the cart badge shows 1
03-after.png — the cart badge now shows 1

Reports

bun run sdods report --last --open      # HTML report and the SDODS dashboard
bun run sdods trace <runId>              # trace viewer for the run's traces
ReportAlwaysPurpose
Cucumber messages (NDJSON)yescanonical ingest into the database
Runner HTMLyesstep-level debugging with traces
SDODS dashboardyestotals, pass rate, flaky list, heals, narrative links; offline, mailable
JUnitin CI or with --reporter junitCI annotations
Cucumber HTML, Allureopt-in in the project YAMLstakeholder-facing reports

The run viewer

The web UI pairs before and after images with a slider, an overlay, side-by-side panes or a server-side pixel diff, shows API request and response panels, heal call-outs and a link to the trace.

Step timeline in the web UI with the before/after slider, badges and the attempt switcher
The step timeline with the before/after slider.

Next steps

Using an AI coding agent? Install SDODS:

Install the SDODS plugin in Claude Code: skills, subagents, commands and the MCP server.

  1. /plugin marketplace add YarlisAISolutions/sdods-skills
  2. /plugin install sdods@sdods
Learn more about using SDODS with AI tools

On this page