---
title: Run Diavi for the first time
question: How do I launch Diavi on an issue?
description: From issue to merge request: what a run does, what to prepare, and what you get at the end.
section: start
order: 2
---
Open **Issues**, pick one, click *Launch agent*. Diavi clones your repository, reads the issue, writes the code, checks it, opens a merge request and comments on it. Expect a few minutes; you watch every step live from **Runs**.

## What makes a good issue?

The pipeline reads an issue the way a developer joining the project would: it only has what is written. An issue saying *"fix the invoice bug"* leads it to ask a question rather than write code.

What matters, in order:

1. **What should happen**, phrased as an observable result — "the Export button must produce a semicolon-separated CSV", not "improve the export".
2. **Where**, if you know — a filename, a module, a screen.
3. **What must not move**, if there is a known trap.

You do not need to write a specification. Two precise sentences beat ten vague lines.

## What can I set before launching?

The launch dialog offers the target branch and three options:

- **E2E tests** — Diavi writes and runs end-to-end tests against your staging environment. Leave off if you have not configured a staging URL.
- **Review** — an agent reads the produced code and comments on the merge request.
- **Dry run** — the pipeline runs in full but writes nothing to your repository. Useful to see what Diavi would do, with no consequence.

## What do I get at the end?

A branch, a merge request opened against your target branch, and review comments. Nothing is merged automatically: the decision to merge stays yours, always.

## How many runs can I launch?

Your plan sets a number of runs per subscription period, shown at the top of the home page. See [Allowances and plans](/help/en/quotas-et-paliers/).
