Agent skill

Brainstorm

by catlog22 in catlog22/Claude-Code-Workflow

Dual-mode brainstorming pipeline. An agent skill from catlog22/Claude-Code-Workflow.

MITAuto-check: notesAgent Workflows

Install Brainstorm

skills CLI
$ npx skills add catlog22/Claude-Code-Workflow --skill brainstorm -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install catlog22/Claude-Code-Workflow brainstorm --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/catlog22/Claude-Code-Workflow.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/brainstorm .claude/skills/brainstorm && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
brainstorm
GitHub stars
2.1k
Token cost
~6.4k tokens
SKILL.md length
483 words
Files
1
Skills in repo
82
Repo updated
First seen
Licence
MIT

At a glance

Dual-mode brainstorming pipeline. An agent skill from catlog22/Claude-Code-Workflow.

  • Works in 4 steps: Mode Detection & Routing → Interactive Framework Generation (Auto… → Wave Role Analysis (spawn_agents_on_csv)… → …
  • Tasks that involve Brainstorming
  • SKILL.md covers Auto Mode, Usage, Overview and Context Flow, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Brainstorm is an agent skill from catlog22/Claude-Code-Workflow. Dual-mode brainstorming pipeline. Auto mode: framework generation → parallel role analysis (spawnagentsoncsv) → cross-role synthesis. Single role mode: individual role analysis. CSV-driven parallel coordination with NDJSON discovery board.

Its SKILL.md is about 6.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Brainstorming and CSV and tabular files. The repository describes itself as: JSON-driven multi-agent cadence-team development framework with intelligent CLI orchestration (Gemini/Qwen/Codex), context-first architecture, and automated workflow execution. The licence is MIT.

When your agent uses it

  • Tasks that involve Brainstorming
  • Tasks that involve CSV and tabular files

Example prompts

  • “/brainstorm”

Requirements

  • Pre-approved tools (allowed-tools): spawn_agents_on_csv, spawn_agent, wait_agent, send_message, followup_task, close_agent, request_user_input, Read, Write, Edit, Bash, Glob, Grep

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Mode Detection & Routing
  2. Interactive Framework Generation (Auto Mode)
  3. Wave Role Analysis (spawn_agents_on_csv) — Auto Mode
  4. Synthesis Integration (Auto Mode)

What it can do on your machine

Read from SKILL.md and the folder at commit 07491b0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • spawn_agents_on_csv
    • spawn_agent
    • wait_agent
    • send_message
    • followup_task
    • close_agent
    • request_user_input
    • Read
    • Write
    • Edit

    …and 3 more on the same allowed-tools line.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript, bash and csv).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Brainstorm loads about 6.4k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 483 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~63
When it runs · the whole SKILL.md, loaded when a task matches
~6.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: spawn_agents_on_csv, spawn_agent, wait_agent, send_message, followup_task, close_agent, request_user

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from catlog22/Claude-Code-Workflow at commit 07491b0, republished under its MIT licence (© catlog22). 483 words, ~6,383 tokens.

