Thanks for #3038, and for the quick turnaround on #3007. We moved a real v6.12 project to v7 today and found two small things. Both reproduce on fresh clones of main @ bda3c59 and dev @ abab355.
1. A loose bmad-build plan is reported as a tickets.py status problem
Description
- For work that is not a ticket,
bmad-build writes its plan at the initiative root with an empty ticket:
skills/bmad-build/step-01-clarify-and-route.md:86 reads Set plan_file = {{ config.output_folder }}/{active_initiative}/plan-{slug}.md.
skills/bmad-build/plan-template.md:4 reads ticket: '' # … empty outside it.
tickets.py status then lists that plan under problems, from the names no entry or leaf file branch of join_plans (skills/bmad-ticket/scripts/tickets.py:419).
Steps to reproduce (no project files needed)
- Create the following files:
initiative-x/initiative-x.md, frontmatter type: initiative;
initiative-x/tickets.toml with one [[epic]]: id = 1, slug = "epic-a";
initiative-x/epic-a/epic-a.md;
initiative-x/epic-a/tickets.toml with one [[entry]]: id = 1, type = "story", status = "backlog".
- From the folder that holds
initiative-x/, run uv run <BMAD-METHOD>/skills/bmad-ticket/scripts/tickets.py status initiative-x. The output has counts {'total': 1, 'planned': 1} and problems is absent.
- Add
initiative-x/plan-loose-tooling-fix.md, made from plan-template.md's frontmatter, so it has ticket: ''.
- Run the same command again.
Expected: a loose plan that bmad-build itself placed is not reported as a problem.
Actual: problems: ["initiative-x/plan-loose-tooling-fix.md: ticket '' names no entry or leaf file in initiative-x; skipped"]
If flagging it is intended, a short note in the help would avoid confusion. Otherwise two directions come to mind; you will know which fits the design:
join_plans could skip plans whose ticket is empty, since they are loose by definition.
- Loose plans could live in a folder that
tickets.py does not join.
2. Four skills still route to bmad-workflow-builder, which #3038 retires
skills/bmod-toolsmith/retired.toml removes bmad-workflow-builder, together with bmad-agent-builder, bmad-module-builder and bmad-bmb-setup. These lines still suggest bmad-workflow-builder for building a skill or an agent:
skills/bmad-architecture/SKILL.md:61
skills/bmad-prd/SKILL.md:27
skills/bmad-ux/SKILL.md:40
skills/bmad-customize/SKILL.md:60 and :110
Expected: with Toolsmith installed, these point to bmad-toolsmith.
Actual: each line is conditional («if the BMad Builder module is installed»), so nothing breaks. But the condition is now always false, and the user is never pointed to bmad-toolsmith.
Environment
- Module: core / method (
bmad-build, bmad-ticket, bmad-architecture, bmad-prd, bmad-ux, bmad-customize).
- Version: skills
6.13.0-next, installed with npx skills@1.7.0 add https://github.com/bmad-code-org/BMAD-METHOD/tree/dev.
- Environment: Claude Code (Claude Opus) on Linux.
- Checked: I searched open and closed issues and open PRs, and reproduced both findings on the latest
main and dev.
Happy to send a small PR for either if that is useful.
Thanks for #3038, and for the quick turnaround on #3007. We moved a real v6.12 project to v7 today and found two small things. Both reproduce on fresh clones of
main@bda3c59anddev@abab355.1. A loose
bmad-buildplan is reported as atickets.py statusproblemDescription
bmad-buildwrites its plan at the initiative root with an emptyticket:skills/bmad-build/step-01-clarify-and-route.md:86readsSet plan_file = {{ config.output_folder }}/{active_initiative}/plan-{slug}.md.skills/bmad-build/plan-template.md:4readsticket: '' # … empty outside it.tickets.py statusthen lists that plan underproblems, from thenames no entry or leaf filebranch ofjoin_plans(skills/bmad-ticket/scripts/tickets.py:419).Steps to reproduce (no project files needed)
initiative-x/initiative-x.md, frontmattertype: initiative;initiative-x/tickets.tomlwith one[[epic]]:id = 1,slug = "epic-a";initiative-x/epic-a/epic-a.md;initiative-x/epic-a/tickets.tomlwith one[[entry]]:id = 1,type = "story",status = "backlog".initiative-x/, runuv run <BMAD-METHOD>/skills/bmad-ticket/scripts/tickets.py status initiative-x. The output has counts{'total': 1, 'planned': 1}andproblemsis absent.initiative-x/plan-loose-tooling-fix.md, made fromplan-template.md's frontmatter, so it hasticket: ''.Expected: a loose plan that
bmad-builditself placed is not reported as a problem.Actual:
problems: ["initiative-x/plan-loose-tooling-fix.md: ticket '' names no entry or leaf file in initiative-x; skipped"]If flagging it is intended, a short note in the help would avoid confusion. Otherwise two directions come to mind; you will know which fits the design:
join_planscould skip plans whoseticketis empty, since they are loose by definition.tickets.pydoes not join.2. Four skills still route to
bmad-workflow-builder, which #3038 retiresskills/bmod-toolsmith/retired.tomlremovesbmad-workflow-builder, together withbmad-agent-builder,bmad-module-builderandbmad-bmb-setup. These lines still suggestbmad-workflow-builderfor building a skill or an agent:skills/bmad-architecture/SKILL.md:61skills/bmad-prd/SKILL.md:27skills/bmad-ux/SKILL.md:40skills/bmad-customize/SKILL.md:60and:110Expected: with Toolsmith installed, these point to
bmad-toolsmith.Actual: each line is conditional («if the BMad Builder module is installed»), so nothing breaks. But the condition is now always false, and the user is never pointed to
bmad-toolsmith.Environment
bmad-build,bmad-ticket,bmad-architecture,bmad-prd,bmad-ux,bmad-customize).6.13.0-next, installed withnpx skills@1.7.0 add https://github.com/bmad-code-org/BMAD-METHOD/tree/dev.mainanddev.Happy to send a small PR for either if that is useful.