framework_eng/skills/framework-meta/brainstorm/SKILL.md
Use for structured brainstorming when choosing an approach, searching for alternatives, or explicitly invoking /brainstorm. Helps unfold the hypothesis space and distill the result into 3 different viable options, fighting LLM mode collapse.
npx skillsauth add steelmorgan/1c-agent-based-dev-framework brainstormInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The goal is to expand the full solution space for the task, not to produce the first plausible idea. The skill fights the typical LLM pathology: giving a "smooth answer from the distribution mode" and losing alternatives that might turn out better.
| Trigger | Action |
|---------|--------|
| User invoked /brainstorm <topic> | Go through phases 0–5, optionally 6 |
| A request like "what's the best way to do X", "what options are there", "let's think about Y" | Offer to start /brainstorm; if agreed, go through the phases |
| Before writing a specification when the approach is not chosen | Use as preparation for Considered Options/ADR |
| In phase 1 of a full cycle (Analyst), the task allows several approaches | Run as an internal analysis step |
Six phases moving from expansion to narrowing, plus an optional seventh (external red team).
0. FRAME — what task are we actually solving?
1. AXES — along which axes can the solution differ?
2. SAMPLE — which points in this space will we examine?
3. GENERATE — formulate a hypothesis for each point
4. STRESS — what breaks it?
5. CONVERGE — three finalists, maximally different
6. EXT-RED — (optional) red team from another model family
Flexible: the choice of techniques inside each phase (5 Whys vs JTBD in FRAME, SCAMPER vs analogies in GENERATE, extremes vs Latin square in SAMPLE). This is a guide, not dogma.
Rigid: the order of the phases and the gates between them (see the next section). Skipping them is forbidden.
Brainstorm is collaborative work with the user, not an agent monologue. If the agent goes through all phases on its own and outputs the final result, that is not brainstorming, it is a presentation in disguise. The purpose of the skill is lost at that exact moment: the user does not have time to adjust the axes before hypotheses are already generated along them.
| Requirement | Description |
|-----------|----------|
| Do not dump everything in one message | It is forbidden to go through 2+ phases in a row without user feedback |
| Stop after each mandatory phase | Output the result → ask a specific question → wait for an answer before the next phase |
| Minimum 4 STOPs per session | Phase 0, Phase 1, Phase 3+4, Phase 5 are mandatory gates |
| Use AskUserQuestion for discrete gates | Choosing a finalist, adding axes from a predefined set, choosing a sampling strategy are closed questions. An open response is a normal text question |
| Ask a question, then stop | A text question without a stop is rhetorical. Do not use it as decoration for a monologue |
| After phase | What to show | What to ask | STOP | |-----------|--------------|-------------|------| | 0 FRAME | Rephrased task + success criteria + constraints | "Is the framing correct? What should be adjusted?" | ✓ required | | 1 AXES | List of axes and values | "Are all important axes present? What is missing?" | ✓ required | | 2 SAMPLE | Sampling strategy + list of points | (optional) "Add a wild point from a specific domain?" | can continue | | 3+4 GENERATE+STRESS | Hypotheses with stress tests | "Which should be developed further? What should be cut?" | ✓ required | | 5 CONVERGE | 3 finalists + recommendation | "Which one do you choose?" | ✓ required |
Phase 2 is the only optional stop: if the user has already confirmed the axes, sampling points is the agent's technical work, and it can be shown together with the start of Phase 3+4 in one block. Phases 0, 1, 3+4, 5 — STOP is required.
Before sending a message to the user, the agent checks:
If at least one item is "no", rewrite the message and trim it to the current phase.
Before generating anything, make sure we are solving the right problem.
Signal to skip the phase: the task is clear, the criteria are explicit, and the constraints are known. Even in this case, do a short check-in "I understand the task as follows, shall I continue?" before Phase 1.
Anti-pattern: jumping into idea generation without confirming that we are solving the right thing. This is the most common reason for a useless brainstorm.
[STOP] After Phase 0. Output: rephrasing + criteria + constraints. Question: "Is the framing correct? What should be adjusted?" Do not move to Phase 1 without the user's answer.
Extract 3–6 axes along which solutions can differ in principle. This is Zwicky's morphological analysis.
Anti-pattern: marketing axes ("simple vs complex", "better vs faster"). These are not axes, they are assessments.
[STOP] After Phase 1. Output: list of axes and their values. Question: "Are all important axes present? What is missing?" Do not move to Phase 2 without an answer. Generating hypotheses along unconfirmed axes means burning a round for nothing.
A full grid is rarely needed (5 axes × 3 values = 243 combinations). Choose a coverage strategy:
Default budget: 6–9 points. Fewer than 5 means we lose coverage; more than 10 means we lose attention.
It is useful to add to the selected points:
references/prompt-techniques.md → Provocation)Optional stop after Phase 2. If the user is engaged and it makes sense, ask "Add a wild point from a specific domain?" If not, move to Phase 3 without a separate message, and combine the sampling output with the hypotheses in Phase 3+4.
For each point, formulate a solution hypothesis. The main risks here are anchoring and diversity theater.
See references/prompt-techniques.md for specific generation techniques (SCAMPER, analogies, reversal, first principles).
A short pass over all hypotheses.
Anti-pattern: doing the stress test in the same role/context as the generation. The internal critic is lazy. Better to shift the frame explicitly ("now I am a skeptical investor").
[STOP] After Phase 3+4. Output: hypotheses with stress tests (can be combined with the sampling from Phase 2). Question: "Which hypotheses should be developed further? What should be cut right away?" Do not move to Phase 5 without an answer. Convergence on an unfiltered list chosen by the user means the choice is left to the user, which breaks the purpose of the skill.
The final output is three options. Not five, not one.
The final output MUST match the template in references/output-template.md — it is compatible with the Considered Options section in specifications by spec-standard.
[STOP] After Phase 5. Output: 3 finalists + recommendation + rejected branches. Question: "Which one do you choose?" — via
AskUserQuestionwith three options. Do not act on your own recommendation until the user has chosen.
For hard tasks (architectural choice, product strategy, expensive mistake) — the finalists are run through cross-provider-review in advisory mode as a critique idea.
When to apply:
When not to apply:
What to provide:
output-template.md formatThe red team result is a separate section in the final output, and does not automatically change the recommendation. The decision based on the result remains with the user.
Brainstorming on one task often goes through multiple passes. To avoid repeating rejected branches and losing axes, the skill keeps lightweight context.
| Context | Path |
|---------|------|
| Brainstorm is tied to a task in tasks/<id>/ | tasks/<id>/.context/brainstorm.md |
| Brainstorm without a task (free discussion) | .context/brainstorm-<topic-slug>.md in the current working directory |
| Universal brainstorm patterns for the project | MEMORY.md through the standard memory mechanism (if present) |
output-template format/brainstorm, check whether there is a relevant file for the task contextbrainstorm.<date>.md for archiving, do not delete itSee references/output-template.md — it is used both as the final output format and as the memory file format. Add this at the top of the file:
# Brainstorm: <topic>
**Task:** <ID or slug>
**Iteration:** <N>
**Date:** <ISO>
**Status:** in_progress | finalized | archived
| Signal | Action | |--------|--------| | All three finalists are similar | The axes were not orthogonal — go back to Phase 1 | | Cannot extract 3 axes | The task is either trivial (no brainstorm needed) or poorly framed (go back to Phase 0) | | Hypotheses come out "correct and boring" | Add an analogy from another domain or a provocation in Phase 3 | | The user says "but I meant something else" | Phase 0 was skipped or done poorly — redo the framing | | The finalists are all variants of the same thing | Convergence was done by total score instead of a diversity-aware rule | | The decision is hard and long-term | Enable Phase 6 (external red team) | | The brainstorm resumes on the same topic | Read the memory file first, then expand; do not repeat | | The agent went through 2+ mandatory phases in one message | The principle of dialogue was violated. Roll back to the point of the last real check-in with the user, apologize, and continue with gates | | The agent asked a question but in the same message already gave the answer for the next phase | The question is rhetorical — it does not count. Rewrite the message, cut it off at the question, wait for the answer | | The final result of 3 finalists was obtained without user participation at gates 0/1/3+4 | This is not brainstorming, it is a presentation. Admit the mistake, ask at which gate to roll back, and replay |
The basic dialogue rule is described in the "Principle of dialogue" section above (gate table + self-check). Here are additions on format:
AskUserQuestion instead of a text questionreferences/output-template.md), rejected branches as a list, recommendation with rationaleFor hard tasks, you can delegate phases to different agents:
This is more expensive, but yields less "diversity theater". For light tasks, one agent goes through all phases on its own.
| Skill/rule | Relation |
|---------------|-------|
| spec-standard | The final brainstorm output goes into the Considered Options/ADR section of the specification in output-template.md format |
| cross-provider-review | Used in Phase 6 (optional) for an external red team of the finalists |
| framework/workflows/full-cycle/SKILL.md | In phase 1 (Analyst), brainstorm is an internal analysis step |
| agent-context-protocol | The memory file brainstorm.md lives next to {role}-context.md in .context/ |
depends_on:
development
1C server maintenance webhooks: container restart and external component cache cleanup
development
Interactive DAP debugging of a single BSL procedure
tools
Rules for using RLM tools for project search and navigation in 1C/BSL
development
Creates web applications and routes on Winow (a web server on OneScript and Autumn). Use when working with a web server on OneScript, routing, or Winow controllers.