# Work on branches

Use a branch when a change needs several edits or a dedicated eval run before it is ready to publish.

\[Illustration: Versions advance along the main line. A branch forks off, is edited in parallel, and merges back as a new version.\]

## App-managed projects

- **Create** Use the branch switcher in the ontology header. The branch starts from the current ontology.

- **Edit and test** Explorer and Assistant edits stay on the branch. Run evals against it before merging.

- **Merge** Merging publishes a new version. That is when the change starts affecting answers.

If main changes first, existing Cassis branches become read-only. Review or delete them and start again from the current version instead of resolving merge conflicts.

## Git-managed projects

Use a normal git branch and pull request. `cassis eval run` tests the ontology in the checkout without publishing it. The CLI option `--branch <name>` selects an existing Cassis branch; it does not mean the current git branch. See the [eval reference](/reference/cli/eval/).

Git branches under `cassis/` are reserved for Cassis-created app branches. Use your own branch names for repository work.
