The Council

A reusable NicAI skill that raises any artifact's quality through a make, critique, score loop until a weighted panel of expert agents converges.

The Council is a skill inside NicAI (my AI sales-ops layer) that raises the quality bar on whatever I am building right now. Instead of accepting one AI draft, it convenes a panel of expert agents that produce an artifact, critique it from competing angles, score it, and revise in a loop until the panel converges. It is a mechanism, not a deliverable: I invoke it from inside a task (an email, a LinkedIn post, a deck, a proposal, a persona spec) when the piece is worth the extra rigor. The same machinery writes a LinkedIn post one moment and builds a persona file the next, because the panel is chosen per task.

What it does

  • Assembles 3 to 6 expert agents, each judging one dimension (voice, persuasion, accuracy, audience, structure).
  • Runs a make to critique to score to revise loop until it converges or hits a stop condition.
  • Converges only when every blocking expert scores at least 8/10 and the weighted mean clears 8.0.
  • Uses a chair to break deadlocks between experts, and hard guards so it can never loop forever.
  • Ends with the finished artifact plus a report: score trajectory, final verdict, unresolved trade-offs.

For business people

A single AI draft is one perspective, confidently delivered. The Council replaces that with a review panel that argues. Each seat represents a stakeholder: one agent only cares whether it sounds like me, another only whether it will land with the reader, another whether every claim is true. Nobody gets to call the work done until the non-negotiable seats all pass and the average clears a set bar.

  • The problem it solves: first drafts that are fluent but wrong in one dimension, an off-voice line, a buried hook, a claim that would not survive scrutiny. The Council catches those before I send.
  • Where it fits: other NicAI skills delegate to it. The LinkedIn-post skill always routes through the Council; email, deck, and proposal skills can. I can also trigger it by hand ("run it past the council").
  • The cost: it is token-heavy. Several agents, several rounds. So it is for high-stakes artifacts, not quick lookups. A one-line answer does not need a panel.
  • The payoff: the output has already survived the critique I would otherwise do myself, from more angles than I would manage in one pass.

For technical people

The design is a thin orchestrator plus four generic subagents plus experts-as-data. The orchestrator does not write the artifact; it spawns agents, moves files, runs the score aggregator, and applies stop logic. One agent owns the document so the voice stays coherent across rounds.

The four generic agents

Agent Role
council-convener Designs the panel for a task: picks experts, writes briefs, sets weights, thresholds, and which are blocking. Also chairs deadlocks.
council-maker The single author. Produces v1 and revises against a prioritized feedback packet each round.
council-expert Generic role-player. Adopts whatever expert brief it is pointed at, critiques its one dimension, writes a score.
council-impersonator Optional. For persona/spec artifacts, generates outputs from the spec so a judge can test behavioral fidelity against held-out truth.

The key trick: experts are data, not agents. One generic council-expert becomes a copywriter, a fact-checker, or a voice guardian depending on the brief file it reads. Reusable briefs live in experts/, and ready-made panels in panels/. The convener can also author a new expert inline when no brief fits.

The loop

  1. Convene. Load a panel preset, or run the convener to design one and write a panel spec.
  2. Make v1. The maker drafts the artifact from the task, context files, and its brief.
  3. Critique and score, in parallel. Every expert reads the current draft and writes a JSON score plus a human-readable critique. All experts run at once.
  4. Aggregate. tools/aggregate_scores.py (stdlib only) reads the scores and the panel spec and returns a verdict: CONVERGED, CONTINUE, ESCALATE, or STOP_MAX.
  5. Decide and revise. If not converged, assemble a prioritized feedback packet (blocking issues first) and the maker revises. Loop.
  6. Finalize. Write the artifact to its output path and a run report.

The scoring contract

Each expert emits a strict JSON object:

{
  "expert": "nic-ai",
  "round": 1,
  "score": 7,
  "satisfied": false,
  "blocking_issues": ["em-dash in line 3 - his format forbids it"],
  "improvements": ["lead with the result, the hook buries the claim"],
  "note": "close on voice, one format violation blocks it"
}

Convergence needs both: every blocking: true expert satisfied, and the weighted mean at or above global_threshold. Scoring is deliberately strict, 10 means a domain authority could not improve it, 8 means publishable with minor polish, and an expert must mark itself unsatisfied if its score is below threshold or any blocking issue remains. An encouraging panel never converges on real quality.

The chair, and why it matters

Experts deadlock: the engagement seat wants it short and punchy, the topic expert wants nuance, the voice seat wants my actual register. A pure "everyone at 8" gate would spin forever. When ESCALATE fires (from round 3, or on a scoring plateau), the chair diagnoses whether the stuck objection is essential (core to the artifact) or preferential (one expert's stylistic ideal), then either re-prioritizes for the maker, relaxes a non-essential threshold with a logged rationale, or stops and asks me to pick. It never silently overrides voice fidelity or factual accuracy, both essential by default.

Guards against runaway cost: max_rounds (default 5), and a plateau guard that trips if the mean gains less than 0.3 over two rounds. Agents default to Claude's Opus model for quality.

A concrete panel: business proposal

A client proposal (the .docx I send an economic buyer) routes through this panel. It runs on the content draft first, then the proposal skill pours the converged prose into the branded document. The weights and blocking flags encode what actually wins the deal:

Expert Weight Blocking Judges
buyer-lens 0.24 yes Speaks to the economic buyer, gives the champion ammo to win the room
narrative 0.20 yes The Problem, Impact, Solution, Proof, Ask arc and a tight exec summary
deal-advancement 0.20 yes A clear next step / mutual action plan
fact-checker 0.12 yes Numbers and claims hold up; client references are cleared and exclude the recipient's own account
nic-ai 0.14 no Sounds like me
editor 0.10 no Tightens the prose

The priorities invert versus a lighter artifact. Four seats are blocking here (buyer resonance, story arc, deal motion, accuracy), the convergence bar is raised to 8.3 over 4 rounds, and, tellingly, voice (nic-ai) is non-blocking and lightly weighted. A proposal has to move the buyer and be true before it has to sound exactly like me, the reverse of a LinkedIn post, where voice is the blocking seat. The convener points buyer-lens at the specific account's client folder so it judges against the real committee, and the chair arbitrates the usual tension: editor and narrative want it tighter, buyer-lens and deal-advancement want more proof.

The standing panels and expert library

Presets in panels/ cover the artifacts I make often: email, linkedin-post, deck, nicdeck, one-pager, proposal, and soul (the persona-spec build, which adds the behavioral fidelity test). The experts/ library holds reusable briefs, nic-ai (voice), copywriter, editor, fact-checker, narrative, design, buyer-lens, deal-advancement, audience-advocate, topic-expert, prompt-engineer, plus the maker brief and the soul-* critics. Skills delegate through an invocation contract: the caller passes a task, artifact type, panel name (or auto), context files, an output path, and an optional threshold.

My take

The Council is the pattern I reach for when "good enough on the first try" is not good enough. It is an LLM-as-judge loop with a convergence bar, applied to my own writing and specs. The real design wins are two: making experts data so one agent serves any panel, and keeping a single maker so the artifact does not turn to committee mush across rounds. The honest cost is tokens and latency, which is exactly why it is opt-in and reserved for work where the bar matters. It runs on Claude Code subagents, which give each seat its own isolated context so the critiques stay independent.

Further Reading