monoids

Installation
SKILL.md

Monoïdes

Un monoïde est une structure minimaliste : un ensemble de valeurs + une opération binaire associative (combine) + un élément neutre (empty). Rien de plus. Reconnaître cette structure dans du code métier permet de remplacer une logique de fusion ad hoc — source fréquente de bugs sur les cas limites — par une API générique et testée une fois pour toutes.

Cette skill couvre Clojure/ClojureScript. Le concept est identique dans les deux langages ; seule l'idiomatique change. L'idiomatique TypeScript (interface Monoid<T>, folds, monoïdes métier) vit désormais dans le skill typescript → ../typescript/composition/SKILL.md (section Monoids) ; routez les questions TS vers cette référence.

Source de référence : Les monoïdes : une abstraction omniprésente (evryg)

Quand appliquer cette skill

Le signal à repérer, ce n'est pas le mot "monoïde" — c'est un des patterns suivants dans la demande ou le code :

  • Une fonction merge(a, b), combine(a, b) ou add(a, b) codée à la main pour un type précis
  • Un reduce/fold sur une liste avec une valeur initiale arbitraire
  • Un if (list.length === 0) throw / return nil avant un calcul d'agrégat
  • L'envie de paralléliser un calcul d'agrégation (Map-Reduce, agrégation par partition Kafka, etc.)
  • Une modélisation métier qui "s'additionne" naturellement : permissions, compteurs, logs, config

Si un de ces patterns apparaît, propose activement la structure monoïdale plutôt que d'attendre que l'utilisateur la nomme.

Installs
25
Repository
bsene/skills
GitHub Stars
5
First Seen
Aug 13, 2026
monoids — bsene/skills