Tickets
A ticket in Fabric is version-controlled markdown. Each one is a file in your repo with a front-matter header (title, status, assignee, priority, labels) and a markdown body. Creating or editing a ticket records ops in the operation log, so a ticket carries its full history the same way any other file does: nothing is overwritten, only appended.
Because tickets are ordinary content in the log, they merge and time-travel like everything else. The hub also keeps a fast read model behind the list and detail views, so filtering and sorting stay quick even as the log grows.
Keys
Every ticket gets a human key, TIX-1, TIX-2, and so on, minted in order the moment you
create it. Keys are unique within your workspace and never reused, so two tickets can never
collide. You refer to a ticket by its key everywhere: the detail page lives at /tickets/TIX-12,
and the CLI takes the key as its argument.
Fields
| Field | Meaning |
|---|---|
| Title | A short summary. Required. |
| Status | Where the work stands. Defaults to open; common values are open, in_progress, blocked, and done. |
| Assignee | Who owns it. Optional. |
| Priority | A number; higher sorts first in the list. |
| Labels | Free-form tags for grouping and filtering. |
| Description | The markdown body. |
In the web app
Open Tickets in the sidebar for the list. Filter by status or assignee, and click a row to open the ticket. The detail page renders the description as markdown. With write access you get a New ticket button and an Edit button; without it the views are read-only.
The list updates live: when anyone in your workspace creates or edits a ticket, every open list refreshes on its own, no reload needed.
From the CLI
Work tickets from the terminal with fabric ticket:
fabric ticket create "Fix the login redirect"
fabric ticket create "Flaky checkout test" --status open --priority 2 --labels bug,checkout
fabric ticket list
fabric ticket list --status open --assignee alice
fabric ticket show TIX-12
fabric ticket edit TIX-12 --status done
fabric ticket edit TIX-12 --title "New title" --body "Updated description"
create takes the title as its one argument and mints the key for you. On edit, only the
flags you pass change; the rest are left as they were, so fabric ticket edit TIX-12 --status done touches nothing but the status. Pass --labels "" to clear labels. Add --json to any
command for machine-readable output, so an agent can read a ticket, act on it, and update it
without the web UI.