effect-domain-predicates

Community

Generate domain predicates and orders from types

Authormpsuesser
Version1.0.0
Installs0

System Documentation

What problem does it solve?

It removes repetitive, error-prone work of hand-writing equality, equivalence-based deduplication, filtering predicates, and multi-criteria sorting for domain models by deriving them from Effect v4 typeclass implementations and schema structure.

Core Features & Use Cases

  • Derives equivalence from Schema using structural equality via Schema.toEquivalence, then uses it with combinators like deduplication.
  • Builds field-based equivalences with Equivalence.mapInput and combines them with Equivalence.combine for multi-criteria identity.
  • Creates sortable domain orders with Order.mapInput and composes multi-criteria ordering using Order.combine (with clear precedence rules).
  • Re-exports complete predicate sets for domain types by using typeclass-driven patterns such as schedulable and durable field predicates.
  • Use Case: For an Appointment domain, generate predicates like isScheduledThisWeek and orders like OrderByStatusThenTime, then use them for filtering, sorting, and deduplicating lists in pipelines.

Quick Start

Ask the AI to generate the full set of Effect v4 predicates, equivalences, and Order instances for your domain type (including multi-field combinations) based on your schema/typeclass definitions.

Dependency Matrix

Required Modules

None required

Components

Standard package

💻 Claude Code Installation

Recommended: Let Claude install automatically. Simply copy and paste the text below to Claude Code.

Please help me install this Skill:
Name: effect-domain-predicates
Download link: https://github.com/mpsuesser/pi-effect-harness/archive/main.zip#effect-domain-predicates

Please download this .zip file, extract it, and install it in the .claude/skills/ directory.
View Source Repository

Agent Skills Search Helper

Install a tiny helper to your Agent, search and equip skill from 471,000+ vetted skills library on demand.