basic BMAD setup
This commit is contained in:
@@ -0,0 +1,186 @@
|
||||
# DO NOT EDIT -- overwritten on every update.
|
||||
#
|
||||
# Default customization values for bmad-build.
|
||||
# Override in _bmad/custom/bmad-build.toml or
|
||||
# _bmad/custom/bmad-build.user.toml.
|
||||
#
|
||||
# Merge rules:
|
||||
# - Strings replace the default.
|
||||
# - Lists append to the default list.
|
||||
# - Tables merge key by key.
|
||||
# - Arrays of tables merge by `id`: matching `id` replaces, new `id`s append.
|
||||
|
||||
[workflow]
|
||||
|
||||
# Extra instructions to run before config is loaded and before the user is greeted.
|
||||
|
||||
activation_steps_prepend = []
|
||||
|
||||
# Extra instructions to run after the greeting and before step 01.
|
||||
|
||||
activation_steps_append = []
|
||||
|
||||
# Facts kept in context for the whole run.
|
||||
# Entries are literal text or file references prefixed with "file:".
|
||||
# File entries may use globs and are loaded during activation.
|
||||
|
||||
persistent_facts = []
|
||||
|
||||
# Execution route: "oneshot" implements in this session, "full" writes a plan
|
||||
# and hands implementation to a subagent, "auto" applies route_selection after
|
||||
# planning.
|
||||
|
||||
route = "auto"
|
||||
|
||||
# Automatic route selection. Replace the whole instruction to change the rule.
|
||||
|
||||
route_selection = """
|
||||
Decide whether to use a coding subagent (full) or implement directly (oneshot).
|
||||
Using the information already gathered, with no further reading and minimal
|
||||
extra reasoning, estimate the lines of code to add or modify.
|
||||
100 lines or fewer: oneshot. Otherwise: full.
|
||||
If the change touches more than five files and is not simple or mechanical,
|
||||
consider upgrading to full.
|
||||
"""
|
||||
|
||||
# Instruction run after Build completes.
|
||||
# Empty means no extra completion behavior.
|
||||
|
||||
on_complete = ""
|
||||
|
||||
# Optional instructions for opening a completed plan. The empty default leaves
|
||||
# the plan closed. Override this with the application and behavior you prefer.
|
||||
# Example requests for bmad-customize: "Open completed plans in Cursor and
|
||||
# reuse the project window" or "Do not open completed plans automatically."
|
||||
#
|
||||
# Example `open_plan` override instructions for bmad-build.user.toml:
|
||||
# {project-root} and {plan_file} are substituted at run time.
|
||||
#
|
||||
# VS Code and compatible GUI editors — a custom override can use `code`; Cursor,
|
||||
# Windsurf, Antigravity, Zed, and similar editors can use their own launcher.
|
||||
# Preserve reuse-window behavior when the launcher supports it, and always pass
|
||||
# the repository root first and the plan second:
|
||||
# Run `code -r "{project-root}" "{plan_file}"`, root first.
|
||||
# Run `cursor -r "{project-root}" "{plan_file}"`, root first.
|
||||
# Run `windsurf -r "{project-root}" "{plan_file}"`, root first.
|
||||
# Run `zed "{project-root}" "{plan_file}"`, root first.
|
||||
#
|
||||
# IntelliJ IDEA — its CLI accepts one path per invocation:
|
||||
# Run `idea "{project-root}"` to open the project, then
|
||||
# `idea "{plan_file}"` to open the plan in that project.
|
||||
#
|
||||
# Vim — keep repository context as the working directory:
|
||||
# Run `cd "{project-root}" && vim "{plan_file}"`.
|
||||
#
|
||||
# Emacs — reuse an Emacs server without waiting for the buffer to close:
|
||||
# Run `cd "{project-root}" && emacsclient -n "{plan_file}"`.
|
||||
#
|
||||
open_plan = ""
|
||||
|
||||
# Handoff for the implementation subagent in step 03. The whole execution
|
||||
# recipe — a subagent by default, but an override may run it any other way
|
||||
# (a different model, an external coding tool via bash). {plan_file} is
|
||||
# substituted at run time.
|
||||
|
||||
implementation_handoff = """
|
||||
Launch a subagent with no prior conversation context, with this prompt:
|
||||
|
||||
> Read {plan_file} fully and implement it — the plan is the sole source of truth. Load every file listed in its frontmatter `context:` before you start.
|
||||
>
|
||||
> When done, report what you changed, how you verified it, and anything left incomplete or risky.
|
||||
"""
|
||||
|
||||
# Review selection: "none" launches no lens and skips triage, "quick" runs
|
||||
# quick_lenses, "thorough" runs thorough_lenses, "auto" follows the resolved
|
||||
# route — oneshot selects quick, full selects thorough.
|
||||
|
||||
review = "quick"
|
||||
|
||||
# Review lenses for the review step, in two sets the review selection picks
|
||||
# between. `instruction` is the lens's whole execution recipe — subagents by
|
||||
# default, but an override may run anything (e.g. an external reviewer via
|
||||
# bash). {diff_file}, {claims_file}, {plan_file}, and {verbatim_intent} are
|
||||
# substituted at run time; the first three are paths, and {diff_file} is the
|
||||
# unified diff file the lens reads. `when` (optional) gates a lens; empty
|
||||
# `instruction` disables it.
|
||||
|
||||
[[workflow.quick_lenses]]
|
||||
id = "quick"
|
||||
name = "Quick"
|
||||
instruction = """
|
||||
Launch a context-free subagent with this prompt:
|
||||
|
||||
Read `{plan_file}` — the plan holding the acceptance criteria and intent — and the files its frontmatter `context:` lists. Read the agent instruction files (`AGENTS.md`, `CLAUDE.md`, or equivalents) at the repository root and in the directories the diff touches; those are the rules. Then read the unified diff at `{diff_file}` — it is the change under review.
|
||||
|
||||
Report unmet acceptance criteria, broken rules, and bugs. Each finding: the location, what goes wrong, and evidence checked against the surrounding code. Output a Markdown list of findings only — no severity, priority, or ranking.
|
||||
|
||||
Review by inspection only. Do not modify code, run builds or tests, or invoke quality gates. Do not invoke any skill, and do not spawn subagents of your own — you are the reviewer. Return your findings as text in your final message; do not route them through any findings-reporting tool the host may offer.
|
||||
|
||||
"""
|
||||
|
||||
[[workflow.thorough_lenses]]
|
||||
id = "blind-hunter"
|
||||
name = "Blind Hunter"
|
||||
instruction = """
|
||||
Launch a context-free subagent with this prompt:
|
||||
|
||||
Conduct a review of CONTENT.
|
||||
Look for what's missing, not only what's wrong.
|
||||
Compute your finding floor N from the diff file's size: N = min(floor(sqrt(kB) + 1), 10), where kB is the file's size in kilobytes. State the arithmetic in one line, then find at least N issues to fix or improve.
|
||||
Output a Markdown list of findings only — no severity, priority, or ranking.
|
||||
If the content is empty, stop and say so.
|
||||
If you have zero findings, re-check and keep thinking; do not stop with an empty list.
|
||||
|
||||
CONTENT: the unified diff at `{diff_file}`. Read that file — it is the content under review.
|
||||
|
||||
Review by inspection only. Do not modify code, run builds or tests, or invoke quality gates. Do not invoke any skill, and do not spawn subagents of your own — you are the reviewer. Return your findings as text in your final message; do not route them through any findings-reporting tool the host may offer.
|
||||
|
||||
"""
|
||||
|
||||
[[workflow.thorough_lenses]]
|
||||
id = "edge-case-hunter"
|
||||
name = "Edge Case Hunter"
|
||||
instruction = """
|
||||
Launch a context-free subagent with this prompt:
|
||||
|
||||
Read `{skill-root}/review-prompts/edge-case-hunter.md` completely and follow it as your review instructions.
|
||||
|
||||
claims_file (leave unread until your instructions call for it): {claims_file}
|
||||
|
||||
Review content: the unified diff at `{diff_file}`. Read that file — it is the content under review.
|
||||
|
||||
Review by inspection only. Do not modify code, run builds or tests, or invoke quality gates. Do not invoke any skill, and do not spawn subagents of your own — you are the reviewer. If the instruction file is unreadable, report that exact failure and stop. Return your findings as text in your final message; do not route them through any findings-reporting tool the host may offer.
|
||||
|
||||
"""
|
||||
|
||||
[[workflow.thorough_lenses]]
|
||||
id = "verification-gap"
|
||||
name = "Verification Gap Reviewer"
|
||||
instruction = """
|
||||
Launch a context-free subagent with this prompt:
|
||||
|
||||
Read `{skill-root}/review-prompts/verification-gap.md` completely and follow it as your review instructions.
|
||||
|
||||
Review content: the unified diff at `{diff_file}`. Read that file — it is the content under review.
|
||||
|
||||
Review by inspection only. Do not modify code, run builds or tests, or invoke quality gates. Do not invoke any skill, and do not spawn subagents of your own — you are the reviewer. If the instruction file is unreadable, report that exact failure and stop. Return your findings as text in your final message; do not route them through any findings-reporting tool the host may offer.
|
||||
|
||||
"""
|
||||
|
||||
[[workflow.thorough_lenses]]
|
||||
id = "intent-alignment"
|
||||
name = "Intent Alignment Auditor"
|
||||
instruction = """
|
||||
Launch a subagent with this prompt:
|
||||
|
||||
You are an intent-alignment auditor. You have no other context about how this change was produced. Here is the verbatim intent this work started from:
|
||||
|
||||
{verbatim_intent}
|
||||
|
||||
The diff is the unified diff at `{diff_file}`. Read that file — it is the change under review.
|
||||
|
||||
Your task is strictly descriptive — do not prescribe additional work. Report: (1) the defensible readings of the intent, enumerated; (2) which reading this diff implements; (3) where the readings and the diff diverge — specifically, which surface the intent's expectations live at versus which surface the diff's changes and its tests exercise.
|
||||
|
||||
Review by inspection only. Do not modify code, run builds or tests, or invoke quality gates. Do not invoke any skill, and do not spawn subagents of your own — you are the reviewer. Return your findings as text in your final message; do not route them through any findings-reporting tool the host may offer.
|
||||
|
||||
"""
|
||||
Reference in New Issue
Block a user