gentleman-installer

Standardize multi-step TUI installer workflows with conditional InstallStep registration and execution.

2|Updated Jul 29, 2025
One-click install
npx skills add https://github.com/kurojs/EnderDots --skill gentleman-installer-kurojs
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gentleman-installer
Source: https://github.com/kurojs/EnderDots/tree/main/.config/opencode/skills/gentleman-installer
Command: npx skills add https://github.com/kurojs/EnderDots --skill gentleman-installer-kurojs

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It solves the problem of building, maintaining, and safely evolving a multi-platform TUI installer workflow where installation steps must be conditionally registered, executed, logged, and optionally run interactively.

Core Features & Use Cases

  • Installation step patterns: Standardized InstallStep structure (ID, name/description, status/progress, interactive mode).
  • Deterministic step orchestration: Steps are registered in SetupInstallSteps() and routed to concrete execution logic via an executeStep switch.
  • Interactive/non-interactive support with OS branching: Interactive steps (sudo/password) are marked and run through a dedicated interactive execution path, while installation logic adapts across platforms (e.g., Termux, Arch/Linux, macOS).
  • Actionable progress logging & error wrapping: Consistent SendLog updates per step and wrapStepError for failure reporting.

Quick Start

Use the gentleman-installer skill when updating the installer.go installation flow by adding or modifying a step in SetupInstallSteps() and implementing its logic in the executeStep handler.

Frequently Asked Questions about gentleman-installer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new step to a multi-step TUI installer workflow?

To add a new step to a multi-step TUI installer, register an `InstallStep` entry in `SetupInstallSteps()` and implement its execution logic in the `executeStep` switch handler. Use consistent logging and error wrapping for progress reporting.

How does a cross-platform installer handle interactive sudo prompts?

A cross-platform installer handles interactive sudo prompts by marking steps as interactive and routing them through a dedicated interactive runner, while non-interactive steps execute directly with deterministic progress logging.

Can I run a non-interactive installation workflow across different operating systems?

Yes, you can run a non-interactive installation workflow across operating systems like Termux, Arch/Linux, and macOS. The installation logic adapts execution paths based on the detected OS while maintaining consistent step orchestration.

What is the best way to structure conditional installation steps in a Go installer?

The best way to structure conditional installation steps in a Go installer is using a standardized `InstallStep` structure containing ID, description, status, and interactive mode, registered deterministically in `SetupInstallSteps()`.

How do I report installation progress and handle errors consistently in a TUI installer?

You report installation progress and handle errors consistently in a TUI installer by using `SendLog` updates for each step and wrapping failures with `wrapStepError` to provide actionable failure reporting.