Skip to content

Phase 8 (Optional): Migrate to huh Forms for multi-field prompts

Overview

OPTIONAL: Enhance multi-field prompt experiences using huh.Form.

Why Optional?

After completing Phases 1-7, survey/v2 will be removed. This phase improves UX but isn't required for dependency removal.

Current Multi-Field Prompts

Files using survey.Question arrays:

Huh Forms Benefits

// BEFORE: Sequential questions
questions := []*survey.Question{
    {Name: "title", Prompt: &survey.Input{...}},
    {Name: "description", Prompt: &survey.Text{...}},
}

// AFTER: Grouped form
form := huh.NewForm(
    huh.NewGroup(
        huh.NewInput().Key("title").Title("Title:").Value(&title),
        huh.NewText().Key("description").Title("Description:").Value(&desc),
    ),
)
form.Run()

Features:

  • Field grouping and pages
  • Conditional fields (skip based on previous answers)
  • Better layout control
  • Cross-field validation
  • Progress indicators

Success Criteria

  • Multi-field forms feel more cohesive
  • Conditional logic works smoothly
  • Validation across fields works

Effort: 3-4 days

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information