用途:该技能在实现、审查或调试 Effect TypeScript 代码时使用,重点覆盖 Effect 的 service/layer 设计、类型化错误处理、配置、Schema 错误与运行时集成。
主要能力:涵盖 Effect 服务、Layer、Context.Tag、Schema.TaggedError、Effect.gen、Effect.fn 等概念;支持调试 Effect 运行时行为、缺失 span、layer 接线、边界错误映射;提供 Effect 代码测试策略(@effect/vitest、测试 layer)与运行时集成(TRPC/服务端边界)。
使用方式:用户提及 Effect、Layer、Context.Tag、Schema.TaggedError、Effect.gen 或 Effect.fn,或正在实现/审查定义 Effect 服务、layer、运行时边界的文件,或调试运行时行为时触发加载。进行实质性实现、重构或正式审查前,先获取最新建议,执行: effect-solutions list effect-solutions show tsconfig effect-solutions show basics effect-solutions show services-and-layers effect-solutions show data-modeling effect-solutions show error-handling effect-solutions show config effect-solutions show testing effect-solutions show cli 若 effect-solutions CLI 不可用,或任务较琐碎(如不影响 Effect 设计的小幅措辞调整),可跳过 CLI 调用,改用技能内相关参考文件。建议视为有时效性,不应依赖过时记忆。
决策树指引:服务设计或重构看 references/services-and-layers.md;类型化错误、Option/Either、恢复看 references/error-handling.md;TRPC/服务端运行时边界看 references/framework-integration.md;agent-tools/* 中的 CLI 工具看 references/agent-tools-patterns.md;测试与 mock 看 references/testing-layers.md。
项目规则:优先服务同文件(Context.Tag 与静态 layer 放一个文件);域错误用 Schema.TaggedError;不要通过 _tag 访问 Option/Either 内部,应使用 match、isNone、isLeft 等辅助函数;Effect 依赖用 Layer mock,而非 vi.mock();入口点保持一个清晰的 provide 边界。
输出期望:对实质性实现/审查/调试任务,返回检查过的 effect-solutions show 主题、使用的参考文件及原因、遵循现有项目模式的具体变更提案,以及验证计划(typecheck/测试)。
限制:该资料未提供收费、价格、平台支持范围等信息;未提供完整代码示例;实际行为取决于本地 CLI 与项目配置。