brainstorming

Explores product ideas and classifies them into spike, bounded, or architectural paths before any design work.

4|Updated Dec 1, 2025
One-click install
npx skills add https://github.com/simplyblock/simplyblock-operator --skill brainstorming-simplyblock
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: brainstorming
Source: https://github.com/simplyblock/simplyblock-operator/tree/main/.claude/skills/brainstorming
Command: npx skills add https://github.com/simplyblock/simplyblock-operator --skill brainstorming-simplyblock

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Engineering teams often jump straight into writing design documents, CRDs, or controllers before the shape of an idea is settled, producing artifacts that must be argued down instead of filled in. This Skill structures the pre-design conversation so decisions about component ownership, desired state versus one-shot operations, and live-cluster impact are made before anything is written. ## Core Features & Use Cases - Path classification: Routes every idea into spike (finding reported in chat), bounded (short design then implementing skill), or architectural (handoff to design-doc then work-plan) paths. - Three gating questions: Forces decisions on which component owns the behavior (control plane, atlas-lib, operator, or CSI driver), whether the change is desired state or a one-shot operation, and what it does to a live cluster serving I/O. - Product-specific trap detection: Names common wrong ideas such as unnecessary CRDs, blocking reconcilers, duplicated helpers, and premature parallelization, with the reasoning for why each fails. - Use Case: When asked "can we add volume rebalancing to the operator," the Skill grounds the discussion in existing code, determines the control plane owns the mechanics, and hands a settled decision to the design-doc skill instead of drafting an operator design prematurely. ## Quick Start Ask the assistant to brainstorm whether a new feature idea belongs in the operator or the control plane before writing any design document.

Frequently Asked Questions about brainstorming

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I brainstorm a feature idea before writing a design document?

Start by reading the relevant code and neighboring designs, then classify the idea as a spike, bounded change, or architectural change. Answer three questions first: which component owns the behavior, whether it is desired state or a one-shot operation, and what it does to a live cluster with data.

When should a new idea become a CRD versus a field on an existing one?

A new CRD is justified only when something watches it or references it by name. Otherwise the concept belongs as a field or nested struct, because a CRD costs a controller, RBAC rules, a chart entry, and a place in the ownership hierarchy.

How do I decide if logic belongs in the operator or the control plane?

Ask where the behavior belongs when both components are working correctly, not which one can call the other. Volume, pool, and node lifecycle mechanics belong to the control plane; the operator owns Kubernetes-shaped logic like CRDs, reconcilers, and webhooks.

What is the difference between a spike, bounded, and architectural change?

A spike answers a feasibility question and ends in a chat finding. A bounded change touches one field, flag, or reconciler and needs a two-paragraph design. An architectural change adds a CRD, controller, or cross-component contract and requires a full design document.

Why should a reconciler never wait for an operation to complete?

A waiting reconciler is a stalled controller running at concurrency one. Waiting must be modeled as state plus a requeue so the controller stays available for other work while the operation progresses.

When is it acceptable to conclude not to build an idea?

Concluding not to build is a successful brainstorm outcome when the idea's complexity outweighs its value. Narrowing the requirement or rejecting the idea is cheaper at this stage than in any later phase.