superpowers
claudecodexCore skills library for Claude Code: TDD, debugging, collaboration patterns, and proven techniques
15 skills · hooks
Diagnose complexity, model a domain in types, compose total functions, keep effects at the edges, and refactor toward all of it
Plugin functional-design-skills from marketplace functional-design-skills in yutna/functional-design-skills. Commands read from the repo's manifest — 13 days ago.
functional-applying-solid-functionallyUse when a function takes a whole service to use one part, when adding a variant forces edits everywhere, or when structuring module dependencies.
functional-capturing-the-domainUse when starting a feature or system, when code and the business use different words for the same thing, or when drawing boundaries between subsystems.
functional-choosing-precise-namesUse when naming a function, type or variable, when a name is vague like data or handle, or when a name is generic or unusually hard to pick.
functional-choosing-types-or-plain-dataUse when a shape could be a type or a generic map, when fields or columns vary by tenant or user, when a schema must be a value, or when wrapper types block generic code.
functional-composing-functionsUse when two steps do not fit together, when deciding parameter order, or when a signature is partial rather than total.
functional-constraining-primitive-valuesUse when domain values are raw strings or numbers, when the same format or range check appears in more than one place, or when ids can be swapped.
functional-crossing-io-boundariesUse when mapping domain types to JSON, database rows or payloads, when storage shape leaks into the model, or when a read-only screen rebuilds aggregates and a bad row blanks it.
functional-deciding-what-mattersUse when code is correct but hard to follow, when deciding what an interface should expose, or when a reader cannot tell which parts are important.
functional-defining-errors-out-of-existenceUse when error handling dwarfs the happy path, when the same failure is handled in many places, or when an interface forces callers to handle rare cases.
functional-designUse when starting design or review, deciding how much design a task warrants, from a throwaway script to a subsystem, unsure which skill fits, or the requirement is undecided.
functional-designing-deep-modulesUse when designing a module interface, when it exports nearly as much as it hides or is as complicated as its implementation, or when tiny one-function modules multiply.
functional-designing-what-to-observeUse when deciding what to log, trace, or measure, when an incident could not be diagnosed from what was recorded, or when adding observability late.
functional-designing-workflow-pipelinesUse when implementing a use case, command handler, or business process, or when logic for one operation is scattered across services and layers.
functional-diagnosing-complexityUse when a small change touches many files, an edit breaks an unexpected module, code is slow to read, or before refactoring a flag, cache or field that may be self-inflicted.
functional-elixir-phoenixUse when designing a Phoenix context, an Ecto schema or changeset, a LiveView's assigns, or deciding what belongs in the domain rather than in the web layer.
functional-elixirUse when designing Elixir structs, ok and error tuples, or `with` pipelines, and whether a GenServer, a supervision tree, or letting a process crash is the right answer.
functional-enforcing-consistency-boundariesUse when deciding what one transaction must cover, when two entities have to stay in step, or when identity and equality of domain values are unclear.
functional-folding-over-dataUse when a loop accumulates into a variable, when combining a collection into one value, when the same tree walk keeps being written again, or when a combining law matters.
functional-handling-errors-with-resultsUse when a function throws and callers cannot tell, when exceptions cross module boundaries, or when validation must report every problem.
functional-hiding-informationUse when callers know how a module works inside, when one data format appears in several modules, or when each step of a process became a module.
functional-javascriptUse when applying functional design in plain JavaScript, without a type checker, including immutability, tagged unions, and Result-style error handling.
functional-making-effects-reliableUse when a timeout leaves an effect unsure, when a retry could charge twice, when a saved change is published separately, or when spawned background work outlives its request.
functional-making-illegal-states-unrepresentableUse when a type can hold combinations the business forbids, when booleans, flags, or nullable fields encode state like loading and failed, or when code guards impossible values.
functional-managing-state-immutablyUse when code mutates shared data or updates a record in place, when a concurrent update is lost or races, or when parallel work needs cancelling together.
functional-modeling-state-machinesUse when an entity has a lifecycle, when a status field drives branching, or when a function must ask what state a value is in before acting on it.
functional-modeling-with-algebraic-typesUse when designing domain types, when a record has many optional fields, or when choosing between a record, a union, and a bare primitive.
functional-parameterizing-dependenciesUse when domain code needs a database or clock, when tests need heavy mocking, or when an effect system or library makes simple code ceremonial.
functional-programming-strategicallyUse when a deadline tempts a shortcut, when editing existing code, or when a codebase degrades a little with every change.
functional-refactoring-toward-functional-designUse when moving imperative or object-oriented code to functional design, when a code smell needs a move, or when a shape cannot absorb new requirements.
functional-reviewing-functional-designUse when asked to review a design, diff, component or module, before merging, judging a design standard, or when a flagged pattern may be a stated project convention.
functional-separating-layersUse when adjacent layers repeat the same abstraction, when a function only forwards, when callers repeat the same lines after it, or when a utility carries a feature's policy.
functional-separating-pure-core-from-shellUse when business logic cannot be tested without I/O, when one call deep inside forces every caller to become async, or when deciding where a database or HTTP call belongs.
functional-splitting-and-joining-codeUse when deciding whether to split a function or module, when a boolean parameter selects behaviour, or when two pieces always change together.
functional-testing-functional-codeUse when writing tests for functional code, when tests need heavy mocking or a database, when deciding what to test, or turning a claimed law into a property.
functional-translating-gof-patternsUse when reaching for a factory, strategy, visitor or other class-based pattern, when porting object-oriented code, or when a pattern feels heavy.
functional-typescript-effectUse when applying functional design in a TypeScript project built on the Effect library, including services, layers, schema boundaries, and tagged errors.
functional-typescript-react-nextjsUse when placing logic across the server and client boundary in Next.js, writing a Server Action, invalidating a cache after a mutation, or deciding what may cross.
functional-typescript-reactUse when a React component's props grow, when an effect computes state that render could derive, or when deciding what belongs in a global store and what a selector should.
functional-typescript-ts-patternUse when a TypeScript project uses ts-pattern for matching, including exhaustive dispatch over unions, state machines, and Result handling.
functional-typescript-xstateUse when a lifecycle needs nested states, regions active at the same time, delayed transitions, or an actor per row, and whether a statechart beats a plain reducer.
functional-typescriptUse when applying functional design in TypeScript without a functional library, including branded types, discriminated unions, and hand-rolled Result.
functional-using-recursion-and-lazinessUse when a stack overflows, when data is too large to hold in memory, when an expensive result is recomputed, or when writing recursive functions.
functional-writing-useful-commentsUse when writing or reviewing comments and documentation, when a comment restates the code, or when a contract cannot be expressed in a type.
Core skills library for Claude Code: TDD, debugging, collaboration patterns, and proven techniques
15 skills · hooks
Up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your coding agent's context.
1 MCP server
Build powerful, stateful CLI interfaces for any GUI application using the cli-anything harness methodology.
5 commands
Automates browser interactions for web testing, form filling, screenshots, and data extraction
12 skills
Use Alibaba Open Code Review from local Codex.
2 skills
Claude Code skill for creating and presenting Slidev slidedecks
1 skill
This page updates itself from your repo. Add the badge to your README, or get it Featured to pin it above the organic results with a followed link to your site.