| name | one-line-installer-maintainer |
| description | Design and maintain the single canonical one-line installer for this repository. Use when changing OS package setup, Raspberry Pi bootstrap steps, managed scripts, install docs, or legacy-path cleanup behavior. |
| argument-hint | Update the canonical install/update one-line command workflow |
| user-invocable | true |
| disable-model-invocation | false |
One-Line Installer Maintainer
Create and maintain the single canonical installation command for this project. Users run one curl one-liner from the README, download an installer script from this repository, and execute all required setup and script deployment steps so the project works on a Raspberry Pi.
This installer assumes Raspberry Pi OS Lite and OpenMediaVault are already installed.
It does not provision the base OS or install OMV itself.
The same one-line command must support both:
- First-time installation.
- Subsequent updates.
For first-time installation, the installer must ask for runtime configuration values required by the README examples.
For updates, the installer must not ask again and must preserve previously saved values.
When to Use
- Create or update the single canonical one-line command in the README.
- Update bootstrap logic after changing system-level package/configuration requirements or setup scripts.
- Rename or move scripts under
usr/local/bin or usr/local/sbin.
- Keep installer behavior aligned with the latest manual installation steps in
docs/manual-installation.md for install and update.
- Ensure old script paths are cleaned up after refactors.
Workflow
- Inspect current state
- Read
docs/manual-installation.md and extract the setup tasks that must be automated after the base system is already prepared. That document is the per-step reference the installer mirrors; README.md remains the high-level functional reference.
- Treat Raspberry Pi OS Lite and OMV installation as prerequisites, not installer responsibilities.
- Find all scripts involved in setup (
usr/local/bin/*.sh, usr/local/sbin/*.sh, usr/local/libexec/<package>/*.sh, and any new install helper scripts).
- Identify the canonical one-line command in the README (or define it if missing).
- Define installer contract
- Ensure the one-line command downloads a single installer entrypoint from this repository over HTTPS and pipes or executes it in a POSIX shell.
- Ensure there is exactly one supported one-line flow (no alternate installer variants).
- Make the installer idempotent so rerunning it performs safe updates.
- Define first-install interactive prompts:
- Wi-Fi regulatory region (country code used in
hostapd.conf, for example ES, US, FR).
- AP mode passphrase (
wpa_passphrase).
- Define update behavior as non-interactive for those values:
- Do not prompt for Wi-Fi region or AP password during updates.
- Reuse and preserve values that were configured on first installation.
- Decide privileges strategy (
sudo inside script vs command precondition), and keep it consistent with README.
- Implement or update installer script
- Add or update a dedicated installer script in the repository (for example under
usr/local/sbin/ or a dedicated install path).
- The installer must apply all automated setup steps currently documented in
docs/manual-installation.md for the post-OS/post-OMV phase, including package installation/configuration and managed script deployment required for this project.
- The installer must deploy managed scripts to their target system locations with executable permissions.
- The same script entrypoint must handle both initial setup and updates.
- On first installation, prompt the user for Wi-Fi region and AP password, then write them to the appropriate configuration files/variables used by the manual installation reference.
- On updates, keep existing Wi-Fi region and AP password values unchanged unless an explicit reset/reconfigure path is requested.
- Handle renames and moves
- Maintain a mapping of managed target files (current canonical paths and known legacy paths).
- For each managed file:
- Install or update the canonical target path.
- If a legacy path exists and is different from the canonical path, remove the legacy file.
- Never leave stale managed script copies at old paths.
- Update documentation
- Keep the README one-line command in sync with the installer entrypoint path and branch/tag reference.
- Keep
docs/manual-installation.md in sync with the installer's per-step behavior — every step the installer automates must have a corresponding manual section, and vice versa.
- Document any required prerequisites (for example
curl, bash, root privileges, network access).
- Keep prerequisites explicit: Raspberry Pi OS Lite and OMV must already be installed.
- Ensure the README explicitly states that the same command is used for both installation and update.
- Ensure manual fallback steps in
docs/manual-installation.md remain valid when automation is unavailable.
- Verify end state
- Validate that every script referenced by
README.md or docs/manual-installation.md exists in the expected repository location.
- Validate that installer-managed files and paths match the documented final state.
- Validate that removed legacy paths are no longer present after installer execution.
- Validate that rerunning the one-line command performs an update without breaking existing setup.
- Validate first-install behavior: prompts appear and provided values are correctly applied to resulting configuration.
- Validate update behavior: prompts do not appear and existing Wi-Fi region/AP password are preserved.
- Validate that command examples are copy/paste ready.
Decision Rules
- If
docs/manual-installation.md and the installer differ, treat the manual installation reference as the intended source of truth for the per-step content and reconcile implementation.
- If
README.md and the installer differ at the high-level contract (one-liner URL, prerequisites, install-vs-update behavior), treat README.md as the intended source of truth and reconcile implementation.
- If multiple one-line options appear, consolidate to a single canonical command.
- If a requested change implies base OS or OMV installation, document it as out of scope for this installer.
- If no prior installer-managed configuration exists, treat execution as first installation and prompt for required values.
- If prior installer-managed configuration exists, treat execution as update and do not re-prompt for Wi-Fi region/AP password.
- If a step is unsafe to automate (destructive or environment-specific), keep it manual and document it explicitly.
- If a script path changes, add cleanup logic for the old path in the same change.
- If installer behavior changes, update
README.md (high-level) and docs/manual-installation.md (per-step) in the same change.
Completion Checklist
- One-line
curl command exists in README.md and points to the correct installer script URL.
- Exactly one canonical one-line command is documented for both install and update.
- Installer script automates the intended setup steps documented in
docs/manual-installation.md for a prepared Raspberry Pi system where Raspberry Pi OS Lite and OMV are already installed.
docs/manual-installation.md matches the installer step-for-step.
- First installation prompts for Wi-Fi region and AP password, and applies them correctly.
- Managed scripts are installed/updated at canonical paths.
- Legacy paths from renamed or moved scripts are removed when present.
- Permissions and shebangs are correct for deployed scripts.
- Re-running the command updates the existing installation safely.
- Re-running the command does not prompt for Wi-Fi region/AP password and preserves previously configured values.
- Documentation and implementation are synchronized.
Output Expectations
When this skill is used, provide:
- The final one-line install command.
- The legacy-path cleanup rules that were applied.
- A short validation summary of final state consistency.