Skip to content

bmad-brainstorming: add Idea Selector toolbar (select/filter/export)#2558

Closed
paulpreibisch wants to merge 1 commit into
bmad-code-org:brainstorming-improvedfrom
paulpreibisch:fix/brainstorm-idea-selector-export-clean
Closed

bmad-brainstorming: add Idea Selector toolbar (select/filter/export)#2558
paulpreibisch wants to merge 1 commit into
bmad-code-org:brainstorming-improvedfrom
paulpreibisch:fix/brainstorm-idea-selector-export-clean

Conversation

@paulpreibisch

Copy link
Copy Markdown
Contributor

Why

Right now a brainstorm.html keepsake is great to read, but there's no way to act on it — reviewing a session with 50-100+ ideas means scrolling back and forth with nothing to mark your favorites with. This adds a small floating toolbar to every generated keepsake so that while someone's reviewing the brainstorm, they can tick the ideas they like, filter the page down to just their picks to sanity-check the shortlist, and export that shortlist as a markdown file to carry into whatever comes next (a PRD, a follow-up session, a team discussion).

What's in this PR

  • New asset: src/core-skills/bmad-brainstorming/assets/idea-selector-widget.html — a single self-contained <script> block, no external dependencies, self-initializing. Adds:
    • A checkbox on every idea ("Mark as selected")
    • A Selected filter pill with a live count badge — click to show only ticked ideas
    • A Clear button to reset
    • An Export button that downloads everything selected as selected-ideas.md
    • A ? help modal explaining all of the above
    • An auto-hiding top/bottom toolbar (reveals on hover near the screen edge, with a pin toggle)
  • Updates references/finalize.md so building the HTML keepsake always: (1) tags each idea-level element with a data-idea attribute as it's built, and (2) appends the widget verbatim before </body> — making this a permanent, always-on part of every keepsake rather than something dependent on a session's particular CSS class names.
  • Also documents a gotcha found while testing: if an idea element already has its own click behavior (e.g. a flip-card), that handler needs to ignore clicks landing in .bv-ctrl (the widget's injected checkbox row) so ticking the box doesn't also trigger the card's own interaction.

Test plan

  • Validated the widget's JS parses cleanly (new Function(...) over the extracted <script> block)
  • Applied it to a real brainstorm.html (5 technique sections, 83 ideas, including click-to-flip cards) and confirmed: checkboxes appear on every idea, Selected filter shows only ticked ideas with the correct count, Export downloads a correctly formatted selected-ideas.md, and clicking a checkbox on a flip card no longer also flips it
  • Maintainer review of toolbar placement/UX on a fresh session

…to the HTML keepsake

Every generated brainstorm.html now ships a self-initializing floating
toolbar: tick ideas to mark them, filter down to just the selection with
a live count, and export the picks as a markdown file. Idea-level
elements just need a data-idea attribute; the widget (assets/idea-
selector-widget.html) handles the rest with no external dependencies.
@augmentcode

augmentcode Bot commented Jul 5, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: Adds an always-on “Idea Selector” UI to generated brainstorm.html keepsakes so reviewers can shortlist ideas without manually scrolling and note-taking.

Changes:

  • Adds assets/idea-selector-widget.html: a self-contained script that injects per-idea checkboxes plus floating top/bottom toolbars.
  • Toolbar actions include: Selected filter (with live count badge), Clear, Export (downloads selected-ideas.md), and a help modal.
  • Auto-hide behavior reveals the toolbars on top/bottom edge hover, with a pin toggle to keep them visible.
  • Updates references/finalize.md to enforce a structural convention: tag each idea element with data-idea as it’s built.
  • Also updates finalize instructions to append the widget verbatim immediately before </body>, making the selector consistently available across keepsakes.
  • Documents an integration note for interactive idea elements: ignore clicks inside .bv-ctrl so checkbox clicks don’t trigger the card’s own click behavior.

Technical Notes: No external dependencies; selection state is in-memory per page load and export uses a Blob download.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 1 suggestion posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

* - Export Selected — downloads ticked ideas as a markdown file
* - Help button that opens an inline modal explaining the UI
*/
(function () {

@augmentcode augmentcode Bot Jul 5, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

src/core-skills/bmad-brainstorming/assets/idea-selector-widget.html:16 — This script initializes unconditionally; if it’s ever appended/executed twice, it will create duplicate toolbars/modals and register duplicate global listeners. Consider adding a simple initialization guard so repeated execution becomes a no-op.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

@paulpreibisch

Copy link
Copy Markdown
Contributor Author

Superseded by #2559 — replaced the fixed floating-toolbar widget with selection controls built natively into each artifact's own visual theme, plus a real export-ideas.py script instead of client-side markdown generation. Sorry for the churn — this version is a clear improvement and better fits the skill's no-template philosophy.

@paulpreibisch paulpreibisch deleted the fix/brainstorm-idea-selector-export-clean branch July 5, 2026 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant