council
Skill1 starsChanged 4 months agoMITView on GitHub
Table ronde vivante — a live round-table meeting between 3–5 historical or relevant figures on any topic, with the user seated at the table. Figures speak in voice, disagree with each other, and challenge the user; the meeting unfolds turn by turn in chat and the user can intervene at any moment. Outputs meeting minutes (council.md). Use when the user asks for council, panel, round table, "table ronde", "réunion", "débat entre X et Y", "fais discuter X, Y et Z", or runs /council. Not for 1-on-1 conversation (/dialogue) or research (/deep-research).
143 other projects use a version of this.
Adopted by
Most recently taken up by
- Beskars-Code/Skillstheir own version, first seen Nov 8, 2026
- Gabriel-Lafrance/Skillstheir own version, first seen Nov 8, 2026
- ong6/skillstheir own version, first seen Nov 8, 2026
- lbussell/agent-skillstheir own version, first seen Nov 8, 2026
- scottwater/skillstheir own version, first seen Nov 8, 2026
- T0mSIlver/skillstheir own version, first seen Nov 8, 2026
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.
TironFoxSkillagent-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
renepfSkillmotion-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
RojiosSkilldefi-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
scottwaterSkillmodernize
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
RojiosSkilldart-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
scottwaterSkillleaving-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
Other versions143 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 143
- simstudioai/sim★ 30ksame name
- 0xNyk/council-of-high-intelligence★ 4.8ksame name
- t3dotgg/tstack★ 2.5ksame name
- danieleteti/delphimvcframework★ 1.4ksame name
- warpdotdev/common-skills★ 630same name
- QuixiAI/agi-memory★ 623same name
- QuixiAI/Hexis★ 623same name
- zaxbysauce/opencode-swarm★ 519same name
- ZaxbyHub/opencode-swarm★ 518same name
- boshu2/agentops★ 453same name
133 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository12 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- bear-hoursSkill
- deep-researchSkill
- dense-readSkill
- dialogueSkill
- infographicSkill
- layout-htmlSkill
- memory-palaceSkill
- mind-mapSkill
- source-scoutSkill
- study-statusSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 128 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 36
Do not auto-chain from other skills.
- Very specific: line 104
Write the artifact header + panel cards + opening round to council.md now (path per Step 4).
- Distinctive: line 129
Soft budget: after ~10 user exchanges, the host offers to close — the user decides.
- Very specific: line 189
Resume: if council.md already exists with a ## Session marker, one AskUserQuestion (title Table ronde — Reprise): continue (append new ## …
“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.
Files
Council — Table ronde
A live meeting between named figures (historical or contemporary) around one topic — and the user is a participant at the table, not a reader of minutes.
Output: studies/<slug>/council.md (study-linked) or output/council/<slug>/council.md (standalone).
When to use (vs other skills)
| Skill | Role |
/council | This skill — multi-figure live debate, user participates, meeting minutes |
/dialogue | 1-on-1 Socratic conversation with a single figure |
/deep-research | Facts and sources — not roleplay |
/bear-hours | Frame a study wedge — not a meeting |
Do not auto-chain from other skills.
Hard rules
- Live, never simulated — the meeting happens turn by turn in chat. Never generate the whole meeting in one message. After the opening round, STOP and wait for the user — then never more than 3 figure turns before the floor returns to the user.
- Real people only — every seat at the table is a real historical or public contemporary figure speaking in their own voice, references, and era. No invented personas, no generic roles (no « Modérateur », no « une ingénieure robotique »). If an angle has no obvious figure, pick the closest real one. The host is a real figure too (rule 11).
- Built-in conflict — compose the panel around at least one real axis of disagreement (Edison vs Tesla, Bohr vs Einstein, Keynes vs Hayek…). A panel that agrees is a failed panel.
- Short turns — each figure speaks in ≤4 sentences. No monologues, no transcript blobs.
- The user matters — figures react to what the user actually said, may challenge it, and may address the user directly by question. The host regularly hands the floor back: « Et vous, qu'en dites-vous ? »
- Honest fiction — artifact header states: réunion pédagogique fictive — lentilles interprétatives, pas sources primaires. No quotation marks on invented speech; paraphrase only.
- Era limits — informed mode by default: modern topics through each figure's own concepts, tagged
[extrapolation]inline. Modes and turn discipline: seedialogue/references/epistemic-modes.md(shared with /dialogue). - No research — never
WebSearch/WebFetchduring the meeting. Fact-check request → break character once, offer/deep-research. - Living figures — only public contemporary figures (published work, public positions). Refuse private individuals or defamation.
- French by default — host and figures speak the user's language.
- Real host — the meeting is animated by a real figure known for hosting or questioning (défaut français : Bernard Pivot ; alternatives selon sujet : Socrate, Jacques Chancel, Oprah Winfrey, David Attenborough…). The host frames, distributes the floor, and needles — in their own style. The user can swap the host or run « sans hôte » (figures self-manage, address the user directly).
Step 0: Topic
- User gave a topic or question → use it directly. No framing gate: a raw topic is enough for a meeting.
- User named a study slug →
Readstudies/<slug>/brief.md; topic =## Narrow wedge, and## Current beliefsbecome debate fuel (figures may attack them). - Nothing clear → one
AskUserQuestion(titleTable ronde — Sujet): "Sur quel sujet ou quelle question réunir la table ?" with 2–3 options inferred fromstudies/*/brief.mdif any +other.
Sharpen loose topics into a debatable question (« l'IA » → « Faut-il craindre que l'IA centralise le pouvoir ? »). State the reframing in one line; adjust if the user objects.
Step 1: Compose the panel
Size: 3–5 figures (hard cap 6, including mid-meeting invitations).
Selection priorities, in order:
- Figures with a real historical stake in the question
- At least two who genuinely disagree (historically or by doctrine)
- One unexpected but relevant voice (different era or field) — optional, often the best turn generator
- A real host fitting topic and language (rule 11) — announced with the panel
If the user already named figures → take them, suggest at most one addition if an obvious tension axis is missing, and go.
Else one AskUserQuestion (title Table ronde — Panel):
Ask: "Voici la table que je propose. On garde ?"
Options:
- Ce panel (Recommended) — list the 3–5 names, one line each: figure + why + against whom
- Variante — a second panel with a different angle
- Je choisis moi-même — user names figures in chat
Persona line schema (goes into the artifact, one card per figure):
### <Nom> (<dates>, <domaine>)
- **Position de départ :** one sentence on the topic
- **Conteste :** what they push back on
- **Tension avec :** <autre membre> — sur quoiThe host gets a one-line card too (name, era, hosting style).
Step 2: Open the meeting
In chat:
- The host (2–3 sentences, in their own style): frames the question, names what is off-topic today, and announces the tour de table.
- Tour de présentations — each figure introduces themselves in 2–3 sentences, in voice, assuming the user does not know them: who they are (era, field), what they are known for, and why they have a stake in today's question. No opening position yet — just « qui je suis et pourquoi je suis à cette table ». The host may add one teasing line per figure (« …et il n'est pas d'accord avec Monsieur Tesla, vous verrez »).
- Tour de table — each figure gives an opening position (≤4 sentences, in voice, ending on a hook: a provocation, a doubt, or a question).
- The host hands the floor to the user: one direct question tied to what was just said.
- STOP. Wait for the user. The meeting does not continue without them.
Steps 2 and 3 may be merged for panels of 3 (presentation + position in one turn, ≤6 sentences); keep them separate for 4+ figures so the opening stays digestible.
Write the artifact header + panel cards + opening round to council.md now (path per Step 4).
Step 3: Debate loop
For each user message:
- Pick 1–3 figures who respond — priority to: a figure the user addressed by name, then a figure who disagrees with what was just said, then relevant expertise. Not everyone speaks every turn.
- Figures may argue with each other for at most 2 exchanges before the host cuts in.
- End the block with the floor open to the user — a question from a figure or a relaunch from the host.
- Append the exchange (user turn included, as
**Toi :**) to the current## Sessionincouncil.md.
Table commands:
| User says | Action |
| Names a figure (« Darwin ? », « Tesla, ton avis ») | That figure alone answers |
| « à table » / « réagissez tous » | Every figure reacts in 1–2 sentences |
« invite <nom> » | Add the figure (cap 6), one-line card appended to Panel; the newcomer introduces themselves (2–3 sentences, as in Step 2) before speaking on the topic |
« sortez <nom> » | Figure leaves politely |
| « on change d'angle : … » | Host reframes, quick re-positioning round |
| « recap » / « synthèse » | Host: 3 bullets (accords, désaccords, question ouverte) — meeting continues |
« change d'hôte : <nom> » / « sans hôte » | Swap or remove the host |
| « hors personnage » | Reply as assistant; offer resume |
| « termine » / « on conclut » | Close the meeting (Step 4) |
Soft budget: after ~10 user exchanges, the host offers to close — the user decides.
Drift control: re-read the panel cards in council.md every 5 exchanges; keep voices distinct (vocabulary, era, temperament).
Step 4: Close the meeting
Trigger: « termine », « on conclut », or accepted wrap-up offer.
- Each figure gives one closing sentence (their position now — moved or not).
- Host synthesis (in their style, but honest), appended to
council.md:
## Synthèse — <YYYY-MM-DD>
**Accords :**
- ...
**Désaccords restés ouverts :**
- <qui vs qui — sur quoi — ce qui trancherait>
**Ce que la discussion a déplacé :**
- <idées du user renforcées / ébranlées / apparues>
**Prochain pas suggéré :** <one concrete step — optionally /dialogue avec <figure>, /source-scout, /deep-research, /layout-html sur ce fichier, ou rien>- Append one line to
~/.ours-stack/learnings.jsonl:
{"ts":"<ISO8601>","skill":"council","slug":"<slug>","panel":"<noms>","insight":"<one durable sentence>"}- In chat: path to
council.md+ the synthesis's 3 strongest bullets. Nothing more.
Artifact template:
# Table ronde — <question débattue>
> Réunion pédagogique fictive — les personnages sont des lentilles interprétatives, pas des sources primaires. Aucune recherche web effectuée.
**Slug :** <slug ou standalone>
**Sujet :** <question débattue>
**Panel :** <noms>
**Mode :** informé | strict | spéculatif
**Date :** <YYYY-MM-DD>
## Panel
<persona cards>
## Session <YYYY-MM-DD>
**<Hôte> :** ...
**<Figure> :** ...
**Toi :** ...
...
## Synthèse — <YYYY-MM-DD>
...Resume: if council.md already exists with a ## Session marker, one AskUserQuestion (title Table ronde — Reprise): continue (append new ## Session <date>, re-read panel cards + last 3 turns), restart (archive as council-<date>-archived.md), or cancel.
Escape hatches
| User says | Action |
| « vas-y » / « surprends-moi » | Skip the panel question; best panel, straight to opening |
| « débat entre X et Y sur Z » | Panel = X + Y (+ real host, or sans hôte); skip Steps 0–1 |
| « sans moi » / « laisse-les débattre » | Exception to rule 1: run 3 autonomous rounds, then synthesis — say once that live mode is richer |
| « strict » / « pas d'anachronisme » | Strict era mode for all figures |
| « stop » | Close immediately (Step 4) |
Self-check before close
- Meeting ran live — user spoke at least once (unless « sans moi »)
- Each figure introduced themselves at the opening (who, era, why at this table) — never assume the user knows them
- Never more than 3 figure turns between user turns
- Real disagreement surfaced and named in the synthesis
- Figure turns ≤4 sentences, distinct voices, no invented quotes in quotation marks
- Fiction disclaimer in artifact header
council.mdcontains panel cards + transcript + synthesislearnings.jsonlappended on closebrief.mduntouched (council is advisory)
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
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.

