agentleFS
boshu2boshu2/agentops/skills/council/SKILL.md

council

Skill453 starsChanged 4 months agoApache-2.0View on GitHub

Compare independent opinions from several models or contexts without inflating agreement. Use when: wanting a second opinion or debate, or summarizing several reviewers'' results.

143 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use agent-payment-x402, motion-advanced and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • TironFoxSkill

    agent-payment-x402

    Add x402 payment execution to AI agents — per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents need to pay for APIs, services, or other agents.

    Also in 5 projects that use this

  • renepfSkill

    motion-advanced

    Advanced motion patterns for React / Next.js — drag & drop, gestures, text animations, SVG path drawing, custom hooks, imperative sequences (useAnimate), loaders, and the full API decision tree. Requires motion-foundations.

    Also in 4 projects that use this

  • RojiosSkill

    defi-amm-security

    Security checklist for Solidity AMM contracts, liquidity pools, and swap flows. Covers reentrancy, CEI ordering, donation or inflation attacks, oracle manipulation, slippage, admin controls, and integer math.

    Also in 6 projects that use this

  • scottwaterSkill

    modernize

    Rebase an aging PR onto its current base and decide whether it should be modernized, reworked, or closed. Use when asked to rebase, update, or modernize an old PR.

    Also in 7 projects that use this

  • RojiosSkill

    dart-flutter-patterns

    Production-ready Dart and Flutter patterns covering null safety, immutable state, async composition, widget architecture, popular state management frameworks (BLoC, Riverpod, Provider), GoRouter navigation, Dio networking, Freezed code generation, and clean architecture.

    Also in 5 projects that use this

  • scottwaterSkill

    leaving-pr-comments

    Format comments an agent posts on GitHub on the user's behalf. Use whenever leaving a PR comment, review comment, or reply.

    Also in 6 projects that use this

  • +1 more from scottwater
  • +1 more from Rojios

The file

We split this skill into the rules it gives an agent

