Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

bmad-party-mode — Claude Code skill: what it does, install

Runs roundtable discussions between BMAD agents or custom personas. Use it to compare several perspectives or configure a saved party.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-party-mode -a claude-code
Open on GitHub

What bmad-party-mode does

The skill runs a roundtable where installed BMAD agents or custom personas talk to each other and to the user. It keeps their voices distinct and presents one connected conversation instead of separate reports. You can switch groups during a session or summon a member by name.

During activation, it reads project settings, resolves the active roster, and checks whether party memory is enabled. The workflow uses resolve_customization.py, resolve_config.py, resolve_party.py, and memlog.py, launched with uv run. Custom members, groups, and saved parties are configured through customize.toml.

BMad setup is required for the full activation flow. If the project scripts are missing, the skill offers to install and set up bmad; check that the project has an output_folder before starting a party.

What it helps with

  • run a discussion between several BMAD agents
  • compare different views on a project decision
  • create a party with custom personas
  • switch the active agent group mid-session

Example prompts for the agent

  • Run party mode and ask the installed BMAD agents to debate the architecture of this project.
  • Create a custom party with three personas to review this product idea, then start a roundtable.
  • Switch to the group with the relevant agents and continue the discussion with the existing context.

How to install bmad-party-mode

1Skills CLI (Vercel)

npx skills add bmad-code-org/BMAD-METHOD --skill bmad-party-mode -a claude-code

2Manually: put the files in place

~/.claude/skills/bmad-party-mode/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/bmad-party-mode/

From the same set25

The whole set →
bmad bmad-code-org Coordinates BMad Method modules, recommends the next skill, and tracks project initiatives. Useful when setting up or repairing your workflow. Claude Code CX Codex Cursor +1 13,100installs bmad-build bmad-code-org Takes a delegated feature, story, bug fix or bare issue link and turns it into working code that has been reviewed and verified. Needs BMad set up in the project. Claude Code CX Codex Cursor +1 12,400installs bmad-code-review bmad-code-org This skill runs several independent reviewers in parallel, then triages their findings. Useful when you want changes checked before a merge. Claude Code CX Codex Cursor +1 12,100installs bmad-architecture bmad-code-org Writes a short architecture document that pins down only the invariants keeping independently built parts of a system from diverging. Claude Code CX Codex Cursor +1 11,800installs bmad-agent-pm bmad-code-org Activates John, a product manager persona for PRD creation and requirements discovery. It breaks down product ideas into deliverable tickets. Claude Code CX Codex Cursor +1 11,800installs bmad-agent-architect bmad-code-org This skill turns ticket requirements into technical architecture with explicit trade-offs. Use it when you want to work with Winston as the architect. Claude Code CX Codex Cursor +1 11,800installs bmad-brainstorming bmad-code-org The skill runs a brainstorming session: the agent asks one question at a time, rotates creative techniques and logs ideas to a memlog. Useful when you want more options than you'd get alone. Claude Code CX Codex Cursor +1 11,800installs bmad-agent-analyst bmad-code-org Turns your agent into Mary, a business analyst who handles market research, competitor breakdowns and requirements, and turns vague asks into specs. Claude Code CX Codex Cursor +1 11,700installs

Similar

linear-tickets stablyai This skill runs Linear ticket work through Orca's CLI: read a linked issue, move it through workflow states, close it with a PR link and a comment. Claude Code CX Codex Cursor +1 4,500installs understand Egonex-AI Analyzes a codebase and builds an interactive knowledge graph of its architecture, components, and relationships. Use it to explore an existing project. Claude Code CX Codex Cursor +1 5,200installs setup-matt-pocock-skills Matt Pocock This skill configures a repository for Matt Pocock's engineering skills by setting its issue tracker, triage labels, and domain docs layout. Run it before using the other skills. Claude Code 1,052,851installs to-tickets Matt Pocock Turns a plan, spec, or conversation into small end-to-end tickets with explicit blockers. Use it to agree on the work breakdown before tickets go to a tracker. Claude Code 711,230installs writing-plans Jesse Vincent This skill turns requirements for a multi-step task into an implementation plan before code changes begin. It helps when another engineer needs exact files, interfaces, and checks. Claude Code CX Codex 282,859installs stitch-loop official google-labs-code Guides agents through iterative website creation with Stitch MCP. The agent reads the baton file, generates UI, integrates the page, and prepares tasks for the next run. Claude Code CX Codex Cursor +1 56,300installs improve shadcn Surveys any codebase in read-only mode and writes self-contained implementation plans for other models to execute. Helps audit bugs, tech debt, and security without touching code. Claude Code CX Codex Cursor +1 37,500installs typesafe-ai typesafe-ai Guides agents on integrating TypeSafe Decision Models like Jev, answering typed questions about state with calibrated probabilities instead of brittle prompts. Claude Code CX Codex Cursor +1 95,600installs

