effect

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.

kitlangton official Разработка

Что делает навык

Навык предоставляет экспертное руководство по разработке production-приложений на TypeScript с использованием Effect v4, включая работу с рабочими процессами, слоями, схемами и HTTP-клиентами. Он обеспечивает соблюдение конвенций проекта и использование актуальных API Effect для обеспечения типобезопасности и детерминизма.

Когда применять

  • Разработка сервисов, слоев (layers) и конфигурации среды с использованием Effect.fn и Context.Service.
  • Моделирование данных и валидация входных/выходных данных с помощью Schema.Struct, TaggedError и decodeUnknownEffect.
  • Реализация потоков (streams), кэширования, повторных попыток (retry) и планировщиков (schedules).
  • Написание детерминированных тестов с использованием TestClock, Deferred и явных слоев вместо реального сна.
  • Интеграция с внешними HTTP-сервисами через Effect HttpClient с обработкой ошибок и лимитирования.

Как работает

  1. Определить контекст задачи и прочитать соответствующий справочный файл (SCHEMA, SERVICES_LAYERS, CONFIG и т.д.) из репозитория.
  2. Использовать Effect.gen для композиции рабочих процессов и Effect.fn для определения публичных методов сервисов.
  3. Моделировать данные через Schema.Struct с интерфейсами и использовать Schema.TaggedError для типизированных ошибок.
  4. Читать конфигурацию через Config, а не напрямую из process.env, и использовать Schedule для политик повторов.
  5. Деконструировать неизвестные данные через Schema.decodeUnknownEffect и использовать Stream для асинхронных источников.
  6. Применять Effect-aware тесты с TestClock и явными слоями, избегая Effect.sleep и ручного кэширования.

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

Создай сервис авторизации с использованием Effect.fn, Layer.effect и Context.Service, валидируя входные данные через Schema.Struct.
Реализуй HTTP-клиент для внешнего API с использованием Effect HttpClient, добавив политику повторных попыток через Schedule и декодирование ответа через Schema.
Напиши тест для асинхронной операции с использованием TestClock и Deferred для синхронизации, избегая реальных задержек.

Что понадобится

  • Репозиторий с файлами SKILL.md и справочными материалами (references/V4_APIS.md, references/SCHEMA.md и др.)
  • Установленный пакет effect версии v4 (или prerelease с учетом локальных конвенций)
  • Файлы AGENTS.md или локальные документы с практиками проекта для учета существующих конвенций

Описание составлено по SKILL.md навыка, сверено 06.10.2026.

Как подключить

1Скачать навык
# возьмите папку навыка «effect» из репозитория: # https://github.com/kitlangton/skills
2Положить папку с SKILL.md к навыкам ассистента
# положите папку навыка туда, где ассистент ищет skills: cp -r effect/ ~/.claude/skills/effect/

Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.