kanban reads Markdown tickets from .smithers/tickets/, runs each ticket in its own worktree branch, then asks an agent to merge successful branches back into the main workspace.
Inputs
| Input | Type | Default |
|---|---|---|
maxConcurrency | number | 3 |
Ticket Layout
Place ticket files in.smithers/tickets/:
How It Runs
- Discovers
.mdticket files, skipping dot-prefixed files (e.g..gitkeep) and any file namedreadme.md(case-insensitive). - Creates a worktree branch for each ticket.
- Runs the shared
ValidationLoopper ticket. - Records a ticket result in the run log.
- Merges branches where validation passed and at least one reviewer approved.
Output Shape
Each ticket branch is merged into the main workspace on success. The run log records per-ticket validation results and reviewer feedback; failing tickets are left in their worktree branches for inspection.Use it when
- You have multiple independent tickets in
.smithers/tickets/. - You want each ticket built in its own worktree branch and merged on success.
Use something else when
- You have not split the work yet: run
tickets-createfirst. - The work is a single change: use
implement.
Resume & retry
Runs are durable and resume withup --resume. Each ticket runs the validation loop independently; branches that pass validation and reviewer approval are merged, and failing tickets are left in their worktree branches for inspection.