executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
core-abstractionUse PocketFlow's core graph runtime: Node, Flow, BatchNode, BatchFlow, async variants, action transitions, retries, fallback, and shared-store semantics.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when the user asks about PocketFlow's public runtime semantics, a failing flow, or how to express a graph in terms of nodes, actions, shared state, params, batch behavior, or async orchestration.
BaseNode, Node, BatchNode, Flow, BatchFlow.AsyncNode, AsyncBatchNode, AsyncParallelBatchNode, AsyncFlow, AsyncBatchFlow, AsyncParallelBatchFlow.prep -> exec -> post lifecycle.>> default transitions and - "action" >> named transitions.cur_retry.| Need | Read |
|---|---|
| Method signatures, defaults, and runtime rules | references/api-reference.md |
| Linear, branching, nested, batch, async, or parallel recipes | references/workflows.md |
| Warning messages, failure modes, and repair steps | references/troubleshooting.md |
| Fast local runtime check | scripts/core_flow_smoke.py |
A node is a tiny unit of work with optional prep, exec, and post methods.
prep(shared) reads from the shared store and prepares input.exec(prep_res) performs the computation and may be retried.post(shared, prep_res, exec_res) writes results and returns the next action string.A flow orchestrates node transitions.
node_a >> node_b for default transitions.node_a - "search" >> node_b for named transitions.post() determines which successor runs next.BatchFlow repeats a flow with parameter dictionaries.
BatchFlow.prep(shared) returns a list of dicts.self.params for the child flow.self.params, not from the shared store.AsyncNode and async flow types use run_async() / prep_async() / exec_async() / post_async().AsyncParallelBatchNode and AsyncParallelBatchFlow are for independent I/O-bound work.post() and the reduce node consumes that list.AsyncFlow.run_async() and mixed sync/async nodes can coexist in one async flow.utilities or design-patterns.