Download SKILL.mdSave it as .claude/skills/brainstorm/SKILL.md (or your agent's skills folder).
name
brainstorm
description
Dual-mode brainstorming pipeline. Auto mode: framework generation → parallel role analysis (spawn_agents_on_csv) → cross-role synthesis. Single role mode: individual role analysis. CSV-driven parallel coordination with NDJSON discovery board.
allowed-tools
spawn_agents_on_csv, spawn_agent, wait_agent, send_message, followup_task, close_agent, request_user_input, Read, Write, Edit, Bash, Glob, Grep
argument-hint
[-y|--yes] [--count N] [--session ID] [--skip-questions] [--style-skill PKG] "topic" | <role-name> [--session ID]

Auto Mode

When --yes or -y: Auto-select auto mode, auto-select recommended roles, skip all clarification questions, use defaults. This skill is brainstorming-only — it produces analysis and feature specs but NEVER executes code or modifies source files.

Brainstorm

Usage

bash
$brainstorm "Build real-time collaboration platform" --count 3
$brainstorm -y "Design payment system" --count 5
$brainstorm "Build notification system" --style-skill material-design
$brainstorm system-architect --session WFS-xxx
$brainstorm ux-expert --include-questions

Flags:

  • -y, --yes: Skip all confirmations (auto mode)
  • --count N: Number of roles to select (default: 3, max: 9)
  • --session ID: Use existing session
  • --skip-questions / --include-questions: Control interactive Q&A per role
  • --style-skill PKG: Style skill package for ui-designer
  • --update: Update existing role analysis

Overview

Dual-mode brainstorming with CSV-driven parallel role analysis. Auto mode runs a full pipeline; single role mode runs one role analysis independently.

┌──────────────────────────────────────────────────────────────────┐
│                    BRAINSTORM PIPELINE                            │
├──────────────────────────────────────────────────────────────────┤
│                                                                    │
│  Phase 1: Mode Detection & Routing                                │
│     ├─ Parse flags and arguments                                  │
│     └─ Route to Auto Mode or Single Role Mode                    │
│                                                                    │
│  ═══ Auto Mode ═══                                                │
│                                                                    │
│  Phase 2: Interactive Framework Generation                        │
│     ├─ Context collection → Topic analysis → Role selection       │
│     ├─ Generate guidance-specification.md                         │
│     ├─ Generate roles.csv (1 row per selected role)              │
│     └─ User validates (skip if -y)                               │
│                                                                    │
│  Phase 3: Wave Role Analysis (spawn_agents_on_csv)               │
│     ├─ spawn_agents_on_csv(role instruction template)            │
│     ├─ Each role agent produces analysis.md + sub-documents      │
│     └─ discoveries.ndjson shared across role agents              │
│                                                                    │
│  Phase 4: Synthesis Integration                                   │
│     ├─ Read all role analyses (read-only)                        │
│     ├─ Cross-role analysis → conflict detection                  │
│     ├─ Feature spec generation                                    │
│     └─ Output: feature-specs/ + feature-index.json               │
│                                                                    │
│  ═══ Single Role Mode ═══                                         │
│                                                                    │
│  Phase 3S: Single Role Analysis (spawn_agent)                    │
│     ├─ spawn_agent(conceptual_planning_agent)                    │
│     └─ Output: {role}/analysis*.md                               │
│                                                                    │
└──────────────────────────────────────────────────────────────────┘

Context Flow

roles.csv                      feature-specs/
┌──────────────┐              ┌──────────────────┐
│ R1: sys-arch │──findings───→│ F-001-auth.md    │
│ analysis.md  │              │ (cross-role spec) │
├──────────────┤              ├──────────────────┤
│ R2: ui-design│──findings───→│ F-002-ui.md      │
│ analysis.md  │              │ (cross-role spec) │
├──────────────┤              ├──────────────────┤
│ R3: test-str │──findings───→│ F-003-test.md    │
│ analysis.md  │              │ (cross-role spec) │
└──────────────┘              └──────────────────┘

Two context channels:
1. Directed: role findings → synthesis → feature specs
2. Broadcast: discoveries.ndjson (append-only shared board)

CSV Schema

roles.csv
csv
id,role,title,focus,deps,wave,status,findings,output_files,error
"R1","system-architect","系统架构师","Technical architecture, scalability","","1","pending","","",""
"R2","ui-designer","UI设计师","Visual design, mockups","","1","pending","","",""
"R3","test-strategist","测试策略师","Test strategy, quality","","1","pending","","",""

Columns:

ColumnPhaseDescription
idInputRole ID: R1, R2, ...
roleInputRole identifier (e.g., system-architect)
titleInputRole display title
focusInputRole focus areas and keywords
depsInputDependency IDs (usually empty — all wave 1)
waveComputedWave number (usually 1 for all roles)
statusOutputpending → completed / failed
findingsOutputKey discoveries (max 800 chars)
output_filesOutputGenerated analysis files (semicolon-separated)
errorOutputError message if failed

Available Roles

Role IDTitleFocus Area
data-architect数据架构师Data models, storage strategies, data flow
product-manager产品经理Product strategy, roadmap, prioritization
product-owner产品负责人Backlog management, user stories, acceptance criteria
scrum-master敏捷教练Process facilitation, impediment removal
subject-matter-expert领域专家Domain knowledge, business rules, compliance
system-architect系统架构师Technical architecture, scalability, integration
test-strategist测试策略师Test strategy, quality assurance
ui-designerUI设计师Visual design, mockups, design systems
ux-expertUX专家User research, information architecture, journey

Session Structure

.workflow/active/WFS-{topic}/
├── workflow-session.json              # Session metadata
├── .process/
│   └── context-package.json           # Phase 0 context
├── roles.csv                          # Role analysis state (Phase 2-3)
├── discoveries.ndjson                 # Shared discovery board
└── .brainstorming/
    ├── guidance-specification.md      # Framework (Phase 2)
    ├── feature-index.json             # Feature index (Phase 4)
    ├── synthesis-changelog.md         # Synthesis audit trail (Phase 4)
    ├── feature-specs/                 # Feature specs (Phase 4)
    │   ├── F-001-{slug}.md
    │   └── F-00N-{slug}.md
    └── {role}/                        # Role analyses (Phase 3, immutable)
        ├── {role}-context.md          # Interactive Q&A
        ├── analysis.md                # Main/index document
        ├── analysis-cross-cutting.md  # Cross-feature
        └── analysis-F-{id}-{slug}.md  # Per-feature

Implementation

Session Initialization
javascript
const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString()

// Parse flags
const AUTO_YES = $ARGUMENTS.includes('--yes') || $ARGUMENTS.includes('-y')
const countMatch = $ARGUMENTS.match(/--count\s+(\d+)/)
const roleCount = countMatch ? Math.min(parseInt(countMatch[1]), 9) : 3
const sessionMatch = $ARGUMENTS.match(/--session\s+(\S+)/)
const existingSessionId = sessionMatch ? sessionMatch[1] : null
const skipQuestions = $ARGUMENTS.includes('--skip-questions')
const includeQuestions = $ARGUMENTS.includes('--include-questions')
const styleSkillMatch = $ARGUMENTS.match(/--style-skill\s+(\S+)/)
const styleSkill = styleSkillMatch ? styleSkillMatch[1] : null
const updateMode = $ARGUMENTS.includes('--update')

// Role detection
const VALID_ROLES = [
  'data-architect', 'product-manager', 'product-owner', 'scrum-master',
  'subject-matter-expert', 'system-architect', 'test-strategist',
  'ui-designer', 'ux-expert'
]
const cleanArgs = $ARGUMENTS
  .replace(/--yes|-y|--count\s+\d+|--session\s+\S+|--skip-questions|--include-questions|--style-skill\s+\S+|--update/g, '')
  .trim()
const firstArg = cleanArgs.split(/\s+/)[0]
const isRole = VALID_ROLES.includes(firstArg)

// Mode detection
let executionMode
if (AUTO_YES) {
  executionMode = 'auto'
} else if (isRole) {
  executionMode = 'single-role'
} else if (cleanArgs) {
  executionMode = 'auto'
} else {
  executionMode = null  // Ask user
}

const topic = isRole
  ? cleanArgs.replace(firstArg, '').trim()
  : cleanArgs.replace(/^["']|["']$/g, '')

Phase 1: Mode Detection & Routing

Objective: Parse arguments, determine execution mode, prepare session.

Steps:

  1. Detect Mode

    javascript
    if (executionMode === null) {
      const modeAnswer = functions.request_user_input({
        questions: [{
          question: "Choose brainstorming mode:",
          header: "Mode",
          options: [
            { label: "Auto Mode (Recommended)", description: "Full pipeline: framework → parallel roles → synthesis" },
            { label: "Single Role", description: "Run one role analysis independently" }
          ]
        }]
      })
      executionMode = modeAnswer.Mode.startsWith('Auto') ? 'auto' : 'single-role'
    }
  2. Session Setup

    javascript
    let sessionId, sessionFolder
    
    if (existingSessionId) {
      sessionId = existingSessionId
      sessionFolder = `.workflow/active/${sessionId}`
    } else if (executionMode === 'auto') {
      const slug = topic.toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, '-').substring(0, 40)
      sessionId = `WFS-${slug}`
      sessionFolder = `.workflow/active/${sessionId}`
      Bash(`mkdir -p "${sessionFolder}/.brainstorming" "${sessionFolder}/.process"`)
    
      // Initialize workflow-session.json
      Write(`${sessionFolder}/workflow-session.json`, JSON.stringify({
        session_id: sessionId,
        topic: topic,
        status: 'brainstorming',
        execution_mode: executionMode,
        created_at: getUtc8ISOString()
      }, null, 2))
    } else {
      // Single role mode requires existing session
      const existing = Bash(`ls -d .workflow/active/WFS-* 2>/dev/null | head -1`).trim()
      if (!existing) {
        console.log('ERROR: No active session found. Run auto mode first to create a session.')
        return
      }
      sessionId = existing.split('/').pop()
      sessionFolder = existing
    }

Route:

  • executionMode === 'auto' → Phase 2
  • executionMode === 'single-role' → Phase 3S

Phase 2: Interactive Framework Generation (Auto Mode)

Objective: Analyze topic, select roles, generate guidance-specification.md and roles.csv.

Steps:

  1. Analyze Topic & Select Roles

    javascript
    Bash({
      command: `ccw cli -p "PURPOSE: Analyze brainstorming topic and recommend ${roleCount} expert roles for multi-perspective analysis. Success = well-matched roles with clear focus areas.
    TASK:
      • Analyze topic domain, complexity, and key dimensions
      • Select ${roleCount} roles from: data-architect, product-manager, product-owner, scrum-master, subject-matter-expert, system-architect, test-strategist, ui-designer, ux-expert
      • For each role: define focus area, key questions, and analysis scope
      • Identify potential cross-role conflicts or synergies
      • Generate feature decomposition if topic has distinct components
    MODE: analysis
    CONTEXT: @**/*
    EXPECTED: JSON: {analysis: {domain, complexity, dimensions[]}, roles: [{id, role, title, focus, key_questions[]}], features: [{id, title, description}]}
    CONSTRAINTS: Select exactly ${roleCount} roles | Each role must have distinct perspective | Roles must cover topic comprehensively

TOPIC: ${topic}" --tool gemini --mode analysis --rule planning-breakdown-task-steps`, run_in_background: true }) // Wait for CLI completion → { analysis, roles[], features[] }


2. **User Validation** (skip if AUTO_YES)

```javascript
if (!AUTO_YES) {
  console.log(`\n## Brainstorm Framework\n`)
  console.log(`Topic: ${topic}`)
  console.log(`Domain: ${analysis.domain} | Complexity: ${analysis.complexity}`)
  console.log(`\nSelected Roles (${roles.length}):`)
  roles.forEach(r => console.log(`  - [${r.id}] ${r.title}: ${r.focus}`))
  if (features.length > 0) {
    console.log(`\nFeatures (${features.length}):`)
    features.forEach(f => console.log(`  - [${f.id}] ${f.title}`))
  }

  const answer = functions.request_user_input({
    questions: [{
      question: "Approve brainstorm framework?",
      header: "Validate",
      options: [
        { label: "Approve", description: "Proceed with role analysis" },
        { label: "Modify Roles", description: "Change role selection" },
        { label: "Cancel", description: "Abort" }
      ]
    }]
  })

  if (answer.Validate === "Cancel") return
  if (answer.Validate === "Modify Roles") {
    // Allow user to adjust via request_user_input
    const roleAnswer = functions.request_user_input({
      questions: [{
        question: "Select roles for analysis:",
        header: "Roles",
        options: VALID_ROLES.map(r => ({
          label: r,
          description: roles.find(sel => sel.role === r)?.focus || ''
        }))
      }]
    })
    // Rebuild roles[] from selection
  }
}
  1. Generate Guidance Specification

    javascript
    const guidanceContent = `# Guidance Specification

Topic

${topic}

Analysis

  • Domain: ${analysis.domain}
  • Complexity: ${analysis.complexity}
  • Dimensions: ${analysis.dimensions.join(', ')}

Selected Roles

${roles.map(r => `### ${r.title} (${r.role})

  • Focus: ${r.focus}
  • Key Questions: ${r.key_questions.join('; ')}`).join('\n\n')}

Features

${features.map(f => - **[${f.id}] ${f.title}**: ${f.description}).join('\n')} Write(${sessionFolder}/.brainstorming/guidance-specification.md`, guidanceContent)


