effect-v4 について
effect-v4は、Effect v4を使う開発者やv3から移行するチーム向けのスキルです。現行ベータAPI、動作変更、移行手順をテーマ別のガイドとコード例で整理しています。
主な機能
- 01Effect v4のコアAPIガイド
- 02v3からv4へのAPI対応表と例
- 03ベータ版の動作変更に関する説明
- 04Effectの各分野を扱うリファレンス
- 05順序付きの移行チェックリスト
活用シーン
- 01Effect v4で機能を開発
- 02v3からv4への移行計画
- 03ベータAPIの変更に合わせたコード更新
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ teeverc/ effect-ts --skill effect-v4インストール後、Claude Code で/effect-v4を入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/ai.mdbehavior-traits.mdcaching.mdconcurrency-advanced.mdconcurrency.mdconfiguration-advanced.mdconfiguration.mdcore-usage.mddata-types-advanced.mddependency-management.mddocs-index.mderror-management.mderror-tooling.mdexit-cause.mdgenerators.mdhttp-client.mdhttp-server.mdlayer-patterns.mdmicro.mdmigration-async.mdmigration.mdreferences/migration/cause.mdequality.mderror-handling.mdfiber-keep-alive.mdfiberref.mdforking.mdgenerators.mdlayer-memoization.mdruntime.md詳細
Effect v4(ベータ)- 開発と移行
概要
Effect v4 の開発と v3 からの移行に関する包括的なガイダンスです。このスキルでは、次の内容を説明します。
- v4 のコアパターン -
Context、レイヤー、ジェネレーター、スキーマコーデックを使って新しい v4 コードを構築するためのガイド - v3 → v4 の移行 - API の名称変更、動作の変更、変更前と変更後の例を含む、段階的な移行ガイダンス
ステータス: Effect v4 は、effect-smol で活発に開発が進められているベータ版ソフトウェアです。コアとなるプログラミングモデルは安定していますが、effect/unstable/* モジュールにはマイナーリリースで破壊的変更が加わる場合があります。本番環境で使用する場合は、公式の v4 ベータ版ガイダンスと安定性に関する注記を確認してください。
同梱されている移行ガイドはすべて、公式の effect-smol 移行ドキュメントを参照しています。
2026 年 6 月 30 日までの上流の変更
上流のベータ版は、当初の 2026 年 2 月 22 日時点から大幅に変更され、さらに 2026 年 4 月 9 日のスキル更新後にも変更が加わっています。ServiceMap、Schema.makeUnsafe、SchemaParser.makeUnsafe、Effect.Yieldable に言及している古い例は、古い情報として扱ってください。現在のガイダンスでは、次を優先してください。
ServiceMap.*ではなく、Context.Service/Context.Reference/Context<R>Schema.makeUnsafe(...)ではなく、Schema.make(...)SchemaParser.makeUnsafe(...)ではなく、SchemaParser.make(...)- コンストラクター形式の検証で、例外をスローするのではなくエラーチャネルにエラーを返す場合は、
Schema.makeEffect(...) - カスタムの Effect 類似値には
Effectable.Class/Effectable.Prototypeを使用します。Effect.Yieldableや.asEffect()は推奨しないでください - 生成されたアサーションヘルパーではなく、
Schema.asserts(schema, input)/SchemaParser.asserts(schema, input)
クイックトリアージ
v4 コードの構築
- コアの Effect 型とコンビネーター(Result、Option、Chunk、Duration):
references/core-usage.md - より幅広いデータ型(DateTime、BigDecimal、HashSet、Redacted):
references/data-types-advanced.md - Equality、Order、Hash、Equivalence のセマンティクス:
references/behavior-traits.md - 予期されるエラーと欠陥、
catch*コンビネーター:references/error-management.md - サンドボックス化、Cause の検査、
catchCause:references/error-tooling.md - Exit と Cause の構造、結果の検査:
references/exit-cause.md - サービスと依存性注入(
Context、レイヤー):references/dependency-management.md - レイヤーの構築、メモ化、
{ local: true }:references/layer-patterns.md - リソースのライフサイクル、Scope、
acquireRelease:references/resource-management.md - エフェクトの実行、
Runtimeの削除、実行境界:references/runtime-execution.md - ファイバー、
forkChild、forkDetach、フォークのオプション:references/concurrency.md - Reference(FiberRef を置き換えるもの)、
Context.Reference:references/concurrency-advanced.md - スケジュール、反復、間隔指定/固定/指数バックオフ:
references/scheduling.md - 再試行、バックオフ、スケジュールの合成:
references/scheduling-retry.md - ストリーム、キュー、PubSub、STM:
references/streams-queues-stm.md - HTTP クライアントと外部 API:
references/http-client.md - HTTP サーバーと API 定義:
references/http-server.md - リクエストのバッチ処理とデータローダー:
references/request-resolver.md - キャッシュとメモ化:
references/caching.md - 設定と設定プロバイダー:
references/configuration.md - 高度な設定、秘匿化:
references/configuration-advanced.md - ログ、メトリクス、トレース:
references/observability.md - ロガー/メトリクス/トレースのセットアップとエクスポーター:
references/observability-examples.md - ログ/メトリクス/トレースのレイヤーの配線:
references/observability-wiring.md - 順次ワークフローとジェネレーターパターン:
references/generators.md - 上流の調査メモと4月以降のベータ版の変更:
references/upstream-changes-2026-06-30.md - スキーマの検証、解析、エンコード(コーデック):
references/schema.md - リデューサー(Sink)を使ったストリームの消費:
references/sink.md - テストにおける決定論的な時間(TestClock):
references/testing.md - より幅広いテスト用サービスとテストレイヤー:
references/testing-stack.md - Command、FileSystem、Path、Terminal、KeyValueStore:
references/platform-primitives.md - Effect AI を使った LLM ワークフロー、計画、ツールの使用:
references/ai.md - バンドルサイズに制約のあるランタイム(Micro):
references/micro.md - Promise/async からの移行:
references/migration-async.md - よくある落とし穴とランタイムエラー:
references/troubleshooting.md llms.txtからドキュメントガイドへの対応表:references/docs-index.md
v3 からの移行
- 移行の全体像、クイックリファレンス表、順序付きチェックリスト:
references/migration.md - ランタイムと実行関数:
references/migration/runtime.md - エラー処理とエラーチャネルの変更:
references/migration/error-handling.md - Cause のフラット化と新しい構造:
references/migration/cause.md - サービスと環境の変更(
Context.Tag/Effect.Service→Context.Service):references/migration/services.md - ファイバー参照とコンテキストローカル:
references/migration/fiberref.md - フォークとファイバー API(fork → forkChild など):
references/migration/forking.md - ファイバーの keep-alive 動作の変更:
references/migration/fiber-keep-alive.md - Scope とリソースのライフサイクルパターン:
references/migration/scope.md - レイヤーのメモ化と Layer.fresh:
references/migration/layer-memoization.md - ジェネレーターと Effect.gen の変更:
references/migration/generators.md - Effect のサブタイピングとカスタムの Effect 類似値:
references/migration/yieldable.md - Equality と構造的比較:
references/migration/equality.md
ワークフロー
- 対象となる v3 の API またはファイルと、避けるべき失敗やリグレッションを確認します。
references/migration/から関連する移行ノートのみを開きます。- 移行前後のコードスニペットを含む、v3 から v4 への対応表を作成します。
- 動作の変更点、エッジケース、必要なテストの更新を説明します。
- 対象コードに合わせた、簡潔で順序立てた移行チェックリストを提示します。
信頼できる情報源
- まず、このスキルに含まれるリファレンスを確認します。
- 質問が新しいベータ版の動作に関わる場合は、次に公式ドキュメントと
effect-smolの変更履歴を確認します。 - ドキュメントや変更履歴で不明確な場合、ユーザーが内部実装について尋ねている場合、または動作がドキュメントに記載されていないように見える場合に限り、
effect-smolのソース内部を調べます。 - 同梱のリファレンスや公式ドキュメントで質問に回答できる場合、デフォルトではリポジトリをクローンしたり、ソースを読んだりしないでください。
リクエストの例
- 「この v3 の
Runtimeの使用箇所を v4 に移行し、新しい run 関数について説明してください。」 - 「v3 のエラー処理を v4 に更新し、移行前後の例を示してください。」
- 「FiberRefs と fork を使っています。v4 では何を変更する必要がありますか?」
- 「generator と Effectable の変更を説明し、この Effect.gen の使用箇所を更新してください。」
- 「v4 では Scope や Layer のメモ化の動作を変更する必要がありますか?」
リファレンス - v4 コア
v4 専用の包括的なガイド(すべて v4 API に合わせて更新済み。非推奨のパターンはありません):
references/core-usage.md- Effect のコア型とコンビネーター(Result、Option、Chunk)references/data-types-advanced.md- DateTime、BigDecimal、HashSet、Redactedreferences/behavior-traits.md- デフォルトの構造的等価性、Equal、Order、Hashreferences/error-management.md-catch*の名称変更、catchReason、catchEagerreferences/error-tooling.md-catchCause、サンドボックス化、Cause の検査references/exit-cause.md- フラット化された Cause 構造、Reason の反復処理references/dependency-management.md- Context、サービス、レイヤーreferences/layer-patterns.md- 横断的な provide のメモ化、{ local: true }references/resource-management.md-Scope.provide(旧Scope.extend)references/runtime-execution.md-Runtime<R>の削除、境界での run* の使用references/concurrency.md-forkChild/forkDetach、fork オプション、キープアライブreferences/concurrency-advanced.md-Context.Reference(旧FiberRef)references/scheduling.md- スケジュールと繰り返しreferences/scheduling-retry.md- リトライとバックオフreferences/streams-queues-stm.md- ストリーム、キュー、PubSub、STMreferences/http-client.md- HTTP クライアントreferences/http-server.md- HTTP サーバーreferences/request-resolver.md- リクエストのバッチ処理references/caching.md- キャッシュとメモ化references/configuration.md- 設定references/configuration-advanced.md- 高度な設定、秘匿化references/observability.md- ログ、メトリクス、トレーシングreferences/observability-examples.md- ロガー/メトリクス/トレーシングの具体的な設定references/observability-wiring.md- オブザーバビリティレイヤーの接続references/generators.md- Effect.gen と generator パターンreferences/upstream-changes-2026-06-30.md- 2026 年 6 月 30 日までのコミット範囲の調査概要references/schema.md- Schema コーデックとSchema.make/Schema.makeEffectreferences/sink.md- Sink によるストリームの消費references/testing.md- TestClock と決定論的な時間references/testing-stack.md- テストレイヤーの合成references/platform-primitives.md- Command、FileSystem、Path、Terminalreferences/ai.md- Effect AI による LLM ワークフローreferences/micro.md- バンドルサイズに制約があるランタイムreferences/migration-async.md- Promise/async からの移行references/troubleshooting.md- よくある落とし穴references/versioning.md- バージョンに関するガイダンスreferences/docs-index.md- ドキュメントからガイドへの対応表
参考資料 - v3 → v4 の移行
references/migration.md- まずはこちらをご覧ください:全体概要、クイックリファレンステーブル、順序付きチェックリストreferences/migration/cause.md- Cause のフラット化と構造references/migration/equality.md- 等価性と比較の変更references/migration/error-handling.md- エラーチャネルと catch* の名称変更references/migration/fiber-keep-alive.md- Fiber のライフサイクルの変更references/migration/fiberref.md- FiberRef と References の変更references/migration/forking.md- fork、forkChild、forkDetach の変更references/migration/generators.md- Effect.gen パターンの更新references/migration/layer-memoization.md- Layer.fresh とメモ化references/migration/runtime.md- Runtime と run* 関数references/migration/scope.md- Scope とリソースのライフサイクルreferences/migration/services.md- 現在のContext.ServiceAPI と、以前のベータ版におけるServiceMapの名称変更に伴う影響references/migration/yieldable.md- Effect のサブタイピングの削除、Effectable、ジェネレーターの変更
コメント
Markdown 対応