CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

netlify-functions

Write, configure, and deploy Netlify serverless functions in TypeScript, JavaScript, or Go. Use this when adding an API endpoint or backend route, adding a contact form handler, wiring auth or Identity signup/login hooks, identifying which Netlify user is calling a private or team-login-protected app, building streaming or AI-proxy responses, scheduling cron jobs, running long background jobs (batch processing/scraping), reacting to deploy or form events, setting up rate limiting or region/memory config, or reading environment variables and secrets inside a function. Covers file locations, the Request/Context/Response handler shape, path routing, config options, and local testing with netlify dev.

Quality

93%

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

The canonical home for this skill is netlify-functions in netlify/context-and-tools

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.

A dense, highly actionable reference that assumes Claude's competence: complete titled code examples for every function variant, platform limits and gotchas stated numerically, and deliberate first-example design. The main weaknesses are the appended house-rules section that duplicates ~60% of its rules from the body, the absence of an explicit ordered build-test-deploy workflow, and a monolithic single-file structure with no reference split. All issues are polish-level; the skill would score near the top of the range after trimming the duplicate section and extracting reference detail.

Suggestions

Trim or deduplicate the appended 'Netlify house rules' section: rules 5–13 restate warnings already present in the body (geo mocking, memory/vcpu, region, included_files, the 4 KB env cap, cron UTC conversion, header scope); keeping each fact in one place would cut roughly 40 lines without losing information.

Add a short ordered workflow near the top or in 'Local testing & deploy' — write the function → run `netlify dev` and exercise it locally (including `--geo=mock`) → deploy via Git or CLI → verify in the Functions tab / streamed logs — so the end-to-end sequence is explicit rather than implied by section order.

Consider moving the platform-event handler tables, region/memory reference detail, and the legacy Lambda-compat section into a references/ file linked from SKILL.md, keeping the main file as a leaner overview.

DimensionReasoningScore

Conciseness

The main body is dense and warning-driven with essentially zero explanation of concepts Claude already knows (no "what is serverless" padding; every line carries Netlify-specific facts like "60s execution, 20 MB response" and the ~4 KB env-var cap). The deduction is the appended ~70-line house-rules section where rules 5–13 restate warnings already given above (geo mocking, memory/vcpu, region, included_files, the 4 KB cap, cron UTC conversion, header scope), which is more than a minor trim candidate. This sits above the 3 anchor (mostly efficient) because the duplication reinforces facts rather than padding with known-concept explanation, but below the 5 anchor because those ~70 lines don't each earn their place.

4 / 5

Actionability

Nearly every function variant ships a complete, copy-paste-ready example with its file path in the code fence title ("netlify/functions/hello.mts", "netlify/functions/daily-digest.mts"), plus executable commands like `netlify dev --geo=mock --country=DE` and `netlify functions:invoke <name>` and runnable `netlify.toml` snippets. Common cases (minimal function, path routing, scheduled, background, identity check, legacy migration) are each covered end to end. The only placeholder is the streaming example's `messages: [/* ... */]`, which is inherent to the example; this matches the 5 anchor rather than the 4 anchor.

5 / 5

Workflow Clarity

The content is well-sequenced for its reference nature: modern default handler first, file locations, then a deliberately minimal first example ("No `config` export. Serves at `/.netlify/functions/hello`") before advanced config, with a dedicated "Local testing & deploy" section covering framework dev servers, `netlify dev`, and deploy via Git/CLI. Redeploy checkpoints are stated for env var, region, and runtime changes, and a diagnostic loop exists for background-flag version skew ("check and upgrade the local tooling"). It falls short of the 5 anchor because there is no explicit ordered write → test → deploy → verify-in-logs workflow with validation feedback loops; it stays above the 3 anchor because sequence and most checkpoints are present and no destructive/batch cap applies.

4 / 5

Progressive Disclosure

No bundle files exist and the body references none (only two external doc URLs), so there are zero nested-reference levels and nothing is buried; navigation is easy via ~15 clearly headed sections ordered from basics to legacy. This matches the 4 anchor (good structure, content mostly appropriately placed, minor organization gaps): the gap is that the single monolithic ~320-line file inlines material that could be split out (platform-event handler tables, region/memory reference detail, the legacy Lambda-compat section). It is above the 3 anchor — whose example is unstructured bulk with unclear references — because sectioning is clean and scannable, but below the 5 anchor, whose profile is a concise overview with well-signaled one-level references.

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.

An exemplary description: concrete verbs, an explicit and extensive "Use this when" trigger list covering both common and edge scenarios, a clear scope summary, and unambiguous Netlify-functions anchoring. It reads as a model of the rubric's top anchors on all four dimensions. No changes needed.

DimensionReasoningScore

Specificity

The description opens with three concrete verbs ("Write, configure, and deploy Netlify serverless functions in TypeScript, JavaScript, or Go") and then lists many specific actions — "building streaming or AI-proxy responses, scheduling cron jobs, running long background jobs", "setting up rate limiting or region/memory config" — plus a concrete scope list ("file locations, the Request/Context/Response handler shape, path routing, config options, and local testing with netlify dev"). This matches the 5 anchor (multiple specific concrete actions, comprehensive coverage); it is above the 4 anchor because the gaps in coverage are negligible for the domain.

5 / 5

Completeness

It explicitly answers both questions: the "what" is "Write, configure, and deploy Netlify serverless functions in TypeScript, JavaScript, or Go" plus the "Covers..." scope sentence, and the "when" is an explicit "Use this when..." clause listing a dozen concrete trigger phrases. This is a direct match to the 5 anchor's pattern (clear what + explicit when with concrete triggers); the 4 anchor would require the when-clause to be less explicit or specific, which it is not.

5 / 5

Trigger Term Quality

Natural user phrasings are comprehensively covered: "adding an API endpoint or backend route", "adding a contact form handler", "wiring auth", "scheduling cron jobs", "reading environment variables and secrets", "netlify dev". These are the words a user would actually say when needing this skill, with synonym coverage (API endpoint/backend route; auth/Identity signup/login hooks; batch processing/scraping for background jobs). Not the 4 anchor: no commonly used natural term for this domain is missing — even the edge cases (user identity on private/team-login-protected apps, deploy or form events) are named.

5 / 5

Distinctiveness Conflict Risk

The niche is unambiguous — every capability and trigger is anchored to "Netlify serverless functions" (e.g., "identifying which Netlify user is calling a private or team-login-protected app", "reacting to deploy or form events"), so it would not fire for general Netlify deploys, static sites, or other platforms' functions. Distinct triggers and product-anchored language match the 5 anchor (clear niche, minimal conflict risk); it sits above the 4 anchor because even closely related skills (e.g., a general Netlify skill) would only marginally overlap.

5 / 5

Total

20

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

netlify/context-and-tools

Path

codex/skills/netlify-functions/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.