functional-designlisted
Install: claude install-skill yutna/functional-design-skills
# Functional Design
## Overview
This pack is a set of executable design rules for codebases written in a
functional style. It covers complexity and module boundaries, modelling a
domain in types, composing workflows, immutability, and where effects
belong.
One method runs through all of it: make the domain explicit in types,
express behaviour as composed total functions, push effects to the edges,
and hide everything else behind deep interfaces.
## When to use
- Starting a new module, workflow, endpoint, or bounded context
- A small change forces edits in many places, or nobody can predict what
a change will break
- Reviewing a design or a diff and needing a concrete checklist
- Unsure which skill in this pack applies to the problem in front of you
Not for: language syntax lookups, build and tooling problems, or
deciding what the software should do in the first place.
## How much design does this need?
Decide this before opening a skill. The row is chosen by something you
can observe about the task, not by how important it feels.
| The task | Apply | Skip |
| ----------------------------- | ------------------- | ------------ |
| Output is an answer | nothing | everything |
| One function, module exists | names, totality | modelling |
| A feature in an existing flow | the flow's idiom | new contexts |
| A new module or workflow | the design loop | nothing |
| A new bounded c