council
affaan-m/ECC
모호한 의사결정, 진행 여부 판단, 그리고 다중 경로 선택에 대해 구조화된 이견과 트레이드오프를 도출하기 위해 4명의 고문으로 구성된 자문회의를 소집하십시오.
...모든 것을 확장하십시오이사회
모호한 결정에 대해 네 명의 고문을 소집합니다:
- 인맥락 클로드(Cloud) 목소리
- 회의론자 서브에이전트
- 실용주의자 서브에이전트
- 비평가 서브에이전트
이는 모호성 하의 의사결정을 위한 것이며, 코드 검토, 구현 계획 또는 아키텍처 설계가 아닙니다.
사용 시기
다음과 같은 상황에서 이사회를 사용하십시오:
- 결정 가능한 여러 신뢰할 수 있는 경로가 존재하며 명확한 승자가 없는 경우
- 명시적인 트레이드오프를 표면화해야 하는 경우
- 사용자가 이견, 반대 의견 또는 다중 관점을 요청하는 경우
- 대화적 고정(anchoring) 위험이 실제로 존재하는 경우
- 적대적 검증이 필요한 승인/거부 판단이 필요한 경우
예시:
- 단일 저장소(monorepo) 대 다중 저장소(polyrepo)
- 즉시 출시 대 다듬기 위해 보류
- 기능 플래그 대 전체 롤아웃
- 범위 단순화 대 전략적 폭도 유지
사용하지 않을 때
| 이사회 대신 | 사용 |
|---|---|
| 출력물이 정확한지 검증하는 경우 | `santa-method` |
| 기능을 구현 단계로 분할하는 경우 | `planner` |
| 시스템 아키텍처를 설계하는 경우 | `architect` |
| 코드 버그 또는 보안 검토 | `code-reviewer` 또는 `santa-method` |
| 단순 사실 질문 | 직접 답변 |
| 명확한 실행 작업 | 작업 수행 |
역할
| 목소리 | 시점 |
|---|---|
| 아키텍트 | 정확성, 유지보수성, 장기적 영향 |
| 회의론자 | 전제 도전, 단순화, 가정 파괴 |
| 실용주의자 | 출시 속도, 사용자 영향, 운영 현실 |
| 비평가 | 경계 사례, 하향 위험, 실패 모드 |
세 명의 외부 목소리는 전체 진행 중인 대화 대신 질문과 관련 컨텍스트만 포함하여 새로운 서브에이전트로 시작해야 합니다. 이것이 고정 방지 메커니즘입니다.
워크플로우
1. 실제 질문 추출
결정을 하나의 명시적 프롬프트로 축소하십시오:
- 무엇을 결정하고 있는가?
- 어떤 제약 조건이 중요한가?
- 성공의 기준은 무엇인가?
질문이 모호한 경우, 이사회를 소집하기 전에 명확한 질문을 하나 던지십시오.
2. 필요한 컨텍스트만 수집
결정이 코드베이스에 특정한 경우:
- 관련 파일, 코드 조각, 이슈 텍스트 또는 지표 수집
- 간결하게 유지
- 결정에 필요한 컨텍스트만 포함
결정이 전략적이거나 일반적인 경우:
- 답변에 실질적 영향을 미치는 경우에만 저장소 코드 조각 포함
3. 아키텍트 입장 먼저 형성
다른 목소리를 읽기 전에 다음을 기록하십시오:
- 초기 입장
- 이를 지지하는 세 가지 강력한 이유
- 선호하는 경로의 주요 위험
이것을 먼저 수행하여 종합이 외부 목소리를 단순히 반영하지 않도록 하십시오.
4. 세 개의 독립적인 목소리를 병렬로 실행
각 서브에이전트에 다음을 제공하십시오:
- 결정 질문
- 필요한 경우 간결한 컨텍스트
- 엄격한 역할
- 불필요한 대화 기록 없음
프롬프트 형태:
당신은 네 가지 목소리로 구성된 의사결정 이사회에서 [ROLE]입니다.
질문:
[decision question]
컨텍스트:
[관련 코드 조각 또는 제약 조건만]
다음과 응답하십시오:
1. 입장 — 1-2문장
2. 추론 — 간결한 불릿 포인트 3개
3. 위험 — 권장 사항의 최대 위험
4. 놀라움 — 다른 목소리가 놓칠 수 있는 한 가지 사항
직설적으로 답변하십시오. 유보 없이 300단어 이내로 유지하십시오.
역할 강조:
- 회의론자: 프레임워크 도전, 가정 질문, 가장 간단한 신뢰할 수 있는 대안 제안
- 실용주의자: 속도, 단순성, 실제 실행 최적화
- 비평가: 하향 위험, 경계 사례, 계획이 실패할 이유 표면화
5. 편향 방지 장벽으로 종합
당신은 참여자이자 종합자이므로 다음 규칙을 사용하십시오:
- 이유를 설명하지 않고 외부 관점을 거부하지 마십시오
- 외부 목소리가 권장 사항을 변경한 경우 명시적으로 언급하십시오
- 거부하더라도 가장 강력한 이견을 항상 포함하십시오
- 두 목소리가 초기 입장 반대에서 일치하는 경우 이를 실제 신호로 취급하십시오
- 최종 판결 전 원본 입장을 가시적으로 유지하십시오
6. 간결한 판결 제시
다음 출력 형태를 사용하십시오:
## 이사회: [짧은 결정 제목]
**아키텍트:** [1-2문장 입장]
[이유 1줄]
**회의론자:** [1-2문장 입장]
[이유 1줄]
**실용주의자:** [1-2문장 입장]
[이유 1줄]
**비평가:** [1-2문장 입장]
[이유 1줄]
### 판결
- **합의:** [일치 지점]
- **최강 이견:** [가장 중요한 불일치]
- **전제 검토:** [회의론자가 질문 자체에 도전했는가?]
- **권장 사항:** [종합된 경로]
휴대전화 화면에서 쉽게 스캔할 수 있도록 간결하게 유지하십시오.
지속성 규칙
이 스킬에서 ~/.claude/notes 또는 기타 숨겨진 경로에 임시 메모를 작성하지 마십시오.
이사회가 권장 사항을 실질적으로 변경하는 경우:
knowledge-ops를 사용하여 교훈을 적절한 영구 위치에 저장하십시오- 또는 결과가 세션 메모에 속하는 경우
/save-session을 사용하십시오 - 또는 결정이 활성 실행 진실을 변경하는 경우 관련 GitHub / Linear 이슈를 직접 업데이트하십시오
실제로 무언가를 변경하는 결정일 때만 지속하십시오.
다중 라운드 후속 조치
기본값은 한 라운드입니다.
사용자가 추가 라운드를 원하는 경우:
- 새 질문을 집중적으로 유지하십시오
- 이전 판결이 필요한 경우에만 포함하십시오
- 고정 방지 가치를 보존하기 위해 회의론자를 최대한 깔끔하게 유지하십시오
안티 패턴
- 코드 검토에 이사회 사용
- 작업이 단순 구현 작업일 때 이사회 사용
- 서브에이전트에 전체 대화 기록 제공
- 최종 판결에서 불일치 숨기기
- 중요도와 관계없이 모든 결정을 메모로 지속
관련 스킬
santa-method— 적대적 검증knowledge-ops— 영구 결정 델타 올바르게 지속search-first— 필요시 이사회 전 외부 참조 자료 수집architecture-decision-records— 결정이 장기 시스템 정책이 될 때 결과 공식화
예시
질문:
ECC 2.0을 지금 알파 버전으로 출시할지, 아니면 제어平面 UI가 더 완성될 때까지 보류할지 결정해야 합니다.
예상 이사회 형태:
- 아키텍트는 구조적 무결성과 혼란스러운 표면 회피를 주장
- 회의론자는 UI가 실제로 게이트 키핑 요인인지 의문 제기
- 실용주의자는 신뢰를 해치지 않고 현재 출시할 수 있는 것이 무엇인지 질문
- 비평자는 지원 부담, 기대치 부채, 롤아웃 혼란에 집중
가치는 만장일치가 아닙니다. 가치는 선택하기 전에 불일치를 명확하게 만드는 데 있습니다.
---
name: council
description: Convene a four-voice council of advisors to surface structured disagreement and tradeoffs for ambiguous decisions, go/no-go calls, and multi-path choices.
---
# Council
Convene four advisors for ambiguous decisions:
- the in-context Claude voice
- a Skeptic subagent
- a Pragmatist subagent
- a Critic subagent
This is for **decision-making under ambiguity**, not code review, implementation planning, or architecture design.
## When to Use
Use council when:
- a decision has multiple credible paths and no obvious winner
- you need explicit tradeoff surfacing
- the user asks for second opinions, dissent, or multiple perspectives
- conversational anchoring is a real risk
- a go / no-go call would benefit from adversarial challenge
Examples:
- monorepo vs polyrepo
- ship now vs hold for polish
- feature flag vs full rollout
- simplify scope vs keep strategic breadth
## When NOT to Use
| Instead of council | Use |
| --- | --- |
| Verifying whether output is correct | `santa-method` |
| Breaking a feature into implementation steps | `planner` |
| Designing system architecture | `architect` |
| Reviewing code for bugs or security | `code-reviewer` or `santa-method` |
| Straight factual questions | just answer directly |
| Obvious execution tasks | just do the task |
## Roles
| Voice | Lens |
| --- | --- |
| Architect | correctness, maintainability, long-term implications |
| Skeptic | premise challenge, simplification, assumption breaking |
| Pragmatist | shipping speed, user impact, operational reality |
| Critic | edge cases, downside risk, failure modes |
The three external voices should be launched as fresh subagents with **only the question and relevant context**, not the full ongoing conversation. That is the anti-anchoring mechanism.
## Workflow
### 1. Extract the real question
Reduce the decision to one explicit prompt:
- what are we deciding?
- what constraints matter?
- what counts as success?
If the question is vague, ask one clarifying question before convening the council.
### 2. Gather only the necessary context
If the decision is codebase-specific:
- collect the relevant files, snippets, issue text, or metrics
- keep it compact
- include only the context needed to make the decision
If the decision is strategic/general:
- skip repo snippets unless they materially change the answer
### 3. Form the Architect position first
Before reading other voices, write down:
- your initial position
- the three strongest reasons for it
- the main risk in your preferred path
Do this first so the synthesis does not simply mirror the external voices.
### 4. Launch three independent voices in parallel
Each subagent gets:
- the decision question
- compact context if needed
- a strict role
- no unnecessary conversation history
Prompt shape:
```text
You are the [ROLE] on a four-voice decision council.
Question:
[decision question]
Context:
[only the relevant snippets or constraints]
Respond with:
1. Position — 1-2 sentences
2. Reasoning — 3 concise bullets
3. Risk — biggest risk in your recommendation
4. Surprise — one thing the other voices may miss
Be direct. No hedging. Keep it under 300 words.
```
Role emphasis:
- Skeptic: challenge framing, question assumptions, propose the simplest credible alternative
- Pragmatist: optimize for speed, simplicity, and real-world execution
- Critic: surface downside risk, edge cases, and reasons the plan could fail
### 5. Synthesize with bias guardrails
You are both a participant and the synthesizer, so use these rules:
- do not dismiss an external view without explaining why
- if an external voice changed your recommendation, say so explicitly
- always include the strongest dissent, even if you reject it
- if two voices align against your initial position, treat that as a real signal
- keep the raw positions visible before the verdict
### 6. Present a compact verdict
Use this output shape:
```markdown
## Council: [short decision title]
**Architect:** [1-2 sentence position]
[1 line on why]
**Skeptic:** [1-2 sentence position]
[1 line on why]
**Pragmatist:** [1-2 sentence position]
[1 line on why]
**Critic:** [1-2 sentence position]
[1 line on why]
### Verdict
- **Consensus:** [where they align]
- **Strongest dissent:** [most important disagreement]
- **Premise check:** [did the Skeptic challenge the question itself?]
- **Recommendation:** [the synthesized path]
```
Keep it scannable on a phone screen.
## Persistence Rule
Do **not** write ad-hoc notes to `~/.claude/notes` or other shadow paths from this skill.
If the council materially changes the recommendation:
- use `knowledge-ops` to store the lesson in the right durable location
- or use `/save-session` if the outcome belongs in session memory
- or update the relevant GitHub / Linear issue directly if the decision changes active execution truth
Only persist a decision when it changes something real.
## Multi-Round Follow-up
Default is one round.
If the user wants another round:
- keep the new question focused
- include the previous verdict only if it is necessary
- keep the Skeptic as clean as possible to preserve anti-anchoring value
## Anti-Patterns
- using council for code review
- using council when the task is just implementation work
- feeding the subagents the entire conversation transcript
- hiding disagreement in the final verdict
- persisting every decision as a note regardless of importance
## Related Skills
- `santa-method` — adversarial verification
- `knowledge-ops` — persist durable decision deltas correctly
- `search-first` — gather external reference material before the council if needed
- `architecture-decision-records` — formalize the outcome when the decision becomes long-lived system policy
## Example
Question:
```text
Should we ship ECC 2.0 as alpha now, or hold until the control-plane UI is more complete?
```
Likely council shape:
- Architect pushes for structural integrity and avoiding a confused surface
- Skeptic questions whether the UI is actually the gating factor
- Pragmatist asks what can be shipped now without harming trust
- Critic focuses on support burden, expectation debt, and rollout confusion
The value is not unanimity. The value is making the disagreement legible before choosing.
모든 파일
1개 파일council 설치
스킬 파일을 다운로드하여 .claude/skills/ 디렉토리에 추출하세요.
ZIP 다운로드저장소를 클론하고 스킬 파일을 프로젝트에 복사하세요.
git clone https://github.com/affaan-m/ECC/tree/main/skills/council # Copy SKILL.md to your .claude/skills/ directory
복사





집
