CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

netlify-identity

Add user authentication to a Netlify site with @netlify/identity, covering signup/login/logout, Google/GitHub/GitLab/Bitbucket OAuth, server-side getUser() checks, role-based access control, and Identity event functions. Use it when a task involves adding a login or signup form, gating content to members or roles, "auth middleware" or verifying users in Netlify Functions or Edge Functions, handling OAuth or email-confirmation callbacks, accepting user invites, assigning roles at signup, or customizing Identity emails. For locking a whole site to your company or employees-only access, use netlify-access-control instead.

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

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 strong, highly actionable reference: executable examples for every major flow, sharp guardrails against the known footguns (netlify dev, raw OAuth, invite handling, CSRF, role-change delay), and real one-level-deep reference files. The main costs are duplication between the body and the merged house-rules section, no explicit ordered quick-start sequence, and some specialist configuration detail that could live in references.

Suggestions

Deduplicate the 'Netlify house rules' section against the body callouts — the netlify dev limitation, dashboard-only configuration, raw-OAuth prohibition, and role-change-delay rules each appear twice; state each once and cross-reference.

Add a short numbered quick-start sequence (install → wire handleAuthCallback on the landing page → add server-side getUser() check → verify auth flows on a Deploy Preview) so the component sections hang off an explicit ordered workflow with a verification checkpoint.

Move the specialist dashboard detail (email template variables/constraints, audit-log action-name list, Enterprise external-JWT specifics) into a reference file, keeping SKILL.md to the settings that affect code and routing decisions.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious, high-value guidance (v2-only functions, invite handling, CSRF origin checks, role/JWT delay) and wastes almost no tokens explaining known concepts. It misses a 5 mainly because the merged "Netlify house rules" section repeats body callouts nearly verbatim (netlify dev limitation, dashboard-only config, raw-OAuth prohibition, role-change delay), roughly doubling several warnings.

4 / 5

Actionability

Code throughout is copy-paste ready and covers the common cases: install command, signup/login/logout/getUser, oauthLogin + handleAuthCallback with full invite-acceptance flow, server-side v2 function with role check, verifyRequestOrigin CSRF handler, identity event handlers, and both _redirects and netlify.toml RBAC examples. This matches anchor 5; the only omissions (getSettings() shape) are niche and explicitly flagged.

5 / 5

Workflow Clarity

Component sections are logically ordered (client → callback → server-side → events → roles → edge rules → config) with critical sequencing callouts ("handleAuthCallback() is mandatory on your landing page", "must call verifyRequestOrigin(req)") and a numbered 4-step failure protocol. It stops short of anchor 5 because there is no explicit end-to-end ordered sequence with a verification checkpoint (e.g., install → wire callback → verify on a deploy) tying the pieces together.

4 / 5

Progressive Disclosure

Both referenced files exist, are one level deep, and are clearly signaled ("Deep guides... live in references/advanced-patterns.md and references/authorization-and-sessions.md" plus an inline pointer in the events section). Structure is good, but a fair amount of specialist detail (email template constraints, audit-log action names, Enterprise JWT specifics) is inlined in SKILL.md rather than split out, which is anchor 4's 'most content appropriately placed, minor organization gaps' rather than a clean overview.

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: third-person, concrete, and comprehensive, with an explicit 'Use it when...' clause enumerating natural trigger phrases and explicit boundary routing to a sibling skill for site-gating requests. Every clause states a capability or a trigger, with no fluff or over-claiming.

DimensionReasoningScore

Specificity

Lists multiple concrete, specific capabilities — "signup/login/logout", "Google/GitHub/GitLab/Bitbucket OAuth", "server-side getUser() checks", "role-based access control", "Identity event functions" — with no vague filler. Coverage is comprehensive for the domain and matches the anchor-5 example's level of concrete action enumeration; nothing falls to the minor-gaps level of anchor 4.

5 / 5

Completeness

Explicitly answers both questions: what ("Add user authentication to a Netlify site with @netlify/identity, covering signup/login/logout...") and when ("Use it when a task involves adding a login or signup form, gating content...") with concrete trigger phrases. This mirrors the anchor-5 exemplar; anchor 4 ('when' could be more explicit) does not apply since the when-clause enumerates seven concrete scenarios.

5 / 5

Trigger Term Quality

Natural user phrasing is thorough: "adding a login or signup form", "gating content to members or roles", "auth middleware", "verifying users in Netlify Functions or Edge Functions", "email-confirmation callbacks", "accepting user invites", "assigning roles at signup". These are the exact words a user would say, including the quoted "auth middleware" synonym, so it fits anchor 5 rather than anchor 4's 'a few natural terms missing'.

5 / 5

Distinctiveness Conflict Risk

The niche is clear (Netlify site auth via @netlify/identity) and it actively disambiguates: "For locking a whole site to your company or employees-only access, use netlify-access-control instead." Triggers are Netlify-specific, giving minimal conflict risk — a clear fit for anchor 5, above anchor 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

Path

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