Claude-skill-registry effect-research

Effect-TS specialized research via deepwiki and submodules. Query Effect-TS/effect, tim-smart/effect-atom for verified patterns. Enforces grounded verification before implementation.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/effect-research" ~/.claude/skills/majiayu000-claude-skill-registry-effect-research && rm -rf "$T"
manifest: skills/data/effect-research/SKILL.md
source content

Effect-TS Research Protocol

Purpose: Specialized research workflow for Effect-TS, effect-atom, and related ecosystem. Ensures verified patterns before implementation.

Quick Start: Research Workflow

┌─────────────────────────────────────────────────────────────────┐
│  EFFECT RESEARCH WORKFLOW                                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  1. ADMIT UNCERTAINTY                                            │
│     "My Effect knowledge is from May 2025..."                    │
│                                                                  │
│  2. QUERY DEEPWIKI (Verification Style)                          │
│     "Is [PATTERN] still correct for [USE CASE]?"                 │
│     Repos: Effect-TS/effect, tim-smart/effect-atom               │
│                                                                  │
│  3. CROSS-REFERENCE SUBMODULES                                   │
│     ../../submodules/website/  → Human docs (priority)           │
│     ../../submodules/effect/   → Test patterns                   │
│     ../../submodules/effect-atom/ → Atom patterns                │
│                                                                  │
│  4. CHECK CODEBASE PRECEDENT                                     │
│     .edin/EFFECT_PATTERNS.md                                     │
│     src/lib/*/  → Working implementations                        │
│                                                                  │
│  5. IMPLEMENT WITH CONFIDENCE                                    │
│     [VERIFIED] pattern from step 2-4                             │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

deepwiki Queries for Effect

Available Repos

Repodeepwiki NameContent
Effect Core
Effect-TS/effect
Effect, Schema, Stream, Layer, etc.
effect-atom
tim-smart/effect-atom
Atom, Registry, React integration

Query Patterns

Service Definition:

mcp__deepwiki__ask_question
  repoName: "Effect-TS/effect"
  question: "What is the current recommended pattern for defining Effect
             services with Effect.Service<>()? I believe it uses
             double-parenthesis syntax. Is this still accurate?"

Schema Patterns:

mcp__deepwiki__ask_question
  repoName: "Effect-TS/effect"
  question: "For discriminated unions, should I use Schema.TaggedStruct
             or Schema.TaggedClass? When would I choose one over the other?"

Atom Integration:

mcp__deepwiki__ask_question
  repoName: "tim-smart/effect-atom"
  question: "What is the correct way to use Atom.runtime with Effect
             services? I want to create operation atoms that can yield
             services from a Layer."

Stream Patterns:

mcp__deepwiki__ask_question
  repoName: "Effect-TS/effect"
  question: "Is Stream.fromQueue still the recommended way to create
             streams from async sources? What about backpressure handling?"

Submodule Deep Dives

Website Submodule (Human-Authored Docs)

Location:

../../submodules/website/content/src/content/docs/docs/

Key Directories:

docs/
├── introduction/        # Getting started
├── guides/              # Best practices
├── concurrency/         # Fibers, Queue, Semaphore
├── state-management/    # Ref, SynchronizedRef
├── stream/              # Stream creation, transformation
├── schema/              # Schema definition, validation
└── additional-resources/ # Migration, myths

Common Queries:

# Find service documentation
find ../../submodules/website -name "*.mdx" | xargs grep -l "Effect.Service"

# Find schema documentation
cat ../../submodules/website/content/src/content/docs/docs/schema/*.mdx

# Find state management docs
ls ../../submodules/website/content/src/content/docs/docs/state-management/

Effect Submodule (Test Patterns)

Location:

../../submodules/effect/packages/

Key Test Directories:

packages/
├── effect/test/           # Core Effect tests
├── sql-sqlite-bun/test/   # SQLite integration (modern patterns)
├── sql-drizzle/test/      # Drizzle ORM patterns
├── platform/test/         # Platform services
└── experimental/test/     # EventLog, DevTools

Common Queries:

# Find service test patterns
grep -r "Effect.Service" ../../submodules/effect/packages/*/test/

# Find SQL transaction patterns
grep -r "transaction" ../../submodules/effect/packages/sql-sqlite-bun/test/

# Find Stream test patterns
find ../../submodules/effect/packages/effect/test -name "*Stream*"

effect-atom Submodule (Atom Patterns)

Location:

../../submodules/effect-atom/packages/atom/

Key Files:

packages/atom/
├── src/Atom.ts           # Atom implementation
├── src/Registry.ts       # Registry implementation
├── test/Atom.test.ts     # Atom test patterns
├── test/Result.test.ts   # Result handling
└── test/AtomRpc.test.ts  # RPC patterns

Common Queries:

# Atom test patterns
cat ../../submodules/effect-atom/packages/atom/test/Atom.test.ts

# Registry patterns
grep -r "Registry.make" ../../submodules/effect-atom/packages/atom/test/

# React integration
cat ../../submodules/effect-atom/packages/atom-react/src/index.ts

Research Templates by Topic

Topic: Service Definition

## Research: Effect Service Definition

**Question**: What's the current pattern for Effect.Service<>()?

**Step 1: deepwiki Verification**

