← Back to catalog
ncaq

Author in the catalog

ncaq

51 skills102 stars totalgithub.com/ncaq

Published skills

Showing 48 of 51

pr

2

Generate a GitHub pull request title and body from the current branch and let the user review before creation. Use when the user wants to create a pull request.

Desenvolvimento#github#gitby ncaq

commit

2

Generate a commit message from staged changes and let the user review before committing. Use when the user wants to commit changes or create a git commit.

Desenvolvimento#git#aiby ncaq

io-monad

2

Prefer MonadIO and MonadUnliftIO type classes over using IO directly, and avoid redundant liftIO. Use when writing or reviewing Haskell IO actions, monad transformers, or type class abstractions.

Escrita e Conteúdo#aiby ncaq

bump-cabal-index-state

2

Update Cabal project index-state to the latest timestamp. Use when it needs to bump the cabal index-state.

Desenvolvimento#ai#testby ncaq

exception

2

Do not throw exceptions from pure code with error or throw, give exceptions structured types, and never silently swallow errors in IO. Use when writing or reviewing Haskell error handling, exceptions, or IO code.

Escrita e Conteúdo#aiby ncaq

commit-style

2

Commit message style guidelines. Use when writing or proposing git commit messages, including direct git commit commands outside the /commit skill.

Design e Frontend#git#aiby ncaq

export

2

Explicitly enumerate Haskell module exports instead of exporting everything implicitly, and use re-export sparingly. Use when writing or reviewing Haskell module export lists.

Escrita e Conteúdo#aiby ncaq

react-refactor-component

2

Refactor React components to follow project conventions. Use when reorganizing, splitting, or cleaning up existing React component files.

Design e Frontend#ai#reactby ncaq

language-extensions

2

Haskell language extension and language edition (GHC2024/GHC2021) selection policy. Use when configuring or reviewing Haskell language extensions, cabal default-extensions, or default-language.

Outros#aiby ncaq

warning

2

Do not disable GHC or hlint warnings. Suppress them only per module with OPTIONS_GHC or annotations for justified exceptions. Use when writing or reviewing Haskell code, cabal files, or hlint configuration that disables warnings.

Desenvolvimento#aiby ncaq

react-use-effect

2

Rules for useEffect usage in React including when to avoid it and when to extract it into custom hooks. Use when writing or reviewing React components that contain or might need useEffect.

Design e Frontend#ai#reactby ncaq

lens

2

Use the lens library, generating accessors with makeFieldsId for NoFieldSelectors records, export accessors together with their type classes, and prefer lens or OverloadedRecordDot over pattern matching. Use when writing or reviewing Haskell code that uses lens, records, or field access.

Escrita e Conteúdo#aiby ncaq

partial-function

2

Avoid partial functions such as head, fromJust, read, and (!!) in Haskell. Prefer total functions, Maybe-returning variants, and other safe alternatives. Use when writing or reviewing Haskell code that accesses lists, parses strings, or handles Maybe.

Escrita e Conteúdo#aiby ncaq

kyosei

2

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.

Desenvolvimento#ai#testby ncaq

naming-convention

2

Nix naming conventions for files, variables, packages, and NixOS options based on nixpkgs official coding standards. Use when writing or reviewing Nix code.

Desenvolvimento#aiby ncaq

aria-usage

2

WAI-ARIA usage guidelines. Avoid redundant ARIA attributes. No ARIA is better than Bad ARIA. Use when writing or reviewing HTML/JSX with accessibility attributes.

Design e Frontend#aiby ncaq

react-component-convention

2

React component file conventions covering structure ordering, one-component-per-file, and splitting bloated components. Use when writing or reviewing React components.

Design e Frontend#ai#reactby ncaq

string

2

Prefer Text over String for text data, and use ByteString for binary or non-Unicode data. Use when writing or reviewing Haskell code that handles strings, text, or byte data.

Desenvolvimento#ai#testby ncaq

unsafe

2

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.

Escrita e Conteúdo#aiby ncaq

treefmt

2

treefmt-nix and nix fmt guide. Unified formatting and linting with treefmt. Use when configuring or running nix fmt, treefmt, or adding formatters/linters to a Nix project.

Design e Frontend#aiby ncaq

pr-style

2

Pull request style guidelines covering title, body, assignee, and label selection. Use when writing or proposing GitHub pull requests, including direct `gh pr create` invocations outside the /pr skill.

Design e Frontend#github#gitby ncaq

nix-command

2

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.

Design e Frontend#aiby ncaq

thread-delay

2

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.

Escrita e Conteúdo#aiby ncaq

nix-fast-build

2

nix-fast-build command reference. Parallel Nix evaluation and build tool using nix-eval-jobs. Use when running or configuring nix-fast-build.

Design e Frontend#aiby ncaq

writer-function

2

Nix writer functions (writeShellApplication, writeText, etc.) for generating scripts, text files, and data. Use when creating derivations that produce scripts or configuration files.

