Files
wow20/.claude/skills/bmad-review/customize.toml
T
2026-08-14 17:08:24 +02:00

142 lines
5.8 KiB
TOML

# DO NOT EDIT -- overwritten on every update.
#
# Workflow customization surface for bmad-review.
#
# Override files (not edited here):
# {project-root}/_bmad/custom/bmad-review.toml (team)
# {project-root}/_bmad/custom/bmad-review.user.toml (personal)
[workflow]
# --- Configurable below. Overrides merge per BMad structural rules: ---
# scalars: override wins
# arrays (persistent_facts, activation_steps_*, review_guidance): append
# arrays of tables keyed by `code`: matching key replaces, new keys append
# Steps executed on activation: prepend runs before the skill's own
# activation flow, append runs after the lens plan is settled and before the
# lenses run. Each entry is a literal instruction.
activation_steps_prepend = []
activation_steps_append = []
# Standing context held for every review, code and document alike. Entries
# prefixed `file:` are paths or globs whose contents load as facts; all others
# are literal facts. The shipped entry is a project-wide glob — set it to []
# if you don't want every review scanning for it.
persistent_facts = ["file:{project-root}/**/project-context.md"]
# Standing review directives applied on every run alongside each lens's own
# method. Each entry is a literal sentence or a `file:`-prefixed path/glob
# whose contents load as directives.
#
# Examples:
# "Flag passive voice in headings."
# "Second-person imperative is the house voice; never suggest changing it."
# "file:{project-root}/docs/terminology.md"
review_guidance = []
# Executed after the findings are delivered. Freeform directive; empty = the
# review ends with the findings.
#
# Example:
# on_complete = "Append a one-line review summary to {project-root}/docs/review-log.md"
on_complete = ""
# How findings are presented when the caller doesn't say: "json" (the raw
# findings array only), "markdown" (the human report only), or "both". A lens
# that declares its own rendering keeps it for its own findings.
output_format = "both"
# Where to write the review report. Empty = present in chat only. Accepts
# {project-root}-prefixed paths.
report_path = ""
# How findings are presented — shaping, not destination. Freeform directive;
# empty = each lens's default ordering and rollup.
#
# Example:
# output_preferences = "Cap output at the 20 highest-impact findings."
output_preferences = ""
# --- Editorial lens settings (used by the structure and prose lenses) ---
# Default reader the editorial lenses calibrate for when the request doesn't
# say:
# "humans" clarity, flow, comprehension aids preserved
# "llm" precision, consistent terminology, no hedging
# A reader type stated in the request wins for that run.
reader_type = "humans"
# The baseline style guide for every editorial review: the name of a guide the
# model knows well, a `file:`-prefixed path to a style guide document, or the
# rules inline as text. A style guide stated in the request wins for that run.
# Where the guide in effect conflicts with the lens's generic principles, the
# guide wins — except content is sacrosanct.
#
# Examples (set in team/user override TOML):
# style_guide = "file:{project-root}/_bmad/style-guides/company-voice.md"
# style_guide = "Sentence-case headings. No Oxford comma. Address the reader as 'you'."
style_guide = "Microsoft Writing Style Guide"
# ---------------------------------------------------------------------------
# Review lenses. Each lens is a pass over the content with its own method and
# stance. `instruction` is the lens's whole execution recipe — the shipped
# lenses load a reference file from the skill root, but an override may inline
# any prompt.
#
# `applies_to` is the content this lens can review: "code", "docs", or "any".
# It is the first filter — a lens never joins a default review for content it
# does not apply to. `when` (optional) refines that judgement in prose. An
# explicitly requested lens always runs, whatever both say.
#
# `after` (optional) names a lens this one builds on: it runs once that lens
# has completed and receives its findings, instead of running independently.
#
# Empty `instruction` disables a lens. Keyed by `code`: an override with a
# matching code replaces the shipped lens, a new code appends.
#
# Example (add an org-specific lens in team/user override TOML):
# [[workflow.lenses]]
# code = "accessibility"
# name = "Accessibility"
# applies_to = "any"
# when = "UI code or user-facing documents."
# instruction = "Review against WCAG 2.2 AA. Emit findings in the canonical fields."
# ---------------------------------------------------------------------------
[[workflow.lenses]]
code = "adversarial"
name = "Adversarial"
applies_to = "any"
when = "always"
instruction = "Load `references/lens-adversarial.md` from the skill root and follow it."
[[workflow.lenses]]
code = "edge-case-hunter"
name = "Edge-Case Hunter"
applies_to = "any"
when = "Content with behavior to trace: code, diffs, and the specs, requirements, plans, and stories that define behavior. Skip for prose documents with no behavioral surface."
instruction = "Load `references/lens-edge-case-hunter.md` from the skill root and follow it."
[[workflow.lenses]]
code = "verification-gap"
name = "Verification Gap"
applies_to = "code"
when = "Reviewed inside a repo where tests can be searched and read."
instruction = "Load `references/lens-verification-gap.md` from the skill root and follow it."
[[workflow.lenses]]
code = "structure"
name = "Editorial Structure"
applies_to = "docs"
when = "Documents whose shape is the author's to change."
instruction = "Load `references/lens-structure.md` from the skill root and follow it."
[[workflow.lenses]]
code = "prose"
name = "Editorial Prose"
applies_to = "docs"
after = "structure"
when = "Documents being copy-edited."
instruction = "Load `references/lens-prose.md` from the skill root and follow it."