Skip to content
cccskills
FreePublished on GitHub

effect-v4

Write, review, and upgrade Effect v4 code for Composio CLI and its related packages. It guides service definitions, typed errors, command APIs, and version alignment, checking unfamiliar APIs against source files and installed type definitions.

OriginalShow the original description

Write, review, or upgrade Effect v4 code in the Composio CLI, cli-keyring, and json-schema-to-effect-schema packages, all pinned exactly to effect@4.0.3 — Context.Service and explicit layers, Schema.TaggedError and typed recovery, the effect/cli command surface, and the vendored effect source oracle. Use when writing or reviewing Effect v4 code, answering a v4 API question, working in effect/cli, defining a Context.Service service, modeling an error with Schema.TaggedError, bumping the Effect pins, or verifying an unfamiliar API against ts/vendor/effect. Do not use for CLI command UX/wiring design (use cli-command) or CLI E2E tests (use cli-e2e).

See how to install

Good for

  • Implementing and reviewing Effect v4 code
  • Defining services and typed error recovery
  • Checking effect/cli APIs
  • Updating aligned Effect dependency versions

Files included (6)

  • SKILL.md4.2 KB
  • references/cli-surface.md7.2 KB
  • references/core-patterns.md19.5 KB
  • references/upgrade-workflow.md3.5 KB
  • scripts/check-examples.mjs7.2 KB
  • versions.json161 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

Effect v4

The CLI, @composio/cli-keyring, and @composio/json-schema-to-effect-schema run on Effect v4. Every claim below is grounded in the migrated source, not memory of v3.

Exact version matrix

effect, @effect/platform-bun, and @effect/vitest are pinned to the same exact 4.0.3 — never ^, @next, or a mismatched version across packages. @effect/cli and @effect/platform no longer exist as dependencies; their surfaces are consolidated into effect and effect/*. See versions.json for the full matrix (also typescript, vitest).

Read next

  • references/core-patterns.md — services, layers, typed errors, Schema, choosing between Effect.gen and Effect.fn, Option combinators in place of isSome ternaries, driving time in tests with TestClock (fork, adjust until the fiber settles, join) instead of it.live, and the v3→v4 rename table (labeled historical, for recognizing stale patterns).
  • references/cli-surface.md — effect/cli: Command, Flag, Argument, GlobalFlag, CliConfig, the custom CliOutput.Formatter, and the runner's double-print rule.
  • references/upgrade-workflow.md — procedure for bumping to a newer release.

Code excerpts in those references are short quotes from real, currently-compiling repo files (path cited at each excerpt) — not standalone examples. The compile-checked source of truth is always the cited file itself; when it and a reference disagree, trust the file and fix the reference.

Non-negotiables

  • Effect.gen(function* () {...}) for effect values — the dominant form, including named module consts — and (params) => Effect.gen(...) for parameterized helpers. Effect.fn(...) is the function form whose effects carry stack-frame annotations (its optional name string adds a per-call tracing span), worth it for service members and combinator callbacks that should be attributable in error reports. All forms re-run their body per execution. See "Effect.gen vs Effect.fn" in core-patterns.
  • Define services with Context.Service and an explicit static readonly Default/layer layer built with Layer.succeed/Layer.effect/Layer.provide. V4 does not generate a layer for you.
  • Model expected failures with Schema.TaggedError (or a plain Data.TaggedError when no Schema fields are needed) and recover with Effect.catchTag/catchTags/Match, never manual _tag string comparisons.
  • Wrap fallible Promises with Effect.tryPromise({ try, catch }); Effect.promise turns rejection into a defect. No async/await or try/catch inside Effect workflows — ESLint bans them in ts/packages/cli/src.
  • Treat every remembered v3 package name and API as wrong until verified against ts/vendor/effect (read-only source oracle — never edit or import from it) and the installed effect@4.0.3 typings. Source may be ahead of the published package; the compiler is the compatibility gate.

Verification

pnpm typecheck
pnpm --filter @composio/cli test

Run pnpm validate:agent-skills and pnpm validate:skill-routing after editing this skill or its descriptions, and compile the TypeScript blocks in this skill and in typescript-testing/references/effect-v4-cli.md against the pinned packages with:

node .agents/skills/effect-v4/scripts/check-examples.mjs

Blocks that quote repo files with unresolvable imports carry a no-check fence info string.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

bug-fixing

FreeSummary

Fix defects in Composio SDK through focused reproduction, root-cause analysis, regression tests that check for recurrence, and targeted verification. Use it for reported bugs, failing tests, CI regressions, runtime errors, or incorrect SDK behavior.

  • Reproducing and fixing reported SDK bugs
  • Investigating failing tests
  • Fixing regressions in automated CI checks
ComposioHQ/composio30.6KUpdated Oct 18, 2026

cli-command

FreeSummary

Design, implement, and review Composio CLI commands, including user interactions, output, errors, and configuration. It guides command wiring and service changes using Effect and effect/cli, with references for implementation patterns.

  • Designing CLI command behavior and output
  • Implementing command wiring with Effect
  • Reviewing configuration and error handling
ComposioHQ/composio30.6KUpdated Oct 18, 2026

cli-e2e

FreeSummary

Create, update, and debug Docker-based end-to-end tests for the Composio CLI. Covers running the executable, keeping test data separate, checking command output, and maintaining package manifests within the CLI test suite.

  • Add end-to-end tests for CLI commands
  • Debug unexpected CLI test output
  • Keep test data isolated between tests
ComposioHQ/composio30.6KUpdated Oct 18, 2026

cli-release

FreeSummary

Build beta versions of the Composio CLI, promote a tested beta to a stable release, and investigate failed releases. Guides verification of published binaries and installation tests through the Build CLI Binaries workflow.

  • Build a CLI beta release
  • Promote a tested beta to stable
  • Verify release assets and installation
ComposioHQ/composio30.6KUpdated Oct 18, 2026

composio

FreeSummary

Set up and use Composio to connect AI agents with apps such as Gmail, Slack, and Notion. Selects guidance for personal accounts or product integrations, covering setup, app operations, troubleshooting, and migration.

  • Connect a personal AI agent to apps
  • Integrate account connections into a product
  • Diagnose failed connections or tool calls
ComposioHQ/composio30.6KUpdated Oct 18, 2026

cross-sdk-parity

FreeSummary

Keep TypeScript and Python SDKs consistent when shared behavior or backend APIs change. Aligns public API names, use of generated clients, and documentation examples, including updates to the fixed versions of generated clients.

  • Align a change across both SDKs
  • Compare TypeScript and Python behavior
  • Update fixed versions of generated clients
ComposioHQ/composio30.6KUpdated Oct 18, 2026

See all skills by ComposioHQ

Report a problem with this skill