CtrlK
BlogDocsLog inGet started
Tessl Logo

configuration-authorization

Configure authorization policies, ACLs, bypasses, identity headers, JWT verification, remote Basic/API-key auth, and direct OAuth without a portal.

61

Quality

77%

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

Fix and improve this skill with Tessl

tessl review fix ./.codex/skills/configuration-authorization/SKILL.md
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.

An information-dense, highly actionable reference with executable Caddyfile examples and real validation checkpoints, and correctly split deep-dive references (typed ACL fields, direct OAuth). Its weaknesses are inline version-pinned behavior notes and some reference-grade detail (redirect semantics, path-interpretation rules) that keep the body long, plus the lack of an explicitly ordered workflow.

Suggestions

Consolidate version-pinned statements (v1.3.6, v1.3.11) into a dedicated version-behavior or old-patterns section instead of weaving them into main prose.

Move the redirect-preservation and path-interpretation/checking semantics (~50 lines) into a reference file, keeping the body to policy wiring, ACLs, and options.

Add an explicit ordered sequence (define policy → wire route → configure options → verify with the named tests) so the workflow does not have to be inferred from section order.

DimensionReasoningScore

Conciseness

The body is dense with genuinely non-obvious domain facts (defaults, wildcard semantics, fail-closed decoding rules) and avoids explaining concepts Claude already knows, so it is not padded. But it is a ~380-line wall of prose-heavy detail that could be tightened, and version-pinned statements ("the unconditional default-action fix in v1.3.11", "go-authcrunch v1.3.6 preserves...", "The selected go-authcrunch v1.3.6 checks...") are woven into main content rather than an old-patterns/deprecated section, which the guidelines explicitly penalize. That places it between anchor 3 ('mostly efficient but includes some unnecessary explanation or could be tightened') and anchor 4, and the version-number handling pushes it to 3.

3 / 5

Actionability

Guidance is copy-paste ready throughout: a complete end-to-end Shape example (policy block plus `authorize with app_policy` route), executable ACL shortcut and explicit-rule snippets, concrete `set ...` option lines, `bypass uri exact/prefix/regex` examples, working curl commands with headers, and the `request_header +X-Auth-Realm` workaround — covering the common configuration cases. This matches anchor 5 ('fully executable; copy-paste ready; specific examples cover the common cases') rather than 4, which would imply minor gaps in coverage.

5 / 5

Workflow Clarity

The flow is coherent: Shape (overall structure and wiring) → Runtime Defaults → ACLs → Policy Options → Direct OAuth → Fixtures → Acceptance criteria, and the Acceptance criteria section provides real validation checkpoints ("Verify response behavior and downstream call counts, not just returned errors", named test suites for path and redirect behavior). It falls short of anchor 5 because there is no explicit ordered sequence (first define the policy, then wire the route, then verify) with feedback loops; the ordering must be inferred from the sections. It clears anchor 3 because validation guidance is explicit and named, not merely implied.

4 / 5

Progressive Disclosure

Both bundle files exist and are well-signaled one level deep with explicit scope statements: "Read [typed custom ACL fields](references/typed-acl-fields.md) for acl field declarations..." and "Read [direct OAuth configuration](references/direct-oauth.md) for provider selection..." — genuine deep-dive content is correctly split out. It does not reach anchor 5 ('clear overview with well-signaled references; content appropriately split') because the body itself remains a substantial inline reference (~380 lines) — ACL grammar, alias tables, redirect-preservation semantics, and path-interpretation rules that could partly live in reference files — rather than a lean overview. It sits comfortably above anchor 3, since structure is good and references are clearly signaled, not buried.

4 / 5

Total

16

/

20

Passed

Description

71%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 dense, highly specific capability list that clearly communicates what the skill configures, with strong domain trigger terms. Its main weakness is the absence of any 'Use when...' trigger clause, which caps completeness, and it lacks common synonyms (access control, permissions, roles) that users might naturally say.

Suggestions

Add an explicit trigger clause, e.g. "Use when configuring authorization policies, ACLs, or bypass rules in a Caddyfile, or when requests must be gated by roles, JWTs, or API keys."

Include natural synonyms users would say — "access control", "permissions", "roles" — to broaden trigger coverage beyond the current jargon-adjacent terms.

Clarify the JWT scope (e.g. "policy-level JWT verification wiring") to reduce mis-triggering toward a dedicated crypto/keys skill.

DimensionReasoningScore

Specificity

"Configure authorization policies, ACLs, bypasses, identity headers, JWT verification, remote Basic/API-key auth, and direct OAuth without a portal" lists seven concrete, distinct capabilities covering the skill's full surface (policy blocks, ACLs, bypasses, header injection, JWT keys, proxy auth modes, portal-less OAuth). Anchor 5 fits: multiple specific concrete items with comprehensive coverage; anchor 4 would require visible gaps, and the only quibble — a single governing verb 'Configure' — is appropriate for a configuration skill, not a coverage gap.

5 / 5

Completeness

The 'what' is explicit and clear (configure policies, ACLs, bypasses, JWT verification, proxy auth, direct OAuth), but there is no 'Use when...' clause or equivalent explicit trigger guidance, so completeness is capped at 3 per the judging guidelines. It sits at anchor 3 ('clear what, when missing or only weakly implied') rather than 2 because the enumerated capabilities do weakly imply the triggering contexts.

3 / 5

Trigger Term Quality

Natural domain keywords are present and specific: "ACLs", "bypasses", "JWT verification", "Basic/API-key auth", "OAuth" — exactly what a user configuring request authorization would say. Anchor 4 fits rather than 5 because common synonyms and phrasings users might naturally say are missing: "access control", "permissions", "roles", "auth", and the platform name (Caddy).

4 / 5

Distinctiveness Conflict Risk

The description carves a fairly distinct niche (policy/ACL/bypass/injection configuration, plus the distinguishing phrase "direct OAuth without a portal"), but "JWT verification" overlaps a sibling crypto-keys skill and "identity headers" could bleed into cookie/header-focused skills. Anchor 4 ('mostly distinct; minor overlap risk with closely related skills') is the best fit; anchor 5 would require no such overlap.

4 / 5

Total

16

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 5 suspicious

Warning

Total

15

/

16

Passed

Repository
greenpau/caddy-security
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.