Severity: P2
Command: cross-cutting
Category: Reserved Short Flags — each short flag means one thing, used the same way across commands.
Repro:
uv run winml compile --help | Select-String '^\s+-d,'
uv run winml build --help | Select-String '^\s+-d,'
uv run winml eval --help | Select-String '^\s+-d,'
uv run winml perf --help | Select-String '^\s+-d,'
Actual: Only compile declares -d, --device. Other commands take --device long-form only.
Expected: Either drop -d from compile (so --device is consistently long-form everywhere), or add -d, --device to all four commands. The shared device_option decorator from another audit finding should make this trivial.
Why it matters: A user who runs winml compile -d npu then tries winml build -d npu gets "no such option" with no hint that --device is the long form.
Severity: P2
Command:
cross-cuttingCategory: Reserved Short Flags — each short flag means one thing, used the same way across commands.
Repro:
Actual: Only
compiledeclares-d, --device. Other commands take--devicelong-form only.Expected: Either drop
-dfromcompile(so--deviceis consistently long-form everywhere), or add-d, --deviceto all four commands. The shareddevice_optiondecorator from another audit finding should make this trivial.Why it matters: A user who runs
winml compile -d nputhen trieswinml build -d npugets "no such option" with no hint that--deviceis the long form.