CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

pleaseai/better-auth

Better Auth authentication framework skills for JavaScript/TypeScript projects

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

Overview
Quality
Evals
Security
Files

Quality

Content

92%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 is a lean, highly actionable reference: concrete commands, canonical code patterns, and decision tables, with details correctly split into four one-level-deep reference files that all exist. Its only weakness is mild repetition of the verify-against-source guidance across sections.

DimensionReasoningScore

Conciseness

The body is dominated by dense decision tables and shell commands ("ls "$SRC/packages/better-auth/src/plugins"", "rg "^export " "$SRC/packages/better-auth/src/index.ts"") with no explanation of concepts Claude already knows. However, the "Do Not Trust Internal Knowledge" list states the enumerate-before-writing rule twice (items 2 and 4: "Verify plugin names, adapter imports, and option shapes" / "Never invent plugin names, adapter import paths"), and the verify-against-source instruction recurs across the Finding Documentation, adapters, plugins, and databases sections — minor trimmable redundancy that fits the 4 anchor rather than the 5 anchor's "every token earns its place".

4 / 5

Actionability

Guidance is copy-paste ready throughout: install commands, source resolution ("SRC=$(ask src better-auth)"), complete server/client setup code blocks, an exact per-framework mount table ("toNextJsHandler(auth) at app/api/auth/[...all]/route.ts"), adapter signatures ("prismaAdapter(prisma, { provider })"), and "npx auth generate / migrate". The single placeholder ("database: /* DB adapter or Kysely dialect — see references/databases.md */") is a required project-specific choice backed by a concrete adapter table and reference file, so it is a deliberate pointer rather than a missing detail — matching the 5 anchor, not the 4 anchor's "minor gaps".

5 / 5

Workflow Clarity

A clear sequence is laid out: verify install in the lockfile → resolve the installed version with `ask` → verify names before generating code → "Run typecheck after changes to surface silent breakage early", plus an explicit error-recovery feedback loop ("grep references/common-errors.md for the failing symptom … If the symptom is not listed, resolve the source and grep the error string"). Explicit validation checkpoints plus a fix-and-retry loop match the 5 anchor; the operations are code-generation rather than destructive/batch, so no cap applies.

5 / 5

Progressive Disclosure

The body is an overview with decision tables, and all detail lives in four real bundle files verified on disk: references/adapters.md, references/plugins.md, references/databases.md, and references/common-errors.md. Every inline pointer is clearly signaled with scope notes ("Full wiring, cookie handling, and CORS gotchas per framework: references/adapters.md") and a terminal References section lists all four with one-line descriptions — one level deep, matching the 5 anchor exactly.

5 / 5

Total

19

/

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.

The description closely matches the exemplar pattern: explicit what and when, enumerated concrete capabilities, and a dedicated trigger list with synonyms. Its only weaknesses are a few missing natural trigger phrasings and several library-agnostic trigger terms that create minor overlap risk with generic authentication skills.

Suggestions

Add high-frequency natural phrasings to the trigger list — e.g. "login", "sign up", "two-factor"/"2FA", "email and password auth" — to close the synonym-coverage gap in trigger_term_quality.

Qualify generic trigger phrases with better-auth context (e.g. "social login (better-auth)", "auth session (better-auth)") so they are less likely to fire for non-better-auth authentication work.

DimensionReasoningScore

Specificity

Beyond the opening "Answer questions about better-auth and help build authentication features", the description enumerates concrete actions with named specifics: APIs ("betterAuth", "auth.api.*", "authClient.*"), seven framework adapters (Next.js, Nuxt, SvelteKit, Hono, Astro, Bun, Express), six plugins, and four DB adapters (Prisma, Drizzle, Kysely, Mongoose). This matches the 5 anchor's "multiple specific concrete actions; comprehensive coverage"; it exceeds the 4 anchor because coverage spans every major capability area with no noticeable gap.

5 / 5

Completeness

It explicitly answers "what" ("Answer questions about better-auth and help build authentication features" plus five enumerated capabilities) and "when" ("Use when developers: (1)…(5)" and a dedicated "Triggers on:" list with concrete trigger phrases). This mirrors the 5 anchor's exemplar verbatim in structure; the 4 anchor's "'when' could be more explicit" does not apply since triggers are enumerated twice.

5 / 5

Trigger Term Quality

The trigger list includes natural terms and synonyms users would say: "better-auth", "betterAuth", "authClient", "sign in flow", "social login", "magic link", "passkey", "organization plugin". However, common natural phrasings such as "login", "sign up", "two-factor"/"2FA", and "authentication" are absent, which fits the 4 anchor ("good keyword coverage; a few natural terms missing") better than the 5 anchor's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

The niche is clear — every capability example names better-auth-specific symbols and the library name appears in two spellings among the triggers. But library-agnostic trigger phrases like "social login", "auth session", and "sign in flow" could fire for generic auth work or other auth libraries, fitting 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

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.

Reviewed

On this page