Effect skill

An Effect v4 skill for TypeScript: schemas, services and layers, config, retries, caches, streams, the HTTP client and tests with virtual time

  • 352 ★ on the repository
  • Last commit
  • MIT
Skill

Minimal access

Why this level

  • Text instructions and reference files only: the skill runs nothing, writes no files and makes no network calls itself
All reasons and checks

kitlangton/skills

Install

Works in

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/effect-skill

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Minimal accessThe tool runs nothing and makes no network calls.

  • Text instructions and reference files only: the skill runs nothing, writes no files and makes no network calls itself

This is third-party code. Review the repository files before installing.

What it does

The repository holds a single skill, `effect`: the author's guide to writing production TypeScript applications with Effect version 4. The main `SKILL.md` sets the defaults. The agent writes workflows with `Effect.gen`, wraps public service methods in `Effect.fn`, describes records with `Schema.Struct` and typed errors with `Schema.TaggedError`, and reads settings through `Config` instead of touching `process.env` directly. A separate list of prohibitions rules out type casts through `as any` and hand-rolled caches where `effect/Cache` fits. When a task goes beyond the general rules, the agent opens the matching reference file in the `references` folder. There are nine: schemas, services and layers, config, retry schedules, caching, streams, the HTTP client, tests, and migration from version 3 and from v4 prereleases. In the testing file the agent uses `TestClock` instead of real waiting and builds synchronization on `Deferred`, `Queue` and `Latch`. The skill checks its advice against the project. Project conventions and the nearest `AGENTS.md` come first, and the installed `effect` package version outranks the author's examples. The skill itself is checked against Effect 4.0.0 at a specific source commit.

Who it is for. For TypeScript developers who write or migrate projects to Effect v4 and want the agent to follow one consistent set of practices.

Good fit when

  • You are starting a service on Effect v4 and want the agent to build it on schemas, services and layers from the start
  • You need to migrate code from Effect 3 or a v4 prerelease: `V4_APIS.md` lists the replacements, for example `Effect.catchAll` to `Effect.catch`
  • The agent is writing request retries, polling or a cache with a time to live and deduplication of concurrent lookups
  • You need tests with virtual time built on `TestClock` and `@effect/vitest`
  • You want outgoing HTTP calls built on `HttpClient` with typed errors

Not a fit when

  • The project does not use Effect: the skill covers only this library and gives no general TypeScript advice
  • The project is on Effect 3 and you do not plan to move to version 4: the examples are checked against version 4.0.0
  • You need general TypeScript rules for types, functions, names and tests without Effect: the catalog has TypeScript Style Guide for that
  • You need a ready tool with commands or a server: the repository holds only text instructions

Example request

Write a service that polls an external API on Effect v4: exponential backoff retries, typed errors and a TestClock test

Limitations

  • The skill targets Effect v4. The compatibility field in the `SKILL.md` header requires that version, and for projects on another version some of the advice will be wrong.
  • The examples are checked against Effect 4.0.0 at commit `6389d9ac6` of the Effect-TS/effect repository. The author warns that API and import paths differ in prereleases.
  • The recommendations are subjective: the skill's description calls the guide opinionated, and the author offers the rules as working defaults.
  • Where no suitable API exists, the skill sends the agent to the package source and to current Effect code, so the actual version has to be consulted separately.
  • MIT license.

How to disable. Delete the `effect` folder from your agent's skills folder where the `npx skills add` command placed it. The skill creates no project files.

FAQ

Which Effect versions does the skill support?

Version 4. The `SKILL.md` header says the skill requires Effect v4, and the examples are checked against 4.0.0. For a project on version 3 the skill is useful only as a migration reference in `V4_APIS.md`.

What do I change if the project uses old API names?

`V4_APIS.md` has a replacement table: `Config.string` and `Config.boolean` became `Config.String` and `Config.Boolean`, `Effect.catchAll` became `Effect.catch`, `Either` became `Result`, and `Effect.fork` was replaced by `Effect.forkChild` and `forkDetach`. For service layers, `Context.Service` with an explicit `Layer` replaces `Context.Tag` and `Effect.Service`.

When should I use Stream and when Queue?

Per the quick guide in `SKILL.md`: `Stream` is for sources that emit many values over time and need backpressure or interruption. If a producer writes events into a queue, the queue stays the producer boundary and consumers read it through `Stream.fromQueue`. For broadcasting to subscribers take `PubSub` or `SubscriptionRef`.

How does the skill suggest testing code that depends on time?

With `TestClock` from `effect/testing`. Sleeping effects should be forked before you move the clock with `TestClock.adjust`. The skill advises against real `Effect.sleep` in tests because it makes them slow and flaky.

