bmad-agent-po
The facts
Its description
Sofia, the Product Owner: turns any input (an idea, brief, PRD, transcript, notes) into a ticket''s requirements, slices initiatives into epics and epics into stories, writes and refines tickets, runs the board, validates the tree, replans when a change lands, and sets up the ticket store. Use when the user asks for Sofia or the product owner, or says ''create a spec'', ''distill this PRD'', ''write the initiative from'', ''slice this'', ''split this epic'', ''break this into stories'', ''make a ticket'', ''refine this ticket'', ''what''s ready'', ''status of'', ''publish'', ''validate these tickets'', ''this changed, what now'', ''set up the ticket store''.
The description the agent reads to decide when to use it.
When it starts
A person asks for Sofia or the product owner by name, or asks in ordinary words for ticket work: turning an idea, brief, PRD or notes into a spec, slicing an initiative into epics or an epic into stories, writing or refining a ticket, asking what is ready or blocked, publishing, validating a ticket tree, reacting to a change mid-flight, or setting up the ticket store. The description is a long list of those trigger phrases, so any request that reads as requirements-and-ticket shaping lands here.
Things a person might say (the model's guesses)
- “Sofia, turn this PRD into tickets.”
- “Slice this initiative into epics and stories.”
- “What's ready to build, and what's blocked?”
A model's summary of when it is used.
Runs scripts
scripts/render_skill.py
Scripts the text names. Found by matching words, so treat them as pointers.
What it leads to
- hands off to bmad-build when a ready ticket is started board.md, line 42
- hands off to bmad-build-auto when a ready ticket is started board.md, line 42
- hands off to bmad-customize once the user's task is done store-setup.md, line 16
- calls bmad when BMad is not set up in this project line 16
- calls bmad-architecture when epics share decisions to settle slice.md, line 57
- calls bmad-deep-recon when the user wants research for an epic slice.md, line 67
- calls bmad-prd when the user would rather work the idea out first spec.md, line 37
- calls bmad-product-brief when the user would rather work the idea out first spec.md, line 37
- calls bmad-ux for a user-facing ticket with no design ticket.md, line 17
Other skills this one hands off to, calls, requires or offers instead, as a model read them.
What leads to it
- bmad-architecture hands off to this bmad-architecture, line 82
- bmad-brainstorming hands off to this only when the intent doc is detailed enough bmad-brainstorming/finalize.md, line 26
- bmad-forge-idea hands off to this only if installed bmad-forge-idea, line 106
- bmad-prd hands off to this bmad-prd, line 97
- bmad-prfaq hands off to this bmad-prfaq/verdict.md, line 61
- bmad-product-brief hands off to this bmad-product-brief, line 94
- bmad-retrospective hands off to this bmad-retrospective/workflow.md, line 101
- bmad-ux hands off to this bmad-ux, line 94
Other skills that hand off to this one, call it, require it or offer it instead, as a model read them.
Licence
MIT, from LICENSE
The terms its author shares it under, which let it be shown here.
Other files in this skill (23) Close
- bmod.toml
- customize.toml
- workflow.md
- assets/bug-template.md
- assets/spike-template.md
- assets/ticket-template.md
- assets/tickets-template.toml
- config/github-ticketing.toml
- config/jira-ticketing.toml
- config/linear-ticketing.toml
- config/notion-ticketing.toml
- config/repo-ticketing.toml
- config/trello-ticketing.toml
- references/board.md
- references/replan.md
- references/slice.md
- references/spec.md
- references/store-setup.md
- references/ticket.md
- references/validate-checks.md
- references/validate.md
- scripts/read_store.py
- scripts/tickets.py
The text
Most marks come from matching words in the file, so treat them as pointers.
Run the following command exactly once without changing the current working directory.
Replace {project-root} with the nearest folder containing _bmad/, from the working directory upward. Replace {skill-root} with the absolute path to this skill's directory.
uv run --no-cache "{project-root}/_bmad/scripts/render_skill.py" --project-root "{project-root}" --skill "{skill-root}"- The command prints the skill's workflow: follow it.
HALT: <reason>: report the reason and stop. - If the script does not exist, BMad is not set up in this project yet. Offer to set it up using
bmadskill, then run the command again. If you do not have thebmadskill, offer to install it first. - On any other output or failure, including
uvbeing unavailable, report the command output and stop. Do not run any workflow source directly.
From bmad-code-org/BMAD-METHOD at bd70c64, 2026-10-31. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.