Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add lukasrepublic/agentic-foundry --skill bullmq-jobsgit clone --depth 1 https://github.com/lukasrepublic/agentic-foundryWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/lukasrepublic/agentic-foundry/bullmq-jobs)<a href="https://agentmods.dev/skills/lukasrepublic/agentic-foundry/bullmq-jobs"><img src="https://agentmods.dev/badge/skills/lukasrepublic/agentic-foundry/bullmq-jobs/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/lukasrepublic/agentic-foundry/bullmq-jobs"><img src="https://agentmods.dev/badge/skills/lukasrepublic/agentic-foundry/bullmq-jobs.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.01516 |
| Opus 5 | $0.00000 | $0.00758 |
| Sonnet 5 | $0.00000 | $0.00303 |
| Haiku 4.5 | $0.00000 | $0.00152 |
Grade A, and why
bullmq-jobs scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 82 lines — stays where its author put it; the contents beside it link to each section on GitHub.
When to trigger
- Authoring producer-side
queue.add()calls inside a route handler or service. - Authoring a queue worker (
Worker) class to process a queue. - Designing or modifying retry policy (backoff, max attempts).
- Idempotency-key design for a job type.
- Configuring a dead-letter queue (DLQ) for failed jobs.
- Queue health monitoring (active, waiting, failed counters).
Procedure
-
Queue definition in
src/queues/<name>.ts: export a singletonQueueinstance with the queue name as a typed constant. The cache/Redis connection is imported from the shared connection module — never inline a connection string. -
Producer call in the route handler or service:
await queue.add(JOB_NAME, data, { jobId: deriveIdempotencyKey(data), attempts: 3, backoff: { type: 'exponential', delay: 1000 }, });Every
queue.add()call has ajobId(idempotency key). Add a// dispatched-to: <queue-name>comment so the consumer is traceable from the producer. -
Consumer in
src/workers/<name>.worker.ts: export aWorkerinstance wrapping the queue name and aprocessorfunction. The processor receives aJob<DataType>and returns a result or throws on unrecoverable failure. -
Retry policy — defaults: exponential backoff, 3 attempts.
{ attempts: 3, backoff: { type: 'exponential', delay: 1000 } }means: first retry after 1 s, second after 2 s, third after 4 s. Override per spec when the job has different SLA requirements. -
Idempotency key: derive deterministically from the job payload so that retrying the same logical operation does not produce duplicate side effects. Example:
jobId = \-${entityId}-${dateStr}`` for a recurring ingestion job. Document the derivation strategy in a comment. -
DLQ pattern: configure
removeOnFail: falseand afailedevent listener that logs the failure and — for critical queues — publishes to an alerting channel. For spec-defined critical queues, a separate DLQ queue (<name>-dlq) receives failed jobs after max attempts via a manualfailedevent handler.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 82 lines · 0 tokens per session scan A f437ecf2c929
bullmq-jobs is a skill published in the GitHub repository lukasrepublic/agentic-foundry (1 stars, last pushed 7d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,516 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
api-design
Describe your API needs in plain English — get OpenAPI 3.0 spec, then optionally generate implementation.
backend-standards
CMDO architecture standards for Node.js/TypeScript backends with strict layer separation.
backend-scaffolding
Scaffolds Node.js/TypeScript backend components with CMDO architecture, driven by component settings.
contract-standards
OpenAPI contract standards for API specification, versioning, and type generation.
contract-scaffolding
Scaffolds OpenAPI contract component with type generation.
cqrs-implementation
Implement Command Query Responsibility Segregation for scalable architectures. Use when separating read and write models, optimizing query performance, or building event-sourced systems.