4. **Generate roles.csv**

```javascript
const header = 'id,role,title,focus,deps,wave,status,findings,output_files,error'
const rows = roles.map(r =>
  [r.id, r.role, r.title, r.focus, '', '1', 'pending', '', '', '']
    .map(v => `"${String(v).replace(/"/g, '""')}"`)
    .join(',')
)
Write(`${sessionFolder}/roles.csv`, [header, ...rows].join('\n'))

Update workflow-session.json with selected_roles.


Phase 3: Wave Role Analysis (spawn_agents_on_csv) — Auto Mode

Objective: Execute parallel role analysis via spawn_agents_on_csv. Each role agent produces analysis documents.

Steps:

  1. Role Analysis Wave

    javascript
    const rolesCSV = parseCsv(Read(`${sessionFolder}/roles.csv`))
    
    console.log(`\n## Phase 3: Parallel Role Analysis (${rolesCSV.length} roles)\n`)
    
    spawn_agents_on_csv({
      csv_path: `${sessionFolder}/roles.csv`,
      id_column: "id",
      instruction: buildRoleInstruction(sessionFolder, topic, features),
      max_concurrency: Math.min(rolesCSV.length, 4),
      max_runtime_seconds: 600,
      output_csv_path: `${sessionFolder}/roles-results.csv`,
      output_schema: {
        type: "object",
        properties: {
          id: { type: "string" },
          status: { type: "string", enum: ["completed", "failed"] },
          findings: { type: "string" },
          output_files: { type: "array", items: { type: "string" } },
          error: { type: "string" }
        },
        required: ["id", "status", "findings"]
      }
    })
    
    // Merge results into roles.csv
    const roleResults = parseCsv(Read(`${sessionFolder}/roles-results.csv`))
    for (const result of roleResults) {
      updateMasterCsvRow(`${sessionFolder}/roles.csv`, result.id, {
        status: result.status,
        findings: result.findings || '',
        output_files: Array.isArray(result.output_files) ? result.output_files.join(';') : (result.output_files || ''),
        error: result.error || ''
      })
      console.log(`  [${result.id}] ${result.status === 'completed' ? '✓' : '✗'} ${rolesCSV.find(r => r.id === result.id)?.role}`)
    }
    
    Bash(`rm -f "${sessionFolder}/roles-results.csv"`)
  2. Role Instruction Template

    javascript
    function buildRoleInstruction(sessionFolder, topic, features) {
      const featureList = features.length > 0
        ? features.map(f => `- [${f.id}] ${f.title}: ${f.description}`).join('\n')
        : 'No feature decomposition — analyze topic holistically.'
    
      return `

ROLE ANALYSIS ASSIGNMENT

MANDATORY FIRST STEPS
  1. Read guidance specification: ${sessionFolder}/.brainstorming/guidance-specification.md
  2. Read shared discoveries: ${sessionFolder}/discoveries.ndjson (if exists)
  3. Read project context: .workflow/project-tech.json (if exists)

Your Role

Role ID: {id} Role: {role} Title: {title} Focus: {focus}


Show full SKILL.md (507 more words)Show less

Topic

${topic}

Features to Analyze

${featureList}


Analysis Protocol

  1. Read guidance: Load guidance-specification.md for full context
  2. Read discoveries: Load discoveries.ndjson for shared findings from other roles
  3. Analyze from your perspective: Apply your role expertise to the topic
  4. Per-feature analysis (if features exist):
    • Create `${sessionFolder}/.brainstorming/{role}/analysis-{feature-id}-{slug}.md` per feature
    • Create `${sessionFolder}/.brainstorming/{role}/analysis-cross-cutting.md` for cross-feature concerns
  5. Create index document: `${sessionFolder}/.brainstorming/{role}/analysis.md`
    • Summary of all findings
    • Links to sub-documents
    • Key recommendations
  6. Share discoveries: Append findings to shared board: ```bash echo '{"ts":"<ISO8601>","worker":"{id}","type":"<type>","data":{...}}' >> ${sessionFolder}/discoveries.ndjson ```
  7. Report result: Return JSON via report_agent_job_result
Document Constraints
  • Main analysis.md: < 3000 words
  • Sub-documents: < 2000 words each, max 5
  • Total per role: < 15000 words
Discovery Types to Share
  • `design_pattern`: {name, rationale, applicability} — recommended patterns
  • `risk`: {area, severity, mitigation} — identified risks
  • `requirement`: {title, priority, source} — derived requirements
  • `constraint`: {type, description, impact} — discovered constraints
  • `synergy`: {roles[], area, description} — cross-role opportunities

Output (report_agent_job_result)

Return JSON: { "id": "{id}", "status": "completed" | "failed", "findings": "Key insights from {role} perspective (max 800 chars)", "output_files": ["path/to/analysis.md", "path/to/analysis-F-001.md"], "error": "" } ` }


