{"id":24835,"plugin_id":"plugin_connector_690a90ec05c881918afb6a55dc9bbaa1","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:18:43.669Z","digest":"e6f1688944f96a3a7c435180a993d2adf4a0b10057a01d3b93a0f269e808d10f","against":5231,"payload":{"name":"cron-jobs","description":"Vercel Cron Jobs configuration and best practices. Use when adding, editing, or debugging scheduled tasks in vercel.json.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":112}],"skill_md_contents":"---\nname: cron-jobs\ndescription: Vercel Cron Jobs configuration and best practices. Use when adding, editing, or debugging scheduled tasks in vercel.json.\nmetadata:\n  priority: 6\n  docs:\n    - \"https://vercel.com/docs/cron-jobs\"\n  sitemap: \"https://vercel.com/sitemap/docs.xml\"\n  pathPatterns:\n    - 'vercel.json'\n    - 'apps/*/vercel.json'\n  bashPatterns: []\n---\n\n# Vercel Cron Jobs\n\nYou are an expert in Vercel Cron Jobs — scheduled serverless function invocations configured in `vercel.json`.\n\n## Configuration\n\nCron jobs are defined in the `crons` array of `vercel.json`:\n\n```json\n{\n  \"crons\": [\n    {\n      \"path\": \"/api/cron/daily-digest\",\n      \"schedule\": \"0 8 * * *\"\n    }\n  ]\n}\n```\n\n## Key Rules\n\n1. **Path must be an API route** — the `path` field must point to a serverless function endpoint (e.g., `/api/cron/...`)\n2. **Schedule uses standard cron syntax** — five-field format: `minute hour day-of-month month day-of-week`\n3. **Verify the request origin** — always check the `Authorization` header matches `CRON_SECRET`:\n\n```ts\n// app/api/cron/route.ts\nexport async function GET(request: Request) {\n  const authHeader = request.headers.get(\"authorization\");\n  if (authHeader !== `Bearer ${process.env.CRON_SECRET}`) {\n    return new Response(\"Unauthorized\", { status: 401 });\n  }\n  // ... your scheduled logic\n  return Response.json({ ok: true });\n}\n```\n\n4. **Hobby plan limits** — max 2 cron jobs, minimum interval of once per day\n5. **Pro plan** — up to 40 cron jobs, minimum interval of once per minute\n6. **Max duration** — cron-triggered functions follow normal function duration limits\n\n## Common Patterns\n\n- **Daily digest**: `\"0 8 * * *\"` (8:00 AM UTC daily)\n- **Every hour**: `\"0 * * * *\"`\n- **Every 5 minutes** (Pro): `\"*/5 * * * *\"`\n- **Weekdays only**: `\"0 9 * * 1-5\"`\n\n## Debugging\n\n- Check deployment logs for cron execution results\n- Use `vercel logs --follow` to watch cron invocations in real time\n- Cron jobs only run on production deployments, not preview deployments\n\n## References\n\n- [Cron Jobs documentation](https://vercel.com/docs/cron-jobs)\n"},"changes":[{"path":"/included_files","type":"changed","before":[],"after":[{"relative_path":"agents/openai.yaml","size_in_bytes":112}]}],"summary":"Fields changed: 1. /included_files.","summary_kind":"deterministic","summary_metadata":{}}