Agent skill

Async Jobs

by yonatangross in yonatangross/orchestkit

Async job processing patterns for background tasks, Celery workflows, task scheduling, retry strategies, and distributed task execution.

MITAuto-check passedBackend & APIs

Install Async Jobs

skills CLI
$ npx skills add yonatangross/orchestkit --skill async-jobs -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install yonatangross/orchestkit async-jobs --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/yonatangross/orchestkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/skills/async-jobs .claude/skills/async-jobs && rm -rf skills-src

Use ~/.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/

Facts

Skill name
async-jobs
GitHub stars
292
Token cost
~2.4k tokens
SKILL.md length
794 words
Files
16 (incl. references)
Skills in repo
108
Repo updated
First seen
Licence
MIT

At a glance

Async job processing patterns for background tasks, Celery workflows, task scheduling, retry strategies, and distributed task execution.

  • Implementing background job processing
  • SKILL.md covers Quick Reference, Quick Start, Upstream coverage (do not… and Configuration, plus 13 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Scheduled task systems

What it does

Async Jobs is an agent skill from yonatangross/orchestkit. Async job processing patterns for background tasks, Celery workflows, task scheduling, retry strategies, and distributed task execution. Use when implementing background job processing, task queues, or scheduled task systems.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files, including reference files (for example `metadata.json`, `references/anti-patterns.md` and `references/capability-details.md`). Compatibility notes: Claude Code 2.1.277+.

It sits in Backend & APIs, covering Background jobs. It works with Temporal. The repository describes itself as: The Complete AI Development Toolkit for Claude Code. 106 skills, 36 agents, 171 hooks. Install ork for stable (v9.x), or ork-alpha for the v10 line, which ships daily. The licence is MIT.

When your agent uses it

  • Implementing background job processing
  • Scheduled task systems

Example prompts

  • “/async-jobs”

Requirements

  • Python 3
  • Compatibility (from SKILL.md): Claude Code 2.1.277+.
  • Pre-approved tools (allowed-tools): Read, Glob, Grep, WebFetch, WebSearch

What it can do on your machine

Read from SKILL.md and the folder at commit e4ff8d9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Glob
    • Grep
    • WebFetch
    • WebSearch

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.celeryq.dev
    • redis.io
    • django-celery-beat.readthedocs.io
    • flower.readthedocs.io
    • arq-docs.helpmanual.io
    • fastapi.tiangolo.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Claude Code 2.1.277+.

    From compatibility in the SKILL.md frontmatter.

Context cost

Async Jobs loads about 2.4k tokens when it runs, and up to ~7.2k if it reads all its reference files. Until then it costs about 59 tokens; SKILL.md has 794 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~59
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.2k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from yonatangross/orchestkit at commit e4ff8d9, republished under its MIT licence (© yonatangross). 794 words, ~2,448 tokens.

Download SKILL.mdSave it as .claude/skills/async-jobs/SKILL.md (or your agent's skills folder). This skill also uses 15 other files; get the full folder from GitHub.
name
async-jobs
description
Async job processing patterns for background tasks, Celery workflows, task scheduling, retry strategies, and distributed task execution. Use when implementing background job processing, task queues, or scheduled task systems.
allowed-tools
Read, Glob, Grep, WebFetch, WebSearch
compatibility
Claude Code 2.1.277+.
license
MIT
user-invocable
false
disable-model-invocation
true
metadata.owner-agent
python-performance-engineer
metadata.category
workflow-automation
metadata.version
2.0.0
metadata.author
OrchestKit
metadata.complexity
medium
metadata.tags
async, jobs, celery, background-tasks, scheduling, queues

Async Jobs

Background task processing with Celery, ARQ, Redis and Temporal. This skill is a wrapper, not a manual: Celery and ARQ document their own product well, so what lives here is our delta, the thresholds, working config, ordering constraints and tool-choice rules we picked. Product mechanics are linked, not restated.

Start with Read("references/ork-delta.md").

Quick Reference

TopicWhere our part lives
Configurationreferences/celery-config.md, rules/jobs-task-queue.md
Task Routingreferences/ork-delta.md (queue taxonomy, prefetch tiers, Redis priority)
Canvas Workflowsrules/celery-canvas.md
Retry Strategiesreferences/ork-delta.md (backoff cap, idempotency layers, lock TTLs)
Schedulingrules/jobs-scheduling.md, references/ork-delta.md (beat process model)
Monitoringreferences/ork-delta.md (alert thresholds, histogram buckets)
Result Backendsrules/jobs-monitoring.md, references/ork-delta.md (return contract)
ARQ Patternsrules/jobs-task-queue.md, references/ork-delta.md (budgets, pool ownership)
Temporal Workflowsrules/temporal-workflows.md
Temporal Activitiesrules/temporal-activities.md

10 topic areas, 6 rule files in rules/, house delta in references/ork-delta.md.

Quick Start

python
@app.task(bind=True, max_retries=3, default_retry_delay=60)
def process_payment(self, order_id: str):
    try:
        return gateway.charge(order_id)
    except TransientError as exc:
        raise self.retry(exc=exc, countdown=2 ** self.request.retries * 60)

Load more examples: Read("references/quick-start-examples.md") for Celery retry task and ARQ/FastAPI integration patterns.

Upstream coverage (do not restate)

Fetch these when you need product mechanics. The right-hand column is the part we keep, because it is a house threshold, a working config or an ordering constraint that upstream cannot know.

TopicFirst-party sourceHouse subset stays in
Celery settings, serializers, time limits, worker flagshttps://docs.celeryq.dev/en/stable/userguide/configuration.html and .../optimizing.htmlreferences/celery-config.md, rules/jobs-task-queue.md
Queue declarations, router classes, Redis priority mechanicshttps://docs.celeryq.dev/en/stable/userguide/routing.htmlreferences/ork-delta.md
chain / group / chord / signature semanticshttps://docs.celeryq.dev/en/stable/userguide/canvas.htmlrules/celery-canvas.md keeps the house canvas subset. Its si()-in-chords guidance is UNVERIFIED and contested: confirm the argument-passing behaviour against the upstream canvas page before relying on it
autoretry_for, retry_backoff, Reject, task base classeshttps://docs.celeryq.dev/en/stable/userguide/tasks.htmlreferences/ork-delta.md, rules/jobs-task-queue.md
Beat schedules, crontab syntax, DatabaseSchedulerhttps://docs.celeryq.dev/en/stable/userguide/periodic-tasks.html and https://django-celery-beat.readthedocs.io/en/latest/rules/jobs-scheduling.md keeps our beat_schedule shapes; references/ork-delta.md keeps the process model
Flower flags, inspect, signal nameshttps://docs.celeryq.dev/en/stable/userguide/monitoring.html, https://docs.celeryq.dev/en/stable/userguide/signals.html, https://flower.readthedocs.io/en/latest/config.htmlreferences/ork-delta.md
Result backend, AsyncResult, custom stateshttps://docs.celeryq.dev/en/stable/userguide/configuration.htmlrules/jobs-monitoring.md keeps our status endpoints and update_state() usage
Per-task rate_limit, control.rate_limit, Redis Luahttps://docs.celeryq.dev/en/stable/userguide/workers.html, https://redis.io/docs/latest/develop/programmability/eval-intro/references/ork-delta.md
ARQ WorkerSettings, enqueue_job, _defer_by / _defer_until, Job statushttps://arq-docs.helpmanual.io/rules/jobs-task-queue.md keeps the worker skeleton; references/ork-delta.md keeps the budgets
FastAPI lifespan and dependency wiringhttps://fastapi.tiangolo.com/advanced/events/references/ork-delta.md
Distributed locks with SET NX EXhttps://redis.io/docs/latest/commands/set/references/ork-delta.md

Configuration

Load: Read("references/celery-config.md").

DecisionRecommendation
SerializerJSON (never pickle)
Ack modeLate ack (task_acks_late=True)
Prefetch1 for fair, 4-8 for throughput
Time limitsoft < hard (540 / 600)
TimezoneUTC always

Task Routing

DecisionRecommendation
Queue count5: critical / high / default / low / bulk
Priority levels0-9, with all four Redis priority switches set together
Worker assignmentDedicated worker per queue
Prefetch1 critical, 2 high, 4 default, 8 low/bulk
RoutingRouter class once past 5 routing rules

Canvas Workflows

Load: Read("rules/celery-canvas.md").

DecisionRecommendation
SequentialChain with s()
ParallelGroup for independent tasks
Fan-inChord (all header tasks must succeed for the body to run)
Ignore inputUse si() immutable signature
Error in chainReject stops the chain, retry continues it
Partial failuresReturn an error dict from chord header tasks
Show full SKILL.md (336 more words)Show less

Retry Strategies

DecisionRecommendation
Retry delayExponential backoff, jitter on, capped at 600s
Max retries3-5 for transient, 0 for permanent
IdempotencyRedis marker (86400s TTL) plus the vendor idempotency key
Failed tasksDLQ for manual review
SingletonRedis lock with a TTL longer than the hard time limit

Scheduling

Load: Read("rules/jobs-scheduling.md").

DecisionRecommendation
Schedule typeCrontab for time-based, float interval for frequency
DynamicDatabaseScheduler (django-celery-beat)
OverlapRedis lock, 3600s default and 7200s for long jobs
Beat processSeparate process; embedded --beat is development only
TimezoneUTC always

Monitoring

DecisionRecommendation
DashboardFlower with persistent storage
MetricsPrometheus wired to task_prerun / task_postrun / task_failure
HealthBroker reachable, at least one worker, queue depths
Alertingcritical > 100, default > 5000, workers < 1
AutoscaleQueue depth > 500

Result Backends

Load: Read("rules/jobs-monitoring.md").

DecisionRecommendation
Status storageRedis result backend, status and small JSON only
Large resultsS3 or database, task returns a reference dict
ProgressCustom states with update_state()
Result queryAsyncResult with state checks

ARQ Patterns

Load: Read("rules/jobs-task-queue.md").

DecisionRecommendation
Simple asyncARQ (native async), max_jobs=10, job_timeout=300
Pool ownershipFastAPI lifespan, never a per-request create_pool
Complex workflowsCelery (chains, chords, DLQ, per-task rate limits)
In-process quickFastAPI BackgroundTasks, under 30s, non-critical only
LLM workflowsLangGraph, not Celery

Tool Selection

Load: Read("references/quick-start-examples.md") for the full tool comparison table (ARQ, Celery, RQ, Dramatiq, FastAPI BackgroundTasks).

Anti-Patterns (FORBIDDEN)

Load details: Read("references/anti-patterns.md") for the full list.

Key rules: never run long tasks in request handlers, never block on results inside tasks, never store large results in Redis, always use idempotency for retried tasks.

Temporal Workflows

Load: Read("rules/temporal-workflows.md").

DecisionRecommendation
Workflow IDBusiness-meaningful, idempotent
DeterminismUse workflow.random(), workflow.now()
I/OAlways via activities, never directly

Temporal Activities

Load: Read("rules/temporal-activities.md").

DecisionRecommendation
Activity timeoutstart_to_close for most cases
Error handlingNon-retryable for business errors
TestingWorkflowEnvironment.start_local() for integration tests
  • ork:python-backend - FastAPI, asyncio, SQLAlchemy patterns
  • ork:langgraph - LangGraph workflow patterns (use for LLM workflows, not Celery)
  • ork:distributed-systems - Resilience patterns, circuit breakers
  • ork:monitoring-observability - Metrics and alerting

Capability Details

Load details: Read("references/capability-details.md") for the keyword index and problem-to-capability mapping.

© yonatangross, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 15 other files (references) in src/skills/async-jobs of yonatangross/orchestkit.

  • SKILL.md
  • metadata.json
  • references/anti-patterns.md
  • references/capability-details.md
  • references/celery-config.md
  • references/ork-delta.md
  • references/quick-start-examples.md
  • rules/_sections.md
  • rules/_template.md
  • rules/celery-canvas.md
  • rules/jobs-monitoring.md
  • rules/jobs-scheduling.md
  • rules/jobs-task-queue.md
  • rules/temporal-activities.md
  • rules/temporal-workflows.md
  • test-cases.json

Open the folder on GitHubat commit e4ff8d9

Compare with similar skills

Async Jobs 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.

Async Jobs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Async Jobs this skillyonatangross/orchestkit292—~2.4kAutomated safety check: PassMIT
Temporal Developertemporalio/skill-temporal-developer230—~2.5kAutomated safety check: PassMIT
Using Message Queuesancoleman/ai-design-components525—~2.9kAutomated safety check: PassMIT
Trigger.dev Background Taskspapermark/papermark9.2k—~2.1kAutomated safety check: PassCustom licence
Agent Advisoraws/agent-toolkit-for-aws2.8k—~4.9kAutomated safety check: PassApache-2.0
Frappe App Devfrappe/skills147—~943Automated safety check: PassNone

Similar skills

  • Temporal Developer

    temporalio/skill-temporal-developer

    Official

    Develop, debug, and manage Temporal applications across Python, TypeScript, Go, Java, .NET, Ruby, and Rust.

    230 GitHub stars~2.5k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Using Message Queues

    ancoleman/ai-design-components

    Async communication patterns using message brokers and task queues.

    525 GitHub stars~2.9k tokensUpdated 10 mo ago
    Backend & APIsAuto-check passed
  • Trigger.dev Background Tasks

    papermark/papermark

    Guides building durable background tasks, scheduled jobs and queues with Trigger.dev, including retries, waits, idempotency and concurrency limits.

    9.2k GitHub stars~2.1k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Agent Advisor

    aws/agent-toolkit-for-aws

    Official

    Entry point for AI-agent work on AWS: pick a runtime, plan a migration for existing workloads, and build an executable POC — one phased flow.

    2.8k GitHub stars~4.9k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Frappe App Dev

    frappe/skills

    Builds full-stack Frappe Framework applications end-to-end. An agent skill from frappe/skills.

    147 GitHub stars~943 tokensUpdated 2 days ago
    Backend & APIsAuto-check passed
  • Schked

    bibendi/schked

    Guide for working with Schked, a Ruby recurring-job scheduler built on top of rufus-scheduler.

    138 GitHub stars~454 tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed

More from yonatangross/orchestkit

All 107 skills in this repo
  • API Design

    yonatangross/orchestkit

    API contract design for REST and GraphQL, covering resource shape, URL and header versioning with deprecation windows, RFC 9457 Problem Details error handling, and OpenAPI specs.

    292 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Architecture Decision Record

    yonatangross/orchestkit

    ADR templates in the Nygard format with context, decision, consequences, and alternatives.

    292 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Audit Full

    yonatangross/orchestkit

    Single-pass codebase analysis leveraging a 1M-token context window for comprehensive security scanning, architecture review, and dependency auditing.

    292 GitHub stars~3.5k tokensUpdated today
    Auto-check: notes
  • Code Review Playbook

    yonatangross/orchestkit

    Structured review processes, conventional comments, language-specific checklists, and feedback templates.

    292 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Create PR

    yonatangross/orchestkit

    Creates GitHub pull requests with pre-flight validation, conventional title formatting, and structured summary generation.

    292 GitHub stars~4.5k tokensUpdated today
    Auto-check: notes
  • Explore

    yonatangross/orchestkit

    Multi-angle codebase exploration spawning 3-5 parallel agents for code structure, data flow, architecture patterns, and health assessment.

    292 GitHub stars~3.9k tokensUpdated today
    Auto-check: notes

Works with

Questions about Async Jobs

What does Async Jobs do?

Async job processing patterns for background tasks, Celery workflows, task scheduling, retry strategies, and distributed task execution. Async Jobs is an agent skill from yonatangross/orchestkit. Async job processing patterns for background tasks, Celery workflows, task scheduling, retry strategies, and distributed task execution.

When should I use Async Jobs?

Async Jobs fits situations like: implementing background job processing; scheduled task systems.

How do I install Async Jobs in Claude Code?

Run `npx skills add yonatangross/orchestkit --skill async-jobs -a claude-code`. Or copy the skill folder (src/skills/async-jobs in yonatangross/orchestkit) into .claude/skills/async-jobs in your project. Claude Code loads it when a task matches its description.

How do I install Async Jobs in Codex?

Run `npx skills add yonatangross/orchestkit --skill async-jobs -a codex`. Or copy the skill folder (src/skills/async-jobs in yonatangross/orchestkit) into .agents/skills/async-jobs in your project. Codex loads it when a task matches its description.

Can I use Async Jobs in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yonatangross/orchestkit --skill async-jobs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/async-jobs, .gemini/skills/async-jobs, .github/skills/async-jobs and .opencode/skills/async-jobs in your project.

What does Async Jobs need to run?

SKILL.md names no scripts, command-line tools or credentials: Async Jobs is instructions for the agent only. Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Glob, Grep, WebFetch, WebSearch. Compatibility (from SKILL.md): Claude Code 2.1.277+..

Does Async Jobs access the network?

SKILL.md names 6 domains. As links in the text: docs.celeryq.dev, redis.io, django-celery-beat.readthedocs.io, flower.readthedocs.io, arq-docs.helpmanual.io and fastapi.tiangolo.com. This is read from the text; nothing was executed.

Is Async Jobs safe to install?

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.

What licence does Async Jobs use?

Async Jobs is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Async Jobs use?

About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.7k tokens, read only when the agent opens those files.

What are the alternatives to Async Jobs?

Skills that share tags, products or a category with Async Jobs: Temporal Developer (temporalio/skill-temporal-developer, 230 stars), Using Message Queues (ancoleman/ai-design-components, 525 stars), Trigger.dev Background Tasks (papermark/papermark, 9.2k stars) and Agent Advisor (aws/agent-toolkit-for-aws, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Async Jobs?

yonatangross (a GitHub user) maintains it in yonatangross/orchestkit, which has 292 GitHub stars. The repository holds 108 skills in this directory. The repository was last updated on October 10, 2026.

Source: yonatangross/orchestkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.