Agent skill

Email And Password Best Practices

by ever-works in ever-works/ever-works

Configure email verification, implement password reset flows, set password policies, and customise hashing algorithms for Better Auth email/password authentication.

AGPL-3.0Auto-check passedBackend & APIs

Install Email And Password Best Practices

skills CLI
$ npx skills add ever-works/ever-works --skill email-and-password-best-practices -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ever-works/ever-works email-and-password-best-practices --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ever-works/ever-works.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/email-and-password-best-practices .claude/skills/email-and-password-best-practices && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
email-and-password-best-practices
GitHub stars
162
Used in
3 other repos
Token cost
~1.5k tokens
SKILL.md length
338 words
Files
1
Skills in repo
14
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Configure email verification, implement password reset flows, set password policies, and customise hashing algorithms for Better Auth email/password authentication.

  • Works in 5 steps: Enable email/password: emailAndPassword:… → Configure… → Add sendResetPassword for password reset… → …
  • Users need to set up login
  • SKILL.md covers Quick Start, Email Verification Setup, Client Side Validation and Callback URLs, plus 2 more sections
  • Calls npx

What it does

Email And Password Best Practices is an agent skill from ever-works/ever-works. Configure email verification, implement password reset flows, set password policies, and customise hashing algorithms for Better Auth email/password authentication. Use when users need to set up login, sign-in, sign-up, credential authentication, or password security with Better Auth.

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Authentication. It works with Better Auth. The repository describes itself as: Ever® Works™ - The Workshop for AI. An open agentic runtime that autonomously researches, ships, and maintains entire businesses, 24/7 - https://ever.works. The licence is AGPL-3.0.

When your agent uses it

  • Users need to set up login
  • Credential authentication
  • Password security with Better Auth

Example prompts

  • “/email-and-password-best-practices”

Requirements

  • Node.js

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Enable email/password: emailAndPassword: { enabled: true }
  2. Configure emailVerification.sendVerificationEmail
  3. Add sendResetPassword for password reset flows
  4. Run npx @better-auth/cli@latest migrate
  5. Verify: attempt sign-up and confirm verification email triggers

What it can do on your machine

Read from SKILL.md and the folder at commit 330f7b9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Email And Password Best Practices loads about 1.5k tokens when it runs. Until then it costs about 80 tokens; SKILL.md has 338 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~80
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ever-works/ever-works at commit 330f7b9, republished under its AGPL-3.0 licence (© ever-works). 338 words, ~1,467 tokens.

