CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

configuration-oauth-providers

Configure external OAuth/OIDC login providers, credentials, scopes, issuer/audience trust, JWKS, PKCE, portal enablement, and named pending-login storage. Named relying-party registrations and portal OPs belong to OAuth applications.

Quality

82%

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

90%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 configuration reference with exemplary token efficiency and concrete, verified fixtures and constraints. Its main weaknesses are the absence of an explicitly ordered procedure for adding a provider and some reference-grade provider detail that could be split out of the overview file.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence: no basic OAuth/Caddyfile concept explanations, and nearly every sentence carries non-obvious, code-backed facts (per-driver scope defaults, logout_url alias rejection, retry-interval fallback behavior). Not 4 because no section contains trimmable over-explanation; every token earns its place for a skilled operator.

5 / 5

Actionability

Fully executable guidance throughout: copy-paste-ready Caddyfile blocks (full provider definitions, shortcut form, portal enablement, transform matching), the exact supported-driver list, per-driver required fields, the id-token-cookie grammar with defaults ("AUTHP_ID_TOKEN"), and concrete fixture paths. Not 4 because the examples cover the common cases end-to-end with no gaps.

5 / 5

Workflow Clarity

The Shape example, per-driver requirements, and the ten-item Review Checklist give clear validation checkpoints, but the procedure for adding a provider (write block → add driver-required fields → enable in portal → validate against checklist) is implicit across sections rather than an explicitly ordered sequence. Not 5 because no ordered steps or error-recovery loop are laid out; not 3 because the checklist provides explicit checkpoints and the operation is not destructive/batch.

4 / 5

Progressive Disclosure

Two one-level-deep references (shared-parser.md, shared-login-storage.md) are present in the bundle, each well-signaled with a when-to-read purpose statement, keeping grammar inventory and storage detail out of the overview. Not 5 because reference-grade detail such as per-driver scope defaults and Provider-Side Claim Notes remains inline in SKILL.md, which could be split into a provider-notes reference.

4 / 5

Total

18

/

20

Passed

Description

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

A specific, well-scoped description with strong distinctiveness and good natural keywords, weakened mainly by the absence of any explicit when-to-use trigger clause. It reads as a capability inventory plus a routing boundary rather than a complete what+when statement.

Suggestions

Add an explicit trigger clause, e.g. "Use when configuring `oauth identity provider <name>` blocks or named `oauth login store` declarations in the Caddyfile" — this directly lifts completeness from 3 toward 4-5.

Include the natural term "identity provider" (the actual Caddyfile directive users would quote) alongside "login providers", since that phrase is what a user would say when asking for this skill.

Consider naming one or two representative drivers (e.g. Azure, GitHub, Google) so users describing a specific provider login setup naturally match this description.

DimensionReasoningScore

Specificity

The description lists many concrete configurable items — "login providers, credentials, scopes, issuer/audience trust, JWKS, PKCE, portal enablement, and named pending-login storage" — but all hang off a single generic verb ("Configure"), and driver-specific setup or troubleshooting coverage is absent. Not 5 because the actions are one verb over many objects rather than multiple distinct concrete actions; not 3 because coverage of the domain's capabilities is broad and specific.

4 / 5

Completeness

The "what" is clear and concrete (configure OAuth/OIDC providers, trust, storage), but there is no "Use when..." clause or equivalent explicit trigger guidance; the second sentence ("Named relying-party registrations and portal OPs belong to OAuth applications") is a routing boundary, not a when-to-use trigger. Per the judging guidelines, a missing explicit trigger clause caps completeness at 3.

3 / 5

Trigger Term Quality

Good natural keywords users would say: "OAuth", "OIDC", "login providers", "credentials", "scopes", "portal". Missing common variations like "identity provider", "social login", or "sign in with Google/GitHub", which keeps it below anchor 5; above anchor 3 because the included terms are the primary natural phrasings for this task.

4 / 5

Distinctiveness Conflict Risk

The niche is clear and specific (external OAuth/OIDC provider configuration for this app), and the closing sentence explicitly routes adjacent concepts ("Named relying-party registrations and portal OPs belong to OAuth applications") away from confusion with sibling skills, minimizing conflict risk.

5 / 5

Total

16

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 4 suspicious

Warning

referenced_paths_exist

Referenced path issues: 3 missing, 3 deeper-than-1-level

Warning

Total

14

/

16

Passed

Repository

greenpau/caddy-security

Path

.codex/skills/configuration-oauth-providers/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.