brainstorming
Proactively use when brainstorming potential solutions to difficult problems.
When & Why to Use This Skill
The Brainstorming skill is a sophisticated framework designed to solve complex technical problems through a structured, multi-phase exploration process. It leverages autonomous subagents to validate diverse solutions using throw-away scripts, ensuring each proposal is technically sound. By focusing on comprehensive report generation and iterative feedback, it empowers users to navigate difficult architectural decisions with data-backed recommendations and clear analysis of pros and cons.
Use Cases
- Architectural Decision Making: Explore multiple system designs and compare scalability, advantages, and disadvantages before committing to a specific technology stack.
- Complex Problem Solving: Deploy subagents to test various hypotheses for deep-seated technical issues using isolated, throw-away scripts to find the most viable fix.
- Algorithm Exploration: Brainstorm and validate different algorithmic approaches to improve performance or resource efficiency in data-intensive applications.
- Feasibility Studies: Rapidly prototype and evaluate the viability of new features or integrations without impacting the main codebase, resulting in a detailed recommendation report.
| name | brainstorming |
|---|---|
| description | Proactively use when brainstorming potential solutions to difficult problems. |
Standard Operating Procedure
Phase 1: Low-Handing Fruits
- Generate 4-5 solutions
- Do not assume backward compatibility, we want to explore the full space of solutions.
- Follow the best practices below
- STOP and ASK: validate solutions with user. DO NOT move to phase 2.
- If user selects a solution, do not start implementing. Always ask the user: should we make a plan first. Then, make a plan.
Phase 2: Advanced Solutions
- Only engage in phase 2 if user wants more advances solutions.
- Do not assume backward compatibility, we want to explore the full space of solutions.
- Launch 4-5 subagents each tasked with a slightly different possible solution.
- Subagent tasks:
- Each subagents shall test their proposed solution with a throw-away script demonstrating the validity of their approach.
- Subagents shall not stop until they have a valid solution.
- Subagents shall follow the best practices found below.
- Summarize and rank each solutions
- STOP and ASK: validate solutions with user. DO NOT move to phase 3.
- If user selects a solution, do not start implementing. Always ask the user: should we make a plan first. Then, make a plan.
Phase 3: Randomized Search Over Solution Space
- Only engage in phase 3 if user wants more solutions.
- Do not assume backward compatibility, we want to explore the full space of solutions.
- Launch 4-5 subagents each tasked with the exact same ask/prompt.
- Subagent tasks:
- Each subagents shall test their proposed solution with a throw-away script demonstrating the validity of their approach.
- Subagents shall not stop until they have a valid solution.
- Subagents shall follow the best practices found below.
- Summarize and rank each solutions
- STOP and ASK: validate solutions with user. DO NOT move to phase 3.
- If user selects a solution, do not start implementing. Always ask the user: should we make a plan first. Then, make a plan.
Best Practices
Implementing a solution is not the goal, rather writing a report is.
Use the report-writing skill.
When evolving a solution, amend the existing report instead of writing a new one.
Complex solutions should be validated with throw-away scripts.
Throw-away scripts shall be written to subdirectory ,scratch. The comma prefix is not a typo.
We do not care about implementation complexity.
We do not care about level-of-effort.
Reports shall have the following structure:
# Title **Date**: **Repository**: ## Problem/Goal Statement ### Constraints ## Solutions ### Solution 1 Describe the solution works with code examples. Provide examples of how it would be used in practices. **Advantages**: - First advantage - Second advantage **Disadvantages**: - First disadvantage - Second disadvantage ### Solution 2 ## Recommendation Provide a recommendation with a short explanation of why. We do not care about recommendation matrices.