Skip to content
cccskills
FreePublished on GitHub

haskell

Use this when writing or reviewing Haskell code. Covers error handling, type safety, idiomatic patterns, HLint compliance, Aeson usage, and testing.

The English summary is being prepared. Showing the original description.

See how to install

Files included (2)

  • SKILL.md2.0 KB
  • RELUDE.md2.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Haskell Development

Error Handling

  • NEVER use undefined or error as placeholders
  • Handle ALL Maybe/Either cases explicitly — no silent ignoring
  • Handle all pattern match cases — no partial matches
  • Use types to make impossible states unrepresentable

Type Safety & Idioms

  • Write type signatures for all top-level definitions
  • Prefer Text over String
  • Use newtype wrappers for domain types
  • Apply smart constructors for validation
  • Write total functions — avoid head, tail, and other partial functions
  • Prefer pure functions over IO
  • Use explicit module exports
  • Favor composition over complex functions
  • Write Haddock documentation for public APIs

Records

  • Use OverloadedRecordDot (add pragma to modules that use the syntax)
  • Use DisambiguateRecordFields and DuplicateRecordFields for simple field names
  • Use lenses for record manipulation when appropriate

Aeson

  • NEVER construct aeson objects by hand
  • Create a type and use encode/decode on it
  • Prefer generic deriving; hand-write instances only when the wire format requires it

HLint

If .hlint.yaml exists in the project root, run hlint on every modified file. Fix ALL warnings before considering the task complete.

Build Workflow

If ghcid.txt exists in the project, check it after every code change for compile errors. Do not proceed until it is clean. If this file does not exist, use whatever build workflow the project documents.

When adding or deleting .hs modules: update the .cabal file, or run hpack if package.yaml exists.

Relude

If the project uses relude (check .cabal or package.yaml dependencies), also follow RELUDE.md for idiomatic substitutions.

Testing

  • QuickCheck for property-based testing
  • HUnit or Hspec for unit tests

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Review code for quality, simplicity, and common mistakes before declaring work complete.

The English summary is being prepared. Showing the original description.

juspay/vira20Updated May 15, 2026

do

Free

Do a task end-to-end — implement, PR, CI loop, ship. ONLY invoke when the user explicitly types `/do` or `$do`; never auto-select from a natural-language request, even one that sounds like an end-to-end task.

The English summary is being prepared. Showing the original description.

juspay/vira20Updated May 15, 2026

Iteratively study and apply elegant coding patterns. Each iteration - understand the code, research what simple and elegant code looks like, apply learnings, verify with CI. Use as a standalone refactoring pass or when the user asks to make code more elegant, simple, or idiomatic.

The English summary is being prepared. Showing the original description.

juspay/vira20Updated May 15, 2026

Audit code for correctness and rigor — logic errors, silent error swallowing, wishful thinking, and unjustified fallbacks. This is not a style review; it's a logic review. Use when you want a focused correctness audit separate from the full code-police pass.

The English summary is being prepared. Showing the original description.

juspay/vira20Updated May 15, 2026

Write engaging PR titles and descriptions for any forge (GitHub today; Bitbucket planned). Use when creating or updating PRs. Leads with narrative paragraphs and reaches for lists, tables, and diagrams when content is genuinely structured.

The English summary is being prepared. Showing the original description.

juspay/vira20Updated May 15, 2026

Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.

The English summary is being prepared. Showing the original description.

juspay/vira20Updated May 15, 2026

See all skills by juspay

Report a problem with this skill