# How a run works

> The six stages, what each one writes, and how a session ends.

Point Leakdown at a site and six stages run in order. Each one writes a file you can open.

## The six stages

Each stage reads what the one before it wrote, and you can stop after any of them.

-

**01**site
Reads your landing page: what you sell, to whom, the signup path, visible pricing, walls, and what a first-timer trips on.`SITE.md`
-

**02**map
Crawls two clicks deep plus your sitemap, with no AI. Tags every page and every booking or payment surface. The report later lists pages no prospect found.`MAP.md`
-

**03**personas
Builds up to 10 prospects that fit your product, spread across core buyers, adjacent roles and people outside the target.`personas/`
-

**04**visit
One real browser session per prospect. Each step: look at the screen, decide, act, think out loud.`session.jsonl · video.mp4 · filmstrip.html`
-

**05**report
The one-page report plus every table behind it.`AGGREGATE.md · DETAIL.md`
-

**06**fix
An expert panel reads each session and proposes the fix.`FIXES.md`

```
leakdown your-site.com --stop personas   # read the site and build prospects, then stop
```

## Inside a session

A prospect only sees one screen at a time, plus an outline of the headings below it. On a page 21 screens long that is about 40 elements instead of 776. Scrolling is free and does not use up patience.
Every session ends one of four ways:

| Ending | Meaning |
|---|---|

| **Completed** | The prospect reached the goal. |
| **Abandoned** | The prospect walked out, with a reason, or ran out of patience. |
| **Guardrail** | A safety rule stopped an action, such as paying or booking. |
| **Could not run** | Our side failed: the URL was unreachable, the model stopped answering, or setup broke. It is never counted as a drop-off. |
Each ending prints a block like this in the terminal, then the tally of prospects so far.

```
============================================================
  [4/10] ABANDONED
  Where: step 7 on https://your-site.com/signup/step-2
  Why: "The plan selector looks like a confirmation page. I think I am done."
  Wanted answered: "Which button takes me to the dashboard?"
  Session: runs/your-site.com/2026-09-17/10-14-02/wide/haiku/momus
  [##########--------------] 4/10 agents finished

```

## The ladder

`--ladder` is the full run. Cheap models visit every persona and act as votes. A filter keeps only what more than one session cites. Sonnet verifies those sessions, then opus re-walks the hardest persona and writes the report you read.

```
leakdown your-site.com --ladder --yes --headless
leakdown your-site.com --ladder --wide "haiku:5,opencode/:5"   # split the sweep
```

Note

A finding cited by a single session is marked unverified. It needs a second run before it counts.

## Reruns and caching

`SITE.md` is written once per site, and personas are skipped when a set already exists. Every run re-crawls the site once and asks whether to rebuild when the page list changed.

| Flag | Effect |
|---|---|

| `--plan` | Re-read the site and rebuild its personas. |
| `--no-map` | Skip the re-crawl. |
| `--force` | Regenerate outputs that are already up to date. |
A ladder run that stopped, for example on a usage limit, resumes the same day and reuses the sessions it already has.

---
Source: https://docs.leakdown.dev/how-it-works
