customize.toml 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. # DO NOT EDIT -- overwritten on every update.
  2. #
  3. # Workflow customization surface for bmad-prd.
  4. #
  5. # Override files (not edited here):
  6. # {project-root}/_bmad/custom/bmad-prd.toml (team)
  7. # {project-root}/_bmad/custom/bmad-prd.user.toml (personal)
  8. [workflow]
  9. # --- Configurable below. Overrides merge per BMad structural rules: ---
  10. # scalars: override wins • arrays: append
  11. # Steps to run before the standard activation (config load, greet).
  12. # Use for pre-flight loads, compliance checks, etc.
  13. activation_steps_prepend = []
  14. # Steps to run after greet but before the workflow begins.
  15. # Use for context-heavy setup that should happen once the user has been acknowledged.
  16. activation_steps_append = []
  17. # Persistent facts the workflow keeps in mind for the whole run
  18. # (standards, compliance constraints, stylistic guardrails).
  19. # Each entry is either a literal sentence, a skill prefixed with `skill:`, or a `file:`-prefixed path/glob
  20. # whose contents are loaded as facts.
  21. #
  22. # Default loads project-context.md if bmad-generate-project-context has produced one — this gives
  23. # the facilitator persistent awareness of the project's tech, domain, and constraints without
  24. # re-asking. Common opt-ins (set in team/user override TOML):
  25. # "skill:acme-co:terms-and-conditions" # a skill that contains some relevant info
  26. # "Investor PRDs must include a market sizing section." # generic agent instruction
  27. persistent_facts = [
  28. "file:{project-root}/**/project-context.md",
  29. ]
  30. # Executed when the workflow completes (after the user has been told the
  31. # PRD is ready). Accepts either a string scalar (single instruction)
  32. # or an array of instructions executed in order. Empty for none.
  33. on_complete = ""
  34. # Default PRD structure. Treated as a starting point — the LLM adapts it
  35. # to the product, project type, and domain. Override the path in team/user TOML
  36. # to enforce a different structure (e.g. regulated-industry, internal-tool, investor-input).
  37. prd_template = "assets/prd-template.md"
  38. # PRD quality rubric used at the Validate intent and at Finalize step 3.
  39. # A subagent walks the rubric against prd.md and writes a substantive review
  40. # organized by quality dimensions (decision-readiness, substance, strategic
  41. # coherence, etc.). Override the path in team/user TOML to enforce an
  42. # org-specific rubric (regulated-industry compliance, investor-pitch standards,
  43. # etc.). The filename "checklist" is retained for back-compat with override
  44. # files; the content is a judgment rubric, not a boolean checklist.
  45. validation_checklist_template = "assets/prd-validation-checklist.md"
  46. # HTML skeleton the synthesis pass fills directly when consolidating reviewer
  47. # outputs into a validation report. No substitution engine — the parent LLM
  48. # reads every {doc_workspace}/review-*.md, fills the skeleton's TEMPLATE_*
  49. # placeholders, and writes the result. Fully overridable to match org branding.
  50. # Uses inline CSS, no external dependencies, and native HTML <details> for
  51. # collapse — no JS.
  52. validation_report_template = "assets/validation-report-template.html"
  53. # Run folder location. The PRD, optional addendum, memlog, and optional
  54. # validation report all land inside `{prd_output_path}/{run_folder_pattern}/`.
  55. # Resume-check scans `{prd_output_path}` for prior unfinished runs.
  56. prd_output_path = "{planning_artifacts}/prds"
  57. run_folder_pattern = "prd-{project_name}-{date}"
  58. # Document standards applied to human-consumed docs at finalize. Each entry is
  59. # a `skill:`, `file:`, or plain-text directive; the parent LLM applies the
  60. # findings before the user sees the draft. Encodes standards, not options.
  61. #
  62. # Examples:
  63. # "skill:bmad-editorial-review-prose"
  64. # "file:{project-root}/_bmad/style-guides/company-voice.md"
  65. # "Convert all dates to ISO 8601 format."
  66. #
  67. # Suggested order (broader passes first, narrower last):
  68. # 1. Structural (cuts, reorganization, section sizing)
  69. # 2. Content/voice/conventions (org standards, tone, terminology, compliance)
  70. # 3. Prose mechanics (grammar, clarity, typos)
  71. #
  72. # Override the array in team/user TOML to add additional standards. Append-only:
  73. # base entries cannot be removed or replaced (resolver has no removal mechanism).
  74. doc_standards = [
  75. "skill:bmad-editorial-review-structure",
  76. "skill:bmad-editorial-review-prose",
  77. ]
  78. # External-source registry. Natural-language directives describing knowledge
  79. # bases, MCP tools, or internal systems the LLM may consult during the workflow
  80. # when a relevant need surfaces. The LLM does NOT query these preemptively —
  81. # it consults them on demand (during Discovery, validation, drafting, etc.).
  82. # Each entry names the tool, the conditions for using it, and any fields the
  83. # tool needs. If a named MCP tool is unavailable at runtime, the LLM falls
  84. # back to standard behavior and notes the gap. Empty by default.
  85. #
  86. # Lifecycle note: distinct from persistent_facts. persistent_facts are loaded
  87. # once at activation and kept in mind for the whole run; external_sources are
  88. # a registry consulted on demand and only when the conversation surfaces a
  89. # matching need.
  90. #
  91. # Examples (set in team/user override TOML):
  92. # "When researching internal product context, consult corp:kb_search (database='product-docs') before web search."
  93. # "For competitive landscape during Discovery, query corp:competitive_db with category={project_name}."
  94. # "When validating domain-compliance claims, cross-check against corp:hipaa_reference for healthcare or corp:pci_reference for fintech."
  95. external_sources = []
  96. # External-handoff routing. Natural-language directives the LLM applies at
  97. # Finalize to route outputs beyond local files (Confluence, Notion, Google
  98. # Drive, ticket systems, etc.). Each entry names the MCP tool, the destination,
  99. # and the fields the tool needs. Handoffs run after the artifact is polished
  100. # and before the final user-facing message. URLs or IDs returned by the
  101. # destination are captured and surfaced to the user. If a named tool is
  102. # unavailable at runtime, the handoff is skipped and flagged in the JSON
  103. # status; local files always exist regardless. Fires automatically — users
  104. # can opt out in their prompt for a specific run. Empty by default.
  105. #
  106. # Lifecycle note: distinct from persistent_facts and external_sources.
  107. # Fired once at Finalize step 6, never during Discovery or drafting.
  108. #
  109. # Examples (set in team/user override TOML):
  110. # "After finalize, upload prd.md and addendum.md to Confluence via corp:confluence_upload (space_key='PROD', parent_page='PRDs', label='prd', author={user_name})."
  111. # "Mirror the PRD to Notion via notion:create_page (database_id='abc123', title='PRD: '+{project_name})."
  112. # "When the PRD references a parent initiative, link via corp:jira_link on the epic key in frontmatter."
  113. external_handoffs = []
  114. # --- Finalize reviewers ---
  115. # Reviewers spawned at Finalize step 3 (and at the Validate intent) alongside
  116. # the structural checklist validator. The authoring skill assembles the gate
  117. # menu (validator + these reviewers + any ad-hoc reviewers it judges warranted
  118. # by the artifact content) and lets the user pick all, a subset, or skip. Gate
  119. # UX is stakes-calibrated: hobby/solo scope may run defaults quietly or skip;
  120. # higher stakes get the explicit menu.
  121. #
  122. # Entries follow the standard prefix convention (same as persistent_facts and
  123. # doc_standards):
  124. # "skill:NAME" invoke the named review skill as a subagent against prd.md
  125. # "file:PATH" load the file as a review prompt; spawn an adversarial
  126. # subagent applying that prompt to prd.md
  127. # plain text use the text directly as the subagent's review prompt
  128. #
  129. # Override TOML may append additional reviewers. Arrays append per BMad rules.
  130. #
  131. # Resolved on-demand by the authoring skill (not pulled at activation): only
  132. # when entering the Validate intent or assembling the gate at Finalize step 3.
  133. finalize_reviewers = []