Skip to content
Back to skills

Council

ASecurity

Answers a strategy or judgment-call question by re-deriving its load-bearing numbers first, then weighing the options through three or more distinct expert voices, then making one call with the condition that would flip it. Use when the user asks a strategy, prioritization, or judgment-call question — which option, what to work on next, is X worth it, should we do A or B, your call, show me the options, what's the best move, is this the right approach — or any decision that rests on a number,...

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 9, 2026
ai-agentsrust

Security analysis

A100/100

Scanned October 9, 2026

npx -y skills add Kohulan/orthonym-skills --skill council --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Council?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Council
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kohulan-council/badge)](https://www.skillsdirectory.com/skills/kohulan-council)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: council
description: Answers a strategy or judgment-call question by re-deriving its load-bearing numbers first, then weighing the options through three or more distinct expert voices, then making one call with the condition that would flip it. Use when the user asks a strategy, prioritization, or judgment-call question — which option, what to work on next, is X worth it, should we do A or B, your call, show me the options, what's the best move, is this the right approach — or any decision that rests on a number, estimate, or recommendation that would otherwise be taken on trust. Not for ranking an eval run's failure classes (use cluster-failures) or for a second opinion on a finished plan before it ships (use fable-review).
---

# Council

## Overview

A strategy question is not answered from what you already know. It is answered by
searching first, then convening a council of distinct expert voices, then making one call.

Core principle: **every load-bearing number or claim — in the question, the handoff,
memory, or a planning note — is a hypothesis until you re-derive it from ground truth
this turn.** A single well-reasoned voice is exactly how a false premise ships. The
council exists so that one voice attacks another before the answer reaches the user.

Why this is a hard rule: "concentrated ROI" pools in chemistry projects routinely
over-count 15–50× (e.g. a curated list of "~100 candidate defects" that turns out to
have 2 genuine instances on re-derivation; "124 flagged structures" that turns out to be
~6 genuine). A baseline test of this exact skill's absence: three capable agents given one
strategy question produced three different recommendations, one built entirely on an
unvalidated number. Search + council makes the answer convergent instead of a coin-flip.

## The protocol (do these in order)

### 1. Search before you weigh — validate the premise

- Extract every load-bearing claim from the question and from your loaded context
  (handoff, memory, planning notes). Treat each as a claim to test, not a fact.
- Give each independent facet its own investigator, run in parallel (parallel `Agent`
  calls); check a facet you can settle in a handful of tool calls inline. The
  standard three facets for a "should we do X?" question:
  1. **Validate the headline number** for X (re-derive the reachable win from ground truth).
  2. **Size the alternative** (what does the road-not-taken actually offer?).
  3. **Assess X's risk** (blast radius, determinism/regression surface, effort).
- In your project, ground truth = your evaluation corpus/benchmark results, your run
  ledger, and the pipeline probed directly (any shortcuts/caches off, reproduce-first),
  not the tag/heuristic count in a note.

### 2. Convene the council — at least three named voices

After the evidence is in, give the decision three or more distinct voices, each
reasoning only from the evidence just gathered, each free to disagree:

- 🛠️ **Senior Engineer** — feasibility, blast radius, determinism/regression risk, effort,
  root-cause vs band-aid, does it fit the codebase's grain.
- 📊 **Product Manager** — reachable wins, ROI, milestone fit, opportunity cost, what
  actually moves the metric the user cares about.
- 🔬 **Skeptic / QA** — attacks the premise and the numbers, names what is still unverified,
  hunts the hidden coupling and the failure mode nobody priced in.
- ➕ Add a **domain expert** or **user-advocate** voice when the decision turns on one.

Each voice is 1–3 sentences with its own read and may reach a different conclusion.
Surface real disagreement rather than manufacturing consensus.

### 3. The chair synthesizes — the answer the user reads

Always use this order, leading with the call:

1. **The call** — one option, stated first, unmissable.
2. **Confidence** + the single biggest remaining uncertainty.
3. **All options side by side** — a compact table (reachable wins / risk / effort). They
   asked to see the options; show them.
4. **What would flip the call** — the one observation that would change the answer.

The search and the council voices follow the call, as its support.

## Scale to the stakes

| Decision | Search | Council |
|---|---|---|
| Small / easily reversible | inline parallel probes | brief 3-voice, terse |
| Milestone / expensive / hard to reverse | one parallel investigator per facet | 3–4 voices, explicit disagreement |

## Rules

- **A number you did not re-derive this turn is not evidence — it is a claim to test.**
- **No council of yes-men.** If every voice agrees instantly, you under-searched or you are
  steering to the expected answer. Add the skeptic's strongest counter and check it.
- **Make the call.** "It depends" / "both are fine" is not an answer. State the call and the
  condition that would change it.

## Rationalizations — stop if you catch one

| Excuse | Reality |
|---|---|
| "I probed a couple examples, that's enough." | Confirming a class "fails closed" ≠ counting the reachable win. Size the whole pool. |
| "They're clearly leaning toward X." | Steering to the expected answer defeats the point. Weigh the evidence, then be willing to tell them they're wrong. |

## Worked examples (illustrative)

**Q:** "Fix the low-confidence-prediction cluster, or ship the pending featurizer
refactor — your call?" The handoff said the cluster = "~100 rows, one root cause."
**Call:** ship the featurizer refactor first, targeting its low-risk sub-fix.
**Confidence:** high; biggest uncertainty: whether the cluster gates a future model family.

| Option | Reachable wins | Risk | Effort |
|---|---|---|---|
| Featurizer sub-fix | ~45 | low | smaller |
| Cluster fix | 2 | moderate+ (determinism) | larger |

**Flips if:** the cluster turns out to gate a future model family — then build the contained half only.
**Search (3 parallel investigators):** a corpus scan finds **2** genuine reachable wins from
a targeted cluster fix (most tagged rows are out-of-domain scaffolds the model was never
trained on); the ledger shows **~45 low-risk wins** from the featurizer refactor's smaller
sub-fix; a code trace shows the cluster fix un-masks a determinism defect in a shared
normalization step (moderate+ risk).
**Council:** 🛠️ "2 wins behind a determinism-sensitive guard is a bad trade." 📊 "2 vs ~45
reachable — not close." 🔬 "The ~100 was another over-counted pool."

**Q (small, reversible):** "Batch size 32 or 64 for tonight's retrain?" **Call:** 64.
**Confidence:** medium; the run ledger shows both prior runs at 64 converged. **Options:** 32
(slower) / 64 (half the wall-clock). **Flips if:** out-of-memory at 64. **Council:** 🛠️ "Fits
in memory." 📊 "Halves the wall-clock." 🔬 "Only two prior runs."

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.