effect-ts について
effect-tsは、Effectを使うTypeScript開発者向けのスキルです。エラー、依存関係、リソース管理、ランタイム、テスト、ストリーム処理、Effect AIのワークフローとパターンを扱います。
主な機能
- 01Effectプログラム構築のワークフロー
- 02エラーと依存関係のモデリングガイド
- 03リソース管理とランタイムのガイド
- 04Schema、ストリーム処理、テストのリファレンス
- 05Effect AIワークフローのガイド
活用シーン
- 01型付きエラー処理の設計
- 02サービスと依存関係のLayer設定
- 03ストリームまたは並行プログラムの構築とテスト
MCP 対応
effect-docs MCPを使ってAPIリファレンスを検索・取得できます。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ teeverc/ effect-ts --skill effect-tsインストール後、Claude Code で/effect-tsを入力して読み込まれたか確認します。
同梱ファイル
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-v4.mdobservability-examples.mdobservability-wiring.mdobservability.mdplatform-primitives.mdrequest-resolver.mdresource-management.mdruntime-execution.mdscheduling-retry.mdscheduling.md詳細
Effect-TS
概要
Effect をベースとする TypeScript プログラムの構築に役立つワークフロー、パターン、ベストプラクティスを提供します。エラー、依存関係、リソース、ランタイム実行、ジェネレーター、スキーマ、テスト、プラットフォームモジュール、シンク/ストリーム処理、Effect AI に関する要点を絞ったリファレンスも提供します。
主なドキュメントと API の情報源:
- https://effect.website/llms.txt (LLM 向けトピックインデックス)
- https://effect.website/docs
- https://effect.website/docs/platform
- https://effect.website/docs/ai/introduction
- https://effect.website/docs/additional-resources/api-reference
- https://tim-smart.github.io/effect-io-ai/ (簡潔な API 一覧)
内部で情報を調べる際は、effect-docs MCP を使って API リファレンスを検索・取得できます:https://github.com/tim-smart/effect-mcp。
段階的な情報開示
- トピックの参照先を確認するため、
references/docs-index.mdから始めます。 - タスクに合った主要なガイドを 1 つ読みます。
- 必要な場合に限り、関連するガイドを 1 つ読みます(テスト、ランタイム、オブザーバビリティなど、横断的な関心事について)。
- 関係のないリファレンスの読み込みは避けます。
クイックトリアージ
- Effect のコアデータ型やコンビネーターが必要な場合は、
references/core-usage.mdを開きます。 - より幅広いデータ型の選択肢(DateTime、BigDecimal、HashSet、Redacted)が必要な場合は、
references/data-types-advanced.mdを開きます。 - 等価性・順序・ハッシュのセマンティクスが必要な場合は、
references/behavior-traits.mdを開きます。 - エラーモデリングや型付き失敗がタスクに関係する場合は、
references/error-management.mdを開きます。 - エラー処理ツール(サンドボックス化、Cause、エラーチャネル変換)が必要な場合は、
references/error-tooling.mdを開きます。 - サービスや依存関係が関係する場合は、
references/dependency-management.mdを開きます。 - レイヤーの構築やテストの配線が関係する場合は、
references/layer-patterns.mdを開きます。 - リソースのライフサイクルが関係する場合は、
references/resource-management.mdを開きます。 - エフェクトの実行やランタイムの選択が関係する場合は、
references/runtime-execution.mdを開きます。 - ファイバーや並行処理プリミティブが関係する場合は、
references/concurrency.mdを開きます。 - 中断、監視、ファイバー参照が関係する場合は、
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を開きます。 - 実行時の検証やデコードが必要な場合は、
references/schema.mdを開きます。 - リデューサーを使ったストリーム消費パターンが関係する場合は、
references/sink.mdを開きます。 - テストで決定論的な時間が必要な場合は、
references/testing.mdを開きます。 - より幅広いテスト用サービスが必要な場合は、
references/testing-stack.mdを開きます。 - コマンド/ファイル/パス/ターミナル/キーと値のモジュールが関係する場合は、
references/platform-primitives.mdを開きます。 - Effect AI を介した LLM ワークフロー、計画、ツール使用が関係する場合は、
references/ai.mdを開きます。 - バンドルサイズに制約のあるランタイムが関係する場合は、
references/micro.mdを開きます。 - Promise/async からの移行が関係する場合は、
references/migration-async.mdを開きます。 - バージョニングやシグネチャの変更が必要な場合は、
references/versioning.mdを開きます。 - よくある落とし穴やランタイムエラーが発生した場合は、
references/troubleshooting.mdを開きます。 - 結果の確認やデバッグが必要な場合は、
references/exit-cause.mdを開きます。 llms.txtからドキュメントとガイドの対応表が必要な場合は、references/docs-index.mdを開きます。
コアワークフロー
- 境界と入出力を明確にし、コアロジックは
Effectの値として保持します。 - スタイルを選びます。単純な合成にはパイプラインを使い、逐次処理には
Effect.genを使います。 - エラーを明示的にモデル化します。想定されるエラーは型付けし、欠陥は予期しない失敗として扱います。
- サービス、タグ、レイヤーで依存関係をモデル化し、インターフェースに構築上の関心事を持ち込まないようにします。
- リソースを開閉する際は、
Scopeを使ってライフサイクルを管理します。 - レイヤーを介して環境を提供し、プログラムの境界でのみエフェクトを実行します。
- プラットフォーム/インフラのコードでは、副作用を専用のアダプターに閉じ込め、ドメインコードには型付きサービスを公開します。
- エージェントのタスクでは、エラー、並行処理、ランタイムの選択理由を簡潔に記載します。
出力基準
- インポートと、最小限の実行可能な例を示してください。
- 深いモジュールパスよりも、バレルインポート(
from "effect"/from "@effect/platform")を優先してください。 - 関数型の合成のほうが明確な場合は、
effectのpipeを使用してください。 - 依存関係グラフ(サービス、レイヤー、コンテキストタグ)を明示してください。
- エラーチャネルの型を含め、想定されるエラーと欠陥エラーを明確にしてください。
- ライブラリ内でエフェクトを実行することは避け、エントリーポイントやテストでのランタイムの使用方法を示してください。
- 現行の Effect メジャーバージョンでコンパイルできる例を優先してください。
エージェントの品質チェックリスト
- 設計上の判断に役立つ場合は、対象の型を
Effect<A, E, R>として明示してください。 - 想定されるエラー(
E)と欠陥エラーを明確に分けてください。 - レイヤーを提供する場所と、
run*を呼び出す場所を特定してください。 - 並行処理のコードでは、並行処理数に上限があるかどうかと、シャットダウンの方法を明記してください。
- 境界でのデコードでは、Schema の使用方法と失敗への対処箇所を示してください。
- テストでは、提供するテストサービス(
TestContext、TestClock、ライブのオーバーライド)を記載してください。 - ドキュメントに不明な点がある場合は、API を確定する前に
references/docs-index.mdとソースドキュメントを確認してください。
参考資料
- 関連するガイドをすばやく選ぶには、まず
references/docs-index.mdを確認してください。 - ほとんどのコードタスクでは、
references/core-usage.md、references/error-management.md、references/dependency-management.mdを標準として使用してください。 - 境界処理や統合には、プラットフォーム/ランタイムの参考資料(
references/platform-primitives.md、references/runtime-execution.md)を使用してください。 - 検証とデバッグには、テスト/診断の参考資料(
references/testing.md、references/testing-stack.md、references/troubleshooting.md)を使用してください。
コメント
Markdown 対応