mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-29 20:11:04 +08:00
947 lines
38 KiB
Markdown
947 lines
38 KiB
Markdown
---
|
||
name: brainstorm-with-file
|
||
description: Interactive brainstorming with documented thought evolution, multi-perspective analysis, and iterative refinement. Serial execution with no agent delegation.
|
||
argument-hint: "TOPIC=\"<idea or topic>\" [--perspectives=creative,pragmatic,systematic] [--max-ideas=<n>]"
|
||
---
|
||
|
||
# Codex Brainstorm-With-File Prompt
|
||
|
||
## Overview
|
||
|
||
Interactive brainstorming workflow with **documented thought evolution**. Expands initial ideas through questioning, inline multi-perspective analysis, and iterative refinement.
|
||
|
||
**Core workflow**: Seed Idea → Expand → Multi-Perspective Explore → Synthesize → Refine → Crystallize
|
||
|
||
**Key features**:
|
||
- **brainstorm.md**: Complete thought evolution timeline
|
||
- **Multi-perspective analysis**: Creative + Pragmatic + Systematic (serial, inline)
|
||
- **Idea expansion**: Progressive questioning and exploration
|
||
- **Diverge-Converge cycles**: Generate options then focus on best paths
|
||
|
||
## Auto Mode
|
||
|
||
When `--yes` or `-y`: Auto-confirm exploration decisions, use recommended perspectives, skip interactive scoping.
|
||
|
||
## Quick Start
|
||
|
||
```bash
|
||
# Basic usage
|
||
/codex:brainstorm-with-file TOPIC="How to improve developer onboarding experience"
|
||
|
||
# With perspective selection
|
||
/codex:brainstorm-with-file TOPIC="New caching strategy" --perspectives=creative,pragmatic,systematic
|
||
|
||
# Continue existing session
|
||
/codex:brainstorm-with-file TOPIC="caching strategy" --continue
|
||
|
||
# Auto mode (skip confirmations)
|
||
/codex:brainstorm-with-file -y TOPIC="Plugin architecture ideas"
|
||
```
|
||
|
||
## Target Topic
|
||
|
||
**$TOPIC**
|
||
|
||
## Configuration
|
||
|
||
| Flag | Default | Description |
|
||
|------|---------|-------------|
|
||
| `-y, --yes` | false | Auto-confirm all decisions |
|
||
| `--continue` | false | Continue existing session |
|
||
| `--perspectives` | creative,pragmatic,systematic | Comma-separated perspective list |
|
||
| `--max-ideas` | 15 | Maximum ideas to track |
|
||
|
||
**Session ID format**: `BS-{slug}-{YYYY-MM-DD}`
|
||
- slug: lowercase, alphanumeric + CJK characters, max 40 chars
|
||
- date: YYYY-MM-DD (UTC+8)
|
||
- Auto-detect continue: session folder + brainstorm.md exists → continue mode
|
||
|
||
## Brainstorm Flow
|
||
|
||
```
|
||
Step 0: Session Setup
|
||
├─ Parse topic, flags (--perspectives, --continue, -y)
|
||
├─ Generate session ID: BS-{slug}-{date}
|
||
└─ Create session folder (or detect existing → continue mode)
|
||
|
||
Step 1: Seed Understanding
|
||
├─ Parse topic, identify brainstorm dimensions
|
||
├─ Role/perspective selection with user (or auto)
|
||
├─ Initial scoping (mode, focus areas, constraints)
|
||
├─ Expand seed into exploration vectors
|
||
└─ Initialize brainstorm.md
|
||
|
||
Step 2: Divergent Exploration (Inline, No Agents)
|
||
├─ Detect codebase → search relevant modules, patterns
|
||
│ ├─ Run `ccw spec load --category exploration` (if spec system available)
|
||
│ └─ Use Grep, Glob, Read, mcp__ace-tool__search_context
|
||
├─ Multi-perspective analysis (serial, inline)
|
||
│ ├─ Creative perspective: innovation, cross-domain, challenge assumptions
|
||
│ ├─ Pragmatic perspective: feasibility, effort, blockers
|
||
│ └─ Systematic perspective: decomposition, patterns, scalability
|
||
├─ Aggregate findings → perspectives.json
|
||
├─ Update brainstorm.md with Round 1
|
||
└─ Initial Idea Coverage Check
|
||
|
||
Step 3: Interactive Refinement (Multi-Round, max 6)
|
||
├─ Present current ideas and perspectives
|
||
├─ Gather user feedback
|
||
├─ Process response:
|
||
│ ├─ Deep Dive → deeper inline analysis on selected ideas
|
||
│ ├─ Diverge → new inline analysis with different angles
|
||
│ ├─ Challenge → devil's advocate inline analysis
|
||
│ ├─ Merge → synthesize complementary ideas inline
|
||
│ └─ Converge → exit loop for synthesis
|
||
├─ Update brainstorm.md with round details
|
||
└─ Repeat until user selects converge or max rounds
|
||
|
||
Step 4: Convergence & Crystallization
|
||
├─ Consolidate all insights → synthesis.json
|
||
├─ Update brainstorm.md with final synthesis
|
||
├─ Interactive Top-Idea Review (per-idea confirm/modify/reject)
|
||
└─ Offer options: show next-step commands / export / done
|
||
```
|
||
|
||
## Output Artifacts
|
||
|
||
### Phase 1: Seed Understanding
|
||
|
||
| Artifact | Purpose |
|
||
|----------|---------|
|
||
| `brainstorm.md` | Initialized with session metadata, seed expansion, and exploration vectors |
|
||
| Session variables | Topic slug, brainstorm mode, dimensions, exploration vectors |
|
||
|
||
### Phase 2: Divergent Exploration
|
||
|
||
| Artifact | Purpose |
|
||
|----------|---------|
|
||
| `exploration-codebase.json` | Codebase context: relevant files, patterns, architecture constraints |
|
||
| `perspectives/*.json` | Individual perspective outputs (creative, pragmatic, systematic) |
|
||
| `perspectives.json` | Aggregated findings with synthesis (convergent/conflicting themes) |
|
||
| Updated `brainstorm.md` | Round 1: Exploration results and multi-perspective analysis |
|
||
|
||
### Phase 3: Interactive Refinement
|
||
|
||
| Artifact | Purpose |
|
||
|----------|---------|
|
||
| `ideas/{idea-slug}.md` | Deep-dive analysis for selected ideas |
|
||
| `ideas/merged-idea-{n}.md` | Merged idea documents |
|
||
| Updated `brainstorm.md` | Round 2-6: User feedback, idea selections, refinement cycles |
|
||
|
||
### Phase 4: Convergence & Crystallization
|
||
|
||
| Artifact | Purpose |
|
||
|----------|---------|
|
||
| `synthesis.json` | Final synthesis: top ideas, recommendations, insights |
|
||
| Final `brainstorm.md` | Complete thought evolution with conclusions |
|
||
|
||
---
|
||
|
||
## Recording Protocol
|
||
|
||
**CRITICAL**: During brainstorming, the following situations **MUST** trigger immediate recording to brainstorm.md:
|
||
|
||
| Trigger | What to Record | Target Section |
|
||
|---------|---------------|----------------|
|
||
| **Idea generated** | Idea content, source perspective, novelty/feasibility ratings | `#### Ideas Generated` |
|
||
| **Perspective shift** | Old framing → new framing, trigger reason | `#### Decision Log` |
|
||
| **User feedback** | User's original input, which ideas selected/rejected | `#### User Input` |
|
||
| **Assumption challenged** | Original assumption → challenge result, survivability | `#### Challenged Assumptions` |
|
||
| **Ideas merged** | Source ideas, merged concept, what was preserved/discarded | `#### Decision Log` |
|
||
| **Scope adjustment** | Before/after scope, trigger reason | `#### Decision Log` |
|
||
|
||
### Decision Record Format
|
||
|
||
```markdown
|
||
> **Decision**: [Description of the decision]
|
||
> - **Context**: [What triggered this decision]
|
||
> - **Options considered**: [Alternatives evaluated]
|
||
> - **Chosen**: [Selected approach] — **Reason**: [Rationale]
|
||
> - **Rejected**: [Why other options were discarded]
|
||
> - **Impact**: [Effect on brainstorming direction]
|
||
```
|
||
|
||
### Narrative Synthesis Format
|
||
|
||
Append after each round update:
|
||
|
||
```markdown
|
||
### Round N: Narrative Synthesis
|
||
**Starting point**: Based on previous round's [conclusions/questions], this round explored [starting point].
|
||
**Key progress**: [New ideas/findings] [confirmed/refuted/expanded] previous understanding of [topic area].
|
||
**Decision impact**: User selected [feedback type], directing brainstorming toward [adjusted/deepened/maintained].
|
||
**Current state**: After this round, top ideas are [updated idea rankings].
|
||
**Open directions**: [remaining exploration angles for next round]
|
||
```
|
||
|
||
## Implementation Details
|
||
|
||
### Phase 0: Session Initialization
|
||
|
||
```javascript
|
||
const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString()
|
||
|
||
// Parse flags
|
||
const autoYes = $ARGUMENTS.includes('--yes') || $ARGUMENTS.includes('-y')
|
||
const continueMode = $ARGUMENTS.includes('--continue')
|
||
const perspectivesMatch = $ARGUMENTS.match(/--perspectives[=\s]([\w,]+)/)
|
||
const selectedPerspectiveNames = perspectivesMatch
|
||
? perspectivesMatch[1].split(',')
|
||
: ['creative', 'pragmatic', 'systematic']
|
||
|
||
// Extract topic
|
||
const topic = $ARGUMENTS.replace(/--yes|-y|--continue|--perspectives[=\s][\w,]+|--max-ideas[=\s]\d+|TOPIC=/g, '').replace(/^["']|["']$/g, '').trim()
|
||
|
||
// Determine project root
|
||
const projectRoot = Bash('git rev-parse --show-toplevel 2>/dev/null || pwd').trim()
|
||
|
||
const slug = topic.toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, '-').substring(0, 40)
|
||
const dateStr = getUtc8ISOString().substring(0, 10)
|
||
const sessionId = `BS-${slug}-${dateStr}`
|
||
const sessionFolder = `${projectRoot}/.workflow/.brainstorm/${sessionId}`
|
||
|
||
// Auto-detect continue: session folder + brainstorm.md exists → continue mode
|
||
// If continue → load brainstorm.md + perspectives, resume from last round
|
||
Bash(`mkdir -p ${sessionFolder}`)
|
||
```
|
||
|
||
### Phase 1: Seed Understanding
|
||
|
||
**Objective**: Parse the initial idea, identify exploration vectors, scope preferences, and initialize the brainstorm document.
|
||
|
||
##### Step 1.1: Parse Seed & Identify Dimensions
|
||
|
||
Match topic keywords against brainstorm dimensions (see [Dimensions Reference](#brainstorm-dimensions)):
|
||
|
||
```javascript
|
||
// Match topic text against keyword lists from Dimensions Reference
|
||
// If multiple dimensions match, include all
|
||
// If none match, default to "technical" and "innovation"
|
||
const dimensions = identifyDimensions(topic, BRAINSTORM_DIMENSIONS)
|
||
```
|
||
|
||
##### Step 1.2: Role Selection
|
||
|
||
Recommend roles based on topic keywords, then let user confirm or override.
|
||
|
||
**Professional Roles** (recommended based on topic keywords):
|
||
|
||
| Role | Perspective Focus | Keywords |
|
||
|------|------------------|----------|
|
||
| system-architect | Architecture, patterns | 架构, architecture, system, 系统, design pattern |
|
||
| product-manager | Business value, roadmap | 产品, product, feature, 功能, roadmap |
|
||
| ui-designer | Visual design, interaction | UI, 界面, interface, visual, 视觉 |
|
||
| ux-expert | User research, usability | UX, 体验, experience, user, 用户 |
|
||
| data-architect | Data modeling, storage | 数据, data, database, 存储, storage |
|
||
| test-strategist | Quality, testing | 测试, test, quality, 质量, QA |
|
||
| subject-matter-expert | Domain knowledge | 领域, domain, industry, 行业, expert |
|
||
|
||
**Simple Perspectives** (fallback — always available):
|
||
|
||
| Perspective | Focus | Best For |
|
||
|-------------|-------|----------|
|
||
| creative | Innovation, cross-domain | Generating novel ideas |
|
||
| pragmatic | Implementation, feasibility | Reality-checking ideas |
|
||
| systematic | Architecture, structure | Organizing solutions |
|
||
|
||
**Selection Strategy**:
|
||
1. **Auto mode**: Select top 3 recommended professional roles based on keyword matching
|
||
2. **Manual mode**: Present recommended roles + "Use simple perspectives" option
|
||
3. **Continue mode**: Use roles from previous session
|
||
|
||
##### Step 1.3: Initial Scoping (New Session Only)
|
||
|
||
For new brainstorm sessions, gather user preferences before exploration (skipped in auto mode or continue mode):
|
||
|
||
```javascript
|
||
if (!autoYes && !continueMode) {
|
||
// 1. Brainstorm Mode (single-select)
|
||
const mode = request_user_input({
|
||
questions: [{
|
||
header: "Brainstorm Mode",
|
||
id: "mode",
|
||
question: "Select brainstorming intensity:",
|
||
options: [
|
||
{ label: "Creative Mode", description: "Fast, high novelty, 1 perspective" },
|
||
{ label: "Balanced Mode(Recommended)", description: "Moderate, 3 perspectives" },
|
||
{ label: "Deep Mode", description: "Comprehensive, 3 perspectives + deep refinement" }
|
||
]
|
||
}]
|
||
})
|
||
|
||
// 2. Focus Areas (multi-select)
|
||
const focusAreas = request_user_input({
|
||
questions: [{
|
||
header: "Focus Areas",
|
||
id: "focus",
|
||
question: "Select brainstorming focus:",
|
||
options: generateFocusOptions(dimensions) // Dynamic based on dimensions
|
||
}]
|
||
})
|
||
|
||
// 3. Constraints (multi-select)
|
||
const constraints = request_user_input({
|
||
questions: [{
|
||
header: "Constraints",
|
||
id: "constraints",
|
||
question: "Any constraints to consider?",
|
||
options: [
|
||
{ label: "Existing Architecture", description: "Must fit current system" },
|
||
{ label: "Time Constraints", description: "Short implementation timeline" },
|
||
{ label: "Resource Constraints", description: "Limited team/budget" },
|
||
{ label: "No Constraints", description: "Blue-sky thinking" }
|
||
]
|
||
}]
|
||
})
|
||
}
|
||
```
|
||
|
||
##### Step 1.4: Expand Seed into Exploration Vectors
|
||
|
||
Generate key questions that guide the brainstorming exploration. Done inline — no agent delegation.
|
||
|
||
**Exploration Vectors**:
|
||
1. **Core question**: What is the fundamental problem/opportunity?
|
||
2. **User perspective**: Who benefits and how?
|
||
3. **Technical angle**: What enables this technically?
|
||
4. **Alternative approaches**: What other ways could this be solved?
|
||
5. **Challenges**: What could go wrong or block success?
|
||
6. **Innovation angle**: What would make this 10x better?
|
||
7. **Integration**: How does this fit with existing systems/processes?
|
||
|
||
Analyze the topic inline against user focus areas and constraints to produce 5-7 exploration vectors.
|
||
|
||
##### Step 1.5: Initialize brainstorm.md
|
||
|
||
```javascript
|
||
const brainstormMd = `# Brainstorm Session
|
||
|
||
**Session ID**: ${sessionId}
|
||
**Topic**: ${topic}
|
||
**Started**: ${getUtc8ISOString()}
|
||
**Dimensions**: ${dimensions.join(', ')}
|
||
**Mode**: ${brainstormMode}
|
||
|
||
## Table of Contents
|
||
<!-- TOC: Auto-updated after each round/phase. -->
|
||
- [Session Context](#session-context)
|
||
- [Current Ideas](#current-ideas)
|
||
- [Thought Evolution Timeline](#thought-evolution-timeline)
|
||
|
||
## Current Ideas
|
||
<!-- REPLACEABLE BLOCK: Overwrite (not append) after each round with latest ranked ideas. -->
|
||
|
||
> To be populated after exploration.
|
||
|
||
## Session Context
|
||
- Focus areas: ${focusAreas.join(', ')}
|
||
- Perspectives: ${selectedPerspectiveNames.join(', ')}
|
||
- Constraints: ${constraints.join(', ')}
|
||
- Mode: ${brainstormMode}
|
||
|
||
## Exploration Vectors
|
||
${explorationVectors.map((v, i) => `${i+1}. ${v}`).join('\n')}
|
||
|
||
## Initial Decisions
|
||
> Record why these perspectives and focus areas were selected.
|
||
|
||
---
|
||
|
||
## Thought Evolution Timeline
|
||
|
||
> Rounds will be appended below as brainstorming progresses.
|
||
|
||
---
|
||
|
||
## Decision Trail
|
||
|
||
> Consolidated critical decisions across all rounds (populated in Phase 4).
|
||
`
|
||
Write(`${sessionFolder}/brainstorm.md`, brainstormMd)
|
||
```
|
||
|
||
**Success Criteria**:
|
||
- Session folder created with brainstorm.md initialized
|
||
- Brainstorm dimensions identified and user preferences captured
|
||
- **Initial decisions recorded**: Perspective selection rationale, excluded options with reasons
|
||
- Exploration vectors generated
|
||
- 1-3 perspectives selected
|
||
|
||
### Phase 2: Divergent Exploration
|
||
|
||
**Objective**: Gather codebase context and execute multi-perspective analysis to generate diverse viewpoints. All exploration done inline — no agent delegation.
|
||
|
||
##### Step 2.1: Detect Codebase & Explore
|
||
|
||
```javascript
|
||
const hasCodebase = Bash(`
|
||
test -f package.json && echo "nodejs" ||
|
||
test -f go.mod && echo "golang" ||
|
||
test -f Cargo.toml && echo "rust" ||
|
||
test -f pyproject.toml && echo "python" ||
|
||
test -f pom.xml && echo "java" ||
|
||
test -d src && echo "generic" ||
|
||
echo "none"
|
||
`).trim()
|
||
|
||
if (hasCodebase !== 'none') {
|
||
// 1. Read project metadata (if exists)
|
||
// - Run `ccw spec load --category exploration` (load project specs)
|
||
// - Run `ccw spec load --category debug` (known issues and root-cause notes)
|
||
// - .workflow/specs/*.md (project conventions)
|
||
|
||
// 2. Search codebase for relevant content
|
||
// Use: Grep, Glob, Read, or mcp__ace-tool__search_context
|
||
// Focus on: modules/components, patterns/structure, integration points, config/dependencies
|
||
|
||
// 3. Write findings
|
||
Write(`${sessionFolder}/exploration-codebase.json`, JSON.stringify({
|
||
project_type: hasCodebase,
|
||
relevant_files: [...], // [{path, relevance, summary}]
|
||
existing_patterns: [...], // [{pattern, files, description}]
|
||
architecture_constraints: [...], // Constraints found
|
||
integration_points: [...], // [{location, description}]
|
||
key_findings: [...], // Main insights from code search
|
||
_metadata: { timestamp: getUtc8ISOString(), exploration_scope: '...' }
|
||
}, null, 2))
|
||
}
|
||
```
|
||
|
||
##### Step 2.2: Multi-Perspective Analysis (Serial, Inline)
|
||
|
||
Analyze from each selected perspective. All analysis done inline by the AI — no agents.
|
||
|
||
**Perspective Definitions**:
|
||
|
||
| Perspective | Focus | Tasks |
|
||
|-------------|-------|-------|
|
||
| Creative | Innovation, cross-domain | Think beyond obvious, explore cross-domain inspiration, challenge assumptions, generate moonshot ideas |
|
||
| Pragmatic | Implementation reality | Evaluate feasibility, identify existing patterns/libraries, estimate complexity, highlight blockers |
|
||
| Systematic | Architecture thinking | Decompose problem, identify architectural patterns, map dependencies, consider scalability |
|
||
|
||
**Serial execution** — analyze each perspective sequentially:
|
||
|
||
```javascript
|
||
const perspectives = ['creative', 'pragmatic', 'systematic']
|
||
|
||
perspectives.forEach(perspective => {
|
||
// Analyze inline using exploration-codebase.json as context
|
||
// Generate ideas from this perspective's focus
|
||
Write(`${sessionFolder}/perspectives/${perspective}.json`, JSON.stringify({
|
||
perspective: perspective,
|
||
ideas: [ // 3-5 ideas per perspective
|
||
{ title: '...', description: '...', novelty: 1-5, feasibility: 1-5, rationale: '...' }
|
||
],
|
||
key_findings: [...],
|
||
challenged_assumptions: [...],
|
||
open_questions: [...],
|
||
_metadata: { perspective, timestamp: getUtc8ISOString() }
|
||
}, null, 2))
|
||
})
|
||
```
|
||
|
||
##### Step 2.3: Aggregate Multi-Perspective Findings
|
||
|
||
```javascript
|
||
const synthesis = {
|
||
session_id: sessionId,
|
||
timestamp: getUtc8ISOString(),
|
||
topic,
|
||
|
||
// Individual perspective findings
|
||
creative: readJson(`${sessionFolder}/perspectives/creative.json`),
|
||
pragmatic: readJson(`${sessionFolder}/perspectives/pragmatic.json`),
|
||
systematic: readJson(`${sessionFolder}/perspectives/systematic.json`),
|
||
|
||
// Cross-perspective synthesis
|
||
synthesis: {
|
||
convergent_themes: [...], // What all perspectives agree on
|
||
conflicting_views: [...], // Where perspectives differ
|
||
unique_contributions: [...] // Insights unique to specific perspectives
|
||
},
|
||
|
||
// Aggregated for refinement
|
||
aggregated_ideas: [...], // Merged and deduplicated ideas from all perspectives
|
||
key_findings: [...] // Main insights across all perspectives
|
||
}
|
||
Write(`${sessionFolder}/perspectives.json`, JSON.stringify(synthesis, null, 2))
|
||
```
|
||
|
||
##### Step 2.4: Update brainstorm.md
|
||
|
||
Append Round 1 with exploration results using the [Round Documentation Pattern](#round-documentation-pattern).
|
||
|
||
**Round 1 Sections** (Multi-Perspective Exploration):
|
||
- **Creative Perspective**: Novel ideas with novelty/impact ratings
|
||
- **Pragmatic Perspective**: Practical approaches with effort/risk ratings
|
||
- **Systematic Perspective**: Architectural options with tradeoff analysis
|
||
- **Perspective Synthesis**: Convergent themes, conflicts, unique contributions
|
||
|
||
##### Step 2.5: Initial Idea Coverage Check
|
||
|
||
```javascript
|
||
// Check exploration vectors against Round 1 findings
|
||
appendToBrainstorm(`
|
||
#### Initial Idea Coverage Check (Post-Exploration)
|
||
${explorationVectors.map((vector, i) => {
|
||
const status = assessCoverage(vector, explorationFindings)
|
||
return `- ${status.icon} Vector ${i+1}: ${vector} — ${status.detail}`
|
||
}).join('\n')}
|
||
|
||
> Next rounds will focus on uncovered and in-progress vectors.
|
||
`)
|
||
```
|
||
|
||
**Success Criteria**:
|
||
- exploration-codebase.json created with codebase context (if codebase exists)
|
||
- perspectives/*.json created for each perspective
|
||
- perspectives.json created with aggregated findings and synthesis
|
||
- brainstorm.md updated with Round 1 results
|
||
- **Initial Idea Coverage Check** completed
|
||
- **Key findings recorded** with evidence and ratings
|
||
|
||
### Phase 3: Interactive Refinement
|
||
|
||
**Objective**: Iteratively refine ideas through multi-round user-guided exploration cycles. **Max Rounds**: 6. All analysis done inline.
|
||
|
||
**Auto mode behavior** (`--yes`):
|
||
- Balanced/Deep mode: Run 2 auto-rounds (1× Deep Dive on top 2 ideas, 1× Challenge on top 3 ideas), then auto-converge
|
||
- Creative mode: Run 1 auto-round (1× Diverge), then auto-converge
|
||
- Skip user direction prompts; auto-select based on idea scores
|
||
|
||
##### Step 3.1: Present Findings & Gather User Direction
|
||
|
||
**Current Understanding Summary** (Round >= 2, BEFORE presenting new findings):
|
||
- Generate 1-2 sentence recap of top ideas and last round's direction
|
||
- Example: "Top ideas so far: [idea1], [idea2]. Last round [deepened/challenged/merged]. Here are the latest findings:"
|
||
|
||
```javascript
|
||
if (!autoYes) {
|
||
const feedback = request_user_input({
|
||
questions: [{
|
||
header: "Brainstorm Direction",
|
||
id: "direction",
|
||
question: `Brainstorm round ${round}: What would you like to do next?`,
|
||
options: [
|
||
{ label: "Deep Dive", description: "Explore selected ideas in detail" },
|
||
{ label: "Diverge More", description: "Generate more ideas from different angles" },
|
||
{ label: "Challenge", description: "Devil's advocate — test ideas critically" },
|
||
{ label: "Merge Ideas", description: "Combine complementary ideas" },
|
||
{ label: "Ready to Converge", description: "Sufficient ideas, proceed to synthesis" }
|
||
]
|
||
}]
|
||
})
|
||
}
|
||
```
|
||
|
||
##### Step 3.2: Process User Response
|
||
|
||
**Recording Checkpoint**: Regardless of option selected, MUST record to brainstorm.md:
|
||
- User's original choice and expression
|
||
- Impact on brainstorming direction
|
||
- If direction changed, record a full Decision Record
|
||
|
||
| Response | Action |
|
||
|----------|--------|
|
||
| **Deep Dive** | Ask which ideas to explore. Inline analysis: elaborate concept, identify requirements/dependencies, analyze challenges, suggest PoC approach, define success metrics. Write to `ideas/{idea-slug}.md`. |
|
||
| **Diverge More** | Inline analysis with different angles: alternative framings, cross-domain inspiration, what-if scenarios, constraint relaxation. Generate new ideas. |
|
||
| **Challenge** | Inline devil's advocate analysis: 3 strongest objections per idea, challenge assumptions, failure scenarios, competitive alternatives, survivability rating (1-5). |
|
||
| **Merge Ideas** | Ask which ideas to merge. Inline synthesis: identify complementary elements, resolve contradictions, create unified concept, preserve strengths. Write to `ideas/merged-idea-{n}.md`. |
|
||
| **Ready to Converge** | Record why concluding. Exit loop → Phase 4. |
|
||
|
||
##### Step 3.3: Deep Dive on Selected Ideas
|
||
|
||
When user selects "deep dive", provide comprehensive inline analysis:
|
||
|
||
```javascript
|
||
// For each selected idea, analyze inline
|
||
selectedIdeas.forEach(idea => {
|
||
const deepDive = {
|
||
title: idea.title,
|
||
detailed_description: '...', // Elaborated concept
|
||
technical_requirements: [...], // Implementation needs
|
||
dependencies: [...], // What this depends on
|
||
challenges: [ // Risk/challenge matrix
|
||
{ challenge: '...', severity: 'high|medium|low', mitigation: '...' }
|
||
],
|
||
poc_approach: '...', // Proof-of-concept suggestion
|
||
success_metrics: [...], // How to measure success
|
||
source_perspectives: [...] // Which perspectives contributed
|
||
}
|
||
Write(`${sessionFolder}/ideas/${ideaSlug}.md`, formatIdeaMarkdown(deepDive))
|
||
})
|
||
```
|
||
|
||
##### Step 3.4: Devil's Advocate Challenge
|
||
|
||
When user selects "challenge", perform inline critical analysis:
|
||
|
||
```javascript
|
||
selectedIdeas.forEach(idea => {
|
||
const challenge = {
|
||
idea: idea.title,
|
||
objections: [...], // 3+ strongest objections
|
||
challenged_assumptions: [...], // Core assumptions tested
|
||
failure_scenarios: [...], // When/how this fails
|
||
alternatives: [...], // Competitive/alternative solutions
|
||
survivability_rating: 1-5, // How well idea survives challenge
|
||
strengthened_version: '...' // Improved version post-challenge
|
||
}
|
||
// Record in brainstorm.md
|
||
})
|
||
```
|
||
|
||
##### Step 3.5: Merge Multiple Ideas
|
||
|
||
When user selects "merge", synthesize inline:
|
||
|
||
```javascript
|
||
const merged = {
|
||
title: '...', // New merged concept name
|
||
description: '...', // Unified concept description
|
||
source_ideas: [...], // Which ideas were merged
|
||
elements_from_each: [...], // What was taken from each source
|
||
contradictions_resolved: [...], // How conflicts were handled
|
||
combined_strengths: [...], // New combined advantages
|
||
implementation_considerations: '...'
|
||
}
|
||
Write(`${sessionFolder}/ideas/merged-idea-${n}.md`, formatMergedIdeaMarkdown(merged))
|
||
```
|
||
|
||
##### Step 3.6: Document Each Round
|
||
|
||
Update brainstorm.md using the [Round Documentation Pattern](#round-documentation-pattern).
|
||
|
||
**Append** to Thought Evolution Timeline: User Direction, Decision Log, Ideas Generated/Updated, Analysis Results, Challenged Assumptions, Open Items, Narrative Synthesis.
|
||
|
||
**Replace** (not append):
|
||
|
||
| Section | Update Rule |
|
||
|---------|-------------|
|
||
| `## Current Ideas` | Overwrite with latest ranked idea list |
|
||
| `## Table of Contents` | Update links to include new Round N sections |
|
||
|
||
**Success Criteria**:
|
||
- User feedback processed for each round
|
||
- brainstorm.md updated with all refinement rounds
|
||
- Ideas in `ideas/` folder for selected deep-dives
|
||
- Exit condition reached (user selects converge or max rounds)
|
||
|
||
### Phase 4: Convergence & Crystallization
|
||
|
||
**Objective**: Synthesize final ideas, generate conclusions and recommendations, and offer next steps.
|
||
|
||
##### Step 4.1: Consolidate Insights
|
||
|
||
```javascript
|
||
const synthesis = {
|
||
session_id: sessionId,
|
||
topic,
|
||
completed: getUtc8ISOString(),
|
||
total_rounds: roundCount,
|
||
top_ideas: [ // Top 5 ranked ideas
|
||
{
|
||
title: '...', description: '...',
|
||
source_perspective: '...',
|
||
score: 1-10, // Final viability score
|
||
novelty: 1-5, // Innovation rating
|
||
feasibility: 1-5, // Implementation feasibility
|
||
key_strengths: [...],
|
||
main_challenges: [...],
|
||
next_steps: [...],
|
||
review_status: 'accepted|modified|rejected|pending'
|
||
}
|
||
],
|
||
parked_ideas: [...], // Ideas for future consideration
|
||
key_insights: [...], // Key learnings from brainstorming
|
||
recommendations: {
|
||
primary: '...', // Best path forward
|
||
alternatives: [...] // Other viable options
|
||
},
|
||
follow_up: [ // Suggested next steps
|
||
{ type: 'implement|research|validate', summary: '...' }
|
||
],
|
||
decision_trail: [ // Consolidated from all phases
|
||
{ round: 1, decision: '...', context: '...', chosen: '...', reason: '...', impact: '...' }
|
||
]
|
||
}
|
||
Write(`${sessionFolder}/synthesis.json`, JSON.stringify(synthesis, null, 2))
|
||
```
|
||
|
||
##### Step 4.2: Final brainstorm.md Update
|
||
|
||
**Synthesis & Conclusions**:
|
||
- **Executive Summary**: High-level overview of brainstorming results
|
||
- **Top Ideas**: Ranked list with descriptions and strengths/challenges
|
||
- **Primary Recommendation**: Best path forward with clear rationale
|
||
- **Alternative Approaches**: Other viable options with tradeoff analysis
|
||
- **Parked Ideas**: Future considerations with potential triggers
|
||
- **Key Insights**: Important learnings from the process
|
||
|
||
**Current Ideas (Final)**:
|
||
|
||
| Subsection | Content |
|
||
|------------|---------|
|
||
| Top Ideas | Ranked by score with strengths/challenges |
|
||
| Idea Evolution | How top ideas developed across rounds |
|
||
| Key Insights | Valuable learnings for future reference |
|
||
|
||
**Decision Trail**:
|
||
|
||
| Subsection | Content |
|
||
|------------|---------|
|
||
| Critical Decisions | Pivotal decisions that shaped the outcome |
|
||
| Direction Changes | Timeline of scope/focus adjustments with rationale |
|
||
| Trade-offs Made | Key trade-offs and why certain paths were chosen |
|
||
|
||
**Session Statistics**: Total rounds, ideas generated, ideas survived challenges, perspectives used, artifacts generated.
|
||
|
||
##### Step 4.3: Interactive Top-Idea Review (skip in auto mode)
|
||
|
||
Walk through top ideas one-by-one (ordered by score):
|
||
|
||
```javascript
|
||
for (const [index, idea] of rankedIdeas.entries()) {
|
||
const review = request_user_input({
|
||
questions: [{
|
||
header: `Idea #${index + 1}`,
|
||
id: `idea_${index + 1}`,
|
||
question: `Idea #${index + 1}: "${idea.title}" (score: ${idea.score}, novelty: ${idea.novelty}, feasibility: ${idea.feasibility}). Your decision:`,
|
||
options: [
|
||
{ label: "Accept(Recommended)", description: "Keep this idea in final recommendations" },
|
||
{ label: "Modify", description: "Adjust scope, description, or priority" },
|
||
{ label: "Reject", description: "Remove from final recommendations" }
|
||
]
|
||
}]
|
||
})
|
||
// Accept → "accepted" | Modify → gather text → "modified" | Reject → gather reason → "rejected"
|
||
// Accept All Remaining → mark all remaining as "accepted", break loop
|
||
// Record review decision to brainstorm.md Decision Log + update synthesis.json
|
||
}
|
||
```
|
||
|
||
**Review Summary** (append to brainstorm.md):
|
||
```markdown
|
||
### Top Idea Review Summary
|
||
| # | Idea | Score | Novelty | Feasibility | Review Status | Notes |
|
||
|---|------|-------|---------|-------------|---------------|-------|
|
||
| 1 | [title] | 8 | 4 | 3 | Accepted | |
|
||
| 2 | [title] | 7 | 5 | 2 | Modified | [notes] |
|
||
| 3 | [title] | 6 | 3 | 4 | Rejected | [reason] |
|
||
```
|
||
|
||
##### Step 4.4: Post-Completion Options
|
||
|
||
**Available Options** (this skill is brainstorming-only — NEVER auto-launch other skills):
|
||
|
||
| Option | Purpose | Action |
|
||
|--------|---------|--------|
|
||
| **Show Next-Step Commands** | Show available commands | Display command list for user to manually run |
|
||
| **Export Report** | Generate shareable report | Create formatted report document |
|
||
| **Done** | No further action | End workflow |
|
||
|
||
**Next-step commands to display** (user runs manually, NOT auto-launched):
|
||
- `/workflow-lite-plan "..."` → Generate implementation plan
|
||
- `/issue:new "..."` → Track top ideas as issues
|
||
- `/workflow:analyze-with-file "..."` → Analyze top idea in detail
|
||
|
||
**Success Criteria**:
|
||
- synthesis.json created with complete synthesis
|
||
- brainstorm.md finalized with all conclusions
|
||
- User offered meaningful next step options
|
||
- Session complete and all artifacts available
|
||
|
||
## Templates
|
||
|
||
### Round Documentation Pattern
|
||
|
||
Each round follows this structure in brainstorm.md:
|
||
|
||
```markdown
|
||
### Round N - [DeepDive|Diverge|Challenge|Merge] (timestamp)
|
||
|
||
#### User Input
|
||
What the user indicated they wanted to focus on
|
||
|
||
#### Decision Log
|
||
<!-- Use Decision Record Format from Recording Protocol -->
|
||
|
||
#### Ideas Generated
|
||
New ideas from this round with ratings
|
||
|
||
#### Analysis Results
|
||
Detailed findings from this round's analysis
|
||
- Finding 1 (evidence: file:line or rationale)
|
||
- Finding 2 (evidence: file:line or rationale)
|
||
|
||
#### Challenged Assumptions
|
||
- ~~Previous assumption~~ → New understanding
|
||
- Reason: Why the assumption was wrong
|
||
|
||
#### Open Items
|
||
Remaining questions or exploration directions
|
||
|
||
#### Narrative Synthesis
|
||
<!-- Use Narrative Synthesis Format from Recording Protocol -->
|
||
```
|
||
|
||
### brainstorm.md Evolution Summary
|
||
|
||
- **Header**: Session ID, topic, start time, dimensions, mode
|
||
- **Session Context**: Focus areas, perspectives, constraints
|
||
- **Exploration Vectors**: Key questions guiding exploration
|
||
- **Initial Decisions**: Why these perspectives and focus areas were selected
|
||
- **Thought Evolution Timeline**: Round-by-round findings
|
||
- Round 1: Exploration Results + Decision Log + Narrative Synthesis
|
||
- Round 2-N: Current Ideas Summary + User feedback + direction adjustments + new ideas + Decision Log + Narrative Synthesis
|
||
- **Decision Trail**: Consolidated critical decisions across all rounds
|
||
- **Synthesis & Conclusions**: Summary, top ideas, recommendations
|
||
- **Current Ideas (Final)**: Consolidated ranked ideas
|
||
- **Session Statistics**: Rounds completed, ideas generated, artifacts produced
|
||
|
||
## Reference
|
||
|
||
### Output Structure
|
||
|
||
```
|
||
{projectRoot}/.workflow/.brainstorm/BS-{slug}-{date}/
|
||
├── brainstorm.md # Complete thought evolution timeline
|
||
├── exploration-codebase.json # Phase 2: Codebase context
|
||
├── perspectives/ # Phase 2: Individual perspective outputs
|
||
│ ├── creative.json
|
||
│ ├── pragmatic.json
|
||
│ └── systematic.json
|
||
├── perspectives.json # Phase 2: Aggregated findings with synthesis
|
||
├── synthesis.json # Phase 4: Final synthesis
|
||
└── ideas/ # Phase 3: Individual idea deep-dives
|
||
├── idea-1.md
|
||
├── idea-2.md
|
||
└── merged-idea-1.md
|
||
```
|
||
|
||
| File | Phase | Description |
|
||
|------|-------|-------------|
|
||
| `brainstorm.md` | 1-4 | Session metadata → thought evolution → conclusions |
|
||
| `exploration-codebase.json` | 2 | Codebase context: relevant files, patterns, constraints |
|
||
| `perspectives/*.json` | 2 | Per-perspective idea generation results |
|
||
| `perspectives.json` | 2 | Aggregated findings with cross-perspective synthesis |
|
||
| `ideas/*.md` | 3 | Individual idea deep-dives and merged ideas |
|
||
| `synthesis.json` | 4 | Final synthesis: top ideas, recommendations, insights |
|
||
|
||
### Brainstorm Dimensions
|
||
|
||
| Dimension | Keywords | Description |
|
||
|-----------|----------|-------------|
|
||
| technical | 技术, technical, implementation, code, 实现, architecture | Implementation approaches |
|
||
| ux | 用户, user, experience, UX, UI, 体验, interaction | User-facing design ideas |
|
||
| business | 业务, business, value, ROI, 价值, market | Business model innovations |
|
||
| innovation | 创新, innovation, novel, creative, 新颖 | Breakthrough ideas |
|
||
| feasibility | 可行, feasible, practical, realistic, 实际 | Realistic approaches |
|
||
| scalability | 扩展, scale, growth, performance, 性能 | Large-scale solutions |
|
||
| security | 安全, security, risk, protection, 风险 | Security considerations |
|
||
|
||
### Brainstorm Perspectives
|
||
|
||
| Perspective | Focus | Best For |
|
||
|-------------|-------|----------|
|
||
| **Creative** | Innovation, cross-domain inspiration, challenging assumptions | Generating novel and surprising ideas |
|
||
| **Pragmatic** | Implementation feasibility, effort estimates, blockers | Reality-checking ideas |
|
||
| **Systematic** | Problem decomposition, patterns, scalability, architecture | Organizing and structuring solutions |
|
||
|
||
### Brainstorm Modes
|
||
|
||
| Mode | Intensity | Perspectives | Description |
|
||
|------|-----------|-------------|-------------|
|
||
| Creative | High novelty | 1 perspective | Fast, focus on novel ideas |
|
||
| Balanced | Mixed | 3 perspectives | Moderate, balanced exploration (default) |
|
||
| Deep | Comprehensive | 3 perspectives + deep refinement | Thorough multi-round investigation |
|
||
|
||
### Collaboration Patterns
|
||
|
||
| Pattern | Usage | Description |
|
||
|---------|-------|-------------|
|
||
| Parallel Divergence | New topic | All perspectives explored serially for comprehensive coverage |
|
||
| Sequential Deep-Dive | Promising idea | One perspective elaborates, others critique |
|
||
| Debate Mode | Controversial approach | Inline analysis arguing for/against |
|
||
| Synthesis Mode | Ready to decide | Inline synthesis combining insights from all perspectives |
|
||
|
||
### Context Overflow Protection
|
||
|
||
**Per-Perspective Limits**:
|
||
- Main analysis output: < 3000 words
|
||
- Sub-document (if any): < 2000 words each
|
||
- Maximum sub-documents: 5 per perspective
|
||
|
||
**Synthesis Protection**:
|
||
- If total analysis > 100KB, synthesis reads only main analysis files (not sub-documents)
|
||
- Large ideas automatically split into separate idea documents in ideas/ folder
|
||
|
||
**Recovery Steps**:
|
||
1. Check outputs for truncation or overflow
|
||
2. Reduce scope: fewer perspectives or simpler topic
|
||
3. Use structured brainstorm mode for more focused output
|
||
4. Split complex topics into multiple sessions
|
||
|
||
### Error Handling
|
||
|
||
| Situation | Action | Recovery |
|
||
|-----------|--------|----------|
|
||
| No codebase detected | Normal flow, pure topic brainstorming | Proceed without exploration-codebase.json |
|
||
| Codebase search fails | Continue with available context | Note limitation in brainstorm.md |
|
||
| No good ideas | Reframe problem or adjust constraints | Try new exploration angles |
|
||
| Perspectives conflict | Present as tradeoff options | Let user select preferred direction |
|
||
| Max rounds reached (6) | Force synthesis phase | Highlight unresolved questions |
|
||
| Session folder conflict | Append timestamp suffix | Create unique folder |
|
||
| User timeout | Save state, show resume command | Use `--continue` to resume |
|
||
|
||
## Best Practices
|
||
|
||
### Core Principles
|
||
|
||
1. **No code modifications**: This skill is strictly read-only. It produces analysis and idea documents but NEVER modifies source code.
|
||
2. **Record Decisions Immediately**: Capture decisions as they happen using the Decision Record format
|
||
3. **Evidence-Based**: Ideas referencing codebase patterns should include file:line evidence
|
||
4. **Embrace Conflicts**: Perspective conflicts often reveal important tradeoffs
|
||
|
||
### Before Starting
|
||
|
||
1. **Clear Topic Definition**: Detailed topics lead to better dimension identification
|
||
2. **User Context**: Understanding preferences helps guide brainstorming intensity
|
||
3. **Scope Understanding**: Being clear about time/scope expectations sets correct exploration level
|
||
|
||
### During Brainstorming
|
||
|
||
1. **Review Perspectives**: Check all perspective results before refinement rounds
|
||
2. **Document Assumptions**: Track what you think is true for correction later
|
||
3. **Use Continue Mode**: Resume sessions to build on previous exploration
|
||
4. **Iterate Thoughtfully**: Each refinement round should meaningfully advance ideas
|
||
5. **Track Idea Evolution**: Document how ideas changed across rounds
|
||
|
||
### Documentation Practices
|
||
|
||
1. **Timeline Clarity**: Use clear timestamps for traceability
|
||
2. **Evolution Tracking**: Document how ideas developed and morphed
|
||
3. **Multi-Perspective Synthesis**: Document convergent/conflicting themes
|
||
4. **Action Items**: Generate specific, implementable recommendations
|
||
|
||
## When to Use
|
||
|
||
**Use brainstorm-with-file when:**
|
||
- Generating new ideas and solutions for a topic
|
||
- Need multi-perspective exploration of possibilities
|
||
- Want documented thought evolution showing how ideas develop
|
||
- Exploring creative solutions before committing to implementation
|
||
- Need diverge-converge cycles to refine ideas
|
||
|
||
**Consider alternatives when:**
|
||
- Analyzing existing code/architecture → use `analyze-with-file`
|
||
- Specific bug diagnosis needed → use `debug-with-file`
|
||
- Complex planning with requirements → use `collaborative-plan-with-file`
|
||
- Ready to implement → use `lite-plan`
|
||
|
||
---
|
||
|
||
**Now start brainstorming for topic**: $TOPIC
|
||
|
||
**IMPORTANT**: This skill is brainstorming-only. It produces analysis, perspectives, and synthesis documents but NEVER executes code, modifies source files, or auto-launches other skills. All follow-up actions require user to manually run the suggested commands.
|