noora-multiple-choice-prompt
Noora Multiple Choice Prompt
Use this skill when a Swift CLI needs one or more selections from a known set.
Basic Pattern
import Noora
enum Target: String, CaseIterable, CustomStringConvertible {
case alpha, beta, gamma, delta
var description: String { rawValue.capitalized }
}
let selectedTargets: [Target] = Noora().multipleChoicePrompt(
title: "Migration",
question: "Select targets for migration.",
description: "You can select up to 3 targets for migration.",
filterMode: .toggleable,
maxLimit: .limited(count: 3, errorMessage: "You can select up to 3 targets."),
minLimit: .limited(count: 1, errorMessage: "You need to select at least 1 target.")
)
Guidance
- Use limits when downstream behavior requires at least one selection or has a practical cap.
- Prefer enums for stable option sets.
- Keep option descriptions short enough for fast scanning.
- Use
.toggleableor.enabledfor long lists.
Good Fit
- Selecting targets, packages, environments, features, or modules.
- Batch actions where the user should choose a subset interactively.
Avoid
- Using this prompt when exactly one option is valid. Prefer single-choice.
- Leaving limits unspecified when the next operation silently assumes one or more selections.
More from spqw/skills-noora
noora-alerts
Use when building Noora warning, success, error, or info alerts in a Swift CLI. Covers choosing alert type, structuring takeaways, and using `TerminalText` interpolation inside alert copy.
1noora-progress-step
Use when a Swift CLI needs a spinner-style Noora progress step for an async operation. Covers `progressStep`, optional status updates, success and error messages, and sequencing multiple steps.
1noora-text-formatting
Use when composing or formatting Noora `TerminalText` in a Swift CLI. Covers semantic text components such as commands, links, paths, and themed text, plus `Noora().format(...)`.
1noora-collapsible-step
Use when a Swift CLI needs Noora to stream multiple log lines during a task and collapse them on success or failure. Covers `collapsibleStep`, `visibleLines`, and writing readable progress lines.
1noora-text-prompt
Use when gathering free-form text input with Noora in a Swift CLI. Covers `textPrompt`, default values, collapse behavior, and validation rules such as `NonEmptyValidationRule`.
1noora-interactive-tables
Use when building interactive Noora tables in a Swift CLI. Covers selectable tables, paginated tables, lazy paginated loading, updating tables from async sequences, and TTY constraints.
1