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
- Run `impeccable skills help` (or `impeccable --help`) to list valid verbs.
- Correct the typo (e.g. `install` not `instal`).
- Use the closest supported verb: `install`, `link`, `update`, or `check`.
- 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
- Check `impeccable skills help` for the exact verb list before scripting.
- Watch for typos in CI scripts — the dispatcher exits 1 on unknown verbs.
- Pin the CLI version in automation so renamed verbs don't break scripts.
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
- Unknown command: "{other}" To see a list of supported comma
- build-phase: unknown command {other}
- "init" is not a CLI command. Type /impeccable init in your A
- usage: build-phase.mjs start --comp <png> [--breakpoint WxH]
- build-phase: start needs --comp <approved comp png> (comp al
AI-assisted analysis of pbakaus/impeccable@2bc2879276 (2026-09-08).
Data as JSON: /api/errors/318092671c76d5c8.
Report an issue: GitHub.