monoids
Recognize and apply the monoid abstraction (binary associative operation + neutral element) in TypeScript and Clojure/ClojureScript code. Use whenever the user is combining, aggregating, merging, or reducing data — shopping carts, permissions/roles, metrics and counters, event logs, config objects, or any reduce/fold/merge-with over a collection — even if they don't use the word "monoid". Also use when reviewing code that special-cases empty lists/collections, when discussing Map-Reduce or parallel aggregation (including pmap-based reduction), or when designing a generic combine/merge/empty API instead of ad hoc merge logic. Trigger this for "how do I merge these two X" or "what's a clean way to aggregate Y" style questions in either language, not just explicit monoid/algebra questions.
Works with
This skill's source license couldn't be confirmed as safe to mirror here, so it isn't inlined. View the full skill directly on its source repository.
View on GitHubMore General & Other skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.