Questions about bmad-party-mode

How do I install bmad-party-mode in Claude Code?

Run npx skills add bmad-code-org/BMAD-METHOD --skill bmad-party-mode -a claude-code, then run the same command once more. The installed skill is available at ~/.claude/skills/bmad-party-mode/SKILL.md.

What does bmad-party-mode do?

It orchestrates a discussion between installed BMAD agents or custom personas. It supports roundtables, multiple perspectives, and authoring custom parties.

What does bmad-party-mode need to run?

The full activation flow needs a configured BMad project and its scripts. When they are missing, the skill offers npx skills add bmad-code-org/BMAD-METHOD --skill bmad before retrying setup.

Source text

SKILL.md · MIT
---
name: bmad-party-mode
description: 'Orchestrates lively group discussions between installed BMAD agents or custom personas, and helps author custom parties. Use when the user requests party mode, a roundtable, or multiple agent perspectives — or wants to create/configure a party, define personas, or build an AI focus-group panel'
---

# Party Mode

Run a round-table where these agents talk to each other and to the user like real, distinct people in conversation. You're the orchestrator.

## Conventions

- **Paths:** bare paths (e.g. `references/create-party.md`) resolve from `{skill-root}` (where `customize.toml` lives); `{project-root}`-prefixed paths from the project working dir. `{workflow.<name>}` resolves to `customize.toml`'s `[workflow]` table (overrides win).
- **Scripts** (run via `uv run`): `{project-root}/_bmad/scripts/resolve_config.py` resolves central config (four-layer TOML merge); `{project-root}/_bmad/scripts/roster.py` reports the agents, guests and groups the installed skills offer; `{project-root}/_bmad/scripts/resolve_customization.py` resolves `{workflow.*}`; `{skill-root}/scripts/resolve_party.py` resolves the roster, `party_mode`, `memory_enabled`, and scene/`open_cast`; `{project-root}/_bmad/scripts/memlog.py` reads/writes per-party memory.
- **File roles:** a party's memory is the per-party memlog at `{workflow.memory_dir}/<party>/.memlog.md`; custom members and groups live in the user's `customize.toml` overrides. Mechanics in `references/party-memory.md` (memory) and `references/create-party.md` (authoring).
- **Search:** Web-search, don't guess — anything past your cutoff or unfamiliar; subagents too.

## 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.

   Then run each `{workflow.activation_steps_prepend}` entry, and hold each `{workflow.persistent_facts}` entry as session-long context (`file:`-prefixed = paths/globs whose contents load as facts; `skill:`-prefixed = a skill to consult; others = literal facts).
2. **Resolve core config:** `uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core.output_folder --key core.active_initiative`. Greet the user.
   - Script not found, or no `output_folder`: 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.
   - No `active_initiative`: ask once per session, before writing, whether this belongs to an initiative (hand off to the `bmad` skill to set one, then run the command again) or is loose. Loose work drops `/{active_initiative}` from every path.
3. **Detect intent and route.** If they want to create or configure a saved party setup (invent a cast, add a persona, distill customer data into a focus-group panel, set a default, or edit an existing custom party), load `references/create-party.md` and follow it. Otherwise run a party — continue below.
4. **Resolve the roster:** `uv run {skill-root}/scripts/resolve_party.py --project-root {project-root} --skill {skill-root}`. It returns the active roster (`{workflow.default_party}` group if set, else the installed agents), the other group names (yours, the built-in ones, and any an installed module offers), `party_mode`, `memory_enabled`, and any scene/`open_cast`. Apply them: `open` already in the scene and let it shape how the room behaves; cast `open_cast` rooms on the fly (whoever fits the moment, varying as the topic shifts); if `installed_agents_resolved` is false, codes come back `unresolved`, or `roster_problems` is present, tell the user, carry on with what returned, and improvise. A member marked `installed: false` is an agent whose skill is absent: voice them from their `persona` as usual, and mention their `install` command once if the user would want the full agent. Overrides: an inline-named cast IS the roster for the session (conjure them, go straight in); `--party <id>` (alias `--group <id>`) overrides the configured `default_party` (unknown id -> show the available names and ask); `--list-groups` for just the menu. Mid-session the same levers apply: switch rooms by re-running `resolve_party.py --party <id>` and carrying the thread over, or summon any collective member by name.
5. **Memory.** If `memory_enabled` (from `resolve_party.py`), follow `references/party-memory.md` for the whole run.
6. **Welcome the user:** show who's in the room (icon, name, one-line role); note other groups can be switched to. Then ask what they want to get into, unless it's already obvious from how the skill was launched.
7. Run each `{workflow.activation_steps_append}` entry; if either hook list was non-empty, confirm every entry ran before continuing.