Do I need an extra package for tests?

Yes, a build of `@effect/vitest` compatible with version 4. The examples in the testing file use `it.effect` for ordinary checks and `it.live` where real time is the behavior under test.

Can I use a built-in cache rather than write my own?

Yes, and the skill directly forbids hand-rolled caches with time to live and deduplication where `effect/Cache` fits. For a single result there are `Effect.cached` and `Effect.cachedWithTTL`, and batching against a backend that has a real batch endpoint goes through `Effect.request` and `RequestResolver`.

Discussion

No questions or reviews yet.

Skills

An agent skill with TypeScript conventions: types, discriminated unions, functions, naming, source layout, React and tests, loaded per topic

SkillMinimal access784Repository stars

The author's personal set: shared agent rules and dozens of skills for GitHub, the browser, macOS, messaging and releases, plus a sync script

SkillBroad access7.4KRepository stars
Official

Skills from the Dart team: tests and mocks, analysis and dart fix, CLI apps, FFI, documentation and package conflict fixes for an AI agent

SkillMinimal access529Repository stars

Builder Skills

Skills for agents

A set of small skills from Builder.io for agent work habits: visual plans and diff recaps, docs-first checks, cross-agent review and clean status updates

SkillExtended access4.6KRepository stars

Two better-result skills: an error-handling audit of a TypeScript project with step-by-step Result adoption, and a 2.x to 3.0 migration with a codemod

SkillExtended access2KRepository stars

A vetted skill registry with a CLI that installs into twenty-plus agents and an MCP server for on-demand skill lookup

SkillExtended access7.1KRepository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialRepository starsMain difference
Effect skill (this entry)no352
TypeScript Style Guideno784general TypeScript conventions: types, functions, naming, structure, React and tests, loaded by topic
better-result skills for agentsno2,002two better-result skills

README in short

The repository description is a few lines long: the author calls these skills his own working ones and leaves it to the reader to decide whether they are useful. The only section, Effect, is labeled a guide to production TypeScript on Effect v4. The rest of the content is the MIT license, `SKILL.md` and nine reference files with code examples. The repository has no tests or verification scripts.

README badge

Original SKILL.md

---
name: effect
description: |
  Opinionated guide for building production TypeScript applications with Effect v4. Use when implementing Effect workflows, services, layers, schemas, configuration, schedules, caches, streams, HTTP clients, or tests.
license: MIT
compatibility: Requires Effect v4. Examples are reviewed against the version documented in this repository.
---

# Effect

Use current Effect v4 APIs and the production defaults in this skill. Established project conventions still take precedence unless the task is explicitly changing them.

## Source Rule

Reviewed against Effect **4.0.0**, upstream commit
[`6389d9ac6`](https://github.com/Effect-TS/effect/tree/6389d9ac64c0f62ccc8b575fb9afc65fc104e814).
Read `references/V4_APIS.md` when upgrading from v3 or a v4 prerelease.
The installed version takes precedence: prerelease APIs and import paths can differ.

Check these before guessing:

- the nearest `AGENTS.md` and any project-local Effect practices doc
- the project-pinned `effect` package source and version
- current upstream Effect source when the installed package does not answer the question

## Branch Chooser

Read only the branch references that match the task.

- Data models, schemas, brands, variants, optional keys, or decoders: read `references/SCHEMA.md`.
- Services, module surfaces, layers, runtime wiring, errors, `Effect.fn`, or test services: read `references/SERVICES_LAYERS.md`.
- Runtime config, env variables, `ConfigProvider`, or `layerConfig`: read `references/CONFIG.md`.
- Retry, repeat, polling, backoff, jitter, rate-limit-aware policies, or pass loops: read `references/SCHEDULING.md`.
- Memoization, per-key TTL caches, deduplicating concurrent lookups, or request batching: read `references/CACHING.md`.
- Streams, event sources, async iterables, queues/pubsubs, pagination, backpressure, or stream consumers: read `references/STREAMS.md`.
- Outgoing HTTP calls, Effect HttpClient, status handling, or HTTP rate limiting: read `references/HTTP_CLIENTS.md`.
- Effect tests, time, sleeps, concurrency synchronization, or fakes: read `references/TESTING.md`.

If a task spans several branches, read all matching files before editing.

## Core Defaults

- Compose workflows with `Effect.gen(function* () { ... })`.
- Define public service methods and non-trivial internal service methods with `Effect.fn("Domain.operation")`.
- Use `Effect.fnUntraced` only for internal helpers where stack-frame/span metadata is intentionally unnecessary.

Report a problem

Foxx AIEffect skill
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.