brainstorming
Collaborative ideation and planning with resilient multi-model exploration, consensus scoring, and adaptive confidence-based validation
What this skill does
# Brainstorming v2.0: Resilient Multi-Model Planning
Turn ideas into validated designs through collaborative AI dialogue with resilient model execution and confidence-based validation.
## Overview
This skill improves upon v1.0 by addressing critical reliability gaps:
**Key v2.0 Improvements:**
- **No AskUserQuestion dependency**: Uses Task + Tasks for structured interaction
- **Fallback chains**: 3+ models per role ensures completion even if some fail
- **Explicit parallelism**: Documented Task call patterns for parallel execution
- **Defined algorithms**: Consensus matrix and confidence scoring are mathematically specified
## When to Use
Use this skill BEFORE implementing any feature:
- "Design a user authentication system"
- "Brainstorm approaches for API rate limiting"
- "Plan architecture for a new dashboard feature"
- "Evaluate options for real-time data synchronization"
## Prerequisites
### Required Setup
```bash
# 1. Install required skills
/plugin marketplace add MadAppGang/claude-code
skill install superpowers:using-git-worktrees
skill install superpowers:writing-plans
# 2. Verify OpenRouter access (for multi-model)
export OPENROUTER_API_KEY=your-key
# 3. Configure models in ~/.claude/settings.json
{
"brainstorming": {
"primary_model": "anthropic/claude-opus-4-20250514",
"explorer_models": [
"x-ai/grok-code-fast-1",
"google/gemini-2-5-pro",
"anthropic/claude-sonnet-4-20250514"
]
}
}
```
### Model Requirements
| Role | Min Context | Capabilities |
|------|-------------|--------------|
| Primary | 200K tokens | Complex reasoning, orchestration |
| Explorer | 100K tokens | Code generation, analysis |
## Workflow
### Phase 0: Problem Analysis (200-300 words)
**Objective**: Capture problem scope, constraints, and success criteria
**How to Ask Users (Without AskUserQuestion)**:
```typescript
// Pattern: Use Tasks to track questions, Read/Write for presentation
// 1. Write question to temp file
await Write({
file_path: "/tmp/brainstorm-q1.md",
content: `## Question 1 of 3
**What are the main constraints or requirements for this feature?**
Please respond with:
- Functional requirements (what it must do)
- Non-functional requirements (performance, scale)
- Any existing dependencies or integrations
`
});
// 2. Present file and wait for user response
// User reads file, provides input via conversation
// 3. Summarize understanding
const problemSummary = await Write({
file_path: "/tmp/brainstorm-problem.md",
content: `## Problem Understanding
**Constraints identified:**
- [From user response]
**Success criteria:**
- [Measurable outcomes]
**Scope boundaries:**
- [What's in/out]
---
**Does this accurately capture the problem?** (Reply "yes" to proceed or clarify)
`
});
```
**Gate Type**: USER_GATE (requires confirmation)
---
### Phase 1: Parallel Exploration
**Objective**: Generate diverse solutions via multi-model brainstorming
**Fallback Chain Implementation**:
```typescript
interface ModelResult {
model: string;
success: boolean;
output?: string;
error?: string;
}
async function exploreWithFallback(
prompt: string,
role: "explorer"
): Promise<ModelResult> {
const fallbackModels = role === "explorer"
? ["x-ai/grok-code-fast-1", "google/gemini-2-5-pro", "deepseek/deepseek-coder"]
: ["anthropic/claude-opus-4-20250514", "anthropic/claude-sonnet-4-20250514"];
for (const model of fallbackModels) {
try {
const result = await Task({
model: model,
prompt: prompt,
timeout_ms: 120000 // 2 minute timeout
});
return { model, success: true, output: result };
} catch (error) {
console.warn(`Model ${model} failed:`, error.message);
continue; // Try next in chain
}
}
throw new Error(`All models in fallback chain failed`);
}
```
**Parallel Execution Pattern**:
```typescript
// WRONG: Sequential (slow)
// const result1 = await Task({ model: "grok", ... });
// const result2 = await Task({ model: "gemini", ... });
// const result3 = await Task({ model: "sonnet", ... });
// CORRECT: Parallel (3-5x faster)
const [result1, result2, result3] = await Promise.all([
Task({
model: "x-ai/grok-code-fast-1",
prompt: generateExplorerPrompt(problem, "fast_code")
}),
Task({
model: "google/gemini-2-5-pro",
prompt: generateExplorerPrompt(problem, "balanced")
}),
Task({
model: "anthropic/claude-sonnet-4-20250514",
prompt: generateExplorerPrompt(problem, "thorough")
})
]);
// Handle partial failures
const results = [result1, result2, result3].filter(r => r.success);
if (results.length === 0) {
throw new Error("All exploration models failed");
}
```
**Output Format**:
```markdown
## Approach: [Name]
**Model**: [Which model generated this]
**Approach Type**: [architecture/algorithm/pattern]
**Summary**: 2-3 sentences
**Key Components**:
1. Component A
2. Component B
3. Component C
**Trade-offs**:
- + Advantage
- - Disadvantage
**Confidence**: [Model's confidence 0-100]
```
**Gate Type**: AUTO_GATE (automatic consolidation)
---
### Phase 2: Consensus Analysis
**Objective**: Identify strongest ideas using defined algorithms
**Consensus Matrix Algorithm**:
1. **Clustering**: Group approaches by semantic similarity (vector embedding + clustering)
2. **Scoring**: Count model agreement per cluster
3. **Classification**: UNANIMOUS (3/3), STRONG (2/3), DIVERGENT (1/3)
4. **Confidence**: Weighted average of model confidences + agreement bonus
**Consensus Matrix Calculation**:
```typescript
interface Approach {
id: string;
name: string;
summary: string;
model: string; // Which model proposed
modelConfidence: number; // 0-100
embedding: number[]; // For clustering
}
interface Cluster {
approaches: Approach[];
representative: Approach; // Most complete
agreementScore: number; // 0-1
confidenceScore: number; // 0-100
consensusLevel: "UNANIMOUS" | "STRONG" | "DIVERGENT";
}
function calculateConsensus(approaches: Approach[]): Cluster[] {
// Step 1: Cluster by semantic similarity
const clusters = clusterByEmbedding(approaches, threshold: 0.85);
// Step 2: Calculate metrics per cluster
return clusters.map(cluster => {
const models = cluster.map(a => a.model);
const modelCount = new Set(models).size;
const totalModels = approaches.length;
// Agreement: proportion of models that have an approach in this cluster
const agreementScore = modelCount / totalModels;
// Confidence: weighted average + agreement bonus
const baseConfidence = cluster
.map(a => a.modelConfidence)
.reduce((a, b) => a + b, 0) / cluster.length;
const confidenceScore = Math.min(100,
baseConfidence + (agreementScore * 20) // +20% for agreement
);
// Consensus classification
const consensusLevel = agreementScore >= 0.9 ? "UNANIMOUS" :
agreementScore >= 0.5 ? "STRONG" :
"DIVERGENT";
return {
approaches: cluster,
representative: cluster.reduce((best, current) =>
current.modelConfidence > best.modelConfidence ? current : best
),
agreementScore,
confidenceScore: Math.round(confidenceScore),
consensusLevel
};
}).sort((a, b) => b.confidenceScore - a.confidenceScore);
}
```
**Confidence Scoring Formula**:
```
Confidence = Base + AgreementBonus - DiversityPenalty
Where:
Base = average(model confidences in cluster)
AgreementBonus = (unique_models / total_models) * 20
DiversityPenalty = (1 - similarity_coefficient) * 10
Example:
3 models propose similar approaches
Base = (92 + 88 + 95) / 3 = 91.7
AgreementBonus = (3/3) * 20 = 20
DiversityPenalty = (1 - 0.9) * 10 = 1
Confidence = 91.7 + 20 - 1 = 110.7 -> capped at 100
Final: 97%
```
**Consensus Matrix Example**:
| Approach | Grok | Gemini | Sonnet | Agreement | Confidence |
|----------|------|--------|--------|-----------|------------|
| Token BuRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.