← ClaudeAtlas

haskelllisted

Entry point and roadmap for any Haskell development work. Use this skill whenever the user mentions Haskell, cabal, GHC, GHCi, HLS, GHCup, mise, Hackage, `.hs`/`.cabal`/`mise.toml`/`.tool-versions` files, or otherwise begins a Haskell-related task — even when no specific sub-topic is yet active. Loads the map of focused haskell-* sub-skills (project setup, devcontainer, native mise+GHCup toolchain, type design, domain errors, effectful, database, json, logging, testing, documentation, benchmarking, quality gates, debugging) plus the cross-cutting defaults that hold across all of them. Acts as the orientation layer so the specific sub-skills don't each need to win a trigger battle on their own.
ivelten/claude-haskell-skills · ★ 0 · Data & Documents · score 60
Install: claude install-skill ivelten/claude-haskell-skills
# Haskell Development (Entry Point) Orientation skill for any Haskell work. The opinionated stack and conventions are partitioned across focused sub-skills; this is the map that tells you which to load when. Don't try to recall sub-skill content from this map — invoke them on demand via the Skill tool. ## Sub-skill map | Sub-skill | Invoke when working on | |---|---| | `haskell-devcontainer` | Detecting or setting up the pre-built devcontainer (`ivelten/haskell-devcontainer`), `.devcontainer/` files, VS Code extensions, direnv inside the container | | `haskell-toolchain-mise` | Provisioning the toolchain natively on the host: `mise.toml` pins, GHC/HLS via GHCup, HLS↔GHC compatibility, PATH and shims, `.envrc` with `use mise` | | `haskell-project-setup` | Bootstrapping a repo: `.cabal`/`cabal.project`, project layout, language extensions, Hoogle, fast-tags, direnv | | `haskell-type-design` | Modeling domain types, newtypes, sum types, "parse don't validate", phantom types, records, field naming | | `haskell-domain-errors` | Designing error ADTs, `Show`/`ToJSON`/`Exception` instances, choosing `Either` vs `Error` effect vs `throwIO` | | `haskell-effectful` | Application architecture, defining effects, writing interpreters (production + in-memory), composition in `main` | | `haskell-database` | PostgreSQL modeling with Rel8, type-mapping decisions (composite vs jsonb vs enum), HKD table definitions, queries, migrations | | `haskell-json` | Aeson `ToJSON`/`FromJSON`: `TaggedOb