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 agentmods add skills/andresharpe/dotbot/setup-background-jobnpx skills add andresharpe/dotbot --skill setup-background-jobgit clone --depth 1 https://github.com/andresharpe/dotbotWrote 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/andresharpe/dotbot/setup-background-job)<a href="https://agentmods.dev/skills/andresharpe/dotbot/setup-background-job"><img src="https://agentmods.dev/badge/skills/andresharpe/dotbot/setup-background-job.svg" alt="Measured on agentmods" 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 | $0.00022 | $0.01172 |
| Opus 5 | $0.00011 | $0.00586 |
| Sonnet 5 | $0.00004 | $0.00234 |
| Haiku 4.5 | $0.00002 | $0.00117 |
Grade A, and why
setup-background-job 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 4d 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 — 208 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Setup Background Job
Guide for creating scheduled background jobs using Quartz.NET.
When to Use
- Periodic tasks (email polling, data sync, cleanup)
- Scheduled operations (daily reports, reminders)
- Recurring background processing
- Cron-based job scheduling
Job Implementation
public class EmailPollingJob : IJob
{
private readonly IEmailService _emailService;
private readonly ILogger<EmailPollingJob> _logger;
public EmailPollingJob(IEmailService emailService, ILogger<EmailPollingJob> logger)
{
_emailService = emailService;
_logger = logger;
}
public async Task Execute(IJobExecutionContext context)
{
_logger.LogInformation("Email polling job started");
try
{
await _emailService.PollNewEmails();
_logger.LogInformation("Email polling completed successfully");
}
catch (Exception ex)
{
_logger.LogError(ex, "Error polling emails");
throw new JobExecutionException(ex, refireImmediately: false);
}
}
}
Job Registration
// In Program.cs or Startup.cs
services.AddQuartz(q =>
{
q.UseMicrosoftDependencyInjectionJobFactory();
// Define the job
var jobKey = new JobKey("EmailPollingJob");
q.AddJob<EmailPollingJob>(opts => opts.WithIdentity(jobKey));
// Create a trigger
q.AddTrigger(opts => opts
.ForJob(jobKey)
.WithIdentity("EmailPollingTrigger")
.WithCronSchedule("0 */5 * * * ?")); // Every 5 minutes
});
services.AddQuartzHostedService(q => q.WaitForJobsToComplete = true);
Cron Expressions
Common patterns:
0 0 8 * * ? - Every day at 8:00 AM
0 */5 * * * ? - Every 5 minutes
0 30 17 * * ? - Every day at 5:30 PM
0 0 0 ? * SUN - Every Sunday at midnight
0 0 * * * ? - Every hour
0 */30 * * * ? - Every 30 minutes
0 0 1 1 * ? - First day of month at 1:00 AM
Format: second minute hour day-of-month month day-of-week
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.
- 4d ago First seen · 208 lines · 22 tokens per session scan A 6d728d0330e7
setup-background-job is a skill published in the GitHub repository andresharpe/dotbot (54 stars, last pushed 7d ago), licensed MIT. It adds 22 tokens to every session and 1,172 once invoked, about $0.0001 per session on Opus 5. 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-30.
Other skills, from other repositories
memorix-mini-skills
Use when durable project knowledge, gotchas, workflows, or repeated fixes should become reusable agent guidance instead of ordinary memory.
memorix-sessions
Use when resuming work, preparing handoff context, binding an HTTP control-plane project, or deciding whether sessionstart is useful.
memorix-troubleshooting
Use when Memorix MCP, setup, project binding, HTTP control plane, hooks, skills, or agent integration is missing, stale, or failing.
video-perception
Use when the user mentions a video file (.mp4, .mov, .avi, .mkv, .webm), a YouTube URL, asks to watch/analyze/review a video, or references video content in conversation.
tsa-edit-then-verify
The full edit-and-verify loop mandated by CLAUDE.md and docs/agent-tooling-gap-report.md:58. Pre-edit gate (edit action=safe + baseline health action=file) → LLM edits → post-edit verify (health action=file diff + edit action=impact + scoped verificationcommand). Replaces "edit then run the whole pytest suite" (5 min)…
tsa-pr-review
AST-grounded PR / diff review. One workflow → per-file risk ranking, blast radius per changed symbol, the exact pytest command to gate merge, any architecture-constraint violations, and a final BLOCK / REVIEW / APPROVE verdict — in 1–2k tokens and 4–6 MCP calls. Goes beyond a generic LLM diff-read because only TSA's…