phoenix-auth-customization
Phoenix Auth Customization
Use this skill when extending phx.gen.auth with custom fields.
Canonical FP bar: docs/fcis-engineering-rules.md — Functional Core, Imperative Shell: pure domain modules; side effects at edges. Authorization decisions should be pure checks on scope/user data; persist only at the edge.
RULES — Follow these with no exceptions
1. Never modify generated auth migrations — create separate migrations for custom fields
2. Update registration_changeset to cast and validate new fields — don't create a separate changeset
3. Update test fixtures when adding required fields — missing fixture fields cause cryptic test failures
4. Confirm users in test fixtures for password-based auth — set confirmed_at or tests will fail
5. Update both the registration form AND the save/2 handler — the form must send the field
6. Use unique_constraint + database unique index for uniqueness — never validate in application code alone