CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

netlify-access-control

Picks the right Netlify site-protection layer and disambiguates the three unrelated "auth" concepts users conflate — app-user login (Netlify Identity), site-load gating (Password Protection / project visibility), and dashboard SAML SSO. Use it when asked to password-protect a site or Deploy Preview, make a project private/public, restrict a site to your team, require SSO to view a site, set up company-wide or internal-app SSO, invite users to a private project, or know which team member made a request to a private site. Also use it for SSO-session symptoms on protected sites: "logged out mid-session", 401s after about an hour, or token expiry/refresh questions. Not for wiring auth code — route app-login setup to netlify-identity.

Quality

92%

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-access-control in netlify/context-and-tools

SKILL.md
Quality
Evals
Security

Quality

Content

81%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 high-quality routing body: the disambiguation-first workflow, decision matrix, exact UI paths, and executable SSO-refresh snippet make it fully actionable, and the advanced two-layer material is properly disclosed via a real one-level reference. The one real defect is the duplicated 'Netlify house rules' section, which nearly doubles the disambiguation and constraint content and is the main thing dragging conciseness down.

Suggestions

Remove or merge the appended 'Netlify house rules' section: its rules 3–5, 7–10 restate the three-layer disambiguation, double-login footgun, no-API constraint, internal-app single sign-in guidance, Reviewer remedy, and role permissions already covered in the body — keep one authoritative copy and delete the duplicate.

If the house-rules block must remain for ctx-gen tooling, move it to a references/ file (e.g. references/house-rules.md) and link it, so the SKILL.md body carries the rendered content once.

Tighten time-sensitive details like the 'teams created on/after July 28, 2026' cutoff into the existing Legacy → Credit-based mapping section, so all date/plan-gated migration facts live in one clearly labeled place.

DimensionReasoningScore

Conciseness

The routing sections are dense and earn their tokens, but the appended 'Netlify house rules' section (~60 lines) restates the body nearly verbatim — the three-layer disambiguation, double-login footgun, no-API rule, internal-app single sign-in, Reviewer path, and who-can-change roles all appear twice. This fits the 3 anchor ('mostly efficient but includes some unnecessary explanation or could be tightened'); it doesn't reach 4 because the duplication is a whole padded section rather than minor instances.

3 / 5

Actionability

Fully executable guidance throughout: exact dashboard URLs with anchors ('https://app.netlify.com/projects/{site_name}/configuration/general/#project-visibility'), click-level menu sequences (Project configuration > General > Visitor access), a copy-paste-ready JS snippet that reads 'Netlify-Site-Protection-Expires-In' and reloads before expiry, plan-gated decision rules, and the Legacy → Credit-based mapping. Nothing is left as pseudocode or abstract direction.

5 / 5

Workflow Clarity

As a routing skill its single action is unambiguous and explicitly sequenced: 'First: disambiguate "auth"' with the checkpoint 'Identify which one is meant before recommending anything', then the decision guide mapping each request to a layer, then 'UI paths (the only path — no API)' with a failure protocol ('On failure, report what you tried and stop'). The simple-skill exception applies and no destructive/batch operations are involved, so no validation cap applies.

5 / 5

Progressive Disclosure

Structure is good: well-sectioned body, deep material (the combined Password-Protection + Identity pattern) correctly split into the one-level-deep, clearly signaled 'references/two-layer-pattern.md' (verified to exist), plus docs URLs for out-of-scope detail. It falls short of 5 because the inlined 'house rules' system section duplicates rather than delegates content — a minor organization gap rather than the cleanly split ideal.

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: it states a concrete routing job, enumerates both setup and symptom triggers in natural user language, and explicitly excludes the adjacent netlify-identity skill. Third-person voice is used consistently with no padding or over-claims.

DimensionReasoningScore

Specificity

Multiple concrete actions are named — 'Picks the right Netlify site-protection layer', 'disambiguates the three unrelated "auth" concepts' with each layer identified (Netlify Identity, Password Protection / project visibility, dashboard SAML SSO) — plus explicit negative scope ('Not for wiring auth code — route app-login setup to netlify-identity'). Coverage is comprehensive with no vague filler, matching the 5 anchor and exceeding the 4 anchor's 'minor gaps'.

5 / 5

Completeness

What and when are both explicit: the what is 'Picks the right Netlify site-protection layer and disambiguates the three unrelated "auth" concepts', followed by a concrete 'Use it when' list of setup triggers, symptom triggers, and an explicit exclusion ('Not for wiring auth code'). This matches the 5 anchor exactly and exceeds 4's 'when could be more explicit'.

5 / 5

Trigger Term Quality

Natural user phrasings are covered exhaustively: 'password-protect a site or Deploy Preview', 'make a project private/public', 'restrict a site to your team', 'invite users to a private project', and symptom language ('logged out mid-session', '401s after about an hour', 'token expiry/refresh'). The 4 anchor ('a few natural terms missing') doesn't apply — even symptom phrasing users actually report is included.

5 / 5

Distinctiveness Conflict Risk

Clear Netlify-specific niche with distinct triggers; the only sibling-skill overlap (netlify-identity, for app-user login) is explicitly fenced off with 'Not for wiring auth code — route app-login setup to netlify-identity'. The 4 anchor ('minor overlap risk') doesn't apply since the one real conflict is resolved by an explicit routing boundary.

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-access-control/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.