effect-patterns-hub

Purpose: Provide quick access to 130+ curated Effect-TS patterns from the EffectPatterns repository. Use this skill to find specific implementation patterns, compare approaches, and reference best practices.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "effect-patterns-hub" with this command: npx skills add mepuka/effect-ontology/mepuka-effect-ontology-effect-patterns-hub

Effect Patterns Hub

Purpose: Provide quick access to 130+ curated Effect-TS patterns from the EffectPatterns repository. Use this skill to find specific implementation patterns, compare approaches, and reference best practices.

Triggers

  • Looking for a specific Effect pattern or idiom

  • Need real-world examples of Effect concepts

  • Want to see multiple approaches to the same problem

  • Comparing implementation strategies

  • Learning new Effect features

Pattern Library Location

Local Patterns: .claude/skills/effect-patterns-hub/patterns/

Documentation: docs/effect-patterns/

Count: 130+ patterns in MDX format

Quick Decision Tree

I need to...

Create Effects

  • From value → constructor-succeed-some-right.mdx

  • From sync code → constructor-sync-async.mdx

  • From promise → constructor-try-trypromise.mdx

  • From nullable → constructor-from-nullable-option-either.mdx

  • Pre-resolved → create-pre-resolved-effect.mdx

Transform & Compose

  • Map values → combinator-map.mdx

  • Chain effects → combinator-flatmap.mdx

  • Sequence operations → combinator-sequencing.mdx

  • Combine values → combinator-zip.mdx

  • Filter → combinator-filter.mdx

  • Conditional logic → combinator-conditional.mdx

  • Process collections → combinator-foreach-all.mdx

Control Flow

  • Sequential logic → write-sequential-code-with-gen.mdx

  • Business logic → use-gen-for-business-logic.mdx

  • Pipe composition → use-pipe-for-composition.mdx

  • Branching workflows → conditionally-branching-workflows.mdx

  • Combinators → control-flow-with-combinators.mdx

  • Repetition → control-repetition-with-schedule.mdx

Error Handling

  • Define errors → define-tagged-errors.mdx

  • Catch specific errors → pattern-catchtag.mdx

  • Handle all errors → handle-errors-with-catch.mdx

  • Retry operations → retry-based-on-specific-errors.mdx

  • Flaky operations → handle-flaky-operations-with-retry-timeout.mdx

  • Map errors → mapping-errors-to-fit-your-domain.mdx

  • Handle unexpected → handle-unexpected-errors-with-cause.mdx

  • API errors → handle-api-errors.mdx

Concurrency

  • Parallel execution → run-effects-in-parallel-with-all.mdx

  • Background tasks → run-background-tasks-with-fork.mdx

  • Process collections → process-collection-in-parallel-with-foreach.mdx

  • Race effects → race-concurrent-effects.mdx

  • Fibers explained → understand-fibers-as-lightweight-threads.mdx

  • Decouple with queues → decouple-fibers-with-queue-pubsub.mdx

  • Polling → poll-for-status-until-task-completes.mdx

  • Graceful shutdown → implement-graceful-shutdown.mdx

Services & Dependency Injection

  • Model dependencies → model-dependencies-as-services.mdx

  • Understand layers → understand-layers-for-dependency-injection.mdx

  • Scoped services → scoped-service-layer.mdx

  • Composable modules → organize-layers-into-composable-modules.mdx

  • Compose scoped layers → compose-scoped-layers.mdx

  • Provide config → provide-config-layer.mdx

  • Caching wrapper → add-caching-by-wrapping-a-layer.mdx

Resource Management

  • Bracket pattern → safely-bracket-resource-usage.mdx

  • Scope management → manage-resource-lifecycles-with-scope.mdx

  • Manual scope → manual-scope-management.mdx

  • Scoped resources runtime → create-managed-runtime-for-scoped-resources.mdx

Streaming

  • Process streaming data → process-streaming-data-with-stream.mdx

  • From iterable → stream-from-iterable.mdx

  • From file → stream-from-file.mdx

  • From paginated API → stream-from-paginated-api.mdx

  • Concurrent processing → stream-process-concurrently.mdx

  • Batch processing → stream-process-in-batches.mdx

  • Collect results → stream-collect-results.mdx

  • Run for effects → stream-run-for-effects.mdx

  • Manage resources → stream-manage-resources.mdx

  • Retry on failure → stream-retry-on-failure.mdx

Schema & Validation

  • Define contracts → define-contracts-with-schema.mdx

  • Parse/decode → parse-with-schema-decode.mdx

  • Transform data → transform-data-with-schema.mdx

  • Validate body → validate-request-body.mdx

  • Brand types → brand-model-domain-type.mdx

  • Brand validation → brand-validate-parse.mdx

  • Config schema → define-config-schema.mdx

