From design-council
Convene parallel role-specialized agents to debate cross-domain technical decisions like architecture pivots, API surfaces, or codebase audits, producing a decision log.
npx claudepluginhub sjsyrek/design-councilThis skill uses the workspace's default tool permissions.
Convene a **parallel team of role-specialized agents** to debate a non-trivial technical decision (or audit a codebase in Review mode) in real time. The invoking Claude is **CEO**: convenes, routes peer-DMs, arbitrates deadlocks, writes a one-page decision log. Every teammate has its own context — not a subagent inheriting yours — so disagreement is structural, not simulated.
references/decision-log-template.mdreferences/implementation-handoff.mdreferences/opening-prompt-template.mdreferences/protocol.mdreferences/review-mode.mdreferences/roles/accessibility-specialist.mdreferences/roles/devops-engineer.mdreferences/roles/domain-expert.mdreferences/roles/finops-engineer.mdreferences/roles/historian.mdreferences/roles/integration-engineer.mdreferences/roles/legal-compliance.mdreferences/roles/performance-engineer.mdreferences/roles/platform-engineer.mdreferences/roles/principal-engineer.mdreferences/roles/product-manager.mdreferences/roles/qa-engineer.mdreferences/roles/security-engineer.mdreferences/roles/technical-writer.mdreferences/roles/test-engineer.mdOrchestrates dynamic agent teams for iterative peer-to-peer debates on decisions, producing tradeoff maps via step-back moderation and contention analysis.
Convenes four-voice council (Architect, Skeptic, Pragmatist, Critic) for ambiguous decisions, tradeoffs, and go/no-go calls with multiple valid paths needing structured disagreement.
Spawns parallel agents with distinct cognitive personas to deliberate on questions, research codebase files, and synthesize opinionated verdicts. For multi-viewpoint analysis of decisions, designs, or strategies.
Share bugs, ideas, or general feedback.
Convene a parallel team of role-specialized agents to debate a non-trivial technical decision (or audit a codebase in Review mode) in real time. The invoking Claude is CEO: convenes, routes peer-DMs, arbitrates deadlocks, writes a one-page decision log. Every teammate has its own context — not a subagent inheriting yours — so disagreement is structural, not simulated.
go, swap X for Y, drop X, add X, or abort.HANDSHAKE: 8/8 ok | verdict=PROCEED — so you know every seat actually started.save, amend <note>, or discard.~/.claude/councils/<yyyy-mm-dd>-<slug>/log.md (outside any repo).status: halted partial log, cleans up.Both conditions must hold: (a) decision or review crosses ≥2 specialist domains, and (b) output must survive handoff — a decision log, tracker items, or an execution plan. Natural triggers: "convene the council", "design debate", "council review", "run a design review", "debate this design", "get the team together".
Do NOT invoke for: bug fixes, single-specialist questions, library/tool picks, pure exploration (→ Explore), one-turn sanity checks.
| # | Slug | Owns |
|---|---|---|
| 1 | principal-engineer | Architecture, module boundaries, simplicity (opens the debate) |
| 2 | platform-engineer | Systems, infra, data shape, operational cost, observability |
| 3 | integration-engineer | Downstream consumers, third-party developers, backwards compat |
| 4 | test-engineer | TDD, mutation ritual, coverage, assertion hygiene |
| 5 | qa-engineer | User flows ↔ spec alignment, regression surface, manual test plan |
| 6 | security-engineer | Input validation, secrets, path safety, error sanitization |
| 7 | performance-engineer | Batching, memory, concurrency, measurement-before-optimization |
| 8 | product-manager | UX alignment, product coherence, best-practice conformance |
| 9 | ui-ux-designer | Ergonomics, visual consistency, interaction design |
| 10 | accessibility-specialist | a11y, keyboard nav, screen reader, contrast |
| 11 | technical-writer | Docs, in-app help, CHANGELOG, API reference |
Opt-ins: devops-engineer (deploy risk, CI/CD, rollback), finops-engineer (cloud/API cost), legal-compliance (privacy, licensing), domain-expert (subject-matter SME), historian (codebase precedent on mature repos).
Dynamic sizing is the default, not an exception. No runtime UI → drop ui-ux + a11y. No user input / no infra → drop security + platform. Internal-tooling defaults can be 4–6 seats. Full 11+opt-ins only when every role-lens applies. The CEO decides at Phase 0 and surfaces the roster in the plan card.
Default: Opus for synthesis-heavy seats (principal-engineer, product-manager, technical-writer, historian) and Sonnet for analytical seats (test, performance, platform, qa). Override all → Opus on a high-quality-bar framing. The plan card shows which seats got which model; users can adjust before spawn.
references/review-mode.md.| Phase | Name | CEO does |
|---|---|---|
| 0 | Plan card | Draft roster + models + budget + opening question; show to user; wait for go |
| 1 | Brief | Gather binding constraints verbatim (CLAUDE.md, spec, memory, tracker); self-audit — grep auto-memory + prior decision logs for entries about the council skill; flag any memory-vs-skill contradiction and follow memory; write everything to ~/.claude/councils/<slug>/brief.md once; draft opening prompt |
| 2 | Convene | TeamCreate + parallel Agent spawns in one multi-tool-call message; every spawn prompt points to brief.md (prompt-cache hits across seats) |
| 2.5 | Handshake verify | Count incoming handshake DMs; inspect team config for empty tmuxPaneId; remediate or drop silent-spawn failures; emit HANDSHAKE: N/N ok line |
| 3 | Cross-talk | Route peer DMs, ask narrowing questions, bridge converged tracks; 3-round hard cap. Skipped by default in Review mode. |
| 4 | Arbitrate | Write decision + rationale for every unresolved disagreement. Escalate strategic/legal/budget to user. Every DEFER needs a revisit criterion + filed tracker item (if a tracker is detected). |
| 5 | Log + teardown | Post draft log to chat; on user save, persist to ~/.claude/councils/. Broadcast shutdown_request, wait for acks, TeamDelete. |
Full protocol: references/protocol.md. Opening-prompt scaffold: references/opening-prompt-template.md. Decision-log scaffold: references/decision-log-template.md. Role briefs: references/roles/<slug>.md.
Every spawn prompt must inline these four delivery rules. Skipping them silently breaks the council:
SendMessage(to: "team-lead") is the ONLY channel to the CEO. Plain-text output is invisible.SendMessage. Writing as plain text then going idle drops work on the floor. Protocol responses (shutdown_response, plan_approval_response) use their structured JSON form — prose acks don't close the protocol state and will block teardown.summary field is ≤200 chars — do not put substantive content there.Canonical wording with peer-DM addressing: references/protocol.md Phase 2.
references/implementation-handoff.md).brief.md and every spawn prompt. Cannot be forgotten mid-debate.~/.claude/councils/.references/protocol.md, memory wins — it was written after a real failure. Flag the contradiction in brief.md, follow memory, record the drift in the decision log's emergent-insights appendix.| # | Mode | Guard |
|---|---|---|
| 1 | Sequential-thinking regression | Parallel-spawn template is mandatory (Phase 2) |
| 2 | Runaway debate | 3-round cross-talk cap |
| 3 | Silent CEO | Every unresolved item requires written decision |
| 4 | Constraint re-discovery mid-debate | brief.md is pre-written and cached |
| 5 | Leaked decision logs | Default path is outside any repo |
| 6 | Zombie teammates | Teardown is protocol-enforced |
| 7 | Silent spawn failure | Phase 2.5 handshake verification |
| 8 | Plain-text findings lost to floor | Universal rule #3 in every spawn prompt |
| 9 | Silent-promise DEFERs | Phase 5 tracker-ID-or-demote gate |
Harness gotchas (worktree cwd leaks, commit-hook races, tracker-state pollution, mixed-base merges, CHANGELOG conflicts) live in references/implementation-handoff.md — loaded only when the CEO reaches the shipping sub-step.
references/tracker-integration.md.teammateMode setting): optional Claude Code harness feature, not a plugin requirement.using-agent-skills — meta-skill for skill discovery.spec-driven-development — often runs BEFORE a council, to produce the spec being debated.planning-and-task-breakdown — often runs AFTER a council, to decompose the decision into implementable tasks.beads:beads — tracker commonly used for deferred follow-ups.