pbakaus/impeccable · error

usage: impeccable critique-storage <slug|write|latest|trend|

Error message

usage: impeccable critique-storage <slug|write|latest|trend|close> [args]

What it means

The `critique-storage` dispatcher accepts only the five subcommands slug|write|latest|trend|close. Any other (or missing) subcommand falls through to the catch-all arm, prints this usage line to stderr and exits 1.

Source

Thrown at crates/context/src/critique_storage.rs:698

                        .filter(|path| {
                            read_snapshot_at(path)
                                .and_then(|snapshot| snapshot_target_identity(&snapshot))
                                .as_deref()
                                == target_identity.as_deref()
                        }),
                );
            }
            all.sort();
            let slice = js_slice_last(&all, limit);
            let rows: Vec<Value> = slice
                .iter()
                .map(|f| Value::Object(parse_frontmatter(&safe_read(f).unwrap_or_default())))
                .collect();
            io.out(&format!("{}\n", json_pretty(&Value::Array(rows))));
            0
        }
        _ => {
            io.err("usage: impeccable critique-storage <slug|write|latest|trend|close> [args]\n");
            1
        }
    }
}

/// `Number(str)`
pub fn js_number(s: &str) -> f64 {
    let t = js_trim(s);
    if t.is_empty() {
        return 0.0;
    }
    if t == "Infinity" || t == "+Infinity" {
        return f64::INFINITY;
    }
    if t == "-Infinity" {
        return f64::NEG_INFINITY;
    }
    if let Some(h) = t.strip_prefix("0x").or_else(|| t.strip_prefix("0X")) {

View on GitHub (pinned to 2bc2879276)

Solutions

  1. Use one of the exact subcommands: slug, write, latest, trend, close (lowercase).
  2. Pass the subcommand as the first argument after `critique-storage`, before any flags.
  3. Check `impeccable critique-storage` docs/help for the supported verb list.
  4. Fix shell quoting so flags land after the subcommand argument.

Example fix

// before
impeccable critique-storage list
// after
impeccable critique-storage latest mytarget
Defensive patterns

Strategy: validation

Validate before calling

const VERBS = new Set(['slug', 'write', 'latest', 'trend', 'close']);
if (!VERBS.has(args[0])) throw new Error(`unknown critique-storage verb: ${args[0]}`);

Prevention

When it happens

Trigger: Running `impeccable critique-storage` with no subcommand; misspelling a verb (`list`, ` Latest`, `lastest`); passing flags before the subcommand so args.first() is a flag rather than a verb.

Common situations: Script typos, casing mistakes (`Latest`), assuming a `list` or `show` subcommand exists, or a wrapper prepending `--json` ahead of the verb.

Understand the failure class

Background: "Unknown argument", "Invalid value", and "must be one of": invalid CLI argument errors explained — this error's family across 35 libraries.

Related errors


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