mcp__deepwiki__ask_question repoName: "Effect-TS/effect" question: "I believe Effect.Service<MyService>()('id', { effect, dependencies }) is the current syntax. Is this accurate? Has anything changed regarding service definition in recent versions?"


**Step 2: Submodule Cross-Reference**
```bash
# Check website docs
grep -r "Effect.Service" ../../submodules/website/content/src/content/docs/

# Check test patterns
grep -r "Effect.Service" ../../submodules/effect/packages/sql-sqlite-bun/test/

Step 3: Codebase Precedent

grep -r "Effect.Service" src/lib/*/
cat .edin/EFFECT_SERVICE_PATTERNS.md

### Topic: Schema Definition

```markdown
## Research: Schema Patterns

**Question**: TaggedStruct vs TaggedClass - when to use which?

**Step 1: deepwiki Verification**

mcp__deepwiki__ask_question repoName: "Effect-TS/effect" question: "When should I use Schema.TaggedStruct vs Schema.TaggedClass? My understanding: TaggedStruct for pure data, TaggedClass when I need methods. Is this correct?"


**Step 2: Submodule Cross-Reference**
```bash
cat ../../submodules/website/content/src/content/docs/docs/schema/*.mdx
grep -r "TaggedStruct\|TaggedClass" ../../submodules/effect/packages/effect/src/Schema.ts

### Topic: Atom + React Integration

```markdown
## Research: Atom.runtime Pattern

**Question**: How do I create operation atoms with Atom.runtime?

**Step 1: deepwiki Verification**

mcp__deepwiki__ask_question repoName: "tim-smart/effect-atom" question: "What's the correct way to use Atom.runtime.fn() to create operation atoms that can yield Effect services? I want to compose a Layer and create callable atoms."


**Step 2: Submodule Cross-Reference**
```bash
cat ../../submodules/effect-atom/packages/atom/test/Atom.test.ts
grep -r "runtime" ../../submodules/effect-atom/packages/atom/src/

Step 3: Codebase Precedent

grep -r "Atom.runtime\|runtimeAtom" src/lib/*/atoms/
cat src/lib/slider/atoms/index.ts

### Topic: Stream Patterns

```markdown
## Research: Effect Streams

**Question**: Creating streams from async sources with backpressure

**Step 1: deepwiki Verification**

mcp__deepwiki__ask_question repoName: "Effect-TS/effect" question: "What's the recommended way to create Effect Streams from async sources like WebSockets? I'm considering Stream.async and Stream.fromQueue. Which handles backpressure better?"


**Step 2: Submodule Cross-Reference**
```bash
cat ../../submodules/website/content/src/content/docs/docs/stream/*.mdx
find ../../submodules/effect/packages/effect/test -name "*Stream*" | xargs head -50

---

## Verification Checklist

Before implementing any Effect pattern:

### Service Patterns
- [ ] Verified Effect.Service<>() syntax via deepwiki
- [ ] Checked submodule test for working example
- [ ] Confirmed dependencies array behavior
- [ ] Verified `.Default` layer generation

### Schema Patterns
- [ ] Verified Schema.* function exists in current API
- [ ] Checked for transform/encode/decode behavior
- [ ] Confirmed branded type syntax
- [ ] Verified with Schema.is runtime check

### Atom Patterns
- [ ] Verified Atom.runtime API via deepwiki
- [ ] Checked effect-atom tests for pattern
- [ ] Confirmed Registry.make() usage
- [ ] Verified React hook compatibility

### Layer Patterns
- [ ] Verified Layer composition functions
- [ ] Checked Layer.mergeAll, Layer.provide order
- [ ] Confirmed dependency resolution
- [ ] Tested with Effect.runPromise

---

## Common Pitfalls

### ❌ Assuming Effect.Ref for React State

```typescript
// WRONG - Don't use Ref when React consumes state
const stateRef = yield* Ref.make(initial)

Correct: Use Atom.make() when React is the consumer

❌ Single-parenthesis Effect.Service

// WRONG
class MyService extends Effect.Service<MyService>("id", {}) {}

// CORRECT (double parenthesis)
class MyService extends Effect.Service<MyService>()("id", {}) {}

❌ Missing
as const
on service returns

// WRONG
return { method }

// CORRECT
return { method } as const

❌ Trusting cached mental models

// WRONG
"I know how Effect.Service works..."

// CORRECT
[UNCERTAIN] Let me verify the current Effect.Service API...

Integration with Other Skills

After ResearchUse Skill
Service pattern verified
/effect-service-authoring
Schema pattern verified
/effect-schema-mastery
Atom pattern verified
/effect-atom-integration
Stream pattern verified
/effect-stream-patterns
Match pattern verified
/effect-match-patterns

Quick Commands

# Research service patterns
mcp__deepwiki__ask_question repoName="Effect-TS/effect" question="Effect.Service current API"

# Research atom patterns
mcp__deepwiki__ask_question repoName="tim-smart/effect-atom" question="Atom.runtime usage"

# Cross-reference website docs
find ../../submodules/website -name "*.mdx" | xargs grep -l "TOPIC"

# Cross-reference test patterns
find ../../submodules/effect/packages -name "*.test.ts" | xargs grep -l "TOPIC"

# Check codebase precedent
grep -r "PATTERN" src/lib/*/
cat .edin/EFFECT_PATTERNS.md