From Strategy Skills
A true two-way Q&A brainstorming experience for your organisation's strategy work. Use when defining the services, deciding what a service contains, shaping how a service is delivered as a business, or setting marketing direction, and you want to think it through properly before committing. Trigger phrases include "brainstorm", "let's think through", "help me work out", "explore options", "what are our options", "ideas for", "open this up". Asks open questions the user answers in their own words, checks evidence and marks unproven claims, presents 2 to 3 visualised options only after the user has described the problem, and ends only when the user is satisfied, at which point the result is locked as trusted. Output is a lean markdown plus a Word-style HTML in the configured brainstorming folder.
How this skill is triggered — by the user, by Claude, or both
Slash command
/strategy-skills:brainstormThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Brainstorming here is a **conversation the user leads and you facilitate**. You ask questions, the user describes their thinking in their own words, you draw it out and challenge it, and together you reach a direction. You do not pick the direction and have the user rubber-stamp it. Every factual claim is checked for evidence and either confirmed, sourced from the user, or marked as lacking pro...
Brainstorming here is a conversation the user leads and you facilitate. You ask questions, the user describes their thinking in their own words, you draw it out and challenge it, and together you reach a direction. You do not pick the direction and have the user rubber-stamp it. Every factual claim is checked for evidence and either confirmed, sourced from the user, or marked as lacking proof. At decision points, after the user has described the problem, you offer 2 to 3 visualised options. The session ends ONLY when the user says they are satisfied, and at that moment the result is locked as trusted information that downstream work can rely on.
Read the shared backbone in full. It is at ${CLAUDE_PLUGIN_ROOT}/reference/shared.md, or if that variable is unset, at <paths.pluginRoot>/reference/shared.md resolved against ${CLAUDE_PROJECT_DIR}/.strategy-skills/config.json. It covers loading the config, the work stages, the stage-to-research map, the evidence discipline, the phase gate and the voice rules, all mandatory here. If .strategy-skills/config.json does not exist, stop and run the setup skill first. Read every name, folder and fact from the config, never hardcode them.
[Lacking-proof]. Say so out loud when you do.[Lacking-proof] and you do not build on it.Confirm the stage (one of the configured stages from the backbone). Then get, in the user's own words, what they want to brainstorm and why now (the purpose). If it is fuzzy, ask open questions until you can state the purpose back and the user agrees. Do not start generating until the purpose is clear.
Dispatch an Explore or general-purpose sub-agent to map the stage-relevant research and report what the corpus already says about this topic. Ask for a short brief plus exact file references, not an essay. Bring back a 3 to 5 line summary for the user. This keeps tokens down and grounds the conversation, but it does not replace asking the user.
This is the heart of the skill, and the place most likely to be rushed. Do not rush it. Ask open questions, one at a time, and let the user describe in detail. Draw out and capture, in their own words:
Keep asking until they have genuinely described it, not until you have enough to start generating. When the user states something as fact, run the evidence loop live: find it, confirm it by reading the source, ask them, or mark it [Lacking-proof]. Capture the user's own input as you go, because it goes into the output.
Reflect your understanding back as a short table or mock and have the user confirm or correct it.
Gate before diverging (hard): do not diverge until you can state, in the user's own words, the purpose, the goal, the constraints and the user's current belief. If you cannot, you have not asked enough. Ask more.
Generate a wide, varied set of options that build on what the user described, not replace it. For breadth you may fan out parallel sub-agents, each taking a different lens (first principles, customer language from the research corpus and the pain corpus, inversion, analogy to adjacent categories, constraint flip, cheapest vs most premium). Hold the raw set yourself. Do not flood the user.
Cluster the raw set and bring the user the 2 to 3 strongest directions. For each option give a one-line description, a small visual, the main tradeoff, and an evidence note. The options must visibly follow from what the user told you. Use AskUserQuestion with a preview mock per option where a side-by-side comparison helps. State your recommendation as a recommendation. The user picks, pushes back, or asks a question. Iterate until they settle.
Once a direction is chosen, ask the hard questions: what would make this fail, who disagrees, what does it cost, what are we assuming. Re-run the evidence loop on any new claims. Record gaps and every [Lacking-proof] item plainly.
Compile a short ledger: each material claim with its tag ([Research:...], [User-asserted], [Framework-inference], [Lacking-proof]). This is what makes the locked result trustworthy, because a reader can see what is proven and what is not.
Ask explicitly: "Are you satisfied to lock this brainstorm in as trusted, or do you want to keep going?" Only the user can lock it.
[Lacking-proof] items remain flagged even in a locked doc.Brainstorming is not always something the user can finish alone. Two moments call for someone else, and the tasks skill is how you reach them without losing the thread:
[Lacking-proof] and move on if a named person can actually answer it.In both cases, raise a request through the tasks helper, park that thread, and keep brainstorming the parts you can:
tasks.py request --kind input --to <colleague> --target "<the question>" --due <date> --feeds <brainstorm item>
tasks.py request --kind validate --to <colleague> --target "<the reasoning>" --due <date> --feeds <brainstorm item>
The requester (--by) defaults to the operator's identity; resolve who is operating first (tasks.py whoami, and ask if it is unknown). --feeds parks the brainstorm item as blocked so it is visible and chased. When the colleague responds (tasks.py respond ...), the item unblocks; fold their answer into the Understanding and the Evidence ledger attributed and tagged — <their input> [User-asserted: <Name>] — then resume. Their input is their assertion, not yours. If the brainstorm has no register item yet, add one first (tasks.py add ... --skill brainstorm) so there is something to feed. If the user has no tasks config or prefers not to track it, note the open dependency plainly in the artefact and keep the claim [Lacking-proof] until the answer arrives.
Keep every agent prompt tight and ask for concise structured results, to protect both context and tokens.
Reach for the lightest visual that lets the user decide:
Always pair a visual with a clear ask: "Does this match, yes or what is off?"
Folder: paths.outputs.brainstorming from the config (create it if missing). Separate from any legacy register and NOT registered in rebuild.
The document is lean, but it must clearly define the direction, the purpose and the user's input. A reader who was not in the session must be able to understand what was decided and why.
YYYY-MM-DD-<stage>-brainstorm-<topic>.md — sections, in this order, all required:
Keep each section tight. Lean means no padding, not missing the sections above.
The Word-style .html via the renderer, presentable. ${PLUGIN_ROOT} is ${CLAUDE_PLUGIN_ROOT} when set, else ${CLAUDE_PROJECT_DIR}/<paths.pluginRoot>. Write into paths.outputs.brainstorming. The renderer reads the config for brand, organisation and author, so pass only title, subtitle and status:
python "${PLUGIN_ROOT}/scripts/generate-html.py" \
"${CLAUDE_PROJECT_DIR}/<brainstorming>/YYYY-MM-DD-<stage>-brainstorm-<topic>.md" \
"${CLAUDE_PROJECT_DIR}/<brainstorming>/YYYY-MM-DD-<stage>-brainstorm-<topic>.html" \
--title "<Topic>" --subtitle "Brainstorm · <Stage>" --status "Locked / Trusted"
Use --status "Draft" until the user locks it.
input or validate request as if it were already answered, or folding their returned answer in untagged.[Lacking-proof] item forward as if it were proven.Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub base2services/strategy-skills --plugin strategy-skills