---

### Phase 3S: Single Role Analysis (spawn_agent) — Single Role Mode

**Objective**: Run one role analysis via spawn_agent with optional interactive Q&A.

```javascript
if (executionMode === 'single-role') {
const roleName = firstArg
const roleDir = `${sessionFolder}/.brainstorming/${roleName}`
Bash(`mkdir -p "${roleDir}"`)

const agentId = spawn_agent({
 agent_type: "conceptual_planning_agent",
 instruction: `
Perform a ${roleName} analysis for the brainstorming session.

**Session**: ${sessionFolder}
**Role**: ${roleName}
**Topic**: Read from ${sessionFolder}/.brainstorming/guidance-specification.md
${includeQuestions ? '**Mode**: Interactive — ask clarification questions before analysis' : ''}
${skipQuestions ? '**Mode**: Skip questions — proceed directly to analysis' : ''}
${styleSkill ? `**Style Skill**: ${styleSkill} — load .claude/skills/style-${styleSkill}/ for design reference` : ''}
${updateMode ? '**Update Mode**: Read existing analysis and enhance/update it' : ''}

**Output**: Create analysis documents in ${roleDir}/
- ${roleDir}/analysis.md (main index)
- ${roleDir}/analysis-*.md (sub-documents as needed)

Follow the same analysis protocol as wave role analysis but with interactive refinement.
`
})

wait_agent({ timeout_ms: 1800000 })
close_agent({ target: agentId })

console.log(`\n✓ ${roleName} analysis complete: ${roleDir}/analysis.md`)
}

Phase 4: Synthesis Integration (Auto Mode)

Objective: Read all role analyses, cross-reference, generate feature specs.

Steps:

  1. Collect Role Findings

    javascript
    const rolesCSV = parseCsv(Read(`${sessionFolder}/roles.csv`))
    const completedRoles = rolesCSV.filter(r => r.status === 'completed')
    
    // Read all analysis.md index files (optimized: skip sub-docs for token efficiency)
    const roleAnalyses = {}
    for (const role of completedRoles) {
      const indexPath = `${sessionFolder}/.brainstorming/${role.role}/analysis.md`
      const content = Read(indexPath)
      if (content) roleAnalyses[role.role] = content
    }
    
    // Read discoveries
    const discoveriesPath = `${sessionFolder}/discoveries.ndjson`
    const discoveries = Read(discoveriesPath) || ''
  2. Synthesis via Agent

    javascript
    const synthesisAgent = spawn_agent({
      agent_type: "conceptual_planning_agent",
      instruction: `

