CtrlK
BlogDocsLog inGet started
Tessl Logo

team-brainstorm

Unified team skill for brainstorming team. Uses team-worker agent architecture with role directories for domain logic. Coordinator orchestrates pipeline, workers are team-worker agents. Triggers on "team brainstorm".

51

Quality

40%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./.codex/skills/team-brainstorm/SKILL.md
SKILL.md
Quality
Evals
Security

Team Brainstorm

Orchestrate multi-agent brainstorming: generate ideas -> challenge assumptions -> synthesize -> evaluate. Supports Quick, Deep, and Full pipelines with Generator-Critic loop.

Architecture

Skill(skill="team-brainstorm", args="topic description")
                    |
         SKILL.md (this file) = Router
                    |
     +--------------+--------------+
     |                             |
  no --role flag              --role <name>
     |                             |
  Coordinator                  Worker
  roles/coordinator/role.md    roles/<name>/role.md
     |
     +-- analyze -> dispatch -> spawn workers -> STOP
                                    |
                    +-------+-------+-------+
                    v       v       v       v
                 [ideator][challenger][synthesizer][evaluator]

Role Registry

RolePathPrefixInner Loop
coordinatorroles/coordinator/role.md
ideatorroles/ideator/role.mdIDEA-*false
challengerroles/challenger/role.mdCHALLENGE-*false
synthesizerroles/synthesizer/role.mdSYNTH-*false
evaluatorroles/evaluator/role.mdEVAL-*false

Role Router

Parse $ARGUMENTS:

  • Has --role <name> -> Read roles/<name>/role.md, execute Phase 2-4
  • No --role -> roles/coordinator/role.md, execute entry router

Delegation Lock

Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.

Before calling ANY tool, apply this check:

Tool CallVerdictReason
spawn_agent, wait_agent, close_agent, send_message, assign_taskALLOWEDOrchestration
list_agentsALLOWEDAgent health check
request_user_inputALLOWEDUser interaction
mcp__ccw-tools__team_msgALLOWEDMessage bus
Read/Write on .workflow/.team/ filesALLOWEDSession state
Read on roles/, commands/, specs/ALLOWEDLoading own instructions
Read/Grep/Glob on project source codeBLOCKEDDelegate to worker
Edit on any file outside .workflow/BLOCKEDDelegate to worker
Bash("ccw cli ...")BLOCKEDOnly workers call CLI
Bash running build/test/lint commandsBLOCKEDDelegate to worker

If a tool call is BLOCKED: STOP. Create a task, spawn a worker.

No exceptions for "simple" tasks. Even a single-file read-and-report MUST go through spawn_agent.


Shared Constants

  • Session prefix: BRS
  • Session path: .workflow/.team/BRS-<slug>-<date>/
  • CLI tools: ccw cli --mode analysis (read-only), ccw cli --mode write (modifications)
  • Message bus: mcp__ccw-tools__team_msg(session_id=<session-id>, ...)

Worker Spawn Template

Coordinator spawns workers using this template:

spawn_agent({
  agent_type: "team_worker",
  task_name: "<task-id>",
  fork_context: false,
  items: [
    { type: "text", text: `## Role Assignment
role: <role>
role_spec: <skill_root>/roles/<role>/role.md
session: <session-folder>
session_id: <session-id>
requirement: <topic-description>
inner_loop: false

Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.` },

    { type: "text", text: `## Task Context
task_id: <task-id>
title: <task-title>
description: <topic-description>
pipeline_phase: <pipeline-phase>` },

    { type: "text", text: `## Upstream Context
<prev_context>` }
  ]
})

After spawning, use wait_agent({ targets: [...], timeout_ms: 900000 }) to collect results, then close_agent({ target: <name> }) each worker.

Parallel ideator spawn (Full pipeline with N angles):

When Full pipeline has N parallel IDEA tasks, spawn N distinct team-worker agents named ideator-1, ideator-2, etc.

