Skip to main content

Branches

Branches are isolated review workspaces for requirement, test, and component changes. They let your team review AI-generated or human changes before those changes become product truth on main.

Branch lifecycle

  1. Create a branch from main.
  2. Edit requirements, tests, or components on the branch.
  3. Open the Branches page.
  4. Review additions, modifications, deletions, link proposals, and conflicts.
  5. Merge into main or delete the branch.

Branches can be created explicitly or automatically by workflows such as intent capture and agents.

Change stats

Branch rows show counts for:

  • Requirement additions, modifications, and deletions.
  • Test additions, modifications, and deletions.
  • Component additions, modifications, and deletions.
  • Conflicts.

Merge preview

Merge preview shows the changes that would be applied to main. Use it before merging from the CLI:

tiden branch merge-preview --product-id <product-id> --name <branch-name>

Conflict resolution

A conflict occurs when the branch changed an item and main also changed that same source item after the branch copy was created. Resolve conflicts by choosing either:

  • Keep branch.
  • Keep main.

The CLI can auto-resolve all conflicts in one direction:

tiden branch merge \
--product-id <product-id> \
--name <branch-name> \
--auto-resolve branch

On non-main branches, requirement-test link changes are proposals. Review them before merge:

tiden branch link-proposals list \
--product-id <product-id> \
--name <branch-name>

tiden branch link-proposals review \
--product-id <product-id> \
--name <branch-name> \
--decision accepted \
--all-proposed

Merges block unreviewed link proposals unless you pass:

--allow-unreviewed-link-proposals

Generated branches

Generated branches are commonly named with prefixes such as intent/ or agents/. Treat them as proposals. Review the diff, inspect sources and agent artifacts, then merge only the changes you trust.