SYNTHESIS ASSIGNMENT

Synthesize ${completedRoles.length} role analyses into unified feature specifications.

Session: ${sessionFolder} Role Analyses: ${completedRoles.map(r => ${sessionFolder}/.brainstorming/${r.role}/analysis.md).join(', ')} Discoveries: ${discoveriesPath}

Synthesis Protocol
  1. Read all role analyses (analysis.md files only — these are index documents)
  2. Cross-reference findings: Identify agreements, conflicts, and unique insights
  3. Generate feature specs: For each feature in guidance-specification.md:
    • Create ${sessionFolder}/.brainstorming/feature-specs/F-{id}-{slug}.md
    • Consolidate perspectives from all relevant roles
    • Note conflicts and recommended resolutions
  4. Generate feature index: ${sessionFolder}/.brainstorming/feature-index.json
    • Array of {id, title, slug, roles_contributing[], conflict_count, priority}
  5. Generate changelog: ${sessionFolder}/.brainstorming/synthesis-changelog.md
    • Decisions made, conflicts resolved, trade-offs accepted
Complexity Assessment

Evaluate complexity score (0-8):

  • Feature count (≤2: 0, 3-4: 1, ≥5: 2)
  • Unresolved conflicts (0: 0, 1-2: 1, ≥3: 2)
  • Participating roles (≤2: 0, 3-4: 1, ≥5: 2)
  • Cross-feature dependencies (0: 0, 1-2: 1, ≥3: 2)
