CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

better-auth

Implement authentication and authorization with Better Auth - a framework-agnostic TypeScript authentication framework. Features include email/password authentication with verification, OAuth providers (Google, GitHub, Discord, etc.), two-factor authentication (TOTP, SMS), passkeys/WebAuthn support, session management, role-based access control (RBAC), rate limiting, and database adapters. Use when adding authentication to applications, implementing OAuth flows, setting up 2FA/MFA, managing user sessions, configuring authorization rules, or building secure authentication systems for web applications.

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 ./skills_all/better-auth/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The body delivers a strong, executable quick start and a clear sequenced checklist, but it is padded with generic selection guidance Claude could derive itself, and — most seriously — every reference file and script it delegates to is missing from the bundle, leaving the promised deep content inaccessible. The database config gap compounds this since its resolution is deferred to a nonexistent file.

Suggestions

Ship the referenced bundle files (references/email-password-auth.md, oauth-providers.md, database-integration.md, advanced-features.md) and scripts/better_auth_init.py, or inline their essential content — currently all links in the Feature Selection Matrix and Reference Documentation sections are dangling.

Remove the 'Auth Method Selection Guide' and 'Core Architecture' sections; Claude can already choose between password/OAuth/passkeys/magic-link given the feature matrix, and ~40 lines of generic guidance are reclaimed.

Make the database setup concrete (e.g., a working Drizzle/Prisma/Kysely adapter snippet) and replace 'Test complete auth flow' with a specific verification step such as curling the session endpoint after sign-in.

DimensionReasoningScore

Conciseness

The bulk (quick-start code, feature matrix, checklist) is efficient, but several sections add little Claude doesn't know: the 25-line "Auth Method Selection Guide" ("Choose Email/Password when: Building standard web app with traditional auth"), the "Core Architecture" client-server explainer, an intro sentence repeating the frontmatter description, and duplicate reference listings in both the matrix and the Reference Documentation section. This is "some unnecessary explanation or could be tightened" (3) rather than the 4 anchor's "minor instances".

3 / 5

Actionability

Mostly executable, copy-paste-ready guidance: `npm install better-auth`, a concrete `.env` block, a working `betterAuth({...})` server config, `npx @better-auth/cli generate`, the Next.js handler export, and sign-up/sign-in client calls. Not 5 because the database config — the biggest setup hurdle — is left as a placeholder comment ("// See references/database-integration.md") pointing to a file that does not exist in the bundle, so the basic setup cannot actually run as written.

4 / 5

Workflow Clarity

The Quick Start is properly sequenced (install → env → server → schema → handler → client) and the 14-item Implementation Checklist orders the full lifecycle, including a useful checkpoint note ("Add plugins as needed (regenerate schema after)") and a "Test complete auth flow" step. Not 5 because validation is thin: "Test complete auth flow" gives no command or method, and DB-touching steps (migrate/generate) have no verify-or-rollback feedback loop.

4 / 5

Progressive Disclosure

The in-body structure is well organized (overview, feature matrix with per-feature links, one-level-deep references), but scored against the actual bundle: all four referenced files (references/email-password-auth.md, oauth-providers.md, database-integration.md, advanced-features.md) and scripts/better_auth_init.py do not exist — the directories are absent entirely. Every delegated detail is unreachable, breaking navigation as thoroughly as buried references (2 anchor), even though the SKILL.md-side layout alone would merit a 4.

2 / 5

Total

13

/

20

Passed

Description

88%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 strong description: explicit what-and-when structure, comprehensive concrete feature enumeration, and mostly natural trigger phrases. Its only weaknesses are a few missing colloquial trigger terms ("login", "social login") and slightly broad generic auth triggers that could collide with other authentication skills.

DimensionReasoningScore

Specificity

The description enumerates concrete, specific capabilities: "email/password authentication with verification, OAuth providers (Google, GitHub, Discord, etc.), two-factor authentication (TOTP, SMS), passkeys/WebAuthn support, session management, role-based access control (RBAC), rate limiting, and database adapters" — comprehensive coverage with named technologies, matching the 5 anchor rather than the 4 anchor's "minor gaps in coverage".

5 / 5

Completeness

Clearly answers both what ("Implement authentication and authorization with Better Auth - a framework-agnostic TypeScript authentication framework" plus a full feature list) and when ("Use when adding authentication to applications, implementing OAuth flows, setting up 2FA/MFA, managing user sessions, configuring authorization rules, or building secure authentication systems"), with concrete trigger phrases — a textbook 5 anchor match.

5 / 5

Trigger Term Quality

Good natural-term coverage: "adding authentication", "implementing OAuth flows", "setting up 2FA/MFA", "managing user sessions", "configuring authorization rules". Not 5 because common user phrasings like "login", "sign-in", "social login", and "password reset" are absent; not 3 because far more than "some relevant keywords" is covered.

4 / 5

Distinctiveness Conflict Risk

Names the specific framework (Better Auth, TypeScript) giving a clear niche, but the trigger "adding authentication to applications" is broad and could overlap with other auth-library skills when the user doesn't name a framework — matching the 4 anchor "mostly distinct; minor overlap risk with closely related skills" rather than the 5 anchor's minimal conflict risk.

4 / 5

Total

18

/

20

Passed

Validation

81%

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

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 15 missing

Warning

referenced_paths_exist

Referenced path issues: 3 missing

Warning

Total

13

/

16

Passed

Repository

Microck/ordinary-claude-skills

Path

skills_all/better-auth/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.