Data Types

  • Option → data-option.mdx , model-optional-values-with-option.mdx

  • Either → data-either.mdx , accumulate-multiple-errors-with-either.mdx

  • Chunk → data-chunk.mdx , use-chunk-for-high-performance-collections.mdx

  • Array → data-array.mdx

  • HashSet → data-hashset.mdx

  • Duration → data-duration.mdx , representing-time-spans-with-duration.mdx

  • DateTime → data-datetime.mdx , beyond-the-date-type.mdx

  • BigDecimal → data-bigdecimal.mdx

  • Cause → data-cause.mdx

  • Exit → data-exit.mdx

  • Ref → data-ref.mdx , manage-shared-state-with-ref.mdx

  • Redacted → data-redacted.mdx

  • Case → data-case.mdx

  • Class → data-class.mdx

  • Struct → data-struct.mdx

  • Tuple → data-tuple.mdx

Pattern Matching

  • Match API → pattern-match.mdx

  • Effectful match → pattern-matcheffect.mdx

  • Tag matching → pattern-matchtag.mdx

  • Option/Either checks → pattern-option-either-checks.mdx

HTTP & Web

  • Basic HTTP server → build-a-basic-http-server.mdx

  • Launch server → launch-http-server.mdx

  • Handle GET → handle-get-request.mdx

  • HTTP client request → make-http-client-request.mdx

  • Testable HTTP client → create-a-testable-http-client-service.mdx

  • JSON response → send-json-response.mdx

  • Path parameters → extract-path-parameters.mdx

  • Provide dependencies to routes → provide-dependencies-to-routes.mdx

Testing

  • Mocking dependencies → mocking-dependencies-in-tests.mdx

  • Use Default layer → use-default-layer-for-tests.mdx

  • Tests adapt to code → write-tests-that-adapt-to-application-code.mdx

Observability

  • Structured logging → leverage-structured-logging.mdx , observability-structured-logging.mdx

  • Tracing spans → trace-operations-with-spans.mdx , observability-tracing-spans.mdx

  • Custom metrics → add-custom-metrics.mdx , observability-custom-metrics.mdx

  • OpenTelemetry → observability-opentelemetry.mdx

  • Effect.fn instrumentation → observability-effect-fn.mdx

Runtime & Execution

  • runPromise → execute-with-runpromise.mdx

  • runSync → execute-with-runsync.mdx

  • runFork → execute-long-running-apps-with-runfork.mdx

  • Reusable runtime → create-reusable-runtime-from-layers.mdx

Configuration

  • Access config → access-config-in-context.mdx

  • Define schema → define-config-schema.mdx

  • Provide layer → provide-config-layer.mdx

Time & Scheduling

  • Current time → accessing-current-time-with-clock.mdx

  • Duration → representing-time-spans-with-duration.mdx

  • DateTime → beyond-the-date-type.mdx

  • Schedule repetition → control-repetition-with-schedule.mdx

Project Setup

  • New project → setup-new-project.mdx

  • Editor LSP → supercharge-your-editor-with-the-effect-lsp.mdx

  • AI agents MCP → teach-your-ai-agents-effect-with-the-mcp-server.mdx

Advanced Concepts

  • Structural equality → comparing-data-by-value-with-structural-equality.mdx

  • Effect channels → understand-effect-channels.mdx

  • Effects are lazy → effects-are-lazy.mdx

  • Not found vs errors → distinguish-not-found-from-errors.mdx

  • Promise problems → solve-promise-problems-with-effect.mdx

  • Avoid long chains → avoid-long-andthen-chains.mdx

Pattern Categories

By Skill Level

Beginner (Getting Started)

  • Constructor patterns (succeed, fail, sync, async)

  • Basic combinators (map, flatMap, tap)

  • Simple error handling (catch, catchTag)

  • Effect.gen basics

  • runPromise/runSync

Intermediate (Building Applications)

  • Services and layers

  • Schema validation

  • HTTP servers and clients

  • Resource management

  • Concurrency basics (Effect.all, fork)

  • Testing with mocks

Advanced (Production Systems)

  • Complex layer composition

  • Custom runtimes

  • Streaming pipelines

  • Graceful shutdown

  • OpenTelemetry integration

  • Performance optimization (Chunk, Ref)

By Use Case

Domain Modeling

  • Schema definitions

  • Brand types

  • Tagged errors

  • Option/Either for optional/fallible values

API Development

  • HTTP server setup

  • Route handling

  • Request validation

  • Error handling

  • Response formatting

Data Processing

  • Stream processing

  • Batch operations

  • Parallel processing

  • Resource-safe pipelines

Application Architecture

  • Service layer design

  • Dependency injection

  • Module composition

  • Configuration management

Testing

  • Mock layers

  • Test utilities

  • Testable services

Observability

  • Structured logging

  • Distributed tracing

  • Custom metrics

  • Performance monitoring

Search Patterns

By Keyword

Use Grep to search patterns by keyword:

Find patterns about error handling