Download SKILL.mdSave it as .claude/skills/email-and-password-best-practices/SKILL.md (or your agent's skills folder).
name
email-and-password-best-practices
description
Configure email verification, implement password reset flows, set password policies, and customise hashing algorithms for Better Auth email/password authentication. Use when users need to set up login, sign-in, sign-up, credential authentication, or password security with Better Auth.

Quick Start

  1. Enable email/password: emailAndPassword: { enabled: true }
  2. Configure emailVerification.sendVerificationEmail
  3. Add sendResetPassword for password reset flows
  4. Run npx @better-auth/cli@latest migrate
  5. Verify: attempt sign-up and confirm verification email triggers

Email Verification Setup

Configure emailVerification.sendVerificationEmail to verify user email addresses.

ts
import { betterAuth } from 'better-auth';
import { sendEmail } from './email'; // your email sending function

export const auth = betterAuth({
	emailVerification: {
		sendVerificationEmail: async ({ user, url, token }, request) => {
			await sendEmail({
				to: user.email,
				subject: 'Verify your email address',
				text: `Click the link to verify your email: ${url}`
			});
		}
	}
});

Note: The url parameter contains the full verification link. The token is available if you need to build a custom verification URL.

Requiring Email Verification

For stricter security, enable emailAndPassword.requireEmailVerification to block sign-in until the user verifies their email. When enabled, unverified users will receive a new verification email on each sign-in attempt.

ts
export const auth = betterAuth({
	emailAndPassword: {
		requireEmailVerification: true
	}
});

Note: This requires sendVerificationEmail to be configured and only applies to email/password sign-ins.

Client Side Validation

Implement client-side validation for immediate user feedback and reduced server load.

Callback URLs

Always use absolute URLs (including the origin) for callback URLs in sign-up and sign-in requests. This prevents Better Auth from needing to infer the origin, which can cause issues when your backend and frontend are on different domains.

ts
const { data, error } = await authClient.signUp.email({
	callbackURL: 'https://example.com/callback' // absolute URL with origin
});

Password Reset Flows

Provide sendResetPassword in the email and password config to enable password resets.

ts
import { betterAuth } from 'better-auth';
import { sendEmail } from './email'; // your email sending function

export const auth = betterAuth({
	emailAndPassword: {
		enabled: true,
		// Custom email sending function to send reset-password email
		sendResetPassword: async ({ user, url, token }, request) => {
			void sendEmail({
				to: user.email,
				subject: 'Reset your password',
				text: `Click the link to reset your password: ${url}`
			});
		},
		// Optional event hook
		onPasswordReset: async ({ user }, request) => {
			// your logic here
			console.log(`Password for user ${user.email} has been reset.`);
		}
	}
});
Security Considerations

Built-in protections: background email sending (timing attack prevention), dummy operations on invalid requests, constant response messages regardless of user existence.

On serverless platforms, configure a background task handler:

ts
export const auth = betterAuth({
	advanced: {
		backgroundTasks: {
			handler: (promise) => {
				// Use platform-specific methods like waitUntil
				waitUntil(promise);
			}
		}
	}
});
Token Security

Tokens expire after 1 hour by default. Configure with resetPasswordTokenExpiresIn (in seconds):

ts
export const auth = betterAuth({
	emailAndPassword: {
		enabled: true,
		resetPasswordTokenExpiresIn: 60 * 30 // 30 minutes
	}
});

Tokens are single-use — deleted immediately after successful reset.

Session Revocation

Enable revokeSessionsOnPasswordReset to invalidate all existing sessions on password reset:

ts
export const auth = betterAuth({
	emailAndPassword: {
		enabled: true,
		revokeSessionsOnPasswordReset: true
	}
});
Password Requirements

Password length limits (configurable):

ts
export const auth = betterAuth({
	emailAndPassword: {
		enabled: true,
		minPasswordLength: 12,
		maxPasswordLength: 256
	}
});
Sending the Password Reset

Call requestPasswordReset to send the reset link. Triggers the sendResetPassword function from your config.

ts
const data = await auth.api.requestPasswordReset({
	body: {
		email: 'john.doe@example.com', // required
		redirectTo: 'https://example.com/reset-password'
	}
});

Or authClient:

ts
const { data, error } = await authClient.requestPasswordReset({
	email: 'john.doe@example.com', // required
	redirectTo: 'https://example.com/reset-password'
});

Note: While the email is required, we also recommend configuring the redirectTo for a smoother user experience.

Password Hashing

Default: scrypt (Node.js native, no external dependencies).

Custom Hashing Algorithm

To use Argon2id or another algorithm, provide custom hash and verify functions:

ts
import { betterAuth } from 'better-auth';
import { hash, verify, type Options } from '@node-rs/argon2';

const argon2Options: Options = {
	memoryCost: 65536, // 64 MiB
	timeCost: 3, // 3 iterations
	parallelism: 4, // 4 parallel lanes
	outputLen: 32, // 32 byte output
	algorithm: 2 // Argon2id variant
};

export const auth = betterAuth({
	emailAndPassword: {
		enabled: true,
		password: {
			hash: (password) => hash(password, argon2Options),
			verify: ({ password, hash: storedHash }) => verify(storedHash, password, argon2Options)
		}
	}
});

Note: If you switch hashing algorithms on an existing system, users with passwords hashed using the old algorithm won't be able to sign in. Plan a migration strategy if needed.

© ever-works, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/email-and-password-best-practices of ever-works/ever-works.

Open the folder on GitHubat commit 330f7b9

Used in 3 other repositories

We found 3 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 3 other GitHub owners. This page covers the copy in ever-works/ever-works, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Email And Password Best Practices next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Email And Password Best Practices compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Email And Password Best Practices this skillever-works/ever-works1623 repos~1.5kAutomated safety check: PassAGPL-3.0
Better Auth Best Practiceslatitude-dev/latitude-llm4.7k7 repos~1.6kAutomated safety check: PassMIT
Neon Authneondatabase/agent-skills100—~3.1kAutomated safety check: PassApache-2.0
Workosusenotra/notra260—~6.2kAutomated safety check: PassAGPL-3.0
Lunora Setup Authanolilab/lunora284—~2.8kAutomated safety check: PassCustom licence
Better Authgiuseppe-trisciuoglio/developer-kit357—~2.4kAutomated safety check: NotesMIT

Similar skills

  • Better Auth Best Practices

    latitude-dev/latitude-llm

    Configure Better Auth server and client, set up database adapters, manage sessions, add plugins, and handle environment variables.

    4.7k GitHub starsUsed in 7 repos~1.6k tokens
    Backend & APIsAuto-check passed
  • Neon Auth

    neondatabase/agent-skills

    Official

    Add authentication to a new app. An agent skill from neondatabase/agent-skills.

    100 GitHub stars~3.1k tokensUpdated 2 days ago
    Backend & APIsAuto-check passed
  • Workos

    usenotra/notra

    A skill your agent uses when the user asks for a WorkOS docs URL, term, or dashboard field (Sign-in endpoint, initiateloginuri, Redirect URI, WORKOS env vars), or is implementing, debugging, or…

    260 GitHub stars~6.2k tokensUpdated today
    Backend & APIsAuto-check passed
  • Lunora Setup Auth

    anolilab/lunora

    Adds authentication to a Lunora app with the auth registry item (better-auth via @lunora/auth, users and sessions in D1).

    284 GitHub stars~2.8k tokensUpdated today
    Backend & APIsAuto-check passed
  • Better Auth

    giuseppe-trisciuoglio/developer-kit

    Provides Better Auth integration patterns for NestJS backend and Next.js frontend with Drizzle ORM and PostgreSQL.

    357 GitHub stars~2.4k tokensUpdated 1 mo ago
    Backend & APIsAuto-check: notes
  • Authentication

    latitude-dev/latitude-llm

    Sessions, sign-in/sign-up flows, OAuth, magic links, or organization context on the session.

    4.7k GitHub stars~303 tokensUpdated 2 days ago
    Backend & APIsAuto-check passed

More from ever-works/ever-works

All 14 skills in this repo
  • Nodejs Backend Patterns

    ever-works/ever-works

    Build production-ready Node.js backend services with Express/Fastify, implementing middleware patterns, error handling, authentication, database integration, and API design best practices.

    162 GitHub starsUsed in 18 repos~4k tokens
    Auto-check passed
  • Accessibility

    ever-works/ever-works

    Audit and improve web accessibility following WCAG 2.2 guidelines.

    162 GitHub starsUsed in 6 repos~3.2k tokens
    Auto-check passed
  • Tailwind CSS Patterns

    ever-works/ever-works

    Provides comprehensive Tailwind CSS utility-first styling patterns including responsive design, layout utilities, flexbox, grid, spacing, typography, colors, and modern CSS best practices.

    162 GitHub starsUsed in 3 repos~1.6k tokens
    Auto-check: notes
  • SEO

    ever-works/ever-works

    Optimize for search engine visibility and ranking. An agent skill from ever-works/ever-works.

    162 GitHub starsUsed in 10 repos~2.9k tokens
    Auto-check passed
  • Nodejs Express Server

    ever-works/ever-works

    Build production-ready Express.js servers with middleware, authentication, routing, and database integration.

    162 GitHub stars~965 tokensUpdated yesterday
    Auto-check passed
  • Tailwind V4 Shadcn

    ever-works/ever-works

    Production-tested setup for Tailwind CSS v4 with shadcn/ui, Vite, and React.

    162 GitHub starsUsed in 2 repos~3.8k tokens
    Auto-check passed

Works with

Categories

Questions about Email And Password Best Practices

What does Email And Password Best Practices do?

Configure email verification, implement password reset flows, set password policies, and customise hashing algorithms for Better Auth email/password authentication. Email And Password Best Practices is an agent skill from ever-works/ever-works. Configure email verification, implement password reset flows, set password policies, and customise hashing algorithms for Better Auth email/password authentication.

When should I use Email And Password Best Practices?

Email And Password Best Practices fits situations like: users need to set up login; credential authentication; password security with Better Auth.

How do I install Email And Password Best Practices in Claude Code?

Run `npx skills add ever-works/ever-works --skill email-and-password-best-practices -a claude-code`. Or copy the skill folder (.agents/skills/email-and-password-best-practices in ever-works/ever-works) into .claude/skills/email-and-password-best-practices in your project. Claude Code loads it when a task matches its description.

How do I install Email And Password Best Practices in Codex?

Run `npx skills add ever-works/ever-works --skill email-and-password-best-practices -a codex`. Or copy the skill folder (.agents/skills/email-and-password-best-practices in ever-works/ever-works) into .agents/skills/email-and-password-best-practices in your project. Codex loads it when a task matches its description.

Can I use Email And Password Best Practices in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ever-works/ever-works --skill email-and-password-best-practices -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/email-and-password-best-practices, .gemini/skills/email-and-password-best-practices, .github/skills/email-and-password-best-practices and .opencode/skills/email-and-password-best-practices in your project.

What does Email And Password Best Practices need to run?

Going by SKILL.md and its folder, Email And Password Best Practices needs the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does Email And Password Best Practices access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Email And Password Best Practices safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Email And Password Best Practices use?

Email And Password Best Practices is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Email And Password Best Practices use?

About 1.5k tokens (SKILL.md is roughly 5.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Email And Password Best Practices?

Skills that share tags, products or a category with Email And Password Best Practices: Better Auth Best Practices (latitude-dev/latitude-llm, 4.7k stars), Neon Auth (neondatabase/agent-skills, 100 stars), Workos (usenotra/notra, 260 stars) and Lunora Setup Auth (anolilab/lunora, 284 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Email And Password Best Practices?

ever-works (a GitHub organization) maintains it in ever-works/ever-works, which has 162 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 10, 2026.

Source: ever-works/ever-works on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.