pbakaus/impeccable · error

Pass providers explicitly, e.g. --providers=claude,cursor

Error message

Pass providers explicitly, e.g. --providers=claude,cursor

What it means

Recovery hint in install's plan-selection error arm: choose_install_plan returned Flow::Throw (e.g. no providers could be determined interactively or from flags), and this line suggests passing --providers explicitly to bypass the prompt/autodetection.

Source

Thrown at crates/skills/src/commands.rs:545

/// Sentinel for the JS `process.exit(1)` inside install's already-installed
/// `try` block (an exit, not an error, so no "Install check failed" line).
const EXIT_1: &str = "\u{0}exit1";

/// JS: install(flags)
fn install(flags: &[String], io: &mut Io) -> R<()> {
    let (sys, mut prompt) = ctx(io);
    let force = has_flag(flags, "--force");
    let yes = has_flag(flags, "-y") || has_flag(flags, "--yes");
    let install_hooks = !has_flag(flags, "--no-hooks");
    let project_root = sys.find_project_root();
    if !yes {
        print_install_intro(&prompt, io);
    }
    let plan = match choose_install_plan(&sys, &mut prompt, io, &project_root, flags, yes) {
        Ok(p) => p,
        Err(Flow::Throw(msg)) => {
            err(io, &msg);
            err(io, "Pass providers explicitly, e.g. --providers=claude,cursor");
            return Err(Flow::Exit(1));
        }
        Err(other) => return Err(other),
    };
    let InstallPlan { targets, scope, install_root, hook_root, explicit } = plan;
    let scope_opt = Some(scope);
    let existing = sys.is_already_installed(&install_root, scope_opt);
    let installed_targets: Vec<&'static str> = if existing.is_some() {
        sys.find_installed_providers(&install_root, scope_opt)
    } else {
        Vec::new()
    };
    let missing_selected_targets: Vec<&'static str> = if existing.is_some() && !force && explicit {
        targets.iter().copied().filter(|p| !installed_targets.contains(p)).collect()
    } else {
        Vec::new()
    };

View on GitHub (pinned to 2bc2879276)

Solutions

  1. Add an explicit `--providers=claude,cursor` argument
  2. Verify the flag spelling and value

Example fix

// before
impeccable install --providers=foo
// after
impeccable install --providers=claude,cursor
Defensive patterns

Strategy: validation

Validate before calling

if (!args.includes('--providers')) throw new Error('install requires --providers=claude,cursor');

Try / catch

try { await install(); } catch (e) { if (/--providers/.test(String(e))) console.error('Pass explicit providers'); }

Prevention

When it happens

Trigger: Any install invocation where provider selection fails validation (unknown providers or none resolvable).

Common situations: Users omitting `--providers` in environments where auto-detection returns nothing or invalid names.

Understand the failure class

Background: "--flag is required" and "must specify" CLI errors: how missing-required-flag validation works and how to fix it — this error's family across 20 libraries.

Related errors


AI-assisted analysis of pbakaus/impeccable@2bc2879276 (2026-09-08). Data as JSON: /api/errors/dffc037a576aa1e3. Report an issue: GitHub.