11 years of lessons, 5 years of ladder
SDODS did not begin in 2027. It begins in 2015, with a suite that only ran on one machine. Every year since left something behind, and the five ahead are what those lessons add up to: one ladder, where each year buys a level of confidence the year before could not.
The road here · 2015–2025
Nothing was released in these years, so this is lineage rather than a changelog. Each one records two things you can check for yourself: what the tooling actually did that year, dated against its public releases, and the design decision it left behind that you can point at in the product today.
The grid years
2015–2018Automation ran where it was written, and nowhere else.
2015
The startA suite that only ran on one machine
Selenium WebDriver and a Jenkins box were the whole stack. Scenarios were pinned to CSS selectors, run on a grid somebody maintained by hand, and a failure arrived as a red line and a stack trace.
SDODS carries. One project per application, with its own environments and its own config — because a suite that borrows another team’s settings is a suite that breaks on Mondays.
- Selenium WebDriver
- Cucumber-JVM
- Jenkins
- Page objects
2016
A standardThe browser gets a standard, the report does not
Selenium 3.0 shipped in October and pushed everyone towards the W3C WebDriver protocol. Browsers finally agreed on how to be driven. Nothing agreed on how to explain a failure.
SDODS carries. A layered step library: one phrasing style across UI, API and hybrid flows, so a change of driver never rewrites the scenarios on top of it.
- Selenium 3.0
- W3C WebDriver draft
- Hosted browser grids
- Gherkin
2017
HeadlessThe browser stops needing a screen
Headless Chrome landed in June, Puppeteer in August, and Cypress arrived arguing the runner belongs inside the browser. PhantomJS was retired by its own maintainer.
SDODS carries. Screenshots as a first-class artefact rather than a debugging afterthought: if nobody is watching the browser, the run has to keep the pictures.
- Headless Chrome 59
- Puppeteer
- Cypress
- Containers in CI
2018
Below the UIThe cheapest question stops being asked through a browser
W3C WebDriver became a Recommendation in June. Contract testing and API-first suites grew, because driving a browser to check a total was the slowest possible way to ask a cheap question.
SDODS carries. API seeding and hybrid scenarios — arrange the state over HTTP, assert it in the UI, and never click through a five-step wizard to build a fixture.
- W3C WebDriver Rec
- Contract testing
- OpenAPI 3
- API-first suites
The pipeline years
2019–2022CI became the only machine that counted.
2019
PipelinesCI becomes the only machine that counts
GitHub Actions went generally available in November and the pipeline moved into the repository. From here on “works on my laptop” stopped being a defence and started being the bug report.
SDODS carries. Six-layer configuration precedence that can name the exact file every value came from — the answer to staging and CI quietly disagreeing.
- GitHub Actions
- Pipelines as code
- Ephemeral runners
- Matrix builds
2020
One APIThree browsers, one API, no sleeps
Playwright’s first release in January brought auto-waiting and a single API across Chromium, Firefox and WebKit. Teams went remote the same season, and shared run history became the only place anyone met.
SDODS carries. Playwright underneath, not one sleep in the step library, and a cross-browser matrix that is a flag rather than a fork of the suite.
- Playwright
- Auto-waiting
- WebKit and Firefox parity
- Remote-first teams
2021
EvidenceA failure starts explaining itself
The Playwright trace viewer arrived in June and a failed run began shipping with its evidence attached, instead of a log to reconstruct the failure from. Visual baselines went mainstream beside it.
SDODS carries. Before-and-after screenshots on every UI step with a pixel diff, and a heal record that says which strategy found the element. Level 1 of the ladder is this idea, finished.
- Trace viewer
- Visual baselines
- Pixel diffing
- Step-level capture
2022
FlakeFlakiness gets a name and a number
Suites got large enough that retries stopped hiding the problem, and quarantine, flake rate and per-test ownership entered the vocabulary. In November ChatGPT arrived and every roadmap in the industry was rewritten.
SDODS carries. Run history in a real database — SQLite or Postgres on one schema — so a flaky test is measured across runs rather than remembered by whoever was on call.
- Quarantine and budgets
- Flake rate metrics
- Test impact analysis
- ChatGPT
The agent years
2023–2025Writing tests got cheap. Trusting them did not.
2023
GenerationModels can write tests. Nobody trusts them
GPT-4 in March made test generation almost free, and the bottleneck moved the same week: reviewing a hundred generated scenarios you did not ask for is slower than writing the ten you did.
SDODS carries. Proposals. An agent writes, a person accepts, and nothing edits your working tree unasked — the rule every SDODS agent is held to.
- GPT-4
- Generated scenarios
- Self-healing locators
- Assistants in the editor
2024
ToolsAssistants learn to read your project
The Model Context Protocol was published in November, and an assistant could be handed real tools against a real project instead of guessing from a file somebody pasted into a chat window.
SDODS carries. The SDODS MCP server: projects, features, steps, runs and results exposed as tools, so an assistant reads your suite rather than a generic one.
- Model Context Protocol
- Tool-using agents
- Local models
- Structured output
2025
MaintenanceThe expensive half turns out to be upkeep
Agentic coding became ordinary. Writing tests got cheap enough that the costly part was finally unmistakable: keeping a large suite alive while the application underneath it moves.
SDODS carries. Five agent roles — planner, generator, healer, upgrader, reviewer — and a healer that records why a locator healed, so the repair is reviewable instead of magic.
- Agentic coding
- Locator drift repair
- Review-first workflows
- Agents over MCP
The ladder
Five levels, in order, because each one rests on the one below. Find where your team stands today and the next rung is the one worth arguing for.
1
Evidence
Failures explain themselves
Available today
2
Shared truth
One history the team trusts
3
Self-maintaining
The suite repairs itself
4
Orchestrated
Checks and releases meet
5
Governed
Sign-off is auditable
2026
Level 1 · EvidenceShippedYou can defend a release without being the person who remembers.
Every scenario is tied to a business capability, every run reproduces from one command, and every failure carries the screenshots and requests that caused it.
What ships
- BDD across UI, API and hybrid flows with one merged fixture set
- Before and after screenshots for every UI step, with a pixel diff
- Self-healing locators that record why they healed
- Run history in SQLite or Postgres, switchable with one flag
- Recorder, HAR replay, MCP server, agents, web UI, GitHub and Jira
Milestone. Fourteen phases delivered, installable in one line.
2027
Level 2 · Shared truthBeing builtEveryone reads the same history, so no one relitigates a failure.
Run history moves off laptops and into one place your whole team signs into, with the flaky tests named and budgeted rather than argued about.
What ships
- Hosted run history with single sign-on and existing roles
- Cross-platform visual baselines, so CI and laptops agree
- Flake budgets, automatic quarantine and a weekly digest
- Per-scenario network fixtures for offline suites
- Scheduled runs with change-aware selection
Milestone. A stable 1.0 with a compatibility promise for the CLI and the run format.


