Multi-Agent Debate Engine

Council

by danielmiessler · MIT license · ★ 19,269 on GitHub · v1.1.20

Council cover

Multi-agent collaborative debate producing visible round-by-round transcripts with real intellectual friction — members are topic-briefed custom agents, run as a 3-round DEBATE or a 1-round QUICK check, to find the best path. USE WHEN…

---
name: Council
version: 1.1.20
description: "Multi-agent collaborative debate producing visible round-by-round transcripts with real intellectual friction — members are topic-briefed custom agents, run as a 3-round DEBATE or a 1-round QUICK check, to find the best path. USE WHEN council, debate, multiple perspectives, weigh options, deliberate, get different views, what would experts say, pros and cons. NOT FOR pure adversarial attack (use RedTeam)."
context: fork
background: false
---

## Customization

**Before executing, check for user customizations at:**
`~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Council/`

If this directory exists, load and apply any PREFERENCES.md, configurations, or resources found there. These override default behavior. If the directory does not exist, proceed with skill defaults.


## MANDATORY: Voice Notification (REQUIRED BEFORE ANY ACTION)

Overview

Before executing, check for user customizations at: ~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Council/

Manual install (npx, ZIP)
Claude Codenpx skills add danielmiessler/LifeOS --skill Council -g -a claude-code
Claude Code (degit)npx degit danielmiessler/LifeOS/LifeOS/install/skills/Council#main ~/.claude/skills/council
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md6.4 KB
Read SKILL.md here
danielmiessler/main1 file shown
SKILL.md
Show the full text140 lines

Customization

Before executing, check for user customizations at: ~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Council/

If this directory exists, load and apply any PREFERENCES.md, configurations, or resources found there. These override default behavior. If the directory does not exist, proceed with skill defaults.

MANDATORY: Voice Notification (REQUIRED BEFORE ANY ACTION)

You MUST send this notification BEFORE doing anything else when this skill is invoked.

  1. Send voice notification:

    curl -s -X POST http://localhost:31337/notify \
      -H "Content-Type: application/json" \
      -d '{"message": "Running the WORKFLOWNAME workflow in the Council skill to ACTION"}' \
      > /dev/null 2>&1 &
    
  2. Output text notification:

    Running the **WorkflowName** workflow in the **Council** skill to ACTION...
    

This is not optional. Execute this curl command immediately upon skill invocation.

Council Skill

What It Does

Runs a multi-agent debate. Custom-composed agents discuss a topic over rounds, respond to each other's actual points, and surface insights through real intellectual friction. You get a visible round-by-round transcript plus a synthesis. DEBATE runs three rounds; QUICK runs one for a fast perspective check.

The Problem

When you ask one model for an opinion, you get one frame and one set of blind spots. Asking for "pros and cons" gives you a flat list with no one actually pushing back. Real deliberation needs distinct experts who disagree on the merits and argue it out, so the weak parts of an idea get exposed before you commit. Generic built-in agents all sound the same and produce bland agreement; this skill composes topic-specific agents that create genuine friction.

How It Works

Custom-composed agents discuss topics in rounds, respond to each other's points, and surface insights through intellectual friction.

Members Are Custom Briefs

Write each council member inline as a short brief — a name, a role, a stance, and what they'll push on — then launch it with subagent_type: "general-purpose". A bare built-in type with no persona is topic-ignorant and produces bland agreement. The friction comes from four different briefs, each with real domain expertise and a distinct analytical angle.

See CouncilMembers.md for the slot guidance and an example brief.

Key Differentiator from RedTeam: Council is collaborative-adversarial (debate to find best path), while RedTeam is purely adversarial (attack the idea). Council produces visible conversation transcripts; RedTeam produces steelman + counter-argument.

Workflow Routing

Route to the appropriate workflow based on the request.

Trigger Workflow
Full structured debate (3 rounds, visible transcript) Workflows/Debate.md
Quick consensus check (1 round, fast) Workflows/Quick.md

Pure adversarial analysis is not a Council workflow — redirect to the RedTeam skill.

Quick Reference

Workflow Purpose Rounds Output
DEBATE Full structured discussion 3 Complete transcript + synthesis
QUICK Fast perspective check 1 Initial positions only

Context Files

File Content
CouncilMembers.md How to write council member briefs inline
RoundStructure.md Three-round debate structure and timing
OutputFormat.md Transcript format templates

Core Philosophy