Output Files
  • feature-specs/F-{id}-{slug}.md (one per feature)

  • feature-index.json

  • synthesis-changelog.md ` })

    wait_agent({ timeout_ms: 1800000 }) close_agent({ target: synthesisAgent })

  1. Completion Summary

    javascript
    const featureIndex = JSON.parse(Read(`${sessionFolder}/.brainstorming/feature-index.json`) || '[]')
    
    console.log(`

Brainstorm Complete

Session: ${sessionId} Roles analyzed: ${completedRoles.length} Features synthesized: ${featureIndex.length}

Feature Specs

${featureIndex.map(f => - [${f.id}] ${f.title} (${f.roles_contributing?.length || 0} roles, ${f.conflict_count || 0} conflicts)).join('\n')}

Next Steps

Brainstorming complete. To continue, run one of:

  • /workflow-plan --session ${sessionId} → Generate implementation plan
  • Review: ${sessionFolder}/.brainstorming/feature-specs/ `)

Utility Functions

CSV Parser
javascript
function parseCsv(content) {
  const lines = content.trim().split('\n')
  if (lines.length < 2) return []
  const headers = parseCSVLine(lines[0])
  return lines.slice(1).map(line => {
    const values = parseCSVLine(line)
    const row = {}
    headers.forEach((h, i) => row[h] = values[i] || '')
    return row
  })
}
CSV Row Updater
javascript
function updateMasterCsvRow(csvPath, id, updates) {
  const content = Read(csvPath)
  const lines = content.trim().split('\n')
  const headers = parseCSVLine(lines[0])
  const idIdx = headers.indexOf('id')

  for (let i = 1; i < lines.length; i++) {
    const values = parseCSVLine(lines[i])
    if (values[idIdx]?.replace(/"/g, '') === id) {
      Object.entries(updates).forEach(([key, val]) => {
        const idx = headers.indexOf(key)
        if (idx >= 0) values[idx] = `"${String(val).replace(/"/g, '""')}"`
      })
      lines[i] = values.join(',')
      break
    }
  }
  Write(csvPath, lines.join('\n'))
}

