---
{
  "n": 19,
  "title": "Merging a ticket",
  "abstract": "",
  "refs": [],
  "seen": [
    "system",
    "agent"
  ],
  "data": {
    "starts_on": "ticket.finished",
    "system": true,
    "environment": "main",
    "files": {},
    "started_by": "",
    "only_when_idle": false,
    "talks_in": "",
    "lasting": false,
    "unless": {},
    "dispatch": ""
  },
  "created": 1790359026.328745,
  "updated": 1790367500.131459,
  "deleted": 0.0,
  "completed": 0.0,
  "outcome": "",
  "type": "sequence"
}
---
A ticket finished its plan with a clean worktree. Check its work before it lands on the board's branch.

## Review its work
journal ticket show <ticket n> names its environment, its plan and the board it is on. Dispatch the ticket-reviewer agent type: it runs the ticket's tests in its worktree and checks the diff against every done-when clause of its card, and answers pass or fail with evidence. On a fail, send it back with what failed (journal ticket send_back <ticket n> "<what failed>") and abandon this run: it comes back when the ticket finishes again.

## Merge it
Merge it into the board's branch with journal ticket merge <ticket n>, never by hand; the ticket closes and the next one starts. When the merge is refused because the branches conflict, start Resolving a merge conflict: journal sequence run <that sequence> --about ticket:<ticket n>.
