> ## Documentation Index
> Fetch the complete documentation index at: https://docs.truecourse.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Flows

> The Flows list, the five statuses, and a flow's page: its milestones, its test, and why it has none.

A **flow** is a journey through the product, built from the claims your documentation makes. **Flows** lists every flow of every repository in the workspace.

## The list

| Column         | What it says                                                                     |
| -------------- | -------------------------------------------------------------------------------- |
| **Flow**       | The flow's title. A test somebody wrote by hand carries a **hand-written** chip. |
| **Status**     | One of the five words below.                                                     |
| **Drivers**    | What the flow is driven through: CLI, API or Web.                                |
| **Repository** | The repository the flow belongs to.                                              |
| **Sections**   | How many sections of the documentation the flow covers.                          |

Search matches the title. Filter by **Status**, **Driver** and **Repository**. The filters ride the page address, so [Home](/home) and the repository console can link straight to a narrowed list.

## The five statuses

| Status           | Meaning                                                                                                                                                                 |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Succeeded**    | The flow's tests passed, in the last run or when they were written.                                                                                                     |
| **Failed**       | A test ran and the product disagreed with the documentation.                                                                                                            |
| **Blocked**      | Something that can be provided is missing: an account for an external service, seed data, or a mapped code path. A flow whose test could not be written is Blocked too. |
| **Not testable** | There is nothing to test, or no code path does what the documentation promises. It is nobody's to-do.                                                                   |
| **Never run**    | A test exists but has not executed yet.                                                                                                                                 |

## A flow's page

Opening a row opens the flow.

The header leads with the status, in the same word the list used. Beside it sit the markers a flow can wear: **not in specs** for a flow the documents no longer derive, **dismissed**, a tool-defect marker, **epic** for a flow that chains other flows, and **manual** for a hand-written test. Then the flow's id, and a switch between the reading and the stored artifact, which is the test's YAML when the flow has a test and the flow's own entry when it has none. Under that come the flow's title and its goal.

### Milestones

The flow's chain, always shown when the flow has one. Each milestone reads `M1`, `M2` and so on, carries the claim sentence, and links to the section that states it.

A milestone lists its **cases**, the situations that would prove it, only when it has more than one. With exactly one case, the case would repeat the claim almost word for word. A long list shows the first four and collapses the rest behind a count.

### The test

Below the chain sits the test itself: its verdict, the filmstrip of screenshots for a browser run, the list of steps with an inspector beside it, and drawers for the transcript, the interfaces the test used and the rulings.

Each step row carries an `M2` chip beside its driver chip, naming the milestone that step proves, which is what ties a step back to the chain above.

### When there is no test

Where the test would be, a flow with none shows one block: the status, and then why, in one sentence. Examples are that a required interface is not mapped, that a driver does not exist yet, or that authoring could not write a test and will try again on the next generation.

When what is missing is something you can provide, the block instead names the service or the data and links straight to that dependency on the repository's **Dependencies** tab. Blocks that would say the same reason twice are folded into one, because the milestones above already say which obligations are held up.

### Stop testing a flow

**Don't test this flow** sits in the rulings drawer, after the evidence it is made on. The next [Flow generation](/guard/generate) drops the flow and deletes its tests. **Un-dismiss** puts it back.

## Next steps

<CardGroup cols={2}>
  <Card title="Flow generation" icon="wand-magic-sparkles" href="/guard/generate">
    Where flows, milestones and cases come from.
  </Card>

  <Card title="Flow run" icon="play" href="/guard/run">
    How the tests execute, and what evidence they leave.
  </Card>
</CardGroup>