Error Handling

ErrorRecovery
Invalid role nameShow valid roles list, prompt again
No active session (single role)Guide user to run auto mode first
Role agent failureMark failed in roles.csv, continue with remaining
Synthesis overflow (>100KB)Read only analysis.md index files
Context compressionRe-read guidance-specification.md and roles.csv

Compact Protection

COMPACT DIRECTIVE: If context compression occurs mid-execution, re-read the current phase's state:

  • Phase 2: Re-read guidance-specification.md
  • Phase 3: Re-read roles.csv for progress state
  • Phase 4: Re-read feature-index.json and roles.csv

© catlog22, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .codex/skills/brainstorm of catlog22/Claude-Code-Workflow.

Open the folder on GitHubat commit 07491b0

Compare with similar skills

Brainstorm next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Brainstorm compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Brainstorm this skillcatlog22/Claude-Code-Workflow2.1k—~6.4kAutomated safety check: NotesMIT
Brainstormingxpinjection/test-driven-spring-boot11254 repos~2.6kAutomated safety check: PassMIT
LLM Councilgcpdev/llm-council-skill4611 repos~1kAutomated safety check: NotesMIT
Typesafe AIOpenAgentsInc/openagents4559 repos~2.5kAutomated safety check: PassMIT
Yao Meta Skillyaojingang/yao-meta-skill2.7k—~768Automated safety check: PassMIT
Trellis StartROYIANS/foliq-print-template-designer1356 repos~646Automated safety check: PassMIT

Similar skills

  • Brainstorming

    xpinjection/test-driven-spring-boot

    You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.

    112 GitHub starsUsed in 54 repos~2.6k tokens
    Agent WorkflowsAuto-check passed
  • LLM Council

    gcpdev/llm-council-skill

    Multi-LLM collaborative brainstorming and planning. An agent skill from gcpdev/llm-council-skill.

    461 GitHub starsUsed in 1 repo~1k tokens
    Agent WorkflowsAuto-check: notes
  • Typesafe AI

    OpenAgentsInc/openagents

    Build AI-powered software with TypeSafe: small units of AI intelligence you can use like programming primitives.

    455 GitHub starsUsed in 9 repos~2.5k tokens
    Agent WorkflowsAuto-check passed
  • Yao Meta Skill

    yaojingang/yao-meta-skill

    Create, improve, or evaluate an existing skill from workflows, prompts, SOPs, scripts.

    2.7k GitHub stars~768 tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Trellis Start

    ROYIANS/foliq-print-template-designer

    Initializes an AI development session by reading workflow guides, developer identity, git status, active tasks, and project guidelines from .trellis/.

    135 GitHub starsUsed in 6 repos~646 tokens
    Agent WorkflowsAuto-check passed
  • Brainstorming Before Building

    jnMetaCode/superpowers-zh

    Turns a rough idea into an approved design before any code is written, sorting the request into spike, bounded or architectural and enforcing an approval gate.

    8.3k GitHub stars~1.8k tokensUpdated 4 days ago
    Agent WorkflowsAuto-check passed

