bmad-advanced-elicitation — Claude Code skill: critique, setup
This skill makes an agent recheck and improve its latest output through selected critique methods. Use it for plans, decisions, and drafts.
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-advanced-elicitation -a claude-codeWhat bmad-advanced-elicitation does
bmad-advanced-elicitation works on the latest result in the session: a plan, text section, decision, or draft. It serves a menu of five methods, which can include Socratic review, first-principles analysis, a pre-mortem, and red-team critique. You choose one or more methods, then the agent reports what they exposed and proposes changes.
The skill includes scripts for selecting categories and methods. pick_methods.py builds indexes, random draws, and the full catalog. resolve_customization.py loads workflow settings, while roster.py can resolve installed personas for panel-style methods. Proposed edits are applied only after the user accepts them.
Check the BMad setup before relying on it: when resolve_customization.py is missing, the skill offers to set up bmad first. The workflow also expects uv and access to the project files because its commands run Python scripts from the BMad directories.
What it helps with
- recheck an architecture decision before implementation
- expose risks in a recent project plan
- run a pre-mortem for a planned launch
- test a draft against first principles
- revise an answer after structured critique
Example prompts for the agent
- Run a deep critique of the latest architecture decision using a pre-mortem.
- Apply a red-team review to this plan and propose changes.
- Show five suitable methods for reviewing the latest answer, but do not change it yet.
How to install bmad-advanced-elicitation
1Skills CLI (Vercel)
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-advanced-elicitation -a claude-code2Manually: put the files in place
~/.claude/skills/bmad-advanced-elicitation/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/bmad-advanced-elicitation/
1Skills CLI (Vercel)
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-advanced-elicitation -a codex2Manually: put the files in place
.agents/skills/bmad-advanced-elicitation/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-advanced-elicitation -a cursor2Manually: put the files in place
.cursor/skills/bmad-advanced-elicitation/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install bmad-code-org/BMAD-METHOD bmad-advanced-elicitation2Manually: put the files in place
.github/skills/bmad-advanced-elicitation/SKILL.md1Skills CLI (Vercel)
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-advanced-elicitation -a gemini-cli2Platform CLI
gemini skills install https://github.com/bmad-code-org/BMAD-METHOD --path skills/bmad-advanced-elicitationManually: put the files in place
.devin/skills/bmad-advanced-elicitation/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-advanced-elicitation -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set25
The whole set →Similar
Questions about bmad-advanced-elicitation
How do I install bmad-advanced-elicitation in Claude Code?
Run these steps in order: npx skills add bmad-code-org/BMAD-METHOD --skill bmad-advanced-elicitation -a claude-code, run npx skills add bmad-code-org/BMAD-METHOD --skill bmad-advanced-elicitation -a claude-code again, then check ~/.claude/skills/bmad-advanced-elicitation/SKILL.md.
What does bmad-advanced-elicitation do?
The skill offers methods for examining the latest result in a session, runs the selected methods, and presents proposed changes. It changes the work only after the user chooses Apply.
What happens when the BMad setup is missing?
The skill offers to set up bmad, then rerun the customization command. For another failure, it reads customize.toml and uses its defaults.
Source text
SKILL.md · MIT
---
name: bmad-advanced-elicitation
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'
---
# 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 · MIT · bmad-code-org/BMAD-METHOD