Origin: Best decisions emerge from diverse perspectives challenging each other. Not just collecting opinions - genuine intellectual friction where domain-specific experts respond to each other's actual points.

Agents: Every council member is a custom brief you write for the topic, launched with general-purpose. This gives each member a distinct role, stance, and domain expertise. Generic agents produce generic debate; topic-specific briefs produce sharp, informed debate.

Speed: Parallel execution within rounds, sequential between rounds. A 3-round debate of 4 agents = 12 agent calls but only 3 sequential waits. Complete in 40-90 seconds.

Examples

"Council: Should we use WebSockets or SSE?"
-> Write 4 member briefs (real-time architect, frontend-DX, ops skeptic, researcher)
-> DEBATE workflow -> 3-round transcript

"Quick council check: Is this API design reasonable?"
-> Write 4 member briefs with API-relevant roles
-> QUICK workflow -> Fast perspectives

"Council: Is AI overhyped?"
-> Write briefs: AI builder, security skeptic, pragmatic engineer, evidence analyst
-> DEBATE workflow -> 3-round transcript

Integration

Works well with:

  • RedTeam - Pure adversarial attack after collaborative discussion
  • Research - Gather context before convening the council

Best Practices

  1. Use QUICK for sanity checks, DEBATE for important decisions
  2. Write each member's brief around the specific topic, not a generic role
  3. Give each member a distinct stance — four identical agents produce no friction

Last Updated: 2026-03-18

Gotchas

  • Council members are inline briefs launched with general-purpose — there is no composition tool. Write four different topic-specific briefs; don't launch bare built-in types with no persona.
  • Debates need genuine disagreement to be valuable. If all agents agree, the topic may not warrant Council.
  • More agents ≠ better debate. 4-6 well-briefed agents outperform 12 generic ones.

Execution Log

After completing any workflow, append a single JSONL entry:

echo '{"ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","skill":"Council","workflow":"WORKFLOW_USED","input":"8_WORD_SUMMARY","status":"ok|error","duration_s":SECONDS}' >> ~/.claude/LIFEOS/MEMORY/SKILLS/execution.jsonl

Replace WORKFLOW_USED with the workflow executed, 8_WORD_SUMMARY with a brief input description, and SECONDS with approximate wall-clock time. Log status: "error" if the workflow failed.

