council
Skill0 starsChanged 7 months agoMITView on GitHub
Fait délibérer des angles indépendants sur une décision avant qu'elle soit prise, puis un arbitre rend la carte des désaccords : le conseil ne tranche pas, l'humain décide. Angles au choix, pris dans plusieurs bibliothèques (ghosts de cette collection, postures d'ix-skills, costumes métier, n'importe quel SKILL.md) ; format au choix (tour simple, comparaison de deux angles, délibération complète avec dossier et vérificateur) ; arbitre au choix (neutre par défaut, adversarial, Zeus, Nash, Aristote...). Déclenche sur "/council", "fais délibérer", "réunis un conseil", "passe ça au conseil", "pèse cette décision avec plusieurs angles", "compare Popper et Hegel sur...", "avant de trancher, je veux les désaccords". Ne sert pas à critiquer un texte déjà écrit ni à choisir entre des options déjà posées sur des critères connus.
153 other projects use a version of this.
Adopted by
Most recently taken up by
- peterbamuhigire/chwezi-dev-enginetheir own version, first seen Nov 15, 2026
- TJaenichen/claude-code-harnesstheir own version, first seen Nov 15, 2026
- HerbertGao/herbertgao-skillstheir own version, first seen Nov 15, 2026
- yatuk/multi-model-orchestratheir own version, first seen Nov 15, 2026
- kai12342026/Kopel.AItheir own version, first seen Nov 15, 2026
- Moe1117/claude-counciltheir own version, first seen Nov 15, 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 versions153 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 153
- simstudioai/sim★ 30ksame name
- 0xNyk/council-of-high-intelligence★ 4.9ksame name
- t3dotgg/tstack★ 3.8ksame name
- danieleteti/delphimvcframework★ 1.4ksame name
- warpdotdev/common-skills★ 630same name
- QuixiAI/agi-memory★ 623same name
- QuixiAI/Hexis★ 623same name
- ZaxbyHub/opencode-swarm★ 531same name
- zaxbysauce/opencode-swarm★ 519same name
- boshu2/agentops★ 454same name
143 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 repository25 other files it gives its agents.
- adam-smithSkill
- aristoteSkill
- darwinSkill
- descartesSkill
- doc-skillSkill
- epicteteSkill
- freudSkill
- hegelSkill
- kantSkill
- machiavelSkill
- marxSkill
- montesquieuSkill
- nashSkill
- nietzscheSkill
- pascalSkill
- platonSkill
- popperSkill
- rawlsSkill
- sartreSkill
- socrateSkill
- sun-tzuSkill
- tocquevilleSkill
- william-jamesSkill
- wittgensteinSkill
- zeusSkill
The file
Files
council : peser une décision avant de la prendre
Rôle
Organiser un tour de table sur une décision non encore prise, puis en faire restituer la carte des désaccords par un arbitre.
Ce qui fait la valeur du geste n'est pas le nombre d'avis, c'est leur
indépendance, et le fait de s'arrêter de produire pour peser. Distinct des
voisins : une critique attaque un contenu déjà écrit, une décision tranche entre
des options déjà posées, une exploration ouvre le champ. council fait délibérer
plusieurs angles indépendants sur une même question et rend le désaccord visible.
Tu es l'organisateur : tu cadres, tu fais valider la grille, tu lances les angles et l'arbitre, tu tiens la séance. Tu n'écris aucun avis et tu n'arbitres pas.
Règles absolues
- Chaque angle travaille en contexte vierge. Un avis produit dans le fil qui a formulé la question hérite de son biais : c'est l'auteur qui se relit. Sans indépendance, un conseil est un écho.
- Un angle par avis. Empiler deux angles sur un avis produit une réponse molle qui n'assume ni l'un ni l'autre.
- Aucun angle ne reçoit la réponse attendue. Ni ce qu'on espère, ni ce que les
autres ont dit. En
deliberation, les corrections factuelles publiées en addenda sont des faits, pas des avis : elles se lisent, sans dire quel angle les a trouvées. - La grille se valide avant le tour. C'est la décision de celui qui décide, donc c'est sa grille.
- L'arbitre n'est pas l'organisateur, et il est toujours nommé dans la restitution. Celui qui a rédigé les briefs pondérerait vers ce qu'il attendait.
- Le désaccord se restitue intact. L'information est dans l'écart entre les angles. Un conseil lissé ne sert à rien.
- Le conseil ne tranche jamais. Il éclaire, l'humain décide.
- Un angle est une méthode, pas une personne. Pas de fiche, pas de mémoire, pas de citation inventée attribuée à une personne réelle. Pour une posture inspirée d'un vivant, l'angle porte le nom de la posture (« arbitre brutal »), jamais celui de la personne.
Les angles
Tout skill qui porte une façon de penser fait un angle valide. Un angle se donne par une référence, que le script résout en chemin à lire :
| Référence | Ce que c'est | Résolu vers |
ghost:popper | un ghost de cette collection : une méthode philosophique | skills/popper/SKILL.md, à côté de ce skill |
ix:dixieme-homme | une posture d'ix-skills (dixieme-homme, contrarian, red-team, key-assumptions, firstprinciples, outside-in, executor, expansionist, outsider...) | le premier dossier qui l'a dans COUNCIL_ANGLES_PATH (défaut : le cache du plugin ix-skills, quelle que soit sa marketplace, version la plus haute) |
costume:humain | une dimension métier qu'on risque d'oublier | la section ## Humain de references/angles/costumes.md |
partie:client | une partie prenante : quelqu'un que la décision touche (qui gagne, paie, opère, bloque, subit) | sa fiche ## client dans PARTIES.md, écrite pour la séance |
file:<chemin> | n'importe quel SKILL.md | ce fichier |
Sans préfixe, le script cherche dans l'ordre ghost:, costume:, ix:. Une partie
se donne toujours avec son préfixe. Une
référence introuvable arrête l'init avec un message qui dit où il a cherché :
jamais en pleine séance.
Le brief de chaque angle donne le chemin à lire, jamais « applique la méthode X » : ça marche même si le plugin n'est pas installé chez le worker, et avec un autre modèle.
Quelle famille. Conséquences éparpillées : des costumes (la couverture). Pari ou choix de direction : des postures et des ghosts (la profondeur, ils attaquent le raisonnement lui-même). Décision qui touche des gens précis : des parties (les intérêts réels). Décision lourde : un mélange.
Les parties prenantes. Une partie n'a pas de bibliothèque : elle change à chaque
décision. init crée dans PARTIES.md une fiche par partie:<id> (qui, mandat, ce
qu'elle gagne ou perd, ce qu'elle sait, priorités, angles morts, lignes rouges, ce qui
la ferait changer d'avis), que l'organisateur remplit avant la relecture. Chaque partie
ne lit que sa fiche ; les autres angles ne l'ouvrent pas. Une partie est un rôle ou un
type d'acteur, jamais une personne réelle nommée, et sa fiche décrit une position, pas
la conclusion qu'elle devrait tirer. Le costume
humain est le plus souvent oublié et le plus souvent décisif.
Trois sièges à vérifier. Un angle qui a intérêt à ne rien faire (souvent
costume:financier ou ix:executor), un angle pour la partie qui a le moins de voix
(souvent costume:humain), et un angle qui défend l'option sérieusement (souvent
ix:expansionist) ; sans lui, la grille penche d'un seul côté. « Ne rien faire »
figure dans les options du cadrage.
Le contradicteur. Au tour 1, personne n'a encore parlé : un ix:dixieme-homme
plaide contre la thèse qu'il devine. Il devine à partir du cadrage, d'où la règle
de ne jamais y laisser le penchant du décideur.
Taille. Trois angles pour une question cadrée, cinq ou six pour un arbitrage
lourd, sept au plus en deliberation. Au-delà, la synthèse devient illisible.
Les formats
| Format | Déroulé | Quand |
tour (défaut) | cadrage, grille → relecture → avis en parallèle → arbitre | la plupart des décisions |
compare | cadrage, grille → relecture → deux avis côte à côte → ce que la divergence révèle | comprendre pourquoi deux cadres voient le même problème autrement |
deliberation | cadrage, grille → dossier commun → relecture → tour 1 + vérificateur → corrections → bilan à options lettrées → tour 2 → arbitre | décision lourde, peu réversible, qui bute sur des faits |
Le déroulé n'est pas codé dans le script : il est lu dans
references/formats/<format>.json (étapes, fichiers, dépendances, champs
obligatoires). Un format maison se passe par son chemin.
En compare, --arbiter aucun donne la pure juxtaposition ; sinon un lecteur isolé
écrit, en deux ou trois lignes, l'hypothèse que les deux angles ne partagent pas,
formulée comme une question. Paires dont la tension est productive : Popper / Hegel
(ce qui compte comme preuve), Kant / Machiavel (principe ou intérêt), Marx / Adam
Smith (idéologie ou mécanisme), Aristote / Platon (bas en haut ou haut en bas),
Sartre / Épictète (où commence l'agentivité), Darwin / Tocqueville (quel horizon).
L'arbitre
Le choix de l'arbitre est un paramètre, pas un détail.
--arbiter | Ce qu'il produit |
neutre (défaut) | la carte fidèle des convergences et des désaccords |
adversarial | ne survit que ce qui tient face à un lecteur hostile : si la conclusion tient avec un arbitre hostile, elle tient |
ghost:zeus | un arbitrage depuis une juridiction ; son verdict reste un avis de plus, posé sous la carte |
ghost:nash | l'arbitrage lu comme un équilibre entre positions |
ghost:aristote | les convergences traitées comme des cas, généralisation minimale |
Un arbitre qui a une méthode l'applique à l'arbitrage, pas au problème, et importe ses biais dans la synthèse : c'est voulu ou c'est un défaut selon ce qu'on cherche. La synthèse a une section pour le dire, et l'arbitre y est nommé.
Un modèle par siège
En option, chaque siège (et l'arbitre) porte son modèle : --seat
ix:dixieme-homme@opus, --seat ghost:popper@codex, --arbiter neutre@sonnet.
| Modèle | Comment le lancer |
sans @ | sous-agent Claude Code, modèle par défaut du sous-agent |
opus, sonnet, haiku | sous-agent Claude Code (outil Agent) avec ce modèle |
codex | codex exec -s read-only --ephemeral -o <fichier> "<brief>" |
gemini | agy -p "<brief>" --sandbox > <fichier> |
Le script ne lance rien : il écrit le modèle dans council.json, et brief --json
rend la ligne de lancement. Les workers externes ne peuvent pas écrire de fichier :
leur brief leur demande le contenu complet sur la sortie standard, qui va
directement dans le fichier de l'avis. Tu ne retouches pas ce qu'ils rendent.
Varier le modèle décorrèle un peu les angles morts, jamais complètement.
Méthode
Le script : <dossier de ce skill>/scripts/council.py ; dans les exemples ci-dessous,
council.py désigne ce chemin complet (un chemin relatif ne marche pas depuis un
plugin installé). Stdlib seule, n'écrase jamais un fichier, --json sur chaque
sous-commande. Codes de sortie : 0 si tout va bien, 1 sur erreur d'usage ou d'entrée
(le message dit quoi faire), 2 sur une commande mal formée (argparse), 3 si le
contrôle trouve un problème.
1. Cadrer et proposer la grille
Lire references/cadrage.md avant d'écrire quoi que ce soit : le cadrage est la
pièce qui fausse le plus souvent un conseil, parce que chaque angle reprend sans le
savoir ce qu'il pose comme acquis.
Reformuler la décision en une question fermée et neutre : une question floue produit six avis flous. Choisir le format, les angles et l'arbitre. Les présenter au décideur avec une phrase par angle (ce qu'il couvre que les autres ne couvrent pas), et attendre sa validation. S'il conteste un angle, en changer. Lui demander s'il penche déjà pour une option : ça se note, ça ne se montre pas aux angles.
Si la décision bute sur un chiffre inconnu, le dire : aller le chercher coûte moins cher que faire délibérer sept avis sur du vide.
2. Ouvrir la séance
python3 council.py init <seance> --title "Passer en freemium" \
--seat ghost:popper --seat ix:dixieme-homme@opus --seat costume:humain
# --format compare|deliberation, --arbiter adversarial|ghost:zeus@opus|...<seance> est un dossier neuf dans le projet de l'utilisateur. init crée
council.json et un gabarit par fichier, marqué <!-- council:todo -->.
Deux fichiers, deux lecteurs :
CADRAGE.md, que lisent les angles : la question, les faits sans lesquels on raisonne à faux (chacun recopié depuis sa source relue, avec cette source), les sources autorisées, les options dont « ne rien faire », ce qu'on ne sait pas. Rien sur la grille, rien sur ce que le décideur espère.GRILLE.md, que les angles ne lisent jamais : la grille, ce que couvre chaque angle (jamais ce qu'il devrait trouver), les trois sièges, le penchant du décideur, les angles écartés. Écrire**Grille validée :** oui, par <qui>, le <date>seulement quand c'est vrai.
Supprimer la ligne council:todo de chacun.
La relecture. Un sous-agent isolé, sans angle, lit les deux fichiers
(brief <seance> relecture) et écrit RELECTURE.md : fuites, prémisses semées,
faits vérifiés contre leur source, ce qui manque. Le tour ne part que sur
**Verdict de relecture :** prêt ; brief refuse sinon. Sur « à corriger », corriger
le cadrage et relancer la relecture, qui réécrit le fichier. Deux relectures au
plus : si la seconde demande encore des corrections, appliquer ce qui peut l'être,
noter le reste dans GRILLE.md §6, et faire lever le verrou par le décideur
(**Relecture levée par :** <qui>, réserves en §6).
3. Faire tourner les étapes
À chaque étape, status dit quoi faire :
python3 council.py status <seance>
python3 council.py brief <seance> avis popper # le brief, à donner tel quel
python3 council.py brief <seance> synthese # celui de l'arbitre- Les angles en parallèle. Un sous-agent par angle, tous lancés dans le même message, chacun avec son brief et rien d'autre : pas de résumé de la conversation, pas d'indice sur ce que tu attends. Le brief dit au worker quoi lire, quoi ne pas ouvrir et quel fichier écrire.
- Un worker qui échoue ou rend un fichier vide est relancé une fois avec le même brief. S'il échoue encore, il manque : tu n'écris jamais son avis à sa place.
- L'arbitre se lance dans un sous-agent isolé, quand
statusle dit. Jamais toi : tu as écrit les briefs. briefrefuse une étape dont la précédente n'est pas finie.
Sans sous-agents (un seul agent dans un seul contexte), l'indépendance est plus faible : écrire tous les avis avant d'en relire aucun, dans un ordre fixé d'avance, l'angle le plus contrarien d'abord ; ne jamais retoucher un avis déjà écrit ; et dire dans la restitution que tous les avis viennent d'un seul contexte.
4. En format deliberation
- La relecture vient après le dossier : elle relit le cadrage, la grille et le dossier ensemble, avant que le tour 1 parte.
- Le dossier commun (
DOSSIER.md) : le relevé factuel identique pour tous, écrit avant le tour 1 et plus jamais retouché ensuite. Question neutre, options dont « ne rien faire », faits sourcés, estimations avec leur méthode, ce qu'on ne sait pas, ce qui est déjà décidé. Jamais le penchant du décideur, qui reste dansGRILLE.md. Voirreferences/dossier.md. - Le vérificateur (
brief <seance> verification) : sans angle, sans position, sans vote. Il part en même temps que le tour 1 et vérifie chaque affirmation porteuse contre sa source primaire. C'est le siège le moins cher et celui qui attrape le plus d'erreurs : ne jamais le supprimer. Voirreferences/verification.md. - Les corrections (
addendum <seance>) : ce que le vérificateur a trouvé, en addenda numérotés qui priment sur le dossier. Corrections seulement, jamais un avis ni un vote. - Le bilan (
BILAN-TOUR1.md), écrit par toi quand tous les tours 1 sont là (tally <seance> --step tour1donne le tableau) : positions dans leurs mots, accords, désaccords consignés sans arbitrage, options lettrées dont la dissidence la plus forte. Tu offres des options, tu n'en recommandes aucune. - Le tour 2 : chaque angle lit tout, répond aux autres par leur id et vote ; un
vote qui change nomme ce qui l'a fait changer.
tally <seance> --step tour2compte les voix.
5. Contrôler et restituer
python3 council.py check <seance> --finalcheck contrôle l'ordre (pas de synthèse avant tous les avis, pas de bilan avant
la vérification), les champs obligatoires (**Position :**, **Confiance :**,
**Vote :**, **Arbitre :**), les sections de la synthèse, l'absence de vote
dans un addendum, la justification d'un vote changé. Il sort 0 quand la séance est
complète et propre. Corriger ce qu'il signale avant de restituer.
Output attendu
Trois blocs, dans cet ordre :
- La grille validée : les angles retenus et pourquoi, le format, l'arbitre.
- La synthèse de l'arbitre, en le nommant : convergences (et si elles sont suspectes), désaccords intacts avec ce qui fonde chaque camp, ce qu'aucun angle n'a regardé.
- La question à trancher, formulée pour être décidable, et pour chaque prochaine étape le résultat qui changerait la décision.
Les avis bruts restent dans le dossier de séance et ne sont pas déversés : ce qui compte, c'est l'écart entre eux. Si tous les angles convergent, le dire tel quel : ne pas simuler un désaccord.
Limites connues
- L'indépendance a un plafond. Si tous les avis viennent du même modèle, ils partagent ses angles morts. Varier le modèle par siège décorrèle un peu, jamais complètement.
- Le coût est réel. Six angles, une ou deux relectures et un arbitre, c'est huit à neuf exécutions ; une délibération complète en fait le double. Réserver aux décisions qui engagent. Sur une question fermée à faible enjeu, un seul avis contradictoire suffit.
- Un conseil ne remplace pas une donnée manquante.
- Il ne convient pas aux décisions réversibles à faible coût : le rituel coûte plus que l'erreur qu'il évite.
- Il ne remplace pas un expert réel sur un sujet réglementé, juridique ou médical : il éclaire, il n'engage personne. Les angles sont simulés, pas de vraies parties prenantes.
- Un arbitre à méthode importe ses biais, d'où l'obligation de le nommer.
Parenté
Lignée revendiquée : llm-council pour la délibération multi-avis ; les travaux sur le débat multi-agents comme mécanisme de vérité (Du et al., 2023), avec la réserve, établie dans la littérature ultérieure, qu'un débat entre instances d'un même modèle ne bat pas de façon fiable des méthodes plus simples à budget égal. D'où la règle d'indépendance, qui est ici la variable qui compte.
Le script, le dossier commun, le vérificateur et le second tour sont adaptés
d'advisory-council
de nzanepro (MIT, voir THIRD_PARTY.md à la racine du dépôt et du plugin), dont on n'a pas repris
les personas parties prenantes.
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.

