Skip to content
Conduit

skill

effect-rules

Oxlint rules for enforcing Effect conventions, with companion remediation skills that help apply the recommended fixes.

zaniluca/effect-rulescommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/zaniluca/effect-rules itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 17, 2026

@zaniluca/effect-rules

Oxlint rules for enforcing Effect conventions, with companion remediation skills that help apply the recommended fixes.

Effect diagnostics

Install @effect/tsgo for the official, type-aware Effect diagnostics, quick fixes, and refactors. Follow its setup guide to install versions of TypeScript, Oxlint, and oxlint-tsgolint that are compatible with the selected @effect/tsgo release.

pnpm add -D @effect/tsgo
pnpm exec effect-tsgo setup

This package complements @effect/tsgo with syntax-based architectural policies and remediation skills. It intentionally does not duplicate rules already provided by @effect/tsgo.

Oxlint plugin

Install Oxlint and the plugin together:

pnpm add -D oxlint @zaniluca/effect-rules

Use a TypeScript config and extend one of the exported presets:

import { recommendedConfig } from "@zaniluca/effect-rules/configs";
import { defineConfig } from "oxlint";

export default defineConfig({
  extends: [recommendedConfig],
});

recommendedConfig enables high-confidence correctness and boundary rules. strictConfig includes every rule and adds opinionated Effect-first architectural policies:

import { boundaryRules, strictConfig } from "@zaniluca/effect-rules/configs";
import { defineConfig } from "oxlint";

export default defineConfig({
  extends: [strictConfig],
  overrides: [
    {
      files: ["src/adapters/**/*.ts"],
      rules: boundaryRules,
    },
  ],
});

The boundaryRules override disables rules that legitimate runtime adapters may need to cross when translating exceptions, Promises, fetch, or unknown failures into Effect. Keep overrides narrow and documented.

You can also import recommendedRules, strictRules, boundaryRules, and effectPlugin individually from @zaniluca/effect-rules/configs.

Agent skills

Skills are installed separately from GitHub:

npx skills add zaniluca/effect-rules

Each diagnostic points to the relevant remediation skill. Rule authors should start with effect-rules-authoring.

Rules

RulePresetPurpose
no-conditional-testsRecommendedDisallow conditional assertions inside tests.
no-double-castRecommendedDisallow double casts through unknown or any.
no-effect-escape-hatchStrictDisallow Effect defect escape hatches outside tests.
no-effect-internal-tagsRecommendedDisallow direct tag checks for Effect-owned data types.
no-error-constructorStrictDisallow built-in Error constructors in Effect domain code.
no-inline-object-type-assertionRecommendedDisallow assertions against inline object-shaped types.
no-inline-schema-compileRecommendedRequire compiled Schema functions to be hoisted out of function bodies.
no-instanceof-errorStrictDisallow instanceof Error checks in Effect domain code.
no-instanceof-tagged-errorStrictDisallow instanceof checks for tagged errors.
no-manual-tag-checkStrictDisallow manual _tag inspection.
no-match-orelseStrictRequire exhaustive Effect Match chains.
no-promise-catchStrictDisallow Promise-style catch calls in Effect domain code.
no-promise-client-surfaceRecommendedDisallow Promise-returning methods on Effect client interfaces.
no-promise-rejectRecommendedDisallow Promise rejection APIs in Effect domain code.
no-redundant-error-factoryStrictDisallow helpers that only construct one tagged error.
no-redundant-primitive-castStrictDisallow suspicious primitive assertions.
no-switch-statementStrictPrefer Effect Match over JavaScript switch statements.
no-try-catch-or-throwStrictDisallow try/catch and throw in Effect domain code.
no-ts-nocheckRecommendedDisallow @ts-nocheck directives.
no-unknown-error-messageStrictDisallow deriving product messages from unknown errors.
no-unknown-shape-probingStrictDisallow ad hoc probing of unknown object shapes.
no-vitest-importRecommendedRequire Effect tests to import from @effect/vitest.
prefer-effect-predicateStrictPrefer Effect Predicate nullish helpers.
prefer-schema-inferred-typesStrictRequire object types to be inferred from nearby Effect Schemas.

Attribution

The rules and skills were adapted from UsefulSoftwareCo/executor.

This project is distributed under the MIT License.

↑↓ navigate openesc close