$ubio timeline --since 20182018 Autopilot + the Automation Cloud A1 · humans wire the scripts2019 A2: six months, one big idea A2 · Automated Automation2026 A3 platform: the moonshot A3 · Automated Automation (Again)3 architectures· one idea · still running
How we built A3.
We are UBIO. For nearly a decade we have been chasing one question: who builds the automation, and who fixes it when the website changes? Our first answer was Autopilot: people. Our second, A2 (Automated Automation), was software, five years too early. A3 stands, half-jokingly, for Automated Automation (Again). Our final try. The moonshot. This is how we got here.
HUMAN AUTHOR: people build & repair the automation MACHINE AUTHOR: software builds & repairs the automation
ERA 00 — BEFORE THE NUMBERS
The why
2013 – 2018 · the false starts
The web is the world's largest marketplace, and it has no standard interface. Everything we ever built starts from that observation, and from a consumer app that didn't work out.
THE FALSE STARTS
A universal shopping basket
UBIO began life as Universal Basket, a consumer app with a seductive promise: add anything, from any online store, to one basket, and we'll do the checkouts for you. The product went through several incarnations, and none of them found their market. But building it forced us to solve a genuinely hard problem: software that can operate any website the way a person does (search, fill forms, handle logins, pay) without the site's cooperation, because almost no shop had an API and fewer wanted to build one.
The consumer app didn't survive. The capability underneath it, automating the un-automatable, turned out to be the company.
CO UBIO · ubio.aiORIGIN Universal Basket → pivots → B2B
THE JOB
Do what a person would do at a website, reliably, at scale
Because our roots were in checkout, our version of "web automation" was never just scraping. It was completing transactions: search this airline, hold that hotel room, enter passenger details, pay, on websites that offer no API, for businesses whose revenue depends on the answer. Reading a page is the easy half. Acting on one, with real money, real bookings, and real customer data moving through the flow, demands a different class of machine.
A scraper that fails leaves a gap in a dataset. A booking automation that fails leaves a customer without their flight. That asymmetry drove every architectural decision we've made since: auditability (what exactly did the machine do?), determinism (will it do the same thing tomorrow?), and graceful interruption (what happens when the site asks a question only a human can answer?).
THE CONSTRAINT
No creativity at 3 a.m. on attempt #40,000
Production web automation has a brutal economic profile: a run must cost close to nothing, finish in seconds, and behave identically on the ten-thousandth execution. Whatever intelligence goes into understanding a website, it cannot live inside the run loop. That single constraint is the through-line of our whole story. All three of our architectures honour it. They differ only in who supplies the intelligence, and when.
The framing questionEvery architecture we've built is an answer to one question: who builds the automation, and who fixes it when the website changes?
ERA 01 — A1 · AUTOPILOT
Humans wire the scripts
2018 – today (still in production)
Our first real answer was Autopilot, a visual programming tool that let skilled people build and maintain automation scripts, backed by the Automation Cloud, a platform that ran those scripts flawlessly at scale. Nobody called it "A1" at the time; the retronym only arrived once there was an A2. It worked: some of the biggest names in travel ran real bookings through it for years. And it scaled exactly as far as the humans did.
2018
Skyscanner asks a question
After the consumer pivots, the thing that set our direction was a question from Skyscanner: could you help us automate flight bookings? Their users compared flights on Skyscanner, then finished the purchase on an airline's website, and plenty of airlines and travel agents had no booking API to integrate with. If software could complete that booking the way a person would, the whole handoff could disappear. We said yes. That yes became the product, and the company.
The insightThe gap wasn't data. It was transactions: thousands of travel businesses sell online but cannot be integrated with, because a website is their only interface.
FIRST Skyscanner · flight bookings
THE PLATFORM
The Automation Cloud
Around that yes we built a proper transaction platform. Customers submit a job ("book this flight for these passengers"); the platform queues it, assigns it to a worker running a real browser, and executes a versioned script that encodes the target website. Every attempt is recorded step-by-step (screenshots, page snapshots, structured logs) into an audit trail you can replay in review. Jobs can pause and ask questions mid-flow (a one-time passcode, a seat preference) and resume when the answer arrives; half-finished work resumes from checkpoints on a fresh worker; personal and payment data is encrypted field-by-field with explicit access controls, because this is real customer data buying real tickets.
Around the core sat the operational machinery any serious automation fleet needs: managed proxy pools and IP hygiene to keep sessions plausible, secure flows for 3-D Secure payment challenges, a regression-testing harness that re-ran scripts against live sites before each release, and incident tracking wired to alerting. None of it is glamorous. All of it is why banks' fraud systems, airline websites, and our customers' auditors could all live with a robot doing the buying.
FIG 1 · A1 / Autopilot — deterministic runtime, human authorship. The dashed line is the maintenance loop; note who is standing inside it.
What was possibleThousands of production bookings a day (real flights held, real payments made, real forms filed), each one auditable step-by-step, years before anyone said the word "agent".
Scripts weren't code; they were trees of Actions and Pipes
An Autopilot script is not a program a developer types into an editor. It's a structured tree: contexts that match recognisable states of a website, containing actions (click, input, iterate, expect), each configured by a pipeline of composable pipes that select page elements and transform values. A visual programming language for the web, engineered for one property above all: replayable determinism.
This is what a fragment of a real pipeline looks like under the hood: query the totals, parse a price, walk up to the row, pull the room name:
Every pipe is pure and inspectable; you can freeze a run at any step and look at the element set flowing through. Keep this JSON in mind; it comes back in Era 02 as the punchline.
CONCEPTS contexts · actions · pipelines · pipes
THE COCKPIT
Autopilot: the tool we named the era after
The people doing the encoding got a serious instrument: Autopilot, a desktop application with a live browser on one side and the script tree on the other. Point at an element, build a pipeline, watch the element set change at every pipe, play the script forward action by action, rewind, fix, replay. A whole discipline grew up around it inside UBIO: script engineers who could look at a booking engine and see, in their heads, the context tree it would become.
MOCKUP · Autopilot — the script tree on the left, the selected action's pipeline with its element set narrowing at every pipe, and the live browser under playback control. (Illustrative recreation.)
A transaction platform is only as good as its operations room. The Automation Cloud shipped with a dashboard where our team and our customers watched every job in flight: live states streaming in (processing, awaiting input, awaiting 3-D Secure, success, fail) with per-job drill-down into each execution's screenshots, page snapshots and step logs. Failure patterns rolled up into incidents: when a website's failure rate crossed a threshold, an incident opened, on-call got paged, and a script engineer went to work. The dashboard was where the maintenance treadmill was visible: a wall of green that could turn amber at any moment, one website redesign at a time.
Period · last 24h ▾Category · live ▾State · any ▾⚠ incidents only
⚠Incident #4231 open — flight-booking on one airline site: fail rate 14% over 30 min (threshold 10%). On-call paged · script engineer assigned.
Job
Client
Service
State
Progress
Execs
Started
Duration
j-8f21c4
skyscanner
flight-booking
PROCESSING
1
14:02:11
1m 42s
j-8f21b9
kiwi
flight-booking
AWAITING INPUTotp
1
14:01:47
2m 06s
j-8f21a2
trivago
hotel-booking
SUCCESS
1
13:58:03
3m 51s
j-8f2198
google
hotel-booking
AWAITING 3DS
2
13:57:26
4m 12s
j-8f2185
kiwi
flight-booking
FAILselector-timeout
1
13:55:12
58s
j-8f2170
skyscanner
flight-booking
SUCCESS
1
13:54:40
2m 58s
MOCKUP · the Automation Cloud dashboard, jobs view — live job states, human-in-the-loop pauses, and the incident machinery that paged a human whenever a website changed. (Illustrative recreation.)
MONITORING live states · drill-down · replayALERTING incidents · thresholds · on-call
THE CUSTOMERS
Skyscanner, Google, Kiwi.com, trivago
The model found its market in travel, where the long tail of "bookable but not integrable" is enormous. After Skyscanner came Google, first automating hotel bookings, and later hotel data, through our Smart Feed product: continuously harvested rates and availability, delivered as a structured feed. Kiwi.com made us a major part of their booking machinery: when their virtual-interlining engine sells a trip stitched together from carriers that don't cooperate with each other, automation completes the individual bookings. And for trivago we power Book & Go: hotel bookings completed directly with online travel agencies on the traveller's behalf, many of which have no booking API of their own, only a website.
The patternEvery marquee logo had the same shape: a platform with millions of users on one side, and on the other, thousands of travel businesses whose only interface is a website. We were the adapter.
CUSTOMERS Skyscanner · Google · Kiwi.com · trivagoPRODUCTS bookings · Smart Feed · Book & Go
THE COST
The maintenance treadmill
Then the bill. Every script encoded one website, and websites change without notice. A renamed element, a redesigned results grid, a new consent banner: any of them could stop a revenue-bearing flow at 2 a.m. Our incident system existed because breakage was not an exception. It was the weather.
Each new website cost us skilled human days to encode. Each redesign cost human hours to re-encode. The runtime scaled beautifully; authorship scaled linearly with headcount, and headcount that good doesn't scale at all.
The lesson Autopilot taught usThe runtime model was right: versioned scripts, job queues, audit trails. The bottleneck was never running automations. It was building and repairing them.
Interlude · 2019
So the question became unavoidable: the most expensive thing in our company was people translating websites into scripts. Websites are documents. Scripts are data. Could software do the translation?
ERA 02 — A2 · AUTOMATED AUTOMATION
Right idea, wrong decade
Oct 2019 – Apr 2020 · six months, one repo
The name said it plainly: Automated Automation: automate the act of automating. What if no human built the script at all? Point software at a page, let it work out what's there, and have it emit the automation itself. A2 was short-lived and never shipped, and it drew the blueprint we later built A3 on.
THE INSPIRATION
Wrapidity: proof that machines could learn to extract
We weren't imagining things: it had been done, at least for reading. Wrapidity, an Oxford University spin-out, had commercialised five years of ERC-funded research (the DIADEM project) into what computer science calls automated wrapper generation: software that replaces hand-coded scrapers outright. Instead of brittle extraction code keyed to a page's markup, it used "page geography" and visual cues, reading a rendered page the way a human eye does: matching input boxes to nearby labels, navigating complex forms, and parsing results into structured data on its own. Meltwater acquired it in 2017.
Wrapidity proved a machine could learn to read a website autonomously. Our question was one step harder: could a machine learn to transact, and could it emit an artifact our platform could replay deterministically at scale?
PRIOR ART Wrapidity · Oxford DIADEMFIELD automated wrapper generationEXIT acquired by Meltwater · 2017
OCT 2019
"Init": teach the page to explain itself
Our first move: stop treating a page as markup and start treating it as semantics. A2 injected an analyser into the live page that walked the document and rebuilt it as a semantic tree, classifying each element by meaning, discarding what it couldn't classify, and collapsing the wrapper elements that make real-world pages ten layers deep.
The spec we wrote reads like a compressed research paper. Four stages, three of them still recognisable in what we run today:
# SPEC.md — "Grouping algorithm for A2" (verbatim structure)
1. Preparation # page → semantic tree, classify elements,# discard unclassified, remove wrapper nodes
2. Pivot points # semantic query: "get all prices"
3. Attachment # ascend to common parent, query within scope,# prefer the closest common parent
4. Pruning # drop unrelated elements by proximity
APPROACH live-page analysis · semantic tree
THE ALGORITHM
Pivot points and proximity: structure from geometry
A2's core insight, the same one Wrapidity ran on, was that a results page has a shape. Find the repeated anchor (every price on the page) and call each one a pivot point. Then, for each pivot, climb the tree towards the root, at every level asking a semantic query inside that subtree: is there a room name here? A rate name? A cancellation policy? The closest common parent that answers wins; anything that shows up in implausibly large groups gets discarded. No selectors written by anyone. The page's own geometry does the grouping.
FIG 2 · A2 — generate once, replay forever. Every box was machine-made except the one that mattered.THE PUNCHLINE
A2's output was an Autopilot script
Here is the detail that makes A2 the true ancestor of A3 rather than a curiosity: what it emitted was not a dataset but a script in our engine's own format. Machine-discovered data points became query-and-climb pipelines with measured distances; the result was a script the existing Automation Cloud could replay deterministically, at full speed, with no analyser in the loop.
From A2's script generator, machine-written and human-shaped:
We had fully separated building from running: an expensive, clever pass that writes the artifact; a cheap, dumb loop that runs it. Hold that thought.
The idea that survivedLet the machine build the script; keep the replay deterministic. A3 is this exact sentence, with a different author.
APR 2020
Why it didn't work
Because the "understanding" was a stack of classifiers we wrote by hand. The price detector was solid. Everything else was text-matching rules, tuned per vertical, by one of us:
One supported domain (hotel room listings), and even that needed a blocklist to suppress false positives. Every new vertical meant new classifiers; every new language, new rules. We hadn't removed the human from the loop. We had promoted ourselves one level of abstraction up, where the work was harder to write and broke just as often. The repo's last commit landed on 30 April 2020. Archived.
A2 needed a component that could look at any text on any page and say what it was: a general-purpose reader. In 2019, that component did not exist at any price.
SCOPE one domain: hotel roomsEOL April 2020 · archived
Interlude II · meanwhile, we built the business · 2020–2023
So what did we do after archiving A2? We stopped trying to invent a component that did not yet exist and concentrated on the company in front of us. We scaled the booking business, deepened our relationships with customers including Google, and built other products around the same hard-won capability, most notably Smart Feed, which continuously turned live hotel websites into structured rates and availability.
Those years were not a pause in the story. Running bookings and data feeds across thousands of changing websites forced us to harden the fleet, monitoring, scheduling, retries and operational controls that A3 would later inherit. It also made the remaining problem impossible to ignore: the software could run at enormous scale, but people still had to author and repair what it ran.
Meanwhile A2 sat in an archived repo: a machine with a hole in the middle, shaped exactly like a language model. Its scaffolding (separate building from running, understand the page semantically, emit a deterministic artifact) was waiting for its missing part to be invented.
ERA 03 — BACK TO PRODUCT · THE MISSING COMPONENT SHIPS
The spark
2023 – 2025
Then we went back to the product problem. GPT-4-class and Gemini-class models arrived, and the component A2 was missing suddenly existed, rentable by the token. A model could look at a page and say what it was. Better: it could write code. For us the question was never whether to use them. It was where to put them.
2023–24
The general-purpose reader exists now
What our pattern rules had been reaching toward ("this string is a room name; that one is a cancellation policy; those two prices belong together") became a commodity. A frontier language model reads a page, a screenshot, an intercepted API response, and classifies all of it, in any language, for any vertical, with no per-domain engineering. And unlike A2's analyser, it doesn't just recognise structure. It writes code. The author A2 was waiting for had arrived.
ERA GPT-4 · Gemini · ClaudeUNLOCK read any page · write the script
THE DECISION
Keep the model out of the run loop
The obvious 2024 move was to put a model inside the loop: screenshot, think, click, repeat. Astonishing demos; hopeless economics for production work. Per-step inference is slow, priced per token, and non-deterministic exactly where a booking must not be. Years of running Autopilot scripts in production had made our requirements non-negotiable: runs must be cheap, fast, auditable, repeatable.
So A3's founding decision is a refusal: the model never drives production traffic. The model is the author. It learns a site once (expensively, thoughtfully, with a real browser in hand) and writes an artifact. The artifact runs a million times, for nothing, deterministically. Intelligence at the edges of the lifecycle; clockwork in the middle.
The A3 equationA1's runtime discipline + A2's authorship architecture + an author that finally works = AI at learn-time and fix-time, zero AI at run-time.
ERA 04 — A3 · AUTOMATED AUTOMATION (AGAIN)
The moonshot
2024 → today
We named it honestly: A3 stands, half-jokingly, for Automated Automation (Again). Our final try. It started life as the stage-based toolchain at athree.dev, and grew into a platform: AI agents that learn websites in a live browser and write real code; an immutable publish pipeline; a fleet that replays the result with no model in the loop; and a sentinel that notices breakage and dispatches a repair agent before we do.
THE UNIT
Stages: one recognisable state, one module
Autopilot's contexts return, reborn as code. A stage owns exactly one recognisable state of a website: a landing page, a results grid, a confirmation modal. Its match() answers "is this me?" with no side effects; its run() acts. Stages live in folders per site; a workflow binds the objective to typed input and output schemas. The contract is the same one A1 proved: small, matchable, replayable units, except now they're ordinary TypeScript driving a standard browser-automation framework, and their author is an agent.
export default defineStage({
title: 'Extract Rooms and Rates',
success: true,
match: async (ctx) => {
if (!new URL(ctx.page.url()).pathname.includes('/hotel/')) return false;
return await ctx.page.locator('[data-rates-grid]').first().isVisible();
},
run: async (ctx) => {
// prefer the intercepted availability JSON; fall back to the pageconst hit = ctx.networkResources.find(r =>
r.request.url.includes('getProductAvailability'));
ctx.outputs.results = hit ? normalizeRooms(hit) : await scrapeGrid(ctx);
},
});
A project declares its workflows and schemas in config; each site folder holds that site's stage files, next to playbooks/: notes the agent writes to itself about how a site behaves. Publishing a project creates an immutable version; production jobs always run a published version, never a moving draft.
CONCEPTS workflow · site · stage · playbookFORM TypeScript · typed schemas · real browser
THE IDE
Learning sessions: teach a site, don't program it
Adding a site is no longer an encoding project; it's a conversation. An operator opens an interactive session, a full development environment in the browser, purpose-built for teaching. On the left, the project's files and the workflow's stages with their live match status. In the middle, a thread with the Learning Agent: you state the objective, and the agent navigates the real site, inspects the page and its network traffic, writes stage files, runs them, and iterates until the workflow's outputs validate against the schema, narrating each step as tool calls you can expand and audit. On the right, the live browser it's working in, plus the structured inputs and outputs. You can interrupt, correct, take over the browser, or replay any run step-by-step. The human's job has changed from author to reviewer: watch the diff, spot-check the run, publish.
MOCKUP · an A3 learning session — the agent writes and tests stage files against the live site while the operator supervises. (Illustrative recreation.)
AGENTS Learning · Dataset · RepairHUMAN ROLE author → reviewer
EXECUTION
Deterministic replay, with one narrow escape hatch
Production jobs run published versions on the worker fleet with no model in the loop, exactly as A1 taught us. But scraped text is messy: "Free cancellation until 48h before arrival" is not a schema field. So the runtime offers stages a single, disciplined opening: ctx.classify(), an AI-backed transform with an aggressive twist. The first time it sees a text shape, a model writes the parsing function; the numbers, dates and category words in the text are turned into parameters and the resulting function is cached. Every later occurrence of that shape is parsed by cached code: no model calls, no nondeterminism introduced.
What became possibleA2's dream, upgraded: the model doesn't just build the automation once; even its runtime "reads" compile down to cached, deterministic functions.
API ctx.classify({ text, schema })TRICK parse once → cache the function
JOBS
The jobs floor: every run, and what broke it
The org dashboard's Jobs view is the A3 counterpart of the old operations room, with one structural upgrade. Every job shows its target (site, workflow, and the exact published version it ran), its owner (a person, an API caller, or the dataset that spawned it), and its full execution log. But when a job fails, the platform doesn't just say failed; it says whose fault: a script failure (the code no longer matches the website) or an environment failure (network trouble, a bot wall, an unreachable site). Environment failures retry quietly. Script failures accumulate into per-site health, and that distinction is what turns a monitoring page into the trigger for self-repair.
MOCKUP · A3 jobs view — every failure is classified: script failures feed the self-healing sentinel, environment failures just retry. (Illustrative recreation.)
This is the feature the previous eight years were building towards. Script failures feed a per-(workflow, site)sentinel. When thresholds trip (an absolute count, or a failure rate over a recent window), the platform first probes the site (no point blaming the code for an outage), then starts a Repair Agent: locked to the broken workflow's files, told to make the smallest possible change, capped in steps and in dollars.
Then the part that matters: we don't trust the agent's claims. The platform independently re-runs the workflow against the failing inputs plus known-good samples, and only a verified fix is published, through the normal publish pipeline, stamped as an automated fix. Publishing resets the health counters by definition. The 2 a.m. incident from Era 01 now usually resolves itself before anyone's pager fires.
sentinel: {
enabled: true,
failureThreshold: 3, // absolute script failures per (workflow, site)
failureRatePercent: 10, // … or relative, over a recency window
autoPublish: true, // false → verified fix waits for human review
maxAttemptsPerDay: 2,
cooldownHours: 6,
maxCostPerFix: 5, // hard $ cap on the repair agent's model spend
verifyEnvironment: true, // probe the site before blaming the code
}
FIG 3 · The loop that closes itself — in A1, the bottom row of this diagram was one of us. That is the entire difference, and it is everything.
What became possibleBreakage stopped being an interrupt for our team and became a background process of the platform: detected by health counters, fixed by an agent, proven by replay, shipped by the publish pipeline.
Most real-world scraping isn't one page; it's a whole catalog, kept fresh forever. This is Smart Feed's lineage, rebuilt as a platform feature. Declare a dataset (which listing workflow to sweep, which sites, which detail workflow to run per item) and the platform owns everything we used to hand-orchestrate: fanning out detail jobs, de-duplicating items per site, detecting changes, keeping an append-only history of every revision, marking delisted items, budgeting retries, stopping early when pages stop yielding anything new, and firing on a schedule. The dashboard's Datasets view shows each catalog's size, freshness, and run history, with every scraped item queryable alongside its full change history.
MOCKUP · A3 datasets view — declared catalogs with fan-out, change detection, revision history and scheduling owned by the platform. (Illustrative recreation.)
MODEL listing → fan-out → detail → revisionsOPS dedupe · delisting · early stop · schedules
THE PLANT
Two planes, because agents write the code they run
An agent that writes code means a platform that runs machine-written programs as a matter of routine, so our infrastructure assumes hostility. A trusted control plane holds state, scheduling and secrets. An untrusted workload plane holds the workers: each one claims a job with a narrowly-scoped credential and spawns a runtime that can see exactly one session, one project, and nothing else: no databases, no platform secrets. Browsers come from a separate pool of managed, disposable browser hosts. The worker fleet autoscales with demand, keeping a warm pool so paid workloads never wait for capacity.
FIG 4 · A3 topology — the runtime pods execute machine-written code, so we treat them as radioactive: narrow credentials, no secrets, disposable browsers.
BOUNDARY trusted control · untrusted workloadSCALE autoscaled workers · browser pool
MCP
The platform publishes itself for agents
The Machine That Reads the Web ends with an inversion: sites exposing themselves to agents instead of fighting them. We built A3 on that side of history. Every surface (run jobs, edit project files, query datasets, org operations) is exposed over MCP, the open protocol that lets AI assistants call tools, and the Copilot chat on our dashboard uses the exact same tools as any external agent connecting over the wire. Claude, Cursor, a customer's own bot: identical capabilities, the user's own permissions, confirmation gates where actions have consequences.
The inversion, livedA1 fought its way into websites built for humans. A3 does that too, and then turns around and publishes itself as a structured surface for the next generation of readers.
A3 is A1's runtime (versioned artifacts, job queues, audit trails) running A2's architecture (machine authors, deterministic replay) powered by the component neither of them had: a reader that actually reads.
ERA 05 — WHAT EIGHT YEARS TAUGHT US
The lessons
2018 → 2026 → ∞
Six things we'd tell anyone building automation platforms, each one paid for with at least one rewrite of our own.
Lesson 01
Determinism is non-negotiable
It survived all three of our architectures untouched. Whatever is intelligent about your system, production runs must be cheap, fast, repeatable, and auditable. The model earns its keep at the edges (building, repairing), never in the hot loop.
Lesson 02
The bottleneck is authorship
Autopilot ran flawlessly for years and still couldn't scale, because every website cost us human days. Ask where the human hours actually go. In web automation the answer was never "running"; it was building and fixing.
Lesson 03
Being early ≈ being wrong, but keep the blueprint
A2 failed in six months and was still the most important thing we ever wrote: it fixed the shape of the solution years before the parts existed. When the missing component shipped, we didn't have to design A3; we had to assemble it.
Lesson 04
Never trust the agent's claims
Our Repair Agent doesn't decide it fixed the automation; replay decides. Verification by independent re-run, health tracked per website, hard cost caps on every repair: agents get autonomy exactly as far as the evidence reaches.
Lesson 05
Treat machine-written code as radioactive
The moment software writes software, your fleet is running machine-generated programs as a matter of routine. Separate the trusted and untrusted planes, scope every credential to one job, keep secrets out of reach, before the first incident, not after.
Lesson 06
Build for the inversion
The web is splitting into surfaces built for agents and walls built against them. A platform that consumes the messy side should publish the clean side: every A3 capability is exposed to AI agents as a structured tool, because the next users of our platform won't all be people.
The through-line
From a script engineer hand-wiring pipelines in a desktop cockpit, to pattern rules guessing which string is a room name, to an agent that reads the page and writes the code: it was always one idea: the automation stays deterministic; the only question was who builds it. Autopilot said: people. A2 said: software, and was five years early. A3 (Automated Automation, again) says: a model that reads, a platform that verifies, and a loop that closes itself. The web still changes without notice. It's just no longer our pager that rings.
Sources & artifacts
Written from the primary sources: our own codebases and their commit history (August 2026). Product screens are illustrative recreations, not live data.