1---
2name: Council
3version: 1.1.20
4description: "Multi-agent collaborative debate producing visible round-by-round transcripts with real intellectual friction — members are topic-briefed custom agents, run as a 3-round DEBATE or a 1-round QUICK check, to find the best path. USE WHEN council, debate, multiple perspectives, weigh options, deliberate, get different views, what would experts say, pros and cons. NOT FOR pure adversarial attack (use RedTeam)."
5context: fork
6background: false
7---
8 
9## Customization
10 
11**Before executing, check for user customizations at:**
12`~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Council/`
13 
14If this directory exists, load and apply any PREFERENCES.md, configurations, or resources found there. These override default behavior. If the directory does not exist, proceed with skill defaults.
15 
16 
17## MANDATORY: Voice Notification (REQUIRED BEFORE ANY ACTION)
18 
19**You MUST send this notification BEFORE doing anything else when this skill is invoked.**
20 
211. **Send voice notification**:
22 ```bash
23 curl -s -X POST http://localhost:31337/notify \
24 -H "Content-Type: application/json" \
25 -d '{"message": "Running the WORKFLOWNAME workflow in the Council skill to ACTION"}' \
26 > /dev/null 2>&1 &
27 ```
28 
292. **Output text notification**:
30 ```
31 Running the **WorkflowName** workflow in the **Council** skill to ACTION...
32 ```
33 
34**This is not optional. Execute this curl command immediately upon skill invocation.**
35 
36# Council Skill
37 
38## What It Does
39 
40Runs a multi-agent debate. Custom-composed agents discuss a topic over rounds, respond to each other's actual points, and surface insights through real intellectual friction. You get a visible round-by-round transcript plus a synthesis. DEBATE runs three rounds; QUICK runs one for a fast perspective check.
41 
42## The Problem
43 
44When you ask one model for an opinion, you get one frame and one set of blind spots. Asking for "pros and cons" gives you a flat list with no one actually pushing back. Real deliberation needs distinct experts who disagree on the merits and argue it out, so the weak parts of an idea get exposed before you commit. Generic built-in agents all sound the same and produce bland agreement; this skill composes topic-specific agents that create genuine friction.
45 
46## How It Works
47 
48Custom-composed agents discuss topics in rounds, respond to each other's points, and surface insights through intellectual friction.
49 
50## Members Are Custom Briefs
51 
52Write each council member inline as a short brief — a name, a role, a stance, and what they'll push on — then launch it with `subagent_type: "general-purpose"`. A bare built-in type with no persona is topic-ignorant and produces bland agreement. The friction comes from four *different* briefs, each with real domain expertise and a distinct analytical angle.
53 
54See `CouncilMembers.md` for the slot guidance and an example brief.
55 
56**Key Differentiator from RedTeam:** Council is collaborative-adversarial (debate to find best path), while RedTeam is purely adversarial (attack the idea). Council produces visible conversation transcripts; RedTeam produces steelman + counter-argument.
57 
58 
59## Workflow Routing
60 
61Route to the appropriate workflow based on the request.
62 
63| Trigger | Workflow |
64|---------|----------|
65| Full structured debate (3 rounds, visible transcript) | `Workflows/Debate.md` |
66| Quick consensus check (1 round, fast) | `Workflows/Quick.md` |
67 
68Pure adversarial analysis is not a Council workflow — redirect to the RedTeam skill.
69 
70## Quick Reference
71 
72| Workflow | Purpose | Rounds | Output |
73|----------|---------|--------|--------|
74| **DEBATE** | Full structured discussion | 3 | Complete transcript + synthesis |
75| **QUICK** | Fast perspective check | 1 | Initial positions only |
76 
77## Context Files
78 
79| File | Content |
80|------|---------|
81| `CouncilMembers.md` | How to write council member briefs inline |
82| `RoundStructure.md` | Three-round debate structure and timing |
83| `OutputFormat.md` | Transcript format templates |
84 
85## Core Philosophy
86 
87**Origin:** Best decisions emerge from diverse perspectives challenging each other. Not just collecting opinions - genuine intellectual friction where domain-specific experts respond to each other's actual points.
88 
89**Agents:** Every council member is a custom brief you write for the topic, launched with `general-purpose`. This gives each member a distinct role, stance, and domain expertise. Generic agents produce generic debate; topic-specific briefs produce sharp, informed debate.
90 
91**Speed:** Parallel execution within rounds, sequential between rounds. A 3-round debate of 4 agents = 12 agent calls but only 3 sequential waits. Complete in 40-90 seconds.
92 
93## Examples
94 
95```
96"Council: Should we use WebSockets or SSE?"
97-> Write 4 member briefs (real-time architect, frontend-DX, ops skeptic, researcher)
98-> DEBATE workflow -> 3-round transcript
99 
100"Quick council check: Is this API design reasonable?"
101-> Write 4 member briefs with API-relevant roles
102-> QUICK workflow -> Fast perspectives
103 
104"Council: Is AI overhyped?"
105-> Write briefs: AI builder, security skeptic, pragmatic engineer, evidence analyst
106-> DEBATE workflow -> 3-round transcript
107```
108 
109## Integration
110 
111**Works well with:**
112- **RedTeam** - Pure adversarial attack after collaborative discussion
113- **Research** - Gather context before convening the council
114 
115## Best Practices
116 
1171. Use QUICK for sanity checks, DEBATE for important decisions
1182. Write each member's brief around the specific topic, not a generic role
1193. Give each member a distinct stance — four identical agents produce no friction
120 
121---
122 
123**Last Updated:** 2026-03-18
124 
125## Gotchas
126 
127- **Council members are inline briefs launched with `general-purpose` — there is no composition tool.** Write four different topic-specific briefs; don't launch bare built-in types with no persona.
128- **Debates need genuine disagreement to be valuable.** If all agents agree, the topic may not warrant Council.
129- **More agents ≠ better debate.** 4-6 well-briefed agents outperform 12 generic ones.
130 
131## Execution Log
132 
133After completing any workflow, append a single JSONL entry:
134 
135```bash
136echo '{"ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","skill":"Council","workflow":"WORKFLOW_USED","input":"8_WORD_SUMMARY","status":"ok|error","duration_s":SECONDS}' >> ~/.claude/LIFEOS/MEMORY/SKILLS/execution.jsonl
137```
138 
139Replace `WORKFLOW_USED` with the workflow executed, `8_WORD_SUMMARY` with a brief input description, and `SECONDS` with approximate wall-clock time. Log `status: "error"` if the workflow failed.
140 
View all files on GitHub →

