Skill Tracer
Skills › BMAD Method › bmad-agent-po › trello-ticketing.toml

trello-ticketing.toml

76 lines · skills/bmad-agent-po/config/trello-ticketing.toml at bd70c64

1# Store starter: Trello. `scripts/read_store.py` reads this file as the base layer; the project's
2# _bmad/custom/ticketing-store-config.toml names the store, fills the empty fields below, and replaces
3# any other key here, key by key.
4# It updates with the skill and holds only what is specific to this store: the rules every store shares
5# are in references/board.md. Comments and `description` are never loaded; `description` is for choosing a store.
6#
7# One tool: the official Trello MCP server. Trello is flat: lists carry status, labels carry type, card
8# urls in descriptions carry hierarchy and blocking. Using the defaults below: the board needs the lists
9# Backlog, In Progress, Review, Done, Initiatives, Epics and a label per type plus hitl; `setup` says how. Members, comments, attachments, and label creation
10# are not in the MCP yet. Weakest fit of the shipped configs; expect to tune it.
12description = "Trello through its MCP server: lists as status, labels as type, card links as hierarchy. For small teams that run a Trello board and want to keep it."
14[tickets]
15store = "trello"
16key = "" # ids are card short links (from the card url); leave empty
17board = "" # the board url
18access = """
19Use the Trello MCP (trelloReadBoard, trelloReadCard, trelloWriteCard, trelloWriteChecklist,
20trelloSearch) against `board`. Write tools take the server's ids, not urls: resolve a url with
21`trelloReadCard get` first.
22"""
24fields = """
25risk is a label risk:<value>; severity a label P0-P3. The MCP cannot create labels: `setup` asks
26the user to add them with the type labels. estimate is an `estimate:` line in the description. Empty field: no label.
27"""
29reference = """
30Attachments are not in the MCP yet; the description line is the reference.
31"""
33[verbs]
34setup = """
35Connect, unless the Trello tools already answer: add the MCP server https://mcp.trello.com/v1 to
36the agent tool in use (in Claude Code, `claude mcp add --transport http trello https://mcp.trello.com/v1`),
37then sign in over OAuth with write permission.
38The MCP can create a board but not lists or labels. When `board` is empty, offer to create one;
39then ask the user to add the lists in [tickets.status] (Backlog, In Progress, Review, Done) plus
40Initiatives and Epics, and labels for every value in [tickets.types] plus hitl, risk:low, risk:medium, risk:high, and
41P0-P3. Check with
42`trelloReadBoard` before first publish and name what is still missing.
43"""
45write = """
46tracker_id is the card's short link and remote its url.
47`trelloWriteCard create` makes a card, `update` changes description or labels, `move` changes
48list, `archive` is dropped. Status is the list [tickets.status].<state>; initiative cards live in the Initiatives list,
49epics in Epics, both carrying a `status:` line at the top of the description. Labels carry type,
50hitl, risk, severity. Trello has no fields for the rest — conventions in the description:
51`parent: <card url>` as its first line, an `assignee:` line (no member tools yet), after as
52card urls; the parent card keeps a checklist with each child's url. A standalone ticket: no parent line.
53The body is the description, and the `assignee:` line stays in it.
54"""
56query = """
57One card: `trelloReadCard get` by url — name, list, labels, description (assignee, parent,
58covers, after live there), checklists; a container's children are its checklist items. Many:
59`trelloSearch` scoped to `board`, or `trelloReadBoard` filtered by the maps.
60"""
62# BMad type -> this store's type.
63[tickets.types]
64initiative = "initiative"
65epic = "epic"
66story = "story"
67spike = "spike"
68bug = "bug"
70# BMad state -> this store's status.
71[tickets.status]
72backlog = "Backlog"
73in-progress = "In Progress"
74review = "Review"
75done = "Done"
76dropped = "archived"