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

90%

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

75%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 teaches by executable example and correctly quarantines legacy material — its actionability is top-tier. The two real costs are the appended house-rules section that duplicates content already present in the body, and the absence of any explicit verification step in the local-test→deploy flow.

Suggestions

Remove or deduplicate the appended 'Netlify house rules' section: nearly every rule (geo mocking, memory/vcpu and region warnings, fs.readFile not bundled, ~4 KB env cap, headers-only-static, cron UTC conversion, context.user undefined handling) is already stated in the body above; keep only rules that add new guidance (e.g., the no-stub rule and the background-flag version-skew rule).

Add an explicit verification checkpoint to the local-testing flow, e.g. 'curl the local endpoint (http://localhost:8888/.netlify/functions/<name>) to confirm the response before deploying'.

Consider splitting detail-heavy tail sections (platform-event handler tables, region/memory configuration, and the legacy Lambda-compat example) into one-level-deep reference files so SKILL.md stays a lean overview.

DimensionReasoningScore

Conciseness

The main body is extremely lean — every section is dense, high-signal Netlify-specific fact with no explanation of concepts Claude already knows — but the appended "Netlify house rules" section (~70 lines) restates rules already covered above it (geo mocking under netlify dev, memory/vcpu and region warnings, fs.readFile not bundled, the ~4 KB env-var cap, headers-only-static, cron UTC conversion, context.user undefined handling). That systematic duplication fits 'Mostly efficient but includes some unnecessary explanation or could be tightened' — below 4 because the redundancy is a whole padded section rather than minor instances, above 2 because the primary content explains nothing Claude already knows.

3 / 5

Actionability

Every section ships copy-paste-ready executable code: the minimal default handler, path routing with `export const config`, a complete whoami function handling `context.user` being undefined, streaming, background, scheduled, and typed platform-event handlers, plus concrete commands (`netlify dev --geo=mock --country=DE`, `netlify functions:invoke <name>`, `npm install @netlify/functions`). This matches 'Fully executable; copy-paste ready code or commands; specific examples cover the common cases'; the only placeholder is the intentional comment in the generic background example.

5 / 5

Workflow Clarity

The document progresses in a clear sequence (file locations → minimal function → routing → context/config → advanced modes → limits → local testing → deploy → legacy), and the ⚠️ callouts act as checkpoints (redeploy after env/region changes, verify geo on a deploy, keep functions outside the publish directory). It sits at 'Clear sequence with most checkpoints present; minor validation gaps' — not 5 because the local-test→deploy flow has no explicit verify step (e.g., curl the local endpoint before deploying), and not 3 because sequencing and warnings provide real checkpoints rather than implicit ones.

4 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/), and the single file is well organized with clear ## headers, ⚠️ callouts, and legacy/deprecated material quarantined in a closing section. This fits 'Good structure; most content is appropriately placed... minor organization gaps' — the gap being that at ~315 lines, detail-heavy sections (platform-event handler tables, region/memory specifics, the Lambda-compat example) could live in one-level-deep reference files. Not 3, since nothing is buried and navigation is easy; not 5, since the simple-skill exception (<50 lines, no need for references) does not apply to a file this long.

4 / 5

Total

16

/

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: third-person, concrete about capabilities, and carrying an explicit 'Use this when' clause packed with natural trigger phrases and synonyms covering the full range of use cases. Its Netlify-specific framing makes conflict with neighboring backend/deploy skills unlikely.

DimensionReasoningScore

Specificity

Opens with three concrete actions ("Write, configure, and deploy Netlify serverless functions in TypeScript, JavaScript, or Go") and closes with a concrete coverage list ("file locations, the Request/Context/Response handler shape, path routing, config options, and local testing with netlify dev"). This matches the anchor 'Lists multiple specific concrete actions; comprehensive coverage' — not 4, since there are no notable coverage gaps and no vague language anywhere.

5 / 5

Completeness

Both questions are answered explicitly: 'what' via the opening action sentence plus the 'Covers...' list, and 'when' via the explicit "Use this when adding an API endpoint... or reading environment variables and secrets inside a function" clause with concrete trigger phrases. This is a direct match for the anchor 'Clearly and explicitly answers both what AND when with concrete trigger phrases'; a 4 would require the 'when' to be less explicit or specific, which it is not.

5 / 5

Trigger Term Quality

The 'Use this when' clause enumerates many natural user phrases with synonyms: "adding an API endpoint or backend route", "contact form handler", "wiring auth or Identity signup/login hooks", "scheduling cron jobs", "running long background jobs (batch processing/scraping)", "setting up rate limiting", "reading environment variables and secrets". Coverage is comprehensive across the skill's use cases, matching the top anchor rather than the 'a few natural terms missing' anchor at 4.

5 / 5

Distinctiveness Conflict Risk

The description is tightly scoped to "Netlify serverless functions" with Netlify-specific triggers (Identity signup/login hooks, netlify dev, deploy or form events), giving it a clear niche with minimal conflict risk against generic backend or deployment skills. It matches the anchor 'Clear niche with distinct triggers; minimal conflict risk' rather than the 4 anchor's 'minor overlap risk with closely related skills'.

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

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.