Brainstorming
xpinjection/test-driven-spring-boot
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.
Dual-mode brainstorming pipeline. An agent skill from catlog22/Claude-Code-Workflow.
$ npx skills add catlog22/Claude-Code-Workflow --skill brainstorm -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install catlog22/Claude-Code-Workflow brainstorm --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "brainstorm" agent skill from https://github.com/catlog22/Claude-Code-Workflow/tree/main/.codex/skills/brainstorm into .claude/skills/brainstorm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brainstorm", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/catlog22/Claude-Code-Workflow/tree/main/.codex/skills/brainstormType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add catlog22/Claude-Code-Workflow --skill brainstorm -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install catlog22/Claude-Code-Workflow brainstorm --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/catlog22/Claude-Code-Workflow.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.codex/skills/brainstorm .agents/skills/brainstorm && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "brainstorm" agent skill from https://github.com/catlog22/Claude-Code-Workflow/tree/main/.codex/skills/brainstorm into .agents/skills/brainstorm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brainstorm", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add catlog22/Claude-Code-Workflow --skill brainstorm -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install catlog22/Claude-Code-Workflow brainstorm --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/catlog22/Claude-Code-Workflow.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.codex/skills/brainstorm .cursor/skills/brainstorm && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "brainstorm" agent skill from https://github.com/catlog22/Claude-Code-Workflow/tree/main/.codex/skills/brainstorm into .cursor/skills/brainstorm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brainstorm", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/catlog22/Claude-Code-Workflow.git --path .codex/skills/brainstorm--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add catlog22/Claude-Code-Workflow --skill brainstorm -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install catlog22/Claude-Code-Workflow brainstorm --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/catlog22/Claude-Code-Workflow.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.codex/skills/brainstorm .gemini/skills/brainstorm && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "brainstorm" agent skill from https://github.com/catlog22/Claude-Code-Workflow/tree/main/.codex/skills/brainstorm into .gemini/skills/brainstorm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brainstorm", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install catlog22/Claude-Code-Workflow brainstormInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add catlog22/Claude-Code-Workflow --skill brainstorm -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/catlog22/Claude-Code-Workflow.git skills-src && mkdir -p .github/skills && cp -r skills-src/.codex/skills/brainstorm .github/skills/brainstorm && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "brainstorm" agent skill from https://github.com/catlog22/Claude-Code-Workflow/tree/main/.codex/skills/brainstorm into .github/skills/brainstorm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brainstorm", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add catlog22/Claude-Code-Workflow --skill brainstorm -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install catlog22/Claude-Code-Workflow brainstorm --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/catlog22/Claude-Code-Workflow.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.codex/skills/brainstorm .opencode/skills/brainstorm && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "brainstorm" agent skill from https://github.com/catlog22/Claude-Code-Workflow/tree/main/.codex/skills/brainstorm into .opencode/skills/brainstorm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brainstorm", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
brainstormDual-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. 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.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 07491b0. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
spawn_agents_on_csvspawn_agentwait_agentsend_messagefollowup_taskclose_agentrequest_user_inputReadWriteEdit…and 3 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
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.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: spawn_agents_on_csv, spawn_agent, wait_agent, send_message, followup_task, close_agent, request_userAutomated 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.
The full file from catlog22/Claude-Code-Workflow at commit 07491b0, republished under its MIT licence (© catlog22). 483 words, ~6,383 tokens.
.claude/skills/brainstorm/SKILL.md (or your agent's skills folder).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 "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-questionsFlags:
-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 analysisDual-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 │
│ │
└──────────────────────────────────────────────────────────────────┘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)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:
| Column | Phase | Description |
|---|---|---|
id | Input | Role ID: R1, R2, ... |
role | Input | Role identifier (e.g., system-architect) |
title | Input | Role display title |
focus | Input | Role focus areas and keywords |
deps | Input | Dependency IDs (usually empty — all wave 1) |
wave | Computed | Wave number (usually 1 for all roles) |
status | Output | pending → completed / failed |
findings | Output | Key discoveries (max 800 chars) |
output_files | Output | Generated analysis files (semicolon-separated) |
error | Output | Error message if failed |
| Role ID | Title | Focus 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-designer | UI设计师 | Visual design, mockups, design systems |
ux-expert | UX专家 | User research, information architecture, journey |
.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-featureconst 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, '')Objective: Parse arguments, determine execution mode, prepare session.
Steps:
Detect Mode
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'
}Session Setup
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 2executionMode === 'single-role' → Phase 3SObjective: Analyze topic, select roles, generate guidance-specification.md and roles.csv.
Steps:
Analyze Topic & Select Roles
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 comprehensivelyTOPIC: ${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
}
}Generate Guidance Specification
const guidanceContent = `# Guidance Specification${topic}
${roles.map(r => `### ${r.title} (${r.role})
${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.
Objective: Execute parallel role analysis via spawn_agents_on_csv. Each role agent produces analysis documents.
Steps:
Role Analysis Wave
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"`)Role Instruction Template
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 ID: {id} Role: {role} Title: {title} Focus: {focus}
${topic}
${featureList}
<ISO8601>","worker":"{id}","type":"<type>","data":{...}}' >> ${sessionFolder}/discoveries.ndjson
```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`)
}Objective: Read all role analyses, cross-reference, generate feature specs.
Steps:
Collect Role Findings
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) || ''Synthesis via Agent
const synthesisAgent = spawn_agent({
agent_type: "conceptual_planning_agent",
instruction: `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}
Evaluate complexity score (0-8):
feature-specs/F-{id}-{slug}.md (one per feature)
feature-index.json
synthesis-changelog.md ` })
wait_agent({ timeout_ms: 1800000 }) close_agent({ target: synthesisAgent })
Completion Summary
const featureIndex = JSON.parse(Read(`${sessionFolder}/.brainstorming/feature-index.json`) || '[]')
console.log(`Session: ${sessionId} Roles analyzed: ${completedRoles.length} Features synthesized: ${featureIndex.length}
${featureIndex.map(f => - [${f.id}] ${f.title} (${f.roles_contributing?.length || 0} roles, ${f.conflict_count || 0} conflicts)).join('\n')}
Brainstorming complete. To continue, run one of:
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
})
}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 | Recovery |
|---|---|
| Invalid role name | Show valid roles list, prompt again |
| No active session (single role) | Guide user to run auto mode first |
| Role agent failure | Mark failed in roles.csv, continue with remaining |
| Synthesis overflow (>100KB) | Read only analysis.md index files |
| Context compression | Re-read guidance-specification.md and roles.csv |
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.csvfor progress state- Phase 4: Re-read
feature-index.jsonandroles.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
Just SKILL.md in .codex/skills/brainstorm of catlog22/Claude-Code-Workflow.
Open the folder on GitHubat commit 07491b0
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Brainstorm this skillcatlog22/Claude-Code-Workflow | 2.1k | — | ~6.4k | Automated safety check: Notes | MIT | |
| Brainstormingxpinjection/test-driven-spring-boot | 112 | 54 repos | ~2.6k | Automated safety check: Pass | MIT | |
| LLM Councilgcpdev/llm-council-skill | 461 | 1 repos | ~1k | Automated safety check: Notes | MIT | |
| Typesafe AIOpenAgentsInc/openagents | 455 | 9 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Yao Meta Skillyaojingang/yao-meta-skill | 2.7k | — | ~768 | Automated safety check: Pass | MIT | |
| Trellis StartROYIANS/foliq-print-template-designer | 135 | 6 repos | ~646 | Automated safety check: Pass | MIT |
xpinjection/test-driven-spring-boot
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.
gcpdev/llm-council-skill
Multi-LLM collaborative brainstorming and planning. An agent skill from gcpdev/llm-council-skill.
OpenAgentsInc/openagents
Build AI-powered software with TypeSafe: small units of AI intelligence you can use like programming primitives.
yaojingang/yao-meta-skill
Create, improve, or evaluate an existing skill from workflows, prompts, SOPs, scripts.
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/.
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.
catlog22/Claude-Code-Workflow
Generate or convert Claude Code prompt files — command orchestrators, skill files, agent role definitions, or style conversion of existing files.
catlog22/Claude-Code-Workflow
CCW command help system. An agent skill from catlog22/Claude-Code-Workflow.
catlog22/Claude-Code-Workflow
Deep collaborative analysis team skill. An agent skill from catlog22/Claude-Code-Workflow.
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.
catlog22/Claude-Code-Workflow
Chain-based CCW workflow orchestrator. An agent skill from catlog22/Claude-Code-Workflow.
catlog22/Claude-Code-Workflow
Check workflow delegation prompts against agent role definitions for content separation violations.
Categories
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.
Brainstorm fits situations like: tasks that involve Brainstorming; tasks that involve CSV and tabular files.
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.
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.
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.
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.
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.
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.
Brainstorm is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
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.
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.
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.