Details

Version
1.1.20
License
MIT
Stars on the repo
★ 19,269
Checked
Source
danielmiessler/LifeOS ↗
Creator
danielmiessler · 63 listings
View creator

Similar skills

See all →

More from danielmiessler

SkillScope Oscillation Analyzerdanielmiessler/LifeOS · by danielmiessler3-pass scope oscillation that holds a question constant while shifting zoom — narrow/tactical, wide/strategic, then synthesis — to surface design tensions, scope recommendations, and coherence assessments invisible at any single zoom level. USE WHEN aperture oscillation, oscillate scope, zoom in and out, tactical vs strategic, scope framing, design tension, system coherence check, local vs global design, wrong scope, scope negotiation. NOT FOR lens rotation across angles (use IterativeDepth).★ 19.3k GitHub starsSkillAphorism Library Managerdanielmiessler/LifeOS · by danielmiesslerCurated aphorism collection with CRUD — content-based matching, themed search, thinker research, DB maintenance. Quotes organized by author/theme/context/usage to prevent repetition. Four workflows: FindAphorism, AddAphorism, ResearchThinker, SearchAphorisms. Themes: Stoicism, Wisdom, Truth-seeking, Excellence, Resilience, Curiosity. USE WHEN aphorism, quote, find a quote, research thinker, add aphorism, quote for newsletter, what did X say about, quote bank. NOT FOR creative writing or social posts.★ 19.3k GitHub starsSkillSocial Platform Scraperdanielmiessler/LifeOS · by danielmiesslerScrapes social platforms, business data, and e-commerce via Apify actors — Instagram, LinkedIn, TikTok, YouTube, Facebook, Google Maps, Amazon, and web crawls — filtering in code. USE WHEN scrape Instagram, scrape LinkedIn, scrape TikTok, scrape YouTube, scrape Facebook, Google Maps leads, Amazon reviews, business intelligence, multi-platform social listening, competitive analysis, lead generation, social monitoring, Apify actors, web crawl, extract contacts. NOT FOR X/Twitter account operations like posting, threads, or bookmarks (those need a dedicated X API client), 4-tier progressive scraping with proxy escalation (use BrightData), or real-Chrome bot bypass and computer use (use Interceptor).★ 19.3k GitHub starsSkillVisual Content Generatordanielmiessler/LifeOS · by danielmiesslerStatic visual content across 20+ formats — diagrams, mermaid, infographics, D3 dashboards, comics, icons, wallpaper — via Nano Banana Pro (default), Nano Banana, and Flux. USE WHEN art, illustration, diagram, flowchart, infographic, header image, blog social thumbnail, visualize, generate image, mermaid, architecture diagram, comic, icon, blog art, framework diagram, D3 chart, remove background, wallpaper. NOT FOR locked house-style YouTube/channel/video thumbnails, video or animation (use Remotion), or web UI design and integrated frontend layout (use Webdesign).★ 19.3k GitHub starsSkillArXiv Paper Finderdanielmiessler/LifeOS · by danielmiesslerSearch and retrieve arXiv academic papers by topic, category, or paper ID — with AlphaXiv-enriched AI-generated overviews. Uses arXiv Atom API across cs.AI/cs.LG/cs.CL/cs.CR/cs.MA/cs.SE/cs.IR. Three workflows: Latest, Search, Paper. USE WHEN arxiv, papers, latest papers, research papers, recent ML papers, paper lookup, summarize paper, latest LLM papers, AI safety papers, cs.AI latest. NOT FOR general research (Research), URL parsing, or annual reports.★ 19.3k GitHub starsSkillFiller Removal Audio Editordanielmiessler/LifeOS · by danielmiesslerAI audio editing pipeline: Whisper word-level transcription → Claude segment classification (KEEP/CUT_FILLER/CUT_FALSE_START/CUT_STUTTER/CUT_DEAD_AIR) → ffmpeg with 40ms qsin crossfades and room-tone fill → optional Cleanvoice cloud polish; plus GateScan/GateRepair for noise-gate ticking artifacts. Modes: --preview, --aggressive, --polish. Workflow: Clean. USE WHEN clean audio, edit audio, remove filler words, clean podcast, remove ums, cut dead air, polish audio, trim recording, cut stutters, ticking audio, clicking audio, audio clicks, gate artifacts, popping audio. NOT FOR video composition (use Remotion).★ 19.3k GitHub stars