agentleFS
gordon1210gordon1210/agent-goodies/skills/agent-council/SKILL.md

agent-council

Skill0 starsChanged 4 months agoMITView on GitHub

Run a bounded discussion between the current host agent, Grok Build CLI, and Claude Code CLI. Use when the user requests a council, multi-agent debate, or 3–5 rounds of discussion before a recommendation. Bundled Python scripts coordinate full shared history, exact native sessions, host contributions, final assessments, and crash recovery. The current agent participates; never spawn another host or invent its turns.

7 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

8 rules. 0 are common, 2 are distinctive, and 6 are very specific to this project.

  • 0

    Common

    Most of the 6 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 6

    Very specific

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

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

    Default: four rounds, each containing one host, one Grok, and one Claude contribution in that order.

    line 21
  2. Distinctive:

    Every peer call receives the topic, supplied context, approved updates, and

    line 25
  3. Distinctive:

    tool-free: no implementation, shell, web, MCP, or nested agents.

    line 42
  4. Very specific:

    No model is called by doctor or init.

    line 80
  5. Very specific:

    Run brief --run-dir .... Read the complete returned snapshot, not just status or the last response.

    line 84
  6. Very specific:

    Run advance --run-dir ....

    line 90
  7. Very specific:

    Read brief again. Answer concrete objections and cite message IDs.

    line 93
  8. Very specific:

    Use note with a fresh revision for an approved correction or additional evidence during discussion.

    line 120

“Common” is measured: kept by at least 6 in 10 of the 6 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

Agent Council

You are the host participant and moderator. Ask Grok and Claude to discuss an authorized topic with you, contribute your own reasoning each round, then present a verified synthesis. Use the bundled scripts; do not improvise another session manager, parse terminal UI text, or launch a second copy of yourself.

Discussion contract

Default: four rounds, each containing one host, one Grok, and one Claude contribution in that order. Three to five rounds is the normal range. A round is not a provider's --max-turns, which bounds its internal agent loop.

Every peer call receives the topic, supplied context, approved updates, and every previous discussion contribution verbatim in one canonical snapshot. The default also resumes that peer's exact native session. Both peers receive a final assessment call against the same completed discussion snapshot. You read the full discussion plus both assessments before writing the result.

Four rounds therefore use 10 peer CLI calls: eight discussion calls and two final assessments. The current host's contributions and synthesis do not start extra CLIs. Final assessments are separate from discussion turns; they are not recursively broadcast to each other. This avoids an endless final-sync loop. Never claim a peer read a contribution written after its input snapshot.

Scope and prerequisites

Sending material to both providers must be authorized. Include selected source excerpts, constraints, and verified facts; never forward your whole host chat, private hidden reasoning, credentials, or unrelated files. Discussion is tool-free: no implementation, shell, web, MCP, or nested agents. Gather any needed evidence yourself within your existing authority and supply it as context.

Resolve this skill's actual installed directory and set COUNCIL to its scripts/council.py path. Run doctor in the intended project:

python3 "$COUNCIL" doctor --cwd /absolute/project

Review its CLI version/help and Grok inspect output locally. Review applicable Claude managed policy as well. Neither empty built-in tools nor a permission mode disables all possible startup hooks/plugins/MCP processes. Do not proceed unless remaining executable behavior is disabled or reviewed as compatible with this consultation. --config-reviewed below attests to that review; it is not proof generated by the script. Do not send private preflight output to peers.

The narrow adapters follow the adjacent grok-cli and claude-cli skills' authority boundaries. Read those skills for broader CLI diagnostics if installed; the council's scripts are nevertheless self-contained and do not import sibling skills. No CLI installation, update, login, config mutation, or credential proxy is performed. See provider contracts.

Run the council

Prepare a UTF-8 topic packet and optional evidence files. Initialize a new run directory in an approved location, preferably outside the repository:

python3 "$COUNCIL" init \
  --run-dir /approved/work/council-01 \
  --cwd /absolute/project \
  --topic-file /approved/work/topic.md \
  --context-file /approved/work/evidence.md \
  --rounds 4 --config-reviewed

Omit --context-file if unnecessary; repeat it for multiple selected files. No model is called by doctor or init.

Repeat this host-driven loop until awaiting-synthesis:

  1. Run brief --run-dir .... Read the complete returned snapshot, not just status or the last response. It includes a revision and the next speaker.
  2. At awaiting-host, write your own substantive contribution to a UTF-8 file. Use host --run-dir ... --message-file ... --expect-revision N, replacing N with the exact revision just read. Never manufacture a host contribution with another CLI or append a placeholder just to let automation continue.
  3. Run advance --run-dir .... It calls only the due peers, persists each accepted contribution, and stops at the next host turn or synthesis boundary. On the last round it also performs the two final assessments.
  4. Read brief again. Answer concrete objections and cite message IDs. Do not merely summarize peer answers: the host is the third participant.

At awaiting-synthesis, read the complete brief, independently check material claims as needed, and write the final synthesis to a file. Call:

python3 "$COUNCIL" finalize \
  --run-dir /approved/work/council-01 \
  --message-file /approved/work/synthesis.md \
  --expect-revision N

The script writes report.md; transcript.md, transcript.jsonl, native session IDs, requests, outputs, and recovery state remain available. Present the actual result to the user, not just an artifact path. Do not present a complete council unless the run actually reached the synthesis boundary.

Quality and stop rules

Early turns establish alternatives and assumptions. Middle turns challenge specific claims and update positions. The final discussion round resolves the strongest objections and records remaining blockers. Final synthesis separates recommendation, evidence-backed agreement, unresolved dissent, and next checks. A majority opinion is not evidence. No manufactured consensus or model-brand stereotypes. Preserve meaningful disagreement even when all other agents agree.

Use note with a fresh revision for an approved correction or additional evidence during discussion; never edit old contributions. Stop on provider failure, denied permissions, unknown result shape, missing/mismatched session ID, timeout, or context-budget overflow. Do not silently truncate, summarize away history, skip a peer, change model, broaden tools, or drop a sandbox.

pending-recovery requires inspection, then either accepting an already valid captured result or explicitly discarding the attempt. Discarding abandons that peer's possibly contaminated native session; the next call reconstructs context from the full canonical transcript. Follow recovery and privacy, not ad-hoc retries.

For early user cancellation or unavailable peers, finalize --partial --reason is available after resolving any pending attempt. Label the report partial and identify missing input. Never present it as the completed requested debate.

See workflow for commands and rationale, provider contracts for boundaries, and validation for tests and evaluation scenarios.

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.