# SynerTest Markdown format

Paste this page into Claude, Cursor, or ChatGPT. Ask it to write a `.md` file for the app you just built. Then import that file in SynerTest (Tests → Import).

Canonical URL: `https://www.synertest.com/docs/synertest-file-format.md`

## Create a test

A file is UTF-8 Markdown. The first `#` heading is the test name. Paragraphs under it are the description. `-` list items are steps. Indent two spaces to nest. Lines under a step (indented) are notes for whoever runs it.

```markdown
# Login smoke

Fresh account through Dashboard.

- Sign in with a new email
  Expect the Dashboard, not an empty workspace picker.
- Create a workspace
- Open Tests
  - Choose New test
  - Name the test
```

`##` headings are also accepted as top-level steps. SynerTest always exports lists.

Omit `id` to create a **new** test.

## Update the same test

Export writes a stable `id` in YAML-ish frontmatter. That is **not** the database id — it is a UUID SynerTest minted so an AI can edit the file and you can import it again without duplicating.

```markdown
---
id: 8f3a2c1b-4d5e-6789-abcd-ef0123456789
---

# Login smoke

…
```

Rules (one decision — the importer does not invent a second one):

1. Same workspace + same `id` → **replace** that test (title, description, steps).
2. Unknown or missing `id` → **create** a new test.
3. Import while a test is open → replace **that** test even if the file has no `id`.
4. A copy in another workspace does not match — it creates a new test there.
5. Duplicate in the app mints a new `id`. Results reset on replace. SynerSync links on deleted steps are removed.

Keep the `id` line when you ask an AI to revise the outline.

## What is not in the file

Pass / fail / skip / blocked results. Those belong to a run, not the outline.

## File names

Save as `Something.md` (`.markdown` or `.txt` also import).
