dev-flow

← all skills

forms

Build or edit any form in a Next.js 16 App Router app through one shared toolkit in lib/forms/, with dirty + valid Save gating — on TanStack Form + Zod (default) or react-hook-form (auto-detected). Use when the user says "form", "edit panel", "create dialog", "settings page", "save button", "dirty state", or reaches for useState to hold field values, raw useForm, hand-rolled dirty tracking, or inline toast.success/error on submit. Also owns multi-step question flows — "questionnaire", "questionario", "survey", "sondaggio", "quiz", "poll", "onboarding flow", "intake form", "wizard", "step-by-step questions", "one question at a time" — which route to the shadcn <Questionnaire />. Refuses outside Next.js 16 web. Not for: React Native forms, search boxes that only filter, reads that populate a form (data-fetching), or state not bound to form fields (state-discipline).

When it applies

References it ships

Get it

/plugin install dev-flow@dev-flow      # the whole suite
./install.sh --platform claude        # or drop dist/forms.skill into Claude Code

Read forms/SKILL.md on GitHub →