CtrlK
BlogDocsLog inGet started
Tessl Logo

netlify-forms

Serverless form handling on Netlify-hosted sites — detects HTML forms at deploy time, stores submissions, filters spam, and sends notifications. Use when adding a contact form, lead-capture form, file-upload form, or newsletter signup to a Netlify site; wiring AJAX form submission; setting up a custom thank-you page; adding a honeypot or reCAPTCHA to a form; getting forms working in Next.js, Nuxt, SvelteKit, Astro, or Gatsby; reading form submissions via the Netlify API; or debugging missing submissions and forms that silently fail to register.

70

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

71%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.

Highly actionable reference content with executable examples and genuinely hard-won gotchas (deploy-time HTML parsing, skeleton file for SSR, extensionless action paths, Akismet false positives). The main defects are build-process artifacts: a duplicated 'house rules' section, leaked merge metadata, and a monolithic all-inline layout with no reference files.

Suggestions

Remove the duplicated 'Netlify house rules' section (lines 167-198) and the stray ctx-gen/manifest comments — all five of its rules are already stated verbatim in the body sections above it.

Add an inline verification step to each setup workflow (e.g., after deploying a framework form: 'confirm the form appears in Forms > Active forms; if not, check the skeleton file field names') so validation is part of the flow, not only the debugging section.

Split long-tail detail (submission-summary field rules, API pagination notes, notification setup) into a references/ file and keep SKILL.md as the overview, restoring the progressive-disclosure structure.

DimensionReasoningScore

Conciseness

The body is dense and lean with no conceptual over-explanation, but the trailing 'Netlify house rules' section (lines 167-198) duplicates verbatim guidance already given above — SSR POST-to-skeleton-file, exact field-name matching, Astro on-demand routes, Akismet false positive, extensionless action paths — and stray build metadata ('merged by ctx-gen', 'manifest commit a28cd46') leaked into the file. This is more than 'minor instances that could be trimmed' (4) but the padding is confined to one section rather than 'several padded sections' (2).

3 / 5

Actionability

Copy-paste-ready code for every common case: static HTML form, skeleton file, JSX form, AJAX submission, file upload, honeypot, and subject line, plus concrete limits (8 MB, 30 s, one file per field) and a prioritized debugging checklist. It matches the 'fully executable; copy-paste ready code; specific examples cover the common cases' anchor.

5 / 5

Workflow Clarity

Each task path is clearly laid out with prerequisites called out ('Enable form detection... Takes effect on the next deploy') and a debugging section that is an explicit verification checklist with error-recovery guidance. It falls short of 5 because the primary setup flows (adding a static or framework form) lack an inline 'verify the form registered' checkpoint — validation lives in a separate debugging section rather than in each workflow.

4 / 5

Progressive Disclosure

Section headers are clear and the only external links are one level deep and well-signaled (Next.js v5 docs, the open-api.netlify.com submissions reference), but no bundle files exist and everything is inlined in a ~195-line body — including a merged 'house rules' block and build comments that clearly belong in a separate source file (the file's own comment says it is merged in by ctx-gen and duplicated from earlier sections). This sits between 'content that should be separate is inline' (3) and 'mostly clear organization gaps' (4).

3 / 5

Total

15

/

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 third-person capability statement followed by an explicit, exhaustive 'Use when...' clause covering forms of all types, frameworks, API access, and debugging scenarios. Every clause is a distinct trigger with no fluff or over-claims.

DimensionReasoningScore

Specificity

The description lists multiple concrete, comprehensive actions — 'detects HTML forms at deploy time, stores submissions, filters spam, and sends notifications' — in third-person voice, matching the 'lists multiple specific concrete actions' anchor. It is not 4 because coverage shows no gaps across detection, storage, spam filtering, and notifications.

5 / 5

Completeness

The first sentence explicitly states what the skill does, and the explicit 'Use when adding a contact form... or debugging missing submissions and forms that silently fail to register' clause gives concrete trigger phrases. It clearly matches the 'explicitly answers both what AND when with concrete trigger phrases' anchor rather than 4, where the 'when' would be less specific.

5 / 5

Trigger Term Quality

Trigger terms are comprehensive and natural: 'contact form', 'lead-capture form', 'file-upload form', 'newsletter signup', 'AJAX form submission', 'thank-you page', 'honeypot', 'reCAPTCHA', 'Next.js, Nuxt, SvelteKit, Astro, or Gatsby', 'debugging missing submissions'. A user needing this skill would phrase their request in these exact terms; it is not 4 because no common synonym or variation is missing.

5 / 5

Distinctiveness Conflict Risk

The niche is tightly scoped to 'Serverless form handling on Netlify-hosted sites' and every use-when clause anchors to 'a Netlify site', giving clear niche triggers with minimal conflict risk. Framework mentions (Next.js, Nuxt, etc.) stay Netlify-form-scoped, so it does not fall to 4'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
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.