← ClaudeAtlas

generating-formslisted

Use when building a form or auditing a form — signup, login, checkout, intake, application, onboarding, survey, or multi-step wizard — or when deciding required vs optional, fixing a disabled submit button with no explanation, prefilling known values, removing irrelevant fields, or reconciling client/server validation drift.
HAAAgency/claude-form-skill · ★ 0 · API & Backend · score 72
Install: claude install-skill HAAAgency/claude-form-skill
# Generating Forms ## Overview A good form answers three questions for the user at every moment: **What do I fill in? What is required? Why can't I continue?** Almost all form pain comes from breaking one of three promises — making the user guess what's required, asking for the same thing twice, or asking for things that don't apply. **Core principle: optimize for the user's understanding, not the database's schema.** The form is a conversation, not a table dump. ## When to use - Building or generating any form or multi-step wizard. - Deciding required vs optional, or trying to reduce the number of fields. - A "Next"/"Submit" button is disabled and the user can't tell why. - Users report the form is confusing, long, or errors only at the end. ## The five rules 1. **Required vs optional must be unmistakable — on a persistent label — and never leave a disabled button unexplained.** Give *every* field a persistent visible label *above* it (never a placeholder used as the label — it vanishes the instant the user types and takes the required/optional cue with it). Mark each label up front: a red `*` for required, `(optional)` for optional, so the user knows *before* they try. Label every field the same way across the whole form (homogeneity). And when submit/next is disabled, also show *exactly which required fields are still missing*, live, by the button. A disabled button with no reason is the #1 form defect. 2. **Never ask for the same information twice — pipe it.** If