SuperAPI AI 工具集

effect

编程与开发

查看项目

更新于 10-15 16:49

技能介绍

用途:在代码库中处理 Effect v4 TypeScript 代码,编写类型化、可组合的服务、Schema 与工作流。

主要能力与用法:以当前 Effect v4 源码为唯一依据,不使用记忆或旧版 v2/v3 示例。若 .opencode/references/effect 缺失,需在项目中(而非技能目录)执行 clone https://github.com/Effect-TS/effect。回答或实现前先在该目录检索确切 API、示例、测试与命名模式,并检查仓库现有代码的本地风格,优先给出有源码文件或邻近示例支撑的实现。

编码约定:多步工作流用 Effect.gen(function* () { ... });可复用服务方法或重要工作流用 Effect.fn("Name") 或 Effect.fnUntraced(...)。API 与领域数据形状优先用 Effect Schema,ID 用 branded schema,新错误面用 Schema.TaggedErrorClass。HTTP 处理器保持轻薄,只解码输入、读取请求上下文、调用服务、映射传输错误,业务规则放进服务。服务代码优先使用 Effect 平台抽象与依赖,而非临时 Promise。Layer 组合要显式,避免难以发现缺失依赖的隐式供给。不要为满足类型引入 any、非空断言、未检查强制转换或旧版 Effect API,也不要凭记忆作答。

测试:涉及 Effect 服务、Layer、运行时上下文、作用域资源或平台集成时用 packages/core/test/lib/effect.ts 的 testEffect(...);文件系统、git 仓库、HTTP 服务器、socket、子进程、锁、实时行为等用 it.live(...)。在 packages/core 等包目录下运行测试,切勿在仓库根目录运行包测试。优先显式测试 layer,保持依赖供给在测试文件中可见;需清理的资源(临时目录、标志、数据库、fiber、服务器、全局状态)使用作用域 fixture 与 finalizer。

限制:资料未提供该技能的具体收费、价格、平台支持范围及独立安装步骤,除上述 clone 与测试命令外暂未提供其他使用方式。