Commit Graph

9 Commits

Author SHA1 Message Date
Brian b0b1796227
feat(party-mode): persistent per-party memory (#2484)
* feat(party-mode): add persistent per-party memory

Each party now keeps a succinct, append-only memlog (the memlog standard)
under {memory_dir}/<party>/, so a room remembers prior sessions and opens
in character carrying them forward.

- Memory accrues live: capture memorable beats as they land, with a floor
  so an abandoned session still leaves a trace; wrap-up is a top-up.
- Read distills via a reader subagent that returns only current standing
  state (latest dynamic per pair, open threads, recent callbacks) so the
  raw log never enters the party context.
- Writes are silent and fail safe: a missing or erroring memlog.py is
  skipped without breaking the fiction.
- New customize knobs: party_memory (on by default) and memory_dir.

Keyed per party (group id, or `installed` for the default room); ad-hoc
casts stay ephemeral. On-disk compaction is left to a future memlog.py pass.

* refactor(party-mode): standard structure, per-group memory, keep on-the-fly cast

- Restructure SKILL.md to the standard skill shape (intro -> Conventions ->
  On Activation -> content); consolidate all performance rules into one
  "Keep It Feeling Like a Party" section. SKILL.md ~500 tokens lighter.
- Per-group `memory` flag: global party_memory now governs only the default
  room; resolve_party.py resolves memory_enabled per active roster (default
  room -> party_memory, named group -> own flag), with tests.
- On-the-fly characters are captured as memlog entries during a session; at
  wrap-up the room offers to save them into the party via bmad-customize.
- Memory mechanics consolidated into references/party-memory.md; SKILL.md
  step 5 just routes to it.
- Docs updated.

* docs(party-mode): fix open-cast lock-down claim and python3->uv run in create-party
2026-06-20 17:44:21 -05:00
Brian 9d5739d992
Party Mode: configurable custom parties, run modes, and a rewritten explainer (#2479)
* Add configurable parties to bmad-party-mode

Party mode gains a customize.toml config surface and a guided
authoring flow, while the out-of-the-box default room is unchanged.

- customize.toml: party_members (custom personas), party_groups
  (named rooms with an optional freeform `scene`), default_party,
  and party_mode (auto/session/subagent/agent-team). Universal
  hooks wired (activation steps, persistent_facts, on_complete).
- Roster model: collective = installed agents + custom members
  (the pool, summonable by name). Default room stays installed-only
  so customs never crowd it. Groups curate subsets; open-cast groups
  (no members) are cast from the scene on the fly.
- scripts/resolve_party.py: lazy roster resolver (installed-only
  default, group menu by name, one group's detail on demand,
  alias/override merge) + unit tests.
- references/create-party.md: create/edit parties, distill personas
  from data for focus groups, persist ad-hoc casts; writes overrides
  via bmad-customize.
- Ships a "Code Review Crew" group (5 adversarial review lenses),
  available via --party but absent from the default room.

* Rework party-mode modes + rewrite the docs explainer

Skill:
- How It Runs is now a compact router; one mode active per session,
  runtime --mode wins over the customize default, all degrade to session
- Default mode is `session`; `auto`/`subagent`/`agent-team` carved to
  references/mode-*.md, loaded only when that mode is active
- Add references/mode-auto.md (spawn-vs-voice rubric), mode-subagent.md,
  mode-agent-team.md
- resolve_party.py fallback default auto -> session
- customize.toml: party_mode default session; trim duplicated mode gloss
- Trim restated script-contract prose; collapse "Following the User's Lead";
  add scene/persona-binding and web-search rules; offer an HTML keepsake
  at wrap-up

Docs:
- Full rewrite of docs/explanation/party-mode.md: the four modes, custom
  parties (personas, scenes, shapes), the shipped Code Review Crew as one
  example beside the module-based default, launch examples, party ideas,
  and the multi-group bonus tip

* Keep party energy up and route the keepsake to a config output dir

- SKILL.md: add "Keep It Feeling Like a Party" guidance so the room stays
  fun and engaging and doesn't drift into Q&A or a report
- Keepsake now writes to {workflow.output_dir}; step 2 resolves
  {output_folder} and {date}
- customize.toml: add output_dir = {output_folder}/party-mode, overridable
  in team/user TOML (matches the bmad-brainstorming output pattern)
2026-06-18 00:57:26 -05:00
Brian fae7015226
Redesign party-mode skill as conversation-first, subagents opt-in (#2441)
Reframes the party-mode skill around outcomes instead of a rigid
subagent script, addressing issue #2280.

- Voicing the room is the default; subagents become opt-in (--subagents)
  for rounds that genuinely need independent thinking.
- Removes the lossy 400-word context cap and the 'Do NOT use tools'
  constraint that drove subagents to fabricate on grounded questions.
- Adds a 'What Good Feels Like' bar: short in-character turns, real
  drama over consensus, brevity by default.
- Adds orchestrator weaving so independently-produced turns read as one
  conversation without altering what any persona actually argued.
- Slims SKILL.md from 128 to 75 lines.
2026-05-30 00:39:22 -05:00
Brian 4405b817a9
refactor(skills): remove bmad-skill-manifest yaml; introduce central config.toml (#2285)
* refactor: remove bmad-skill-manifest yaml; introduce four-layer central config.toml

- Agent essence moves from per-skill bmad-skill-manifest.yaml files
  into each module.yaml's `agents:` block (code, name, title, icon,
  description). Per-agent customize.toml remains the deep-behavior
  source of truth.
- Installer emits four TOML files:
    _bmad/config.toml              team install answers + agent roster
    _bmad/config.user.toml         user install answers
    _bmad/custom/config.toml       team overrides stub
    _bmad/custom/config.user.toml  personal overrides stub
  Prompts declare scope: user to route answers to config.user.toml.
- resolve_config.py merges four layers: base-team -> base-user ->
  custom-team -> custom-user.
- Three consumer skills (party-mode, advanced-elicitation,
  retrospective) switched from agent-manifest.csv to the resolver.
- installer.js mergeModuleHelpCatalogs now takes the in-memory
  agent list from ManifestGenerator -- no CSV roundtrip.
- Deleted: 6 bmad-skill-manifest.yaml files, agent-manifest.csv
  emission, collectAgents/getAgentsFromDirRecursive,
  paths.agentManifest().

* fix(installer): strip core-key pollution from [modules.*]; soften config headers

- writeCentralConfig now always strips core-module keys from every
  [modules.<code>] bucket, even when the module's schema is not
  available in src/ (external / marketplace modules like cis, bmb).
  Core values belong in [core] only; workflows read them directly.
- When the module's own schema IS available (built-in modules),
  also drop any key it does not declare as a prompt — same
  spread-pollution filter as before, now layered on top.
- Section-aware headers on both _bmad/config.toml and
  _bmad/config.user.toml: [core] / [modules.*] values are
  editable (installer reads them as defaults on next install);
  [agents.*] is regenerated from module.yaml and will be wiped —
  overrides for agents go in _bmad/custom/config*.toml instead.

* docs: cover central config.toml + Diataxis prose pass across three files

Document the new four-file central configuration surface (_bmad/config.toml,
config.user.toml, and custom/ overrides) alongside the existing per-skill
customize.toml. Make editing rules, scope partitioning, and when-to-use-which
guidance explicit.

- customize-bmad.md: new "Central Configuration" section with editing rules,
  three worked examples (rebrand, fictional agent, module settings override),
  and a "when to use which surface" table. Converted five h4 headers to
  bold paragraph intros per style guide.
- expand-bmad-for-your-org.md: two-layer mental model extended to three;
  new Recipe 5 with three variants (rebrand, custom crew, pinned team
  settings); reinforcement table extended.
- named-agents.md: noted the dual customization surface — per-skill shapes
  behavior, central config shapes roster identity.

Diataxis prose pass applied across all three files: banned vocabulary
check, em-dash cap, hypophora / metanoia / amplificatio / stakes-inflation
cleanup, rhythm and burstiness fixes. Structural conformance verified;
markdownlint and prettier clean.

* test+docs: add central config unit tests; fix stale recipe count

- test: two new suites (35 + 36) covering writeCentralConfig and
  ensureCustomConfigStubs. Verifies scope partitioning (user_name
  lands only in config.user.toml), core-key pollution stripping
  from [modules.*], unknown-schema fallthrough (external modules
  survive without schema), agent roster baked into config.toml
  [agents.*] only, stub-preservation on re-install. 44 new
  assertions.
- docs: fixed four stale "four recipes" references to say "five"
  after Recipe 5 (Customize the Agent Roster) was added. Touches
  frontmatter, opening paragraph, Combining Recipes paragraph,
  and the named-agents cross-link blurb.

* fix: address PR review feedback on central config

- resolve_config.py argparse: three-layer → four-layer description
- SKILL/workflow/explanation docs: document all four layers including
  _bmad/config.user.toml (was missing from merge-stack descriptions)
- customize-bmad.md + installer headers: drop the false "direct edits to
  config.toml persist" claim; installer reads from per-module config.yaml,
  not central TOML, so direct edits get clobbered. Route users to
  _bmad/custom/config.toml for durable overrides
- writeCentralConfig: warn loudly when a module.yaml can't be parsed
  (previously silent — user-scoped keys could mis-file into team config)
- writeCentralConfig: preserve [agents.*] blocks for modules that didn't
  contribute fresh agents this run (e.g. quickUpdate skipping modules
  whose source is unavailable) so the roster doesn't silently shrink
- add extractAgentBlocks helper + Test Suite 37 covering preservation

Addresses comments from augmentcode and coderabbitai on PR #2285.
2026-04-19 23:11:44 -05:00
Alex Verkhovsky 003c979dbc
chore: remove SM agent (Bob) and migrate to Developer agent (#2186)
* chore: remove SM agent (Bob) and migrate capabilities to Developer agent

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(docs): correct agent naming and grammar from review triage

Standardize Developer agent references to bmad-agent-dev (matching
installed skill directory name) and fix possessive apostrophe in
implementation-readiness workflow.

* fix(skills): replace dev team references with Developer agent

No longer a multi-agent development team — just one Developer agent.
Remove residual Scrum Master search patterns from retrospective.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 12:25:24 -07:00
Alex Verkhovsky 48c2324b28
chore: remove QA agent (Quinn) and migrate capability to Developer agent (#2179)
Delete the Quinn (bmad-agent-qa) agent wrapper and add QA test-generation
capability to Amelia (bmad-agent-dev). Update agent tables, testing docs
(EN/ZH-CN/FR), marketplace.json, party-mode, and checklist references.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 07:13:35 -07:00
PinkyD 4b1026b252
fix(party-mode): clarify solo mode and improve response presentation (#2164)
* clear up contradiction and config mispath

* fix(party-mode): clarify solo mode behavior and improve response presentation rules

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 11:25:56 -05:00
PinkyD ce9c66490a
refactor(party-mode): consolidate into single SKILL.md with real subagents (#2160)
Replace the multi-file workflow architecture (workflow.md + 3 step files)
with a self-contained SKILL.md that spawns each agent as an independent
subagent via the Agent tool. This produces genuinely diverse perspectives
instead of one LLM roleplaying multiple characters. Adds --model and
--solo flags for flexibility.
2026-03-29 01:22:34 -05:00
Brian 0380656de6
refactor: consolidate agents into phase-based skill directories (#2050)
* refactor: consolidate agents into phase-based skill directories

Remove separate agent/workflow/skill directories (src/bmm/agents,
src/bmm/workflows, src/core/skills, src/utility/agent-components) and
reorganize all content into phase-based structures under src/bmm-skills
(1-analysis, 2-plan-workflows, 3-solutioning, 4-implementation) and
src/core-skills. Eliminates the agent/skill distinction by treating
agents as skills within their workflow phase.

* fix: update broken file references to use new bmm-skills paths

* docs: update all references for unified bmad-quick-dev workflow

Remove all references to the old separate bmad-quick-spec and
bmad-quick-dev-new-preview workflows. The new bmad-quick-dev is a
unified workflow that handles intent clarification, planning,
implementation, review, and presentation in a single run.

Updated files across English docs, Chinese translations, source
skill manifests, website diagram, and build tooling.
2026-03-18 01:01:33 -05:00