diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 43d5471..b60221c 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -12,7 +12,7 @@ "name": "bmad-builder", "source": "./", "description": "Build AI agents, workflows, and modules from a conversation. Four skills — Agent Builder, Workflow Builder, Module Builder, and Setup — guide you from idea to production-ready skill structure with built-in quality optimization. Part of the BMad Method ecosystem.", - "version": "2.1.0", + "version": "2.2.0", "author": { "name": "Brian (BMad) Madison" }, @@ -22,7 +22,7 @@ "name": "sample-plugins", "source": "./", "description": "Sample plugins demonstrating how to build BMad agents and skills. Includes a code coach, creative muse, diagram reviewer, dream weaver, sentinel, and excalidraw generator.", - "version": "2.1.0", + "version": "2.2.0", "author": { "name": "Brian (BMad) Madison" }, @@ -40,7 +40,7 @@ "name": "bmad-dream-weaver-agent", "source": "./", "description": "Dream journaling and interpretation agent with lucid dreaming coaching, pattern discovery, symbol analysis, and recall training.", - "version": "2.1.0", + "version": "2.2.0", "author": { "name": "Brian (BMad) Madison" }, diff --git a/CHANGELOG.md b/CHANGELOG.md index cecadd6..5745e39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,36 @@ # Changelog +## [2.2.0] - 2026-08-09 + +### 🐛 Fixes + +- **`uv run` conversion finished across the remaining skills** — v2.1.0 claimed `uv run` was standardized across builder scripts, but #98 reached only `bmad-agent-builder` and `bmad-workflow-builder`. `bmad-bmb-setup`, `bmad-module-builder`, and `bmad-eval-runner` were missed. This converts the remaining 57 invocations across `skills/`, `samples/`, and `docs/how-to/`. It matters beyond consistency: a bare `python3` is not guaranteed to be 3.11+, which BMad's shared `resolve_customization.py` requires for `tomllib`, and `uv run` reads a script's own `requires-python` and provisions a matching interpreter (#105). + +- **Emitted templates no longer pass the defect on** — five of the fixes are in `assets/setup-skill-template/` and `assets/standalone-module-template/`, so every module scaffolded by `bmad-module-builder` stops inheriting bare-`python3` invocations. This also closes a visible seam: `init-sanctum-template.py` had been converted in #98, but the three `samples/*/scripts/init-sanctum.py` copies generated from it still said `python3` (#105). + +- **pytest docstrings call `uv run --with pytest -m pytest`** — the eval-runner and workflow-builder test files carry no PEP 723 block, so `uv run -m pytest` alone has nothing to resolve pytest from. Matches the convention in BMAD-METHOD (#105). + +- **README Python badge corrected to `>=3.11`** — it advertised `>=3.10`, a floor that cannot run the shared resolver (#105). + +### 🔧 Maintenance + +- **Marketplace plugin versions synced to 2.2.0** — nothing in the release workflow touches `.claude-plugin/marketplace.json`, so its versions drift from `package.json` unless bumped by hand. + +### Notes + +- Deliberately unconverted: the two anti-pattern cells in `docs/explanation/` (`scripts-in-skills.md`, labelled **Fragile**, and `skill-authoring-best-practices.md`, labelled "do not modify") — they teach what not to do; the "runs under a bare python3" prose in `count_tokens.py` and `prepass.py`, which describes a script's lack of third-party dependencies rather than invoking anything; and the per-script `requires-python` floors, which are correct as written. + ## [2.1.0] - 2026-06-22 ### 🐛 Fixes -* **Standalone module validation hardening** — `validate-module.py` no longer emits false-positive findings for correctly-structured standalone single-skill modules. It now accepts either `merge-config.py`/`merge_config.py` naming (dash or importable underscore form), skips colon-less `preceded-by`/`followed-by` cross-module refs that are unresolvable in isolation while still validating intra-module `skill:action` refs, and recognizes a module when handed its own skill directory directly (#97). +- **Standalone module validation hardening** — `validate-module.py` no longer emits false-positive findings for correctly-structured standalone single-skill modules. It now accepts either `merge-config.py`/`merge_config.py` naming (dash or importable underscore form), skips colon-less `preceded-by`/`followed-by` cross-module refs that are unresolvable in isolation while still validating intra-module `skill:action` refs, and recognizes a module when handed its own skill directory directly (#97). ### 🔧 Maintenance -* **Builders use runtime-installed memlog** — Workflow Builder and Agent Builder now point at the shared runtime memlog CLI at `{project-root}/_bmad/scripts/memlog.py` instead of each bundling its own copy. Removes drift between copies; `{project-root}` resolves at runtime so the call works from any skill root. Bundled `scripts/memlog.py` copies (and the workflow-builder memlog test) were deleted, and the obsolete "copy the CLI into each built skill" guidance was rewritten (#98). +- **Builders use runtime-installed memlog** — Workflow Builder and Agent Builder now point at the shared runtime memlog CLI at `{project-root}/_bmad/scripts/memlog.py` instead of each bundling its own copy. Removes drift between copies; `{project-root}` resolves at runtime so the call works from any skill root. Bundled `scripts/memlog.py` copies (and the workflow-builder memlog test) were deleted, and the obsolete "copy the CLI into each built skill" guidance was rewritten (#98). -* **`uv run` standardized across builder scripts** — Prompt-facing script invocations, usage strings, and emitted init-sanctum/wake templates now call `uv run