# DO NOT EDIT -- overwritten on every update. # # Workflow customization surface for bmad-ticket. # Team overrides: {project-root}/_bmad/custom/bmad-ticket.toml # Personal overrides: {project-root}/_bmad/custom/bmad-ticket.user.toml [workflow] # --- Universal defaults. Merge: scalars override, arrays append. --- activation_steps_prepend = [] activation_steps_append = [] persistent_facts = [] # `file:` entries are paths or globs under {project-root}; anything else is a fact verbatim on_complete = "" # The keys below are settings a team picks. The method — how an initiative and an epic are sliced, what a # good acceptance criterion is, how risk is scored, what the checks are — is in references/ and is not a # key. A team rule on top of the method goes in `persistent_facts`, or in the project's AGENTS.md when the # build skills need it too (the risk definition, the criteria rule). # When tickets publish to a tracker; on the repo store, committing the approved tickets.toml is the publish. at_inception: the whole # agreed breakdown at inception, so the team sees the plan there; on_start: each ticket when it starts. The user can override. publication = "at_inception" # at_inception | on_start # How this team draws epic boundaries. Empty: the rule in references/slice.md. Set, it replaces that rule: # the team's own text, or a pointer to where its boundaries are recorded — a url, AGENTS.md, a team map, # anything the agent can read. slice_to_epics = "" # The team's own validation checks, one array per scope, run with the skill's in references/validate-checks.md. # Write `checks. = [...]`; an override that sets `checks` as one string replaces the whole table. checks.ticket = [] # one ticket checks.set = [] # every entry in an epic's breakdown checks.tree = [] # the initiative and its epic envelopes checks.dependencies = [] # missing prerequisites, run with the set and with the tree checks.closure = [] # a container before it closes # Ticket templates, one per type. They apply to tickets the agent writes; `tickets.py pull` writes a fixed layout, # so a pulled story does not follow `story_template`. # Swap a template to change the criteria format (the shipped one is numbered Given/When/Then; a table, a checklist) # or to add your own sections. A container's envelope fields and its number of Done when checks are the container # templates' too. # Keep a home, under any name, for each section references/ticket.md refers to: Description, # Acceptance Criteria, Boundaries (stories), References, and Notes; for containers also Outcome, # Requirements, and Done when; Reproduction and Cause Hypothesis for bugs, Approach for spikes. `Decision:` and `Dropped:` lines live in Notes. # Spikes use "Verify:" lines instead of Given/When/Then, and a pulled story carries one Verify: line unless its entry has `refine = true`; both deliberate. initiative_template = "{skill-root}/assets/initiative-template.md" epic_template = "{skill-root}/assets/epic-template.md" story_template = "{skill-root}/assets/story-template.md" spike_template = "{skill-root}/assets/spike-template.md" bug_template = "{skill-root}/assets/bug-template.md"