npx skills add smithery/mepuka --skill effect-patterns-hub
mepuka/effect-ontology · Archived
effect-patterns-hub
Complete catalog of 130+ Effect-TS patterns from EffectPatterns repository. Use when looking for specific implementation patterns, best practices, or real-world examples. Complements other skills with concrete, curated patterns.
Installation
npx skills add mepuka/effect-ontology --skill effect-patterns-hub
Stronger alternatives
This repository is archived — consider an actively maintained alternative.
Skill index and decision guide. Use to pick the right Effect Skill quickly and follow a minimal…
331 installsError modeling and recovery with TaggedError, catchTag(s), mapError, and retry schedules. Use w…
43 installsConcurrency with Effect.all, forEach concurrency, Fiber lifecycle, race and timeouts. Use for p…
41 installsQueue and PubSub patterns, background fibers, and graceful shutdown. Use for decoupling produce…
38 installsSimilar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
React SPA auth patterns with @clerk/react for Vite/CRA - ClerkProvider setup, useAuth/useUser/u…
15.8K installsReact Router v7/v8 patterns with Clerk — rootAuthLoader, getAuth in loaders, clerkMiddleware, p…
12.7K installsTanStack React Start auth patterns with @clerk/tanstack-react-start - createServerFn, beforeLoa…
12.5K installsChrome Extension auth with @clerk/chrome-extension -- popup/sidepanel setup, syncHost for OAuth…
11.7K installsAlso in this package
Other skills from mepuka/effect-ontology · top by installs.
npx skills add mepuka/effect-ontology
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Also listed on
Alternate registries and mirrors of this skill.
Repository health
main
Skill metadata
Parsed from SKILL.md frontmatter.
Read, Grep, Glob, Edit, WritePackage contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md19,604 B -
docs
SUMMARY.md255 B
History
- First seen on skills.sh
- First recorded snapshot · 50 installs
SKILL.md
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](patterns/constructor-succeed-some-right.mdx) - From sync code → [
constructor-sync-async.mdx](patterns/constructor-sync-async.mdx) - From promise → [
constructor-try-trypromise.mdx](patterns/constructor-try-trypromise.mdx) - From nullable → [
constructor-from-nullable-option-either.mdx](patterns/constructor-from-nullable-option-either.mdx) - Pre-resolved → [
create-pre-resolved-effect.mdx](patterns/create-pre-resolved-effect.mdx)
Transform & Compose
- Map values → [
combinator-map.mdx](patterns/combinator-map.mdx) - Chain effects → [
combinator-flatmap.mdx](patterns/combinator-flatmap.mdx) - Sequence operations → [
combinator-sequencing.mdx](patterns/combinator-sequencing.mdx) - Combine values → [
combinator-zip.mdx](patterns/combinator-zip.mdx) - Filter → [
combinator-filter.mdx](patterns/combinator-filter.mdx) - Conditional logic → [
combinator-conditional.mdx](patterns/combinator-conditional.mdx) - Process collections → [
combinator-foreach-all.mdx](patterns/combinator-foreach-all.mdx)
Control Flow
- Sequential logic → [
write-sequential-code-with-gen.mdx](patterns/write-sequential-code-with-gen.mdx) - Business logic → [
use-gen-for-business-logic.mdx](patterns/use-gen-for-business-logic.mdx) - Pipe composition → [
use-pipe-for-composition.mdx](patterns/use-pipe-for-composition.mdx) - Branching workflows → [
conditionally-branching-workflows.mdx](patterns/conditionally-branching-workflows.mdx) - Combinators → [
control-flow-with-combinators.mdx](patterns/control-flow-with-combinators.mdx) - Repetition → [
control-repetition-with-schedule.mdx](patterns/control-repetition-with-schedule.mdx)
Error Handling
- Define errors → [
define-tagged-errors.mdx](patterns/define-tagged-errors.mdx) - Catch specific errors → [
pattern-catchtag.mdx](patterns/pattern-catchtag.mdx) - Handle all errors → [
handle-errors-with-catch.mdx](patterns/handle-errors-with-catch.mdx) - Retry operations → [
retry-based-on-specific-errors.mdx](patterns/retry-based-on-specific-errors.mdx) - Flaky operations → [
handle-flaky-operations-with-retry-timeout.mdx](patterns/handle-flaky-operations-with-retry-timeout.mdx) - Map errors → [
mapping-errors-to-fit-your-domain.mdx](patterns/mapping-errors-to-fit-your-domain.mdx) - Handle unexpected → [
handle-unexpected-errors-with-cause.mdx](patterns/handle-unexpected-errors-with-cause.mdx) - API errors → [
handle-api-errors.mdx](patterns/handle-api-errors.mdx)
Concurrency
- Parallel execution → [
run-effects-in-parallel-with-all.mdx](patterns/run-effects-in-parallel-with-all.mdx) - Background tasks → [
run-background-tasks-with-fork.mdx](patterns/run-background-tasks-with-fork.mdx) - Process collections → [
process-collection-in-parallel-with-foreach.mdx](patterns/process-collection-in-parallel-with-foreach.mdx) - Race effects → [
race-concurrent-effects.mdx](patterns/race-concurrent-effects.mdx) - Fibers explained → [
understand-fibers-as-lightweight-threads.mdx](patterns/understand-fibers-as-lightweight-threads.mdx) - Decouple with queues → [
decouple-fibers-with-queue-pubsub.mdx](patterns/decouple-fibers-with-queue-pubsub.mdx) - Polling → [
poll-for-status-until-task-completes.mdx](patterns/poll-for-status-until-task-completes.mdx) - Graceful shutdown → [
implement-graceful-shutdown.mdx](patterns/implement-graceful-shutdown.mdx)
Services & Dependency Injection
- Model dependencies → [
model-dependencies-as-services.mdx](patterns/model-dependencies-as-services.mdx) - Understand layers → [
understand-layers-for-dependency-injection.mdx](patterns/understand-layers-for-dependency-injection.mdx) - Scoped services → [
scoped-service-layer.mdx](patterns/scoped-service-layer.mdx) - Composable modules → [
organize-layers-into-composable-modules.mdx](patterns/organize-layers-into-composable-modules.mdx) - Compose scoped layers → [
compose-scoped-layers.mdx](patterns/compose-scoped-layers.mdx) - Provide config → [
provide-config-layer.mdx](patterns/provide-config-layer.mdx) - Caching wrapper → [
add-caching-by-wrapping-a-layer.mdx](patterns/add-caching-by-wrapping-a-layer.mdx)
Resource Management
- Bracket pattern → [
safely-bracket-resource-usage.mdx](patterns/safely-bracket-resource-usage.mdx) - Scope management → [
manage-resource-lifecycles-with-scope.mdx](patterns/manage-resource-lifecycles-with-scope.mdx) - Manual scope → [
manual-scope-management.mdx](patterns/manual-scope-management.mdx) - Scoped resources runtime → [
create-managed-runtime-for-scoped-resources.mdx](patterns/create-managed-runtime-for-scoped-resources.mdx)
Streaming
- Process streaming data → [
process-streaming-data-with-stream.mdx](patterns/process-streaming-data-with-stream.mdx) - From iterable → [
stream-from-iterable.mdx](patterns/stream-from-iterable.mdx) - From file → [
stream-from-file.mdx](patterns/stream-from-file.mdx) - From paginated API → [
stream-from-paginated-api.mdx](patterns/stream-from-paginated-api.mdx) - Concurrent processing → [
stream-process-concurrently.mdx](patterns/stream-process-concurrently.mdx) - Batch processing → [
stream-process-in-batches.mdx](patterns/stream-process-in-batches.mdx) - Collect results → [
stream-collect-results.mdx](patterns/stream-collect-results.mdx) - Run for effects → [
stream-run-for-effects.mdx](patterns/stream-run-for-effects.mdx) - Manage resources → [
stream-manage-resources.mdx](patterns/stream-manage-resources.mdx) - Retry on failure → [
stream-retry-on-failure.mdx](patterns/stream-retry-on-failure.mdx)
Schema & Validation
- Define contracts → [
define-contracts-with-schema.mdx](patterns/define-contracts-with-schema.mdx) - Parse/decode → [
parse-with-schema-decode.mdx](patterns/parse-with-schema-decode.mdx) - Transform data → [
transform-data-with-schema.mdx](patterns/transform-data-with-schema.mdx) - Validate body → [
validate-request-body.mdx](patterns/validate-request-body.mdx) - Brand types → [
brand-model-domain-type.mdx](patterns/brand-model-domain-type.mdx) - Brand validation → [
brand-validate-parse.mdx](patterns/brand-validate-parse.mdx) - Config schema → [
define-config-schema.mdx](patterns/define-config-schema.mdx)
Data Types
- Option → [
data-option.mdx](patterns/data-option.mdx), [model-optional-values-with-option.mdx](patterns/model-optional-values-with-option.mdx) - Either → [
data-either.mdx](patterns/data-either.mdx), [accumulate-multiple-errors-with-either.mdx](patterns/accumulate-multiple-errors-with-either.mdx) - Chunk → [
data-chunk.mdx](patterns/data-chunk.mdx), [use-chunk-for-high-performance-collections.mdx](patterns/use-chunk-for-high-performance-collections.mdx) - Array → [
data-array.mdx](patterns/data-array.mdx) - HashSet → [
data-hashset.mdx](patterns/data-hashset.mdx) - Duration → [
data-duration.mdx](patterns/data-duration.mdx), [representing-time-spans-with-duration.mdx](patterns/representing-time-spans-with-duration.mdx) - DateTime → [
data-datetime.mdx](patterns/data-datetime.mdx), [beyond-the-date-type.mdx](patterns/beyond-the-date-type.mdx) - BigDecimal → [
data-bigdecimal.mdx](patterns/data-bigdecimal.mdx) - Cause → [
data-cause.mdx](patterns/data-cause.mdx) - Exit → [
data-exit.mdx](patterns/data-exit.mdx) - Ref → [
data-ref.mdx](patterns/data-ref.mdx), [manage-shared-state-with-ref.mdx](patterns/manage-shared-state-with-ref.mdx) - Redacted → [
data-redacted.mdx](patterns/data-redacted.mdx) - Case → [
data-case.mdx](patterns/data-case.mdx) - Class → [
data-class.mdx](patterns/data-class.mdx) - Struct → [
data-struct.mdx](patterns/data-struct.mdx) - Tuple → [
data-tuple.mdx](patterns/data-tuple.mdx)
Pattern Matching
- Match API → [
pattern-match.mdx](patterns/pattern-match.mdx) - Effectful match → [
pattern-matcheffect.mdx](patterns/pattern-matcheffect.mdx) - Tag matching → [
pattern-matchtag.mdx](patterns/pattern-matchtag.mdx) - Option/Either checks → [
pattern-option-either-checks.mdx](patterns/pattern-option-either-checks.mdx)
HTTP & Web
- Basic HTTP server → [
build-a-basic-http-server.mdx](patterns/build-a-basic-http-server.mdx) - Launch server → [
launch-http-server.mdx](patterns/launch-http-server.mdx) - Handle GET → [
handle-get-request.mdx](patterns/handle-get-request.mdx) - HTTP client request → [
make-http-client-request.mdx](patterns/make-http-client-request.mdx) - Testable HTTP client → [
create-a-testable-http-client-service.mdx](patterns/create-a-testable-http-client-service.mdx) - JSON response → [
send-json-response.mdx](patterns/send-json-response.mdx) - Path parameters → [
extract-path-parameters.mdx](patterns/extract-path-parameters.mdx) - Provide dependencies to routes → [
provide-dependencies-to-routes.mdx](patterns/provide-dependencies-to-routes.mdx)
Testing
- Mocking dependencies → [
mocking-dependencies-in-tests.mdx](patterns/mocking-dependencies-in-tests.mdx) - Use Default layer → [
use-default-layer-for-tests.mdx](patterns/use-default-layer-for-tests.mdx) - Tests adapt to code → [
write-tests-that-adapt-to-application-code.mdx](patterns/write-tests-that-adapt-to-application-code.mdx)
Observability
- Structured logging → [
leverage-structured-logging.mdx](patterns/leverage-structured-logging.mdx), [observability-structured-logging.mdx](patterns/observability-structured-logging.mdx) - Tracing spans → [
trace-operations-with-spans.mdx](patterns/trace-operations-with-spans.mdx), [observability-tracing-spans.mdx](patterns/observability-tracing-spans.mdx) - Custom metrics → [
add-custom-metrics.mdx](patterns/add-custom-metrics.mdx), [observability-custom-metrics.mdx](patterns/observability-custom-metrics.mdx) - OpenTelemetry → [
observability-opentelemetry.mdx](patterns/observability-opentelemetry.mdx) - Effect.fn instrumentation → [
observability-effect-fn.mdx](patterns/observability-effect-fn.mdx)
Runtime & Execution
- runPromise → [
execute-with-runpromise.mdx](patterns/execute-with-runpromise.mdx) - runSync → [
execute-with-runsync.mdx](patterns/execute-with-runsync.mdx) - runFork → [
execute-long-running-apps-with-runfork.mdx](patterns/execute-long-running-apps-with-runfork.mdx) - Reusable runtime → [
create-reusable-runtime-from-layers.mdx](patterns/create-reusable-runtime-from-layers.mdx)
Configuration
- Access config → [
access-config-in-context.mdx](patterns/access-config-in-context.mdx) - Define schema → [
define-config-schema.mdx](patterns/define-config-schema.mdx) - Provide layer → [
provide-config-layer.mdx](patterns/provide-config-layer.mdx)
Time & Scheduling
- Current time → [
accessing-current-time-with-clock.mdx](patterns/accessing-current-time-with-clock.mdx) - Duration → [
representing-time-spans-with-duration.mdx](patterns/representing-time-spans-with-duration.mdx) - DateTime → [
beyond-the-date-type.mdx](patterns/beyond-the-date-type.mdx) - Schedule repetition → [
control-repetition-with-schedule.mdx](patterns/control-repetition-with-schedule.mdx)
Project Setup
- New project → [
setup-new-project.mdx](patterns/setup-new-project.mdx) - Editor LSP → [
supercharge-your-editor-with-the-effect-lsp.mdx](patterns/supercharge-your-editor-with-the-effect-lsp.mdx) - AI agents MCP → [
teach-your-ai-agents-effect-with-the-mcp-server.mdx](patterns/teach-your-ai-agents-effect-with-the-mcp-server.mdx)
Advanced Concepts
- Structural equality → [
comparing-data-by-value-with-structural-equality.mdx](patterns/comparing-data-by-value-with-structural-equality.mdx) - Effect channels → [
understand-effect-channels.mdx](patterns/understand-effect-channels.mdx) - Effects are lazy → [
effects-are-lazy.mdx](patterns/effects-are-lazy.mdx) - Not found vs errors → [
distinguish-not-found-from-errors.mdx](patterns/distinguish-not-found-from-errors.mdx) - Promise problems → [
solve-promise-problems-with-effect.mdx](patterns/solve-promise-problems-with-effect.mdx) - Avoid long chains → [
avoid-long-andthen-chains.mdx](patterns/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 nameid: Unique identifier (filename without extension)skillLevel: beginner, intermediate, advanceduseCase: domain-modeling, error-handling, concurrency, etc.summary: Brief descriptiontags: Keywords for searchingrelated: Links to related patterns
Common Searches
"How do I create an Effect from..."
- → Search constructor patterns:
grep -l "constructor" patterns/*.mdx - → Check
constructor-*.mdxfiles
"How do I handle errors when..."
- → Search error handling:
grep -l "error\|catch\|retry" patterns/*.mdx - → Check
handle-*.mdxandpattern-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-foundationsteaches 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
Readtool on the pattern file - Adapt to Context: Apply pattern to your specific use case
- Check Related: Follow
relatedlinks in pattern frontmatter - Consult Agent: If unclear, use
@effect-engineeror@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?"