Skip to main content

effect

Guides production TypeScript work with current Effect APIs and explicit Effect architecture; use when implementing, reviewing, debugging, or refactoring Effect schemas, services, layers, config, schedules, caches, streams, HTTP clients, or tests, but not for non-Effect TypeScript or an explicitly older API surface.

Informações da origem

Repositório
getsentry/skillet
Última atividade na origem
22 de julho de 2026 às 22:48
Idioma detectado do SKILL.md
inglês
Estrelas
12
Forks
2

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
42 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
effect
description
Guides production TypeScript work with current Effect APIs and explicit Effect architecture; use when implementing, reviewing, debugging, or refactoring Effect schemas, services, layers, config, schedules, caches, streams, HTTP clients, or tests, but not for non-Effect TypeScript or an explicitly older API surface.
spec_hash
42534c7af095
# Effect Ground every recommendation in the target project. Inspect repository instructions, the pinned `effect` version, installed package source, and local conventions before choosing APIs. Prefer project evidence over remembered signatures. ## Choose the Relevant Guidance Read only the references needed for the task, and combine them when concerns overlap: - Schema, records, variants, brands, and typed errors: `references/SCHEMA.md` - Services, layers, modules, scope ownership, and `Effect.fn`: `references/SERVICES_LAYERS.md` - Configuration and providers: `references/CONFIG.md` - Schedules, retry, repeat, polling, and pacing: `references/SCHEDULING.md` - Cache, memoization, in-flight dedupe, and request batching: `references/CACHING.md` - Streams, queues, PubSub, SubscriptionRef, and long-lived consumers: `references/STREAMS.md` - HTTP clients, decoding, retries, and rate limits: `references/HTTP_CLIENTS.md` - Effect-aware tests, TestClock, layers, and synchronization: `references/TESTING.md` ## Model Data and Failures - Use `Schema.Struct(...)` for application records. - Use brands for scalar IDs and constrained values. - Use tagged Schema variants and unions for values that cross boundaries. - Decode unknown boundary data with `Schema.decodeUnknownEffect(...)`. - Model expected failures with `Schema.TaggedErrorClass`. - Never use casts or throwing construction to skip validation at untrusted boundaries. ## Build Explicit Services and Layers - Keep business rules in named workflows and services. - Represent dependencies explicitly in the Effect environment. - Build implementations with layers that own resource lifetime. - Keep HTTP and transport handlers focused on decoding, context, invocation, and response mapping. - Wrap public or non-trivial service methods with named `Effect.fn` calls. - Do not hide required authority, credentials, persistence, or transports behind defaults. ## Choose Runtime Primitives by Meaning - Use `Config` for runtime configuration and override it with providers in tests. - Use `Schedule` for retry, repeat, polling, pacing, and backoff. - Use `Cache` or Effect memoization when their ownership and eviction model fit. - Use request batching only when the backend exposes a real batch operation. - Use Queue, PubSub, SubscriptionRef, and Stream according to producer, consumer, broadcast, and backpressure needs. - Keep long-lived fibers scoped to the layer or resource that owns them. ## Keep Boundaries Truthful - Wrap HTTP clients, SDKs, CLIs, and external systems in named Effect boundaries. - Decode persisted and external values before treating them as domain data. - Preserve distinct transport, status, decode, and domain failures. - Retry only proven transient failures on idempotent operations with a bounded policy. - Keep exhausted failures visible unless the boundary has a real fallback. - Keep provider and network calls outside authoritative database transactions. ## Test Deterministically - Use Effect-aware tests and explicit test layers. - Fork time-dependent work before advancing `TestClock`. - Coordinate concurrent work with Deferred, Queue, Latch, Ref, fibers, or explicit hooks. - Never add arbitrary real sleeps when deterministic synchronization can express the condition. ## Preserve Types and Dependencies Solve missing requirements through explicit service and layer composition. Do not use `as any`, non-null assertions, broad cause recovery, `Layer.mergeAll`, `provideMerge`, or default authority merely to make code compile. ## Before Editing 1. Identify every Effect concern in the task. 2. Read the matching references and project-local source. 3. Choose APIs supported by the pinned version. 4. Make the smallest architecture-preserving change. 5. Run the project's typecheck and focused tests.
Ver no GitHub