imagecli's carve <ratio> pipeline operation (Carve::apply() in src/image_ops.rs) only asserts ratio <= 1.0, never validating that the ratio is positive. A negative ratio (e.g. -5) causes the computed target width to saturate to 0 via Rust's defined float-to-uint cast, which is then passed to imageproc::seam_carving::shrink_width — a function that panics when given a width below 2, crashing the process. This shares the same missing-input-validation root cause as the sibling scale finding in the same file but is an independently fixable, distinct code path.