spawn_agent({
  agent_type: "team_worker",
  task_name: "ideator-<N>",
  fork_context: false,
  items: [
    { type: "text", text: `## Role Assignment
role: ideator
role_spec: <skill_root>/roles/ideator/role.md
session: <session-folder>
session_id: <session-id>
requirement: <topic-description>
agent_name: ideator-<N>
inner_loop: false

Read role_spec file (<skill_root>/roles/ideator/role.md) to load Phase 2-4 domain instructions.` },

    { type: "text", text: `## Task Context
task_id: <task-id>
title: <task-title>
description: <topic-description>
pipeline_phase: <pipeline-phase>` },

    { type: "text", text: `## Upstream Context
<prev_context>` }
  ]
})

After spawning, use wait_agent({ targets: [...], timeout_ms: 900000 }) to collect results, then close_agent({ target: <name> }) each worker.

Model Selection Guide

Rolemodelreasoning_effortRationale
Ideator (IDEA-*)(default)highCreative divergent thinking requires full reasoning
Challenger (CHALLENGE-*)(default)highCritical analysis of ideas needs deep reasoning
Synthesizer (SYNTH-*)(default)mediumAggregation and convergence over generation
Evaluator (EVAL-*)(default)mediumScoring and ranking against criteria

Override model/reasoning_effort in spawn_agent when cost optimization is needed:

spawn_agent({
  agent_type: "team_worker",
  task_name: "<task-id>",
  fork_context: false,
  model: "<model-override>",
  reasoning_effort: "<effort-level>",
  items: [...]
})

User Commands

CommandAction
check / statusView execution status graph, no advancement
resume / continueCheck worker states, advance next step

Session Directory

.workflow/.team/BRS-<slug>-<date>/
├── session.json                    # Session metadata + pipeline + gc_round
├── task-analysis.json              # Coordinator analyze output
├── .msg/
│   ├── messages.jsonl              # Message bus log
│   └── meta.json                   # Session state + cross-role state
├── wisdom/                         # Cross-task knowledge
│   ├── learnings.md
│   ├── decisions.md
│   ├── conventions.md
│   └── issues.md
├── ideas/                          # Ideator output
│   ├── idea-001.md
│   └── idea-002.md
├── critiques/                      # Challenger output
│   ├── critique-001.md
│   └── critique-002.md
├── synthesis/                      # Synthesizer output
│   └── synthesis-001.md
└── evaluation/                     # Evaluator output
    └── evaluation-001.md

Specs Reference

v4 Agent Coordination

Message Semantics

IntentAPIExample
Share idea context across ideatorssend_messageSend seed ideas to running ideator for cross-pollination
Not used in this skillassign_taskNo resident agents -- all workers are one-shot
Check running agentslist_agentsVerify parallel ideator health during Full pipeline

Parallel Ideator Coordination (Full Pipeline)

Full pipeline spawns N parallel ideators for different brainstorming angles. Use batch spawn + wait:

// Spawn N ideators in parallel, each with a different angle
const ideatorNames = ["IDEA-001", "IDEA-002", "IDEA-003"]
for (const name of ideatorNames) {
  spawn_agent({ agent_type: "team_worker", task_name: name, fork_context: false, ... })
}
wait_agent({ targets: ideatorNames, timeout_ms: 900000 })
// Collect all idea outputs, feed to challenger as upstream context

Agent Health Check

Use list_agents({}) in handleResume and handleComplete:

// Reconcile session state with actual running agents
const running = list_agents({})
// Compare with tasks.json active_agents
// Reset orphaned tasks (in_progress but agent gone) to pending

Named Agent Targeting

Workers are spawned with task_name: "<task-id>" enabling direct addressing:

  • send_message({ target: "IDEA-002", items: [...] }) -- share context from another ideator
  • close_agent({ target: "IDEA-001" }) -- cleanup by name after wait_agent returns

Error Handling

ScenarioResolution
Unknown commandError with available command list
Role not foundError with role registry
CLI tool failsWorker fallback to direct implementation
Fast-advance conflictCoordinator reconciles on next callback
Completion action failsDefault to Keep Active
Generator-Critic loop exceeds 2 roundsForce convergence to synthesizer
No ideas generatedCoordinator prompts with seed questions
Repository
catlog22/Claude-Code-Workflow
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.