| name | brainstorming-resource-constraints |
| description | Facilitate a Resource Constraints ideation session to generate creative solutions under explicit budget, time, or capacity limitations. Invoke when the user needs to unlock innovative options in the face of a binding project constraint. |
Adapted from bmad-method:bmad-brainstorming (MIT, © 2025 BMad Code, LLC). See THIRD_PARTY_NOTICES.md.
When to use
Use this skill when a project team must generate actionable options despite one or more binding resource limits. Typical triggers include:
- A sponsor has frozen or reduced the budget mid-project and the team must re-scope deliverables
- A schedule constraint (regulatory deadline, market window, semester end date) makes the original timeline unachievable
- A key resource (team member, vendor, infrastructure) has become unavailable and alternatives must be identified
- A risk response plan requires identifying options that fit within a cost or capacity ceiling
Do not invoke for open-ended ideation with no stated constraint; prefer this skill only when at least one explicit limit is on the table and the goal is to find solutions within that limit, not to remove it.
Summon the SME
Before facilitating, load the canonical reference to ground the session in established constraint-management thinking.
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.resourceConstraints 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 constraint-based problem solving as described by Theory of Constraints literature (Goldratt, 1984) and its application in project management contexts. Cite the canonical URL from vendor/pm-kit/sources-index.json at key sources.resourceConstraints in the output. Do not fabricate quotations or page numbers.
In both cases, the URL to cite is https://en.wikipedia.org/wiki/Theory_of_constraints.
Facilitation script
Walk the user through these steps in sequence. Do not skip steps or combine them.
Step 1 — Name the constraint. Ask the user to state the binding constraint as a single, concrete, measurable sentence. Example: "The remaining budget for the delivery sprint is $8,000 and cannot be increased." Confirm the constraint is observable and quantified before proceeding.
Step 2 — Current approach inventory. Ask the user to list the approaches they were using before the constraint became binding. This establishes the baseline the team must adapt or replace.
Step 3 — Constraint-forced options. Ask: "What could we still deliver if we kept only the highest-value elements and eliminated everything else?" Capture at least three options. Prompt the team to be specific about what would be cut and what would remain.
Step 4 — Analogy prompt. Ask: "What do teams with permanently limited resources do that we have not tried?" Prompt with domains the team has not yet considered (for example: lean manufacturing, volunteer organizations, academic research projects, open-source communities). Capture the options generated.
Step 5 — Extreme-constraint thought experiment. Ask: "If the constraint were ten times tighter — if we had one-tenth the budget, one-tenth the time, or one-tenth the staff — what single action would we take?" This forces identification of the highest-leverage option. Capture the answer.
Step 6 — Option scoring. Present the full list of options gathered in steps 3–5. Ask the user to mark each option as High / Medium / Low for both feasibility within the constraint and impact on the project goal. Identify the top two or three options.
Step 7 — Action plan. For each top option, confirm: the owner (role or team), the target date or sprint, and the specific first action to take within the constraint.
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-resource-constraints/<short-slug>.md. <short-slug> is a kebab-case ASCII slug (max 40 characters) derived from the constraint statement (e.g., budget-freeze-sprint-4). 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-resource-constraints 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.