2028
Level 3 · Self-maintainingDirectionThe suite repairs itself and tells you what it changed.
Maintenance is the reason automation dies. Agents take the repetitive half and leave a reviewable pull request instead of a surprise.
What ships
- Agents open pull requests for locator drift, with the heal history as evidence
- Coverage gaps found by comparing real traffic against covered journeys
- Test data synthesised per environment, with sensitive fields never leaving it
- Failures clustered by cause, so one incident is one item and not forty
- Suggested scenarios from a change set, ranked by the risk they cover
Milestone. Most locator drift is fixed and merged without anyone writing a selector.
2029
Level 4 · OrchestratedDirectionThe checks, the approvals and the release live in one place.
Confidence is not only tests. It is who approved, what evidence they saw, and what the system did next, held together rather than spread across four tools.
What ships
- Release gates that read the evidence and hold or pass a deployment
- Approvals and sign-off recorded against the run that justified them
- Event-driven workflows across environments, data and deployments
- Environment provisioning hooks, so a suite can create what it needs
- Connectors for the trackers, chat tools and pipelines already in use
Milestone. The release gate becomes the record teams point at when asked why they shipped.
2030
Level 5 · GovernedDirectionThe people who sign off get an audit trail they trust.
Regulated teams need to show a chain from requirement to release. That chain is worthless unless it is complete, tamper-evident and exportable.
What ships
- Policy as code: rules for tagging, coverage and approval, enforced at run time
- Federation across organisations, with retention and residency controls
- Evidence export shaped for auditors rather than for engineers
- Private and on-premises agent runtimes for regulated environments
- A signed trail from requirement through run to release
Milestone. An auditor can follow one requirement to one release without asking a human.
Value at a glance
The same five years, if you would rather read them as a table than scroll them.
| Year | Level | What you get | Proof it landed |
|---|---|---|---|
| 2026 | 1 · Evidence | You can defend a release without being the person who remembers. | Fourteen phases delivered, installable in one line. |
| 2027 | 2 · Shared truth | Everyone reads the same history, so no one relitigates a failure. | A stable 1.0 with a compatibility promise for the CLI and the run format. |
| 2028 | 3 · Self-maintaining | The suite repairs itself and tells you what it changed. | Most locator drift is fixed and merged without anyone writing a selector. |
| 2029 | 4 · Orchestrated | The checks, the approvals and the release live in one place. | The release gate becomes the record teams point at when asked why they shipped. |
| 2030 | 5 · Governed | The people who sign off get an audit trail they trust. | An auditor can follow one requirement to one release without asking a human. |
Everything up to 2025 is history, and belongs to the industry rather than to us. 2026 is shipped and verifiable today. 2027 is being built. The years after that are the direction we are steering, not a dated commitment, and feature requests move them.
How level 1 was built
Fourteen phases, each ending runnable and verified. The same table appears in the repository and the documentation.
| Phase | Scope | Status |
|---|---|---|
| 0 | Monorepo, config precedence, registry, CLI skeleton | done |
| 1 | API layer end to end (no browser) | done |
| 2 | UI layer, page objects, self-healing, dashboard | done |
| 3 | Data providers, user pool, auth capture, hybrid | done |
| 4 | Screenshot narratives, NDJSON | done |
| 5 | Database, ingest, switch | done |
| 6 | Recorder and HAR | done |
| 7 | MCP server | done |
| 8 | Agents and insights | done |
| 9 | Server, scheduler | done |
| 10 | Web UI | done |
| 11 | GitHub, Jira, CI workflows | done |
| 12 | Onboarding analysis, processes, cross-browser matrix | done |
| 13 | Documentation site, packaging, sdods init | done |
Verified on the demo project
- Unit and CLI end-to-end tests1391 passed, 1 skipped
- Web UI component tests15 passed
- Demo API layer, no browser10 passed, 0 failed
- Types, lint and formattingclean
- Linux visual, accessibility and performance suites@regression green on chromium, firefox and webkit
- Documentation build4434 internal links across 100 pages, 0 broken
Next up
The nearest items, in the order they are likely to land. This list is shaped by what people ask for.
- Every claim on this site is true
- A first real release
- CI and your laptop agree about a screenshot
- A suite that runs with the network unplugged
- Your idea — open a feature request