Anatomy of a card
Title. What you would call the pull request.
Description. The brief. This is the prompt the Worker reads, so it is worth writing properly. See writing a good ticket.
Plan. A structured plan in five sections: Outcome, Acceptance checks, Touchpoints, Constraints, and Open questions. It renders as checkboxes you can tick, and the ticks persist. A Plan-mode run writes it for you; you can also write or refine it by hand.
Labels. Your own taxonomy, per project.
Assignee. A person or a team. Assignment can be what triggers a run.
Dependencies. Other tickets this one waits for. A ticket with unmet dependencies will not start, which is how you sequence work that genuinely cannot be parallel.
Attachments. Mockups, screenshots, logs. A Worker can read them.
Activity. The full history of what happened: runs, moves, comments, approvals, CI results.
The side panel
Opening a ticket gives you the plan on one side and the live session on the other. While a Worker is running you can watch its chat, drop into its terminal, or leave and come back later. The session keeps going either way.
Acceptance checks
The Acceptance checks section of the plan is not decoration. It is the list the Worker is told to satisfy, and the list you scan when the diff arrives.
Vague checks produce vague work. "Handles errors" is not a check. "Returns a 409 with the existing record when the slug already exists" is.
Dependencies
Add a dependency when ticket B genuinely cannot begin until ticket A is done, usually because A creates something B imports.
Do not use dependencies to express preference. Fredrin's throughput comes from tickets running at the same time, and a dependency chain is a queue you built by hand. If three tickets touch the same file but do not depend on each other's output, run them in parallel and resolve any conflict at merge.
Filing tickets from elsewhere
Tickets do not have to be created in the app:
- Slack - tag the bot in any conversation. See the Slack guide.
- The REST API -
POST /tickets. See the API. - The CLI -
fredrin tickets create. See the CLI. - MCP - point another agent at your board. See MCP.
Next steps
- Writing a good ticket - the description is the prompt.
- Goals - grouping tickets under a milestone.
- Running a ticket - Plan versus Build.