Async Jobs And Events
latitude-dev/latitude-llm
Queues and workers, domain event publishers, async notifications or projections, or not doing that work inside HTTP handlers.
Design how an agent tool runs: sync or async job, idempotency, timeouts, transactions, and compensation.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill tool-design-execution -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins tool-design-execution --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/runtypelabs/skills/skills/tool-design-execution .claude/skills/tool-design-execution && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "tool-design-execution" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/runtypelabs/skills/skills/tool-design-execution into .claude/skills/tool-design-execution/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tool-design-execution", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/runtypelabs/skills/skills/tool-design-executionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill tool-design-execution -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins tool-design-execution --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/runtypelabs/skills/skills/tool-design-execution .agents/skills/tool-design-execution && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "tool-design-execution" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/runtypelabs/skills/skills/tool-design-execution into .agents/skills/tool-design-execution/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tool-design-execution", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill tool-design-execution -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins tool-design-execution --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/runtypelabs/skills/skills/tool-design-execution .cursor/skills/tool-design-execution && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "tool-design-execution" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/runtypelabs/skills/skills/tool-design-execution into .cursor/skills/tool-design-execution/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tool-design-execution", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hashgraph-online/awesome-codex-plugins.git --path plugins/runtypelabs/skills/skills/tool-design-execution--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill tool-design-execution -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins tool-design-execution --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/runtypelabs/skills/skills/tool-design-execution .gemini/skills/tool-design-execution && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "tool-design-execution" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/runtypelabs/skills/skills/tool-design-execution into .gemini/skills/tool-design-execution/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tool-design-execution", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hashgraph-online/awesome-codex-plugins tool-design-executionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hashgraph-online/awesome-codex-plugins --skill tool-design-execution -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/runtypelabs/skills/skills/tool-design-execution .github/skills/tool-design-execution && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "tool-design-execution" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/runtypelabs/skills/skills/tool-design-execution into .github/skills/tool-design-execution/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tool-design-execution", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill tool-design-execution -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins tool-design-execution --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/runtypelabs/skills/skills/tool-design-execution .opencode/skills/tool-design-execution && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "tool-design-execution" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/runtypelabs/skills/skills/tool-design-execution into .opencode/skills/tool-design-execution/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tool-design-execution", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
tool-design-executionDesign how an agent tool runs: sync or async job, idempotency, timeouts, transactions, and compensation.
Tool Design Execution is an agent skill from hashgraph-online/awesome-codex-plugins. Design how an agent tool runs: sync or async job, idempotency, timeouts, transactions, and compensation. Use when a tool is slow, has side effects that a retry could duplicate, or spans several systems.
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
The repository describes itself as: A curated list of awesome OpenAI Codex / ChatGPT plugins, skills, and resources. The 1 Codex Marketplace. See live plugins at: https://hol.org/plugins/best-codex-plugins. The licence is Apache-2.0.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 78497e5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Tool Design Execution loads about 2.7k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 1,468 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from hashgraph-online/awesome-codex-plugins at commit 78497e5, republished under its Apache-2.0 licence (© hashgraph-online). 1,468 words, ~2,700 tokens.
.claude/skills/tool-design-execution/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Agents retry. They retry on timeouts, on ambiguous errors, and sometimes on nothing at all. Execution design makes that safe: bounded time, safe repetition, and consistent state when a multi-step operation fails halfway.
Most tools return in the same call within seconds. Set an explicit timeout in the tool definition, keep the description honest ("returns immediately"), and use the async pattern only when the operation takes minutes.
One tool starts the job and returns immediately. Sibling tools poll and fetch:
{
"jobId": "job_42",
"status": "queued",
"estimatedMinutes": 5,
"nextAction": { "tool": "check_job_status", "args": { "jobId": "job_42" }, "afterSeconds": 30 }
}start_* returns the id, an estimate, and the names of the status and result tools.check_job_status(jobId) returns queued | running | succeeded | failed plus
progress when available.get_job_result(jobId) returns the shaped result. Add cancel_job(jobId) when the
work is cancellable.Query tools are idempotent by nature. Command tools need one of:
create_order(orderId=...) where the caller's id makes the second
call a no-op that returns the first result.idempotencyKey parameter. The tool stores the
first result under that key for a documented window and returns it on repeat.Document the guarantee in the description ("Safe to retry: repeated calls with the same
idempotencyKey return the original payment"). Never let a retry create a second
payment, message, or ticket.
When every step touches one database, wrap them in a transaction. Keep the transaction short, and state in the description what is inside it ("Either both accounts are updated or neither is").
Cross-system operations cannot roll back atomically. Track each completed step, define a compensating action for each, and run them in reverse order on failure:
create_account -> compensate: delete_account
setup_billing -> compensate: cancel_billing
grant_access -> compensate: revoke_accessLog every compensation. Say which steps may not be fully reversible (a sent email is not un-sent) and surface that in the result. For slow undos, compensate asynchronously and return a job handle.
Every tool that calls an external service has a maximum execution time. On timeout,
clean up, return partial results if any exist, and return a retryable error (see the
error classes in tool-design-errors) that names the limit and, when one exists, the
async alternative. Log timeouts. A rising timeout rate is the signal to convert the
tool to an async job.
Streaming suits tools whose partial output is useful before completion (search results arriving, a document being generated). Event-driven tools push when something happens and belong behind a subscription tool plus a webhook or queue, not a blocking call. Both still need the timeout and idempotency decisions above.
create_* command with no idempotency story and no confirmation gate.nextAction and no interval, so the agent polls in a tight
loop.Read the platform guides first. get_platform_documentation(topic="operational-design")
covers retries, idempotency, and choosing an execution mode.
topic="limits" lists every time budget, and topic="subagent-delegation" covers
detached subagents.
Tool time limits. An external (HTTP) tool call is capped at 30 s. A custom tool
defined inline in a dispatch request is rejected when its config.timeout is above
30000 ms. The Timeout (ms) field on a saved custom tool accepts up to 300000 ms.
An MCP server timeout can be up to 300000 ms, but a call that holds the original
request open is clamped to 30 s.
Run budgets. A flow step gets 5 minutes by default and a flow 15 minutes.
options.stepTimeoutMs goes up to 10 minutes and options.flowTimeoutMs up to 15
minutes. For a flow started with async: true (Prefer: respond-async over REST),
both go up to 30 minutes. An execute-agent step gets only 30 s unless you raise
its config.timeout, and that value is nested inside the step budget. One agent
turn gets 5 minutes, or 30 minutes on durable execution, and
config.durability.maxBudgetMs raises it up to 24 hours.
Async job shape inside an agent. Use a subagent tool with
config.execution.mode: "detached". The call returns a subagent_run handle
(runId, status). notify sets what happens on completion: none only stores the
result, and narrate (the default) posts a completion status into the parent
conversation. narrate needs a saved parent agent and a conversationId. react
(start a new parent turn) is rejected today, so use narrate or none. Bound the
run with maxBudgetMs (up to 24 hours) and noProgressBudgetMs (a silence timeout
that resets on progress). Runtype adds get_subagent_run, list_subagent_runs, and
cancel_subagent_run automatically, so you do not write status or cancel tools.
With narrate, completion arrives in the conversation, so the agent must not poll
get_subagent_run in a loop. The dynamic spawn_subagent tool can run detached when
config.tools.subagentConfig.executionModes includes "detached".
Async job shape from outside. Start a flow or agent with run_flow, dispatch,
or execute_agent with async: true, then poll get_execution_status with the
returned execution id. After a timeout, poll instead of starting the run again. When a
saved agent runs on durable execution, send an Idempotency-Key header on
POST /v1/agents/{id}/execute or dispatch so a repeated request does not start a
second run. The header is ignored on other runs.
A flow tool is not async. The agent waits for the nested flow and gets its
result, so the flow must finish inside the tool's budget.
Waiting on an external job inside a flow. Use a wait-until step with
poll: { http, intervalMs, maxAttempts, success }. The flow pauses without holding
a connection. On durable execution Runtype caps the attempts at 1,000, so raise
intervalMs for a longer wait. Keep the worst-case wait under 30 days, or the flow
is rejected when you save it. Set
continueOnTimeout: true when a timeout must not fail the flow.
Idempotent records. Use upsert-record with recordType and a recordName
built from a stable id that the caller supplies. A repeated call updates the same
record instead of adding a duplicate.
Isolate side effects. Put each side-effecting step (send-email,
upsert-record, an api-call that changes data) in its own step, never in a step
that can retry. A retry re-runs the failed step, and a resume after wait-until,
crawl, or an approval pause re-enters the flow. For an external POST, pass the
provider's idempotency key and check status after an ambiguous timeout before you
retry.
Platform retries. A tool-call step never retries a timeout, and it retries a
tool that reports failure only when you set onError: "retry" or maxRetries
(backoff up to 5 s between attempts). A step's errorHandling.fallbacks can also
hold { "type": "retry", "delay": 2000 }. Turn either on only for a tool that is
safe to retry.
Compensation in flows. Context steps take
errorHandling: { "onError": "fail" | "continue" | "fallback", "fallbacks": [...] }.
fail stops the flow, continue substitutes defaultValue, and fallback runs the
fallbacks chain in order. A chain entry is a retry, a step, or a flow, so a
compensating step or flow can be the undo path:
{
"errorHandling": {
"onError": "fallback",
"fallbacks": [
{ "type": "flow", "flowId": "flow_refund_order", "inputs": { "orderId": "{{orderId}}" } }
]
}
}A tool-call step uses its own config.onError (default fail) instead. For the
defaults when errorHandling is unset, see tool-design-errors. Flows have no
cross-step transaction, so order the steps so the irreversible one runs last.
Confirmation gate. List command tools that are not safe to retry in
config.tools.approval.require. The approval timeout defaults to 300000 ms. An
approval authorizes the action but does not make a retry safe. See
tool-design-security for the full approval contract.
Timeout errors from a tool reach the model as the tool's error. Name the async alternative in the tool description so the agent knows where to go.
© hashgraph-online, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in plugins/runtypelabs/skills/skills/tool-design-execution of hashgraph-online/awesome-codex-plugins.
Open the folder on GitHubat commit 78497e5
Tool Design Execution next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Tool Design Execution this skillhashgraph-online/awesome-codex-plugins | 1.2k | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Async Jobs And Eventslatitude-dev/latitude-llm | 4.7k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Technical Job Searchgithub/awesome-copilot | 40k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Csharp Asyncgithub/awesome-copilot | 40k | 2 repos | ~466 | Automated safety check: Pass | MIT | |
| Async Jobsyonatangross/orchestkit | 289 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Fix SyncClickHouse/ClickHouse | 50k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 |
latitude-dev/latitude-llm
Queues and workers, domain event publishers, async notifications or projections, or not doing that work inside HTTP handlers.
github/awesome-copilot
A skill your agent uses when a software engineer asks for help with job search tasks: parsing or analyzing a job description, tailoring a CV/resume, writing a cover letter, evaluating a job offer…
github/awesome-copilot
Get best practices for C async programming. An agent skill from github/awesome-copilot.
yonatangross/orchestkit
Async job processing patterns for background tasks, Celery workflows, task scheduling, retry strategies, and distributed task execution.
ClickHouse/ClickHouse
Fix the "CH Inc sync" job in a pull request. An agent skill from ClickHouse/ClickHouse.
MadsLorentzen/ai-job-search
Evaluates job postings against your profile, then tailors a LaTeX CV and cover letter and prepares interview answers for the roles you pursue.
hashgraph-online/awesome-codex-plugins
Create original anime-style reaction stickers as looping GIFs and MP4 previews, using generated character pose sheets and timed key poses.
hashgraph-online/awesome-codex-plugins
Manage and query Calibre libraries with the calibredb CLI (local paths or Calibre Content server URLs).
hashgraph-online/awesome-codex-plugins
A skill your agent uses when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test…
hashgraph-online/awesome-codex-plugins
Make a studio's game look like something at build time — a cover from a real frame of the game (free), painted covers, backdrops, textures and character plates from image models through the…
hashgraph-online/awesome-codex-plugins
Balance game difficulty, resources, rewards, probability, progression, economies, and dominant strategies.
hashgraph-online/awesome-codex-plugins
Analyze nonfiction manuscripts for reader engagement signals, including heading-level word counts, slow starts, long slogs, weak takeaway titles, value pacing, beta-reader comment dropoff, and…
Design how an agent tool runs: sync or async job, idempotency, timeouts, transactions, and compensation. Tool Design Execution is an agent skill from hashgraph-online/awesome-codex-plugins. Design how an agent tool runs: sync or async job, idempotency, timeouts, transactions, and compensation.
Tool Design Execution fits situations like: has side effects that a retry could duplicate; spans several systems.
Run `npx skills add hashgraph-online/awesome-codex-plugins --skill tool-design-execution -a claude-code`. Or copy the skill folder (plugins/runtypelabs/skills/skills/tool-design-execution in hashgraph-online/awesome-codex-plugins) into .claude/skills/tool-design-execution in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hashgraph-online/awesome-codex-plugins --skill tool-design-execution -a codex`. Or copy the skill folder (plugins/runtypelabs/skills/skills/tool-design-execution in hashgraph-online/awesome-codex-plugins) into .agents/skills/tool-design-execution in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hashgraph-online/awesome-codex-plugins --skill tool-design-execution -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tool-design-execution, .gemini/skills/tool-design-execution, .github/skills/tool-design-execution and .opencode/skills/tool-design-execution in your project.
SKILL.md names no scripts, command-line tools or credentials: Tool Design Execution is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Tool Design Execution is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Tool Design Execution: Async Jobs And Events (latitude-dev/latitude-llm, 4.7k stars), Technical Job Search (github/awesome-copilot, 40k stars), Csharp Async (github/awesome-copilot, 40k stars) and Async Jobs (yonatangross/orchestkit, 289 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hashgraph-online (a GitHub organization) maintains it in hashgraph-online/awesome-codex-plugins, which has 1,242 GitHub stars. The repository holds 686 skills in this directory. The repository was last updated on October 8, 2026.
Source: hashgraph-online/awesome-codex-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.