← VercelCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
changed
Update to Vercel
Snapshot Sep 30, 2026 · 23:18 UTC · version 0.21.4
Collection source: not recorded for this historical snapshot. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.
Supporting file metadata differs
Newly listed paths: agents/openai.yaml. This compares saved file lists, not package contents; a different collection source can change the list.
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Supporting files
Before
[]
After
[{"relative_path":"agents/openai.yaml","size_in_bytes":112}]
Compare saved observations
Download comparison JSONFull technical diff · 1 changed fields
changed /included_files
BEFORE
[]
AFTER
[
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 112
}
]Full snapshot data
{
"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"
}SHA-256: e6f1688944f96a3a7c435180a993d2adf4a0b10057a01d3b93a0f269e808d10f