CtrlK
BlogDocsLog inGet started
Tessl Logo

better-auth-best-practices

Skill for integrating Better Auth - the comprehensive TypeScript authentication framework.

55

Quality

61%

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 ./.claude/skills/better-auth-best-practices/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

65%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The content is an impressively lean, dense, and concrete reference for Better Auth integration with excellent sectioning and real commands. Its main gaps are the absence of complete copy-paste config/client code examples, no validation checkpoints in the migration workflow, and no progressive disclosure into separate bundle files despite the length.

Suggestions

Add at least one complete copy-paste example each for a minimal betterAuth({...}) server config and a createAuthClient({...}) client setup so guidance is fully executable.

Include a short sequenced integration workflow (install -> create auth.ts -> configure -> migrate -> wire client) with an explicit validation step (e.g. verifying the migration applied or hitting a session endpoint).

Move the detailed config-options and plugin reference tables into a separate reference file (e.g. references/options.md) and link to it from SKILL.md to improve progressive disclosure.

DimensionReasoningScore

Conciseness

The body is a dense, terse reference of tables and short bullets with no concept padding (it never explains what authentication or a library is). It assumes Claude's competence and nearly every line carries concrete config detail, matching the lean-and-efficient anchor. Minor redundancy between "Common Gotchas" and earlier sections is not enough to drop it below 3.

3 / 3

Actionability

It provides many concrete, real commands and identifiers (e.g. "npx @better-auth/cli@latest migrate", "openssl rand -base64 32", exact config keys and import paths) but lacks a complete, copy-paste-ready assembled example such as a full betterAuth({...}) or createAuthClient({...}) block. This fits "some concrete guidance but incomplete" rather than fully copy-paste-ready (score 3).

2 / 3

Workflow Clarity

Some sequences exist (the numbered session-storage priority list and "Re-run after adding/changing plugins") but there is no end-to-end integration workflow and no validation/verification checkpoint for risky operations like schema migration. Per the guidelines, missing validation for destructive/batch operations caps workflow clarity at 2.

2 / 3

Progressive Disclosure

The body is well-organized into clear headed sections, but ~149 lines of detailed config/plugin reference are kept inline with no internal bundle-file references to offload detail (no references/, scripts/, or assets/ bundles exist). This matches the anchor of structured content that should be split into separate files but is not, falling short of the one-level-deep reference structure of score 3.

2 / 3

Total

9

/

12

Passed

Description

57%

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description identifies a clear, distinctive product niche but is thin on specifics: it states only one action ("integrating"), leans on the buzzword "comprehensive", and lacks any explicit "Use when..." trigger guidance. It is adequate but leaves trigger coverage and completeness underdeveloped.

Suggestions

Replace "comprehensive" with concrete capabilities, e.g. "Configures email/password, OAuth, magic links, passkeys, sessions, and plugins for Better Auth."

Add an explicit trigger clause, e.g. "Use when integrating Better Auth, configuring auth providers, or troubleshooting Better Auth setup."

Include natural user terms (auth, login, sign in, OAuth, sessions) so the description matches phrasings users actually say.

DimensionReasoningScore

Specificity

The description names a concrete domain ("integrating Better Auth") with one action verb, but does not list multiple specific actions; "comprehensive" is marketing fluff rather than a concrete capability. It is above the vague-anchor (score 1) but below the multi-action anchor (score 3).

2 / 3

Completeness

It answers "what" (integrating Better Auth) but provides no "Use when..." clause or equivalent explicit trigger guidance for when Claude should invoke it. Per the judging guidelines, a missing explicit trigger caps completeness at 2.

2 / 3

Trigger Term Quality

It includes relevant keywords a user might say ("Better Auth", "authentication", "TypeScript") but omits common natural variations such as auth, login, sign in, OAuth, or sessions. This matches the "some relevant keywords but missing common variations" anchor rather than full coverage.

2 / 3

Distinctiveness Conflict Risk

Naming a specific, unique product ("Better Auth") gives the skill a clear niche unlikely to collide with other skills, matching the "clear niche with distinct triggers" anchor. It is above score 2 because the named product is genuinely distinctive rather than a generic category.

3 / 3

Total

9

/

12

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.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
novuhq/novu
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.