home / skills / jst-well-dan / skill-box / development-brainstorming

development-brainstorming skill

/no-code-builder/development-brainstorming

This skill helps turn software ideas into structured technical designs through collaborative questioning, trade-offs, and incremental validation.

npx playbooks add skill jst-well-dan/skill-box --skill development-brainstorming

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
2.7 KB
---
name: development-brainstorming
description: Use when planning software development tasks, before writing code or implementation plans - refines rough technical ideas into fully-formed designs through collaborative questioning, alternative exploration, and incremental validation. For software architecture, components, data flow, and technical design decisions. Don't use during clear 'mechanical' coding processes
author: obra
---

# Development Brainstorming: Ideas Into Technical Designs

## Overview

Help turn ideas into fully formed designs and specs through natural collaborative dialogue.

Start by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design in small sections (200-300 words), checking after each section whether it looks right so far.

## The Process

**Understanding the idea:**
- Check out the current project state first (files, docs, recent commits)
- Ask questions one at a time to refine the idea
- Prefer multiple choice questions when possible, but open-ended is fine too
- Only one question per message - if a topic needs more exploration, break it into multiple questions
- Focus on understanding: purpose, constraints, success criteria

**Exploring approaches:**
- Propose 2-3 different approaches with trade-offs
- Present options conversationally with your recommendation and reasoning
- Lead with your recommended option and explain why

**Presenting the design:**
- Once you believe you understand what you're building, present the design
- Break it into sections of 200-300 words
- Ask after each section whether it looks right so far
- Cover: architecture, components, data flow, error handling, testing
- Be ready to go back and clarify if something doesn't make sense

## After the Design

**Documentation:**
- Write the validated design to `docs/plans/YYYY-MM-DD-<topic>-design.md`
- Use elements-of-style:writing-clearly-and-concisely skill if available
- Commit the design document to git

**Implementation (if continuing):**
- Ask: "Ready to set up for implementation?"
- Use superpowers:using-git-worktrees to create isolated workspace
- Use superpowers:writing-plans to create detailed implementation plan

## Key Principles

- **One question at a time** - Don't overwhelm with multiple questions
- **Multiple choice preferred** - Easier to answer than open-ended when possible
- **YAGNI ruthlessly** - Remove unnecessary features from all designs
- **Explore alternatives** - Always propose 2-3 approaches before settling
- **Incremental validation** - Present design in sections, validate each
- **Be flexible** - Go back and clarify when something doesn't make sense

Overview

This skill refines rough technical ideas into fully formed designs through focused, collaborative dialogue. It guides discovery, proposes multiple approaches, and incrementally validates architecture, components, and data flow before any implementation begins.

How this skill works

Begin by gathering project context (files, docs, recent commits) and then ask one clarifying question at a time, preferring multiple-choice when possible. After understanding goals and constraints, present 2–3 distinct approaches with trade-offs and a recommended option. Deliver the chosen design in small 200–300 word sections and check after each section that it matches expectations.

When to use it

  • Planning system architecture, component boundaries, or data flow before coding
  • Refining ambiguous requirements into concrete technical specs
  • Deciding between multiple technology or design approaches
  • Preparing a design document or implementation plan
  • Avoid using during mechanical, line-by-line coding tasks

Best practices

  • Ask one question per message to avoid overwhelming stakeholders
  • Prefer multiple-choice questions to speed decision-making
  • Propose 2–3 alternatives and lead with a clear recommendation
  • Present designs in small validated sections, 200–300 words each
  • Apply YAGNI: omit unnecessary features and iterate only on validated needs

Example use cases

  • Designing a microservice architecture and choosing communication patterns
  • Planning a database schema and migration strategy with rollback plans
  • Evaluating authentication options and trade-offs for a web app
  • Turning product requirements into a prioritized implementation backlog
  • Creating an error-handling and testing strategy for a new subsystem

FAQ

How many approaches should I expect?

Typically 2–3 alternatives, each with clear trade-offs and a recommended choice.

What if stakeholders disagree during validation?

Pause, ask a single targeted question to surface the disagreement, then iterate on the section until consensus is reached.