---
name: brainstorming-morphological-analysis
description: "Facilitate a Morphological Analysis session to systematically explore all parameter combinations for a complex design or decision problem. Invoke when the user needs a comprehensive mapping of solution space across multiple independent dimensions."
---

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

## When to use

Use this skill when a problem or design challenge has multiple independent parameters, each with discrete value options, and the team needs to surface non-obvious combinations. Typical triggers include:

- A product architecture decision with several orthogonal dimensions (deployment model, data storage, authentication scheme, etc.)
- A process redesign where each subprocess has multiple candidate approaches that can be mixed independently
- A vendor or technology selection where the configuration space has not been fully charted
- A sprint planning session where the team is stuck choosing between bundled options and needs to separate concerns

Do not invoke for exploratory divergent ideation with no discrete parameters; prefer Six Thinking Hats or Mind Mapping when the problem space is not yet structured enough to identify clear dimensions.

## Summon the SME

Before facilitating, load the canonical Morphological Analysis reference to ground the session in established practice.

**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.morphologicalAnalysis` 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 from any version of that page.
- If `sourcesMode` is `"offline"` or the field is absent (the default): rely on your general knowledge of Morphological Analysis as developed by Fritz Zwicky and described by the Swedish Morphological Society. Cite the canonical URL from `vendor/pm-kit/sources-index.json` at key `sources.morphologicalAnalysis` in the output. Do not fabricate quotations or page numbers.

In both cases, the URL to cite is `https://www.swemorph.com/ma.html`.

## Facilitation script

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

**Step 1 — Problem framing.** Ask the user to state the design or decision problem in one sentence. Confirm the problem has multiple independent parameters before proceeding.

**Step 2 — Identify parameters.** Ask the user to enumerate the key parameters (dimensions) of the problem. A parameter is an independent axis along which the solution can vary (e.g., "deployment model," "data persistence layer"). Aim for 3–7 parameters; warn if fewer than 3 are identified.

**Step 3 — List options per parameter.** For each parameter, ask the user to list 2–5 discrete value options. Record each parameter and its options in a table (the Morphological Box).

**Step 4 — Remove internally inconsistent combinations.** Review the matrix together. Ask whether any pair of options across different parameters is mutually exclusive or technically infeasible. Strike or flag those pairings.

**Step 5 — Select promising combinations.** Guide the user to pick 2–4 combinations that survive the consistency check and best address the project constraints. For each selected combination, record which option was chosen per parameter.

**Step 6 — Rationale.** For each selected combination, ask the user to state in one to two sentences why it is a viable or attractive candidate.

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

**Step 8 — Save the artifact.** Save the filled artifact to `docs/pm-kit/outputs/brainstorming-morphological-analysis/<short-slug>.md`. `<short-slug>` is a kebab-case ASCII slug (max 40 characters) derived from the problem statement (e.g., `auth-service-architecture`). Confirm the final path with the user before writing. If the target file already exists, ask the user whether to overwrite, append a date suffix (e.g., `-2026-04-20`), or choose a different slug. The artifact must begin with the three-line provenance header below (preserved as HTML comments so they do not render):

```
<!-- Generated by agentic-pm-kit:brainstorming-morphological-analysis 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 analysis 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.
