noora-progress-bar-step
Noora Progress Bar Step
Use this skill when the work has measurable completion progress.
Basic Pattern
import Noora
try await Noora().progressBarStep(
message: "Downloading assets",
successMessage: "Assets downloaded",
errorMessage: "Asset download failed"
) { progress in
let totalSteps = 100
for step in 0 ... totalSteps {
progress(Double(step) / Double(totalSteps))
try await Task.sleep(nanoseconds: 40_000_000)
}
}
Guidance
- Report values in the inclusive range
0.0 ... 1.0. - Use this for downloads, uploads, indexing, file transforms, and batch loops.
- Update the bar at a readable cadence. Humans do not need every micro-step.
Avoid
- Faking percentage progress when only unknown-duration waiting exists. Prefer a spinner step.
- Using integer percentages directly without converting to
Double.
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