--- title: Discussion Roles type: entity updated: 2026-05-04 --- # Discussion Roles Roles define participants in a meeting-room discussion. Each role binds to a provider, model, temperature, tool set, and system prompt. ## General discussion roles | Role | Purpose | Default tools | |------|---------|-------------| | moderator | Guide conversation, summarize, keep on-topic | none | | skeptic | Find weaknesses, ask hard questions, counter-argue | readonly | | idea_generator | Propose unconventional solutions, search web for inspiration | web | | analyst | Structure arguments, assess risks, propose action plans | all | ## Code review roles | Role | Purpose | Default tools | |------|---------|-------------| | defender | Defend code decisions, explain rationale | readonly | | attacker | Ruthlessly find bugs, style violations, dead code | readonly | | security | Check vulnerabilities, injection, CVEs | web | | moderator | Structure review findings into CRITICAL/IMPORTANT/MINOR | none | ## Role configuration ```yaml roles: my_role: name: "Display Name" provider: openai # provider key from providers section model: "gpt-4o" temperature: 0.7 # 0.0 = deterministic, 1.0 = creative tools: "readonly" # tool set name or list ["read_file", "web_search"] system_prompt: | Your instructions here... ``` ## Cross-LLM review Assign different `provider` values to roles so separate LLMs cross-check each other. The defender uses one model, the attacker uses another — each catches what the other misses.