Skill Tracer
Skills › BMAD Method › bmad-advanced-elicitation

bmad-advanced-elicitation

skill · 66 lines · MIT · skills/bmad-advanced-elicitation/SKILL.md

The facts

Its description

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

The description the agent reads to decide when to use it.

From its settingsline 3

When it starts

The agent picks this skill when the user asks for a deeper critique or refinement of the most recent output, or names a known critique method such as socratic, first principles, pre-mortem, or red team. It is also loaded by other skills at natural pauses to pressure the work they just produced, and users can call it directly on anything recent.

Things a person might say (the model's guesses)

  • “Push back harder on that plan you just wrote — really stress-test it.”
  • “Run a pre-mortem on this launch plan.”
  • “Give me a socratic critique of the section you just drafted.”

A model's summary of when it is used.

A model's reading

Runs scripts

scripts/resolve_customization.py, scripts/pick_methods.py, scripts/roster.py

Scripts the text names. Found by matching words, so treat them as pointers.

Found by matching wordsline 17 line 24 line 27 line 66

Files it mentions

customize.toml, scripts/pick_methods.py

Files the text names, such as ones to read or write. Found by matching words, so treat them as pointers.

Found by matching wordsline 12 line 13 line 24

What it leads to

Other skills this one hands off to, calls, requires or offers instead, as a model read them.

A model's reading

What leads to it

Other skills that hand off to this one, call it, require it or offer it instead, as a model read them.

A model's reading

Licence

MIT, from LICENSE

The terms its author shares it under, which let it be shown here.

From the repositorylicence text
Other files in this skill (3) Close

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: bmad-advanced-elicitation
3description: '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'
4---
5
6# Advanced Elicitation
7
8You 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.
9

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.

Raw lines 1 to 9
10## Conventions
12- Bare paths (e.g. `assets/methods.csv`) resolve from `{skill-root}` (where `customize.toml` lives); `{project-root}`-prefixed paths from the project working directory.
13- `{workflow.<name>}` resolves to fields in the merged `customize.toml` `[workflow]` table.

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.
Raw lines 10 to 14
Reads a file customize.toml :12
15## On Activation
171. Resolve customization: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow`.
18 - 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.
19 - Any other failure: read `{skill-root}/customize.toml` directly and use defaults.
202. Hold every `{workflow.preferences}` entry for the whole session, fix the target, and serve the first menu.

On Activation

  1. Resolve customization: uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow.
  2. 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.
  3. Any other failure: read {skill-root}/customize.toml directly and use defaults.
  4. Hold every {workflow.preferences} entry for the whole session, fix the target, and serve the first menu.
Raw lines 15 to 21
Runs code scripts/resolve_customization.py :17
Names a skill bmad :18
22## Serving the Catalog
24`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:
26```bash
27uv run {skill-root}/scripts/pick_methods.py --file {workflow.methods_file} <command>
28```
30If `{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.
32- `categories` — category names + counts, the cheap map.
33- `list --category <cat> [--category <cat>]` — the index for chosen categories; `--all` dumps the whole catalog, only when listing all.
34- `show <name-or-num> [...]` — full rows by name or num.
35- `random -n 5 --spread [--exclude <name>]...` — a category-diverse random draw.
37**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.

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:

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.

Raw lines 22 to 38
Reads a file scripts/pick_methods.py :24
Runs code scripts/pick_methods.py :27
39## The Menu
41HALT and give the user a choice:
43- The five offered methods, listed by name. The user may pick one or several.
44- **Reshuffle** — replace the list with five new options.
45- **List all** — show the full catalog with descriptions.
46- **Proceed** — no further elicitation.
48This 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.
50- If the user picks methods: run them (several: in sequence), then offer the menu again.
51- If the user chooses **Reshuffle**: reshuffle as above and offer the menu again.
52- 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.
53- 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.
54- Any other reply is direction: apply it to the target and offer the menu again.

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.
Raw lines 39 to 55
Names a skill bmad-party-mode :48
56## Running a Method
58Use 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:
60- **Apply** — accept the proposed changes.
61- **Reject** — drop the proposal entirely.
62- Or give different direction.
64Never change the work unless the user accepts the proposal. If they reject it, drop the proposal entirely. Any other reply is instruction to follow.
66When 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.

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.

Raw lines 56 to 66
Runs code scripts/roster.py :66

From bmad-code-org/BMAD-METHOD at bd70c64, 2026-10-31. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.