Dados e Análise#aiby ncaq

command

2

Guidelines for shell commands. Avoid `cat`, `find`, `grep`, `head`, and `tail`; prohibit `rm` (use `trash` instead). Use when invoking shell commands via Bash.

Design e Frontend#aiby ncaq

github

2

How to access GitHub. Avoid direct URL fetches; prefer GitHub MCP tools or the `gh` CLI subcommands. Use when fetching GitHub information or operating on issues, pull requests, or workflows.

Automação#github#gitby ncaq

proofreading-ja

2

Fix typos, grammar, readability, and notation consistency in Japanese text. Use when the user wants to proofread or edit Japanese text.

Marketing#aiby ncaq

as-const-satisfies

2

Use `as const` and `as const satisfies Type` for constant definitions in TypeScript. Use when defining constants, config objects, or string union types.

Outros#typescript#aiby ncaq

async-state-type

2

Avoid contradictory state types for async data fetching. Use Suspense or discriminated unions instead. Use when writing or reviewing async data fetching code in React/TypeScript.

Dados e Análise#typescript#aiby ncaq

test

2

Test code conventions. Modify tests only for genuine spec or architecture changes—never trivialize, skip, or align expected values to a buggy implementation. Avoid implementation branches that depend on specific test data values. Use when writing or modifying test code, or when tests are failing.

Desenvolvimento#ai#testby ncaq

any-type

2

Avoid using any type in TypeScript. Use unknown, generics, or proper type definitions instead. Use when writing or reviewing TypeScript type annotations.

Escrita e Conteúdo#typescript#aiby ncaq

file-naming

2

File and directory naming conventions for TypeScript/JavaScript projects. Use when creating new files or directories.

Outros#javascript#typescriptby ncaq

research

2

Investigate any topic by querying multiple external sources (web, official docs, GitHub, MCP servers). Use whenever a question requires information not already in the working context, including library behavior, API specifications, error diagnostics, version comparisons, or general factual lookup.

Pesquisa e Web#github#gitby ncaq

dynamic-import

2

Prefer static import over dynamic import() in TypeScript/JavaScript. Use when writing or reviewing import statements.

Escrita e Conteúdo#javascript#typescriptby ncaq

react-use-ref

2

Avoid unnecessary useRef in React. Prefer HTML standard features, declarative libraries, state, or custom hooks. Use when writing or reviewing React components.

Design e Frontend#ai#reactby ncaq

semantic-html

2

Use semantic HTML elements instead of div. Use when writing or reviewing JSX/HTML markup in React or web components.

Design e Frontend#ai#reactby ncaq

non-null-assertion

2

Do not use non-null assertion operator (!) in TypeScript. Use optional chaining, type guards, or nullish checks instead. Use when writing or reviewing TypeScript code.

Escrita e Conteúdo#typescript#aiby ncaq

nullish-undefined-null

2

Prefer undefined over null in TypeScript/JavaScript. Use == null for nullish checks. Use when writing or reviewing code that handles absent values.

Escrita e Conteúdo#javascript#typescriptby ncaq

window-alert-confirm

2

Guidelines for using window.alert() and window.confirm() in web applications. Use when implementing error notifications or destructive action confirmations.

Design e Frontend#aiby ncaq

bracket

2

Use bracket or with-style functions to guarantee resource cleanup even on exceptions instead of separate do blocks. Use when writing or reviewing Haskell code that acquires and releases resources.

Design e Frontend#aiby ncaq

cabal-command

2

Use cabal with --disable-optimization for development builds and tests, and add --enable-tests to avoid rebuilds. Use when running or suggesting cabal build or test commands in Haskell development.

Design e Frontend#ai#testby ncaq

convertible

2

Prefer the convert function from the convertible library over individual conversion functions like pack, unpack, decodeUtf8, and encodeUtf8. Use when writing or reviewing Haskell code that converts between types.

Escrita e Conteúdo#aiby ncaq

function-result

2

Do not discard a function's final value with return (), pure (), or void; adjust the type to return the value and let the caller discard it when unneeded. Use when writing or reviewing Haskell functions that return unit or discard results.

Escrita e Conteúdo#aiby ncaq

mutable

2

Avoid mutable variables like IORef, STRef, and ST in Haskell and prefer immutable records. Use STM variables such as TVar for thread communication. Use when writing or reviewing Haskell code that uses mutable state or concurrency.

Escrita e Conteúdo#aiby ncaq

template-haskell

2

Distinguish mkName and newName in Template Haskell. Use mkName to capture existing names and newName for fresh non-colliding names. Use when writing or reviewing Template Haskell code that generates names.

Design e Frontend#aiby ncaq

test-equal

2

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.

Desenvolvimento#ai#testby ncaq

test-module-name

2

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.

Escrita e Conteúdo#ai#testby ncaq

Category alert

Get new Desenvolvimento skills every Monday