1 rule. 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 128 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    When judgments recommend a change to something the caller specified (merging what they separated, cutting what they asked for, reversing a …

    line 130

“Common” is measured: kept by at least 6 in 10 of the 128 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Council

Council is an optional judgment strategy for hard questions where contrasting perspectives can expose alternatives, assumptions, or missed evidence. Use it when the caller selects multiple views for brainstorming, architecture or planning, or validation. Name the uncertainty that makes the additional contexts useful; routine work needs no council. Neighbours: one opinion or look-over is Review, one adversarial challenge of a plan is Premortem, one consequential choice for Plan is Idea Genie, and an acceptance verdict is Validate.

Rules that decide the synthesis

They hold for a council you run and for judgments the caller already collected elsewhere (several reviews, subagent reads) and asks you to synthesize. Judgments made against different revisions are separate subjects, never agreement on one.

  • No verdict. Council returns no PASS, FAIL, NOT_PROVEN, readiness or approval, even when asked to turn agreement into one. Decline, and say that a fresh Validate read owns that judgment. The report goes to the caller as advisory findings, which cannot stand in for it.
  • Echo consensus weighs as one. Agreement among judges that share one model or one evidence method counts as one confirmation, however many judges share it: unanimity from identical inputs and one shared method is not independent confirmation. Each consensus point names the methodologies (static reading, executing the subject, tracing history) and, where judges record model_identity, the models of its supporting judges; a point with only one of either sets weighs_as_one: true.
  • The caller's direction stays the default. A judgment that contradicts what the caller decided becomes a caller_challenge entry with all five fields, never a consensus point or a quiet change to the recommendation.
  • Nothing is dropped. Initial views are sealed before any is shared, every finding lands in exactly one synthesis bucket, and dissent survives.

Run a council

UseAsk each participant forReturn to the caller
BrainstormDistinct options, assumptions, and failure modesPromising ideas and the objections worth testing
Design or planA proposed approach, tradeoffs, and evidenceA recommendation with unresolved decisions visible
ValidateFindings against the same subject and acceptanceAdvisory findings; acceptance stays with a fresh Validate read
DuelRanked ideas, then scores for every other member's ideasIdeas ranked by cross-member agreement, score gaps and dissent
Interview panelAn answer to each Interview questionAgreed and open answers the caller accepts or amends
  1. Freeze the question, constraints or acceptance, authorized evidence, and subject digest. Select participants, model pins, and real dispatch bounds; contexts stay in the author's model family unless the caller pins mixed models through model-dispatch. The caller may give each participant its own model, effort and perspective (for example architect, reliability, security or simplicity); the same model in separate contexts counts as separate participants on the roster, but their agreement still weighs as one. A requested profile or required leg with no authorized live adapter is listed by name in diversity_unsatisfied; available views may still return with that limit, but a missing required leg prevents convergence and no agreement substitutes for it.
  2. Give each participant a fresh independent context and the same bounded packet, never the author's preferred conclusion; a perspective steers what a member examines, never what evidence it gets. Collect proposals or judgments before revealing any peer response. Reused or colliding context IDs make a view non-independent: repair the isolation within bounds or disclose it. Admit facts tied to a cited source and the caller's stated need and stakes; keep your own rankings, option-grading labels and summaries of files a participant can open itself out until synthesis. Word options you drafted with equal care, and say a participant may reject all of them or the question as posed. Show peer work in debate or duel scoring under neutral labels (A, B, C), not member or model names; the report keeps the mapping in each judge's judgment.
  3. Require evidence, reasoning, and omissions. For brainstorming, distinguish new hypotheses from supported claims; novelty is not proof.
  4. Synthesize the sealed initial views, or run a caller-selected mode below. Preserve dissent and changes of position. subject_digest covers what Validate's Subject binds: the canonical_manifest_digest of ao provenance manifest, or else shasum -a 256 <files> | LC_ALL=C sort | shasum -a 256 over the subject's repo-relative paths, or the sha256 of a subject supplied only as text. Recompute it the same way before each later round and before synthesis; if it changed, name the change and rerun every participant on the new subject or return the incomplete outcome, never folding views of the old subject in. With nothing to bind (a brainstorm, an open design question, an interview panel), it is the sha256 of question as recorded, computed once; a reworded question is a new subject.
  5. Return council-report.v1 with its limits and, when the use produces one (design or plan does), its optional recommendation. Prefer one option only for a reason in the evidence; when options stay close, say either would serve and name the tradeoffs that separate them. Outside a caller-selected voting rule, a count of pros, cons or supporters breaks no tie. Council neither changes the subject nor grants implementation or delivery authority.

Independent comparison is the default. Multiple models can broaden the perspectives offered; agreement alone proves no improvement.

Optional modes

Load only the mode the caller selected:

  • Bounded debate or a majority rule: debate. Replies that saw earlier answers are peer-informed, never new independent views, and a majority cannot establish truth or acceptance.
  • Members scoring each other's ideas: duel.
  • A council answering an Interview: interview panel.
  • A disagreement between validation judges that survives repair: judge split.

Caller challenge

When judgments recommend a change to something the caller specified (merging what they separated, cutting what they asked for, reversing a declared direction), record it in synthesis.caller_challenge. Independent agreement against the caller is a strong signal and still not authority: the caller holds context no judge was given. Each entry has five fields:

  • caller_stated: their direction, in their words, not paraphrased.
  • judges_recommend: the change, who supports it, and whether their views were independent or peer-informed; never describe debate votes as independent.
  • reasoning: the case at its strongest.
  • context_possibly_missing: what the judges provably were not given; an entry without it is majority laundering wearing a new label.
  • cost_if_wrong: what breaks if the caller's direction was right.

Optional judge_count needs at least two supporters; optional disagreement_kind says whether the objection is a preference, security or feasibility defect. The caller's direction stays the default and the burden of argument is on the judges; the caller decides, knowing the kind of disagreement. Stop condition: every judgment that contradicts a caller-stated direction appears in caller_challenge with all five fields and in no other synthesis bucket. Whether the challenged decision can be undone belongs in Plan, with actual undo cost and existing authority; the council must not assume either.

Synthesis section

The report ends with an explicit consensus/divergence synthesis: consensus points with their methodology spread, divergence points with each side's cited evidence and whether the split is an evidence gap (name the fact or check that would settle it) or a judgment call the caller owns, minority findings preserved in their own words, unresolved assumptions, and any caller_challenge entries. Synthesis is complete when every judge finding lands in exactly one of those buckets; a finding silently dropped from synthesis is majority laundering. Run facts (bounds, roster, threshold, tally, stop reason, non-returning judges) go in synthesis.notes.

Two judges' defect findings are one point only when a single fix would resolve both, judged by reading each defect and its fix, not the wording or a shared location; proposals or answers are one point only when they recommend the same change. Findings on the same lines with different failure modes stay separate, opposing recommendations are divergence, and when unsure keep them apart, since a wrong merge inflates agreement. A merged point keeps each judge's own evidence.

Output

<skill-dir> is the directory that contains this SKILL.md. Claude Code shows it as "Base directory for this skill"; Codex lists this skill's SKILL.md path; in an AgentOps source checkout it is skills/council. Replace <skill-dir> with that absolute path before running a command. The working directory stays the user's repository. If the host did not show where this skill is installed, use the directory of the SKILL.md you read. If you cannot determine it, do not guess a path or run a same-named script from the current repository; say the bundled script is unavailable and check the report's fields by hand against its schema.

  • Destination: caller-selected protected external non-Git storage; preserve existing legacy evidence. Missing routing is not a workspace fallback: when no destination is supplied, return the report inline in the conversation and write no file.
  • Filename: council-report.json.
  • Format: council-report.v1 JSON (schema): the frozen question and subject_digest, any recommendation, every judge's context_id, methodology, cited evidence and omissions, and the synthesis buckets above. Record mode, round and candidate digest in each judgment. It carries no verdict or readiness field, and a judgment or recommendation that is only a verdict word is rejected.
  • Validation command: bash "<skill-dir>/scripts/validate-output.sh" <council-report.json>, or bash "<skill-dir>/scripts/validate-output.sh" - with an inline report on stdin. It needs jq; exit 2 means the report was not checked, so check its fields by hand against the schema and say the validator did not run.

A judge that times out, errors, or returns an evidence-free judgment is excluded from agreement counting and listed as non-returning in synthesis.notes with its context ID and reason, never as a judges entry. If fewer than two eligible initial judgments remain, report insufficient independent coverage rather than synthesize a thin consensus; when no valid report can be formed, return the incomplete outcome and available receipts without fabricating judge records.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.