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

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

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

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 strong, highly actionable reference: executable code for every common flow, well-flagged gotchas, and real one-level-deep reference files. The main costs are token efficiency — a duplicated house-rules section and leftover authoring comments — and a few inline sections that belong in the reference files.

Suggestions

Remove or deduplicate the appended "Netlify house rules" section: nearly all ten rules are already stated (with the same wording) in the main body, roughly doubling the token cost of that guidance.

Strip the internal "<!-- gap: ... -->" and "<!-- system: ... -->" comments from the rendered skill, or resolve the documented gaps (getSettings() return shape, handleAuthCallback result.type enumeration) before shipping.

Move the dashboard email-template constraints, audit-log action names, and external JWT provider details into a reference file (e.g., references/configuration.md) to slim the main body toward a true overview.

DimensionReasoningScore

Conciseness

The core body is dense with non-obvious, high-value facts (netlify dev caveat, dashboard-only config, invite token handling, JWT role-refresh delay), but the appended "Netlify house rules" section restates roughly eight rules already stated inline (~40 duplicated lines), and leftover "<!-- gap: ... -->" authoring comments add padding. This fits 'mostly efficient but could be tightened' better than the score-4 anchor's 'minor instances of over-explanation', since the duplication is a whole section rather than isolated sentences.

3 / 5

Actionability

Guidance is copy-paste ready across the common cases: complete TypeScript for signup/login/logout, a handleAuthCallback switch with the invite branch and acceptInvite, v2 function examples with getUser/role checks, verifyRequestOrigin(req) CSRF guard, typed identity event handlers, and concrete _redirects/netlify.toml rules plus exact dashboard URLs and tab anchors. Not the score-4 anchor because the examples are complete and cover the common paths with specific settings and file names.

5 / 5

Workflow Clarity

Multi-step flows are clearly sequenced (invite: callback → detect type 'invite' → collect password → acceptInvite; recovery and SSR flows in the reference files) and there is an explicit error-recovery protocol ("On failure — stop, don't guess" with a numbered surface/diagnose/stop sequence). It sits below the score-5 anchor because the skill is reference-style without validate-then-proceed checkpoints inside each flow (e.g., no verification step after enabling providers or before testing a deploy), though no risky operation lacks a guard.

4 / 5

Progressive Disclosure

Both referenced files exist (references/advanced-patterns.md, references/authorization-and-sessions.md), are exactly one level deep, and are clearly signaled from the body ("Deep guides for SSR/session hydration and authorization live in..."), with the bulk API reference correctly pushed to the npm README. It falls short of the top anchor because the ~250-line body still inlines material that could live in a reference (email template constraints, audit-log action names, external JWT details) and the merged house-rules block duplicates body content, which is a minor organization gap.

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: concrete capability list, natural and varied trigger phrases, explicit what/when, and active disambiguation from a neighboring skill. Third-person voice throughout, with no filler or over-claims.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete capabilities — "signup/login/logout, Google/GitHub/GitLab/Bitbucket OAuth, server-side getUser() checks, role-based access control, and Identity event functions" — with no appreciable gaps in coverage of the library's surface. This matches the 'comprehensive coverage' anchor rather than the score-4 anchor, which expects minor gaps.

5 / 5

Completeness

It explicitly answers both questions: the first sentence states what the skill does, and "Use it when a task involves..." lists concrete when-triggers. It is not the score-4 case because the 'when' clause is fully explicit with multiple concrete trigger phrases, matching the top anchor's exemplar.

5 / 5

Trigger Term Quality

Trigger phrases mirror what users actually say: "adding a login or signup form", "gating content to members or roles", "auth middleware", "verifying users in Netlify Functions or Edge Functions", "accepting user invites", "assigning roles at signup". Coverage includes natural synonyms (login/signup, members/roles) and is comprehensive rather than merely good.

5 / 5

Distinctiveness Conflict Risk

The niche is tightly pinned to "a Netlify site with @netlify/identity", and it preempts the nearest overlap: "For locking a whole site to your company or employees-only access, use netlify-access-control instead." Distinct triggers plus an explicit boundary to a sibling skill give minimal conflict risk.

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

agent-plugin/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.