🎯

effect-resources-scope

🎯Skill

from mepuka/effect-ontology

VibeIndex|
What it does

effect-resources-scope skill from mepuka/effect-ontology

effect-resources-scope

Installation

DockerRun with Docker
docker run -d --name jaeger \
πŸ“– Extracted from docs: mepuka/effect-ontology
6
-
Last UpdatedDec 25, 2025

Skill Details

SKILL.md

Resource safety with acquireRelease, Effect.scoped, and finalizers. Use when opening files, sockets, servers, or external handles.

Overview

# Resource Management (Scope)

Acquire/Release

```ts

const withConn = Effect.acquireRelease(

Effect.sync(() => open()),

(conn) => Effect.sync(() => close(conn))

).pipe(Effect.flatMap(use))

```

Scoped

```ts

yield* Effect.scoped(

Effect.gen(function* () {

const h = yield* Effect.acquireRelease(acquire(), release)

return yield* use(h)

})

)

```

Finalizers

```ts

yield* Effect.addFinalizer(() => cleanup)

```

Ensuring

```ts

operation.pipe(Effect.ensuring(cleanup))

```

Real-world snippet: wrap Promise APIs with typed errors and spans

```ts

const wrapS3Promise = (promise: Promise | Effect.Effect>) =>

Effect.gen(function* () {

if (promise instanceof Promise) {

return yield* Effect.tryPromise({ try: () => promise, catch: (cause) => new S3Error({ cause }) })

}

return yield* promise.pipe(

Effect.flatMap((cb) =>

Effect.tryPromise({ try: () => cb, catch: (cause) => new S3Error({ cause }) })

)

)

}).pipe(Effect.catchTag("UnknownException", (cause) => new S3Error({ cause })))

// Usage with spans

const put = wrapS3Promise(client.send(new S3.PutObjectCommand(args))).pipe(

Effect.withSpan("S3.putObject", { attributes: { key: args.Key } })

)

```

Local Source Reference

CRITICAL: Search local Effect source before implementing

The full Effect source code is available at docs/effect-source/. Always search the actual implementation before writing Effect code.

Key Source Files

  • Effect: docs/effect-source/effect/src/Effect.ts
  • Scope: docs/effect-source/effect/src/Scope.ts

Example Searches

```bash

# Find acquireRelease patterns

grep -F "acquireRelease" docs/effect-source/effect/src/Effect.ts

# Study scoped operations

grep -F "scoped" docs/effect-source/effect/src/Effect.ts

grep -F "addFinalizer" docs/effect-source/effect/src/Effect.ts

# Find ensuring patterns

grep -F "ensuring" docs/effect-source/effect/src/Effect.ts

# Look at Scope implementation

grep -F "export" docs/effect-source/effect/src/Scope.ts | grep -F "function"

```

Workflow

  1. Identify the resource management API you need (e.g., acquireRelease)
  2. Search docs/effect-source/effect/src/Effect.ts for the implementation
  3. Study the types and resource patterns
  4. Look at test files for usage examples
  5. Write your code based on real implementations

Real source code > documentation > assumptions

References

  • Agent Skills overview: https://www.anthropic.com/news/skills
  • Skills guide: https://docs.claude.com/en/docs/claude-code/skills