CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

daemons

Vercel Daemons guidance — long-running background workers built from a Dockerfile and declared under the `daemons` key in vercel.json. Use when running queue consumers, Celery/Sidekiq/BullMQ workers, workflow workers, or job runners next to an app on Vercel; configuring daemon instances per region, memory, or command; handling SIGTERM; or choosing between Daemons, Functions, Queues, and Workflows.

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

This is a high-quality, information-dense skill body: every section carries non-obvious product facts, the code examples are executable and cover both Node and Python workers, and pitfalls plus scaling-override troubleshooting give real error-recovery guidance. The main weaknesses are moderate redundancy of shutdown-grace and limits facts across four sections and the absence of an explicit verify-instances checkpoint woven into the deployment workflow.

Suggestions

State the 30s default and 0-3600s range of `terminationGracePeriodSeconds` once (e.g., in the configuration reference) and reference it elsewhere, and drop the duplicated memory-size rows from the Limits table in favor of quota-only content — this would remove the repeated facts currently spread across four sections.

Add an explicit verification step to the Quick Start, e.g. after deploying run `vercel daemons ls` / `vercel daemons inspect worker` or check the dashboard Daemons tab to confirm instances are live, turning the scattered observability commands into a workflow checkpoint.

Consider moving the full configuration reference (field table plus naming/rejection rules) into a `references/config.md` file and keeping a minimal field summary in SKILL.md, which would shorten the always-loaded context while keeping detail one level deep.

DimensionReasoningScore

Conciseness

The body is dense with product-specific facts Claude cannot know (beta restrictions, quota behavior, naming rules, exec-form command semantics) and never pads with general knowledge, so it is well above the score-3 anchor. However, the 30-second SIGTERM default and `terminationGracePeriodSeconds` range are restated in the configuration table, Lifecycle, Graceful Shutdown, the Limits table, and Common Pitfalls, and instance memory limits likewise appear in both the config table and the Limits table — trimming this repetition would reach the lean score-5 anchor.

4 / 5

Actionability

Guidance is fully executable and copy-paste ready across the common cases: a complete Dockerfile, vercel.json declarations for both Node and Celery workers, TypeScript and Python SIGTERM handlers, a working `PollingQueueClient` consume loop, local-development docker commands, and version-gated CLI commands. This matches 'copy-paste ready code or commands; specific examples cover the common cases' rather than the score-4 anchor with minor gaps.

5 / 5

Workflow Clarity

The Quick Start gives a clear sequence (add Dockerfile → declare under `daemons` → deploy to production) with the expected outcome stated, and Common Pitfalls plus troubleshooting notes ("If a `vercel.json` change to `instances` seems ignored, check for an override first") provide error recovery. It sits between anchors: verification tooling exists (`vercel daemons inspect`, the Daemons dashboard tab) but is not integrated as an explicit checkpoint in the main flow, so it does not reach the score-5 anchor's explicit validation steps while clearly exceeding the score-3 anchor's missing checkpoints.

4 / 5

Progressive Disclosure

There is no bundle (no references/, scripts/, or assets/), so all content lives in one file; it is well-sectioned with clear headers, clearly labeled external doc links, and well-signaled cross-skill pointers (`⤳ skill: queues`). This fits 'good structure; most content is appropriately placed; minor organization gaps' — the full configuration reference table and its bullet list are inlined where a split into a reference file would ease navigation, keeping it below the score-5 anchor.

4 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is exemplary: it states a concrete what, an explicit and multi-trigger when, natural user vocabulary including framework names, and it actively disambiguates from adjacent Vercel products. It directly matches the pattern of the rubric's good overall examples with no first/second-person voice or padding.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete actions — "running queue consumers, Celery/Sidekiq/BullMQ workers, workflow workers, or job runners", "configuring daemon instances per region, memory, or command", "handling SIGTERM", "choosing between Daemons, Functions, Queues, and Workflows" — with comprehensive coverage of the domain. It clearly matches the 'multiple specific concrete actions; comprehensive coverage' anchor rather than the score-4 anchor, which requires minor gaps in coverage.

5 / 5

Completeness

It explicitly answers both questions: what ("long-running background workers built from a Dockerfile and declared under the `daemons` key in vercel.json") and when ("Use when running queue consumers... configuring daemon instances per region, memory, or command; handling SIGTERM; or choosing between..."). An explicit 'Use when' clause with concrete triggers is present, matching the top anchor rather than the score-4 anchor where 'when' is less specific.

5 / 5

Trigger Term Quality

It includes the natural phrases users would actually say: "queue consumers", "Celery/Sidekiq/BullMQ workers", "job runners", "SIGTERM", "daemons key", "Dockerfile", "background workers", and "per region", covering synonyms and framework names. This matches the comprehensive-coverage anchor; no common variation of the trigger vocabulary is missing.

5 / 5

Distinctiveness Conflict Risk

It is anchored to a clear niche (Vercel, the `daemons` key, vercel.json) and even disambiguates against sibling products ("choosing between Daemons, Functions, Queues, and Workflows"), so it is unlikely to trigger for the wrong skill. This fits 'clear niche with distinct triggers; minimal conflict risk', not the score-4 anchor where overlap with closely related skills remains.

5 / 5

Total

20

/

20

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

13

/

16

Passed

Repository

vercel/vercel-plugin

Path

skills/daemons/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.