Skill Tracer
Skills › BMAD Method › bmod-method › ticketing-setup.md

ticketing-setup.md

49 lines · skills/bmod-method/help/ticketing-setup.md at bd70c64

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1# Setting up and driving the ticket tree with Sofia
2
3Use this when a user asks how to set up or drive the ticket tree with Sofia (`bmad-agent-po`). For the shared ticket-tree design, see `help/ticketing-and-epics.md`.
4

Setting up and driving the ticket tree with Sofia

Use this when a user asks how to set up or drive the ticket tree with Sofia (bmad-agent-po). For the shared ticket-tree design, see help/ticketing-and-epics.md.

Raw lines 1 to 4
Names a skill bmad-agent-po :3
5## Where the store lives
6
7- The ticket tree is the folder `active_initiative` names under `output_folder`: an initiative with its epics inside, a single epic, or a backlog folder of epics or one-off stories, as the user wants. Tickets with no epic go in `{output_folder}/backlog/`. With no active folder, Sofia offers to create one and record it.
8- An epic's stories are entries in its `tickets.toml`; a story gets a markdown file only when it is reviewed, refined, or published. Tickets with no epic are markdown files.
9- `output_folder` is `_bmad-output` unless changed under `[core]` in `_bmad/custom/config.toml` (committed, applies to the team).

Where the store lives

  • The ticket tree is the folder active_initiative names under output_folder: an initiative with its epics inside, a single epic, or a backlog folder of epics or one-off stories, as the user wants. Tickets with no epic go in {output_folder}/backlog/. With no active folder, Sofia offers to create one and record it.
  • An epic's stories are entries in its tickets.toml; a story gets a markdown file only when it is reviewed, refined, or published. Tickets with no epic are markdown files.
  • output_folder is _bmad-output unless changed under [core] in _bmad/custom/config.toml (committed, applies to the team).
Raw lines 5 to 10
11## Several repos
13Install BMad in the workspace folder that holds the repos, put the store there, and start the AI tool from that folder so one session reaches the plan and every repo. Give a new store folder its own `git init`.

Several repos

Install BMad in the workspace folder that holds the repos, put the store there, and start the AI tool from that folder so one session reaches the plan and every repo. Give a new store folder its own git init.

Raw lines 11 to 14
15## Existing planning documents
17Copy a brief, PRD, UX design, or architecture into the initiative folder as `<type>-<slug>/<type>-<slug>.md`, for example `initiative-checkout/prd-checkout/prd-checkout.md`. The UX files keep their names, `DESIGN.md` and `EXPERIENCE.md`, inside `ux-<slug>/`. Copy, do not move, so other skills still find their files. Sofia writes the initiative's Requirements from them, each line naming its source id; each epic's lines are cut from those, and the stories cite their epic's `R<n>` ids.

Existing planning documents

Copy a brief, PRD, UX design, or architecture into the initiative folder as <type>-<slug>/<type>-<slug>.md, for example initiative-checkout/prd-checkout/prd-checkout.md. The UX files keep their names, DESIGN.md and EXPERIENCE.md, inside ux-<slug>/. Copy, do not move, so other skills still find their files. Sofia writes the initiative's Requirements from them, each line naming its source id; each epic's lines are cut from those, and the stories cite their epic's R<n> ids.

Raw lines 15 to 18
19## Trackers
21- Tickets are files in the store unless the user connects a tracker: "set up the ticket store", or "reconfigure the ticket store" to change it later. Nothing needs setting up for the repo store.
22- The choice goes in `_bmad/custom/ticketing-store-config.toml`. It holds only what the project sets, such as the tracker's project key; a key added there overrides the skill's default for that tracker.
23- Choices: repo (the default; files under version control, no account), GitHub Issues, Jira, Linear, Notion, or Trello. Sofia checks the needed CLI or connection at setup.
24- Repo is the most tested. The trackers are lightly tested.
25- With a tracker, the markdown files stay the working copy. Nothing syncs on its own: files and tracker line up only when the user asks Sofia. She never pushes.

Trackers

  • Tickets are files in the store unless the user connects a tracker: "set up the ticket store", or "reconfigure the ticket store" to change it later. Nothing needs setting up for the repo store.
  • The choice goes in _bmad/custom/ticketing-store-config.toml. It holds only what the project sets, such as the tracker's project key; a key added there overrides the skill's default for that tracker.
  • Choices: repo (the default; files under version control, no account), GitHub Issues, Jira, Linear, Notion, or Trello. Sofia checks the needed CLI or connection at setup.
  • Repo is the most tested. The trackers are lightly tested.
  • With a tracker, the markdown files stay the working copy. Nothing syncs on its own: files and tracker line up only when the user asks Sofia. She never pushes.
