Install any skill in seconds. Free to start, no credit card required.
Get Started Free →oliver-kriska/oban
Oban job processing — workers, perform/1 (OSS) and process/1 (Pro), queues, cron, retries, unique jobs, idempotency, Oban Pro (Workflow, Batch, Chunk, Smart Engine), Testing.
Passed 21 of 22 test cases with the skill, and 19 of 22 without it.
3 fixed18 passed either way0 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 3 test cases the skill fixed. Same model, same prompt, with and without the skill.
Explain why checking `job.attempt` inside an Oban worker to limit maximum snooze retries under `Oban.Pro.Engines.Smart` causes bugs, and state the proper key to check.
| Checked | Without skill | With skill |
|---|---|---|
| Explains that snoozing rolls back or resets the job attempt counter in Smart Engine. | Missed | Passed |
| Identifies `meta["snoozed"]` as the key to track snooze counts. | Passed | Passed |
The instructions your model reads when the skill loads.
Quick reference for Elixir Oban patterns.
Before applying patterns, check for Oban Pro:
grep -E "oban_pro|oban_web" mix.exs
grep -r "use Oban.Pro.Worker" lib/
grep -r "Oban.Pro.Engines.Smart" config/
If Oban Pro detected, use Pro patterns for ALL new workers:
| Standard Oban | Oban Pro |
|---|---|
use Oban.Worker | use Oban.Pro.Worker |
def perform(%Job{}) | def process(%Job{}) |
Oban.Testing | Oban.Pro.Testing |
| Advisory lock engine | Oban.Pro.Engines.Smart |
Pro features (all optional): args_schema (typed args), Workflows, Batches, Chunks,
Relay, hooks, encryption, deadlines, chaining, Smart Engine (global concurrency + rate limiting).
Pro plugins (DynamicCron, DynamicLifeline, DynamicPruner) enhance OSS equivalents — swap module, don't run both.
See references/oban-pro-basics.md for all patterns and migration guide.
%{user_id: 1} not %{user: %User{}}:ok, {:error, _}, {:cancel, _}, {:snooze, _}%{"user_id" => id} not %{user_id: id}attempt TO LIMIT SNOOZES — Snooze rolls back attempt counter. Use meta["snoozed"] instead. Causes infinite loopstest cases passed, vs 19 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.