Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,37 @@ All notable changes to `bmad-auto` are documented here. The format is based on
[Semantic Versioning](https://semver.org/spec/v2.0.0.html). While the project is pre-1.0,
breaking changes may land in a minor release.

## [Unreleased]

### Changed

- **`bmad-auto-dev` rebuilt as a standalone machine-first skill.** It was a fork of `bmad-quick-dev`
carrying an interactive workflow plus an `automation-mode.md` decision table whose only job was to
override that interactivity. It is now four lean steps (resolve → plan → implement → finalize) with
the orchestrator contract (invocation, escalation, result schema) stated up front — no greeting,
menus, or HALTs to override. Epic-context compilation, previous-story continuity, and the inline
three-layer adversarial review are all preserved: with `review.enabled = false` the dev session
runs that inline triple-review itself before finalizing to `done` (a judge who did the planning is
better-informed); with `review.enabled = true` the orchestrator runs a separate fresh-context
review session instead. Mirrors the upstream draft bmad-code-org/BMAD-METHOD#2498 (renamed
`bmad-dev-auto` → `bmad-auto-dev` to match the orchestrator's `/bmad-auto-dev` invocation). No
engine change was required.

### Added

- **`bmad-auto-dev` spec Boundaries gain a `Block If` tier** (from upstream
bmad-code-org/BMAD-METHOD#2500). Frozen, spec-local list of decisions that cannot be made
unattended; triggering one in implementation or review escalates `CRITICAL` (`type: block-if`).
Also: `sync-sprint-status` now writes a machine-readable `sprint-sync-skipped` frontmatter
warning when a story key is absent (was log-only), and `compile-epic-context` uses a deterministic
fallback sentence when planning artifacts are missing.

- **`result.json` `workflow` is now an enforced contract on the dev path.** `verify_dev` /
`verify_dev_bundle` reject a mismatch against `verify.DEV_WORKFLOW` (`"auto-dev"`); the skill emits
`"auto-dev"` instead of the misleading legacy `"quick-dev"`. Review's `"code-review"` stays
informational by design — `verify_review` is purely disk-derived and is never handed the
result.json (documented in `src/automator/data/skills/README.md`).

## [0.6.4] — 2026-06-21

### Fixed
Expand Down
42 changes: 27 additions & 15 deletions src/automator/data/skills/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,18 @@ installer, or laid down by `bmad-auto init` (the orchestrator's wheel **bundles*
them); either way `bmad-auto-setup` installs the `bmad-auto` package from its
Git repository, so installing this module gives you a working system — skills
plus the orchestrator that invokes them. Standard BMAD installs are never
modified; the skills are automator-owned forks maintained against their upstream
counterparts.
modified; the skills are automator-owned — some are forks maintained against
their upstream counterparts (`bmad-auto-review`), others are standalone or
automator-native (see the table below).

| Component | Forked from | Role |
| ------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `bmad-auto` | — (this repo, Git) | the orchestrator: ralph-loop, hooks, tmux adapters, TUI. CLI `bmad-auto`. Installed by `bmad-auto-setup` from Git. |
| `bmad-auto-dev` | `bmad-quick-dev` | unattended implementation: story key / feedback file / dw-bundle → spec + code + result.json |
| `bmad-auto-review` | `bmad-code-review` | unattended adversarial review of a dev spec in a fresh context |
| `bmad-auto-resolve` | — (automator-native) | interactive CRITICAL-escalation resolution: a human disambiguates a frozen spec so a paused story can be re-driven (`/bmad-auto-resolve <story>`) |
| `bmad-auto-sweep` | — (automator-native) | read-only deferred-work ledger triage |
| `bmad-auto-setup` | — (scaffolded) | registers the module in `_bmad/config.yaml` + `module-help.csv`, **installs the orchestrator tool from Git**, runs `bmad-auto init` + `validate` |
| Component | Forked from | Role |
| ------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `bmad-auto` | — (this repo, Git) | the orchestrator: ralph-loop, hooks, tmux adapters, TUI. CLI `bmad-auto`. Installed by `bmad-auto-setup` from Git. |
| `bmad-auto-dev` | — (first-class) | machine-first unattended implementation: story key / feedback file / dw-bundle → spec + code + result.json. A standalone skill (no longer a `bmad-quick-dev` fork); canonical source is the bmm-core skill upstream, vendored here for wheel bundling. |
| `bmad-auto-review` | `bmad-code-review` | unattended adversarial review of a dev spec in a fresh context |
| `bmad-auto-resolve` | — (automator-native) | interactive CRITICAL-escalation resolution: a human disambiguates a frozen spec so a paused story can be re-driven (`/bmad-auto-resolve <story>`) |
| `bmad-auto-sweep` | — (automator-native) | read-only deferred-work ledger triage |
| `bmad-auto-setup` | — (scaffolded) | registers the module in `_bmad/config.yaml` + `module-help.csv`, **installs the orchestrator tool from Git**, runs `bmad-auto init` + `validate` |

## Install into a project

Expand Down Expand Up @@ -61,11 +62,22 @@ overrides as `bmad-auto-dev.toml` / `bmad-auto-review.toml`.
<https://github.com/bmad-code-org/bmad-auto> (`src/automator`, `pyproject.toml`
are canonical at the repo root). (The skills, by contrast, ride along inside
the package wheel.)
- The forks keep the upstream file structure. To pull upstream improvements:
`diff -r <bmad-install>/bmad-quick-dev bmad-auto-dev`, merge manually.
- Do **not** rename the result.json `workflow` values (`"quick-dev"`,
`"code-review"`, `"deferred-sweep-triage"`) or the `plan-code-review` route —
they are machine contracts validated by the orchestrator, not skill names.
- `bmad-auto-review` is still a fork of `bmad-code-review` and keeps the upstream
file structure. To pull upstream improvements:
`diff -r <bmad-install>/bmad-code-review bmad-auto-review`, merge manually.
- `bmad-auto-dev` is **no longer a `bmad-quick-dev` fork** — it is a standalone
machine-first skill whose canonical source is the bmm-core skill upstream
(`src/bmm-skills/4-implementation/bmad-auto-dev/` in BMAD-METHOD). The copy
here is a vendored mirror for wheel bundling: sync it from upstream rather than
re-deriving it from `bmad-quick-dev`.
- Do **not** rename the result.json `workflow` values — they are machine
contracts the orchestrator validates, not skill names:
- `bmad-auto-dev` → `"auto-dev"` (checked by `verify.DEV_WORKFLOW` in
`verify_dev` / `verify_dev_bundle`).
- sweep triage / migrate → `"deferred-sweep-triage"` / `"deferred-sweep-migrate"`
(checked in `sweep.py`).
- `bmad-auto-review` → `"code-review"` (informational only — `verify_review`
is not handed the result.json, so this value is not enforced).

Validate after changes (from the repo root):

Expand Down
Loading