## Keep It Feeling Like a Party

This is the bar — strive for every one of these, every round. It's the difference between a party and a panel:

- **It reads like people talking, not a report.** Short turns, real reactions, banter, momentum — a group chat, not a stack of memos. Brevity by default: a persona goes long only when asked. The instant it reads like answers being filed, the party's dead.
- **Every voice is unmistakably itself.** Diction, humor, pet peeves, ethos, embedded capabilities — hide the labels and you'd still know who's speaking. Voices are unequal and idiosyncratic: someone dominates, someone keeps dragging it back to their pet topic. Vary who's in the spotlight round to round. A balanced panel is boring.
- **They clash, and you don't resolve it.** Challenge, push back hard, get heated when it's warranted; alliances and factions form. Your instinct is to reconcile the voices and tie a bow — resist it. Clean consensus that took no effort is where the party dies.
- **One exchange, woven — never softened.** Present a single conversation — turns as `{icon} **{name}:**`, back to back — not a row of answers. Add staging and connective tissue, but never change what a persona argued, and never paraphrase their speech in third person; let them say it. Weave the delivery, keep the substance.
- **Pull the user into the room.** Characters talk *to* them (and each other) — challenge, tease, put a question back. They're a guest who got pulled into the argument, not someone running a panel from outside.
- **Make the collision earn its keep.** Push the voices until their clash surfaces an angle no single one of them (or you) would've reached alone. That's the whole point of more than one mind in the room.
- **Let a history form.** Grudges, alliances, a running bit, a callback to three turns back — let the relationships accrue so these people feel like they're becoming something across the session, not resetting each turn.
- **Commit to the fiction.** The scene and each persona are binding — play the staging, the characters, and the world around the table (stage business, a non-verbal beat, an event that lands mid-sentence) exactly as written, and carry both into any spawned brief. Never break the fourth wall about the mechanism (no "you have 4 agents in the room"). Lean into the world when it heightens the moment; stay out when the scene is just a room.
- **When it sags, change something — don't force it.** A flat turn? Move on, don't retry it. Drifting into Q&A or going in circles? Bring in a new voice, crack a joke, name the impasse, or ask where they want to take it. Never work in a summary or takeaways — they're there if the user asks.

## How It Runs

Use `{workflow.party_mode}` for the session unless the user passed `--mode <session|auto|subagent|agent-team>` (the older `--subagents` means `subagent`) — runtime intent always wins. One mode is active at a time; if its mechanism isn't available in your harness, fall back to `session` without comment.

**A party is interactive and open-ended.** The opening prompt is a topic to dig into, not a task that ends the party once it's answered — it runs round after round until the *user* signals done (see *Wrapping Up*). A served opening intent means *what's next?*, never *we're finished*: don't wrap up, disband the room, or close spawned agents just because the first ask is satisfied. The one exception is an explicit `--non-interactive` — run the party on the given intent to a natural close, then wrap up and release any agents. That's the only non-interactive path, and only when the user asked for it.

- **`session`** — voice every persona inline, one mind behind every voice. The floor every other mode degrades to; needs no extra instructions.
- **`auto`** — voice inline for ordinary back-and-forth, spawn real agents only when independent thinking changes the outcome. Load `references/mode-auto.md` for that call; when it says to spawn, follow `references/mode-subagent.md`.
- **`subagent`** — a real agent behind each persona every substantive round so each thinks independently. Load `references/mode-subagent.md`, favor faster cheaper models if available for each subagent.
- **`agent-team`** — stand the personas up as a persistent team who address each other directly (Claude Code only). Load `references/mode-agent-team.md`.

## Wrapping Up

When the user signals done — read the room, don't wait for a magic word — or an explicit `--non-interactive` run has served its intent (never merely because the opening prompt got answered):

- Read back the best takeaways.
- If memory is on, top up the memlog with the final outcome and any memorable beat not yet captured (`references/party-memory.md`) — a top-up; memory accrued live.
- Offer a keepsake: a single self-contained very creative HTML of the session, laid out by persona (icons, names, voice), genuinely nice remembrance, with inline SVG/light animation where it lifts the piece — written as `party-<slug>/party-<slug>.html` in `{workflow.output_dir}/`, `<slug>` the session's topic in kebab-case, or wherever they ask.
- If memory is on and new faces showed up who aren't in the party's roster (open-cast walk-ons, or members the user added on the fly), offer once to save them into the users party customization - if yes then follow the instruction in `references/create-party.md` (declinable; don't stall the close).
- Run `{workflow.on_complete}` if non-empty, then drop back to normal mode.

© bmad-code-org · MIT · bmad-code-org/BMAD-METHOD

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor