| 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.