pbakaus/impeccable · error

Unknown skills command: {other}

Error message

Unknown skills command: {other}

What it means

The `skills` subcommand dispatcher (`run`) matches the first argument against known verbs (install, link, update, check, help). Any other value falls into the catch-all arm, prints this message plus a pointer to `impeccable --help`, and exits with code 1. It is pure CLI argument validation.

Source

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

}

pub fn run(args: &[String], io: &mut Io) -> R<()> {
    let sub = args.first().map(String::as_str).unwrap_or("");
    let rest: Vec<String> = args.iter().skip(1).cloned().collect();
    if let Some(help) = subcommand_help(sub) {
        if rest.iter().any(|a| a == "--help" || a == "-h") {
            out(io, help);
            return Ok(());
        }
    }
    match sub {
        "" | "help" | "--help" | "-h" => show_help(io),
        "install" => install(&rest, io),
        "link" => link(&rest, io),
        "update" => update(&rest, io),
        "check" => check(io),
        other => {
            io.err(&format!("Unknown skills command: {other}\n"));
            io.err("Run 'impeccable --help' for available commands.\n");
            Err(Flow::Exit(1))
        }
    }
}

fn ctx(io: &Io) -> (Sys, Prompt) {
    let sys = Sys::new(io.env.clone(), io.cwd.to_string_lossy().into_owned());
    let prompt = Prompt::new(io);
    (sys, prompt)
}

fn has_flag(flags: &[String], name: &str) -> bool {
    flags.iter().any(|f| f == name)
}

fn out(io: &mut Io, line: &str) {
    io.out(&format!("{line}\n"));

View on GitHub (pinned to 2bc2879276)

Solutions

  1. Run `impeccable skills help` (or `impeccable --help`) to list valid verbs.
  2. Correct the typo (e.g. `install` not `instal`).
  3. Use the closest supported verb: `install`, `link`, `update`, or `check`.
  4. If a verb existed in an older version, check the changelog and use its replacement.

Example fix

// before
impeccable skills instal --provider claude
// after
impeccable skills install --provider claude
Defensive patterns

Strategy: validation

Validate before calling

impeccable skills help   # enumerate valid verbs before scripting

Prevention

When it happens

Trigger: Running `impeccable skills <word>` where <word> is not one of install|link|update|check|help|--help|-h — e.g. typos like `instal`, `remove`, `uninstall`, or passing a flag in the subcommand position.

Common situations: Typo'd subcommand; muscle memory from other CLIs (`uninstall`, `add`); older docs referencing a renamed/removed skills verb; an empty-quoted argument `impeccable skills ""`.

Related errors


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