Agent skill

Council

by affaan-m in affaan-m/ECC

Convene a four-voice council for ambiguous decisions, tradeoffs, and go/no-go calls.

MITAuto-check passedProduct & Project Management

Install Council

skills CLI
$ npx skills add affaan-m/ECC --skill council -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install affaan-m/ECC council --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/council .claude/skills/council && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
council
GitHub stars
277k
Used in
2 other repos
Token cost
~1.6k tokens
SKILL.md length
702 words
Files
1
Skills in repo
683
Repo updated
First seen
Licence
MIT

At a glance

Convene a four-voice council for ambiguous decisions, tradeoffs, and go/no-go calls.

  • Works in 6 steps: Extract the real question → Gather only the necessary context → Form the Architect position first → …
  • Multiple valid paths exist and you need structured disagreement before choosing
  • SKILL.md covers When to Use, When NOT to Use, Roles and Workflow, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Council is an agent skill from affaan-m/ECC. Convene a four-voice council for ambiguous decisions, tradeoffs, and go/no-go calls. Use when multiple valid paths exist and you need structured disagreement before choosing.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Product & Project Management, covering Feature launches and release readiness. The repository describes itself as: The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond. The licence is MIT.

When your agent uses it

  • Multiple valid paths exist and you need structured disagreement before choosing
  • Tasks that involve Feature launches and release readiness

Example prompts

  • “/council”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Extract the real question
  2. Gather only the necessary context
  3. Form the Architect position first
  4. Launch three independent voices in parallel
  5. Synthesize with bias guardrails
  6. Present a compact verdict

What it can do on your machine

Read from SKILL.md and the folder at commit 2d515e4. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Council loads about 1.6k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 702 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~46
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from affaan-m/ECC at commit 2d515e4, republished under its MIT licence (© affaan-m). 702 words, ~1,586 tokens.

Download SKILL.mdSave it as .claude/skills/council/SKILL.md (or your agent's skills folder).
name
council
description
Convene a four-voice council for ambiguous decisions, tradeoffs, and go/no-go calls. Use when multiple valid paths exist and you need structured disagreement before choosing.
metadata.origin
ECC

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 councilUse
Verifying whether output is correctsanta-method
Breaking a feature into implementation stepsplanner
Designing system architecturearchitect
Reviewing code for bugs or securitycode-reviewer or santa-method
Straight factual questionsjust answer directly
Obvious execution tasksjust do the task

Roles

VoiceLens
Architectcorrectness, maintainability, long-term implications
Skepticpremise challenge, simplification, assumption breaking
Pragmatistshipping speed, user impact, operational reality
Criticedge 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
Show full SKILL.md (249 more words)Show less
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
  • 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.

© affaan-m, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/council of affaan-m/ECC.

Open the folder on GitHubat commit 2d515e4

Used in 2 other repositories

We found 3 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in affaan-m/ECC, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Council next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Council compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Council this skillaffaan-m/ECC277k2 repos~1.6kAutomated safety check: PassMIT
.NET MAUI Release Readinessdotnet/maui23k—~15kAutomated safety check: PassMIT
Release ValidationMesh-LLM/mesh-llm3.5k—~2.6kAutomated safety check: PassApache-2.0
Final Release Reviewopenai/openai-agents-python30k—~5.4kAutomated safety check: PassMIT
Final Release Reviewopenai/openai-agents-js3.9k—~4kAutomated safety check: PassMIT
Acceptance Demo GeneratorChachamaru127/claude-code-harness3.2k—~3.4kAutomated safety check: NotesMIT

Similar skills

  • Official

    Produces evidence-backed ship-readiness verdicts for .NET MAUI Servicing Releases and Previews, and drafts public-safe release handoff pages from the result.

    23k GitHub stars~15k tokensUpdated yesterday
    Product & Project ManagementAuto-check passed
  • Release Validation

    Mesh-LLM/mesh-llm

    A skill your agent uses when validating a MeshLLM release candidate or current HEAD against the last GitHub release, assembling the canonical feature/fix/modification inventory, testing locally…

    3.5k GitHub stars~2.6k tokensUpdated today
    Product & Project ManagementAuto-check passed
  • Final Release Review

    openai/openai-agents-python

    Official

    Assess a Python SDK release candidate or release plan against the previous release and recommend ship or block.

    30k GitHub stars~5.4k tokensUpdated 2 days ago
    Product & Project ManagementAuto-check passed
  • Final Release Review

    openai/openai-agents-js

    Official

    Assess a JS SDK release candidate or release plan against the previous release and recommend ship or block.

    3.9k GitHub stars~4k tokensUpdated yesterday
    Product & Project ManagementAuto-check passed
  • Acceptance Demo Generator

    Chachamaru127/claude-code-harness

    Renders a single HTML page showing each acceptance criterion as verified or not, with a ship, wait, or reject recommendation for non-engineers.

    3.2k GitHub stars~3.4k tokensUpdated 6 days ago
    Product & Project ManagementAuto-check: notes
  • Schematic

    blader/schematic

    Reverse engineer a detailed product and technical specification document from a git branch's implementation.

    241 GitHub stars~2.2k tokensUpdated 7 mo ago
    Product & Project ManagementAuto-check passed

More from affaan-m/ECC

All 682 skills in this repo
  • Skill Stocktake

    affaan-m/ECC

    Audits your installed Claude skills and commands for quality, with a quick mode for recently changed skills and a full mode that evaluates all of them through subagents.

    277k GitHub starsUsed in 5 repos~3.1k tokens
    Auto-check passed
  • Ingests, indexes, searches, edits and monitors video, audio and live streams through the VideoDB Python SDK, returning stream links, clips and timestamps.

    277k GitHub starsUsed in 3 repos~3.5k tokens
    Auto-check: notes
  • Docs Governance

    affaan-m/ECC

    Route broad documentation-governance requests to existing ECC skills and run an opt-in, read-only audit of mapped documentation roles, links, ADR indexes, and evidence references.

    277k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Rules Distillation

    affaan-m/ECC

    Scans installed skills for principles that recur across them and proposes rule-file changes: append, revise, add a section, create a file or leave as covered.

    277k GitHub starsUsed in 2 repos~2.3k tokens
    Auto-check passed
  • Builds DRAFT counterparty agreements from one markdown template and a small JSON spec per party, with clauses picked by the party's role.

    277k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Set an ECC-specific frontend design direction for production UI work.

    277k GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed

Questions about Council

What does Council do?

Convene a four-voice council for ambiguous decisions, tradeoffs, and go/no-go calls. Council is an agent skill from affaan-m/ECC. Convene a four-voice council for ambiguous decisions, tradeoffs, and go/no-go calls.

When should I use Council?

Council fits situations like: multiple valid paths exist and you need structured disagreement before choosing; tasks that involve Feature launches and release readiness.

How do I install Council in Claude Code?

Run `npx skills add affaan-m/ECC --skill council -a claude-code`. Or copy the skill folder (skills/council in affaan-m/ECC) into .claude/skills/council in your project. Claude Code loads it when a task matches its description.

How do I install Council in Codex?

Run `npx skills add affaan-m/ECC --skill council -a codex`. Or copy the skill folder (skills/council in affaan-m/ECC) into .agents/skills/council in your project. Codex loads it when a task matches its description.

Can I use Council in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add affaan-m/ECC --skill council -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/council, .gemini/skills/council, .github/skills/council and .opencode/skills/council in your project.

What does Council need to run?

SKILL.md names no scripts, command-line tools or credentials: Council is instructions for the agent only.

Does Council access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Council safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Council use?

Council is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Council use?

About 1.6k tokens (SKILL.md is roughly 6.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Council?

Skills that share tags, products or a category with Council: .NET MAUI Release Readiness (dotnet/maui, 23k stars), Release Validation (Mesh-LLM/mesh-llm, 3.5k stars), Final Release Review (openai/openai-agents-python, 30k stars) and Final Release Review (openai/openai-agents-js, 3.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Council?

affaan-m (a GitHub user) maintains it in affaan-m/ECC, which has 276,673 GitHub stars. The repository holds 683 skills in this directory. The repository was last updated on October 11, 2026.

Source: affaan-m/ECC on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.