When testing Either values, compare the value directly with shouldBe instead of checking isLeft, so test failures show the actual value. Use when writing or reviewing Haskell test code that asserts on Either or similar values.
Name Haskell test modules after the module under test with a Spec suffix in the same namespace. Use when writing or reviewing Haskell test module names or test file organization.
Avoid overusing threadDelay because time-dependent code is unstable and unportable. Prefer synchronization variables like TMVar or retry combinators. Use when writing or reviewing Haskell code that delays threads, waits, or polls.
Forbid unsafe Haskell functions such as unsafePerformIO, unsafeCoerce, and other unsafe-prefixed functions. Use when writing or reviewing Haskell code that uses any unsafe-prefixed function.
Do not disable GHC or hlint warnings. Suppress them only per module with OPTIONSGHC or annotations for justified exceptions. Use when writing or reviewing Haskell code, cabal files, or hlint configuration that disables warnings.
Use when you need to review code for quality, maintainability, and adherence to best practices. Examples: After implementing a new feature or function When refactoring existing code Before committing significant changes When uncertain about code quality.
Use when you need to verify that code documentation is accurate, complete, and up-to-date. Use this skill after: Implementing new features that require documentation updates Modifying existing APIs or functions Completing a logical chunk of code that needs documentation review Preparing code for review/release.
Code review for PRs or local changes. Covers code quality, dependency updates, performance, test coverage, documentation accuracy, and security. Use when reviewing PRs, checking code quality, or running comprehensive code reviews.
Use when you need to analyze code for performance issues, bottlenecks, and resource efficiency. Examples: After implementing database queries or API calls When optimizing existing features After writing data processing logic When investigating slow application behavior When completing code that involves loops, network…
Use when you need to review code for security vulnerabilities, input validation issues, or authentication/authorization flaws. Examples: After implementing authentication logic When adding user input handling After writing API endpoints that process external data When integrating third-party libraries The skill should…
Use when you need to review testing implementation and coverage. Examples: After writing a new feature implementation, use this skill to verify test coverage. When refactoring code, use this skill to ensure tests still adequately cover all scenarios. After completing a module, use this skill to identify missing test…
Respond to PR review comments semi-automatically. Splits review findings into logical units, fixes and commits them one by one, then replies and resolves review threads.
Respond to PR review comments semi-automatically. Fetches all review threads and comments, splits them into logical units, fixes and commits one unit at a time, then replies and resolves review threads. Use when the user wants to address PR review feedback or respond to review comments.
Nix naming conventions for files, variables, packages, and NixOS options based on nixpkgs official coding standards. Use when writing or reviewing Nix code.
Nix CLI command guidelines. Use new unified CLI (nix subcommand) instead of legacy commands (nix-build, nix-env, nix-shell, etc.). Use when running or suggesting Nix commands.
A guide for using nix-fast-build, a tool that evaluates Nix expressions in parallel and shows build progress. Nix expressions describe packages, system configurations, tests, and other reproducible results.