Raw lines 19 to 26
27## What the user says
29| Say | Result |
30|---|---|
31| "Split this initiative into epics" | Proposes epic boundaries and records the agreed order in the initiative's `tickets.toml`. Each epic file is written thin, with `refined: false`. |
32| "Refine the booking epic" | In one message, scaled to the initiative: what is already settled for its stories, and each open point with her pick (settle it now, spike it, or leave it to the stories). She reminds the user they can add more intent, design or research to the epic. The epic then gets its Requirements and `refined: true`. |
33| "Plan the first epic's stories" | Plans the whole epic into entries in the epic's `tickets.toml`, in build order, each with an `id` that names it under the epic. No story file is written. |
34| "Refine story 1.2", "review the stories" | Pulls the story's file from its entry if it has none, then reviews and improves it with the user. Full acceptance criteria are written only for a bug, a ticket with no epic, or when the user asks. |
35| "File a bug: ..." | One ticket straight into `backlog/`, with no epic. |
36| "What's ready?", "what's next?" | Lists what is ready to refine, ready to start, in progress, and blocked, for one epic or the whole initiative. |
37| "Start story 1.2" | Checks it is ready to start. On a tracker, publishes it if it is not yet published and moves it to in progress. On the repo store there is nothing to write: run `bmad-build` on it. |
38| "Mark story 1.2 done", "I'm working story 1.2" | Writes `status` in the story's plan through `tickets.py mark`, creating the plan when there is none. Done is only ever the user's, or an orchestrator's, to mark. |
39| "Publish the tickets" | Sends tickets to the tracker, writing each ticket's file first. By default the whole breakdown publishes once approved; with `publication = "on_start"`, each ticket publishes when it starts. On the repo store, approving the breakdown commits it; nothing is published. |

What the user says

SayResult
"Split this initiative into epics"Proposes epic boundaries and records the agreed order in the initiative's tickets.toml. Each epic file is written thin, with refined: false.
"Refine the booking epic"In one message, scaled to the initiative: what is already settled for its stories, and each open point with her pick (settle it now, spike it, or leave it to the stories). She reminds the user they can add more intent, design or research to the epic. The epic then gets its Requirements and refined: true.
"Plan the first epic's stories"Plans the whole epic into entries in the epic's tickets.toml, in build order, each with an id that names it under the epic. No story file is written.
"Refine story 1.2", "review the stories"Pulls the story's file from its entry if it has none, then reviews and improves it with the user. Full acceptance criteria are written only for a bug, a ticket with no epic, or when the user asks.
"File a bug: ..."One ticket straight into backlog/, with no epic.
"What's ready?", "what's next?"Lists what is ready to refine, ready to start, in progress, and blocked, for one epic or the whole initiative.
"Start story 1.2"Checks it is ready to start. On a tracker, publishes it if it is not yet published and moves it to in progress. On the repo store there is nothing to write: run bmad-build on it.
"Mark story 1.2 done", "I'm working story 1.2"Writes status in the story's plan through tickets.py mark, creating the plan when there is none. Done is only ever the user's, or an orchestrator's, to mark.
"Publish the tickets"Sends tickets to the tracker, writing each ticket's file first. By default the whole breakdown publishes once approved; with publication = "on_start", each ticket publishes when it starts. On the repo store, approving the breakdown commits it; nothing is published.
Raw lines 27 to 40
Names a skill bmad-build :37
41## Hand-off to bmad-build
43- A planned story needs no file. Run `bmad-build` on it: "build story 1.2", naming the epic's id and the story's. The builder reads the entry, its epic, the story file when there is one, and the documents their References name, such as a codebase research document. It plans the story's acceptance criteria from the epic's Requirements and Done when, the entry's description, and its `Verify:` check.
44- A story needs no refining before `bmad-build`; the build refines it. Before an unattended run, talk to Sofia the Product Owner to review the stories. A bug, a ticket with no epic, and an entry the user marked `refine = true` get full criteria first; "what's next?" lists these under ready to refine.
45- The build writes its plan, `<type>-<slug>-plan.md`, beside `tickets.toml`. The plan carries the ticket's `status`, which the build moves as far as `built`. After reviewing the work, the user says "mark story 1.2 done".

Hand-off to bmad-build

  • A planned story needs no file. Run bmad-build on it: "build story 1.2", naming the epic's id and the story's. The builder reads the entry, its epic, the story file when there is one, and the documents their References name, such as a codebase research document. It plans the story's acceptance criteria from the epic's Requirements and Done when, the entry's description, and its Verify: check.
  • A story needs no refining before bmad-build; the build refines it. Before an unattended run, talk to Sofia the Product Owner to review the stories. A bug, a ticket with no epic, and an entry the user marked refine = true get full criteria first; "what's next?" lists these under ready to refine.
  • The build writes its plan, <type>-<slug>-plan.md, beside tickets.toml. The plan carries the ticket's status, which the build moves as far as built. After reviewing the work, the user says "mark story 1.2 done".
Raw lines 41 to 46
Names a skill bmad-build :43
47## Feedback
49Open an issue at github.com/bmad-code-org/BMAD-METHOD with "bmad-agent-po" in the title, or post in the BMad Discord. Useful reports say what was given, asked, produced, and expected.

Feedback

Open an issue at github.com/bmad-code-org/BMAD-METHOD with "bmad-agent-po" in the title, or post in the BMad Discord. Useful reports say what was given, asked, produced, and expected.

Raw lines 47 to 49