一键导入
effect-wrapping
Wrap Promise-based APIs with Effect conventions. Use when integrating third-party libraries or wrapping any Promise-returning code.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Wrap Promise-based APIs with Effect conventions. Use when integrating third-party libraries or wrapping any Promise-returning code.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Effect service definition, interface design, error types, retries. Use when creating new services or defining error hierarchies.
AXM - Agent Extension Manager: Use for any operation (install/create/new/edit/update/add/remove/delete/publish/find/discover) on agent skills, subagents, slash commands/stored prompts, MCP servers, context packages, rule extensions, hook extensions, or packs — e.g. "create a skill", "make a /command", "add a subagent", "build an MCP server", "publish an extension". Use this BEFORE hand-authoring or editing any SKILL.md, slash-command, subagent, MCP, rule, hook, or extension manifest file: route extension authoring through AXM instead of writing these files directly.
Native skill manifest with two unknown top-level keys.
Effect CLI + Effect architecture. Use when adding commands, defining flags, or wiring handlers. Covers file organization, argument/flag patterns, and testing.
"unterminated
Native skill with an invalid extension name in manifest.
| name | effect-wrapping |
| description | Wrap Promise-based APIs with Effect conventions. Use when integrating third-party libraries or wrapping any Promise-returning code. |
| user-invocable | false |
Wrap Promise-based APIs to integrate with the Effect ecosystem.
import * as lib from "some-lib";
import { Effect, Data } from "effect";
export class LibError extends Data.TaggedError("LibError")<{
readonly cause: unknown;
}> {}
export const wrappedFn = (opts: Parameters<typeof lib.fn>[0]) =>
Effect.tryPromise({
try: () => lib.fn(opts),
catch: (error) => new LibError({ cause: error }),
});
When wrapping an entire third-party library, create a dedicated wrapper module.
Location: packages/cli/src/<lib>-effect/
Naming: <lib>-effect (e.g., clack-effect, octokit-effect)
Structure:
<lib>-effect/
index.ts # Re-exports public API
errors.ts # TaggedError types
<module>.ts # Wrapped functions by domain