yo-async-effects
Provides patterns for single-threaded async workflows and algebraic-effect-based APIs in Yo.
Install
mkdir -p .claude/skills/yo-async-effects && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16616" && unzip -o skill.zip -d .claude/skills/yo-async-effects && rm skill.zipInstalls to .claude/skills/yo-async-effects
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Write Yo async code and algebraic effect handlers. Use this when working with Io, Future, JoinHandle, ctl/fn handlers, io.async, io.await, io.spawn, return, and unwind.Key capabilities
- →Write functions with `io : Io` parameters
- →Return or consume `Future(...)` values
- →Run tasks with `io.async`, `io.await`, or `io.spawn`
- →Define handlers using `ctl(args) -> R`
- →Reason about `return` versus `unwind` in handlers
How it works
This skill guides the creation of single-threaded async workflows and algebraic-effect-based APIs in Yo by defining explicit effect parameters and managing future values and handlers.
Inputs & outputs
When to use yo-async-effects
- →write async functions with IO parameters
- →define and implement algebraic effect handlers
- →manage concurrent tasks with io.spawn
About this skill
Yo Async and Effects
Use this skill for single-threaded async workflows and algebraic-effect-based APIs in Yo.
If a repository wraps these primitives, keep the same semantics and verify whether the wrapper changes naming only or behavior too.
When to use this skill
Use this skill when you need to:
- write functions that take an
io : Ioparameter - return or consume
Future(...)values - run tasks with
io.async,io.await, orio.spawn - define handlers using
ctl(args) -> Rand install them as plain local bindings - reason about
returnversusunwindin handlers
Workflow
- Decide whether the task needs sequential async, concurrent async on one thread, or true parallelism.
- Add the effect parameters (
io : Io,raise : Raise, …) to function signatures and call sites. There is no implicit injection — pass them explicitly. - Use the async and effects recipes for working patterns.
- Re-check handler semantics before finalizing:
return(value)resumes the continuationunwind(expr)discards it (only valid inside actl(...) -> Rbody)
High-signal rules
io.async(fn)creates a lazy future; it does not start until awaited or spawned.io.await(future, e)runs or waits for the future and returns its result.eis the effect bundle the future expects.io.spawn(future, e)starts it without waiting and returnsJoinHandle(T).handle.await(io)returnsOption(T);.Nonemeans the task aborted viaunwind.- Future types are
Future(T)orFuture(T, E)whereEis a single effect bundle (typically a struct). Pack multiple effects into one struct rather than passing them as separate type arguments. - Effects are passed as explicit parameters — pass them by name at call sites.
- A handler whose body may
unwindmust be typedctl(args) -> R; otherwise type itfn(args) -> R. Subtyping is one-way:fn(T) -> R <: ctl(T) -> R. return(value)inside a handler resumes the continuation;unwind(expr)discards it and exits the install frame.Exception— non-resumable; handler callsunwind(...)to exit.ResumableException(T)— handler callsreturn(...)to resume.- Closures cannot be
ctland cannot capturectlvalues. Handlers are bare (non-capturing) anonymous functions. - Yo async is single-threaded concurrency, not multithreaded parallelism.
Resource
When not to use it
- →When the task requires true parallelism
- →When working with multithreaded parallelism
Limitations
- →Yo async is single-threaded concurrency, not multithreaded parallelism.
- →There is no implicit injection of effect parameters; they must be passed explicitly.
How it compares
This skill provides specific guidance for Yo's single-threaded async and algebraic effect model, which differs from general async programming paradigms.
Compared to similar skills
yo-async-effects side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| yo-async-effects (this skill) | 0 | 2mo | No flags | Advanced |
| dify-dsl-generator | 18 | 8mo | No flags | Intermediate |
| agentscope-java | 1 | 2mo | No flags | Advanced |
| cloudrun-development | 1 | 2mo | No flags | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by shd101wyy
View all by shd101wyy →You might also like
dify-dsl-generator
wwwzhouhui
专业的 Dify 工作流 DSL/YML 文件生成器,根据用户业务需求自动生成完整的 Dify 工作流配置文件,支持各种节点类型和复杂工作流逻辑
agentscope-java
agentscope-ai
Expert Java developer skill for AgentScope Java framework - a reactive, message-driven multi-agent system built on Project Reactor. Use when working with reactive programming, LLM integration, agent orchestration, multi-agent systems, or when the user mentions AgentScope, ReActAgent, Mono/Flux, Project Reactor, or Java agent development. Specializes in non-blocking code, tool integration, hooks, pipelines, and production-ready agent applications.
cloudrun-development
TencentCloudBase
CloudBase Run backend development rules (Function mode/Container mode). Use this skill when deploying backend services that require long connections, multi-language support, custom environments, or AI agent development.
honcho-integration
plastic-labs
Integrate Honcho memory and social cognition into existing Python or TypeScript codebases. Use when adding Honcho SDK, setting up peers, configuring sessions, or implementing the dialectic chat endpoint for AI agents.
mistral-core-workflow-a
jeremylongshore
Execute Mistral AI primary workflow: Chat Completions and Streaming. Use when implementing chat interfaces, building conversational AI, or integrating Mistral for text generation. Trigger with phrases like "mistral chat", "mistral completion", "mistral streaming", "mistral conversation".
mistral-sdk-patterns
jeremylongshore
Apply production-ready Mistral AI SDK patterns for TypeScript and Python. Use when implementing Mistral integrations, refactoring SDK usage, or establishing team coding standards for Mistral AI. Trigger with phrases like "mistral SDK patterns", "mistral best practices", "mistral code patterns", "idiomatic mistral".