grep -l "error" patterns/*.mdx

Find patterns about concurrency

grep -l "concurrent|parallel|fiber" patterns/*.mdx

Find patterns about HTTP

grep -l "http|server|client" patterns/*.mdx

Find patterns about testing

grep -l "test|mock" patterns/*.mdx

By Frontmatter Tags

All patterns include metadata:

  • title : Human-readable name

  • id : Unique identifier (filename without extension)

  • skillLevel : beginner, intermediate, advanced

  • useCase : domain-modeling, error-handling, concurrency, etc.

  • summary : Brief description

  • tags : Keywords for searching

  • related : Links to related patterns

Common Searches

"How do I create an Effect from..."

  • → Search constructor patterns: grep -l "constructor" patterns/*.mdx

  • → Check constructor-*.mdx files

"How do I handle errors when..."

  • → Search error handling: grep -l "error|catch|retry" patterns/*.mdx

  • → Check handle-*.mdx and pattern-catchtag.mdx

"How do I run multiple things concurrently?"

  • → Search concurrency: grep -l "concurrent|parallel|all|fork" patterns/*.mdx

  • → Check run-effects-in-parallel-with-all.mdx

"How do I work with services?"

  • → Search services: grep -l "service|layer|dependency" patterns/*.mdx

  • → Check model-dependencies-as-services.mdx , understand-layers-for-dependency-injection.mdx

"How do I validate data?"

  • → Search schema: grep -l "schema|validate|parse" patterns/*.mdx

  • → Check define-contracts-with-schema.mdx , parse-with-schema-decode.mdx

Integration with Other Skills

Foundations → Patterns Hub

When you need concrete examples for foundation concepts, check patterns:

  • effect-foundations teaches concepts → patterns show implementation

Architect → Patterns Hub

When designing systems, reference architectural patterns:

  • Layer composition → organize-layers-into-composable-modules.mdx

  • Service design → model-dependencies-as-services.mdx

  • Scoped resources → scoped-service-layer.mdx

Engineer → Patterns Hub

When implementing features, find relevant patterns:

  • HTTP endpoints → handle-get-request.mdx , validate-request-body.mdx

  • Error handling → retry-based-on-specific-errors.mdx

  • Concurrency → run-effects-in-parallel-with-all.mdx

Tester → Patterns Hub

When writing tests, reference testing patterns:

  • Mock services → mocking-dependencies-in-tests.mdx

  • Test layers → use-default-layer-for-tests.mdx

  • Testable design → write-tests-that-adapt-to-application-code.mdx

Usage Workflow

  • Identify Need: "I need to [do something] with Effect"

  • Check Decision Tree: Find relevant section above

  • Read Pattern: Use Read tool on the pattern file

  • Adapt to Context: Apply pattern to your specific use case

  • Check Related: Follow related links in pattern frontmatter

  • Consult Agent: If unclear, use @effect-engineer or @effect-architect

Anti-Pattern Detection

If you find yourself:

  • Using imperative loops → Check process-collection-in-parallel-with-foreach.mdx

  • Mixing promises and Effects → Check constructor-try-trypromise.mdx , solve-promise-problems-with-effect.mdx

  • Long andThen chains → Check avoid-long-andthen-chains.mdx , use-gen-for-business-logic.mdx

  • Leaking requirements → Check model-dependencies-as-services.mdx

  • Manual resource cleanup → Check safely-bracket-resource-usage.mdx

Pattern File Structure

Each pattern file follows this structure:


title: Human-readable title id: kebab-case-id skillLevel: beginner | intermediate | advanced useCase: primary-use-case summary: Brief description tags:

  • keyword1
  • keyword2 related:
  • related-pattern-id-1
  • related-pattern-id-2 author: Author name

Title

Guideline

What to do

Rationale

Why do it this way

Good Example

✅ Recommended approach

Bad Example

❌ What to avoid

Related Patterns

Links to related patterns

Maintenance

Patterns are synced from EffectPatterns repository.

To update patterns:

cd /tmp git clone --depth=1 https://github.com/PaulJPhilp/EffectPatterns.git cp -r EffectPatterns/content/published/* /Users/pooks/Dev/crate/.claude/skills/effect-patterns-hub/patterns/ cp -r EffectPatterns/content/published/* /Users/pooks/Dev/crate/docs/effect-patterns/

Summary

  • 130+ patterns covering all Effect-TS concepts

  • Decision tree for quick pattern lookup

  • Integration with existing skills and agents

  • Searchable by keyword, use case, skill level

  • Examples showing good and bad practices

  • Related patterns for deeper exploration

Use this skill as your go-to reference for "How do I... with Effect?"

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

effect-index

No summary provided by upstream source.

Repository SourceNeeds Review
-299
mepuka
General

effect-concurrency-fibers

No summary provided by upstream source.

Repository SourceNeeds Review
General

effect-errors-retries

No summary provided by upstream source.

Repository SourceNeeds Review