More from catlog22/Claude-Code-Workflow

All 82 skills in this repo
  • Prompt Generator

    catlog22/Claude-Code-Workflow

    Generate or convert Claude Code prompt files — command orchestrators, skill files, agent role definitions, or style conversion of existing files.

    2.1k GitHub starsUsed in 1 repo~4.7k tokens
    Auto-check: notes
  • Ccw Help

    catlog22/Claude-Code-Workflow

    CCW command help system. An agent skill from catlog22/Claude-Code-Workflow.

    2.1k GitHub stars~2.5k tokensUpdated 3 mo ago
    Auto-check passed
  • Team Ultra Analyze

    catlog22/Claude-Code-Workflow

    Deep collaborative analysis team skill. An agent skill from catlog22/Claude-Code-Workflow.

    2.1k GitHub starsUsed in 1 repo~2.4k tokens
    Auto-check: notes
  • Brainstorm

    catlog22/Claude-Code-Workflow

    Unified brainstorming skill with dual-mode operation — auto mode (framework generation, parallel multi-role analysis, cross-role synthesis) and single role analysis.

    2.1k GitHub stars~4.8k tokensUpdated 3 mo ago
    Auto-check: notes
  • Ccw Chain

    catlog22/Claude-Code-Workflow

    Chain-based CCW workflow orchestrator. An agent skill from catlog22/Claude-Code-Workflow.

    2.1k GitHub stars~1.1k tokensUpdated 3 mo ago
    Auto-check: notes
  • Delegation Check

    catlog22/Claude-Code-Workflow

    Check workflow delegation prompts against agent role definitions for content separation violations.

    2.1k GitHub stars~2.8k tokensUpdated 3 mo ago
    Auto-check: notes

Categories

Questions about Brainstorm

What does Brainstorm do?

Dual-mode brainstorming pipeline. An agent skill from catlog22/Claude-Code-Workflow. Brainstorm is an agent skill from catlog22/Claude-Code-Workflow. Dual-mode brainstorming pipeline.

When should I use Brainstorm?

Brainstorm fits situations like: tasks that involve Brainstorming; tasks that involve CSV and tabular files.

How do I install Brainstorm in Claude Code?

Run `npx skills add catlog22/Claude-Code-Workflow --skill brainstorm -a claude-code`. Or copy the skill folder (.codex/skills/brainstorm in catlog22/Claude-Code-Workflow) into .claude/skills/brainstorm in your project. Claude Code loads it when a task matches its description.

How do I install Brainstorm in Codex?

Run `npx skills add catlog22/Claude-Code-Workflow --skill brainstorm -a codex`. Or copy the skill folder (.codex/skills/brainstorm in catlog22/Claude-Code-Workflow) into .agents/skills/brainstorm in your project. Codex loads it when a task matches its description.

Can I use Brainstorm in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add catlog22/Claude-Code-Workflow --skill brainstorm -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/brainstorm, .gemini/skills/brainstorm, .github/skills/brainstorm and .opencode/skills/brainstorm in your project.

What does Brainstorm need to run?

SKILL.md names no scripts, command-line tools or credentials: Brainstorm is instructions for the agent only. Its frontmatter pre-approves these tools: spawn_agents_on_csv, spawn_agent, wait_agent, send_message, followup_task, close_agent, request_user_input, Read, Write, Edit, Bash, Glob, Grep.

Does Brainstorm access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Brainstorm safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Brainstorm use?

Brainstorm is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Brainstorm use?

About 6.4k tokens (SKILL.md is roughly 26k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Brainstorm?

Skills that share tags, products or a category with Brainstorm: Brainstorming (xpinjection/test-driven-spring-boot, 112 stars), LLM Council (gcpdev/llm-council-skill, 461 stars), Typesafe AI (OpenAgentsInc/openagents, 455 stars) and Yao Meta Skill (yaojingang/yao-meta-skill, 2.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Brainstorm?

catlog22 (a GitHub user) maintains it in catlog22/Claude-Code-Workflow, which has 2,130 GitHub stars. The repository holds 82 skills in this directory. The repository was last updated on June 18, 2026.

Source: catlog22/Claude-Code-Workflow on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.