Files
BMAD-METHOD/docs
Brian 8b4da79161 refactor(core): group v6 shims and merge editorial review into bmad-review as lenses (#2608)
* refactor: group v6 deprecation shims into v6-shims folders

Move the nine backward-compatibility forwarders into dedicated v6-shims/
folders so the deprecation set is visible in one place and can later be
made an install-time include/exclude option before removal at the v7 cut.

core-skills/v6-shims/: the five review and editorial husks
bmm-skills/v6-shims/: the four PRD and architecture husks

Grouping only — no content changes. The installer discovers skills by a
recursive walk and installs each under its own name, so installed paths
and skill IDs are unchanged. Verified by diffing a full headless install
against main: identical .claude/skills listing and file content, and an
identical _bmad tree. The only delta is the path column in
skill-manifest.csv, which now records the new source location.

External module repos (gds, loop, tea, bmb, os-utils) and enterprise
users still invoke these IDs, so they continue to ship by default.

* refactor(core): merge editorial review into bmad-review as lenses

All reviews are reviews. bmad-editorial-review's two passes become two
more bmad-review lenses, leaving one lens runtime instead of two skills
with overlapping trigger descriptions — "review this document" matched
both before, so which one ran was close to arbitrary.

Lenses now declare what they apply to. applies_to is "code", "docs", or
"any", and is the first filter on a default review; `when` still refines
it in prose. adversarial stays "any" — it is a stance, not a subject-
matter method, and is the lens a code/doc skill split could not have
placed. edge-case-hunter's `when` was "always", which is why it would
have fired on prose; it now gates on having a behavioral surface.

A lens may also declare `after`, naming a lens it builds on: prose runs
on top of the structure findings, as it always has. The runner announces
the plan, runs the independent lenses (in parallel via subagents when
available), then the dependent ones on their results.

Lens wording is unchanged. The three code lens files are byte-identical;
the editorial passes moved verbatim into references/lens-structure.md,
references/lens-prose.md, and references/editorial-common.md, which
carries what both share — the content-sacrosanct rule, style guide
handling, reader calibration, and the findings table. That material used
to load unconditionally; as lenses it loads just-in-time, so a code
review no longer pays for it.

bmad-editorial-review becomes the sixth v6 shim, forwarding with the
structure and prose lenses named. It keeps its customize.toml so existing
team and user overrides still resolve, and forwards them as pre-resolved
values. The four other husks now name bmad-review and their lens
explicitly. Each still pins its own legacy output contract.

bmm's four document skills point doc_standards at the merged skill with
named lenses. Docs updated across all five locales.

Core is 7 skills. A headless install produces the same 47-skill set as
main, with all six shims resolving.

* fix(core): honor forwarded customization and de-hardcode the lens set

Follow-up to the editorial/review merge, from review of #2608.

Contract fixes:
- bmad-review gains a Forwarded activation clause matching bmad-prd and
  bmad-architecture, so the bmad-editorial-review shim's pre-resolved fields
  are honored instead of being silently overwritten by the skill's own
  customize.toml. Existing bmad-editorial-review overrides resolve again.
- The announce step is skipped when a caller pinned an exact output contract,
  and a forwarder's contract now governs everything emitted rather than the
  findings block alone. The edge-case (raw JSON) and verification-gap (one
  exact line) forwarders no longer get a prose line prepended.

Lens set is no longer hardcoded:
- The description and body intro present the shipped lenses as examples and
  point at whatever {workflow.lenses} resolves to. Docs carry a matching note
  in all five locales.

Also:
- Document the `lenses=` directive form in Inputs and in the four bmm
  doc_standards comments that use it.
- module-help.csv review row rewritten to the house "Use to..." convention,
  naming the reviewable content types and the situations that should trigger
  a suggestion.
- Shim customize.toml trimmed to a lean legacy-key surface with empty
  defaults, so unset keys fall through to bmad-review and project-context.md
  is no longer loaded twice.
- Redundant `when` clauses dropped where applies_to already encodes the rule.
- Core skill count corrected to seven/four and the edge-case applies_to cell
  fixed to match its actual value, across all five locales.
2026-07-19 18:40:47 -05:00
..