From design-council
Convenes parallel role-specialized agents (principal engineer, platform, integration, test, QA, security) to debate cross-domain technical decisions or audit codebases in real time. The invoking Claude acts as CEO, routing peer DMs and producing a one-page decision log.
How this skill is triggered — by the user, by Claude, or both
Slash command
/design-council:design-councilThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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/sre-engineer.mdreferences/roles/technical-writer.mdConvene 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.Invocation: /design-council:design-council [decision-or-focus] or any of the trigger phrases below.
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), sre-engineer (production reliability, SLOs, blast radius, rollback validation; pair with devops-engineer when production stakes are high), finops-engineer (cloud/API cost, unit economics, resource lifecycle), 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.npx claudepluginhub sjsyrek/design-councilAssembles a multi-perspective deliberation committee with adversarial review, external LLM opinions, and community sentiment analysis. Outputs a Tradeoff Map with contention points and step-back insights.
Orchestrates design debates with 5-agent team to compare architectures, implementation options, tradeoffs, and generate ADRs. Use for technical decisions like API design, library selection, or multiple approaches.
Convenes four advisory voices (Architect, Skeptic, Pragmatist, Critic) to surface tradeoffs and structured disagreement for ambiguous decisions with multiple valid paths.