К основному содержанию
скилл CX Codex

effect-ts · paulrberg — скилл для Claude Code: работа с Effect 4

Скилл для нетривиальной работы с Effect 4: сервисы, слои, типизированные ошибки, Schema, Config и рантайм. Помогает агенту не путать API v3 и v4.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add PaulRBerg/agent-skills --skill effect-ts -a claude-code
Открыть на GitHub

Что делает effect-ts

Скилл включается, когда в проекте есть Effect 4 и задача выходит за рамки простого импорта effect. Агент сначала смотрит на установленные версии effect и @effect/* в манифесте и локфайле, потом на соседние сервисы, слои и тесты. Организацию диктуют местные конвенции, а факты об API — исходники установленного пакета.

Внутри — маршрутизатор по ссылкам: сервисы и слои, Config, Schema и JSON Schema, тестирование через @effect/vitest, рантайм и конкурентность, стримы, сопоставление с образцом, effect/ai, effect/sql, Next.js и Effect Atom. Для effect/http, effect/rpc и effect/cli скилл велит читать исходники пакета напрямую. Есть скрипт scripts/effect-source.sh: он держит кэш клона Effect-TS/effect на последнем релизе и обновляет его не чаще раза в сутки.

Перед установкой проверьте версию. Если effect не 4.x, скилл не применяется, а для 3.x автор указывает отдельный скилл: npx skills add PaulRBerg/agent-skills#shelved --skill effect-ts-v3. Версии всех @effect/* должны совпадать с effect до знака — при расхождении скилл требует сообщить о нём, а не обходить. Скрипту кэша нужны git и доступ в сеть.

Какие задачи решает

  • разложить сервис и его зависимости по слоям
  • описать типизированные ошибки вместо исключений
  • сверить версии effect и @effect/* перед правкой
  • написать тест на фибры и ретраи через @effect/vitest
  • проверить сигнатуру по исходникам установленного пакета

Примеры запросов агенту

  • добавь сервис для работы с заказами и подключи его через слой
  • переведи обработку ошибок в этом модуле на типизированные сбои
  • напиши тест на ретраи этого эффекта через @effect/vitest

Как установить effect-ts

1Через Skills CLI (Vercel)

npx skills add PaulRBerg/agent-skills --skill effect-ts -a claude-code

2Вручную: положить файлы

~/.claude/skills/effect-ts/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/effect-ts/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора6

Другие версии effect-ts

Похожие

effect-best-practices Makisuo Скилл задаёт агенту правила написания кода на Effect-TS: сервисы, ошибки, слои и атомы. Пригодится, если проект уже на Effect. CX Codex +1 840установок effect kitlangton Скилл подсказывает, как строить TypeScript-приложения на Effect v4: сервисы, схемы, конфигурацию, HTTP-клиенты и тесты. CX Codex +1 2 500установок zod Anivar Aravind Набор правил по Zod v4: парсинг данных на границах системы, обработка ошибок, вывод типов и миграция с v3. Пригодится, когда агент пишет схемы по памяти и путает API. CX Codex +1 1 000установок valibot open-circle Скилл учит агента работать с Valibot: создавать схемы, парсить ввод и не путать синтаксис с Zod. Пригодится, когда в проекте уже стоит эта библиотека. CX Codex +1 2 100установок graphql-development Mindrally Набор правил для GraphQL: схема, типизированные клиенты, интеграция с React и Next.js. Пригодится, когда агент пишет резолверы и запросы. CX Codex +1 661установок effect-v3-to-v4 Effect-TS Ведёт перенос кодовой базы с Effect v3 на v4 по сгенерированному справочнику миграции. Пригодится, когда обновляете effect или любой пакет @effect/* через границу версий. CX Codex +1 704установок

Рядом в теме «Языки программирования»

Все скиллы по теме «Языки программирования» →

Вопросы о effect-ts

Как установить effect-ts в Claude?

Выполните npx skills add PaulRBerg/agent-skills --skill effect-ts -a claude-code. Файл скилла окажется по пути ~/.claude/skills/effect-ts/SKILL.md.

Что делает effect-ts?

Проводит агента по нетривиальной работе с Effect 4: сервисы и слои, типизированные ошибки, Schema, Config, рантайм, тесты, effect/ai и effect/sql. Опирается на исходники установленных пакетов, а не на память модели.

Подойдёт ли скилл для Effect 3?

Нет. При effect версии 3.x автор направляет к отдельному скиллу: npx skills add PaulRBerg/agent-skills#shelved --skill effect-ts-v3.

Исходный текст

SKILL.md · MIT
---
compatibility:
  Requires a project using current stable Effect 4 packages. Verify exact APIs against the target's installed package
  source. The source-cache helper needs git and network access for its daily fetch.
name: effect-ts
description:
  Use for nontrivial Effect 4 work including services/layers, typed errors, Schema/JsonSchema, Config,
  runtime/concurrency, @effect/vitest, effect/ai and @effect/ai-*, effect/sql and @effect/sql-*, Effect Atom
  (@effect/atom-*), or @prb/effect-next.
---

# Effect 4

Apply Effect 4 semantics from project-local architecture, the narrowest relevant reference, and source matching the
target's installed packages.

## Workflow

Do not activate this workflow merely because a file imports `effect`. For nontrivial Effect work:

1. Resolve the target package or workspace and its exact installed `effect` and relevant `@effect/*` versions. If
   `effect` is not 4.x, stop because this skill does not apply. For 3.x, point the user to the v3 skill:
   `npx skills add PaulRBerg/agent-skills#shelved --skill effect-ts-v3`.
2. Confirm lockstep versions: every `@effect/*` package must match the installed `effect` version exactly. Report a
   mismatch instead of coding around it.
3. Inspect neighboring services, layers, errors, schemas, runtime boundaries, and tests. Local conventions decide
   organization. Installed package evidence decides API facts.
4. Read `references/critical-rules.md`, then only the task-specific references below.
5. Verify every uncertain import, signature, or behavior against the package installation visible to the target
   workspace before editing. Do not port v3 names from memory. Many were renamed or removed.
6. Implement the smallest pattern consistent with the project and run the narrowest test or typecheck covering the
   changed semantics.

## Evidence Order

Use the target workspace's manifest and lockfile to identify versions. Prefer, in order:

1. the installed package's `src/`, README, tests, and changelog.
2. its emitted declarations when source is not shipped.
3. the matching official package artifact or source tag.

For monorepo source, tests, or cross-package search, run `scripts/effect-source.sh`. It keeps a cached clone of
`Effect-TS/effect` checked out at the newest release, fetching at most once per 24 hours and otherwise reusing the
cache, and prints `path=` and `release=`. When `release` differs from the installed `effect` version, read the matching
tag without checking it out: `git -C <path> grep <pattern> effect@<version> -- packages/` or
`git -C <path> show effect@<version>:<file>`. Never edit the cache.

Do not install or update dependencies solely to obtain documentation. Do not trust v3 examples or source that does not
match the target's installed version. If exact behavior cannot be verified, stop rather than guessing.

Former `@effect/platform`, `@effect/rpc`, `@effect/cli`, `@effect/cluster`, and related modules now ship inside `effect`
under subpaths such as `effect/http`, `effect/http-api`, `effect/rpc`, `effect/cli`, `effect/ai`, `effect/sql`,
`effect/schema`, `effect/reactivity`, and `effect/workflow`. Check the installed `package.json` `exports` for the exact
set. These modules are documented `@stability unstable` and may break in minor releases. There are no
`effect/unstable/*` compatibility paths. Separate packages remain for platforms, drivers, and providers:
`@effect/platform-*`, `@effect/sql-*`, `@effect/ai-*`, `@effect/atom-*`, `@effect/opentelemetry`, and `@effect/vitest`.
Their modules are also `@stability unstable`.

From 4.0.2, every module and directly importable export declares `@stability`. Check the tag before you depend on an
API. `stable` follows strict semver. `experimental` modules, such as `effect/graphql` and parts of `effect/net`, may
break in patch releases. Some root modules are also `unstable`, such as `Arbitrary`, `Crypto`, `FileSystem`, and `Path`.

## Reference Router

| Task                                                | Reference                         |
| --------------------------------------------------- | --------------------------------- |
| Services, Layers, `Context.Service`, `fn`           | `references/services-layers.md`   |
| Config providers and secrets                        | `references/config.md`            |
| Schema, JSON Schema, encoded errors/models          | `references/schema-jsonschema.md` |
| `@effect/vitest`, clocks, fibers, retries           | `references/testing.md`           |
| resources, scheduling, refs, concurrency            | `references/runtime.md`           |
| streams and backpressure                            | `references/streams.md`           |
| pattern matching and tagged unions                  | `references/pattern-matching.md`  |
| `effect/ai` and `@effect/ai-*`                      | `references/ai.md`                |
| `effect/sql` and `@effect/sql-*`                    | `references/sql.md`               |
| Next.js / `@prb/effect-next`                        | `references/next-js.md`           |
| Effect Atom (`effect/reactivity`, `@effect/atom-*`) | `references/effect-atom.md`       |
| `Option` at nullable boundaries                     | `references/option-null.md`       |

For `effect/http`, `effect/http-api`, `effect/rpc`, `effect/cli`, collection utilities, deprecations, or constructor
lookup, inspect the installed package source directly instead of loading a local API inventory.

## Boundaries

- Keep pure helpers, constants, and path manipulation pure unless an Effect boundary provides a concrete dependency,
  testability, resource-safety, or error-model benefit.
- Preserve existing domain facades and service/runtime boundaries unless the user requested redesign.
- At IO boundaries, prefer typed failures and scoped resources. Choose Schema-backed errors/models only when encoding or
  boundary validation is needed.
- Do not broaden environment requirements merely to replace a small platform call.

For changes, completion requires code consistent with local Effect architecture, selected references and installed
source where needed, and the narrowest test/typecheck that exercises the changed semantics. Read-only work requires
evidence for the reported conclusion. Finish with `### ⚡ Effect — ✅ change complete` after verified edits or
`### ⚡ Effect — 🔎 reviewed, no files written` for read-only work, one sentence naming the boundary or pattern used,
and `### 🧪 Verification` with exact scoped commands/results. If required validation is incomplete, use
`### ⚡ Effect — ⛔ blocked` instead. Add `### ⚠️ Limitation` only for non-blocking caveats. Never decorate typed
errors, Schema messages, logs, tests, generated JSON/API responses, or command output.

© PaulRBerg · MIT · PaulRBerg/agent-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой