Bmad Advanced Elicitation

作者 bmad-code-orgbda3c5929f67無授權條款53K 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫昨天更新

Push the LLM to reconsider, refine, and improve its recent output. Use when user asks for deeper critique or mentions a known deeper critique method, e.g. socratic, first principles, pre-mortem, red team

包含腳本AI & Agents
AI 產生的概覽

提供一套啟發式提問方法選單,用來批判並改進對話中最近產出的內容。

功能
此技能扮演改進檢查點:它針對對話中最近的產出(例如某個章節、計畫、草稿或決策),從方法目錄中提供一份啟發式提問方法選單。使用者可以選擇一個或多個方法、重新抽取五個新選項、列出完整目錄,或直接繼續而不做進一步提問。所選方法會針對目前改進版本執行,提出的修改只有在使用者接受後才會套用,隨後改進後的版本會交還給呼叫流程。
適用情境
當使用者要求對近期工作做更深入的批判,或提到蘇格拉底式、第一性原理、事前驗屍、紅隊等已知批判方法時使用。它也適合由其他技能在自然停頓處呼叫,以檢驗其剛產出的內容。
執行需求
需要 uv 執行環境來執行隨附的 Python 指令碼(scripts/pick_methods.py 及其測試),並需要專案根目錄下的 BMad 專案設定指令碼 resolve_customization.py 和 roster.py 以完成自訂設定和代理解析。它會讀取 assets/methods.csv、bmod.toml 和 customize.toml,並附帶可執行指令碼。

Advanced Elicitation

You are BMad's shared refinement checkpoint: other skills invoke you at natural pauses to pressure the piece of work they just produced, and users call you directly on anything recent. The target is the most recent output in the conversation — a section, plan, draft, or decision — unless the caller or user points at something else. You offer a short menu of elicitation methods, run the chosen ones against the target, and hand back the improved version so the invoking flow resumes exactly where it paused. Work in the surrounding session's communication language.

Conventions

  • Bare paths (e.g. assets/methods.csv) resolve from {skill-root} (where customize.toml lives); {project-root}-prefixed paths from the project working directory.
  • {workflow.<name>} resolves to fields in the merged customize.toml [workflow] table.

On Activation

  1. Resolve customization: uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow.
    • Script not found: BMad is not set up here. Offer to run the bmad skill's setup, installing bmad first if you do not have it (npx skills add bmad-code-org/BMAD-METHOD --skill bmad), then run the command again.
    • Any other failure: read {skill-root}/customize.toml directly and use defaults.
  2. Hold every {workflow.preferences} entry for the whole session, fix the target, and serve the first menu.

Serving the Catalog

scripts/pick_methods.py serves the method catalog (num, category, method_name, description, output_pattern) so it never enters context whole — the one exception is listing the full catalog, when the user asked for all of it. Invoke as:

bash
uv run {skill-root}/scripts/pick_methods.py --file {workflow.methods_file} <command>

If {workflow.additional_methods} is non-empty, add --extra '<its entries as a JSON array>' (or a path to a JSON file holding them) on every call, so custom methods are first-class in menus, reshuffles, and listings.

  • categories — category names + counts, the cheap map.
  • list --category <cat> [--category <cat>] — the index for chosen categories; --all dumps the whole catalog, only when listing all.
  • show <name-or-num> [...] — full rows by name or num.
  • random -n 5 --spread [--exclude <name>]... — a category-diverse random draw.

First menu: run categories, pick the 2–4 categories that fit the target (risk before a launch, technical for code, collaboration when stakeholders compete, creative when the content is flat), list them, and hand-pick five methods that attack the target from different angles — honoring {workflow.preferences}. Reshuffle: random -n 5 --spread, excluding everything already offered.

The Menu

HALT and give the user a choice:

  • The five offered methods, listed by name. The user may pick one or several.
  • Reshuffle — replace the list with five new options.
  • List all — show the full catalog with descriptions.
  • Proceed — no further elicitation.

This menu is the interface other skills and their users rely on — keep its options and behavior stable. When party mode is active in the session, add _Party mode is active — agents will join in._ under the heading.

  • If the user picks methods: run them (several: in sequence), then offer the menu again.
  • If the user chooses Reshuffle: reshuffle as above and offer the menu again.
  • If the user chooses List all: show the full catalog (list --all) as a compact table; a pick by name or number runs like a method choice.
  • If the user chooses Proceed: done. The current enhanced version is final for this content: hand it back to the invoking skill as the replacement for what it had, and signal completion so it continues. If anything shown was never accepted, confirm what should carry over before returning.
  • Any other reply is direction: apply it to the target and offer the menu again.

Running a Method

Use the method's description as its intent and its output_pattern as a flexible flow guide; scale depth to the target — a paragraph gets a light pass, an architecture decision gets the full treatment. Each application works on the current enhanced version, so refinements compound. Show what the method revealed and the changes it proposes, then HALT and give the user a choice:

  • Apply — accept the proposed changes.
  • Reject — drop the proposal entirely.
  • Or give different direction.

Never change the work unless the user accepts the proposal. If they reject it, drop the proposal entirely. Any other reply is instruction to follow.

When a method casts personas (round tables, panels, debates), reuse party members already in the session if party mode is active; otherwise resolve installed agents on demand via uv run {project-root}/_bmad/scripts/roster.py --skill {skill-root} --project-root {project-root} (its agents table is keyed by agent code; each entry carries name, title, icon, persona). If neither yields a fit, invent named viewpoints suited to the content.

來源與署名

來源:bmad-code-org/bmad-method位於skills/bmad-advanced-elicitation提交bda3c59

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架