BMAD-METHOD/src/core-skills/bmad-brainstorming/references
Brian feab3d5e4e
bmad-brainstorming: facilitation modes, append-only memlog, and a visual session composer (#2445)
* Initial draft: brainstorming improved

* bmad-brainstorming: apply quality-analysis fixes

- Add ## Overview heading (prose was already present)
- Fix resume scan to glob output_dir/*/session.md (per-session subfolders);
  handle multiple in-progress sessions
- Anchor brain_methods to {skill-root} and always pass --file to brain.py
  (--file before subcommand); drop the unreliable conditional
- Log decisions, dismissed E3 false positive, verified tests (15 passed)

* bmad-brainstorming: memlog session memory + facilitation refinements

Replace the running-log concept with a generic, append-only memlog
(scripts/memlog.py): a flat, chronological, write-only session memory any
skill can reuse. Entries land at the end in the order they happen; --type
tags the kind (idea/insight/question/decision/technique); nothing is
grouped, reordered, or rewritten. The file is .memlog.md, read only on resume.

- scripts/memlog.py (init/append/set) + test_memlog.py (20 tests)
- SKILL.md: reordered into framing + flow; lean Memlog framing; batch
  technique model (Facilitator Chosen / Browse / Category / Inventive Flow);
  Progressive removed; facilitation stance preserved
- references/finalize.md: two-move synthesis + opt-in artifacts, each derived
  from the memlog via subagent
- references/headless.md, customize.toml: memlog wiring + per-topic folders

* bmad-brainstorming: gate technique-flow choice and stop full-catalog dumps

- brain.py: `list` now requires --category or --all; a bare `list` is refused so the full ~100-technique catalog can no longer flood context. --all is the deliberate full-dump escape hatch.
- SKILL.md: technique-flow selection is now a hard gate (present the four ways, wait for the user's pick) instead of a soft default that got skipped; Stance "no multiple-choice" rule scoped to generation, with an explicit carve-out for that one process menu.
- headless.md: use `list --all` deliberately, passing --file.
- customize.toml: fix stale "progressive flows" wording to match the four real flows.
- test_brain.py: regression tests for the list guard (bare refused, --all dumps all).

* bmad-brainstorming: remove .decision-log.md build-time artifact

The workflow-builder writes .decision-log.md to track its own build session; it is a build-time artifact, not part of the shipped skill, so it should not be committed to the project.

* bmad-brainstorming: facilitation modes, attributed memlog, and the selection composer

- Three facilitation modes chosen up front (Facilitator / Creative Partner / Ideate for me), each a loaded frame; SKILL.md routes mode + technique selection primarily through the selection page, with the in-chat menus as fallback.
- memlog: optional --by user|coach attribution (required in Creative Partner) so authorship stays visible in the log.
- brain.py: generates a self-contained "browse all" selection page (brain-selector.html) - a session composer with facilitation mode, a hand-picked + Random + Invent + AI-picks technique strategy, category toggle-chips and a category-aware filter, and a copy-to-clipboard prompt with a paste-back banner. Category-tinted cards, 13 crafted category icons, and a hand-assigned icon for each of the 100 techniques. `html` writes to a file (never dumps the catalog into context); a snapshot test keeps the shipped page in sync with the CSV.
- Drop the now-unused Six Thinking Hats detail file; the catalog needs no detail files.
- finalize.md: synthesis is mode-aware and the "hand them the mirror" step reads the by-attribution tags.

* bmad-brainstorming: fix code-review findings

memlog.py
- Parse frontmatter by the first line that is exactly `---`, so a `---` inside a
  topic/goal value no longer truncates the block, drops `status`, and breaks resume
  forever. Neutralize newlines in field values on render too.

brain.py (selector page + CLI)
- Composer: category toggles now define session scope; the text filter is a pure
  browse aid. checked() and the random pool both key off scope (offCats), so hidden
  cards are never silently copied and a stray filter term can't starve a random draw.
- Clipboard: only show the "Copied!" banner when the copy actually succeeds; on
  failure show a warning and a prefilled prompt() so the text is never lost.
- category_style: fall back to the neutral glyph instead of KeyError if the hue/glyph
  dicts ever desync.
- random: clamp -n so a negative/oversized value returns cleanly instead of crashing.
- --extra: merge a JSON overlay of additional_techniques into every command, so the
  browse page and category draws include custom techniques/categories as advertised.

docs
- SKILL.md: fix dangling `## Choosing Your Mode` anchor and the "Copy selection"
  button label; document --extra in the regen instructions.
- mode-autonomous.md: persist the mode flip when handing off from autonomous, so a
  resume restores the new stance.
- finalize.md: grammar/typo fixes (CodeRabbit).

tests
- Regression tests for the memlog `---` fix, --extra merge, negative -n, and the
  category fallback; regenerated the snapshot-tested selection page. Renamed the
  shadowing `type`/`l` locals flagged by CodeRabbit. 52 passing.

* bmad-brainstorming: composer header polish + dark mode

- Center header content (.hwrap) so it aligns with the card column on wide screens.
- Replace the text filter with jump-nav: category chips smooth-scroll to their
  section (offset for the sticky header); drop the category exclude-toggle, so
  Random/AI draw from the whole catalog.
- Fix narrow-screen crowding between the chips and the Copy prompt button.
- Move Copy prompt to the end of the Techniques row, anchored to the Total readout.
- Add a per-mode hint line that explains the selected facilitation stance.
- Dark mode: refactor all colors to CSS variables + a dark palette, with a header
  toggle (☾/☀) that defaults to system preference and persists in localStorage; an
  inline head script applies the theme before first paint to avoid a flash. Category
  hues are lifted toward white on dark surfaces to stay legible.

Regenerated the snapshot-tested selection page; SKILL.md wording updated (chips are
jump-nav, not a filter). 52 Python tests passing.

* bmad-brainstorming: condense SKILL.md, extract resume + in-chat technique frames

- Rewrite SKILL.md: consolidate framing, merge session setup into Run a
  Session, descriptive (non-imperative) Overview true across all 3 stances
  (~2,790 -> ~2,070 tokens)
- Extract Resuming to references/resume.md (loads only on resume)
- Extract in-chat technique selection to references/in-chat-techniques.md
  (loads only when the composer page is declined)
- Add HTML-open recovery guidance to the composer-page step
- Ideate-for-me now auto-produces the HTML keepsake (finalize.md +
  mode-autonomous.md) instead of asking first

* Enhance bmad-brainstorming: goal facet, proven grouping, convergence, icon sidecar

Catalog (brain-methods.csv -> 108 methods):
- Add provenance / good_for / audience columns (additive, backward-compatible)
- Add 8 researched classic methods: How Might We, Job to Be Done, Empathy Map,
  Backcasting, TRIZ Contradiction, Fishbone Diagram, Build on What Works, Scenario Cross

Selector page (brain.py generator):
- "Proven & Professional" lead group (29 named methods, cross-category)
- Super-group ordering (Structured/Creative/Wild/Introspective) replacing alphabetical
- "Great for" goal filter driven by good_for tags
- Per-category "Invent a ... technique" cards reusing the invent flow

Convergence:
- New references/converge.md (diverge -> converge -> finalize); wired into SKILL.md

Maintainability:
- Extract category + technique icons to assets/brain-icons.json; brain.py loads the
  sidecar, with logic and fallbacks staying in code (8 new icons added, full coverage)

Docs:
- Add analysis/ (catalog-analysis.md + method-matrix.csv): the 4-axis review behind these changes

All 52 tests pass.
2026-06-02 22:54:43 -05:00
..
converge.md bmad-brainstorming: facilitation modes, append-only memlog, and a visual session composer (#2445) 2026-06-02 22:54:43 -05:00
finalize.md bmad-brainstorming: facilitation modes, append-only memlog, and a visual session composer (#2445) 2026-06-02 22:54:43 -05:00
headless.md bmad-brainstorming: facilitation modes, append-only memlog, and a visual session composer (#2445) 2026-06-02 22:54:43 -05:00
in-chat-techniques.md bmad-brainstorming: facilitation modes, append-only memlog, and a visual session composer (#2445) 2026-06-02 22:54:43 -05:00
mode-autonomous.md bmad-brainstorming: facilitation modes, append-only memlog, and a visual session composer (#2445) 2026-06-02 22:54:43 -05:00
mode-facilitator.md bmad-brainstorming: facilitation modes, append-only memlog, and a visual session composer (#2445) 2026-06-02 22:54:43 -05:00
mode-partner.md bmad-brainstorming: facilitation modes, append-only memlog, and a visual session composer (#2445) 2026-06-02 22:54:43 -05:00
resume.md bmad-brainstorming: facilitation modes, append-only memlog, and a visual session composer (#2445) 2026-06-02 22:54:43 -05:00