---
name: brainstorming-reverse-brainstorming
description: "Facilitate a Reverse Brainstorming session to surface hidden risks and assumptions by deliberately ideating how to cause the problem, then inverting the results into solutions. Invoke when the user needs risk identification or creative problem-solving that conventional brainstorming has not produced."
---

> Adapted from bmad-method:bmad-brainstorming (MIT, © 2025 BMad Code, LLC). See THIRD_PARTY_NOTICES.md.

## When to use

Use this skill when a team is stuck generating positive solutions, or when risk identification needs to go beyond the obvious failure modes. Typical triggers include:

- A risk workshop has produced only well-known risks and the team suspects it is missing novel threats
- Conventional brainstorming on a persistent problem has generated no actionable ideas in two or more sessions
- A quality gate or go/no-go decision requires a more adversarial review of the plan before approval
- A post-mortem reveals a failure mode that no one imagined during planning — the team wants a technique to surface such blind spots proactively next time

Do not invoke when the goal is straightforward generative ideation; use this skill specifically when inversion of the problem is likely to unlock ideas that a positive framing would suppress.

## Summon the SME

Before facilitating, load the canonical reference to ground the session in established brainstorming methodology.

**Reading the config.** Check `.pm-kit.config.json` for the `sourcesMode` field:

- If `sourcesMode` is `"online"` (opt-in): fetch the URL stored at the key `sources.reverseBrainstorming` in `vendor/pm-kit/sources-index.json` using your available web-fetch capability. Do not name a specific tool — use whatever your runtime provides. Ground the facilitation in what you read. Do not fabricate quotations or page numbers.
- If `sourcesMode` is `"offline"` or the field is absent (the default): rely on your general knowledge of reverse brainstorming as a structured negative-ideation technique. Cite the canonical URL from `vendor/pm-kit/sources-index.json` at key `sources.reverseBrainstorming` in the output. Do not fabricate quotations or page numbers.

In both cases, the URL to cite is `https://en.wikipedia.org/wiki/Reverse_brainstorming`.

## Facilitation script

Walk the user through these steps in sequence. Do not skip steps or combine them.

**Step 1 — State the goal.** Ask the user to state the goal or outcome they want to protect in one clear sentence. Example: "We want the payment integration to go live on schedule with zero critical defects." This becomes the anchor for the inversion.

**Step 2 — Invert the goal.** Restate the goal as its opposite: "How could we guarantee the payment integration misses its date and ships with critical defects?" Present this inverted question to the team explicitly. Confirm the team understands that answers to the inverted question are the raw material, not the final output.

**Step 3 — Generate failure modes.** Ask the team to brainstorm freely: what actions, decisions, inactions, or conditions would guarantee the inverted outcome? Generate at least ten items. Silence the instinct to filter — even implausible failure modes are captured at this stage.

**Step 4 — Invert to solutions.** For each failure mode, ask: "What is the opposite of this — what action, safeguard, or decision would prevent or detect this failure?" Record the inverted item as a candidate solution or risk control.

**Step 5 — Filter for novelty.** Review the candidate solutions. Mark each as (a) already in the plan, (b) a known risk already on the register, or (c) new. Surface the "new" items to the team for discussion.

**Step 6 — Prioritize.** For each new item, ask the team to estimate the likelihood and impact of the underlying failure mode if left unaddressed. Rank the new items by priority.

**Step 7 — Action plan.** For each top-priority new item, confirm: the owner (role or team), the target date or sprint, and the specific first action (add to risk register, add to sprint backlog, update a plan section, etc.).

**Step 8 — Output.** Produce the completed analysis using the structure in `TEMPLATE.md` (sibling file). Fill every section. Leave no placeholder unfilled.

**Step 9 — Save the artifact.** Save the filled artifact to `docs/pm-kit/outputs/brainstorming-reverse-brainstorming/<short-slug>.md`. `<short-slug>` is a kebab-case ASCII slug (max 40 characters) derived from the goal statement (e.g., `payment-integration-launch`). Confirm the final path with the user before writing. If the file exists, ask: overwrite, append a date suffix (e.g., `-2026-04-20`), or pick a new slug. The artifact begins with the three-line provenance header below (HTML comments, do not render):

```
<!-- Generated by agentic-pm-kit:brainstorming-reverse-brainstorming on YYYY-MM-DD -->
<!-- Languages: communication=<value>, output=<value> -->
<!-- Source mode: offline | online -->
```

## Languages

The kit separates the language used for live agent–user dialogue from the language used in the saved artifact. Both values live in `.pm-kit.config.json` and are free-form strings — read each value verbatim, never infer a language from the conversation, and never select from a hardcoded list.

**Facilitation dialogue.** Speak to the user during facilitation in the language at `language.communication`. Use the string verbatim.

**Filled artifact (saved TEMPLATE.md output).** Produce the written artifact in the language at `language.output`. If `language.output` is absent or empty, fall back to `language.communication`.

Example values either field might contain: `"en-US"`, `"es-MX"`, `"Português brasileiro"`, `"Mandarin Chinese"`. Accept any string as given. This bifurcation is the normative pattern for every skill in the kit.

## Acceptance gate

When the session is complete, point the user to `CHECKLIST.md` (sibling file) and ask them to verify each item. Remind them that the output must be marked **PASS** or **FAIL**. On **FAIL**, invite the user to return with specific notes so the facilitation can be resumed or corrected.
