Ordered streaming tool execution
Skill ychampion/cskill-agents/skills/ordered-streaming-tool-execution
Buffer and execute streaming tool calls with concurrency awareness so results appear in request order even when multiple runners overlap.From its SKILL.md
npx -y skills add ychampion/cskill-agents --skill ordered-streaming-tool-executionAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.2 KB, 386 tokens by cl100k_base, as published. Nobody here has run it
SKILL: Ordered Streaming Tool Execution
Domain: tool-orchestration
Trigger: Streaming toolUse input where progress must be shown in the original queue order, even if some tools run concurrently.
Source Pattern: Distilled from reviewed tool execution, streaming, persistence, and output-budget implementations.
Core Method
Maintain an ordered queue of tracked tools whose statuses include queued, executing, and completed. When a tool becomes eligible, start it only if no incompatible executor is running (non-concurrency-safe tools block the queue) and mark it executing. Buffer results and progress messages per tool and never yield them until all previous tools have finished; only then append their buffered messages to the output stream in the original order. This preserves a deterministic user view while still allowing safe tools to run in parallel.
Key Rules
- Represent each tool use with a tracked descriptor holding queue position, assistant metadata, context modifiers, pending progress, and results.
- Only start tools when can execute tool permits; concurrent-safe ones may run alongside others but non-safe ones must wait for the queue drain.
- Buffer output (results/progress/heuristics) and flush it only after every earlier tool has resolved, so ordering cannot be disrupted by race conditions.
Example Application
Implement a streaming tool runner for a conversational agent by streaming helper tasks into the executor, letting concurrency-safe tools run in parallel, and deferring emission until all prior toolUse entries have completed so the transcript matches the request order.
Anti-Patterns (What NOT to do)
- Emit tool results as soon as they arrive in the background, which scrambles the perceived order and confuses the user.
- Ignore is concurrency safe and start mutually exclusive tools simultaneously, risking inconsistent shared resources.
- Fail to keep pending progress separate and merge them out of order, which causes partial updates to interleave incorrectly.
What ships with it: 1 file
906 B alongside SKILL.md
- skill.yaml906 B