Orchestrates lively group discussions between installed BMAD agents or custom personas, and helps author custom parties. Use when the user requests party mode,
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-bmad-party-mode-0e4d46ad03e0 ,按照其中的说明把「bmad-party-mode」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
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.
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).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.{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).Resolve customization: uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow.
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.{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).
Resolve core config: uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root}. From the merged JSON's core table resolve {output_folder}; {date} is today's date. Greet the user.
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.
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.
Memory. If memory_enabled (from resolve_party.py), follow references/party-memory.md for the whole run.
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.
Run each {workflow.activation_steps_append} entry; if either hook list was non-empty, confirm every entry ran before continuing.
This is the bar — strive for every one of these, every round. It's the difference between a party and a panel:
{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.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.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):
references/party-memory.md) — a top-up; memory accrued live.{date}-stamped .html into {workflow.output_dir}/, or wherever they ask.references/create-party.md (declinable; don't stall the close).{workflow.on_complete} if non-empty, then drop back to normal mode.