用途:该技能针对 TypeScript 的 Effect v4(4.0.0-beta.x),在编写或审查 Effect 服务、Layer、Schema、类型化错误、测试与运行时配置时提供模式与架构判断。因 v4 极少出现在模型训练数据中,且官网文档仍为 v3,需以项目实际安装的类型为准。
主要能力:覆盖服务与 Layer、依赖注入、Effect.fn、类型化错误与恢复、Schedule 与 Cache、Schema 与不可信输入解析、测试与假实现、入口与运行时配置,以及 v3 到 v4 的移植。附带只读检查脚本,运行 effect-tsgo 诊断、oxlint 与 ast-grep。
使用方式:写作前先声明项目锁定版本,并按任务读取对应参考文件,如 references/services-layers.md、references/schema-boundaries.md 等。定义服务用 class X extends Context.Service<X, Shape>()("pkg/dir/X") {},实现用 Layer.effect 返回 X.of。错误用 Schema.TaggedErrorClass 并以 return yield* E.make({...}) 抛出。禁止在 Effect.gen 内用 try/catch、async/await、裸 Promise,也不得在库代码中调用 runPromise。检查命令:nu <path-to-this-skill>/scripts/check-effect.nu <project-dir> [source-paths...]。该脚本不写入目标,缺少工具的门禁会标记为跳过。
适用场景:Effect v4 beta 项目的服务设计评审、Schema 边界、测试、运行时配置及 v3 迁移。
限制:beta 版本间 API 不具单调性,任何模式都需核实;第一方文档也可能滞后。严格性依赖 tsconfig 基线,effect-tsgo patch 非幂等,需检查 tsc --version 的 +effect-tsgo.<version> 后缀后再补丁。适配器文件可用 // @effect-diagnostics <rule>:off 等最窄方式豁免。具体版本、价格、平台等信息暂未提供。