16 Commits
Author SHA1 Message Date
Brian 048741334d docs: move the v7 release ETA to mid-November 2026 (#3159) 2026-10-31 18:02:51 -05:00
Murat K Ozcan 423690c3d7 docs: describe v7 module install and the three-file config model (#3156)
* fix(skills): activation preflight checks required skills only against roots the caller names

resolve_customization.py accepts repeated --root, in precedence order, and passes
them to setup_check. Without roots, setup_check no longer claims a required skill
or the module record is missing or outdated, since it cannot see the host's other
active roots. Notes that need no root order stay.

* fix(skills): report a tag-pinned install as pinned with the re-add command

A module whose skills-lock entry carries a ref was reported newer-available, but
npx skills update keeps the pin and cannot apply the newer version. Status now
reports pinned with the command that adds the module again at the newer tag.

* fix(skills): tickets find rejects a bare number that would fall back to the backlog

With no folder, a bare number the initiative does not resolve was taken from
the backlog file carrying that id. It now errors as ambiguous and lists the
candidates.

* fix(skills): preflight reads the record that wins the ordered roots and survives an unreadable file

render_skill.py takes --root like the resolver.

* fix(skills): only a version-tag ref counts as a pin

A branch or commit ref is followed by npx skills update, so it stays newer-available.

* fix(skills): a numeric tracker id still finds its backlog ticket and the bare-number error names the real case

* fix(skills): pinned re-add command covers one scope; test the renderer preflight and pinned status

The re-add command lists only the skills in the module record's scope. The renderer
tests install setup_check and cover --root forwarding. Status tests cover pinned as a
settled state.

* fix(skills): a numeric tracker id wins over a backlog ticket's local id

* feat(skills): build loads any run folder that names its ticket and container

step-01 of bmad-build and bmad-build-auto reads the main document of any <type>-*/ run
folder in the initiative or the ticket's epic folder whose ticket and container match.
A document without container keeps the research rule. A loaded document that lists test
files makes the plan include the work that turns them green.

* feat(skills): retrospective gathers the epic's run folders and companions

* fix(skills): migration rewrites a module config path that moves with the planning folder

* fix(skills): match a run's container by the folder find names, carry test work into oneshot plans, align companions and the migration check

* fix(skills): mirror leaves a bare number out of the backlog, and a pin needs the lock entry to name the module's repository

* fix(skills): match a run's container by its last folder name and have the build run the listed tests

* docs: describe v7 module install and the three-file config model

* docs: mark the plugin marketplace route not v7-ready

* docs(skills): core-tools help names how to add the Test Architect

* docs: list external modules that restate the ticket tree rules

* fix(skills): bmad-customize points to bmad-toolsmith for custom skills

* docs: align the config and module pages with setup behavior

* docs: call team settings defaults a personal file can override, and note single-skill modules

* fix(skills): no re-add command for an untagged pre-release, and the backlog help names the tracker id exception

* fix(skills): listed tests get a Verification command that blocks completion, and the migration rewrites each layer that holds the moved path

* fix(skills): a released pinned module from a non-GitHub source says to re-add it from its source

* fix(skills): bmad-build runs the plan's Verification commands before review

* fix(skills): bmad-customize recommends bmad-toolsmith only when installed
2026-10-31 11:49:27 -05:00
Brian ca77852fb0 docs: install all skills with --skill '*' and explain the security scan ratings (#3102)
* docs: install the full method with skills add --all and explain the security scan warnings

* docs: install all skills with --skill '*' so users still pick their coding tools

* docs: drop the scanner-warning note from the README and the advice to ignore warnings
2026-10-17 21:03:49 -05:00
Brian Madison ef926b60ba Merge remote-tracking branch 'origin/dev' into product-owner-agent
# Conflicts:
#	docs/build/build-a-change.md
#	skills/bmad-build-auto/step-01-clarify-and-route.md
#	skills/bmad-build/step-01-clarify-and-route.md
#	skills/bmad-build/step-02-plan.md
#	skills/bmad-code-review/step-01-gather-context.md
#	skills/bmad-deep-recon/SKILL.md
#	skills/bmad-retrospective/references/evidence-gathering.md
#	skills/bmad-retrospective/workflow.md
#	skills/bmod-method/help/existing-codebase.md
#	skills/bmod-method/help/ticketing-setup.md
#	tools/ticket-tree-rules.md
2026-10-17 12:27:57 -05:00
Brian Madison fb28c032fb feat(skills): readers, agents, migration, help and docs name Sofia and the ticket file
bmad-build and bmad-build-auto load the active node's ticket file as the capability contract; bmad-architecture adopts the spine into the ticket's References through Sofia; the planning skills' closing offers name her SPEC capability; John's and Amelia's menus drop the items that invoked the retired skills and Sofia joins the roster.

bmad migrate renders a v6 spec into the epic file, folds a pre-release spec-<slug>/ into its ticket (memlog entries in order, companions beside the ticket, CAP ids mapped to R), turns a loose spec folder into a backlog story, and drops the retired customization keys with a note. Help and docs describe one path: the initiative, epic or story file is the spec at its level, Sofia fills its requirements from what the user has and slices from it.
2026-10-11 22:00:01 -05:00
Brian 9f1987169a docs: put the stable v6.12 install first and mark the skills route as a preview (#3076)
* docs(readme): put the stable v6.12 npm install first and mark the skills route as a preview

* docs(start): mark the install and first-change pages as the preview line and show the stable v6.12 install

* docs: name the v7 preview alpha, its release ETA, and the v6 freeze
2026-10-11 16:12:30 -05:00
Brian 0d499b9b82 feat(bmad): setup cleans up renamed and removed skills; help loads only for help requests (#2981)
* feat(bmad): setup cleans up renamed and removed skills, updates and migrates in one flow

Modules list renamed and removed skills in a retired.toml beside bmod.toml,
replacing removals.txt. Setup moves _bmad/custom files of renamed skills,
offers to delete retired skills in project and global folders and drop them
from the skills CLI lock, and offers the new name's install. It reads every
active skills root, reports duplicates and skills a module ships that are
not installed.

Setup, status, update, repair and doctor are one flow in setup.md: check and
report, then update the skills, answer new config questions, refresh _bmad,
clean up, and run a detected migration on request. bmad-preview-ticketing's
forwarder is removed.

* refactor: make active_initiative a core setting

Initiatives are not specific to the method: core skills such as
brainstorming, research and party mode write into the initiative folder
too. The key moves from [modules.bmm] to [core], and core help now explains
initiatives for any module; method help keeps only what the method puts in
the folder.

* refactor(bmad): split help out of SKILL.md and load module help only for help requests

SKILL.md keeps the persona and routes setup, migrate and initiative actions
to their references without loading module help. Help and conversation load
every installed module's help with knowledge.py first, then follow the new
references/help.md: see where the project stands, answer only from module
help, and run skills or a sequence of them on request.

* fix(bmad): skip tool skills folders linked outside the project; setup-run migrations verify

* test(bmad): point USERPROFILE at the test home so the global cleanup test runs on Windows
2026-09-28 23:33:29 +08:00
Brian b5420009c4 refactor: rename bmad-preview-ticketing to bmad-ticket (#2979)
* refactor: rename bmad-preview-ticketing to bmad-ticket

The ticketing skill is no longer a preview; it is how BMad plans and tracks work. Rename the skill, update every reference, and drop the preview wording from the docs. The setup page moves to set-up-the-ticket-tree with a redirect from the old URL.

* feat: forward bmad-preview-ticketing to bmad-ticket until v7

npx skills update does not install a renamed skill. Keep the old name as a forwarder that tells preview users about the rename, gives the install command, offers to rename their custom override file, and hands the request to bmad-ticket. Add a Breaking changelog entry.
2026-09-28 13:29:49 +08:00
Brian 561eeedf38 feat(skills): retire planning and implementation artifact folders for the initiative store (#2968)
* feat(skills): retire planning and implementation artifact folders for the initiative store

Every document skill now writes into the active initiative under `output_folder`, as `<type>-<slug>/<type>-<slug>.md`, where the slug is what the document is about. `planning_artifacts` and `implementation_artifacts` are no longer read or seeded; a v6 project moves its files with `bmad migrate method`. The `bmad` skill gains `references/initiative.md` to show, switch, create, or clear the active initiative, and its help view reads the initiative folder instead of the retired paths. The repo's `CLAUDE.md` shim is removed, since Claude Code reads `AGENTS.md` natively.

* fix(ticketing): tickets live in output_folder, help runs the resolver, linter names the spine

Drops the ticketing store's separate root: the ticket tree is always {output_folder}/{active_initiative}, beside the documents, so an initiative created by the bmad skill is the one ticketing finds. The bmad help view now runs resolve_config.py when _bmad/config.toml exists instead of reading the user file alone. lint_spine.py reports the spine file, not the dependency name, for an unpinned Stack row.

* fix(docs): name the loose-work location where only the initiative folder was given

The brainstorming headless return reports the configured intent document name. The party-mode help row and four build docs say where files land when no initiative is active.

* docs: bring the English docs onto the initiative layout

The planning-skills diagram names the <type>-<slug>.md files. Planning pages state the output-folder fallback. The bmad skill replaces bmad-help everywhere, and the reference page says it also runs setup, status, migrate, and the active initiative. The v6 preview page leads with bmad migrate method. Tutorials install with the skills CLI and bmad setup. Config pages say where active_initiative lives and that output_folder carries the ticket tree. Loose path slips fixed, and an Unreleased changelog entry added.
2026-09-26 22:19:52 +08:00
Alex VerkhovskyandBrian Madison 5e33d3c03b feat(ticketing): build from the ticket tree without ticket files (#2944)
* docs(ticketing): shared rules for skills that use the ticket tree

Plan file name and place, status carried by the plan and who writes each value, how skills find the tree and run tickets.py, the baseline revision, and where code review and the retrospective write.

* docs(ticketing): backlog plans join by file stem, and a leaf file's status is read when there is no plan

* feat(ticketing): entries start without a file and take their state from the plan

* chore(tools): treat _bmad/method/scripts/ as install-only in the file reference check

* feat(ticketing): tickets.py is installed for every skill and finds the active initiative

* feat(ticketing): find and mark work on an entry that has only a plan

* docs(ticketing): board rules say who moves a ticket

* docs(ticketing): drop pull-to-start and the plan section

An entry is ready to start with no file, and the build's plan is its own file beside the leaf, so the ticketing skill stops describing a ## Plan section, a to_pull group, and publishing on pull. pull is only for refining, or for writing the file a tracker receives. On the repo store the committed tickets.toml is the publish; on a tracker publication is on_start or at_inception and the whole file is sent. spec_checkpoint becomes plan_checkpoint.

* docs(ticketing): method help and docs describe the ticket tree without ticket files

* refactor(ticketing): share tickets.py checks and test setup, and fix stale tree wording

* test(ticketing): decode tickets.py output as UTF-8, and skip the undecodable-argument test on Windows

* refactor(build): the build skills call their output a plan

Rename the build's output from spec to plan in bmad-build and bmad-build-auto with no change in behavior: plan-template.md, {plan_file}, [workflow] open_plan (no alias), bad_plan, Plan Change Log, plan-{slug}.md, source_plan, and the halt strings that name it. bmad-build records baseline_revision in place of baseline_commit. bmad-spec's spec_folder and SPEC.md keep their names. The renderer's open_plan label and the render tests follow, and a test renders both build skills with each pinned route.

* feat(build): bmad-build builds the next ready entry from the ticket tree

With no argument, bmad-build takes the first ready entry from tickets.py next,
reads it through find, and plans beside tickets.toml with the entry's ticket id.
Builds now stop at a new status, built, and never write done. tickets.py rows
carry a ref that find resolves, and a prerequisite in review counts as met.

* feat(build): bmad-build takes a named ticket and offers started plans from the tree

* refactor(build): bmad-build stops reading the old files

Drop the stories.yaml route, story_key and the sprint-status sync, and the
epic context compiled from the epics file. A tree ticket reads its epic file
and References, and takes continuity from its prerequisites' plans.

* feat(build): bmad-build-auto builds one ticket from the tree

With no work named, bmad-build-auto takes the active initiative's next
ready entry through tickets.py next and find; a named ref, ticket file,
or title resolves through find. Its plan lands at find's path with
ticket and baseline_revision, continuity comes from the plans of the
entry's prerequisites, and the run ends at built, never done. The
epic-story path no longer halts on an earlier plan in review.

* refactor(build): bmad-build-auto halts into the plan and stops reading the old files

A halt on a tree ticket runs tickets.py mark, which records the blocked
status and reason in the plan and creates it when there is none. Drop the
stories.yaml folder+id dispatch and the epic context compiled from the
epics file. bmad-build shows a blocked plan's reason and halts.

* docs(build): the loop contract describes bmad-build-auto on the ticket tree

* docs(build): the build docs and diagrams name the plan and take a ticket from the tree

* refactor(build): sweep stale story wording from the build skills and drop the dead open_plan clause

* fix(build): bmad-build-auto builds only what it is dispatched

An unattended worker must not choose its own work. Given no work it now
halts unclear intent instead of taking the first ready ticket from
tickets.py next; the orchestrator names each ticket.

* fix(build): bmad-build-auto takes a ticket only when the prompt names one

A bare ref, path, or title matched by shape could be something other
than a ticket, and was sent to find. A ticket is now a reference the
prompt calls a ticket, or a file whose frontmatter type is a ticket
type; find then resolves its plan, entry, and prerequisites.

* refactor(build): bmad-build names a ticket, then resolves it with find

Separate what counts as a ticket from the find call that resolves its
plan, entry, and prerequisites, as bmad-build-auto now does. No change
in which prompts count as a ticket.

* feat: review and retrospective from the ticket tree (#2954)

* feat(code-review): find the ticket in review through the tree and write to its plan

With no argument and nothing in the conversation, bmad-code-review runs
tickets.py status, offers the tickets in review, resolves the chosen one
through find to its plan, diffs from the plan's baseline_revision with
untracked files, and takes the claims from the commits since it. Findings
go into a dated block under the plan's Code Review section, deferred
findings included. The sprint-status tier, story_key, and the status and
sprint-status update are gone: the skill never changes a ticket's status.

* refactor(code-review): call the review's input a plan and drop the story-file route

Rename {spec_file} to {plan_file} with no alias across the steps, the
customize.toml lens and comment, and the render test. Findings go to the
plan's Code Review section whenever a plan is set and to the chat
otherwise; the baseline_revision detection, the Tasks/Subtasks condition,
and the Review Findings route are gone. The no-spec review mode becomes
no-plan, and the rule in step-04 names built as the status the build
leaves.

* feat(retrospective): read an epic folder from the ticket tree and write its retrospective there

* refactor(code-review): shorten the plan-file and ticket-tree tiers

* refactor(retrospective): drop the sprint status route, its script, and its tests

* refactor(correct-course): stop reading the epics file and writing sprint status

* docs(review,retrospective): describe code review, retrospective, and correct-course on the ticket tree

* refactor(review,retrospective): sweep duplicate rules and stale references from the epic

Say the retrospective's file name, only-write rule, and unfinished-ticket
verdict once each; describe git_evidence.py's output as the range's commits;
fix cross-references that named a missing workflow.md, a Close phase, a
Document Project input, and a step where a section or item was meant; and
align the finish-an-epic doc and help row with the plan as the status record.

* fix(retrospective): end the last plan's range at the epic's own work

A retrospective run after later work has landed counted those commits as
the epic's, since the last range ran to HEAD. When later work has landed,
the range now ends at the last commit belonging to this epic's tickets,
and the cut is recorded.

* feat: retire the legacy planning route and migrate ticket state (#2955)

* feat: retire the legacy planning route and migrate ticket state

* docs: drop the ticket-tree upgrade guide and changelog entry

Remove docs/start/upgrade-to-ticket-tree.md, its inbound links, and its
locale-coverage baseline entries. Revert the Unreleased CHANGELOG section.

* docs: keep the translated workflow map diagram unchanged

Only the vi-vn, cs, and zh-cn workflow-map pages embed this diagram, and
their text still describes the previous route.

* fix(ticketing): move a leaf's plan with it, say epic tickets need no file, write test files as UTF-8

---------

Co-authored-by: Brian Madison <bmadcode@gmail.com>
2026-09-25 22:17:11 +08:00
Alex Verkhovsky a0d04f7e34 docs: consolidate Reference and retire the Diátaxis groups (#2798)
Move Get Answers About BMad under Start and Autonomous Development Loops
under Build. Split the Workflow Map into a planning-skills section on
Choose a Planning Path (with a new planning-skills.svg) and an
implementation-skills section on Build a Change. Consolidate Agents,
Skills, Core Tools, and Advanced Elicitation into one Skills and Agents
page whose agent codes and skill list match the shipped sources. Retire
the v4 upgrade guide and the external-modules prompt, remove the How-To
Guides and Explanation sidebar groups, and redirect every retired route.
2026-08-30 14:57:25 -06:00
Alex Verkhovsky c16dc729a9 docs: add Existing Codebases chapter (#2793)
Add a four-page chapter after Plan Larger Work: Start in an Existing
Codebase (the repo is the knowledge; size the work from the source),
Set and Maintain Project Context, Getting Deeper as the worked example,
and The Theory of Project Context as optional last reading.

Retire six English pages with redirects, drop the empty English
Tutorials sidebar group, collapse Plan Larger Work and Existing
Codebases in the sidebar, reflow how-to and explanation orders, and
retarget Welcome, README, Plan, Reference, and style-guide links.
Localized copies stay as deferred translation work.
2026-08-29 11:48:29 -06:00
Alex Verkhovsky 191219eadb docs: add Plan Larger Work chapter (#2790)
Introduce a Plan chapter of eight pages under docs/plan/: Choose a
Planning Path, Plan Inside an Organization, Explore and Validate an
Idea, Research a Decision, Define Requirements and a Specification,
Design UX and Architecture, Break Work into Stories and Track It, and
Finish an Epic. Content is written from the current skill sources and
describes what each skill takes in, what it produces, and how to steer
it.

Retire ten English pages from how-to and explanation with redirects to
their new homes, renumber the remaining sidebar orders, migrate English
links, shrink the Welcome router bullet, and add a Plan Larger Work
sidebar group after Build. Localized copies of the retired pages are
recorded in deferred work.
2026-08-28 21:44:40 -06:00
Alex Verkhovsky cf0d98f030 docs: integrate the Build chapter (#2784)
Retarget remaining English first-party links to the canonical Build pages,
list the chapter in llms.txt, order Start and Build first in llms-full, and
reject superseded English routes in the published-model check.
2026-08-27 23:22:10 -06:00
Alex Verkhovsky 4d8dec79b9 docs: clarify BMad development paths (#2669)
* docs: clarify BMad development paths

* docs: add development path diagrams
2026-08-27 01:15:13 -06:00
Alex Verkhovsky 22c76e8ba2 docs: add Start documentation section (#2777) 2026-08-26 13:55:03 -07:00