Skip to content

[Code Quality] Expand Huh Form Usage for Interactive CLI Configuration #13109

Description

@github-actions

Description

The codebase has excellent Charmbracelet integration but only uses Huh for simple yes/no confirmations. There's significant opportunity to create multi-field forms with validation for a better user experience.

Current State

// Current: Simple yes/no confirmations only
func ConfirmAction(title, affirmative, negative string) (bool, error) {
    var confirmed bool
    confirmForm := huh.NewForm(
        huh.NewGroup(
            huh.NewConfirm().
                Title(title).
                Value(&confirmed),
        ),
    )
    return confirmForm.Run(), nil
}

Suggested Enhancement

Create comprehensive workflow configuration forms using Huh's full capabilities:

// Proposed: Multi-field form with validation
func promptWorkflowConfig() (*WorkflowConfig, error) {
    var cfg WorkflowConfig
    
    form := huh.NewForm(
        huh.NewGroup(
            huh.NewInput().
                Title("Workflow Name").
                Value(&cfg.Name).
                Validate(validateWorkflowName),
            huh.NewSelect[string]().
                Title("Trigger").
                Options(
                    huh.NewOption("Manual (workflow_dispatch)", "workflow_dispatch"),
                    huh.NewOption("Issue opened", "issues"),
                    huh.NewOption("Pull request", "pull_request"),
                ).
                Value(&cfg.Trigger),
            huh.NewMultiSelect[string]().
                Title("Required Tools").
                Options(
                    huh.NewOption("GitHub API", "github"),
                    huh.NewOption("File editing", "edit"),
                    huh.NewOption("Shell commands", "bash"),
                ).
                Value(&cfg.Tools),
            huh.NewConfirm().
                Title("Enable safe outputs?").
                Value(&cfg.SafeOutputs),
        ),
    ).WithAccessible(console.IsAccessibleMode())
    
    return &cfg, form.Run()
}

Files Affected

  • pkg/cli/add_interactive_*.go - Interactive workflow setup commands
  • pkg/console/confirm.go - Expand form utilities
  • New file: pkg/console/forms.go - Common form patterns

Success Criteria

  • Create reusable form components for common input patterns
  • Add validation helpers for workflow names, paths, URLs
  • Implement multi-field forms for workflow configuration
  • Maintain accessibility mode support
  • Add comprehensive examples and documentation
  • Improve UX for interactive commands

Impact

Severity: Medium
Benefit: Significantly improved UX for CLI interactions, reduced user errors through validation, more professional feel

Available Features Not Yet Used

  • huh.NewInput - Text input with validation
  • huh.NewSelect - Single selection from list
  • huh.NewMultiSelect - Multiple selections
  • huh.NewText - Multi-line text input
  • Built-in validation system
  • Theme support with adaptive colors

Source

Extracted from Terminal Stylist Analysis #13054

Priority

Medium - Enhances existing excellent terminal UI foundation

Estimated Effort

Medium (3-5 days)

AI generated by Discussion Task Miner - Code Quality Improvement Agent

  • expires on Feb 15, 2026, 1:20 PM UTC

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions